QSapecNG-2.0.0-source/cmake/Modules/FindQwt5.cmake000644 001750 001750 00000012301 11617757645 022411 0ustar00simonesimone000000 000000 # Find the Qwt 5.x includes and library, either the version linked to Qt3 or the version linked to Qt4 # # On Windows it makes these assumptions: # - the Qwt DLL is where the other DLLs for Qt are (QT_DIR\bin) or in the path # - the Qwt .h files are in QT_DIR\include\Qwt or in the path # - the Qwt .lib is where the other LIBs for Qt are (QT_DIR\lib) or in the path # # Qwt5_INCLUDE_DIR - where to find qwt.h if Qwt # Qwt5_Qt4_LIBRARY - The Qwt5 library linked against Qt4 (if it exists) # Qwt5_Qt3_LIBRARY - The Qwt5 library linked against Qt4 (if it exists) # Qwt5_Qt4_FOUND - Qwt5 was found and uses Qt4 # Qwt5_Qt3_FOUND - Qwt5 was found and uses Qt3 # Qwt5_FOUND - Set to TRUE if Qwt5 was found (linked either to Qt3 or Qt4) # Copyright (c) 2007, Pau Garcia i Quiles, # # Redistribution and use is allowed according to the terms of the BSD license. # For details see the accompanying COPYING-CMAKE-SCRIPTS file. # Condition is "(A OR B) AND C", CMake does not support parentheses but it evaluates left to right IF(Qwt5_Qt4_LIBRARY OR Qwt5_Qt3_LIBRARY AND Qwt5_INCLUDE_DIR) SET(Qwt5_FIND_QUIETLY TRUE) ENDIF(Qwt5_Qt4_LIBRARY OR Qwt5_Qt3_LIBRARY AND Qwt5_INCLUDE_DIR) IF(NOT QT4_FOUND) FIND_PACKAGE( Qt4 REQUIRED QUIET ) ENDIF(NOT QT4_FOUND) IF( QT4_FOUND ) # Is Qwt5 installed? Look for header files FIND_PATH( Qwt5_INCLUDE_DIR qwt.h PATHS "${QT_INCLUDE_DIR}" /usr/local/qwt/include /usr/local/include /usr/include/qwt /usr/include PATH_SUFFIXES qwt qwt5 qwt-qt4 qwt5-qt4 qwt-qt3 qwt5-qt3 include qwt/include qwt5/include qwt-qt4/include qwt5-qt4/include qwt-qt3/include qwt5-qt3/include ENV PATH) # Find Qwt version IF( Qwt5_INCLUDE_DIR ) FILE( READ "${Qwt5_INCLUDE_DIR}/qwt_global.h" QWT_GLOBAL_H ) STRING( REGEX MATCH "#define *QWT_VERSION *(0x05*)" QWT_IS_VERSION_5 ${QWT_GLOBAL_H}) IF( QWT_IS_VERSION_5 ) STRING(REGEX REPLACE ".*#define[\\t\\ ]+QWT_VERSION_STR[\\t\\ ]+\"([0-9]+\\.[0-9]+\\.[0-9]+)\".*" "\\1" Qwt_VERSION "${QWT_GLOBAL_H}") # Find Qwt5 library linked to Qt4 FIND_LIBRARY( Qwt5_Qt4_TENTATIVE_LIBRARY NAMES qwt5-qt4 qwt-qt4 qwt5 qwt PATHS /usr/local/qwt/lib /usr/local/lib /usr/lib "${QT_LIBRARY_DIR}" "${Qwt5_INCLUDE_DIR}/.." PATH_SUFFIXES lib bin ENV PATH) IF( UNIX AND NOT CYGWIN) IF( Qwt5_Qt4_TENTATIVE_LIBRARY ) IF( APPLE ) EXECUTE_PROCESS( COMMAND "otool" "-L" ${Qwt5_Qt4_TENTATIVE_LIBRARY} OUTPUT_VARIABLE Qwt_Qt4_LIBRARIES_LINKED_TO ) ELSE( APPLE ) EXECUTE_PROCESS( COMMAND "ldd" ${Qwt5_Qt4_TENTATIVE_LIBRARY} OUTPUT_VARIABLE Qwt_Qt4_LIBRARIES_LINKED_TO ) ENDIF( APPLE ) STRING( REGEX MATCH "QtCore" Qwt5_IS_LINKED_TO_Qt4 ${Qwt_Qt4_LIBRARIES_LINKED_TO}) IF( Qwt5_IS_LINKED_TO_Qt4 ) SET( Qwt5_Qt4_LIBRARY ${Qwt5_Qt4_TENTATIVE_LIBRARY} ) SET( Qwt5_Qt4_FOUND TRUE ) IF (NOT Qwt5_FIND_QUIETLY) MESSAGE( STATUS "Found Qwt: ${Qwt5_Qt4_LIBRARY}" ) ENDIF (NOT Qwt5_FIND_QUIETLY) ENDIF( Qwt5_IS_LINKED_TO_Qt4 ) ENDIF( Qwt5_Qt4_TENTATIVE_LIBRARY ) ELSE( UNIX AND NOT CYGWIN) # Assumes qwt.dll is in the Qt dir SET( Qwt5_Qt4_LIBRARY ${Qwt5_Qt4_TENTATIVE_LIBRARY} ) SET( Qwt5_Qt4_FOUND TRUE ) IF (NOT Qwt5_FIND_QUIETLY) MESSAGE( STATUS "Found Qwt version ${Qwt_VERSION} linked to Qt4" ) ENDIF (NOT Qwt5_FIND_QUIETLY) ENDIF( UNIX AND NOT CYGWIN) # Find Qwt5 library linked to Qt3 #FIND_LIBRARY( Qwt5_Qt3_TENTATIVE_LIBRARY NAMES qwt-qt3 qwt qwt5-qt3 qwt5 ) #IF( UNIX AND NOT CYGWIN) # IF( Qwt5_Qt3_TENTATIVE_LIBRARY ) # #MESSAGE("Qwt5_Qt3_TENTATIVE_LIBRARY = ${Qwt5_Qt3_TENTATIVE_LIBRARY}") # IF( APPLE ) # EXECUTE_PROCESS( COMMAND "otool" "-L" ${Qwt5_Qt3_TENTATIVE_LIBRARY} OUTPUT_VARIABLE Qwt5_Qt3_LIBRARIES_LINKED_TO ) # ELSE( APPLE ) # EXECUTE_PROCESS( COMMAND "ldd" ${Qwt5_Qt3_TENTATIVE_LIBRARY} OUTPUT_VARIABLE Qwt5_Qt3_LIBRARIES_LINKED_TO ) # ENDIF( APPLE ) # STRING( REGEX MATCH "qt-mt" Qwt5_IS_LINKED_TO_Qt3 ${Qwt5_Qt3_LIBRARIES_LINKED_TO}) # IF( Qwt5_IS_LINKED_TO_Qt3 ) # SET( Qwt5_Qt3_LIBRARY ${Qwt5_Qt3_TENTATIVE_LIBRARY} ) # SET( Qwt5_Qt3_FOUND TRUE ) # IF (NOT Qwt5_FIND_QUIETLY) # MESSAGE( STATUS "Found Qwt version ${Qwt_VERSION} linked to Qt3" ) # ENDIF (NOT Qwt5_FIND_QUIETLY) # ENDIF( Qwt5_IS_LINKED_TO_Qt3 ) # ENDIF( Qwt5_Qt3_TENTATIVE_LIBRARY ) #ELSE( UNIX AND NOT CYGWIN) # SET( Qwt5_Qt3_LIBRARY ${Qwt5_Qt3_TENTATIVE_LIBRARY} ) # SET( Qwt5_Qt3_FOUND TRUE ) # IF (NOT Qwt5_FIND_QUIETLY) # MESSAGE( STATUS "Found Qwt: ${Qwt5_Qt3_LIBRARY}" ) # ENDIF (NOT Qwt5_FIND_QUIETLY) #ENDIF( UNIX AND NOT CYGWIN) ENDIF( QWT_IS_VERSION_5 ) IF( Qwt5_Qt4_FOUND OR Qwt5_Qt3_FOUND ) SET( Qwt5_FOUND TRUE ) ENDIF( Qwt5_Qt4_FOUND OR Qwt5_Qt3_FOUND ) MARK_AS_ADVANCED( Qwt5_INCLUDE_DIR Qwt5_Qt4_LIBRARY Qwt5_Qt3_LIBRARY ) ENDIF( Qwt5_INCLUDE_DIR ) IF (NOT Qwt5_FOUND AND Qwt5_FIND_REQUIRED) MESSAGE(FATAL_ERROR "Could not find Qwt 5.x") ENDIF (NOT Qwt5_FOUND AND Qwt5_FIND_REQUIRED) ENDIF( QT4_FOUND ) QSapecNG-2.0.0-source/cmake/DS_Store000644 001750 001750 00000030004 11617757645 017743 0ustar00simonesimone000000 000000 Bud1  ob PctB  @€ @€ @€ @ .BKGDblob PctBFïp.ICVObool.fwi0blob]…eicnv.fwswlong±.fwvhshor.icgoblob.icvoblobicv4`nonebotm.icvtshor .pictblobFFGoogle Notifier 1.9.38Àí¼ÀH+ÉWbackground.pngÉjÀî›`ÿÿÿÿ  .backgroundÀî0ÀîýÐÉW1Google Notifier 1.9.38:.background:background.pngbackground.png.Google Notifier 1.9.38/.background/background.png/Volumes/Google Notifier 1.9.38ªªGargleÀ# »H+çiGoogle Notifier Work.dmgƒ±¶Àî›^ÿÿÿÿ ReleaseÀ#‘;ÀîýÎçi Ù Ù ¯¡^û?Gargle:Users:david:Work:Builds:Release:Google Notifier Work.dmg2Google Notifier Work.dmgGargle8Users/david/Work/Builds/Release/Google Notifier Work.dmg/ ÿÿÿÿ ApplicationsIlocbloby‡ÿÿÿÿÿÿGoogle Notifier.appIlocblobp‡ÿÿÿÿÿÿGoogle Notifier.appicgoblob@ E DSDB `€ @€ @€ @QSapecNG-2.0.0-source/cmake/MacOSXBundle_locversion.plist.in000644 001750 001750 00000000670 11617757645 024515 0ustar00simonesimone000000 000000 LprojCompatibleVersion @MACOSX_BUNDLE_VERSION@ LprojLocale @lang@ LprojRevisionLevel 1 LprojVersion @MACOSX_BUNDLE_VERSION@ QSapecNG-2.0.0-source/cmake/MacOSXBundle_fixup_bundle.cmake.in000644 001750 001750 00000001257 11617757645 024745 0ustar00simonesimone000000 000000 cmake_minimum_required(VERSION 2.8) cmake_policy(SET CMP0012 NEW) # TODO if Qt uses Cocoa and it is build into dylib, where is qt_menu.nib? if("@QT_MAC_USE_COCOA@" AND "@QT_USE_FRAMEWORKS@") message(STATUS "Copying qt_menu.nib into '@FIXUP_BUNDLE_PATH@/Contents/Resources'") file(MAKE_DIRECTORY "@FIXUP_BUNDLE_PATH@/Contents/Resources/qt_menu.nib") execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory "@QT_LIBRARY_DIR@/QtGui.framework/Resources/qt_menu.nib" "@FIXUP_BUNDLE_PATH@/Contents/Resources/qt_menu.nib") endif("@QT_MAC_USE_COCOA@" AND "@QT_USE_FRAMEWORKS@") include(BundleUtilities) fixup_bundle("@FIXUP_BUNDLE_PATH@" "@FIXUP_BUNDLE_LIBS@" "@FIXUP_BUNDLE_DIRS@") QSapecNG-2.0.0-source/cmake/cmake_uninstall.cmake.in000644 001750 001750 00000001654 11617757645 023127 0ustar00simonesimone000000 000000 IF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") MESSAGE(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"") ENDIF(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") FILE(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) STRING(REGEX REPLACE "\n" ";" files "${files}") FOREACH(file ${files}) MESSAGE(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"") IF(EXISTS "$ENV{DESTDIR}${file}") EXEC_PROGRAM( "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" OUTPUT_VARIABLE rm_out RETURN_VALUE rm_retval ) IF(NOT "${rm_retval}" STREQUAL 0) MESSAGE(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"") ENDIF(NOT "${rm_retval}" STREQUAL 0) ELSE(EXISTS "$ENV{DESTDIR}${file}") MESSAGE(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.") ENDIF(EXISTS "$ENV{DESTDIR}${file}") ENDFOREACH(file) QSapecNG-2.0.0-source/cmake/MacOSXBundle_Info.plist.in000644 001750 001750 00000002133 11617757645 023221 0ustar00simonesimone000000 000000 CFBundleDevelopmentRegion @MACOSX_BUNDLE_DEVELOPMENT_REGION@ CFBundleDisplayName @MACOSX_BUNDLE_DISPLAY_NAME@ CFBundleExecutable @MACOSX_BUNDLE_EXECUTABLE@ CFBundleIconFile @MACOSX_BUNDLE_ICON_FILE@ CFBundleIdentifier @MACOSX_BUNDLE_IDENTIFIER@ CFBundleInfoDictionaryVersion 6.0 CFBundleName @MACOSX_BUNDLE_NAME@ CFBundlePackageType @MACOSX_BUNDLE_PACKAGE_TYPE@ CFBundleShortVersionString @MACOSX_BUNDLE_SHORT_VERSION_STRING@ CFBundleVersion @MACOSX_BUNDLE_VERSION@ NSHumanReadableCopyright @MACOSX_BUNDLE_COPYRIGHT@ CSResourcesFileMapped @MACOSX_BUNDLE_ADDITIONAL@ QSapecNG-2.0.0-source/src/logger/logger.cpp000644 001750 001750 00000002124 11617757645 021311 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "logger/logger.h" #include "logger/logpolicy.h" namespace sapecng { Logger::LogLevel Logger::level_ = INFO; LogPolicy* Logger::policy_ = 0; Logger::~Logger() { if(policy_) (*policy_)(os_.str()); } std::ostream& Logger::get(LogLevel level) { if(level < level_) return null_; else return os_; } } QSapecNG-2.0.0-source/src/logger/logger.h000644 001750 001750 00000004360 11617757645 020762 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 LOGGER_H #define LOGGER_H #include "logger/logpolicy.h" #include #include #include namespace sapecng { /* * begin: google docet */ template > class basic_nullbuf: public std::basic_streambuf { typename traits::int_type overflow(typename traits::int_type c) { return traits::not_eof(c); } }; template > class basic_onullstream: public std::basic_ostream { public: basic_onullstream(): std::basic_ios(&m_sbuf), std::basic_ostream(&m_sbuf) { init(&m_sbuf); } private: basic_nullbuf m_sbuf; }; typedef basic_onullstream onullstream; typedef basic_onullstream wonullstream; /* * end: google docet */ class LogPolicy; class Logger { public: Logger() { } virtual ~Logger(); enum LogLevel { DEBUG = 0, INFO, WARNING, ERROR, FATAL }; virtual std::ostream& get(LogLevel level = INFO); static LogLevel level() { return level_; } static void setLevel(LogLevel level) { level_ = level; } static LogPolicy* policy() { return policy_; } static void setPolicy(LogPolicy* policy) { policy_ = policy; } private: Logger(const Logger& logger); Logger& operator=(const Logger& logger); std::ostringstream os_; onullstream null_; static LogLevel level_; static LogPolicy* policy_; }; } #endif // LOGGER_H QSapecNG-2.0.0-source/src/logger/logpolicy.h000644 001750 001750 00000002122 11617757645 021476 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 LOGPOLICY_H #define LOGPOLICY_H #include namespace sapecng { class LogPolicy { public: virtual ~LogPolicy() { }; virtual void operator()(const std::string& msg) = 0; }; class NullLogPolicy: public LogPolicy { public: void operator()(const std::string& msg) { } }; } #endif // LOGPOLICY_H QSapecNG-2.0.0-source/src/functor/README.rpoly000644 001750 001750 00000005037 11617757645 021561 0ustar00simonesimone000000 000000 rpoly.cpp License ~~~~~~~~~~~~~~~~~ --- This software is offered freely and without restriction --- The above notice has been added to the file rpoly.cpp with the permission of the author in order to release that file under a Public Domain-like license. The permission has been granted with these two e-mails: -----(1)---------------------------------------------------------------------- Date: Sun, 30 Jan 2011 10:52:42 +0100 From: Simone Rossetto To: crb@crbond.com Hello, I'm packaging for Debian the software QSapecNG http://qsapecng.sourceforge.net/ which uses your rpoly.cpp file. The software cannot be put on Debian's main repository because your file has no license information in the header. On your website I found that "All downloadable software is offered freely and without restriction". I'm writing you to ask if you can add a sentence like that ("This software is offered freely...") to the header of rpoly.cpp file (which put that file under Public Domain) or if you can release that file under a GPL-compatible license http://www.gnu.org/licenses/license-list.html#GPLCompatibleLicenses adding to the header the proper notice. Thank you very much, best regards Simone -----(2)---------------------------------------------------------------------- Date: Sun, 30 Jan 2011 09:35:24 -0700 (GMT-07:00) From: "C. Bond" To: Simone Rossetto Subject: Re: License for rpoly.cpp file Hi Simone, Thanks for your interest in rpoly.cpp. I have placed rpoly.cpp completely in the public domain. That means there are no restrictions whatsoever in its use by others. You may use or modify it in any way that suits your purposes. I do not require any citations or acknowledgmentsI It may also be repackaged or bundled with other software. If any bugs or performance problems are discovered, I will try to correct them, so please notify me if any are found. Some of the software on my website carry weak copyright notices, but they are only there to limit proliferation during early, debug stages of development. Best regards and good luck, C. R. Bond, crb@crbond.com P.S. These permissions for unrestricted use allow you to place any notices of your choice into the versions of rpoly.cpp that you distribute. QSapecNG-2.0.0-source/src/functor/rpoly-adapter.cpp000644 001750 001750 00000003362 11617757645 023023 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 extern int rpoly(double *op, int degree, double *zeror, double *zeroi); namespace sapecng { std::list< std::pair< double, double > > rpoly_adapter(const std::map< int, double >& p) { std::list< std::pair< double, double > > zeros; int degree = p.rbegin()->first; // (0, 0)-centered workaround if(p.find(0) == p.end()) for(int i = 0; i < degree; ++i) zeros.push_back(std::make_pair(0, 0)); double* op = new double [degree + 1]; double* zeror = new double [degree + 1]; double* zeroi = new double [degree + 1]; for(int i = degree; i >= 0; --i) { if(p.find(i) != p.end()) op[degree - i] = p.find(i)->second; else op[degree - i] = 0.; } int ret = rpoly(op, degree, zeror, zeroi); /* if (ret == -1) ==> error */ for(int i = 0; i < ret; ++i) zeros.push_back(std::make_pair(zeror[i], zeroi[i])); delete [] zeroi; delete [] zeror; delete op; return zeros; } } QSapecNG-2.0.0-source/src/functor/functor.hpp000644 001750 001750 00000013501 11617757645 021721 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 FUNCTOR_H #define FUNCTOR_H #include "model/metacircuit.h" #include #include namespace sapecng { struct functor { public: std::pair< std::vector, std::vector > operator() ( const metacircuit::expression& numerator, const metacircuit::expression& denominator, std::map< std::string, double > values ) { std::map< int, double > real_num = synthesis(numerator, values); std::map< int, double > real_den = synthesis(denominator, values); return op(real_num, real_den); } protected: virtual std::pair< std::vector, std::vector > op(std::map< int, double > num, std::map< int, double > den) = 0; private: std::map< int, double > synthesis( const metacircuit::expression& expr, std::map< std::string, double > values ) { std::map< int, double > syn; for(metacircuit::expression::const_iterator eit = expr.begin(); eit != expr.end(); ++eit) { double value = 0.; for(metacircuit::degree_expression::const_iterator dit = eit->second.begin(); dit != eit->second.end(); ++dit) { double sub_value = dit->first; for(std::list::const_iterator it = dit->second.begin(); it != dit->second.end(); ++it) sub_value *= values[*it]; // 0-default drives from standard C++ value += sub_value; } syn[eit->first] += value; } return syn; } }; struct frequency_range_functor: public functor { public: frequency_range_functor(std::pair< double, double > range, double step) : range_(range), step_(step) { } protected: virtual double apply( std::complex v ) = 0; private: std::pair< std::vector, std::vector > op(std::map< int, double > num, std::map< int, double > den) { std::pair< std::vector, std::vector > plot; if(step_ > 0 && range_.first <= range_.second) { for(double cnt = range_.first; cnt < range_.second; cnt += step_) { std::complex cnum = compute(num, cnt); std::complex cden = compute(den, cnt); plot.first.push_back(cnt); plot.second.push_back( apply(cnum / cden) ); } } return plot; } std::complex compute( std::map< int, double > expr, double step ) { std::complex cvalue(0., 0.); for(std::map< int, double >::const_iterator it = expr.begin(); it != expr.end(); ++it) { bool real = (it->first % 2 == 0); double value = std::pow(-1., ((it->first - (real ? 0 : 1)) / 2)) * std::pow(2. * 4.0 * std::atan(1.0) * step, it->first) * it->second; if(real) cvalue += std::complex(value, 0.); else cvalue += std::complex(0., value); } return cvalue; } private: std::pair< double, double > range_; double step_; }; struct magnitude: public frequency_range_functor { public: magnitude(std::pair< double, double > range, double step) : frequency_range_functor(range, step) { } private: double apply( std::complex v ) { return std::abs(v); } }; struct phase: public frequency_range_functor { public: phase(std::pair< double, double > range, double step) : frequency_range_functor(range, step) { } private: double apply( std::complex v ) { return std::arg(v); } }; struct gain: public frequency_range_functor { public: gain(std::pair< double, double > range, double step) : frequency_range_functor(range, step) { } private: double apply( std::complex v ) { return (20. * std::log10( std::abs(v) )); } }; struct loss: public frequency_range_functor { public: loss(std::pair< double, double > range, double step) : frequency_range_functor(range, step) { } private: double apply( std::complex v ) { return (20. * std::log10((1. / std::abs(v) ))); } }; extern std::list< std::pair< double, double > > rpoly_adapter(const std::map< int, double >& p); struct zeros: public functor { private: std::pair< std::vector, std::vector > op(std::map< int, double > num, std::map< int, double > den) { std::pair< std::vector, std::vector > ret; std::list< std::pair< double, double > > pts = rpoly_adapter(num); for(std::list< std::pair< double, double > >::const_iterator i = pts.begin(); i != pts.end(); ++i) { ret.first.push_back(i->first); ret.second.push_back(i->second); } return ret; } }; struct poles: public functor { private: std::pair< std::vector, std::vector > op(std::map< int, double > num, std::map< int, double > den) { std::pair< std::vector, std::vector > ret; std::list< std::pair< double, double > > pts = rpoly_adapter(den); for(std::list< std::pair< double, double > >::const_iterator i = pts.begin(); i != pts.end(); ++i) { ret.first.push_back(i->first); ret.second.push_back(i->second); } return ret; } }; } #endif // FUNCTOR_H QSapecNG-2.0.0-source/src/functor/rpoly.cpp000644 001750 001750 00000046044 11617757645 021411 0ustar00simonesimone000000 000000 /* * http://www.crbond.com/download/misc/rpoly.cpp */ /* * This software is offered freely and without restriction. * (notice added with the permission of the author, see the file * README.rpoly) */ /* rpoly.cpp -- Jenkins-Traub real polynomial root finder. * * (C) 2000, C. Bond. All rights reserved. * * Translation of TOMS493 from FORTRAN to C. This * implementation of Jenkins-Traub partially adapts * the original code to a C environment by restruction * many of the 'goto' controls to better fit a block * structured form. It also eliminates the global memory * allocation in favor of local, dynamic memory management. * * The calling conventions are slightly modified to return * the number of roots found as the function value. * * INPUT: * op - double precision vector of coefficients in order of * decreasing powers. * degree - integer degree of polynomial * * OUTPUT: * zeror,zeroi - output double precision vectors of the * real and imaginary parts of the zeros. * * RETURN: * returnval: -1 if leading coefficient is zero, otherwise * number of roots found. */ #include "math.h" void quad(double a,double b1,double c,double *sr,double *si, double *lr,double *li); void fxshfr(int l2, int *nz); void quadit(double *uu,double *vv,int *nz); void realit(double *sss, int *nz, int *iflag); void calcsc(int *type); void nextk(int *type); void newest(int type,double *uu,double *vv); void quadsd(int n,double *u,double *v,double *p,double *q, double *a,double *b); double *p,*qp,*k,*qk,*svk; double sr,si,u,v,a,b,c,d,a1,a2; double a3,a6,a7,e,f,g,h,szr,szi,lzr,lzi; double eta,are,mre; int n,nn,nmi,zerok; int rpoly(double *op, int degree, double *zeror, double *zeroi) { double t,aa,bb,cc,*temp,factor,rot; double *pt; double lo,max,min,xx,yy,cosr,sinr,xxx,x,sc,bnd; double xm,ff,df,dx,infin,smalno,base; int cnt,nz,i,j,jj,l,nm1,zerok; /* The following statements set machine constants. */ base = 2.0; eta = 2.22e-16; infin = 3.4e38; smalno = 1.2e-38; are = eta; mre = eta; lo = smalno/eta; /* Initialization of constants for shift rotation. */ xx = sqrt(0.5); yy = -xx; rot = 94.0; rot *= 0.017453293; cosr = cos(rot); sinr = sin(rot); n = degree; /* Algorithm fails of the leading coefficient is zero. */ if (op[0] == 0.0) return -1; /* Remove the zeros at the origin, if any. */ while (op[n] == 0.0) { j = degree - n; zeror[j] = 0.0; zeroi[j] = 0.0; n--; } if (n < 1) return -1; /* * Allocate memory here */ temp = new double [degree+1]; pt = new double [degree+1]; p = new double [degree+1]; qp = new double [degree+1]; k = new double [degree+1]; qk = new double [degree+1]; svk = new double [degree+1]; /* Make a copy of the coefficients. */ for (i=0;i<=n;i++) p[i] = op[i]; /* Start the algorithm for one zero. */ _40: if (n == 1) { zeror[degree-1] = -p[1]/p[0]; zeroi[degree-1] = 0.0; n -= 1; goto _99; } /* Calculate the final zero or pair of zeros. */ if (n == 2) { quad(p[0],p[1],p[2],&zeror[degree-2],&zeroi[degree-2], &zeror[degree-1],&zeroi[degree-1]); n -= 2; goto _99; } /* Find largest and smallest moduli of coefficients. */ max = 0.0; min = infin; for (i=0;i<=n;i++) { x = fabs(p[i]); if (x > max) max = x; if (x != 0.0 && x < min) min = x; } /* Scale if there are large or very small coefficients. * Computes a scale factor to multiply the coefficients of the * polynomial. The scaling si done to avoid overflow and to * avoid undetected underflow interfering with the convergence * criterion. The factor is a power of the base. */ sc = lo/min; if (sc > 1.0 && infin/sc < max) goto _110; if (sc <= 1.0) { if (max < 10.0) goto _110; if (sc == 0.0) sc = smalno; } l = (int)(log(sc)/log(base) + 0.5); factor = pow(base*1.0,l); if (factor != 1.0) { for (i=0;i<=n;i++) p[i] = factor*p[i]; /* Scale polynomial. */ } _110: /* Compute lower bound on moduli of roots. */ for (i=0;i<=n;i++) { pt[i] = (fabs(p[i])); } pt[n] = - pt[n]; /* Compute upper estimate of bound. */ x = exp((log(-pt[n])-log(pt[0])) / (double)n); /* If Newton step at the origin is better, use it. */ if (pt[n-1] != 0.0) { xm = -pt[n]/pt[n-1]; if (xm < x) x = xm; } /* Chop the interval (0,x) until ff <= 0 */ while (1) { xm = x*0.1; ff = pt[0]; for (i=1;i<=n;i++) ff = ff*xm + pt[i]; if (ff <= 0.0) break; x = xm; } dx = x; /* Do Newton interation until x converges to two * decimal places. */ while (fabs(dx/x) > 0.005) { ff = pt[0]; df = ff; for (i=1;i 0) return; /* Quadratic iteration has failed. Flag that it has * been tried and decrease the convergence criterion. */ vtry = 1; betav *= 0.25; /* Try linear iteration if it has not been tried and * the S sequence is converging. */ if (stry || !spass) goto _50; for (i=0;i 0) return; /* Linear iteration has failed. Flag that it has been * tried and decrease the convergence criterion. */ stry = 1; betas *=0.25; if (iflag == 0) goto _50; /* If linear iteration signals an almost double real * zero attempt quadratic iteration. */ ui = -(s+s); vi = s*s; goto _20; /* Restore variables. */ _50: u = svu; v = svv; for (i=0;i 0.01 * fabs(lzr)) return; /* Evaluate polynomial by quadratic synthetic division. */ quadsd(n,&u,&v,p,qp,&a,&b); mp = fabs(a-szr*b) + fabs(szi*b); /* Compute a rigorous bound on the rounding error in * evaluating p. */ zm = sqrt(fabs(v)); ee = 2.0*fabs(qp[0]); t = -szr*b; for (i=1;i 20) return; if (j < 2) goto _50; if (relstp > 0.01 || mp < omp || tried) goto _50; /* A cluster appears to be stalling the convergence. * Five fixed shift steps are taken with a u,v close * to the cluster. */ if (relstp < eta) relstp = eta; relstp = sqrt(relstp); u = u - u*relstp; v = v + v*relstp; quadsd(n,&u,&v,p,qp,&a,&b); for (i=0;i<5;i++) { calcsc(&type); nextk(&type); } tried = 1; j = 0; _50: omp = mp; /* Calculate next k polynomial and new u and v. */ calcsc(&type); nextk(&type); calcsc(&type); newest(type,&ui,&vi); /* If vi is zero the iteration is not converging. */ if (vi == 0.0) return; relstp = fabs((vi-v)/vi); u = ui; v = vi; goto _10; } /* Variable-shift H polynomial iteration for a real zero. * sss - starting iterate * nz - number of zeros found * iflag - flag to indicate a pair of zeros near real axis. */ void realit(double *sss, int *nz, int *iflag) { double pv,kv,t,s; double ms,mp,omp,ee; int i,j; *nz = 0; s = *sss; *iflag = 0; j = 0; /* Main loop */ while (1) { pv = p[0]; /* Evaluate p at s. */ qp[0] = pv; for (i=1;i<=n;i++) { pv = pv*s + p[i]; qp[i] = pv; } mp = fabs(pv); /* Compute a rigorous bound on the error in evaluating p. */ ms = fabs(s); ee = (mre/(are+mre))*fabs(qp[0]); for (i=1;i<=n;i++) { ee = ee*ms + fabs(qp[i]); } /* Iteration has converged sufficiently if the polynomial * value is less than 20 times this bound. */ if (mp <= 20.0*((are+mre)*ee-mre*mp)) { *nz = 1; szr = s; szi = 0.0; return; } j++; /* Stop iteration after 10 steps. */ if (j > 10) return; if (j < 2) goto _50; if (fabs(t) > 0.001*fabs(s-t) || mp < omp) goto _50; /* A cluster of zeros near the real axis has been * encountered. Return with iflag set to initiate a * quadratic iteration. */ *iflag = 1; *sss = s; return; /* Return if the polynomial value has increased significantly. */ _50: omp = mp; /* Compute t, the next polynomial, and the new iterate. */ kv = k[0]; qk[0] = kv; for (i=1;i fabs(k[n-1]*10.0*eta)) t = -pv/kv; s += t; } } /* This routine calculates scalar quantities used to * compute the next k polynomial and new estimates of * the quadratic coefficients. * type - integer variable set here indicating how the * calculations are normalized to avoid overflow. */ void calcsc(int *type) { /* Synthetic division of k by the quadratic 1,u,v */ quadsd(n-1,&u,&v,k,qk,&c,&d); if (fabs(c) > fabs(k[n-1]*100.0*eta)) goto _10; if (fabs(d) > fabs(k[n-2]*100.0*eta)) goto _10; *type = 3; /* Type=3 indicates the quadratic is almost a factor of k. */ return; _10: if (fabs(d) < fabs(c)) { *type = 1; /* Type=1 indicates that all formulas are divided by c. */ e = a/c; f = d/c; g = u*e; h = v*b; a3 = a*e + (h/c+g)*b; a1 = b - a*(d/c); a7 = a + g*d + h*f; return; } *type = 2; /* Type=2 indicates that all formulas are divided by d. */ e = a/d; f = c/d; g = u*b; h = v*b; a3 = (a+g)*e + h*(b/d); a1 = b*f-a; a7 = (f+u)*a + h; } /* Computes the next k polynomials using scalars * computed in calcsc. */ void nextk(int *type) { double temp; int i; if (*type == 3) { /* Use unscaled form of the recurrence if type is 3. */ k[0] = 0.0; k[1] = 0.0; for (i=2;i= 0.0) /* real zeros. */ d = -d; *lr = (-b+d)/a; *sr = 0.0; if (*lr != 0.0) *sr = (c/ *lr)/a; *si = 0.0; *li = 0.0; } } QSapecNG-2.0.0-source/src/model/metacircuit.h000644 001750 001750 00000005534 11617757645 021641 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 METACIRCUIT_H #define METACIRCUIT_H #include "model/circuit.h" #include #include namespace sapecng { namespace detail { struct basic_checker { bool operator()(const std::pair< double, std::list >& e) const { return (e.first == 0); } }; struct degree_checker { bool operator()(const std::pair< int, std::list< std::pair< double, std::list > > >& e) const { return (e.second.size() == 0); } }; } class metacircuit { public: typedef std::pair< double, std::list > basic_expression; typedef std::list< basic_expression > degree_expression; typedef std::map< int, degree_expression > expression; static std::string as_string(const expression& e); void operator()(const circuit& circ); inline std::pair raw() const { return raw_; } inline std::pair digit() const { return digit_; } inline std::pair mixed() const { return mixed_; } private: void append(int deg, expression& e, const basic_expression& be); void simplify(std::pair& p); void compress(expression& e); bool group_minus(const expression& e); void toggle_minus(expression& e); bool has_candidate(const expression& e, const std::string& c); void remove_candidate(expression& e, const std::string& c); double find_div(const expression& e); void normalize(expression& e, double div); static std::string stringify(double x); static std::string as_string(const degree_expression& e); static std::string as_string(const basic_expression& e); int get_sign( size_t vertices, const Graph& graph, std::vector< circuit::edge_descriptor > order, std::vector inL ); private: std::pair raw_; std::pair digit_; std::pair mixed_; }; } #endif // METACIRCUIT_H QSapecNG-2.0.0-source/src/model/circuit.cpp000644 001750 001750 00000033332 11617757645 021322 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "model/circuit.h" #include namespace sapecng { circuit_builder::circuit_builder(circuit& circuit) : circuit_(circuit), has_block_(false), prefix_("") { circuit_.props_.clear(); if(circuit_.iG_) (circuit_.iG_)->clear(); else circuit_.iG_ = new Graph; if(circuit_.vG_) (circuit_.vG_)->clear(); else circuit_.vG_ = new Graph; circuit_.vG_o_.clear(); circuit_.iG_o_.clear(); replace_requested(GROUND); circuit_.out_ = GROUND; circuit_.reference_ = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); } void circuit_builder::add_circuit_properties( std::map map) { std::map::const_iterator i; for(i = map.begin(); i != map.end(); ++i) circuit_.props_[i->first] = i->second; } void circuit_builder::add_circuit_property( std::string name, std::string value) { circuit_.props_[name] = value; } void circuit_builder::add_wire_component( std::map props ) { } void circuit_builder::add_out_component( unsigned int v, std::map props ) { replace_requested(v); if(!circuit_.out_) circuit_.out_ = v; } void circuit_builder::add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props ) { replace_requested(va <= vb ? va : vb); replace_requested(va > vb ? va : vb); switch(c_type) { case abstract_builder::R: { add_edge( va, vb, va, vb, Z, prefix_ + name, value, 0, symbolic, props ); break; } case abstract_builder::G: { add_edge( va, vb, va, vb, Y, prefix_ + name, value, 0, symbolic, props ); break; } case abstract_builder::L: { add_edge( va, vb, va, vb, Z, prefix_ + name, value, 1, symbolic, props ); break; } case abstract_builder::C: { add_edge( va, vb, va, vb, Y, prefix_ + name, value, 1, symbolic, props ); break; } case abstract_builder::V: { circuit::vertex_descriptor vdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( vdesc, GROUND, GROUND, circuit_.reference_, Y, prefix_ + name, value, 0, symbolic, props ); add_edge( vdesc, GROUND, vb, va, Y, "", -1., 0, false, props ); add_edge( vb, va, GROUND, vdesc, F, "", 1., 0, true, props ); break; } case abstract_builder::I: { add_edge( vb, va, GROUND, circuit_.reference_, Y, prefix_ + name, value, 0, symbolic, props ); break; } case abstract_builder::VM: { circuit::vertex_descriptor vdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor v_ = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( vdesc, vb, vb, va, Y, "", -1., 0, false, props ); add_edge( vdesc, vb, GROUND, v_, Y, "", -1., 0, false, props ); add_edge( GROUND, v_, vb, vdesc, F, "", 1., 0, true, props ); if(!circuit_.out_) circuit_.out_ = v_; break; } case abstract_builder::AM: { circuit::vertex_descriptor v_ = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( va, vb, GROUND, v_, Z, "", -1., 0, false, props ); add_edge( GROUND, v_, vb, va, F, "", 1., 0, true, props ); if(!circuit_.out_) circuit_.out_ = v_; break; } default: break; } } void circuit_builder::add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props ) { std::vector nv; nv.push_back(va); nv.push_back(vb); nv.push_back(vac); nv.push_back(vbc); std::sort(nv.begin(), nv.end()); replace_requested(nv.at(0)); replace_requested(nv.at(1)); replace_requested(nv.at(2)); replace_requested(nv.at(3)); switch(c_type) { case abstract_builder::VCCS: { add_edge( vb, va, vbc, vac, Y, prefix_ + name, value, 0, symbolic, props ); break; } case abstract_builder::VCVS: { circuit::vertex_descriptor vdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( vdesc, vbc, vbc, vac, Y, prefix_ + name, value, 0, symbolic, props ); add_edge( vdesc, vbc, vb, va, Y, "", -1., 0, false, props ); add_edge( vb, va, vbc, vdesc, F, "", 1., 0, true, props ); break; } case abstract_builder::CCCS: { circuit::vertex_descriptor vdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( vac, vbc, GROUND, vdesc, Z, prefix_ + name, value, 0, symbolic, props ); add_edge( GROUND, vdesc, vbc, vac, F, "", 1., 0, true, props ); add_edge( va, vb, GROUND, vdesc, Y, "", -1., 0, false, props ); break; } case abstract_builder::CCVS: { add_edge( vac, vbc, vb, va, Z, prefix_ + name, value, 0, symbolic, props ); add_edge( vb, va, vbc, vac, F, "", 1., 0, true, props ); break; } case abstract_builder::AO: { add_edge( vb, va, vbc, vac, F, "", 1., 0, true, props ); break; } case abstract_builder::n: { circuit::vertex_descriptor vvdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor ivdesc = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor fix = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( vvdesc, vbc, vbc, vac, Y, prefix_ + name, value, 0, symbolic, props ); add_edge( vvdesc, vbc, vb, fix, Y, "", -1., 0, false, props ); add_edge( vb, fix, vbc, vvdesc, F, "", 1., 0, true, props ); add_edge( fix, va, GROUND, ivdesc, Z, prefix_ + name, value, 0, symbolic, props ); add_edge( GROUND, ivdesc, va, fix, F, "", 1., 0, true, props ); add_edge( vbc, vac, GROUND, ivdesc, Y, "", -1., 0, false, props ); break; } case abstract_builder::K: { circuit::vertex_descriptor afix = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor bfix = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor cfix = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); circuit::vertex_descriptor dfix = boost::add_vertex(*(circuit_.iG_)); requested_.push_front(boost::add_vertex(*(circuit_.vG_))); add_edge( va, afix, va, afix, Z, prefix_ + props["lp:name"], strtol(props["lp:value"].c_str(), 0, 10), 1, symbolic, props ); add_edge( vac, bfix, vac, bfix, Z, prefix_ + props["ls:name"], strtol(props["ls:value"].c_str(), 0, 10), 1, symbolic, props ); add_edge( dfix, bfix, vb, cfix, Z, prefix_ + name, value, 1, symbolic, props ); add_edge( vb, cfix, bfix, dfix, F, "", 1., 1, true, props ); add_edge( cfix, afix, vbc, dfix, Z, prefix_ + name, value, 1, symbolic, props ); add_edge( vbc, dfix, afix, cfix, F, "", 1., 1, true, props ); break; } default: break; } } void circuit_builder::flush() { try_add_block(); } void circuit_builder::try_add_block() { if(!has_block_ && circuit_.out_) { add_edge( GROUND, circuit_.reference_, GROUND, circuit_.reference_, YREF, "", 1., 0, false, std::map() ); add_edge( circuit_.reference_, GROUND, GROUND, circuit_.out_, GREF, "", 1., 0, false, std::map() ); has_block_ = true; } } void circuit_builder::replace_requested(circuit::vertex_descriptor vertex) { boost::remove_edge( boost::add_edge(vertex, vertex, *(circuit_.iG_)).first, *(circuit_.iG_) ); boost::remove_edge( boost::add_edge(vertex, vertex, *(circuit_.vG_)).first, *(circuit_.vG_) ); if(std::find(requested_.begin(), requested_.end(), vertex) != requested_.end()) { circuit::vertex_descriptor ireq = boost::add_vertex(*(circuit_.iG_)); circuit::vertex_descriptor vreq = boost::add_vertex(*(circuit_.vG_)); if(ireq != vreq) { boost::remove_vertex(ireq, *(circuit_.iG_)); boost::remove_vertex(vreq, *(circuit_.vG_)); return; } circuit::edge_iterator icurr, iend, vcurr, vend; boost::tie(icurr, iend) = boost::edges(*(circuit_.iG_)); boost::tie(vcurr, vend) = boost::edges(*(circuit_.vG_)); while(icurr != iend && vcurr != vend) { circuit::edge_descriptor iedge = *icurr; circuit::edge_descriptor vedge = *vcurr; if(boost::source(iedge, *(circuit_.iG_)) == vertex || boost::target(iedge, *(circuit_.iG_)) == vertex || boost::source(vedge, *(circuit_.vG_)) == vertex || boost::target(vedge, *(circuit_.vG_)) == vertex ) { add_edge( (iedge.m_source == vertex ? ireq : iedge.m_source), (iedge.m_target == vertex ? ireq : iedge.m_target), (vedge.m_source == vertex ? vreq : vedge.m_source), (vedge.m_target == vertex ? vreq : vedge.m_target), get(boost::edge_type, *(circuit_.iG_), iedge), get(boost::edge_name, *(circuit_.iG_), iedge), get(boost::edge_weight, *(circuit_.iG_), iedge), get(boost::edge_degree, *(circuit_.iG_), iedge), get(boost::edge_symbolic, *(circuit_.iG_), iedge), get(boost::edge_any, *(circuit_.iG_), iedge) ); boost::remove_edge(iedge, *(circuit_.iG_)); boost::remove_edge(vedge, *(circuit_.vG_)); circuit_.iG_o_.erase( std::find(circuit_.iG_o_.begin(), circuit_.iG_o_.end(), iedge) ); circuit_.vG_o_.erase( std::find(circuit_.vG_o_.begin(), circuit_.vG_o_.end(), vedge) ); boost::tie(icurr, iend) = boost::edges(*(circuit_.iG_)); boost::tie(vcurr, vend) = boost::edges(*(circuit_.vG_)); } else { ++icurr; ++vcurr; } } if(circuit_.reference_ == vertex) circuit_.reference_ = ireq; requested_.remove(vertex); requested_.push_front(ireq); } } void circuit_builder::add_edge( circuit::vertex_descriptor ivb, circuit::vertex_descriptor iva, circuit::vertex_descriptor vvb, circuit::vertex_descriptor vva, EdgeType type, std::string name, double value, int degree, bool symbolic, std::map props ) { circuit::edge_descriptor iedesc = boost::add_edge(iva, ivb, *circuit_.iG_).first; circuit::edge_descriptor vedesc = boost::add_edge(vva, vvb, *circuit_.vG_).first; circuit_.iG_o_.push_back(iedesc); circuit_.vG_o_.push_back(vedesc); put(boost::edge_type, *circuit_.iG_, iedesc, type); put(boost::edge_name, *circuit_.iG_, iedesc, name); put(boost::edge_weight, *circuit_.iG_, iedesc, value); put(boost::edge_degree, *circuit_.iG_, iedesc, degree); put(boost::edge_symbolic, *circuit_.iG_, iedesc, symbolic); put(boost::edge_any, *circuit_.iG_, iedesc, props); put(boost::edge_type, *circuit_.vG_, vedesc, type); put(boost::edge_name, *circuit_.iG_, vedesc, name); put(boost::edge_weight, *circuit_.iG_, vedesc, value); put(boost::edge_degree, *circuit_.iG_, vedesc, degree); put(boost::edge_symbolic, *circuit_.iG_, vedesc, symbolic); put(boost::edge_any, *circuit_.iG_, vedesc, props); } } QSapecNG-2.0.0-source/src/model/graph.h000644 001750 001750 00000003171 11617757645 020424 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 GRAPH_H #define GRAPH_H #include "boost-sapecng/edge_properties.hpp" #include namespace sapecng { enum EdgeType { YREF, GREF, Z, Y, F, }; typedef boost::adjacency_list < boost::vecS, // OutEdgeList boost::vecS, // VertexList boost::undirectedS, // Directed boost::no_property, // VertexProperties boost::property< boost::edge_type_t, EdgeType, boost::property< boost::edge_name_t, std::string, boost::property< boost::edge_weight_t, double, boost::property< boost::edge_degree_t, int, boost::property< boost::edge_symbolic_t, bool, boost::property< boost::edge_any_t, std::map< std::string, std::string > > > > > > >, // EdgeProperties boost::no_property, // GraphProperties boost::listS // EdgeList > Graph ; } #endif // GRAPH_H QSapecNG-2.0.0-source/src/model/circuit.h000644 001750 001750 00000010436 11617757645 020767 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 CIRCUIT_H #define CIRCUIT_H #include "parser/parser.h" #include "model/graph.h" namespace sapecng { class circuit { friend class circuit_builder; public: typedef boost::graph_traits::vertex_descriptor vertex_descriptor; typedef boost::graph_traits::edge_descriptor edge_descriptor; typedef boost::graph_traits::vertex_iterator vertex_iterator; typedef boost::graph_traits::edge_iterator edge_iterator; circuit(): vG_(0), iG_(0), reference_(0), out_(0) { vG_ = new Graph; iG_ = new Graph; } ~circuit() { delete vG_; delete iG_; } inline const std::map& circuitProperties() const { return props_; } inline const Graph& vGraph() const { return *vG_; } inline const std::vector< edge_descriptor >& vGraph_order() const { return vG_o_; } inline const Graph& iGraph() const { return *iG_; } inline const std::vector< edge_descriptor >& iGraph_order() const { return iG_o_; } inline vertex_descriptor referenceNode() const { return reference_; } inline vertex_descriptor outNode() const { return out_; } private: std::map props_; Graph* vG_; Graph* iG_; std::vector< edge_descriptor > vG_o_; std::vector< edge_descriptor > iG_o_; vertex_descriptor reference_; vertex_descriptor out_; }; class circuit_builder: public abstract_builder { public: circuit_builder(circuit& circuit); void add_circuit_properties(std::map map); void add_circuit_property(std::string name, std::string value); void add_wire_component( std::map props = std::map() ); void add_out_component( unsigned int v, std::map props = std::map() ); void add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props = std::map() ); void add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props = std::map() ); void add_unknow_component( std::map props = std::map() ) { } void begin_userdef_component( std::string name, std::map props = std::map() ) { } void end_userdef_component( std::string name, std::map props = std::map() ) { } void flush(); private: void try_add_block(); void replace_requested(circuit::vertex_descriptor vertex); void add_edge( circuit::vertex_descriptor iva, circuit::vertex_descriptor ivb, circuit::vertex_descriptor vva, circuit::vertex_descriptor vvb, EdgeType type, std::string name, double value, int degree, bool symbolic, std::map props ); private: circuit& circuit_; std::list requested_; bool has_block_; std::string prefix_; std::vector pstack_; }; } #endif // CIRCUIT_H QSapecNG-2.0.0-source/src/model/metacircuit.cpp000644 001750 001750 00000031747 11617757645 022201 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "model/metacircuit.h" #include "boost-sapecng/mrt.hpp" namespace sapecng { std::string metacircuit::as_string(const expression& e) { std::string e_str = ""; if(e.size() != 0) { expression::const_reverse_iterator it = e.rbegin(); e_str += as_string(it->second); if(it->first != 0) { e_str += " * s"; if(it->first > 1) e_str += "^" + stringify(it->first); } for(++it; it != e.rend(); ++it) { e_str += " + " + as_string(it->second); if(it->first != 0) { e_str += " * s"; if(it->first > 1) e_str += "^" + stringify(it->first); } } } if(e_str.size() == 0) e_str = "0"; return e_str; } std::string metacircuit::stringify(double x) { std::ostringstream o; if (!(o << x)); // throw BadConversion("stringify(double)"); return o.str(); } std::string metacircuit::as_string(const degree_expression& e) { std::string e_str = ""; if(e.size() != 0) { if(e.size() > 1) e_str += "( "; degree_expression::const_iterator it = e.begin(); e_str += as_string(*(it++)); for(; it != e.end(); ++it) e_str += " + " + as_string(*it); if(e.size() > 1) e_str += " )"; } return e_str; } std::string metacircuit::as_string(const basic_expression& e) { std::string e_str = ""; int adjust_value = 1; if(e.first < 0) { adjust_value = -1; e_str += "( - "; } bool has_sym_part = (e.second.size() != 0); bool has_num_part = false; if(!has_sym_part || (e.first * adjust_value) != 1) { e_str += stringify(adjust_value * e.first); has_num_part = true; } std::list::const_iterator it = e.second.begin(); if(!has_num_part) e_str += *(it++); for(; it != e.second.end(); ++it) e_str += " * " + *it; if(e.first < 0) e_str += " )"; return e_str; } void metacircuit::operator()(const circuit& circuit) { // clear data raw_.first.clear(); raw_.second.clear(); digit_.first.clear(); digit_.second.clear(); mixed_.first.clear(); mixed_.second.clear(); // use circuit if(num_edges(circuit.vGraph()) == num_edges(circuit.iGraph()) && num_vertices(circuit.vGraph()) == num_vertices(circuit.iGraph()) ) { const Graph& refG = circuit.iGraph(); const std::vector& refO = circuit.iGraph_order(); std::vector< bool > forcedIn(num_edges(refG), false); // put in forced edges typedef boost::property_map::const_type FM_type; FM_type FM = get(boost::edge_type, refG); for(std::vector::size_type i = 0; i < forcedIn.size(); ++i) { if(FM[ refO[i] ] == sapecng::F) forcedIn[i] = true; } // typedef std::vector Seq; typedef std::vector< std::vector > Coll; Coll coll; boost::mrt_two_graphs_common_spanning_trees < sapecng::Graph, std::vector< sapecng::circuit::edge_descriptor >, boost::tree_collector< Coll, Seq >, std::vector< bool > > ( circuit.iGraph(), circuit.iGraph_order(), circuit.vGraph(), circuit.vGraph_order(), boost::tree_collector< Coll, Seq >(coll), forcedIn ); for(Coll::size_type i = 0; i < coll.size(); ++i) { int degree = 0; basic_expression raw_rep = std::make_pair< double, std::list > (1., std::list()); basic_expression digit_rep = std::make_pair< double, std::list > (1., std::list()); basic_expression mixed_rep = std::make_pair< double, std::list > (1., std::list()); Seq inL = coll[i]; int sign = 1; sign *= get_sign( num_vertices(circuit.iGraph()), circuit.iGraph(), circuit.iGraph_order(), inL ); sign *= get_sign( num_vertices(circuit.vGraph()), circuit.vGraph(), circuit.vGraph_order(), inL ); raw_rep.first *= sign; digit_rep.first *= sign; mixed_rep.first *= sign; bool numerator_part = false; bool denominator_part = false; for(Seq::size_type j = 0; j < inL.size(); ++j) { if(inL[j] && (FM[ refO[j] ] == sapecng::GREF)) numerator_part = true; if(inL[j] && (FM[ refO[j] ] == sapecng::YREF)) denominator_part = true; if((inL[j] && FM[ refO[j] ] == sapecng::Y) || (!inL[j] && FM[ refO[j] ] == sapecng::Z) ) { // read all data, creating complex expressions if(get(boost::edge_symbolic, refG)[ refO[j] ]) { if(get(boost::edge_name, refG)[ refO[j] ].size()) mixed_rep.second.push_back(get(boost::edge_name, refG)[ refO[j] ]); } else { mixed_rep.first *= get(boost::edge_weight, refG)[ refO[j] ]; } digit_rep.first *= get(boost::edge_weight, refG)[ refO[j] ]; if(get(boost::edge_name, refG)[ refO[j] ].size()) raw_rep.second.push_back(get(boost::edge_name, refG)[ refO[j] ]); else raw_rep.first *= get(boost::edge_weight, refG)[ refO[j] ]; degree += get(boost::edge_degree, refG)[ refO[j] ]; } } raw_rep.second.sort(); digit_rep.second.sort(); mixed_rep.second.sort(); if(numerator_part) { append(degree, raw_.first, raw_rep); append(degree, digit_.first, digit_rep); append(degree, mixed_.first, mixed_rep); } else if(denominator_part) { append(degree, raw_.second, raw_rep); append(degree, digit_.second, digit_rep); append(degree, mixed_.second, mixed_rep); } } simplify(raw_); simplify(digit_); simplify(mixed_); } } void metacircuit::append(int deg, expression& e, const basic_expression& be) { if(e.find(deg) == e.end()) { e[deg].push_back(be); } else { degree_expression::iterator it; for(it = e[deg].begin(); it != e[deg].end(); ++it) { if(it->second == be.second) { it->first += be.first; break; } } if(it == e[deg].end()) e[deg].push_back(be); } } void metacircuit::simplify(std::pair& p) { compress(p.first); compress(p.second); if(p.first.size() == 0) { expression en; degree_expression den; basic_expression ben = std::make_pair(0., std::list()); den.push_back(ben); en[0] = den; expression ed; degree_expression ded; basic_expression bed = std::make_pair(1., std::list()); ded.push_back(bed); ed[0] = ded; p.first = en; p.second = ed; } else if(p.second.size() == 0) { expression en; degree_expression den; basic_expression ben = std::make_pair(1., std::list()); den.push_back(ben); en[0] = den; expression ed; degree_expression ded; basic_expression bed = std::make_pair(0., std::list()); ded.push_back(bed); ed[0] = ded; p.first = en; p.second = ed; } else { while(p.first.find(0) == p.first.end() && p.second.find(0) == p.second.end()) { expression en; for(expression::iterator it = p.first.begin(); it != p.first.end(); ++it) en[it->first - 1] = it->second; expression ed; for(expression::iterator it = p.second.begin(); it != p.second.end(); ++it) ed[it->first - 1] = it->second; p.first = en; p.second = ed; } if(group_minus(p.first) && group_minus(p.second)) { toggle_minus(p.first); toggle_minus(p.second); } double div = find_div(p.first); if(div != 0 && div != 1) { normalize(p.first, div); normalize(p.second, div); } std::list candidates = p.first.begin()->second.front().second; for(std::list::const_iterator it = candidates.begin(); it != candidates.end(); ++it) { if(has_candidate(p.first, *it) && has_candidate(p.second, *it)) { remove_candidate(p.first, *it); remove_candidate(p.second, *it); } } if(p.first == p.second) { expression en; degree_expression den; basic_expression ben = std::make_pair(1., std::list()); den.push_back(ben); en[0] = den; expression ed; degree_expression ded; basic_expression bed = std::make_pair(1., std::list()); ded.push_back(bed); ed[0] = ded; p.first = en; p.second = ed; } } } void metacircuit::compress(expression& e) { for(expression::iterator it = e.begin(); it != e.end(); ++it) { it->second.remove_if(detail::basic_checker()); if(detail::degree_checker()(*it)) e.erase(it); } } bool metacircuit::group_minus(const expression& e) { bool has_positive = false;; for(expression::const_iterator it = e.begin(); it != e.end() && !has_positive; ++it) { for(degree_expression::const_iterator dit = it->second.begin(); dit != it->second.end(); ++dit) { if(dit->first > 0) has_positive = true; } } return !has_positive; } void metacircuit::toggle_minus(expression& e) { for(expression::iterator it = e.begin(); it != e.end(); ++it) { for(degree_expression::iterator dit = it->second.begin(); dit != it->second.end(); ++dit) dit->first *= -1; } } bool metacircuit::has_candidate(const expression& e, const std::string& c) { bool miss = false; for(expression::const_iterator it = e.begin(); it != e.end() && !miss; ++it) { for(degree_expression::const_iterator dit = it->second.begin(); dit != it->second.end() && !miss; ++dit) { if(std::find(dit->second.begin(), dit->second.end(), c) == dit->second.end()) miss = true; } } return !miss; } void metacircuit::remove_candidate(expression& e, const std::string& c) { for(expression::iterator it = e.begin(); it != e.end(); ++it) { for(degree_expression::iterator dit = it->second.begin(); dit != it->second.end(); ++dit) dit->second.erase(std::find(dit->second.begin(), dit->second.end(), c)); } } double metacircuit::find_div(const expression& e) { degree_expression top_expr = e.rbegin()->second; degree_expression::iterator dit = top_expr.begin(); bool miss = false; double base = std::abs(dit->first); for(++dit; dit != top_expr.end() && !miss; ++dit) if(std::abs(dit->first) != base) miss = true; if(!miss) return base; return 1.; } void metacircuit::normalize(expression& e, double div) { for(expression::iterator it = e.begin(); it != e.end(); ++it) { for(degree_expression::iterator dit = it->second.begin(); dit != it->second.end(); ++dit) dit->first /= div; } } int metacircuit::get_sign( size_t vertices, const Graph& graph, std::vector< circuit::edge_descriptor > order, std::vector inL ) { size_t row = vertices; size_t col = vertices - 1; int* matrix = new int[row * col]; for(size_t i = 0; i < row; ++i) for(size_t j = 0; j < col; ++j) matrix[col * i + j] = 0; for(std::vector::size_type i = 0, j = 0; i < inL.size(); ++i) { if(inL[i]) { matrix[col * source(order[i], graph) + j] = -1; matrix[col * target(order[i], graph) + j] = +1; ++j; } } int det = 1; for(size_t ofs = 0; ofs < col; ++ofs) { for(size_t iter = ofs; iter < row; ++iter) { if(matrix[iter * col + ofs] != 0) { if(iter != ofs) { for(size_t cnt = ofs; cnt < col; ++cnt) { int swap = matrix[iter * col + cnt]; matrix[iter * col + cnt] = matrix[ofs * col + cnt]; matrix[ofs * col + cnt] = swap; } det *= -1; } for(iter = ofs + 1; iter < row; ++iter) { if(matrix[iter * col + ofs] != 0) { int weight = -1 * matrix[ofs * col + ofs] / matrix[iter * col + ofs]; for(size_t cnt = ofs; cnt < col; ++cnt) matrix[iter * col + cnt] += matrix[ofs * col + cnt] * weight; } } iter = row; } } } for(size_t iter = 0; iter < col; ++iter) det *= matrix[iter * col + iter]; delete matrix; return det; } } QSapecNG-2.0.0-source/src/boost-sapecng/grimbleby.hpp000644 001750 001750 00000001641 11617757645 023303 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 . */ // Two Graphs Common Spanning Trees Algorithm #ifndef GRIMBLEBY_H #define GRIMBLEBY_H namespace boost { } // namespace boost #endif // GRIMBLEBY_HQSapecNG-2.0.0-source/src/boost-sapecng/edge_properties.hpp000644 001750 001750 00000002636 11617757645 024514 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 EDGE_PROPERTIES_H #define EDGE_PROPERTIES_H #include namespace boost { struct any_t { typedef edge_property_tag kind; }; struct type_t { typedef edge_property_tag kind; }; struct degree_t { typedef edge_property_tag kind; }; struct symbolic_t { typedef edge_property_tag kind; }; enum edge_any_t { edge_any }; enum edge_type_t { edge_type }; enum edge_degree_t { edge_degree }; enum edge_symbolic_t { edge_symbolic }; BOOST_INSTALL_PROPERTY(edge, any); BOOST_INSTALL_PROPERTY(edge, type); BOOST_INSTALL_PROPERTY(edge, degree); BOOST_INSTALL_PROPERTY(edge, symbolic); } #endif // EDGE_PROPERTIES_H QSapecNG-2.0.0-source/src/boost-sapecng/mrt.hpp000644 001750 001750 00000070340 11617757645 022133 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 . */ // Two Graphs Common Spanning Trees Algorithm #ifndef MRT_H #define MRT_H #include #include #include #include #include #include #include #include #include #include #include namespace boost { namespace detail { template < class TreeMap, class PredMap, class DistMap, class LowMap, class Buffer > struct bridges_visitor: public default_dfs_visitor { bridges_visitor( TreeMap tree, PredMap pred, DistMap dist, LowMap low, Buffer& buffer ): tree_(tree), pred_(pred), dist_(dist), low_(low), buffer_(buffer) { num_ = -1; } template void initialize_vertex(const Vertex& u, const Graph& g) { put(pred_, u, u); put(dist_, u, -1); } template void discover_vertex(const Vertex& u, const Graph& g) { put(dist_, u, ++num_); put(low_, u, get(dist_, u)); } template void tree_edge(const Edge& e, const Graph& g) { put(pred_, target(e, g), source(e, g)); put(tree_, target(e, g), e); } template void back_edge(const Edge& e, const Graph& g) { put(low_, source(e, g), std::min(get(low_, source(e, g)), get(dist_, target(e, g)))); } template void finish_vertex(const Vertex& u, const Graph& g) { Vertex parent = get(pred_, u); if(get(low_, u) > get(dist_, parent)) buffer_.push(get(tree_, u)); put(low_, parent, std::min(get(low_, parent), get(low_, u))); } TreeMap tree_; PredMap pred_; DistMap dist_; LowMap low_; Buffer& buffer_; int num_; }; template struct cycle_finder: public base_visitor< cycle_finder > { typedef on_back_edge event_filter; cycle_finder(): buffer_(0) { } cycle_finder(Buffer* buffer) : buffer_(buffer) { } template void operator()(const Edge& e, const Graph& g) { if(buffer_) buffer_->push(e); } Buffer* buffer_; }; template struct deleted_edge_status { deleted_edge_status() { } deleted_edge_status(DeletedMap map): map_(map) { } template bool operator()(const Edge& e) const { return (!get(map_, e)); } DeletedMap map_; }; template struct inL_edge_status { inL_edge_status() { } inL_edge_status(InLMap map): map_(map) { } template bool operator()(const Edge& e) const { return get(map_, e); } InLMap map_; }; template < class Graph, class Func, class Seq, class Map > void rec_mrt_two_graphs_common_spanning_trees ( const Graph& iG, bimap< bimaps::set_of, bimaps::set_of< typename graph_traits::edge_descriptor > > iG_bimap, Map aiG_inL, Map diG, const Graph& vG, bimap< bimaps::set_of, bimaps::set_of< typename graph_traits::edge_descriptor > > vG_bimap, Map avG_inL, Map dvG, Func func, Seq inL ) { typedef graph_traits GraphTraits; typedef typename GraphTraits::vertex_descriptor vertex_descriptor; typedef typename GraphTraits::edge_descriptor edge_descriptor; typedef typename Seq::size_type seq_size_type; int edges = num_vertices(iG) - 1; // // Using (edges != 0) condition drives to accidental non-tree // ((V-1+1)-fake-tree, named here fat-tree) submission. // Remove this condition acts as a workaround to the fat-trees problem. // Please do not add that condition to improve performance. // // Here previous (wrong) guard is presented: // for(seq_size_type i = 0; (i < inL.size()) && (edges != 0); ++i) // { for(seq_size_type i = 0; i < inL.size(); ++i) if(inL[i]) --edges; if(edges < 0) return; } bool is_tree = (edges == 0); if(is_tree) { func(inL); } else { std::map vertex_color; std::map edge_color; std::stack iG_buf, vG_buf; bool found = false; seq_size_type m; for(seq_size_type j = 0; j < inL.size() && !found; ++j) { if(!inL[j] && !get(diG, iG_bimap.left.at(j)) && !get(dvG, vG_bimap.left.at(j))) { put(aiG_inL, iG_bimap.left.at(j), true); put(avG_inL, vG_bimap.left.at(j), true); undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); if(iG_buf.empty() && vG_buf.empty()) { inL[j] = true; found = true; m = j; } else { while(!iG_buf.empty()) iG_buf.pop(); while(!vG_buf.empty()) vG_buf.pop(); put(aiG_inL, iG_bimap.left.at(j), false); put(avG_inL, vG_bimap.left.at(j), false); } } } if(found) { std::stack iG_buf_copy, vG_buf_copy; for(seq_size_type j = 0; j < inL.size(); ++j) { if(!inL[j] && !get(diG, iG_bimap.left.at(j)) && !get(dvG, vG_bimap.left.at(j))) { put(aiG_inL, iG_bimap.left.at(j), true); put(avG_inL, vG_bimap.left.at(j), true); undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); if(!iG_buf.empty() || !vG_buf.empty()) { while(!iG_buf.empty()) iG_buf.pop(); while(!vG_buf.empty()) vG_buf.pop(); put(diG, iG_bimap.left.at(j), true); put(dvG, vG_bimap.left.at(j), true); iG_buf_copy.push(iG_bimap.left.at(j)); vG_buf_copy.push(vG_bimap.left.at(j)); } put(aiG_inL, iG_bimap.left.at(j), false); put(avG_inL, vG_bimap.left.at(j), false); } } // REC_MRT detail::rec_mrt_two_graphs_common_spanning_trees (iG, iG_bimap, aiG_inL, diG, vG, vG_bimap, aiG_inL, dvG, func, inL); while(!iG_buf_copy.empty()) { put(diG, iG_buf_copy.top(), false); put(dvG, vG_bimap.left.at( iG_bimap.right.at(iG_buf_copy.top())), false); iG_buf_copy.pop(); } while(!vG_buf_copy.empty()) { put(dvG, vG_buf_copy.top(), false); put(diG, iG_bimap.left.at( vG_bimap.right.at(vG_buf_copy.top())), false); vG_buf_copy.pop(); } inL[m] = false; put(aiG_inL, iG_bimap.left.at(m), false); put(avG_inL, vG_bimap.left.at(m), false); put(diG, iG_bimap.left.at(m), true); put(dvG, vG_bimap.left.at(m), true); std::map tree_map; std::map pred_map; std::map dist_map, low_map; detail::bridges_visitor< associative_property_map< std::map >, associative_property_map< std::map >, associative_property_map< std::map >, associative_property_map< std::map >, std::stack > iG_vis( associative_property_map< std::map< vertex_descriptor, edge_descriptor> >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor> >(pred_map), associative_property_map< std::map< vertex_descriptor, int> >(dist_map), associative_property_map< std::map< vertex_descriptor, int> >(low_map), iG_buf ), vG_vis( associative_property_map< std::map< vertex_descriptor, edge_descriptor> >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor> >(pred_map), associative_property_map< std::map< vertex_descriptor, int> >(dist_map), associative_property_map< std::map< vertex_descriptor, int> >(low_map), vG_buf ); undirected_dfs(make_filtered_graph(iG, detail::deleted_edge_status< associative_property_map< std::map > >(diG)), iG_vis, associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs(make_filtered_graph(vG, detail::deleted_edge_status< associative_property_map< std::map > >(dvG)), vG_vis, associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); found = false; std::stack iG_buf_tmp, vG_buf_tmp; while(!iG_buf.empty() && !found) { if(!inL[iG_bimap.right.at(iG_buf.top())]) { put(aiG_inL, iG_buf.top(), true); put(avG_inL, vG_bimap.left.at( iG_bimap.right.at(iG_buf.top())), true); undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf_tmp)), associative_property_map< std::map< vertex_descriptor, default_color_type> >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf_tmp)), associative_property_map< std::map< vertex_descriptor, default_color_type> >(vertex_color), associative_property_map< std::map >(edge_color) ); if(!iG_buf_tmp.empty() || !vG_buf_tmp.empty()) { found = true; } else { while(!iG_buf_tmp.empty()) iG_buf_tmp.pop(); while(!vG_buf_tmp.empty()) vG_buf_tmp.pop(); iG_buf_copy.push(iG_buf.top()); } put(aiG_inL, iG_buf.top(), false); put(avG_inL, vG_bimap.left.at( iG_bimap.right.at(iG_buf.top())), false); } iG_buf.pop(); } while(!vG_buf.empty() && !found) { if(!inL[vG_bimap.right.at(vG_buf.top())]) { put(avG_inL, vG_buf.top(), true); put(aiG_inL, iG_bimap.left.at( vG_bimap.right.at(vG_buf.top())), true); undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf_tmp)), associative_property_map< std::map< vertex_descriptor, default_color_type> >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf_tmp)), associative_property_map< std::map< vertex_descriptor, default_color_type> >(vertex_color), associative_property_map< std::map >(edge_color) ); if(!iG_buf_tmp.empty() || !vG_buf_tmp.empty()) { found = true; } else { while(!iG_buf_tmp.empty()) iG_buf_tmp.pop(); while(!vG_buf_tmp.empty()) vG_buf_tmp.pop(); vG_buf_copy.push(vG_buf.top()); } put(avG_inL, vG_buf.top(), false); put(aiG_inL, iG_bimap.left.at( vG_bimap.right.at(vG_buf.top())), false); } vG_buf.pop(); } if(!found) { while(!iG_buf_copy.empty()) { inL[iG_bimap.right.at(iG_buf_copy.top())] = true; put(aiG_inL, iG_buf_copy.top(), true); put(avG_inL, vG_bimap.left.at( iG_bimap.right.at(iG_buf_copy.top())), true); iG_buf.push(iG_buf_copy.top()); iG_buf_copy.pop(); } while(!vG_buf_copy.empty()) { inL[vG_bimap.right.at(vG_buf_copy.top())] = true; put(avG_inL, vG_buf_copy.top(), true); put(aiG_inL, iG_bimap.left.at( vG_bimap.right.at(vG_buf_copy.top())), true); vG_buf.push(vG_buf_copy.top()); vG_buf_copy.pop(); } // REC_MRT detail::rec_mrt_two_graphs_common_spanning_trees< Graph, Func, Seq, Map> (iG, iG_bimap, aiG_inL, diG, vG, vG_bimap, aiG_inL, dvG, func, inL); while(!iG_buf.empty()) { inL[iG_bimap.right.at(iG_buf.top())] = false; put(aiG_inL, iG_buf.top(), false); put(avG_inL, vG_bimap.left.at( iG_bimap.right.at(iG_buf.top())), false); iG_buf.pop(); } while(!vG_buf.empty()) { inL[vG_bimap.right.at(vG_buf.top())] = false; put(avG_inL, vG_buf.top(), false); put(aiG_inL, iG_bimap.left.at( vG_bimap.right.at(vG_buf.top())), false); vG_buf.pop(); } } put(diG, iG_bimap.left.at(m), false); put(dvG, vG_bimap.left.at(m), false); } } } } // namespace detail template struct tree_collector { public: BOOST_CONCEPT_ASSERT((BackInsertionSequence)); BOOST_CONCEPT_ASSERT((RandomAccessContainer)); BOOST_CONCEPT_ASSERT((CopyConstructible)); typedef typename Coll::value_type coll_value_type; typedef typename Seq::value_type seq_value_type; BOOST_STATIC_ASSERT((is_same::value)); BOOST_STATIC_ASSERT((is_same::value)); tree_collector(Coll& seqs): seqs_(seqs) { } inline void operator()(Seq seq) { seqs_.push_back(seq); } private: Coll& seqs_; }; template < class Graph, class Order, class Func, class Seq > BOOST_CONCEPT_REQUIRES( ((RandomAccessContainer)) ((IncidenceGraphConcept)) ((UnaryFunction)) ((Mutable_RandomAccessContainer)) ((VertexAndEdgeListGraphConcept)), (void) ) mrt_two_graphs_common_spanning_trees ( const Graph& iG, Order iG_map, const Graph& vG, Order vG_map, Func func, Seq inL ) { typedef graph_traits GraphTraits; typedef typename GraphTraits::directed_category directed_category; typedef typename GraphTraits::vertex_descriptor vertex_descriptor; typedef typename GraphTraits::edge_descriptor edge_descriptor; typedef typename GraphTraits::edges_size_type edges_size_type; typedef typename GraphTraits::edge_iterator edge_iterator; typedef typename Seq::const_iterator seq_const_iterator; typedef typename Seq::difference_type seq_diff_type; typedef typename Seq::value_type seq_value_type; typedef typename Seq::size_type seq_size_type; typedef typename Seq::iterator seq_iterator; typedef typename Order::const_iterator order_const_iterator; typedef typename Order::difference_type order_diff_type; typedef typename Order::value_type order_value_type; typedef typename Order::size_type order_size_type; typedef typename Order::iterator order_iterator; BOOST_STATIC_ASSERT((is_same::value)); BOOST_CONCEPT_ASSERT((Convertible)); BOOST_CONCEPT_ASSERT((Convertible)); BOOST_STATIC_ASSERT((is_same::value)); BOOST_STATIC_ASSERT((is_same::value)); if(num_vertices(iG) != num_vertices(vG)) return; if(inL.size() != num_edges(iG) || inL.size() != num_edges(vG)) return; if(iG_map.size() != num_edges(iG) || vG_map.size() != num_edges(vG)) return; typedef bimaps::bimap< bimaps::set_of< int >, bimaps::set_of< order_value_type > > bimap_type; typedef typename bimap_type::value_type bimap_value; bimap_type iG_bimap, vG_bimap; for(order_size_type i = 0; i < iG_map.size(); ++i) iG_bimap.insert(bimap_value(i, iG_map[i])); for(order_size_type i = 0; i < vG_map.size(); ++i) vG_bimap.insert(bimap_value(i, vG_map[i])); edge_iterator current, last; tie(current, last) = edges(iG); for(; current != last; ++current) if(iG_bimap.right.find(*current) == iG_bimap.right.end()) return; tie(current, last) = edges(vG); for(; current != last; ++current) if(vG_bimap.right.find(*current) == vG_bimap.right.end()) return; std::stack iG_buf, vG_buf; std::map tree_map; std::map pred_map; std::map dist_map, low_map; detail::bridges_visitor< associative_property_map< std::map >, associative_property_map< std::map >, associative_property_map< std::map >, associative_property_map< std::map >, std::stack > iG_vis( associative_property_map< std::map< vertex_descriptor, edge_descriptor> >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor> >(pred_map), associative_property_map >(dist_map), associative_property_map >(low_map), iG_buf ), vG_vis( associative_property_map< std::map< vertex_descriptor, edge_descriptor> >(tree_map), associative_property_map< std::map< vertex_descriptor, vertex_descriptor> >(pred_map), associative_property_map >(dist_map), associative_property_map >(low_map), vG_buf ); std::map vertex_color; std::map edge_color; undirected_dfs(iG, iG_vis, associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs(vG, vG_vis, associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); while(!iG_buf.empty()) { inL[iG_bimap.right.at(iG_buf.top())] = true; iG_buf.pop(); } while(!vG_buf.empty()) { inL[vG_bimap.right.at(vG_buf.top())] = true; vG_buf.pop(); } std::map iG_inL, vG_inL; associative_property_map< std::map > aiG_inL(iG_inL), avG_inL(vG_inL); for(seq_size_type i = 0; i < inL.size(); ++i) { if(inL[i]) { put(aiG_inL, iG_bimap.left.at(i), true); put(avG_inL, vG_bimap.left.at(i), true); } else { put(aiG_inL, iG_bimap.left.at(i), false); put(avG_inL, vG_bimap.left.at(i), false); } } undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); if(iG_buf.empty() && vG_buf.empty()) { std::map iG_deleted, vG_deleted; associative_property_map< std::map > diG(iG_deleted); associative_property_map< std::map > dvG(vG_deleted); tie(current, last) = edges(iG); for(;current != last; ++current) put(diG, *current, false); tie(current, last) = edges(vG); for(;current != last; ++current) put(dvG, *current, false); for(seq_size_type j = 0; j < inL.size(); ++j) { if(!inL[j]) { put(aiG_inL, iG_bimap.left.at(j), true); put(avG_inL, vG_bimap.left.at(j), true); undirected_dfs( make_filtered_graph(iG, detail::inL_edge_status< associative_property_map< std::map > >(aiG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&iG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); undirected_dfs( make_filtered_graph(vG, detail::inL_edge_status< associative_property_map< std::map > >(avG_inL)), make_dfs_visitor( detail::cycle_finder< std::stack > (&vG_buf)), associative_property_map< std::map >(vertex_color), associative_property_map< std::map >(edge_color) ); if(!iG_buf.empty() || !vG_buf.empty()) { while(!iG_buf.empty()) iG_buf.pop(); while(!vG_buf.empty()) vG_buf.pop(); put(diG, iG_bimap.left.at(j), true); put(dvG, vG_bimap.left.at(j), true); } put(aiG_inL, iG_bimap.left.at(j), false); put(avG_inL, vG_bimap.left.at(j), false); } } int cc = 0; std::map com_map; cc += connected_components( make_filtered_graph(iG, detail::deleted_edge_status > >(diG)), associative_property_map >(com_map) ); cc += connected_components( make_filtered_graph(vG, detail::deleted_edge_status > >(dvG)), associative_property_map< std::map >(com_map) ); if(cc != 2) return; // REC_MRT detail::rec_mrt_two_graphs_common_spanning_trees > > (iG, iG_bimap, aiG_inL, diG, vG, vG_bimap, aiG_inL, dvG, func, inL); } } template < class Graph, class Func, class Seq > BOOST_CONCEPT_REQUIRES( ((IncidenceGraphConcept)) ((EdgeListGraphConcept)), (void) ) mrt_two_graphs_common_spanning_trees ( const Graph& iG, const Graph& vG, Func func, Seq inL ) { typedef graph_traits GraphTraits; typedef typename GraphTraits::edge_descriptor edge_descriptor; typedef typename GraphTraits::edges_size_type edges_size_type; typedef typename GraphTraits::edge_iterator edge_iterator; std::vector iGO, vGO; edge_iterator curr, last; tie(curr, last) = edges(iG); for(; curr != last; ++curr) iGO.push_back(*curr); tie(curr, last) = edges(vG); for(; curr != last; ++curr) vGO.push_back(*curr); mrt_two_graphs_common_spanning_trees(iG, iGO, vG, vGO, func, inL); } } // namespace boost #endif // MRT_H QSapecNG-2.0.0-source/src/gui/functor/functor_traits.hpp000644 001750 001750 00000014612 11617757645 024077 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 FUNCTOR_TRAITS_H #define FUNCTOR_TRAITS_H #include "functor/functor.hpp" #include #include namespace qsapecng { template < class F > struct functor_traits { }; template < > struct functor_traits< sapecng::magnitude > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Magnitude"); QString functor_traits::xLabel = QObject::tr("Frequency"); QString functor_traits::yLabel = QObject::tr("Value"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::Lines; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::NoSymbol; int functor_traits::ssize = 0; QPen functor_traits::pen = QPen(Qt::SolidPattern, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); template < > struct functor_traits< sapecng::phase > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Phase"); QString functor_traits::xLabel = QObject::tr("Frequency"); QString functor_traits::yLabel = QObject::tr("Value"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::Lines; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::NoSymbol; int functor_traits::ssize = 0; QPen functor_traits::pen = QPen(Qt::SolidPattern, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); template < > struct functor_traits< sapecng::gain > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Gain"); QString functor_traits::xLabel = QObject::tr("Frequency"); QString functor_traits::yLabel = QObject::tr("dB"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::Lines; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::NoSymbol; int functor_traits::ssize = 0; QPen functor_traits::pen = QPen(Qt::SolidPattern, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); template < > struct functor_traits< sapecng::loss > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Loss"); QString functor_traits::xLabel = QObject::tr("Frequency"); QString functor_traits::yLabel = QObject::tr("dB"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::Lines; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::NoSymbol; int functor_traits::ssize = 0; QPen functor_traits::pen = QPen(Qt::SolidPattern, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin); template < > struct functor_traits< sapecng::zeros > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Zeros"); QString functor_traits::xLabel = QObject::tr("Real part"); QString functor_traits::yLabel = QObject::tr("Img part"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::NoCurve; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::Ellipse; int functor_traits::ssize = 7; QPen functor_traits::pen = QPen(); template < > struct functor_traits< sapecng::poles > { static QString title; static QString xLabel; static QString yLabel; static QwtPlotCurve::CurveStyle style; static QwtPlotCurve::CurveAttribute attribute; static QwtSymbol::Style symbol; static int ssize; static QPen pen; }; QString functor_traits::title = QObject::tr("Poles"); QString functor_traits::xLabel = QObject::tr("Real part"); QString functor_traits::yLabel = QObject::tr("Img part"); QwtPlotCurve::CurveStyle functor_traits::style = QwtPlotCurve::NoCurve; QwtPlotCurve::CurveAttribute functor_traits::attribute = QwtPlotCurve::Fitted; QwtSymbol::Style functor_traits::symbol = QwtSymbol::XCross; int functor_traits::ssize = 7; QPen functor_traits::pen = QPen(); } #endif // FUNCTOR_TRAITS_H QSapecNG-2.0.0-source/src/gui/configdialog/configpage.cpp000644 001750 001750 00000021106 11617757645 024067 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/configdialog/configpage.h" #include "gui/settings.h" #include "logger/logger.h" #include #include #include #include #include #include #include #include #include #include #include namespace qsapecng { GeneralPage::GeneralPage(QWidget* parent) : ConfigPage(parent) { Settings settings; /* * Project Settings Box */ QGroupBox* projectSettingsBox = new QGroupBox( tr("Project Settings"), this ); projectSettingsBox->setCheckable(false); projectSettingsBox->setAlignment(Qt::AlignLeft); QHBoxLayout* projectSettingsLayout = new QHBoxLayout; projectSettingsLayout->addWidget( new QLabel(tr("Nothing to do here, that's good!! :-)"))); projectSettingsBox->setLayout(projectSettingsLayout); /* * Log Settings Box */ QGroupBox* logSettingsBox = new QGroupBox( tr("Log Settings"), this ); projectSettingsBox->setCheckable(false); projectSettingsBox->setAlignment(Qt::AlignLeft); logLevel_ = new QComboBox; logLevel_->addItem(tr("Debug"), QVariant(sapecng::Logger::DEBUG)); logLevel_->addItem(tr("Info"), QVariant(sapecng::Logger::INFO)); logLevel_->addItem(tr("Warning"), QVariant(sapecng::Logger::WARNING)); logLevel_->addItem(tr("Error"), QVariant(sapecng::Logger::ERROR)); logLevel_->addItem(tr("Fatal"), QVariant(sapecng::Logger::FATAL)); switch((sapecng::Logger::LogLevel) settings.logLvl()) { case sapecng::Logger::DEBUG: logLevel_->setCurrentIndex(0); break; case sapecng::Logger::INFO: logLevel_->setCurrentIndex(1); break; case sapecng::Logger::WARNING: logLevel_->setCurrentIndex(2); break; case sapecng::Logger::ERROR: logLevel_->setCurrentIndex(3); break; case sapecng::Logger::FATAL: logLevel_->setCurrentIndex(4); break; } connect(logLevel_, SIGNAL(currentIndexChanged(int)), this, SLOT(levelChanged())); QLabel* logLevelLabel = new QLabel(tr("Log Level:")); logLevelLabel->setBuddy(logLevel_); QLabel* logColorLabel = new QLabel(tr("Log Colors")); logColorLabel->setAlignment(Qt::AlignCenter); colorMapper_ = new QSignalMapper(this); debugColor_ = new QPushButton; debugColor_->setAutoFillBackground(true); debugColor_->setText(tr("Debug")); debugColor_->setFlat(true); debugColor_->setPalette(QPalette(settings.debugColor())); colorMapper_->setMapping(debugColor_, sapecng::Logger::DEBUG); connect(debugColor_, SIGNAL(clicked()), colorMapper_, SLOT(map())); infoColor_ = new QPushButton; infoColor_->setAutoFillBackground(true); infoColor_->setText(tr("Info")); infoColor_->setFlat(true); infoColor_->setPalette(QPalette(settings.infoColor())); colorMapper_->setMapping(infoColor_, sapecng::Logger::INFO); connect(infoColor_, SIGNAL(clicked()), colorMapper_, SLOT(map())); warningColor_ = new QPushButton; warningColor_->setAutoFillBackground(true); warningColor_->setText(tr("Warning")); warningColor_->setFlat(true); warningColor_->setPalette(QPalette(settings.warningColor())); colorMapper_->setMapping(warningColor_, sapecng::Logger::WARNING); connect(warningColor_, SIGNAL(clicked()), colorMapper_, SLOT(map())); errorColor_ = new QPushButton; errorColor_->setAutoFillBackground(true); errorColor_->setText(tr("Error")); errorColor_->setFlat(true); errorColor_->setPalette(QPalette(settings.errorColor())); colorMapper_->setMapping(errorColor_, sapecng::Logger::ERROR); connect(errorColor_, SIGNAL(clicked()), colorMapper_, SLOT(map())); fatalColor_ = new QPushButton; fatalColor_->setAutoFillBackground(true); fatalColor_->setText(tr("Fatal")); fatalColor_->setFlat(true); fatalColor_->setPalette(QPalette(settings.fatalColor())); colorMapper_->setMapping(fatalColor_, sapecng::Logger::FATAL); connect(fatalColor_, SIGNAL(clicked()), colorMapper_, SLOT(map())); connect(colorMapper_, SIGNAL(mapped(int)), this, SLOT(changeColor(int))); QHBoxLayout* logLevelLayout = new QHBoxLayout; logLevelLayout->addWidget(logLevelLabel); logLevelLayout->addWidget(logLevel_); QHBoxLayout* logColorLayout = new QHBoxLayout; logColorLayout->addWidget(debugColor_); logColorLayout->addWidget(infoColor_); logColorLayout->addWidget(warningColor_); logColorLayout->addWidget(errorColor_); logColorLayout->addWidget(fatalColor_); QGridLayout* logSettingsLayout = new QGridLayout; logSettingsLayout->addLayout(logLevelLayout, 1, 1); logSettingsLayout->addWidget(logColorLabel, 0, 2); logSettingsLayout->addLayout(logColorLayout, 1, 2); logSettingsLayout->setHorizontalSpacing(32); logSettingsLayout->setColumnStretch(0, 1); logSettingsLayout->setColumnStretch(3, 1); logSettingsBox->setLayout(logSettingsLayout); /* * Main layout */ QVBoxLayout* mainLayout = new QVBoxLayout; mainLayout->addWidget(projectSettingsBox); mainLayout->addWidget(logSettingsBox); mainLayout->addStretch(); setLayout(mainLayout); } void GeneralPage::apply() { SettingsManager manager; manager.setLogLvl(logLevel_->itemData(logLevel_->currentIndex()).toInt()); manager.setDebugColor(debugColor_->palette().color(QPalette::Background)); manager.setInfoColor(infoColor_->palette().color(QPalette::Background)); manager.setWarningColor(warningColor_->palette().color(QPalette::Background)); manager.setErrorColor(errorColor_->palette().color(QPalette::Background)); manager.setFatalColor(fatalColor_->palette().color(QPalette::Background)); setPageModified(false); } void GeneralPage::changeColor(int id) { QColor color; sapecng::Logger::LogLevel level = (sapecng::Logger::LogLevel) id; switch(level) { case sapecng::Logger::DEBUG: color = QColorDialog::getColor( debugColor_->palette().color(QPalette::Background), this, tr("Choose a color") ); if(color.isValid()) { debugColor_->setPalette(QPalette(color)); setPageModified(true); } break; case sapecng::Logger::INFO: color = QColorDialog::getColor( infoColor_->palette().color(QPalette::Background), this, tr("Choose a color") ); if(color.isValid()) { infoColor_->setPalette(QPalette(color)); setPageModified(true); } break; case sapecng::Logger::WARNING: color = QColorDialog::getColor( warningColor_->palette().color(QPalette::Background), this, tr("Choose a color") ); if(color.isValid()) { warningColor_->setPalette(QPalette(color)); setPageModified(true); } break; case sapecng::Logger::ERROR: color = QColorDialog::getColor( errorColor_->palette().color(QPalette::Background), this, tr("Choose a color") ); if(color.isValid()) { errorColor_->setPalette(QPalette(color)); setPageModified(true); } break; case sapecng::Logger::FATAL: color = QColorDialog::getColor( fatalColor_->palette().color(QPalette::Background), this, tr("Choose a color") ); if(color.isValid()) { fatalColor_->setPalette(QPalette(color)); setPageModified(true); } break; } } void GeneralPage::levelChanged() { setPageModified(true); } FontPage::FontPage(QWidget* parent) : ConfigPage(parent) { fontPage_ = new QFontDialog; fontPage_->setCurrentFont(QApplication::font()); fontPage_->setOption(QFontDialog::NoButtons, true); connect(fontPage_, SIGNAL(currentFontChanged(const QFont&)), this, SLOT(currentFontChanged())); QHBoxLayout* mainLayout = new QHBoxLayout; mainLayout->addWidget(fontPage_); setLayout(mainLayout); } void FontPage::apply() { SettingsManager().setAppFont(fontPage_->currentFont()); QApplication::setFont(fontPage_->currentFont()); setPageModified(false); } void FontPage::currentFontChanged() { setPageModified(true); } } QSapecNG-2.0.0-source/src/gui/configdialog/configdialog.cpp000644 001750 001750 00000007676 11617757645 024432 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/configdialog/configdialog.h" #include #include #include #include #include #include #include namespace qsapecng { ConfigDialog::ConfigDialog(QWidget* parent) : QDialog(parent) { pages_ = new QStackedWidget; createPages(); contents_ = new QListWidget; contents_->setViewMode(QListView::IconMode); contents_->setIconSize(QSize(64, 64)); contents_->setMovement(QListView::Static); contents_->setMaximumWidth(128); contents_->setSpacing(12); createIcons(); contents_->setCurrentRow(0); QDialogButtonBox* buttonBox = new QDialogButtonBox; QPushButton* closeButton = buttonBox->addButton(QDialogButtonBox::Close); QPushButton* applyButton = buttonBox->addButton(QDialogButtonBox::Apply); connect(this, SIGNAL(accepted()), this, SLOT(close())); connect(closeButton, SIGNAL(clicked(bool)), this, SLOT(checkBeforeClose())); connect(applyButton, SIGNAL(clicked(bool)), this, SLOT(apply())); QHBoxLayout* subLayout = new QHBoxLayout; subLayout->addWidget(contents_); subLayout->addWidget(pages_, Qt::AlignLeft); QVBoxLayout* mainLayout = new QVBoxLayout; mainLayout->addLayout(subLayout); mainLayout->addStretch(1); mainLayout->addSpacing(12); mainLayout->addWidget(buttonBox); setLayout(mainLayout); setWindowTitle(tr("Configuration")); } void ConfigDialog::changePage(QListWidgetItem* current, QListWidgetItem* previous) { if(!current) { current = previous; pages_->setCurrentIndex(contents_->row(current)); } else { checkPage(); pages_->setCurrentIndex(contents_->row(current)); } } void ConfigDialog::apply() { ConfigPage* page = qobject_cast(pages_->currentWidget()); if(page) page->apply(); } void ConfigDialog::checkPage() { ConfigPage* page = qobject_cast(pages_->currentWidget()); if(page && page->isPageModified()) { QMessageBox::StandardButton button = QMessageBox::question( this, tr("Pending settings"), tr("Pending settings. Apply ?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes ); if(button == QMessageBox::Yes) page->apply(); } } void ConfigDialog::checkBeforeClose() { checkPage(); emit accepted(); } void ConfigDialog::createIcons() { QListWidgetItem* generalButton = new QListWidgetItem(contents_); generalButton->setIcon(QIcon(":/images/qsapecng.png")); generalButton->setText(tr("General")); generalButton->setTextAlignment(Qt::AlignHCenter); generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); QListWidgetItem* fontButton = new QListWidgetItem(contents_); fontButton->setIcon(QIcon(":/images/font.png")); fontButton->setText(tr("Font")); fontButton->setTextAlignment(Qt::AlignHCenter); fontButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled); connect(contents_, SIGNAL(currentItemChanged(QListWidgetItem*, QListWidgetItem*)), this, SLOT(changePage(QListWidgetItem*, QListWidgetItem*))); } void ConfigDialog::createPages() { pages_->addWidget(generalPage_ = new GeneralPage); pages_->addWidget(fontPage_ = new FontPage); } } QSapecNG-2.0.0-source/src/gui/configdialog/configpage.h000644 001750 001750 00000003463 11617757645 023542 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 CONFIGPAGE_H #define CONFIGPAGE_H #include class QComboBox; class QFontDialog; class QPushButton; class QSignalMapper; namespace qsapecng { class ConfigPage: public QWidget { Q_OBJECT public: ConfigPage(QWidget* parent = 0) : QWidget(parent) { setWindowTitle("[*]"); } void setPageModified(bool modified) { setWindowModified(modified); } bool isPageModified() { return isWindowModified(); } virtual void apply() = 0; }; class GeneralPage: public ConfigPage { Q_OBJECT public: GeneralPage(QWidget* parent = 0); void apply(); private slots: void changeColor(int id); void levelChanged(); private: QComboBox* logLevel_; QSignalMapper* colorMapper_; QPushButton* debugColor_; QPushButton* infoColor_; QPushButton* warningColor_; QPushButton* errorColor_; QPushButton* fatalColor_; }; class FontPage: public ConfigPage { Q_OBJECT public: FontPage(QWidget* parent = 0); void apply(); private slots: void currentFontChanged(); private: QFontDialog* fontPage_; }; } #endif // CONFIGDIALOG_H QSapecNG-2.0.0-source/src/gui/configdialog/configdialog.h000644 001750 001750 00000002600 11617757645 024055 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 #include "gui/configdialog/configpage.h" class QListWidget; class QListWidgetItem; class QStackedWidget; namespace qsapecng { class ConfigDialog: public QDialog { Q_OBJECT public: ConfigDialog(QWidget* parent = 0); public slots: void changePage(QListWidgetItem* current, QListWidgetItem* previous); private slots: void apply(); void checkPage(); void checkBeforeClose(); private: void createIcons(); void createPages(); QListWidget* contents_; QStackedWidget* pages_; ConfigPage* generalPage_; ConfigPage* fontPage_; }; } #endif // CONFIGDIALOG_H QSapecNG-2.0.0-source/src/gui/editor/item.cpp000644 001750 001750 00000007252 11617757645 021572 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/item.h" #include "gui/editor/schematicscene.h" #include namespace qsapecng { Item::Item(QGraphicsItem* parent, SchematicScene* scene) : QGraphicsItem(parent, scene) { setFlags( QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable | QGraphicsItem::ItemSendsGeometryChanges ); angle_ = 0; mirrored_ = false; defaultPen_ = QPen( Qt::SolidPattern, 0, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin ); itemPen_ = QPen( Qt::SolidPattern, 1, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin ); } void Item::mirror() { mirrored_ = !mirrored_; scale(-1, 1); translate(-boundingRect().width(), 0); } void Item::rotate() { QTransform transform; switch(angle_) { case 90: angle_ = 180; transform.rotate(180); transform.translate(-boundingRect().width(), -boundingRect().height()); break; case 180: angle_ = 270; transform.rotate(270); transform.translate(-boundingRect().width(), 0); break; case 270: angle_ = 0; transform.rotate(360); transform.translate(0, 0); break; case 0: default: angle_ = 90; transform.rotate(90); transform.translate(0, -boundingRect().height()); } setTransform(transform); if(mirrored_) { scale(-1, 1); translate(-boundingRect().width(), 0); } } void Item::rotateBack() { rotate(); rotate(); rotate(); } bool Item::mirrored() const { return mirrored_; } bool Item::rotated() const { return (angle_ != 0); } uint Item::angle() const { return angle_; } SchematicScene* Item::schematicScene() const { if(!scene()) return 0; return qobject_cast(scene()); } void Item::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) { if(event->button() == Qt::LeftButton) { if(schematicScene()) schematicScene()->rotateSelectedItems(); else rotate(); event->accept(); } else { QGraphicsItem::mouseDoubleClickEvent(event); } } void Item::mouseMoveEvent(QGraphicsSceneMouseEvent* event) { QPointF offset = (event->pos() - event->buttonDownPos(Qt::LeftButton)) * transform() - QPoint(transform().m31(), transform().m32()); offset.setX( offset.toPoint().x() - (offset.toPoint().x() % SchematicScene::GridStep) ); offset.setY( offset.toPoint().y() - (offset.toPoint().y() % SchematicScene::GridStep) ); if(schematicScene()) { schematicScene()->moveSelectedItems(offset); } else { if(scene()) { QList items = scene()->selectedItems(); foreach(QGraphicsItem* item, items) item->moveBy(offset.x(), offset.y()); } } event->accept(); } qreal Item::penWidth() const { return (defaultPen_.width() > itemPen_.width()) ? defaultPen_.width() / 2 : itemPen_.width() / 2; } } QSapecNG-2.0.0-source/src/gui/editor/schematicview.h000644 001750 001750 00000003673 11617757645 023137 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SCHEMATICVIEW_H #define SCHEMATICVIEW_H #include #include namespace qsapecng { class SchematicScene; class SchematicView: public QGraphicsView { Q_OBJECT public: SchematicView(QWidget* parent = 0): QGraphicsView(parent) { setCacheMode(QGraphicsView::CacheBackground); setRenderHints(QPainter::Antialiasing | QPainter::SmoothPixmapTransform); setDragMode(QGraphicsView::RubberBandDrag); // setDragMode(QGraphicsView::ScrollHandDrag); // setAlignment(Qt::AlignCenter); setAlignment(Qt::AlignLeft | Qt::AlignTop); setAcceptDrops(true); setMouseTracking(true); setAttribute(Qt::WA_DeleteOnClose); adjustSize(); } public slots: void zoomIn() { scale(1.2, 1.2); } void zoomOut() { scale(1/1.2, 1/1.2); } void normalSize() { resetTransform(); } void fitToView() { fitInView(sceneRect(), Qt::KeepAspectRatio); ensureVisible(sceneRect()); centerOn(sceneRect().center()); } protected: // void resizeEvent(QResizeEvent* event) // { // setSceneRect(0, 0, event->size().width(), event->size().height()); // QGraphicsView::resizeEvent(event); // } }; } #endif // SCHEMATICVIEW_H QSapecNG-2.0.0-source/src/gui/editor/schematicsceneparser.h000644 001750 001750 00000010754 11617757645 024475 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SCHEMATICSCENEPARSER_H #define SCHEMATICSCENEPARSER_H #include "parser/parser.h" #include "gui/editor/schematicscene.h" #include "gui/editor/item.h" #include #include #include #include #include #include class QGraphicsItem; namespace qsapecng { class SchematicSceneParser: public sapecng::abstract_parser { public: SchematicSceneParser(const SchematicScene& scene); SchematicSceneParser( const SchematicScene& scene, const QList& items ); SchematicSceneParser( const SchematicScene& scene, QGraphicsItem* gItem ); void parse(sapecng::abstract_builder& builder); private: void storeItemData( std::map& props, SchematicScene::SupportedItemType type, Item* item ); void storeLabel( std::map& props, Component* component ); void setupMap(); void parse_item( sapecng::abstract_builder& builder, Item* item ); private: QMap dualMap_; QMap quadMap_; QList items_; int discard_; }; class SchematicSceneBuilder: public sapecng::abstract_builder { public: SchematicSceneBuilder(SchematicScene& scene) : scene_(&scene), offset_(QPointF(0, 0)) { } SchematicSceneBuilder(SchematicScene& scene, const QPointF& offset) : scene_(&scene), offset_(offset) { } void add_circuit_properties(std::map map); void add_circuit_property(std::string name, std::string value); void add_wire_component( std::map props = std::map() ); void add_out_component( unsigned int v, std::map props = std::map() ); void add_dual_component( sapecng::abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props = std::map() ); void add_quad_component( sapecng::abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props = std::map() ); void add_unknow_component( std::map props = std::map() ); void begin_userdef_component( std::string name, std::map props = std::map() ); void end_userdef_component( std::string name, std::map props = std::map() ); void flush(); inline QList items() const { return items_; } private: bool discard(std::map props); void grid_coordinate(Item* item, std::map props); void mirror_and_rotate(Item* item, std::map props); void adjust_label(Component* cmp, std::map props); void setup_properties( Item* item, std::string name, double value, bool symbolic, std::map props ); QStack< QPair< SchematicScene*, QList > > stack_; QList items_; SchematicScene* scene_; QPointF offset_; }; } #endif // SCHEMATICSCENEPARSER_H QSapecNG-2.0.0-source/src/gui/editor/component.cpp000644 001750 001750 00000011223 11617757645 022627 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/component.h" #include "gui/editor/graphicsnode.h" #include "gui/editor/wire.h" #include #include namespace qsapecng { Component::Component( QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene) { label_ = new PropertyTextItem("", this); } Component::Component( QPainterPath path, QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene), path_(path) { label_ = new PropertyTextItem("", this); } Component::Component( QPainterPath path, QList nodes, QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene), path_(path) { label_ = new PropertyTextItem("", this); foreach(QPointF node, nodes) createNode(node); } Component::Component( QPainterPath path, QPointF node, QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene), path_(path), label_(0) { label_ = new PropertyTextItem("", this); createNode(node); } Component::~Component() { foreach(GraphicsNode* node, nodeList_) { if(node->scene()) node->scene()->removeItem(node); delete node; } nodeList_.clear(); } QRectF Component::boundingRect() const { qreal offset = penWidth(); QRectF rect = path_.boundingRect(); rect.setX(rect.x() - offset); rect.setY(rect.y() - offset); rect.setWidth(rect.width() + 2 * offset); rect.setHeight(rect.height() + 2 * offset); return rect; } void Component::paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ) { painter->save(); if(isSelected()) { painter->save(); painter->setPen(defaultPen_); double opacity = painter->opacity(); painter->setOpacity(opacity / OpacityFactor); painter->drawRect(boundingRect()); painter->restore(); } painter->setPen(itemPen_); painter->drawPath(path_); painter->restore(); } void Component::mirror() { if(!angle() || angle() == 180) { if(label_) label_->scale(-1, 1); foreach(GraphicsNode* node, nodeList_) node->scale(-1, 1); } else { if(label_) label_->scale(1, -1); foreach(GraphicsNode* node, nodeList_) node->scale(1, -1); } Item::mirror(); } void Component::rotate() { foreach(GraphicsNode* node, nodeList_) node->rotate(-90); if(label_) label_->rotate(-90); Item::rotate(); } void Component::addNodes(QList nodes) { foreach(QPointF node, nodes) createNode(node); } void Component::addNodes(QPointF node) { createNode(node); } QVector Component::nodes() const { QVector values; foreach(GraphicsNode* node, nodeList_) values.push_back(node->constNode()->value()); return values; } int Component::propagate(int value) { foreach(GraphicsNode* node, nodeList_) { if(!node->node()->isValid()) { node->node()->setValue(value++); foreach(GraphicsNode* setnode, node->itemSet()) if(setnode->owner()->itemType() == Item::Wire) static_cast(setnode->owner())->propagate(value); node->showNodeValue(); } } return value; } void Component::invalidate() { foreach(GraphicsNode* node, nodeList_) { node->node()->setDirty(); node->hideNodeValue(); } } void Component::focusInEvent(QFocusEvent* event) { update(); Item::focusInEvent(event); } void Component::focusOutEvent(QFocusEvent* event) { update(); Item::focusOutEvent(event); } QVariant Component::itemChange(GraphicsItemChange change, const QVariant& value) { if(change == ItemPositionHasChanged || change == ItemTransformHasChanged || change == ItemSceneHasChanged ) foreach(GraphicsNode* node, nodeList_) node->updateItemSet(); return Item::itemChange(change, value); } void Component::createNode(const QPointF& point) { GraphicsNode* node = new GraphicsNode(this); node->setOwner(this); node->setPos(point); nodeList_.append(node); } } QSapecNG-2.0.0-source/src/gui/editor/inode.h000644 001750 001750 00000002450 11617757645 021372 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 INODE_H #define INODE_H #include namespace qsapecng { class Node: public QSharedData { public: Node(): QSharedData() { dirty_ = true; } Node(const Node& other) { dirty_ = other.dirty_; if(!dirty_) value_ = other.value_; } inline int value() const { return value_; } inline void setValue(int value) { value_ = value; dirty_ = false; } inline bool isValid() const { return !dirty_; } inline void setDirty() { dirty_ = true; } private: int value_; bool dirty_; }; } #endif // INODE_H QSapecNG-2.0.0-source/src/gui/editor/item.h000644 001750 001750 00000003352 11617757645 021234 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 ITEM_H #define ITEM_H #include #include class QGraphicsSceneMouseEvent; namespace qsapecng { class SchematicScene; class Item: public QGraphicsItem { public: Item(QGraphicsItem* parent = 0, SchematicScene* scene = 0); virtual ~Item() { } enum { Type = UserType + 1 }; enum { OpacityFactor = 3 }; enum ItemType { Std = Type, Wire, Label }; virtual inline ItemType itemType() const { return Std; } virtual inline int type() const { return Type; } virtual void mirror(); virtual void rotate(); virtual void rotateBack(); bool mirrored() const; bool rotated() const; uint angle() const; SchematicScene* schematicScene() const; protected: virtual void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); virtual void mouseMoveEvent(QGraphicsSceneMouseEvent* event); protected: qreal penWidth() const; QPen defaultPen_; QPen itemPen_; private: bool mirrored_; uint angle_; }; } #endif // ITEM_H QSapecNG-2.0.0-source/src/gui/editor/metacircuit_thread.hpp000644 001750 001750 00000004542 11617757645 024500 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 METACIRCUIT_THREAD_H #define METACIRCUIT_THREAD_H #include "model/metacircuit.h" #include "parser/parser.h" #include #include #include namespace qsapecng { class MetaCircuit_Thread: public QThread { Q_OBJECT public: MetaCircuit_Thread(QObject* parent = 0): QThread(parent) { circuit_ = new sapecng::circuit; } ~MetaCircuit_Thread() { delete circuit_; } inline void apply(sapecng::abstract_parser& parser) { QMutexLocker locker(&mutex_); sapecng::abstract_builder* builder = new sapecng::circuit_builder(*circuit_); parser.parse(*builder); delete builder; } inline sapecng::metacircuit::expression raw_numerator() { QMutexLocker locker(&mutex_); return meta_.raw().first; } inline sapecng::metacircuit::expression raw_denominator() { QMutexLocker locker(&mutex_); return meta_.raw().second; } inline sapecng::metacircuit::expression digit_numerator() { QMutexLocker locker(&mutex_); return meta_.digit().first; } inline sapecng::metacircuit::expression digit_denominator() { QMutexLocker locker(&mutex_); return meta_.digit().second; } inline sapecng::metacircuit::expression mixed_numerator() { QMutexLocker locker(&mutex_); return meta_.mixed().first; } inline sapecng::metacircuit::expression mixed_denominator() { QMutexLocker locker(&mutex_); return meta_.mixed().second; } protected: void run() { QMutexLocker locker(&mutex_); meta_(*circuit_); } private: sapecng::metacircuit meta_; sapecng::circuit* circuit_; QMutex mutex_; }; } #endif // METACIRCUIT_THREAD_H QSapecNG-2.0.0-source/src/gui/editor/wire.cpp000644 001750 001750 00000021555 11617757645 021604 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/wire.h" #include "gui/editor/graphicsnode.h" #include "gui/editor/schematicscene.h" #include #include #include namespace qsapecng { Wire::Wire( QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene), connectedJunctions_(false), mod_(false) { setAcceptDrops(false); setWire(QLineF(0, 0, 0, 0)); itemPen_.setColor(Qt::black); } Wire::Wire( const QLineF& wire, bool connectedJunctions, QGraphicsItem* parent, SchematicScene* scene ) : Item(parent, scene), connectedJunctions_(connectedJunctions), mod_(false) { setAcceptDrops(false); setWire(wire); itemPen_.setColor(Qt::black); } Wire::~Wire() { foreach(GraphicsNode* node, nodes_) { if(node->scene()) node->scene()->removeItem(node); delete node; } nodes_.clear(); } QRectF Wire::boundingRect() const { qreal offset = penWidth() + COLOR_BORDER; if(orientation_ == Qt::Horizontal) return QRectF(0 - offset, 0 - offset, path_.boundingRect().width() + 2 * offset, SchematicScene::GridStep / 2 + 2 * offset); else return QRectF(0 - offset, 0 - offset, SchematicScene::GridStep / 2 + 2 * offset, path_.boundingRect().height() + 2 * offset); } void Wire::paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ) { painter->save(); if(isSelected()) { painter->save(); painter->setPen(defaultPen_); double opacity = painter->opacity(); painter->setOpacity(opacity / OpacityFactor); painter->drawRect(boundingRect()); painter->restore(); } painter->setPen(itemPen_); painter->drawPath(path_); painter->restore(); } Qt::Orientation Wire::orientation() const { return orientation_; } void Wire::setWire(const QLineF& wire) { if(qAbs(wire.angle()) == 0 || qAbs(wire.angle()) == 180) { orientation_ = Qt::Horizontal; } else if(qAbs(wire.angle()) == 90 || qAbs(wire.angle()) == 270) { orientation_ = Qt::Vertical; } else { if(qAbs(wire.dx()) > qAbs(wire.dy())) { orientation_ = Qt::Horizontal; wire.p2().setY(wire.p1().y()); } else { orientation_ = Qt::Vertical; wire.p2().setX(wire.p1().x()); } } QLineF realWire = wire.translated(-wire.p1()); if(realWire.length() < SchematicScene::GridStep) { if(orientation_ == Qt::Horizontal) realWire.setLine(0, 0, SchematicScene::GridStep, 0); else realWire.setLine(0, 0, 0, SchematicScene::GridStep); } QPainterPath path; path.moveTo(0, 0); path.lineTo( qAbs(realWire.x2()), qAbs(realWire.y2()) ); path_ = path; refreshNodeList(); } QPointF Wire::fromPoint() const { return QPointF(0, 0); } QPointF Wire::toPoint() const { if(orientation_ == Qt::Horizontal) return QPointF(path_.boundingRect().width(), 0); else return QPointF(0, path_.boundingRect().height()); } bool Wire::isJunctionsConnected() const { return connectedJunctions_; } void Wire::setConnectedJunctions(bool state) { connectedJunctions_ = state; refreshNodeList(); } void Wire::rotate() { qreal tmp; QPointF from = fromPoint(); QPointF to = toPoint(); tmp = from.x(); from.setX(from.y()); from.setY(tmp); tmp = to.x(); to.setX(to.y()); to.setY(tmp); bool selected = isSelected(); setVisible(false); setWire(QLineF(from, to)); setVisible(true); setSelected(selected); } void Wire::rotateBack() { rotate(); } void Wire::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) { if(schematicScene()) schematicScene()->modifyWire(this); else Item::mouseDoubleClickEvent(event); } void Wire::mouseReleaseEvent(QGraphicsSceneMouseEvent* event) { QList collidingItemList = collidingItems(); foreach(GraphicsNode* node, nodes_) collidingItemList.removeAll(node); foreach(QGraphicsItem* graphicsItem, collidingItemList) { Item* item = qgraphicsitem_cast(graphicsItem); if(item && itemType() == Item::Wire) { Wire* wire = static_cast(graphicsItem); if(wire->orientation() == orientation_ && schematicScene()) schematicScene()->joinWires(this, wire); } } Item::mouseReleaseEvent(event); } QVariant Wire::itemChange(GraphicsItemChange change, const QVariant& value) { if(change == ItemPositionHasChanged || change == ItemTransformHasChanged || change == ItemSceneHasChanged ) foreach(GraphicsNode* node, nodes_) node->updateItemSet(); return Item::itemChange(change, value); } Wire* Wire::joined(Wire* wire) { bool positionChanged = false; QPointF wireFromPoint = mapFromItem(wire, wire->fromPoint()); QPointF wireToPoint = mapFromItem(wire, wire->toPoint()); switch(orientation_) { case Qt::Horizontal: if(fromPoint().x() < wireFromPoint.x()) wireFromPoint = fromPoint(); else positionChanged = true; if(toPoint().x() > wireToPoint.x()) wireToPoint = toPoint(); wireFromPoint.setY(fromPoint().y()); wireToPoint.setY(toPoint().y()); break; case Qt::Vertical: if(fromPoint().y() < wireFromPoint.y()) wireFromPoint = fromPoint(); else positionChanged = true; if(toPoint().y() > wireToPoint.y()) wireToPoint = toPoint(); wireFromPoint.setX(fromPoint().x()); wireToPoint.setX(toPoint().x()); break; } Wire* joined = static_cast( SchematicScene::itemByType(SchematicScene::WireItemType)); joined->setWire(QLineF(wireFromPoint, wireToPoint)); joined->setConnectedJunctions(connectedJunctions_); if(positionChanged) joined->setPos(mapToScene(wireFromPoint)); else joined->setPos(mapToScene(fromPoint())); return joined; } int Wire::propagate(int value) { if(mod_) return value; mod_ = true; int act; bool found = false; foreach(GraphicsNode* node, nodes_) { if(node->node()->isValid()) { act = node->node()->value(); found = true; } } if(!found) act = value++; foreach(GraphicsNode* node, nodes_) { node->node()->setValue(act); foreach(GraphicsNode* setnode, node->itemSet()) if(setnode->owner()->itemType() == Item::Wire) static_cast(setnode->owner())->propagate(act); } if(!found) nodes_.front()->showNodeValue(); QList colors; colors.push_back(QColor(Qt::darkCyan)); colors.push_back(QColor(Qt::darkRed)); colors.push_back(QColor(Qt::darkMagenta)); colors.push_back(QColor(Qt::darkGreen)); colors.push_back(QColor(Qt::darkYellow)); colors.push_back(QColor(Qt::darkBlue)); colors.push_back(QColor(Qt::darkGray)); itemPen_.setWidth(itemPen_.width() + COLOR_BORDER); itemPen_.setColor(colors.at(act % colors.size())); update(); return value; } void Wire::invalidate() { foreach(GraphicsNode* node, nodes_) { node->node()->setDirty(); node->hideNodeValue(); } if(mod_) { itemPen_.setWidth(itemPen_.width() - COLOR_BORDER); itemPen_.setColor(Qt::black); mod_ = false; update(); } } void Wire::refreshNodeList() { foreach(GraphicsNode* node, nodes_) { if(node->scene()) node->scene()->removeItem(node); delete node; } nodes_.clear(); if(connectedJunctions_) { if(orientation_ == Qt::Horizontal) { int size = qAbs((toPoint().x() - fromPoint().x()) / SchematicScene::GridStep) + 1; for(int x = 0; x < size; ++x) { GraphicsNode* node = new GraphicsNode(this); node->setOwner(this); node->setPos(QPointF(x * SchematicScene::GridStep, 0)); nodes_.append(node); } } else { int size = qAbs((toPoint().y() - fromPoint().y()) / SchematicScene::GridStep) + 1; for(int y = 0; y < size; ++y) { GraphicsNode* node = new GraphicsNode(this); node->setOwner(this); node->setPos(QPointF(0, y * SchematicScene::GridStep)); nodes_.append(node); } } } else { GraphicsNode* from = new GraphicsNode(this); GraphicsNode* to = new GraphicsNode(this); from->setOwner(this); to->setOwner(this); from->setPos(fromPoint()); to->setPos(toPoint()); nodes_.append(from); nodes_.append(to); } } } QSapecNG-2.0.0-source/src/gui/editor/graphicsnode.cpp000644 001750 001750 00000012506 11617757645 023300 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/graphicsnode.h" #include #include #include namespace qsapecng { GraphicsNode::GraphicsNode( QGraphicsItem* parent, QGraphicsScene* scene ) : QGraphicsItem(parent, scene) { owner_ = qgraphicsitem_cast(parent); dataPointer_ = new Node; colliding_ = false; label_ = 0; path_.addEllipse( QRectF( QPointF(-Radius, -Radius), QPointF(Radius, Radius) ) ); setAcceptDrops(false); setFlags(0); } GraphicsNode::~GraphicsNode() { foreach(GraphicsNode* item, itemSet_) item->detach(this); dataPointer_.detach(); itemSet_.clear(); } void GraphicsNode::paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ) { if(isColliding()) { painter->save(); painter->setBrush(QBrush(Qt::black, Qt::SolidPattern)); painter->drawPath(path_); painter->restore(); } } QRectF GraphicsNode::boundingRect() const { return path_.boundingRect(); } QPainterPath GraphicsNode::shape() const { return path_; } void GraphicsNode::attach(GraphicsNode* item) { if(item && item != this) { setNode(item->node()); itemSet_.insert(item); colliding_ = true; } } void GraphicsNode::detach(GraphicsNode* item) { itemSet_.remove(item); colliding_ = !itemSet_.isEmpty(); } void GraphicsNode::setNode(Node* node) { dataPointer_ = node; } const Node* GraphicsNode::constNode() const { return dataPointer_.constData(); } Node* GraphicsNode::node() const { return dataPointer_.data(); } void GraphicsNode::updateItemSet() { foreach(GraphicsNode* item, itemSet_) item->detach(this); dataPointer_.detach(); itemSet_.clear(); QList collidingItemList = collidingItems(); foreach(QGraphicsItem* graphicsItem, collidingItemList) { GraphicsNode* item = qgraphicsitem_cast(graphicsItem); if(item) { item->attach(this); itemSet_.insert(item); } } colliding_ = !itemSet_.isEmpty(); } const QSet& GraphicsNode::itemSet() const { return itemSet_; } bool GraphicsNode::isColliding() const { return colliding_; } QVariant GraphicsNode::itemChange(GraphicsItemChange change, const QVariant& value) { if(change == ItemPositionHasChanged) updateItemSet(); return QGraphicsItem::itemChange(change, value); } void GraphicsNode::showNodeValue() { if(!label_) label_ = new QGraphicsTextItem(this); label_->setPlainText(QString::number(node()->value())); updateLabelPosition(); label_->setVisible(true); } void GraphicsNode::hideNodeValue() { if(label_) label_->setVisible(false); } void GraphicsNode::setOwner(Item* owner) { owner_ = owner; } Item* GraphicsNode::owner() const { return owner_; } void GraphicsNode::updateLabelPosition() { QPointF top = QPointF( (boundingRect().width() - label_->boundingRect().width()) / 2, -3/2 * label_->boundingRect().height() ); label_->setPos(top); if(label_->collidingItems().size() == 0) return; QPointF left = QPointF( -label_->boundingRect().width(), (boundingRect().height() - label_->boundingRect().height()) / 2 ); label_->setPos(left); if(label_->collidingItems().size() == 0) return; QPointF bottom = QPointF( (boundingRect().width() - label_->boundingRect().width()) / 2, boundingRect().height() + 1/2 * label_->boundingRect().height() ); label_->setPos(bottom); if(label_->collidingItems().size() == 0) return; QPointF right = QPointF( boundingRect().width(), (boundingRect().height() - label_->boundingRect().height()) / 2 ); label_->setPos(right); if(label_->collidingItems().size() == 0) return; QPointF topLeft = QPointF( -label_->boundingRect().width(), -3/2 * label_->boundingRect().height() ); label_->setPos(topLeft); if(label_->collidingItems().size() == 0) return; QPointF bottomLeft = QPointF( -label_->boundingRect().width(), boundingRect().height() + 1/2 * label_->boundingRect().height() ); label_->setPos(bottomLeft); if(label_->collidingItems().size() == 0) return; QPointF topRight = QPointF( boundingRect().width(), -3/2 * label_->boundingRect().height() ); label_->setPos(topRight); if(label_->collidingItems().size() == 0) return; QPointF bottomRight = QPointF( boundingRect().width(), boundingRect().height() + 1/2 * label_->boundingRect().height() ); label_->setPos(bottomRight); if(label_->collidingItems().size() == 0) return; label_->setPos(top); } } QSapecNG-2.0.0-source/src/gui/editor/component.h000644 001750 001750 00000005130 11617757645 022274 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 COMPONENT_H #define COMPONENT_H #include "gui/editor/item.h" #include "gui/editor/vpiface.h" #include "gui/editor/propertytextitem.hpp" #include #include #include #include class QPainter; class QStyleOptionGraphicsItem; class QFocusEvent; class QGraphicsSceneMouseEvent; class QGraphicsTextItem; class PropertyTextItem; namespace qsapecng { class GraphicsNode; class SchematicScene; class Component: public Item, public ValuePropagationInterface { public: Component( QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); Component( QPainterPath path, QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); Component( QPainterPath path, QList nodes, QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); Component( QPainterPath path, QPointF node, QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); ~Component(); QRectF boundingRect() const; void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); virtual void mirror(); virtual void rotate(); inline PropertyTextItem* label() const { return label_; } void addNodes(QList nodes); void addNodes(QPointF node); QVector nodes() const; inline void setPath(const QPainterPath& path) { path_ = path; } inline QPainterPath path() const { return path_; } public: int propagate(int value); void invalidate(); protected: void focusInEvent(QFocusEvent* event); void focusOutEvent(QFocusEvent* event); QVariant itemChange(GraphicsItemChange change, const QVariant& value); private: void createNode(const QPointF& point); private: QList nodeList_; QPainterPath path_; PropertyTextItem* label_; }; } #endif // COMPONENT_H QSapecNG-2.0.0-source/src/gui/editor/schematiceditor.cpp000644 001750 001750 00000031064 11617757645 024001 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "model/metacircuit.h" #include "parser/parser_factory.h" #include "parser/crc_circuit.h" #include "gui/qtsolutions/qtpropertyeditor/QtProperty" #include "gui/editor/schematiceditor.h" #include "gui/editor/schematicsceneparser.h" #include "gui/settings.h" #include "gui/qlogger.h" #include #include #include #include #include #include #include #include #include #include #include #include #include namespace qsapecng { SchematicEditor::SchematicEditor(QWidget* parent, Qt::WindowFlags flags) : QMdiSubWindow(parent, flags), solved_(false) { scene_ = new SchematicScene(this); init(); } SchematicEditor::SchematicEditor( SchematicScene& scene, QWidget* parent, Qt::WindowFlags flags ) : QMdiSubWindow(parent, flags), solved_(false) { scene_ = &scene; init(); } QString SchematicEditor::userFriendlyCurrentFile() const { return strippedName(curFile_); } QString SchematicEditor::currentFile() const { return curFile_; } bool SchematicEditor::accept(WorkPlane& workplane) { if(!solved_) { QMessageBox::StandardButton ret; ret = QMessageBox::warning(this, tr("Dirty circuit"), QString("'%1'").arg(userFriendlyCurrentFile() + tr(" has been modified.\n Solve the circuit?")), QMessageBox::Yes | QMessageBox::No | QMessageBox::Cancel ); if(ret == QMessageBox::Cancel) return false; if(ret == QMessageBox::Yes) { solve(); return false; } } std::map values; QList items = scene_->activeItems(); while(!items.isEmpty()) { Item* item = items.takeFirst(); if(SchematicScene::itemType(item) == SchematicScene::UserDefItemType) { items.append(item->data(101) .value< QPointer >()->activeItems()); } else { if(SchematicScene::itemProperties(item)) { QtProperty* props = SchematicScene::itemProperties(item); QHash subs; if(props) { subs.insert("__NAME", props->valueText()); foreach(QtProperty* prop, props->subProperties()) subs.insert(prop->propertyName(), prop->valueText()); } if(subs.contains("Value")) values[subs.value("__NAME").toStdString()] = subs.value("Value").toDouble(); else if(subs.contains("M")) values[subs.value("__NAME").toStdString()] = subs.value("M").toDouble(); if(subs.contains("lp:name") && subs.contains("lp:value")) values[subs.value("lp:name").toStdString()] = subs.value("lp:value").toDouble(); if(subs.contains("ls:name") && subs.contains("ls:value")) values[subs.value("ls:name").toStdString()] = subs.value("ls:value").toDouble(); } } } workplane.setData( values, solver_.raw_numerator(), solver_.raw_denominator() ); return true; } bool SchematicEditor::save() { if(isUntitled_) { return saveAs(); } else { return saveFile(curFile_); } } bool SchematicEditor::saveAs() { QString fileName = QFileDialog::getSaveFileName( this, tr("Save As"), Settings().workspace(), tr("%1;;%2;;%3") .arg(tr("Info files (*.info)")) .arg(tr("XML files (*.xml)")) .arg(tr("Netlist files (*.crc)")) ); if(fileName.isEmpty()) return false; return saveFile(fileName); } bool SchematicEditor::saveFile(const QString& fileName) { QFile file(fileName); if(!file.open(QFile::WriteOnly | QFile::Text)) { QMessageBox::warning(this, tr("Write file"), tr("Unable to write file ") + QString("%1:\n%2.") .arg(fileName) .arg(file.errorString()) ); return false; } else { file.close(); } QLogger::info(QObject::tr("Saving file...")); // QApplication::setOverrideCursor(Qt::WaitCursor); QCursor cur = cursor(); setCursor(Qt::WaitCursor); QFileInfo fileInfo(file); std::ofstream out_file(QFile::encodeName(fileName)); sapecng::abstract_builder* out = sapecng::builder_factory::builder( fileInfo.suffix().toStdString(), out_file); SchematicSceneParser* parser = new SchematicSceneParser(*scene_); if(out) parser->parse(*out); delete parser; delete out; setCurrentFile(fileName); externalCleanChanged_ = true; scene_->undoRedoStack()->setClean(); emit fileSaved(fileName); // QApplication::restoreOverrideCursor(); setCursor(cur); return true; } bool SchematicEditor::loadFile(const QString& fileName) { if(maybeSave()) { QFile file(fileName); if(!file.open(QFile::ReadOnly | QFile::Text)) { QMessageBox::warning(this, tr("Read file"), tr("Unable to read file ") + QString("%1:\n%2.") .arg(fileName) .arg(file.errorString()) ); return false; } else { file.close(); } scene_->clearSchematicScene(); QLogger::info(QObject::tr("Loading file...")); // QApplication::setOverrideCursor(Qt::WaitCursor); QCursor cur = cursor(); setCursor(Qt::WaitCursor); SchematicSceneBuilder* out = new SchematicSceneBuilder(*scene_); QFileInfo fileInfo(file); std::ifstream in_file(QFile::encodeName(fileName)); sapecng::abstract_parser* parser = sapecng::parser_factory::parser( fileInfo.suffix().toStdString(), in_file); if(parser) { scene_->undoRedoStack()->beginMacro(QObject::tr("Load file")); parser->parse(*out); scene_->undoRedoStack()->endMacro(); } delete parser; delete out; setCurrentFile(fileName); externalCleanChanged_ = true; scene_->undoRedoStack()->setClean(); emit fileLoaded(fileName); // QApplication::restoreOverrideCursor(); setCursor(cur); } return true; } void SchematicEditor::solve() { if(solved_) { showResult(); return; } view_->setInteractive(false); scene_->assignNodes(); // QApplication::setOverrideCursor(Qt::WaitCursor); setCursor(Qt::WaitCursor); QLogger::info(QObject::tr("Generating circuit...")); SchematicSceneParser* parser = new SchematicSceneParser(*scene_); solver_.apply(*parser); delete parser; QLogger::info(QObject::tr("Solving...")); solver_.start(); } void SchematicEditor::reset() { scene_->clearSchematicScene(); } void SchematicEditor::fileNameChanged(const QString& fileName) { setWindowTitle(fileName + "[*]"); } void SchematicEditor::finished() { // QApplication::restoreOverrideCursor(); setCursor(Qt::ArrowCursor); view_->setInteractive(true); solved_ = true; showResult(); emit solved(); } void SchematicEditor::stateChanged( Qt::WindowStates oldState, Qt::WindowStates newState) { scene_->undoRedoStack()->setActive( newState.testFlag(Qt::WindowActive) && !isRunning()); } void SchematicEditor::showUserDef(SchematicScene& scene) { SchematicEditor* editor = new SchematicEditor(scene, this); editor->scene().undoRedoStack()->setClean(); connect(editor, SIGNAL(dirtyChanged(bool)), this, SLOT(externalCleanChanged())); connect(this, SIGNAL(aboutToCloseEditor()), editor, SLOT(close())); emit(stackEditor(editor)); } void SchematicEditor::externalCleanChanged() { externalCleanChanged_ = false; cleanChanged(); } void SchematicEditor::cleanChanged(bool clean) { setWindowModified(!externalCleanChanged_ || !clean); setDirty(); } void SchematicEditor::closeEvent(QCloseEvent *event) { if(maybeSave()) { if(solver_.isRunning()) solver_.wait(); QMdiSubWindow::closeEvent(event); emit(aboutToCloseEditor()); event->accept(); } else { event->ignore(); } } void SchematicEditor::setDirty() { solved_ = false; emit dirtyChanged(solved_); } void SchematicEditor::showResult() { std::string num, den, expr; QPlainTextEdit* result = new QPlainTextEdit; result->setReadOnly(true); result->setUndoRedoEnabled(false); result->setLineWrapMode(QPlainTextEdit::NoWrap); result->setWordWrapMode(QTextOption::NoWrap); result->setTextInteractionFlags( Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard ); result->appendPlainText("# " + currentFile() + "\n"); expr.clear(); num = sapecng::metacircuit::as_string(solver_.mixed_numerator()); den = sapecng::metacircuit::as_string(solver_.mixed_denominator()); expr.append(num); expr.append("\n"); expr.append(std::string( (num.size() > den.size() ? num.size() : den.size()) * 3/2, '-')); expr.append("\n"); expr.append(den); result->appendPlainText(tr("Result:\n")); result->appendPlainText(QString::fromStdString(expr)); expr.clear(); num = sapecng::metacircuit::as_string(solver_.raw_numerator()); den = sapecng::metacircuit::as_string(solver_.raw_denominator()); expr.append(num); expr.append("\n"); expr.append(std::string( (num.size() > den.size() ? num.size() : den.size()) * 3/2, '-')); expr.append("\n"); expr.append(den); result->appendPlainText(tr("\n\nRaw:\n")); result->appendPlainText(QString::fromStdString(expr)); expr.clear(); num = sapecng::metacircuit::as_string(solver_.digit_numerator()); den = sapecng::metacircuit::as_string(solver_.digit_denominator()); expr.append(num); expr.append("\n"); expr.append(std::string( (num.size() > den.size() ? num.size() : den.size()) * 3/2, '-')); expr.append("\n"); expr.append(den); result->appendPlainText(tr("\n\nDigit:\n")); result->appendPlainText(QString::fromStdString(expr)); QDialogButtonBox* button = new QDialogButtonBox(QDialogButtonBox::Ok); QLayout* layout = new QVBoxLayout; layout->addWidget(result); layout->addWidget(button); QDialog dialog(this); dialog.setLayout(layout); connect(button, SIGNAL(accepted()), &dialog, SLOT(accept())); dialog.exec(); } void SchematicEditor::setCurrentFile(const QString& fileName) { curFile_ = QFileInfo(fileName).canonicalFilePath(); isUntitled_ = false; setWindowModified(false); setWindowTitle(userFriendlyCurrentFile() + "[*]"); } QString SchematicEditor::strippedName(const QString& fullFileName) const { return QFileInfo(fullFileName).fileName(); } bool SchematicEditor::maybeSave() { if(isWindowModified()) { QMessageBox::StandardButton ret; ret = QMessageBox::warning(this, tr("Save file"), tr("'%1'").arg(userFriendlyCurrentFile() + QString(" has been modified.\n Save the file?")), QMessageBox::Save | QMessageBox::Discard | QMessageBox::Cancel ); if(ret == QMessageBox::Save) return save(); else if(ret == QMessageBox::Cancel) return false; } return true; } void SchematicEditor::init() { view_ = new SchematicView(this); view_->setScene(scene_); connect(scene_, SIGNAL(sceneRectChanged(const QRectF&)), view_, SLOT(updateSceneRect(const QRectF&))); // scene_->setSceneRect(0, 0, 1024, 768); scene_->setSceneRect(QRectF()); scene_->addRect(0, 0, 1E-99, 1E-99)->setVisible(false); setWidget(view_); connect(scene_, SIGNAL(propertyChanged()), this, SLOT(externalCleanChanged())); connect(scene_, SIGNAL(showUserDef(SchematicScene&)), this, SLOT(showUserDef(SchematicScene&))); connect(scene_->undoRedoStack(), SIGNAL(cleanChanged(bool)), this, SLOT(cleanChanged(bool))); connect(scene_->undoRedoStack(), SIGNAL(indexChanged(int)), this, SLOT(cleanChanged())); connect(&solver_, SIGNAL(finished()), this, SLOT(finished())); connect(this, SIGNAL(windowStateChanged(Qt::WindowStates, Qt::WindowStates)), this, SLOT(stateChanged(Qt::WindowStates, Qt::WindowStates))); curFile_ = tr("Untitled"); isUntitled_ = true; externalCleanChanged_ = true; setGeometry(0, 0, 640, 480); setWindowTitle(curFile_ + "[*]"); setWindowIcon(QIcon(":/images/grid.png")); setAttribute(Qt::WA_DeleteOnClose); } } QSapecNG-2.0.0-source/src/gui/editor/wire.h000644 001750 001750 00000004333 11617757645 021244 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 WIRE_H #define WIRE_H #include "gui/editor/item.h" #include "gui/editor/vpiface.h" #include #include #include namespace qsapecng { class SchematicScene; class GraphicsNode; class Wire: public Item, public ValuePropagationInterface { public: Wire( QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); Wire( const QLineF& wire, bool connectedJunctions = true, QGraphicsItem* parent = 0, SchematicScene* scene = 0 ); ~Wire(); inline ItemType itemType() const { return Item::Wire; } QRectF boundingRect() const; void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); Qt::Orientation orientation() const; void setWire(const QLineF& wire); QPointF fromPoint() const; QPointF toPoint() const; bool isJunctionsConnected() const; void setConnectedJunctions(bool state); void mirror() { } void rotate(); void rotateBack(); Wire* joined(Wire* wire); public: int propagate(int value); void invalidate(); protected: void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); void mouseReleaseEvent(QGraphicsSceneMouseEvent* event); QVariant itemChange(GraphicsItemChange change, const QVariant& value); private: void refreshNodeList(); private: enum { COLOR_BORDER = 2 }; QPainterPath path_; Qt::Orientation orientation_; QList nodes_; bool connectedJunctions_; bool mod_; }; } #endif // WIRE_H QSapecNG-2.0.0-source/src/gui/editor/graphicsnode.h000644 001750 001750 00000004172 11617757645 022745 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 GRAPHICSNODE_H #define GRAPHICSNODE_H #include "gui/editor/inode.h" #include "gui/editor/item.h" #include #include #include #include namespace qsapecng { class GraphicsNode: public QGraphicsItem { public: enum { Type = UserType + 128 }; enum { Radius = 1 }; public: GraphicsNode( QGraphicsItem* parent = 0, QGraphicsScene* scene = 0 ); virtual ~GraphicsNode(); inline int type() const { return GraphicsNode::Type; } void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); QRectF boundingRect() const; QPainterPath shape() const; void attach(GraphicsNode* item); void detach(GraphicsNode* item); void setNode(Node* node); const Node* constNode() const; Node* node() const; void updateItemSet(); const QSet& itemSet() const; bool isColliding() const; void showNodeValue(); void hideNodeValue(); void setOwner(Item* owner); Item* owner() const; protected: virtual QVariant itemChange(GraphicsItemChange change, const QVariant& value); private: void updateLabelPosition(); private: Item* owner_; bool colliding_; QSet itemSet_; QExplicitlySharedDataPointer dataPointer_; QGraphicsTextItem* label_; QPainterPath path_; }; } #endif // GRAPHICSNODE_H QSapecNG-2.0.0-source/src/gui/editor/schematiceditor.h000644 001750 001750 00000005427 11617757645 023452 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SCHEMATICEDITOR_H #define SCHEMATICEDITOR_H #include "gui/editor/schematicview.h" #include "gui/editor/schematicscene.h" #include "gui/editor/metacircuit_thread.hpp" #include "gui/workplane/workplane.h" #include #include class QFocusEvent; namespace qsapecng { class SchematicEditor: public QMdiSubWindow { Q_OBJECT public: SchematicEditor(QWidget* parent = 0, Qt::WindowFlags flags = 0); SchematicEditor( SchematicScene& scene, QWidget* parent = 0, Qt::WindowFlags flags = 0 ); inline SchematicView& view() const { return *view_; } inline SchematicScene& scene() const { return *scene_; } inline bool isUntitled() const { return isUntitled_; } QString userFriendlyCurrentFile() const; QString currentFile() const; inline bool isRunning() const { return solver_.isRunning(); } inline bool isSolved() const { return solved_; } bool accept(WorkPlane& workplane); public slots: bool save(); bool saveAs(); bool saveFile(const QString& fileName); bool loadFile(const QString& fileName); void solve(); signals: void stackEditor(SchematicEditor* editor); void aboutToCloseEditor(); void dirtyChanged(bool dirty); void fileSaved(const QString& fileName); void fileLoaded(const QString& fileName); void solved(); private slots: void reset(); void fileNameChanged(const QString& fileName); void finished(); void stateChanged(Qt::WindowStates oldState, Qt::WindowStates newState); void showUserDef(SchematicScene& scene); void cleanChanged(bool clean = false); void externalCleanChanged(); protected: void closeEvent(QCloseEvent* event); private: void setDirty(); void showResult(); void setCurrentFile(const QString& fileName); QString strippedName(const QString& fullFileName) const; bool maybeSave(); void init(); private: MetaCircuit_Thread solver_; bool solved_; SchematicView* view_; SchematicScene* scene_; QString curFile_; bool isUntitled_; bool externalCleanChanged_; }; } #endif // SCHEMATICEDITOR_H QSapecNG-2.0.0-source/src/gui/editor/propertytextitem.hpp000644 001750 001750 00000003421 11617757645 024303 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 PROPERTYTEXTITEM_H #define PROPERTYTEXTITEM_H #include #include "gui/qtsolutions/qtpropertyeditor/QtProperty" namespace qsapecng { class PropertyTextItem: public QGraphicsTextItem { Q_OBJECT public: PropertyTextItem(QGraphicsItem* parent = 0) : QGraphicsTextItem(parent), property_(0) { setFont(QFont("Times", 10, QFont::Light)); setTextInteractionFlags(Qt::NoTextInteraction); setFlags(QGraphicsItem::ItemIsMovable); } PropertyTextItem(const QString& text, QGraphicsItem* parent = 0) : QGraphicsTextItem(text, parent), property_(0) { setFont(QFont("Times", 10, QFont::Light)); setTextInteractionFlags(Qt::NoTextInteraction); setFlags(QGraphicsItem::ItemIsMovable); } inline void setProperty(QtProperty* property) { property_ = property; } public slots: void valueChanged(QtProperty* property, const QString& value) { if(property == property_) setPlainText(value); } private: QtProperty* property_; }; } #endif // PROPERTYTEXTITEM_H QSapecNG-2.0.0-source/src/gui/editor/schematicscene.cpp000644 001750 001750 00000171203 11617757645 023610 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "parser/parser_factory.h" #include "gui/editor/schematicscene.h" #include "gui/editor/schematicsceneparser.h" #include "gui/editor/undoredocommand.h" #include "gui/editor/component.h" #include "gui/editor/label.h" #include "gui/editor/wire.h" #include "gui/editor/item.h" #include "gui/settings.h" #include "gui/qlogger.h" #include "gui/qtsolutions/qtpropertyeditor/QtBoolPropertyManager" #include "gui/qtsolutions/qtpropertyeditor/QtGroupPropertyManager" #include "gui/qtsolutions/qtpropertyeditor/QtStringPropertyManager" #include "gui/qtsolutions/qtpropertyeditor/QtLineEditFactory" #include "gui/qtsolutions/qtpropertyeditor/QtCheckBoxFactory" #include "gui/qtsolutions/qtpropertyeditor/QtAbstractPropertyBrowser" #include "gui/qtsolutions/qtpropertyeditor/QtProperty" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace qsapecng { QPainterPath SchematicScene::nilPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(0, step); path.lineTo(step, step); path.lineTo(step, 0); path.lineTo(0, 0); return path; } QPainterPath SchematicScene::groundPath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, step); path.moveTo(step - step / 2, step); path.lineTo(step + step / 2, step); path.moveTo(step - step / 4, step + step / 3); path.lineTo(step + step / 4, step + step / 3); path.moveTo(step - step / 6, step + step * 2/3); path.lineTo(step + step / 6, step + step * 2/3); path.addRect(step, 2 * step, 1E-99, 1E-99); return path; } QPainterPath SchematicScene::portPath() { QPainterPath path; uint step = GridStep; path.addRect(0, 0, 1E-99, 1E-99); path.addRect(2 * step, 2 * step, 1E-99, 1E-99); path.moveTo(step / 3, step); path.arcTo( QRectF(step / 3, step / 3, 2 * step - step * 2 / 3, 2 * step - step * 2 / 3), 180, 360 ); path.moveTo(step / 2, step); path.arcTo( QRectF(step / 2, step / 2, step, step), 180, 360 ); return path; } QPainterPath SchematicScene::outPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, step); path.lineTo(step, step); path.arcTo( QRectF(step, step / 2, step, step), 180, 360 ); return path; } QPainterPath SchematicScene::voltmeterPath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, step + step / 2); path.moveTo(step, 3 * step + step / 2); path.arcTo( QRectF( QPointF(0, step + step / 2), QPointF(2 * step, 3 * step + step / 2) ), -90, 360 ); path.lineTo(step, 5 * step); path.moveTo(step - step / 2, 2 * step); path.lineTo(step, 3 * step); path.lineTo(step + step / 2, 2 * step); path.moveTo(step + step / 2, step / 2 - step / 4); path.lineTo(step + step / 2, step / 2 + step / 4); path.moveTo(step + step / 2 - step / 4, step / 2); path.lineTo(step + step / 2 + step / 4, step / 2); path.moveTo(step + step / 2 - step / 4, 4 * step + step / 2); path.lineTo(step + step / 2 + step / 4, 4 * step + step / 2); return path; } QPainterPath SchematicScene::ammeterPath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, step + step / 2); path.moveTo(step, 3 * step + step / 2); path.arcTo( QRectF( QPointF(0, step + step / 2), QPointF(2 * step, 3 * step + step / 2) ), -90, 360 ); path.lineTo(step, 5 * step); path.moveTo(step + step / 2, 3 * step); path.lineTo(step, 2 * step); path.lineTo(step - step / 2, 3 * step); path.moveTo(step + step / 4, 2 * step + step / 2); path.lineTo(step - step / 4, 2 * step + step / 2); path.moveTo(step / 2, 5 * step / 4); path.lineTo(step / 2, step / 4); path.moveTo(step / 2 - step / 4, 2 * step / 4); path.lineTo(step / 2, step / 4); path.moveTo(step / 2 + step / 4, 2 * step / 4); path.lineTo(step / 2, step / 4); return path; } QPainterPath SchematicScene::capacitorPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, step); path.lineTo(2 * step, step); path.moveTo(2 * step, 0); path.lineTo(2 * step, 2 * step); path.moveTo(3 * step, 0); path.lineTo(3 * step, 2 * step); path.moveTo(3 * step, step); path.lineTo(5 * step, step); return path; } QPainterPath SchematicScene::cccsPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(2 * step, 0); path.lineTo(2 * step, step + step / 2); path.lineTo(step, 2 * step + step / 2); path.lineTo(2 * step, 3 * step + step / 2); path.lineTo(3 * step, 2 * step + step / 2); path.lineTo(2 * step, step + step / 2); path.moveTo(2 * step, 3 * step + step / 2); path.lineTo(2 * step, 5 * step); path.lineTo(0, 5 * step); path.moveTo(2 * step, 3 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(2 * step - step / 4, 2 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(2 * step + step / 4, 2 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(5 * step, 0); path.lineTo(4 * step, 0); path.lineTo(4 * step, 5 * step); path.lineTo(5 * step, 5 * step); path.moveTo(4 * step - step / 3, 2 * step + step / 4); path.lineTo(4 * step, step - step / 4); path.moveTo(4 * step + step / 3, 2 * step + step / 4); path.lineTo(4 * step, step - step / 4); return path; } QPainterPath SchematicScene::ccvsPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(2 * step, 0); path.lineTo(2 * step, step + step / 2); path.lineTo(step, 2 * step + step / 2); path.lineTo(2 * step, 3 * step + step / 2); path.lineTo(3 * step, 2 * step + step / 2); path.lineTo(2 * step, step + step / 2); path.moveTo(2 * step, 3 * step + step / 2); path.lineTo(2 * step, 5 * step); path.lineTo(0, 5 * step); path.moveTo(2 * step, 2 * step - step / 4); path.lineTo(2 * step, 2 * step + step / 4); path.moveTo(2 * step - step / 4, 2 * step); path.lineTo(2 * step + step / 4, 2 * step); path.moveTo(2 * step - step / 4, 3 * step); path.lineTo(2 * step + step / 4, 3 * step); path.moveTo(5 * step, 0); path.lineTo(4 * step, 0); path.lineTo(4 * step, 5 * step); path.lineTo(5 * step, 5 * step); // path.moveTo(4 * step - step / 3, 2 * step + step / 4); // path.lineTo(4 * step, step - step / 4); // path.moveTo(4 * step + step / 3, 2 * step + step / 4); // path.lineTo(4 * step, step - step / 4); path.moveTo(4 * step - step / 3, 3 * step - step / 4); path.lineTo(4 * step, 4 * step + step / 4); path.moveTo(4 * step + step / 3, 3 * step - step / 4); path.lineTo(4 * step, 4 * step + step / 4); return path; } QPainterPath SchematicScene::conductancePath() { QPainterPath path; uint step = GridStep; path.moveTo(0, step); path.lineTo(step, step); path.lineTo(step + step / 2, 0); path.lineTo(2 * step, 2 * step); path.lineTo(2 * step + step / 2, 0); path.lineTo(3 * step, 2 * step); path.lineTo(3 * step + step / 2, 0); path.lineTo(4 * step, step); path.lineTo(5 * step, step); return path; } QPainterPath SchematicScene::currentSourcePath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, step + step / 2); path.moveTo(step, 3 * step + step / 2); path.arcTo( QRectF( QPointF(0, step + step / 2), QPointF(2 * step, 3 * step + step / 2) ), -90, 360 ); path.lineTo(step, 5 * step); path.moveTo(step, 3 * step + step / 4); path.lineTo(step, 2 * step - step / 4); path.moveTo(step - step / 4, 2 * step + step / 4); path.lineTo(step, 2 * step - step / 4); path.moveTo(step + step / 4, 2 * step + step / 4); path.lineTo(step, 2 * step - step / 4); return path; } QPainterPath SchematicScene::inductorPath() { QPainterPath path; uint step = GridStep; path.addRect(0, 2 * step, 1E-99, 1E-99); path.moveTo(5 * step, step); path.lineTo(4 * step, step); path.arcTo( QRectF( QPointF(3 * step, 0), QPointF(4 * step, 2 * step) ), 0, 180 ); path.arcTo( QRectF( QPointF(2 * step, 0), QPointF(3 * step, 2 * step) ), 0, 180 ); path.arcTo( QRectF( QPointF(step, 0), QPointF(2 * step, 2 * step) ), 0, 180 ); path.lineTo(0, step); return path; } QPainterPath SchematicScene::opAmplPath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, 4 * step); path.lineTo(4 * step, 2 * step); path.lineTo(step, 0); path.moveTo(0, step); path.lineTo(step, step); path.moveTo(0, 3 * step); path.lineTo(step, 3 * step); path.moveTo(4 * step, 2 * step); path.lineTo(5 * step, 2 * step); path.moveTo(step + step / 2 - step / 4, step); path.lineTo(step + step / 2 + step / 4, step); path.moveTo(step + step / 2 - step / 4, 3 * step); path.lineTo(step + step / 2 + step / 4, 3 * step); path.moveTo(step + step / 2, 3 * step - step / 4); path.lineTo(step + step / 2, 3 * step + step / 4); return path; } QPainterPath SchematicScene::resistorPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, step); path.lineTo(step, step); path.lineTo(step + step / 2, 0); path.lineTo(2 * step, 2 * step); path.lineTo(2 * step + step / 2, 0); path.lineTo(3 * step, 2 * step); path.lineTo(3 * step + step / 2, 0); path.lineTo(4 * step, step); path.lineTo(5 * step, step); return path; } QPainterPath SchematicScene::vccsPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(2 * step, 0); path.lineTo(2 * step, step + step / 2); path.lineTo(step, 2 * step + step / 2); path.lineTo(2 * step, 3 * step + step / 2); path.lineTo(3 * step, 2 * step + step / 2); path.lineTo(2 * step, step + step / 2); path.moveTo(2 * step, 3 * step + step / 2); path.lineTo(2 * step, 5 * step); path.lineTo(0, 5 * step); path.moveTo(2 * step, 3 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(2 * step - step / 4, 2 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(2 * step + step / 4, 2 * step + step / 4); path.lineTo(2 * step, 2 * step - step / 4); path.moveTo(5 * step, 0); path.lineTo(4 * step, 0); path.moveTo(4 * step, 5 * step); path.lineTo(5 * step, 5 * step); path.moveTo(4 * step - step / 4, step); path.lineTo(4 * step + step / 4, step); path.moveTo(4 * step, 4 * step - step / 4); path.lineTo(4 * step, 4 * step + step / 4); path.moveTo(4 * step - step / 4, 4 * step); path.lineTo(4 * step + step / 4, 4 * step); return path; } QPainterPath SchematicScene::vcvsPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(2 * step, 0); path.lineTo(2 * step, step + step / 2); path.lineTo(step, 2 * step + step / 2); path.lineTo(2 * step, 3 * step + step / 2); path.lineTo(3 * step, 2 * step + step / 2); path.lineTo(2 * step, step + step / 2); path.moveTo(2 * step, 3 * step + step / 2); path.lineTo(2 * step, 5 * step); path.lineTo(0, 5 * step); path.moveTo(2 * step, 2 * step - step / 4); path.lineTo(2 * step, 2 * step + step / 4); path.moveTo(2 * step - step / 4, 2 * step); path.lineTo(2 * step + step / 4, 2 * step); path.moveTo(2 * step - step / 4, 3 * step); path.lineTo(2 * step + step / 4, 3 * step); path.moveTo(5 * step, 0); path.lineTo(4 * step, 0); path.moveTo(4 * step, 5 * step); path.lineTo(5 * step, 5 * step); path.moveTo(4 * step, step - step / 4); path.lineTo(4 * step, step + step / 4); path.moveTo(4 * step - step / 4, step); path.lineTo(4 * step + step / 4, step); path.moveTo(4 * step - step / 4, 4 * step); path.lineTo(4 * step + step / 4, 4 * step); return path; } QPainterPath SchematicScene::voltageSourcePath() { QPainterPath path; uint step = GridStep; path.moveTo(step, 0); path.lineTo(step, step + step / 2); path.moveTo(step, 3 * step + step / 2); path.arcTo( QRectF( QPointF(0, step + step / 2), QPointF(2 * step, 3 * step + step / 2) ), -90, 360 ); path.lineTo(step, 5 * step); path.moveTo(step - step / 4, 3 * step); path.lineTo(step + step / 4, 3 * step); path.moveTo(step, 2 * step - step / 4); path.lineTo(step, 2 * step + step / 4); path.moveTo(step - step / 4, 2 * step); path.lineTo(step + step / 4, 2 * step); return path; } QPainterPath SchematicScene::transformerPath() { QPainterPath path; uint step = GridStep; path.moveTo(0, 0); path.lineTo(step, 0); path.moveTo(step, 5 * step); path.lineTo(step, 5 * step - step / 2); path.arcTo( QRectF( QPointF(0, 4 * step - step / 2), QPointF(2 * step, 5 * step - step / 2) ), -90, 180 ); path.arcTo( QRectF( QPointF(0, 3 * step - step / 2), QPointF(2 * step, 4 * step - step / 2) ), -90, 180 ); path.arcTo( QRectF( QPointF(0, 2 * step - step / 2), QPointF(2 * step, 3 * step - step / 2) ), -90, 180 ); path.arcTo( QRectF( QPointF(0, step - step / 2), QPointF(2 * step, 2 * step - step / 2) ), -90, 180 ); path.lineTo(step, 0); path.moveTo(step, 5 * step); path.lineTo(0, 5 * step); path.moveTo(2 * step + step / 3, step); path.lineTo(2 * step + step / 3, 4 * step); path.moveTo(3 * step - step / 3, step); path.lineTo(3 * step - step / 3, 4 * step); path.moveTo(5 * step, 0); path.lineTo(4 * step, 0); path.moveTo(4 * step, 5 * step); path.lineTo(4 * step, 5 * step - step / 2); path.arcTo( QRectF( QPointF(3 * step, 4 * step - step / 2), QPointF(5 * step, 5 * step - step / 2) ), -90, -180 ); path.arcTo( QRectF( QPointF(3 * step, 3 * step - step / 2), QPointF(5 * step, 4 * step - step / 2) ), -90, -180 ); path.arcTo( QRectF( QPointF(3 * step, 2 * step - step / 2), QPointF(5 * step, 3 * step - step / 2) ), -90, -180 ); path.arcTo( QRectF( QPointF(3 * step, step - step / 2), QPointF(5 * step, 2 * step - step / 2) ), -90, -180 ); path.lineTo(4 * step, 0); path.moveTo(4 * step, 5 * step); path.lineTo(5 * step, 5 * step); return path; } QPainterPath SchematicScene::mutualInductancePath() { QPainterPath path; uint step = GridStep; path = transformerPath(); path.addText(0, 3 * step, QFont(), "Lp"); path.addText(4 * step, 3 * step, QFont(), "Ls"); return path; } QtProperty* SchematicScene::itemProperties(QGraphicsItem* item) { QVariant props = item->data(1); if(props == QVariant()) return 0; return props.value(); } SchematicScene::SupportedItemType SchematicScene::itemType(QGraphicsItem* item) { QVariant type = item->data(0); if(type == QVariant()) return NilItemType; bool ok; int intType = type.toInt(&ok); if(!ok) return NilItemType; return static_cast(intType); } Item* SchematicScene::itemByType(SchematicScene::SupportedItemType type) { Item* item; switch(type) { case CapacitorItemType: { QList nodes; nodes.push_back(QPointF(0, GridStep)); nodes.push_back(QPointF(5 * GridStep, GridStep)); item = new Component(capacitorPath(), nodes); break; } case CCCSItemType: { QList nodes; nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(5 * GridStep, 0)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); item = new Component(cccsPath(), nodes); break; } case CCVSItemType: { QList nodes; nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 0)); item = new Component(ccvsPath(), nodes); break; } case ConductanceItemType: { QList nodes; nodes.push_back(QPointF(0, GridStep)); nodes.push_back(QPointF(5 * GridStep, GridStep)); item = new Component(conductancePath(), nodes); break; } case CurrentSourceItemType: { QList nodes; nodes.push_back(QPointF(GridStep, 5 * GridStep)); nodes.push_back(QPointF(GridStep, 0)); item = new Component(currentSourcePath(), nodes); break; } case InductorItemType: { QList nodes; nodes.push_back(QPointF(0, GridStep)); nodes.push_back(QPointF(5 * GridStep, GridStep)); item = new Component(inductorPath(), nodes); break; } case OpAmplItemType: { QList nodes; nodes.push_back(QPointF(0, 3* GridStep)); nodes.push_back(QPointF(0, GridStep)); nodes.push_back(QPointF(5 * GridStep, 2 * GridStep)); item = new Component(opAmplPath(), nodes); break; } case ResistorItemType: { QList nodes; nodes.push_back(QPointF(0, GridStep)); nodes.push_back(QPointF(5 * GridStep, GridStep)); item = new Component(resistorPath(), nodes); break; } case VCCSItemType: { QList nodes; nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 0)); item = new Component(vccsPath(), nodes); break; } case VCVSItemType: { QList nodes; nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 0)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); item = new Component(vcvsPath(), nodes); break; } case VoltageSourceItemType: { QList nodes; nodes.push_back(QPointF(GridStep, 0)); nodes.push_back(QPointF(GridStep, 5 * GridStep)); item = new Component(voltageSourcePath(), nodes); break; } case TransformerItemType: { QList nodes; nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 0)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); item = new Component(transformerPath(), nodes); break; } case MutualInductanceItemType: { QList nodes; nodes.push_back(QPointF(0, 0)); nodes.push_back(QPointF(0, 5 * GridStep)); nodes.push_back(QPointF(5 * GridStep, 0)); nodes.push_back(QPointF(5 * GridStep, 5 * GridStep)); item = new Component(mutualInductancePath(), nodes); break; } case GroundItemType: { item = new Component(groundPath(), QPointF(GridStep, 0)); break; } case PortItemType: { item = new Component(portPath(), QPointF(GridStep, GridStep)); break; } case OutItemType: { item = new Component(outPath(), QPointF(0, GridStep)); break; } case VoltmeterItemType: { QList nodes; nodes.push_back(QPointF(GridStep, 0)); nodes.push_back(QPointF(GridStep, 5 * GridStep)); item = new Component(voltmeterPath(), nodes); break; } case AmmeterItemType: { QList nodes; nodes.push_back(QPointF(GridStep, 0)); nodes.push_back(QPointF(GridStep, 5 * GridStep)); item = new Component(ammeterPath(), nodes); break; } case WireItemType: { item = new Wire; break; } case LabelItemType: { item = new Label; break; } case UserDefItemType: { QList nodes; item = new Component(nilPath(), nodes); break; } default: item = 0; } if(item) item->setData(0, type); return item; } QString SchematicScene::itemNameByType(SchematicScene::SupportedItemType type) { switch(type) { case GroundItemType: return QString(QObject::tr("Ground")); case PortItemType: return QString(QObject::tr("Port")); case OutItemType: return QString(QObject::tr("Out")); case VoltmeterItemType: return QString(QObject::tr("Voltmeter")); case AmmeterItemType: return QString(QObject::tr("Ammeter")); case WireItemType: return QString(QObject::tr("Wire")); case ResistorItemType: return QString(QObject::tr("Resistor")); case ConductanceItemType: return QString(QObject::tr("Conductance")); case InductorItemType: return QString(QObject::tr("Inductor")); case CapacitorItemType: return QString(QObject::tr("Capacitor")); case VoltageSourceItemType: return QString(QObject::tr("Voltage Source")); case TransformerItemType: return QString(QObject::tr("Ideal Transformer")); case MutualInductanceItemType: return QString(QObject::tr("Mutual Inductance")); case CurrentSourceItemType: return QString(QObject::tr("Current Source")); case VCVSItemType: return QString(QObject::tr("VCVS")); case CCVSItemType: return QString(QObject::tr("CCVS")); case VCCSItemType: return QString(QObject::tr("VCCS")); case CCCSItemType: return QString(QObject::tr("CCCS")); case OpAmplItemType: return QString(QObject::tr("Operational Amplifier")); case UserDefItemType: return QString(QObject::tr("User Defined")); default: return QString(QObject::tr("Unknow")); } return QString(); } QChar SchematicScene::itemIdByType(SchematicScene::SupportedItemType type) { switch(type) { case ResistorItemType: return QChar('R'); case ConductanceItemType: return QChar('G'); case InductorItemType: return QChar('L'); case CapacitorItemType: return QChar('C'); case VoltageSourceItemType: return QChar('V'); case TransformerItemType: return QChar('n'); case MutualInductanceItemType: return QChar('K'); case CurrentSourceItemType: return QChar('I'); case VCVSItemType: return QChar('E'); case CCVSItemType: return QChar('Y'); case VCCSItemType: return QChar('H'); case CCCSItemType: return QChar('F'); case OpAmplItemType: return QChar('A'); case UserDefItemType: return QChar('X'); default: break; } return QChar(); } QPainterPath SchematicScene::userDefPath(uint ports) { QPainterPath path; uint step = GridStep; uint side = (ports + (ports % 2)) / 2; if(side) { path.moveTo(step, 0); path.lineTo(step, step * 2 * side); path.lineTo(5 * step, step * 2 * side); path.lineTo(5 * step, 0); path.lineTo(step, 0); } else { path.moveTo(0, 0); path.lineTo(0, 2 * step); path.lineTo(2 * step, 2 * step); path.lineTo(2 * step, 0); path.lineTo(0, 0); path.moveTo(0, 0); path.lineTo(2 * step, 2 * step); path.moveTo(2 * step, 0); path.lineTo(0, 2 * step); } for(uint i = 0; i < side; ++i) { path.moveTo(0, step * (2 * i + 1) + step / 3); path.lineTo(0, step * (2 * i + 1)); path.lineTo(step, step * (2 * i + 1)); path.addText(step * 4 / 3, step * (2 * i + 1) + step / 2, QFont("Times", 8, QFont::Light), QString::number(i + 1)); } side -= ports % 2; for(uint i = 0; i < side; ++i) { path.moveTo(6 * step, step * (2 * i + 1) + step / 3); path.lineTo(6 * step, step * (2 * i + 1)); path.lineTo(5 * step, step * (2 * i + 1)); path.addText(4 * step - step / 3, step * (2 * i + 1) + step / 2, QFont("Times", 8, QFont::Light), QString::number(i + side + ports % 2 + 1)); } return path; } QList SchematicScene::userDefNodes(uint ports) { QList nodes; uint side = (ports + (ports % 2)) / 2; for(uint i = 0; i < side; ++i) nodes.push_back(QPointF(0, GridStep * (2 * i + 1))); side -= ports % 2; for(uint i = 0; i < side; ++i) nodes.push_back(QPointF(6 * GridStep, GridStep * (2 * i + 1))); return nodes; } SchematicScene::SchematicScene(QObject* parent): QGraphicsScene(parent) { setupProperties(); init(); } SchematicScene::~SchematicScene() { // delete itemized sub-circuits foreach(Item* item, userDefList_) delete item->data(101).value< QPointer >(); delete undoRedoStack_; } QPointF SchematicScene::closestGridPoint(const QPointF& pos) const { QPoint point = pos.toPoint(); int x = point.x(); int y = point.y(); if(x < 0) x -= (GridStep >> 1) - 1; else x += (GridStep >> 1); x -= x % GridStep; if(y < 0) y -= (GridStep >> 1) - 1; else y += (GridStep >> 1); y -= y % GridStep; return QPointF(x,y); } void SchematicScene::setActiveItem(SchematicScene::SupportedItemType item) { resetStatus(); activeItem_ = item; if(hasActiveItem()) foreach(QGraphicsView* view, views()) view->setCursor(Qt::CrossCursor); } QList SchematicScene::activeItems() const { QList items; items.append(portList_); items.append(groundList_); items.append(standardList_); items.append(userDefList_); items.append(wireList_); items.append(labelList_); if(out_) items.append(out_); return items; } QByteArray SchematicScene::registerUserDef(const SchematicScene& scene) { std::ostringstream stream; sapecng::abstract_parser* parser = new SchematicSceneParser(scene); sapecng::abstract_builder* builder = sapecng::builder_factory::builder(sapecng::builder_factory::INFO, stream); if(builder) parser->parse(*builder); QByteArray str(stream.str().c_str()); QByteArray md5 = QCryptographicHash::hash(str, QCryptographicHash::Md5); delete builder; delete parser; if(!userDefMap_.contains(md5)) userDefMap_.insert(md5, stream.str()); return md5; } std::string SchematicScene::queryUserDef(QByteArray md5) { std::string rep; if(!userDefMap_.contains(md5)) userDefMap_.value(md5); return rep; } void SchematicScene::setUserDefRequest() { if(0 == views().size()) return; QString fileName = QFileDialog::getOpenFileName(views().at(0), tr("Read file"), Settings().workspace(), QString("%1;;%2") .arg(tr("Info files (*.info)")) .arg(tr("XML files (*.xml)")) ); if(!fileName.isEmpty()) { SchematicScene* scene = new SchematicScene(this); sapecng::abstract_builder* builder = new SchematicSceneBuilder(*scene); QFileInfo fileInfo(fileName); std::ifstream in_file(QFile::encodeName(fileName)); sapecng::abstract_parser* parser = sapecng::parser_factory::parser( fileInfo.suffix().toStdString(), in_file); if(parser) parser->parse(*builder); delete parser; delete builder; QByteArray md5 = registerUserDef(*scene); int size = scene->size(); delete scene; setActiveItem(SchematicScene::UserDefItemType); userDefSessionRequested_ = true; userDefSize_ = size; userDefMD5_ = md5; } } void SchematicScene::addItems(QList items) { AddItems* command = new AddItems(this, items); undoRedoStack_->push(command); } void SchematicScene::addItems(QGraphicsItem* item) { AddItems* command = new AddItems(this, item); undoRedoStack_->push(command); } void SchematicScene::addSupportedItem(QGraphicsItem* gItem, bool init) { if(!gItem) return; Item* item = qgraphicsitem_cast(gItem); if(!item) { addItem(gItem); return; } bool ok; QVariant data = item->data(0); if(!data.isNull()) { SupportedItemType type = (SupportedItemType) data.toInt(&ok); if(ok && type != NilItemType) { addItem(item); switch(type) { case GroundItemType: { if(!groundList_.contains(item)) groundList_.push_back(item); break; } case PortItemType: { if(!portList_.contains(item)) { portList_.push_back(item); static_cast(item)->label()->setPlainText( QString::number(portList_.size())); } break; } case OutItemType: case VoltmeterItemType: case AmmeterItemType: { if(!out_) { out_ = item; } else { out_->setOpacity(0.5); outList_.push_back(out_); out_ = item; } break; } case WireItemType: { if(!wireList_.contains(item)) wireList_.push_back(item); break; } case LabelItemType: { if(!labelList_.contains(item)) labelList_.push_back(item); break; } case CapacitorItemType: case ConductanceItemType: case InductorItemType: case ResistorItemType: case CCCSItemType: case CCVSItemType: case VCCSItemType: case VCVSItemType: case OpAmplItemType: case CurrentSourceItemType: case VoltageSourceItemType: case TransformerItemType: case MutualInductanceItemType: { if(!standardList_.contains(item)) { standardList_.push_back(item); QtProperty* name = stringManager_->addProperty(itemNameByType(type)); if(init) { stringManager_->setValue(name, itemIdByType(type) + QString::number(++itemCntMap_[type])); } else { stringManager_->setValue(name, tr("noname")); } item->setData(1, QVariant::fromValue(name)); static_cast(item)->label()->setProperty(name); connect( stringManager_, SIGNAL(valueChanged(QtProperty*, const QString&)), static_cast(item)->label(), SLOT(valueChanged(QtProperty*, const QString&)) ); if(type != OpAmplItemType) { QtProperty* pS = boolManager_->addProperty(tr("Symbolic")); boolManager_->setValue(pS, true); QtProperty* pV = stringManager_->addProperty( type == MutualInductanceItemType ? tr("M") : tr("Value") ); stringManager_->setValue(pV, "1.0"); if(type == CapacitorItemType || type == ConductanceItemType || type == InductorItemType || type == ResistorItemType ) { QRegExp sn("[+]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?"); stringManager_->setRegExp(pV, sn); } else { QRegExp sn("[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?"); stringManager_->setRegExp(pV, sn); } name->addSubProperty(pS); name->addSubProperty(pV); } if(type == MutualInductanceItemType) { QtProperty* lpn = stringManager_->addProperty(tr("lp:name")); QtProperty* lpv = stringManager_->addProperty(tr("lp:value")); QtProperty* lsn = stringManager_->addProperty(tr("ls:name")); QtProperty* lsv = stringManager_->addProperty(tr("ls:value")); stringManager_->setValue(lpn, name->valueText() + "_Lp"); stringManager_->setValue(lsn, name->valueText() + "_Ls"); QRegExp sn("[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?"); stringManager_->setRegExp(lpv, sn); stringManager_->setValue(lpv, "1.0"); stringManager_->setRegExp(lsv, sn); stringManager_->setValue(lsv, "1.0"); name->addSubProperty(lpn); name->addSubProperty(lpv); name->addSubProperty(lsn); name->addSubProperty(lsv); } static_cast(item)->label()->setPlainText( stringManager_->value(name)); typeRootMap_[type]->addSubProperty(name); properties_->addSubProperty(typeRootMap_[type]); } break; } case UserDefItemType: { if(!userDefList_.contains(item)) { userDefList_.push_back(item); QtProperty* name = stringManager_->addProperty(itemNameByType(type)); stringManager_->setValue(name, itemIdByType(type) + QString::number(++itemCntMap_[type])); item->setData(1, QVariant::fromValue(name)); static_cast(item)->label()->setProperty(name); connect( stringManager_, SIGNAL(valueChanged(QtProperty*, const QString&)), static_cast(item)->label(), SLOT(valueChanged(QtProperty*, const QString&)) ); QPointer rep = item->data(101) .value< QPointer >(); name->addSubProperty(rep->properties()); rep->initializeBrowser(browser_); static_cast(item)->label()->setPlainText( stringManager_->value(name)); typeRootMap_[type]->addSubProperty(name); properties_->addSubProperty(typeRootMap_[type]); } break; } default: break; } } } } void SchematicScene::removeSupportedItem(QGraphicsItem* gItem) { if(!gItem) return; Item* item = qgraphicsitem_cast(gItem); if(!item) { if(gItem->scene() == this) removeItem(gItem); return; } bool ok; QVariant data = item->data(0); if(!data.isNull()) { SupportedItemType type = (SupportedItemType) data.toInt(&ok); if(ok && type != NilItemType) { if(item->scene() == this) removeItem(item); switch(type) { case GroundItemType: { groundList_.removeAll(item); break; } case PortItemType: { portList_.removeAll(item); for(QList::size_type i = 0; i < portList_.size(); ++i) static_cast(portList_.at(i))->label()->setPlainText( QString::number(i + 1)); break; } case OutItemType: case VoltmeterItemType: case AmmeterItemType: { if(out_ == item) { if(outList_.isEmpty()) { out_ = 0; } else { out_ = outList_.back(); outList_.pop_back(); out_->setOpacity(1.0); } } else { if(outList_.contains(item)) { item->setOpacity(1.0); outList_.removeAll(item); } } break; } case WireItemType: { wireList_.removeAll(item); break; } case LabelItemType: { labelList_.removeAll(item); break; } case CapacitorItemType: case ConductanceItemType: case InductorItemType: case ResistorItemType: case CCCSItemType: case CCVSItemType: case VCCSItemType: case VCVSItemType: case CurrentSourceItemType: case VoltageSourceItemType: case TransformerItemType: case MutualInductanceItemType: case OpAmplItemType: { if(standardList_.contains(item)) { if(itemProperties(item)) { typeRootMap_[type]->removeSubProperty(itemProperties(item)); if(typeRootMap_[type]->subProperties().size() == 0) properties_->removeSubProperty(typeRootMap_[type]); } standardList_.removeAll(item); } break; } case UserDefItemType: { if(userDefList_.contains(item)) { if(itemProperties(item)) { typeRootMap_[type]->removeSubProperty(itemProperties(item)); if(typeRootMap_[type]->subProperties().size() == 0) properties_->removeSubProperty(typeRootMap_[type]); } userDefList_.removeAll(item); } break; } default: break; } } } } void SchematicScene::clearSupportedItem(QGraphicsItem* gItem) { if(!gItem) return; Item* item = qgraphicsitem_cast(gItem); if(!item) { if(gItem->scene() == this) removeItem(gItem); return; } bool ok; QVariant data = item->data(0); if(!data.isNull()) { SupportedItemType type = (SupportedItemType) data.toInt(&ok); if(ok && type != NilItemType) { if(item->scene() == this) removeItem(item); switch(type) { case GroundItemType: { groundList_.removeAll(item); break; } case PortItemType: { portList_.removeAll(item); for(QList::size_type i = 0; i < portList_.size(); ++i) static_cast(portList_.at(i))->label()->setPlainText( QString::number(i + 1)); break; } case OutItemType: case VoltmeterItemType: case AmmeterItemType: { if(out_ == item) { if(outList_.isEmpty()) { out_ = 0; } else { out_ = outList_.back(); outList_.pop_back(); out_->setOpacity(1.0); } } else { if(outList_.contains(item)) { item->setOpacity(1.0); outList_.removeAll(item); } } break; } case WireItemType: { wireList_.removeAll(item); break; } case LabelItemType: { labelList_.removeAll(item); break; } case CapacitorItemType: case ConductanceItemType: case InductorItemType: case ResistorItemType: case CCCSItemType: case CCVSItemType: case VCCSItemType: case VCVSItemType: case CurrentSourceItemType: case VoltageSourceItemType: case TransformerItemType: case MutualInductanceItemType: case OpAmplItemType: { if(standardList_.contains(item)) { QtProperty* props = itemProperties(item); if(props) { typeRootMap_[type]->removeSubProperty(itemProperties(item)); if(typeRootMap_[type]->subProperties().size() == 0) properties_->removeSubProperty(typeRootMap_[type]); foreach(QtProperty* prop, props->subProperties()) delete prop; delete props; } standardList_.removeAll(item); } break; } case UserDefItemType: { if(userDefList_.contains(item)) { if(itemProperties(item)) { typeRootMap_[type]->removeSubProperty(itemProperties(item)); if(typeRootMap_[type]->subProperties().size() == 0) properties_->removeSubProperty(typeRootMap_[type]); } userDefList_.removeAll(item); } break; } default: break; } } } } void SchematicScene::setWireSessionRequest(bool connectedWire) { resetStatus(); wireSessionRequested_ = true; horizontalFirst_ = true; hasValidFromPoint_ = false; connectedWire_ = connectedWire; preWireItem_ = addLine(QLineF(fromPoint_, fromPoint_), wirePen_); postWireItem_ = addLine(QLineF(fromPoint_, fromPoint_), wirePen_); preWireItem_->setVisible(false); postWireItem_->setVisible(false); foreach(QGraphicsView* view, views()) view->setCursor(Qt::CrossCursor); } void SchematicScene::joinWires(Wire* w1, Wire* w2) { if(!w1 || !w2) return; JoinWires* command = new JoinWires(w1, w2); undoRedoStack_->push(command); } void SchematicScene::modifyWire(Wire* wire) { if(!hasActiveItem() && !hasUserDefReq() && !hasPendingWire() && wire) { resetStatus(); wireSessionRequested_ = true; horizontalFirst_ = (wire->orientation() == Qt::Horizontal); fromPoint_ = wire->mapToScene(wire->fromPoint()); QPointF toPoint = wire->mapToScene(wire->toPoint()); hasValidFromPoint_ = true; connectedWire_ = wire->isJunctionsConnected(); preWireItem_ = addLine(QLineF(fromPoint_, toPoint), wirePen_); postWireItem_ = addLine(QLineF(fromPoint_, fromPoint_), wirePen_); wireInProgress_ = wire; wire->setVisible(false); preWireItem_->setVisible(true); postWireItem_->setVisible(false); foreach(QGraphicsView* view, views()) view->setCursor(Qt::CrossCursor); } } void SchematicScene::createLabel() { resetStatus(); AddItems* command = new AddItems(this, itemByType(LabelItemType), QPointF(3 * GridStep, 3 * GridStep)); undoRedoStack_->push(command); } void SchematicScene::moveSelectedItems(QPointF offset) { QList items = selectedItems(); if(items.isEmpty()) return; MoveItems* command = new MoveItems(this, items, offset); undoRedoStack_->push(command); } void SchematicScene::cutSelectedItems() { undoRedoStack_->beginMacro(tr("Cut item(s)")); copySelectedItems(); binSelectedItems(); undoRedoStack_->endMacro(); } void SchematicScene::copySelectedItems() { std::ostringstream stream; sapecng::abstract_builder* out = sapecng::builder_factory::builder(sapecng::builder_factory::INFO, stream); SchematicSceneParser* parser = new SchematicSceneParser(*this, selectedItems()); parser->parse(*out); delete parser; delete out; QApplication::clipboard()->setText( QString::fromStdString(stream.str())); } void SchematicScene::pasteItems() { SchematicSceneBuilder* out = new SchematicSceneBuilder(*this, lastMousePressPos_); std::istringstream stream; stream.str(QApplication::clipboard()->text().toStdString()); sapecng::abstract_parser* parser = sapecng::parser_factory::parser(sapecng::parser_factory::INFO, stream); undoRedoStack_->beginMacro(QObject::tr("Add item(s)")); parser->parse(*out); undoRedoStack_->endMacro(); delete parser; delete out; } void SchematicScene::rotateSelectedItems() { QList items = selectedItems(); if(items.isEmpty()) return; RotateItems* command = new RotateItems(items); undoRedoStack_->push(command); } void SchematicScene::mirrorSelectedItems() { QList items = selectedItems(); if(items.isEmpty()) return; MirrorItems* command = new MirrorItems(items); undoRedoStack_->push(command); } void SchematicScene::binSelectedItems() { QList items = selectedItems(); if(items.isEmpty()) return; RemoveItems* command = new RemoveItems(this, items); undoRedoStack_->push(command); } void SchematicScene::bringToFrontSelectedItem() { QGraphicsItem* item = itemAt(lastMousePressPos_); if(!item) return; clearSelection(); item->setSelected(true); BringToFrontItem* command = new BringToFrontItem(item); undoRedoStack_->push(command); } void SchematicScene::sendToBackSelectedItem() { QGraphicsItem* item = itemAt(lastMousePressPos_); if(!item) return; clearSelection(); item->setSelected(true); SendToBackItem* command = new SendToBackItem(item); undoRedoStack_->push(command); } void SchematicScene::clearSchematicScene() { QList itemList = items(); if(itemList.isEmpty()) return; undoRedoStack_->beginMacro("Clear schematic scene"); RemoveItems* command = new RemoveItems(this, itemList); undoRedoStack_->push(command); undoRedoStack_->endMacro(); } void SchematicScene::initializeBrowser(QtAbstractPropertyBrowser* browser) { browser_ = browser; browser_->setFactoryForManager(boolManager_, checkBoxFactory_); browser_->setFactoryForManager(stringManager_, lineEditFactory_); } QVector SchematicScene::ports() { QVector vector; foreach(Item* item, portList_) vector += static_cast(item)->nodes(); return vector; } void SchematicScene::assignNodes(int seed) { resetStatus(); foreach(Item* item, groundList_) static_cast(item)->propagate(SchematicScene::Ground); foreach(Item* item, wireList_) seed = static_cast(item)->propagate(seed); foreach(Item* item, standardList_) seed = static_cast(item)->propagate(seed); foreach(Item* item, portList_) seed = static_cast(item)->propagate(seed); foreach(Item* item, userDefList_) seed = static_cast(item)->propagate(seed); if(out_) seed = static_cast(out_)->propagate(seed); // sub-circuits propagation foreach(Item* item, userDefList_) { QPointer rep = item->data(101).value< QPointer >(); rep->assignNodes(seed); } } void SchematicScene::resetNodes() { foreach(Item* item, groundList_) static_cast(item)->invalidate(); foreach(Item* item, wireList_) static_cast(item)->invalidate(); foreach(Item* item, standardList_) static_cast(item)->invalidate(); foreach(Item* item, portList_) static_cast(item)->invalidate(); foreach(Item* item, userDefList_) static_cast(item)->invalidate(); if(out_) static_cast(out_)->invalidate(); // sub-circuits reset foreach(Item* item, userDefList_) item->data(101) .value< QPointer >()->resetNodes(); } void SchematicScene::setGridVisible(bool visible) { gridVisible_ = visible; update(); foreach(QGraphicsView* view, views()) view->resetCachedContent(); } void SchematicScene::resetStatus() { resetNodes(); clearSelection(); clearFocus(); activeItem_ = NilItemType; delete item_; item_ = 0; foreach(QGraphicsView* view, views()) view->unsetCursor(); userDefSessionRequested_ = false; userDefMD5_ = QByteArray(); userDefSize_ = 0; wireSessionRequested_ = false; delete preWireItem_; delete postWireItem_; preWireItem_ = 0; postWireItem_ = 0; if(wireInProgress_) { wireInProgress_->setVisible(true); wireInProgress_ = 0; } } void SchematicScene::drawBackground(QPainter* painter, const QRectF& rect) { if(gridVisible_) { painter->save(); painter->fillRect(rect, Qt::white); // painter->setRenderHints( // QPainter::Antialiasing | QPainter::SmoothPixmapTransform); painter->setRenderHints(QPainter::SmoothPixmapTransform); painter->setPen(QPen(Qt::black, 0)); painter->setBrush(Qt::NoBrush); int left = rect.x(); if(left < 0) left -= (GridStep >> 1) - 1; else left += (GridStep >> 1); left -= left % GridStep; int top = rect.y(); if(top < 0) top -= (GridStep >> 1) - 1; else top += (GridStep >> 1); top -= top % GridStep; int right = rect.x() + rect.width(); int bottom = rect.y() + rect.height(); for(int x = left; x < right; x += GridStep) for(int y = top; y < bottom; y += GridStep) painter->drawPoint(x, y); painter->restore(); } } void SchematicScene::mousePressEvent(QGraphicsSceneMouseEvent* event) { lastMousePressPos_ = event->scenePos(); resetNodes(); if(hasActiveItem() || hasUserDefReq()) { switch(event->button()) { case Qt::RightButton: item_->rotate(); event->accept(); return; case Qt::LeftButton: { QUndoCommand* addCommand = 0; if(hasUserDefReq()) { addCommand = new AddUserDefItem(this, userDefMD5_, userDefSize_, userDefMap_.value(userDefMD5_), item_->pos()); } else { addCommand = new AddSupportedItem(this, activeItem_, item_->pos()); } undoRedoStack_->beginMacro(addCommand->text()); undoRedoStack_->push(addCommand); uint rotFact = item_->angle() / 90; for(uint i = 0; i < rotFact; ++i) { RotateItems* rotateCommand = 0; if(hasUserDefReq()) { rotateCommand = new RotateItems(static_cast(addCommand)->item()); } else { rotateCommand = new RotateItems(static_cast(addCommand)->item()); } undoRedoStack_->push(rotateCommand); } undoRedoStack_->endMacro(); event->accept(); return; } default: break; } } if(hasPendingWire()) { switch(event->button()) { case Qt::RightButton: { if(hasValidFromPoint_) { horizontalFirst_ = !horizontalFirst_; setPrePostWireLine(event->scenePos()); } event->accept(); return; } case Qt::LeftButton: { if(!hasValidFromPoint_) { fromPoint_ = closestGridPoint(event->scenePos()); preWireItem_->setVisible(true); hasValidFromPoint_ = true; } else { setPrePostWireLine(event->scenePos()); addWires(); hasValidFromPoint_ = false; preWireItem_->setVisible(false); postWireItem_->setVisible(false); } preWireItem_->setLine(QLineF(fromPoint_, fromPoint_)); postWireItem_->setLine(QLineF(fromPoint_, fromPoint_)); event->accept(); return; } default: break; } } if(!hasActiveItem() && !hasUserDefReq() && !hasPendingWire() && selectedItems().isEmpty() && itemAt(event->scenePos())) { clearSelection(); itemAt(event->scenePos())->setSelected(true); } QGraphicsScene::mousePressEvent(event); } void SchematicScene::mouseMoveEvent(QGraphicsSceneMouseEvent* event) { if(hasActiveItem() || hasUserDefReq()) { item_->setPos(closestGridPoint(event->scenePos())); event->accept(); return; } if(hasPendingWire()) { if(hasValidFromPoint_) setPrePostWireLine(event->scenePos()); event->accept(); return; } QGraphicsScene::mouseMoveEvent(event); } void SchematicScene::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event) { if(!hasActiveItem() && !hasUserDefReq() && !hasPendingWire() && itemAt(event->scenePos())) { if(SchematicScene::itemType(itemAt(event->scenePos())) == SchematicScene::UserDefItemType) { QGraphicsItem* item = itemAt(event->scenePos()); QPointer rep = item->data(101).value< QPointer >(); emit(showUserDef(*rep)); event->accept(); } } if(SchematicScene::itemType(itemAt(event->scenePos())) != SchematicScene::UserDefItemType) QGraphicsScene::mousePressEvent(event); } void SchematicScene::contextMenuEvent(QGraphicsSceneContextMenuEvent* event) { if(!hasActiveItem() && !hasUserDefReq() && !hasPendingWire() && contextMenu_) contextMenu_->exec(event->screenPos()); } void SchematicScene::keyPressEvent(QKeyEvent* event) { if(event->modifiers().testFlag(Qt::NoModifier)) { int key = event->key(); switch(key) { case Qt::Key_Left: { moveSelectedItems(QPointF(-GridStep, 0)); event->accept(); return; } case Qt::Key_Up: { moveSelectedItems(QPointF(0, -GridStep)); event->accept(); return; } case Qt::Key_Right: { moveSelectedItems(QPointF(GridStep, 0)); event->accept(); return; } case Qt::Key_Down: { moveSelectedItems(QPointF(0, GridStep)); event->accept(); return; } case Qt::Key_Escape: { resetStatus(); event->accept(); return; } default: break; } } return QGraphicsScene::keyPressEvent(event); } bool SchematicScene::event(QEvent* event) { // enter event if(event->type() == QEvent::Enter) { if(hasActiveItem() || hasUserDefReq()) { if(item_) delete item_; item_ = SchematicScene::itemByType(activeItem_); if(hasUserDefReq()) { static_cast(item_)->setPath(userDefPath(userDefSize_)); static_cast(item_)->addNodes(userDefNodes(userDefSize_)); } addItem(item_); event->accept(); return true; } } // leave event if(event->type() == QEvent::Leave) { if(hasActiveItem() || hasUserDefReq()) { removeItem(item_); delete item_; item_ = 0; event->accept(); return true; } } return QGraphicsScene::event(event); } void SchematicScene::dragEnterEvent(QGraphicsSceneDragDropEvent* event) { if(hasActiveItem() || hasUserDefReq() || hasPendingWire()) { event->ignore(); return; } if(event->mimeData()->hasFormat("application/qsapecng-itemtype")) { SupportedItemType type = (SupportedItemType) event->mimeData()->data( "application/qsapecng-itemtype").toInt(); item_ = itemByType(type); if(item_) { resetNodes(); qreal xoffset = item_->boundingRect().width() / 2; qreal yoffset = item_->boundingRect().height() / 2; QPointF pos = closestGridPoint( event->scenePos() - QPointF(xoffset, yoffset) ); addItem(item_); item_->setPos(pos); clearSelection(); item_->setSelected(true); event->acceptProposedAction(); } } else { event->ignore(); } } void SchematicScene::dragMoveEvent(QGraphicsSceneDragDropEvent* event) { if(item_) { qreal xoffset = item_->boundingRect().width() / 2; qreal yoffset = item_->boundingRect().height() / 2; QPointF pos = closestGridPoint( event->scenePos() - QPointF(xoffset, yoffset) ); item_->setPos(pos); event->acceptProposedAction(); } else { event->ignore(); } } void SchematicScene::dragLeaveEvent(QGraphicsSceneDragDropEvent* event) { if(item_) { removeItem(item_); delete item_; item_ = 0; event->acceptProposedAction(); } else { event->ignore(); } } void SchematicScene::dropEvent(QGraphicsSceneDragDropEvent* event) { if(item_) { SupportedItemType type = (SupportedItemType) item_->data(0).toInt(); qreal xoffset = item_->boundingRect().width() / 2; qreal yoffset = item_->boundingRect().height() / 2; removeItem(item_); delete item_; item_ = 0; AddSupportedItem* command = new AddSupportedItem(this, type, event->scenePos() - QPointF(xoffset, yoffset)); undoRedoStack_->push(command); event->acceptProposedAction(); } else { event->ignore(); } } void SchematicScene::init() { out_ = 0; contextMenu_ = 0; validNode_ = false; gridVisible_ = true; undoRedoStack_ = new QUndoStack; lastMousePressPos_ = QPointF(0, 0); setItemIndexMethod(NoIndex); activeItem_ = NilItemType; item_ = 0; userDefSessionRequested_ = false; userDefMD5_ = QByteArray(); userDefSize_ = 0; wireSessionRequested_ = false; wireInProgress_ = 0; preWireItem_ = 0; postWireItem_ = 0; wirePen_ = QPen( Qt::SolidPattern, 1, Qt::DashLine, Qt::RoundCap, Qt::RoundJoin ); connect(undoRedoStack_, SIGNAL(indexChanged(int)), this, SLOT(resetNodes())); } void SchematicScene::setupProperties() { groupManager_ = new QtGroupPropertyManager(this); boolManager_ = new QtBoolPropertyManager(this); stringManager_ = new QtStringPropertyManager(this); connect(boolManager_, SIGNAL(propertyChanged(QtProperty*)), this, SIGNAL(propertyChanged())); connect(stringManager_, SIGNAL(propertyChanged(QtProperty*)), this, SIGNAL(propertyChanged())); lineEditFactory_ = new QtLineEditFactory(this); checkBoxFactory_ = new QtCheckBoxFactory(this); lineEditFactory_->addPropertyManager(stringManager_); checkBoxFactory_->addPropertyManager(boolManager_); properties_ = groupManager_->addProperty(tr("Circuit")); itemCntMap_[CapacitorItemType] = 0; typeRootMap_[CapacitorItemType] = groupManager_->addProperty(itemNameByType(CapacitorItemType)); // properties_->addSubProperty(typeRootMap_[CapacitorItemType]); itemCntMap_[CCCSItemType] = 0; typeRootMap_[CCCSItemType] = groupManager_->addProperty(itemNameByType(CCCSItemType)); // properties_->addSubProperty(typeRootMap_[CCCSItemType]); itemCntMap_[CCVSItemType] = 0; typeRootMap_[CCVSItemType] = groupManager_->addProperty(itemNameByType(CCVSItemType)); // properties_->addSubProperty(typeRootMap_[CCVSItemType]); itemCntMap_[ConductanceItemType] = 0; typeRootMap_[ConductanceItemType] = groupManager_->addProperty(itemNameByType(ConductanceItemType)); // properties_->addSubProperty(typeRootMap_[ConductanceItemType]); itemCntMap_[CurrentSourceItemType] = 0; typeRootMap_[CurrentSourceItemType] = groupManager_->addProperty(itemNameByType(CurrentSourceItemType)); // properties_->addSubProperty(typeRootMap_[CurrentSourceItemType]); itemCntMap_[InductorItemType] = 0; typeRootMap_[InductorItemType] = groupManager_->addProperty(itemNameByType(InductorItemType)); // properties_->addSubProperty(typeRootMap_[InductorItemType]); itemCntMap_[OpAmplItemType] = 0; typeRootMap_[OpAmplItemType] = groupManager_->addProperty(itemNameByType(OpAmplItemType)); // properties_->addSubProperty(typeRootMap_[OpAmplItemType]); itemCntMap_[ResistorItemType] = 0; typeRootMap_[ResistorItemType] = groupManager_->addProperty(itemNameByType(ResistorItemType)); // properties_->addSubProperty(typeRootMap_[ResistorItemType]); itemCntMap_[VCCSItemType] = 0; typeRootMap_[VCCSItemType] = groupManager_->addProperty(itemNameByType(VCCSItemType)); // properties_->addSubProperty(typeRootMap_[VCCSItemType]); itemCntMap_[VCVSItemType] = 0; typeRootMap_[VCVSItemType] = groupManager_->addProperty(itemNameByType(VCVSItemType)); // properties_->addSubProperty(typeRootMap_[VCVSItemType]); itemCntMap_[VoltageSourceItemType] = 0; typeRootMap_[VoltageSourceItemType] = groupManager_->addProperty(itemNameByType(VoltageSourceItemType)); // properties_->addSubProperty(typeRootMap_[VoltageSourceItemType]); itemCntMap_[TransformerItemType] = 0; typeRootMap_[TransformerItemType] = groupManager_->addProperty(itemNameByType(TransformerItemType)); // properties_->addSubProperty(typeRootMap_[TransformerItemType]); itemCntMap_[MutualInductanceItemType] = 0; typeRootMap_[MutualInductanceItemType] = groupManager_->addProperty(itemNameByType(MutualInductanceItemType)); // properties_->addSubProperty(typeRootMap_[MutualInductanceItemType]); itemCntMap_[UserDefItemType] = 0; typeRootMap_[UserDefItemType] = groupManager_->addProperty(itemNameByType(UserDefItemType)); // properties_->addSubProperty(typeRootMap_[UserDefItemType]); } void SchematicScene::setPrePostWireLine(QPointF toPoint) { QPointF realToPoint = closestGridPoint(toPoint); if(fromPoint_.x() == realToPoint.x() || fromPoint_.y() == realToPoint.y()) { preWireItem_->setLine(QLineF(fromPoint_, realToPoint)); postWireItem_->setVisible(false); } else { QPointF joint( (horizontalFirst_ ? realToPoint.x() : fromPoint_.x()), (horizontalFirst_ ? fromPoint_.y() : realToPoint.y()) ); preWireItem_->setLine(QLineF(fromPoint_, joint)); postWireItem_->setLine(QLineF(joint, realToPoint)); postWireItem_->setVisible(true); } } void SchematicScene::addWires() { QPointF pos; if(wireInProgress_) { undoRedoStack_->beginMacro(tr("Modify wire")); undoRedoStack_->push(new RemoveItems(this, wireInProgress_)); wireInProgress_->setVisible(true); } if(preWireItem_->line().y1() == preWireItem_->line().y2()) { if(preWireItem_->line().x1() > preWireItem_->line().x2()) pos = preWireItem_->line().p2(); else pos = preWireItem_->line().p1(); } else { if(preWireItem_->line().y1() > preWireItem_->line().y2()) pos = preWireItem_->line().p2(); else pos = preWireItem_->line().p1(); } AddWire* preWireCommand = new AddWire(this, pos, preWireItem_->line(), connectedWire_); undoRedoStack_->push(preWireCommand); if(postWireItem_->isVisible()) { if(postWireItem_->line().y1() == postWireItem_->line().y2()) { if(postWireItem_->line().x1() > postWireItem_->line().x2()) pos = postWireItem_->line().p2(); else pos = postWireItem_->line().p1(); } else { if(postWireItem_->line().y1() > postWireItem_->line().y2()) pos = postWireItem_->line().p2(); else pos = postWireItem_->line().p1(); } AddWire* postWireCommand = new AddWire(this, pos, postWireItem_->line(), connectedWire_); undoRedoStack_->push(postWireCommand); } if(wireInProgress_) { undoRedoStack_->endMacro(); wireInProgress_ = 0; } } } QSapecNG-2.0.0-source/src/gui/editor/undoredocommand.cpp000644 001750 001750 00000027063 11617757645 024014 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "parser/parser_factory.h" #include "gui/editor/schematicsceneparser.h" #include "gui/editor/undoredocommand.h" #include "gui/editor/wire.h" #include "gui/editor/component.h" #include "gui/editor/item.h" #include #include #include #include #include #include namespace qsapecng { AddItems::AddItems( SchematicScene* scene, QList items, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), items_(items) { setText(QObject::tr("Add generic item(s)")); foreach(QGraphicsItem* item, items_) pos_.push_back(item->pos()); } AddItems::AddItems( SchematicScene* scene, QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene) { setText(QObject::tr("Add generic item(s)")); items_.append(item); pos_.append(item->pos()); } AddItems::AddItems( SchematicScene* scene, QList items, const QList& pos, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene) { setText(QObject::tr("Add generic item(s)")); if(items.size() == pos.size()) { items_ = items; pos_ = pos; } } AddItems::AddItems( SchematicScene* scene, QGraphicsItem* item, const QPointF& pos, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene) { setText(QObject::tr("Add generic item(s)")); items_.append(item); pos_.append(pos); } AddItems::~AddItems() { foreach(QGraphicsItem* item, items_) { if(item->scene()) { if(item->scene() == scene_) scene_->clearSupportedItem(item); else item->scene()->removeItem(item); } delete item; } } void AddItems::undo() { scene_->resetStatus(); foreach(QGraphicsItem* item, items_) if(item->scene() && item->scene() == scene_) scene_->removeSupportedItem(item); } void AddItems::redo() { for(int i = 0; i < items_.size(); ++i) { if(!items_.at(i)->scene()) { scene_->addSupportedItem(items_.at(i)); items_.at(i)->setPos(scene_->closestGridPoint(pos_.at(i))); } } } AddSupportedItem::AddSupportedItem( SchematicScene* scene, SchematicScene::SupportedItemType type, const QPointF& pos, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), pos_(pos) { setText(QObject::tr("Add item: ") + SchematicScene::itemNameByType(type)); item_ = scene->itemByType(type); } AddSupportedItem::~AddSupportedItem() { scene_->clearSupportedItem(item_); delete item_; } void AddSupportedItem::undo() { scene_->resetStatus(); scene_->removeSupportedItem(item_); } void AddSupportedItem::redo() { scene_->addSupportedItem(item_); item_->setPos(scene_->closestGridPoint(pos_)); } Item* AddSupportedItem::item() const { return item_; } AddUserDefItem::AddUserDefItem( SchematicScene* scene, QByteArray md5, int size, std::string info, const QPointF& pos, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), pos_(pos) { setText(QObject::tr("Add item: ") + SchematicScene::itemNameByType(SchematicScene::UserDefItemType)); item_ = scene->itemByType(SchematicScene::UserDefItemType); static_cast(item_)->setPath(SchematicScene::userDefPath(size)); static_cast(item_)->addNodes(SchematicScene::userDefNodes(size)); item_->setData(99, md5); SchematicScene* rep = new SchematicScene; sapecng::abstract_builder* builder = new SchematicSceneBuilder(*rep); std::istringstream in_file(info); sapecng::abstract_parser* parser = sapecng::parser_factory::parser(sapecng::parser_factory::INFO, in_file); if(parser) parser->parse(*builder); delete parser; delete builder; QPointer smart(rep); item_->setData(101, qVariantFromValue(smart)); } AddUserDefItem::~AddUserDefItem() { scene_->clearSupportedItem(item_); delete item_; } void AddUserDefItem::undo() { scene_->resetStatus(); scene_->removeSupportedItem(item_); } void AddUserDefItem::redo() { scene_->addSupportedItem(item_); item_->setPos(scene_->closestGridPoint(pos_)); } Item* AddUserDefItem::item() const { return item_; } AddWire::AddWire( SchematicScene* scene, const QPointF& pos, const QLineF& wire, bool connectedJunctions, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), pos_(pos) { setText(QObject::tr("Add wire")); Wire* wireItem = static_cast(scene->itemByType(SchematicScene::WireItemType)); wireItem->setConnectedJunctions(connectedJunctions); wireItem->setWire(wire); wire_ = wireItem; } AddWire::~AddWire() { scene_->clearSupportedItem(wire_); delete wire_; } void AddWire::undo() { scene_->resetStatus(); scene_->removeSupportedItem(wire_); } void AddWire::redo() { scene_->addSupportedItem(wire_); wire_->setPos(scene_->closestGridPoint(pos_)); } JoinWires::JoinWires( Wire* w1, Wire* w2, QUndoCommand* parent ) : QUndoCommand(parent), w1_(w1), w2_(w2) { setText(QObject::tr("Join wires")); scene_ = w1_->schematicScene(); wire_ = w1->joined(w2); } JoinWires::~JoinWires() { scene_->clearSupportedItem(wire_); delete wire_; } void JoinWires::undo() { scene_->resetStatus(); scene_->addSupportedItem(w1_); scene_->addSupportedItem(w2_); scene_->removeSupportedItem(wire_); } void JoinWires::redo() { scene_->addSupportedItem(wire_); scene_->removeSupportedItem(w2_); scene_->removeSupportedItem(w1_); } RemoveItems::RemoveItems( SchematicScene* scene, QList items, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), items_(items) { setText(QObject::tr("Remove item(s)")); } RemoveItems::RemoveItems( SchematicScene* scene, QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene) { setText(QObject::tr("Remove item")); items_.append(item); } void RemoveItems::undo() { scene_->resetStatus(); foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) scene_->addSupportedItem(item); else scene_->addItem(graphicsItem); } } void RemoveItems::redo() { foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) scene_->removeSupportedItem(item); else scene_->removeItem(graphicsItem); } } RotateItems::RotateItems( QList items, QUndoCommand* parent ) : QUndoCommand(parent), items_(items) { setText(QObject::tr("Rotate item(s)")); } RotateItems::RotateItems( QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent) { setText(QObject::tr("Rotate item")); items_.append(item); } void RotateItems::undo() { foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) item->rotateBack(); else graphicsItem->rotate(-90); } } void RotateItems::redo() { foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) item->rotate(); else graphicsItem->rotate(90); } } MirrorItems::MirrorItems( QList items, QUndoCommand* parent ) : QUndoCommand(parent), items_(items) { setText(QObject::tr("Mirror item(s)")); } MirrorItems::MirrorItems( QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent) { setText(QObject::tr("Mirror item")); items_.append(item); } void MirrorItems::undo() { foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) item->mirror(); else graphicsItem->scale(-1, 1); } } void MirrorItems::redo() { foreach(QGraphicsItem* graphicsItem, items_) { Item* item = qgraphicsitem_cast(graphicsItem); if(item) item->mirror(); else graphicsItem->scale(-1, 1); } } BringToFrontItem::BringToFrontItem( QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent), item_(item) { setText(QObject::tr("Bring to front item")); oldZValue_ = item_->zValue(); QList overlapItems = item_->collidingItems(); qreal zValue_ = 0; foreach(QGraphicsItem* overlapItem, overlapItems) { if(overlapItem->zValue() >= zValue_) zValue_ = overlapItem->zValue() + 0.1; } } void BringToFrontItem::undo() { item_->setZValue(oldZValue_); } void BringToFrontItem::redo() { item_->setZValue(zValue_); } bool BringToFrontItem::mergeWith(const QUndoCommand* command) { if(command->id() != id()) return false; if(static_cast(command)->item_ == item_) return true; return false; } SendToBackItem::SendToBackItem( QGraphicsItem* item, QUndoCommand* parent ) : QUndoCommand(parent), item_(item) { setText(QObject::tr("Send to back item")); oldZValue_ = item_->zValue(); QList overlapItems = item_->collidingItems(); qreal zValue_ = 0; foreach(QGraphicsItem* overlapItem, overlapItems) { if(overlapItem->zValue() <= zValue_) zValue_ = overlapItem->zValue() - 0.1; } } void SendToBackItem::undo() { item_->setZValue(oldZValue_); } void SendToBackItem::redo() { item_->setZValue(zValue_); } bool SendToBackItem::mergeWith(const QUndoCommand* command) { if(command->id() != id()) return false; if(static_cast(command)->item_ == item_) return true; return false; } MoveItems::MoveItems( SchematicScene* scene, QList items, const QPointF& offset, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), items_(items), offset_(offset) { setText(QObject::tr("Move item(s)")); items_ = items; foreach(QGraphicsItem* item, items_) oldPos_.append(item->pos()); } MoveItems::MoveItems( SchematicScene* scene, QGraphicsItem* item, const QPointF& offset, QUndoCommand* parent ) : QUndoCommand(parent), scene_(scene), offset_(offset) { setText(QObject::tr("Move item(s)")); items_.append(item); oldPos_.append(item->pos()); } void MoveItems::undo() { scene_->resetStatus(); for(int i = 0; i < items_.size(); ++i) items_.at(i)->setPos(scene_->closestGridPoint(oldPos_.at(i))); } void MoveItems::redo() { for(int i = 0; i < items_.size(); ++i) items_.at(i)->setPos( scene_->closestGridPoint( oldPos_.at(i) + offset_ )); } bool MoveItems::mergeWith(const QUndoCommand* command) { if(command->id() != id()) return false; if(static_cast(command)->items_.toSet() == items_.toSet()) { offset_ += static_cast(command)->offset_; return true; } return false; } } QSapecNG-2.0.0-source/src/gui/editor/label.cpp000644 001750 001750 00000004566 11617757645 021720 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/label.h" #include namespace qsapecng { Label::Label(QGraphicsItem* parent, SchematicScene* scene) : Item(parent, scene) { setFlags( QGraphicsItem::ItemIsMovable | QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable ); label_.setParentItem(this); label_.setPlainText(QObject::tr("notext")); label_.setTextInteractionFlags(Qt::TextEditorInteraction); label_.setPos(Hook, 0); } QRectF Label::boundingRect() const { qreal offset = penWidth(); QRectF rect( 0 - offset, 0 - offset, label_.boundingRect().bottomRight().x() + offset + Hook, label_.boundingRect().bottomRight().y() + offset ); return rect; } void Label::paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ) { painter->save(); if(isSelected()) { painter->save(); painter->setPen(defaultPen_); double opacity = painter->opacity(); painter->setOpacity(opacity / 2.0); painter->drawRect(boundingRect()); painter->restore(); } painter->setPen(itemPen_); painter->drawPath(path_); painter->restore(); } QString Label::text() const { return label_.toPlainText(); } void Label::setText(const QString& label) { label_.setPlainText(label); } void Label::focusInEvent(QFocusEvent* event) { path_.addRect(0, 0, Hook, label_.boundingRect().height()); update(); } void Label::focusOutEvent(QFocusEvent* event) { path_ = QPainterPath(); update(); } qreal Label::penWidth() const { return (defaultPen_.width() > itemPen_.width()) ? defaultPen_.width() / 2 : itemPen_.width() / 2; } } QSapecNG-2.0.0-source/src/gui/editor/vpiface.h000644 001750 001750 00000001670 11617757645 021714 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 VPIFACE_H #define VPIFACE_H namespace qsapecng { class ValuePropagationInterface { public: virtual int propagate(int value) = 0; virtual void invalidate() = 0; }; } #endif // VPIFACE_H QSapecNG-2.0.0-source/src/gui/editor/schematicscene.h000644 001750 001750 00000016351 11617757645 023257 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SCHEMATICSCENE_H #define SCHEMATICSCENE_H #include #include #include #include #include #include #include #include #include class QMenu; class QEvent; class QPainter; class QKeyEvent; class QUndoStack; class QUndoCommand; class QGraphicsItem; class QGraphicsSceneMouseEvent; class QGraphicsSceneDragDropEvent; class QGraphicsSceneContextMenuEvent; class QtBoolPropertyManager; class QtGroupPropertyManager; class QtStringPropertyManager; class QtLineEditFactory; class QtCheckBoxFactory; class QtAbstractPropertyBrowser; class QtProperty; namespace qsapecng { class Component; class Item; class Wire; class SchematicScene: public QGraphicsScene { Q_OBJECT public: enum { Ground = 0 }; enum { GridStep = 10 }; enum SupportedItemType { NilItemType = 0, UserDefItemType, CapacitorItemType, CCCSItemType, CCVSItemType, ConductanceItemType, CurrentSourceItemType, InductorItemType, OpAmplItemType, ResistorItemType, VCCSItemType, VCVSItemType, VoltageSourceItemType, TransformerItemType, MutualInductanceItemType, VoltmeterItemType, AmmeterItemType, GroundItemType, PortItemType, OutItemType, WireItemType, LabelItemType, }; static QPainterPath nilPath(); static QPainterPath groundPath(); static QPainterPath portPath(); static QPainterPath outPath(); static QPainterPath voltmeterPath(); static QPainterPath ammeterPath(); static QPainterPath capacitorPath(); static QPainterPath cccsPath(); static QPainterPath ccvsPath(); static QPainterPath conductancePath(); static QPainterPath currentSourcePath(); static QPainterPath inductorPath(); static QPainterPath opAmplPath(); static QPainterPath resistorPath(); static QPainterPath vccsPath(); static QPainterPath vcvsPath(); static QPainterPath voltageSourcePath(); static QPainterPath transformerPath(); static QPainterPath mutualInductancePath(); static QtProperty* itemProperties(QGraphicsItem* item); static SchematicScene::SupportedItemType itemType(QGraphicsItem* item); static Item* itemByType(SupportedItemType type); static QString itemNameByType(SchematicScene::SupportedItemType type); static QChar itemIdByType(SchematicScene::SupportedItemType type); static QPainterPath userDefPath(uint ports); static QList userDefNodes(uint ports); public: SchematicScene(QObject* parent = 0); ~SchematicScene(); QPointF closestGridPoint(const QPointF& pos) const; inline bool gridVisible() const { return gridVisible_; } inline bool isGridPoint(QPointF point) const { return (point == closestGridPoint(point)); } void setActiveItem(SupportedItemType item); inline SupportedItemType activeItem() const { return activeItem_; } QList activeItems() const; QByteArray registerUserDef(const SchematicScene& scene); std::string queryUserDef(QByteArray md5); void setUserDefRequest(); void addItems(QList items); void addItems(QGraphicsItem* item); void addSupportedItem(QGraphicsItem* gItem, bool init = true); void removeSupportedItem(QGraphicsItem* gItem); void clearSupportedItem(QGraphicsItem* gItem); void setWireSessionRequest(bool connectedWire); void joinWires(Wire* w1, Wire* w2); void modifyWire(Wire* wire); void createLabel(); void moveSelectedItems(QPointF pos); void cutSelectedItems(); void copySelectedItems(); void pasteItems(); void rotateSelectedItems(); void mirrorSelectedItems(); void binSelectedItems(); void bringToFrontSelectedItem(); void sendToBackSelectedItem(); void clearSchematicScene(); inline void setContextMenu(QMenu* menu) { contextMenu_ = menu; } inline QMenu* contextMenu() const { return contextMenu_; } inline QUndoStack* undoRedoStack() const { return undoRedoStack_; } void initializeBrowser(QtAbstractPropertyBrowser* browser); inline QtProperty* properties() const { return properties_; } QVector ports(); inline int size() { return portList_.size(); } void assignNodes(int seed = SchematicScene::Ground + 1); public slots: void resetNodes(); void setGridVisible(bool visible = true); void resetStatus(); signals: void showUserDef(SchematicScene& scene); void propertyChanged(); protected: void drawBackground(QPainter* painter, const QRectF& rect); void mousePressEvent(QGraphicsSceneMouseEvent* event); void mouseMoveEvent(QGraphicsSceneMouseEvent* event); void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); void contextMenuEvent(QGraphicsSceneContextMenuEvent* event); void keyPressEvent(QKeyEvent* event); bool event(QEvent* event); void dragEnterEvent(QGraphicsSceneDragDropEvent* event); void dragMoveEvent(QGraphicsSceneDragDropEvent* event); void dragLeaveEvent(QGraphicsSceneDragDropEvent* event); void dropEvent(QGraphicsSceneDragDropEvent* event); private: void init(); void setupProperties(); inline bool hasActiveItem() const { return (activeItem_ != NilItemType); } inline bool hasUserDefReq() const { return userDefSessionRequested_; } inline bool hasPendingWire() const { return wireSessionRequested_; } void setPrePostWireLine(QPointF toPoint); void addWires(); private: bool gridVisible_; QMenu* contextMenu_; QPointF lastMousePressPos_; bool validNode_; SupportedItemType activeItem_; Item* item_; bool wireSessionRequested_; bool horizontalFirst_; bool hasValidFromPoint_; bool connectedWire_; QPointF fromPoint_; QGraphicsLineItem* preWireItem_; QGraphicsLineItem* postWireItem_; Wire* wireInProgress_; QPen wirePen_; Item* out_; QList outList_; QList portList_; QList groundList_; QList standardList_; QList wireList_; QList labelList_; QList userDefList_; int userDefSize_; QByteArray userDefMD5_; QHash userDefMap_; bool userDefSessionRequested_; QUndoStack* undoRedoStack_; QtAbstractPropertyBrowser* browser_; QtBoolPropertyManager* boolManager_; QtGroupPropertyManager* groupManager_; QtStringPropertyManager* stringManager_; QtLineEditFactory* lineEditFactory_; QtCheckBoxFactory* checkBoxFactory_; QtProperty* properties_; QHash itemCntMap_; QHash typeRootMap_; }; } Q_DECLARE_METATYPE(QPointer); Q_DECLARE_METATYPE(QtProperty*); #endif // SCHEMATICSCENE_H QSapecNG-2.0.0-source/src/gui/editor/undoredocommand.h000644 001750 001750 00000012567 11617757645 023464 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 UNDOREDO_H #define UNDOREDO_H #include "gui/editor/schematicscene.h" #include #include #include #include #include class QGraphicsScene; class QGraphicsItem; namespace qsapecng { class Wire; class Item; class AddItems: public QUndoCommand { public: AddItems( SchematicScene* scene, QList items, QUndoCommand* parent = 0 ); AddItems( SchematicScene* scene, QGraphicsItem* item, QUndoCommand* parent = 0 ); AddItems( SchematicScene* scene, QList items, const QList& pos, QUndoCommand* parent = 0 ); AddItems( SchematicScene* scene, QGraphicsItem* item, const QPointF& pos, QUndoCommand* parent = 0 ); ~AddItems(); virtual void undo(); virtual void redo(); private: SchematicScene* scene_; QList pos_; QList items_; }; class AddSupportedItem: public QUndoCommand { public: AddSupportedItem( SchematicScene* scene, SchematicScene::SupportedItemType type, const QPointF& pos, QUndoCommand* parent = 0 ); ~AddSupportedItem(); virtual void undo(); virtual void redo(); Item* item() const; private: SchematicScene* scene_; QPointF pos_; Item* item_; }; class AddUserDefItem: public QUndoCommand { public: AddUserDefItem( SchematicScene* scene, QByteArray md5, int size, std::string info, const QPointF& pos, QUndoCommand* parent = 0 ); ~AddUserDefItem(); virtual void undo(); virtual void redo(); Item* item() const; private: SchematicScene* scene_; QPointF pos_; Item* item_; }; class AddWire: public QUndoCommand { public: AddWire( SchematicScene* scene, const QPointF& pos, const QLineF& wire, bool connectedJunctions, QUndoCommand* parent = 0 ); ~AddWire(); virtual void undo(); virtual void redo(); private: SchematicScene* scene_; QPointF pos_; Item* wire_; }; class JoinWires: public QUndoCommand { public: JoinWires( Wire* w1, Wire* w2, QUndoCommand* parent = 0 ); ~JoinWires(); virtual void undo(); virtual void redo(); private: SchematicScene* scene_; Item* wire_; Item* w1_; Item* w2_; }; class RemoveItems: public QUndoCommand { public: RemoveItems( SchematicScene* scene, QList items, QUndoCommand* parent = 0 ); RemoveItems( SchematicScene* scene, QGraphicsItem* item, QUndoCommand* parent = 0 ); virtual void undo(); virtual void redo(); private: SchematicScene* scene_; QList items_; }; class RotateItems: public QUndoCommand { public: RotateItems( QList items, QUndoCommand* parent = 0 ); RotateItems( QGraphicsItem* item, QUndoCommand* parent = 0 ); virtual void undo(); virtual void redo(); private: QList items_; }; class MirrorItems: public QUndoCommand { public: MirrorItems( QList items, QUndoCommand* parent = 0 ); MirrorItems( QGraphicsItem* item, QUndoCommand* parent = 0 ); virtual void undo(); virtual void redo(); private: QList items_; }; class BringToFrontItem: public QUndoCommand { public: BringToFrontItem( QGraphicsItem* item, QUndoCommand* parent = 0 ); enum { ID = 23 }; virtual void undo(); virtual void redo(); inline int id() const { return ID; } bool mergeWith(const QUndoCommand* command); private: QGraphicsItem* item_; qreal oldZValue_; qreal zValue_; }; class SendToBackItem: public QUndoCommand { public: SendToBackItem(QGraphicsItem* item, QUndoCommand* parent = 0); enum { ID = 29 }; virtual void undo(); virtual void redo(); inline int id() const { return ID; } bool mergeWith(const QUndoCommand* command); private: QGraphicsItem* item_; qreal oldZValue_; qreal zValue_; }; class MoveItems: public QUndoCommand { public: MoveItems( SchematicScene* scene, QList items, const QPointF& offset, QUndoCommand* parent = 0 ); MoveItems( SchematicScene* scene, QGraphicsItem* item, const QPointF& offset, QUndoCommand* parent = 0 ); enum { ID = 7 }; virtual void undo(); virtual void redo(); inline int id() const { return ID; } bool mergeWith(const QUndoCommand* command); private: SchematicScene* scene_; QList items_; QList oldPos_; QPointF offset_; }; } #endif // UNDOREDO_H QSapecNG-2.0.0-source/src/gui/editor/label.h000644 001750 001750 00000003012 11617757645 021346 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 LABEL_H #define LABEL_H #include "gui/editor/item.h" #include #include #include namespace qsapecng { class SchematicScene; class Label: public Item { public: enum { Hook = 10 }; public: Label(QGraphicsItem* parent = 0, SchematicScene* scene = 0); inline ItemType itemType() const { return Item::Label; } QRectF boundingRect() const; void paint( QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget ); QString text() const; void setText(const QString& label); protected: void focusInEvent(QFocusEvent* event); void focusOutEvent(QFocusEvent* event); private: qreal penWidth() const; QGraphicsTextItem label_; QPainterPath path_; }; } #endif // LABEL_H QSapecNG-2.0.0-source/src/gui/editor/schematicsceneparser.cpp000644 001750 001750 00000056264 11617757645 025036 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/editor/schematicsceneparser.h" #include "gui/editor/component.h" #include "gui/editor/label.h" #include "gui/editor/wire.h" #include "gui/editor/item.h" #include "gui/qtsolutions/qtpropertyeditor/QtBoolPropertyManager" #include "gui/qtsolutions/qtpropertyeditor/QtStringPropertyManager" #include "gui/qtsolutions/qtpropertyeditor/QtProperty" #include #include #include #include #include namespace qsapecng { SchematicSceneParser::SchematicSceneParser( const SchematicScene& scene ): discard_(0) { setupMap(); items_ = scene.activeItems(); } SchematicSceneParser::SchematicSceneParser( const SchematicScene& scene, const QList& items ): discard_(0) { setupMap(); foreach(QGraphicsItem* gItem, items) { Item* item = qgraphicsitem_cast(gItem); if(item && scene.activeItems().contains(item)) items_.push_back(item); } } SchematicSceneParser::SchematicSceneParser( const SchematicScene& scene, QGraphicsItem* gItem ): discard_(0) { setupMap(); Item* item = qgraphicsitem_cast(gItem); if(item && scene.activeItems().contains(item)) items_.push_back(item); } void SchematicSceneParser::parse( sapecng::abstract_builder& builder ) { foreach(Item* item, items_) parse_item(builder, item); builder.flush(); } void SchematicSceneParser::storeItemData( std::map& props, SchematicScene::SupportedItemType type, Item* item ) { QPointF position = item->pos(); std::string x_pos = QString::number(position.x()).toStdString(); std::string y_pos = QString::number(position.y()).toStdString(); std::string mirrored = (item->mirrored() ? "1" : "0"); std::string rot_factor = QString::number(item->angle() / 90).toStdString(); props["type"] = QString::number(type).toStdString(); props["x"] = x_pos; props["y"] = y_pos; props["mirrored"] = mirrored; props["angle"] = rot_factor; } void SchematicSceneParser::storeLabel( std::map& props, Component* component ) { if(!component->label()->toPlainText().trimmed().isEmpty()) { QPointF pos = component->label()->pos(); props["x_label"] = QString::number(pos.x()).toStdString(); props["y_label"] = QString::number(pos.y()).toStdString(); } } void SchematicSceneParser::setupMap() { dualMap_[SchematicScene::CapacitorItemType] = sapecng::abstract_builder::C; dualMap_[SchematicScene::ConductanceItemType] = sapecng::abstract_builder::G; dualMap_[SchematicScene::CurrentSourceItemType] = sapecng::abstract_builder::I; dualMap_[SchematicScene::ResistorItemType] = sapecng::abstract_builder::R; dualMap_[SchematicScene::InductorItemType] = sapecng::abstract_builder::L; dualMap_[SchematicScene::VoltageSourceItemType] = sapecng::abstract_builder::V; dualMap_[SchematicScene::VoltmeterItemType] = sapecng::abstract_builder::VM; dualMap_[SchematicScene::AmmeterItemType] = sapecng::abstract_builder::AM; quadMap_[SchematicScene::CCCSItemType] = sapecng::abstract_builder::CCCS; quadMap_[SchematicScene::CCVSItemType] = sapecng::abstract_builder::CCVS; quadMap_[SchematicScene::VCCSItemType] = sapecng::abstract_builder::VCCS; quadMap_[SchematicScene::VCVSItemType] = sapecng::abstract_builder::VCVS; quadMap_[SchematicScene::OpAmplItemType] = sapecng::abstract_builder::AO; quadMap_[SchematicScene::TransformerItemType] = sapecng::abstract_builder::n; quadMap_[SchematicScene::MutualInductanceItemType] = sapecng::abstract_builder::K; } void SchematicSceneParser::parse_item( sapecng::abstract_builder& builder, Item* item ) { SchematicScene::SupportedItemType type = SchematicScene::itemType(item); std::map props; storeItemData(props, type, item); QtProperty* properties = SchematicScene::itemProperties(item); QHash subproperties; if(properties) { subproperties.insert("__NAME", properties->valueText()); foreach(QtProperty* prop, properties->subProperties()) subproperties.insert(prop->propertyName(), prop->valueText()); } switch(type) { case SchematicScene::GroundItemType: case SchematicScene::PortItemType: { // add as unknow Component* component = static_cast(item); props["node"] = QString::number(component->nodes().front()).toStdString(); builder.add_unknow_component(props); break; } case SchematicScene::LabelItemType: { // add as unknow Label* label = static_cast(item); props["text"] = label->text().toStdString(); builder.add_unknow_component(props); break; } case SchematicScene::WireItemType: { Wire* wire = static_cast(item); props["orientation"] = QString::number(wire->orientation()).toStdString(); props["to_x"] = QString::number(wire->toPoint().x()).toStdString(); props["to_y"] = QString::number(wire->toPoint().y()).toStdString(); props["conn"] = QString::number(wire->isJunctionsConnected()).toStdString(); builder.add_wire_component(props); break; } case SchematicScene::OutItemType: { if(!discard_) { Component* out = static_cast(item); builder.add_out_component(out->nodes().front(), props); } break; } case SchematicScene::VoltmeterItemType: case SchematicScene::AmmeterItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); builder.add_dual_component( dualMap_[type], "", 1., true, nodes.at(1), nodes.at(0), props ); break; } case SchematicScene::CapacitorItemType: case SchematicScene::ConductanceItemType: case SchematicScene::InductorItemType: case SchematicScene::ResistorItemType: case SchematicScene::CurrentSourceItemType: case SchematicScene::VoltageSourceItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); storeLabel(props, component); builder.add_dual_component( dualMap_[type], subproperties.value("__NAME").toStdString(), subproperties.value("Value").toDouble(), QVariant(subproperties.value("Symbolic")).toBool(), nodes.at(1), nodes.at(0), props ); break; } case SchematicScene::CCCSItemType: case SchematicScene::CCVSItemType: case SchematicScene::VCCSItemType: case SchematicScene::VCVSItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); storeLabel(props, component); builder.add_quad_component( quadMap_[type], subproperties.value("__NAME").toStdString(), subproperties.value("Value").toDouble(), QVariant(subproperties.value("Symbolic")).toBool(), nodes.at(1), nodes.at(0), nodes.at(3), nodes.at(2), props ); break; } case SchematicScene::OpAmplItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); storeLabel(props, component); builder.add_quad_component( quadMap_[type], subproperties.value("__NAME").toStdString(), 1., false, SchematicScene::Ground, nodes.at(2), nodes.at(1), nodes.at(0), props ); break; } case SchematicScene::TransformerItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); storeLabel(props, component); builder.add_quad_component( quadMap_[type], subproperties.value("__NAME").toStdString(), subproperties.value("Value").toDouble(), QVariant(subproperties.value("Symbolic")).toBool(), nodes.at(3), nodes.at(2), nodes.at(1), nodes.at(0), props ); break; } case SchematicScene::MutualInductanceItemType: { Component* component = static_cast(item); QVector nodes = component->nodes(); storeLabel(props, component); props["lp:name"] = subproperties.value("lp:name").toStdString(); props["lp:value"] = subproperties.value("lp:value").toStdString(); props["ls:name"] = subproperties.value("ls:name").toStdString(); props["ls:value"] = subproperties.value("ls:value").toStdString(); builder.add_quad_component( quadMap_[type], subproperties.value("__NAME").toStdString(), subproperties.value("Value").toDouble(), QVariant(subproperties.value("Symbolic")).toBool(), nodes.at(3), nodes.at(2), nodes.at(1), nodes.at(0), props ); break; } case SchematicScene::UserDefItemType: { Component* component = static_cast(item); storeLabel(props, component); builder.begin_userdef_component( subproperties.value("__NAME").toStdString(), props ); ++discard_; QPointer scene = item->data(101).value< QPointer >(); foreach(Item* item, scene->activeItems()) parse_item(builder, item); --discard_; builder.end_userdef_component( subproperties.value("__NAME").toStdString(), props ); // outer-to-inner port buffer resistors QVector nodes = component->nodes(); QVector ports = scene->ports(); if(nodes.size() == ports.size()) { for(int i = 0; i < nodes.size(); ++i) builder.add_dual_component( dualMap_[SchematicScene::ResistorItemType], "", .0, false, nodes.at(i), ports.at(i), boost::assign::map_list_of("discard", "1") ); } else { // something strange happens - port-to-ground short circuits foreach(int node, nodes) builder.add_dual_component( dualMap_[SchematicScene::ResistorItemType], "", .0, false, node, SchematicScene::Ground, boost::assign::map_list_of("discard", "1") ); } break; } default: break; } } void SchematicSceneBuilder::add_circuit_properties( std::map map) { } void SchematicSceneBuilder::add_circuit_property( std::string name, std::string value) { } void SchematicSceneBuilder::add_wire_component( std::map props ) { if(!discard(props)) { Wire* item = static_cast( SchematicScene::itemByType(SchematicScene::WireItemType)); bool ok; double to_x = QString::fromStdString(props["to_x"]).toDouble(&ok); if(!ok) to_x = SchematicScene::GridStep; double to_y = QString::fromStdString(props["to_y"]).toDouble(&ok); if(!ok) to_y = SchematicScene::GridStep; bool conn = QString::fromStdString(props["conn"]).toInt(&ok); if(!ok) conn = false; item->setWire(QLineF(QPointF(0, 0), QPointF(to_x, to_y))); item->setConnectedJunctions(conn); scene_->addSupportedItem(item, false); grid_coordinate(item, props); items_.push_back(item); } } void SchematicSceneBuilder::add_out_component( unsigned int v, std::map props ) { if(!discard(props)) { Item* item = static_cast( SchematicScene::itemByType(SchematicScene::OutItemType)); scene_->addSupportedItem(item, false); grid_coordinate(item, props); mirror_and_rotate(item, props); items_.push_back(item); } } void SchematicSceneBuilder::add_dual_component( sapecng::abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props ) { if(!discard(props)) { Component* component = 0; switch(c_type) { case sapecng::abstract_builder::R: { component = static_cast( SchematicScene::itemByType(SchematicScene::ResistorItemType)); break; } case sapecng::abstract_builder::G: { component = static_cast( SchematicScene::itemByType(SchematicScene::ConductanceItemType)); break; } case sapecng::abstract_builder::L: { component = static_cast( SchematicScene::itemByType(SchematicScene::InductorItemType)); break; } case sapecng::abstract_builder::C: { component = static_cast( SchematicScene::itemByType(SchematicScene::CapacitorItemType)); break; } case sapecng::abstract_builder::V: { component = static_cast( SchematicScene::itemByType(SchematicScene::VoltageSourceItemType)); break; } case sapecng::abstract_builder::I: { component = static_cast( SchematicScene::itemByType(SchematicScene::CurrentSourceItemType)); break; } case sapecng::abstract_builder::VM: { component = static_cast( SchematicScene::itemByType(SchematicScene::VoltmeterItemType)); break; } case sapecng::abstract_builder::AM: { component = static_cast( SchematicScene::itemByType(SchematicScene::AmmeterItemType)); break; } default: break; } if(component) { scene_->addSupportedItem(component, false); grid_coordinate(component, props); setup_properties(component, name, value, symbolic, props); mirror_and_rotate(component, props); adjust_label(component, props); items_.push_back(component); } } } void SchematicSceneBuilder::add_quad_component( sapecng::abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props ) { if(!discard(props)) { Component* component = 0; switch(c_type) { case sapecng::abstract_builder::VCCS: { component = static_cast( SchematicScene::itemByType(SchematicScene::VCCSItemType)); break; } case sapecng::abstract_builder::VCVS: { component = static_cast( SchematicScene::itemByType(SchematicScene::VCVSItemType)); break; } case sapecng::abstract_builder::CCCS: { component = static_cast( SchematicScene::itemByType(SchematicScene::CCCSItemType)); break; } case sapecng::abstract_builder::CCVS: { component = static_cast( SchematicScene::itemByType(SchematicScene::CCVSItemType)); break; } case sapecng::abstract_builder::AO: { component = static_cast( SchematicScene::itemByType(SchematicScene::OpAmplItemType)); break; } case sapecng::abstract_builder::n: { component = static_cast( SchematicScene::itemByType(SchematicScene::TransformerItemType)); break; } case sapecng::abstract_builder::K: { component = static_cast( SchematicScene::itemByType( SchematicScene::MutualInductanceItemType)); break; } default: break; } if(component) { scene_->addSupportedItem(component, false); grid_coordinate(component, props); setup_properties(component, name, value, symbolic, props); mirror_and_rotate(component, props); adjust_label(component, props); items_.push_back(component); } } } void SchematicSceneBuilder::add_unknow_component( std::map props ) { if(!discard(props)) { bool ok; SchematicScene::SupportedItemType type = (SchematicScene::SupportedItemType) QString::fromStdString(props["type"]).toInt(&ok); if(!ok) type = SchematicScene::NilItemType; switch(type) { case SchematicScene::GroundItemType: case SchematicScene::PortItemType: { Item* item = static_cast( SchematicScene::itemByType(type)); scene_->addSupportedItem(item, false); grid_coordinate(item, props); mirror_and_rotate(item, props); items_.push_back(item); break; } case SchematicScene::LabelItemType: { Label* item = static_cast( SchematicScene::itemByType(SchematicScene::LabelItemType)); scene_->addSupportedItem(item, false); grid_coordinate(item, props); mirror_and_rotate(item, props); item->setText(QString::fromStdString(props["text"])); items_.push_back(item); break; } default: break; } } } void SchematicSceneBuilder::begin_userdef_component( std::string name, std::map props ) { QPair< SchematicScene*, QList > pair(scene_, items_); stack_.push(pair); scene_ = new SchematicScene; items_.clear(); } void SchematicSceneBuilder::end_userdef_component( std::string name, std::map props ) { int size = scene_->size(); QByteArray md5 = stack_.back().first->registerUserDef(*scene_); Component* component = static_cast( SchematicScene::itemByType(SchematicScene::UserDefItemType)); component->setPath(SchematicScene::userDefPath(size)); component->addNodes(SchematicScene::userDefNodes(size)); component->setData(99, md5); QPointer smart(scene_); component->setData(101, qVariantFromValue(smart)); QPair< SchematicScene*, QList > pair = stack_.pop(); items_.clear(); items_.append(pair.second); scene_ = pair.first; scene_->addSupportedItem(component, false); grid_coordinate(component, props); setup_properties(component, name, /* foo */ 0, /* foo */ false, /* foo */ props); mirror_and_rotate(component, props); adjust_label(component, props); items_.push_back(component); } void SchematicSceneBuilder::flush() { QPointF offset = QPointF(0, 0); if(offset_ != QPointF(0, 0)) { foreach(QGraphicsItem* item, items_) offset += item->pos(); offset /= items_.size(); } QPointF realOffset = offset_ - offset; foreach(QGraphicsItem* item, items_) item->setPos(scene_->closestGridPoint(item->pos() + realOffset)); scene_->addItems(items_); } bool SchematicSceneBuilder::discard(std::map props) { bool ok; int discard = QString::fromStdString(props["discard"]).toInt(&ok); if(!ok) discard = 0; return discard; } void SchematicSceneBuilder::grid_coordinate( Item* item, std::map props ) { bool ok; double x = QString::fromStdString(props["x"]).toDouble(&ok); if(!ok) x = 0; double y = QString::fromStdString(props["y"]).toDouble(&ok); if(!ok) y = 0; item->setPos(scene_->closestGridPoint(QPointF(x, y))); } void SchematicSceneBuilder::mirror_and_rotate( Item* item, std::map props) { bool ok; bool mirrored = QString::fromStdString(props["mirrored"]).toInt(&ok); if(!ok) mirrored = false; int rot_factor = QString::fromStdString(props["angle"]).toInt(&ok); if(!ok) rot_factor = 0; if(mirrored) item->mirror(); for(int i = 0; i < rot_factor; ++i) item->rotate(); } void SchematicSceneBuilder::adjust_label( Component* cmp, std::map props) { bool xOk, yOk; double xLab = QString::fromStdString(props["x_label"]).toDouble(&xOk); double yLab = QString::fromStdString(props["y_label"]).toDouble(&yOk); if(xOk && yOk) cmp->label()->setPos(QPointF(xLab, yLab)); } void SchematicSceneBuilder::setup_properties( Item* item, std::string name, double value, bool symbolic, std::map props ) { QtProperty* properties = SchematicScene::itemProperties(item); QHash subproperties; if(properties) { subproperties.insert("__NAME", properties); foreach(QtProperty* prop, properties->subProperties()) subproperties.insert(prop->propertyName(), prop); } if(subproperties.contains("__NAME")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("__NAME")->propertyManager()); if(spm) spm->setValue( subproperties.value("__NAME"), QString::fromStdString(name) ); } if(subproperties.contains("Value")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("Value")->propertyManager()); if(spm) spm->setValue( subproperties.value("Value"), QString::number(value) ); } if(subproperties.contains("Symbolic")) { QtBoolPropertyManager* bpm = qobject_cast( subproperties.value("Symbolic")->propertyManager()); if(bpm) bpm->setValue( subproperties.value("Symbolic"), symbolic ); } if(subproperties.contains("lp:name")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("lp:name")->propertyManager()); if(spm) spm->setValue( subproperties.value("lp:name"), QString::fromStdString(props["lp:name"]) ); } if(subproperties.contains("lp:value")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("lp:value")->propertyManager()); if(spm) spm->setValue( subproperties.value("lp:value"), QString::number( QString::fromStdString(props["lp:value"]).toDouble()) ); } if(subproperties.contains("ls:name")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("ls:name")->propertyManager()); if(spm) spm->setValue( subproperties.value("ls:name"), QString::fromStdString(props["ls:name"]) ); } if(subproperties.contains("ls:value")) { QtStringPropertyManager* spm = qobject_cast( subproperties.value("ls:value")->propertyManager()); if(spm) spm->setValue( subproperties.value("ls:value"), QString::number( QString::fromStdString(props["ls:value"]).toDouble()) ); } } } QSapecNG-2.0.0-source/src/gui/workplane/workplane.cpp000644 001750 001750 00000063640 11617757645 023355 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "model/metacircuit.h" #include "functor/functor.hpp" #include "gui/workplane/workplane.h" #include "gui/functor/functor_traits.hpp" #include "gui/qlogger.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace qsapecng { MarkableCurve::~MarkableCurve() { marker_->detach(); delete marker_; } void MarkableCurve::setVisible(bool on) { marker_->setVisible(false); if(on) marker_->attach(plot()); else marker_->detach(); QwtPlotCurve::setVisible(on); } void MarkableCurve::selected() { marker_->setVisible(false); } void MarkableCurve::appended(const QwtDoublePoint& pos) { if(isVisible()) { marker_->setVisible(true); moved(pos); } } void MarkableCurve::moved(const QwtDoublePoint& pos) { if(isVisible()) { std::size_t idx; for(idx = 0; idx < (data().size() - 1) && data().x(idx + 1) < pos.x(); ++idx); marker_->setValue(data().x(idx), data().y(idx)); QString label = "( " + QString::number(data().x(idx)) + ", " + QString::number(data().y(idx)) + " ) [" + QString::number(idx) + "]"; marker_->setLabel(label); Qt::Alignment H = (data().x(idx) >= minXValue() + ((maxXValue() - minXValue()) / 2)) ? Qt::AlignLeft : Qt::AlignRight ; Qt::Alignment V = (data().y(idx) >= minYValue() + ((maxYValue() - minYValue()) / 2)) ? Qt::AlignBottom : Qt::AlignTop ; marker_->setLabelAlignment(H | V); marker_->itemChanged(); } } void MarkableCurve::initialize() { QwtSymbol symbol; symbol.setStyle(QwtSymbol::Ellipse); symbol.setSize(QSize(5, 5)); marker_ = new QwtPlotMarker; marker_->setLineStyle(QwtPlotMarker::NoLine); marker_->setSymbol(symbol); marker_->setVisible(false); } MarkedCurve::~MarkedCurve() { resetMarker(); } void MarkedCurve::setVisible(bool on) { if(!on) { resetMarker(); } else { replotMarker(); foreach(QwtPlotMarker* marker, markers_) { marker->setVisible(on); marker->attach(plot()); marker->itemChanged(); } } } void MarkedCurve::replotMarker() { resetMarker(); for(std::size_t i = 0; i < data().size(); ++i) { QwtPlotMarker* marker = new QwtPlotMarker; marker->setLineStyle(QwtPlotMarker::NoLine); marker->setLabelAlignment(Qt::AlignBottom); marker->setValue(data().x(i), data().y(i)); QString label = "( " + QString::number(data().x(i)) + ", " + QString::number(data().y(i)) + " )"; marker->setLabel(label); markers_.push_back(marker); } } void MarkedCurve::resetMarker() { foreach(QwtPlotMarker* marker, markers_) { marker->detach(); delete marker; } markers_.clear(); } WorkPlane::WorkPlane(QWidget* parent) : QWidget(parent), startFreq_(0), endFreq_(0), stepFreq_(0), oldStartFreq_(0), oldEndFreq_(0), oldStepFreq_(0) { createMainLayout(); setupCurves(); setDirty(); setLayout(mainLayout_); setWindowTitle(tr("WorkPlane")); setAttribute(Qt::WA_DeleteOnClose); connect(data_, SIGNAL(itemActivated(QTableWidgetItem*)), this, SLOT(setDirty())); } WorkPlane::~WorkPlane() { for(int i = 0; i < curves_.size(); ++i) delete curves_[i].first; curves_.clear(); attached_.clear(); } void WorkPlane::setData( const std::map& values, const sapecng::metacircuit::expression& numerator, const sapecng::metacircuit::expression& denominator ) { setDirty(); data_->clearContents(); data_->setColumnCount(2); data_->setRowCount(values.size()); data_->setSortingEnabled(false); int row = 0; for(std::map::const_iterator i = values.begin(); i != values.end(); ++i, ++row) { QLabel* left = new QLabel(QString::fromStdString(i->first)); left->setAlignment(Qt::AlignHCenter | Qt::AlignVCenter); QLineEdit* right = new QLineEdit; right->setText(QString::number(i->second)); QRegExp sn("[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?"); QRegExpValidator* validator = new QRegExpValidator(sn, right); right->setValidator(validator); data_->setCellWidget(row, 0, left); data_->setCellWidget(row, 1, right); } data_->setSortingEnabled(true); data_->sortItems(0); QStringList labels; labels << "Name" << "Value"; data_->setHorizontalHeaderLabels(labels); data_->setVerticalHeader(new QHeaderView(Qt::Vertical)); num_ = numerator; den_ = denominator; std::string num = sapecng::metacircuit::as_string(numerator); std::string den = sapecng::metacircuit::as_string(denominator); std::string expr; expr.append(num); expr.append("\n"); expr.append(std::string( (num.size() > den.size() ? num.size() : den.size()) * 3/2, '-')); expr.append("\n"); expr.append(den); setToolTip(QString::fromStdString(expr)); } void WorkPlane::setDirty() { attached_.clear(); for(int i = 0; i < curves_.size(); ++i) { curves_[i].first->setVisible(false); curves_[i].first->detach(); curves_[i].second = false; } plot_->setTitle(tr("none")); plot_->setAxisTitle(QwtPlot::yLeft, tr("none")); plot_->setAxisTitle(QwtPlot::xBottom, tr("none")); plot_->updateAxes(); plot_->replot(); } void WorkPlane::xAxisLogScale(bool log) { if(log) plot_->setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine); else plot_->setAxisScaleEngine(QwtPlot::xBottom, new QwtLinearScaleEngine); plot_->updateAxes(); plot_->replot(); } void WorkPlane::yAxisLogScale(bool log) { if(log) plot_->setAxisScaleEngine(QwtPlot::yLeft, new QwtLog10ScaleEngine); else plot_->setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine); plot_->updateAxes(); plot_->replot(); } void WorkPlane::plot(WorkPlane::F f) { if(f == NOOP) { setDirty(); return; } setEnabled(false); lastId_ = f; if(!attached_.isEmpty()) { foreach(QwtPlotCurve* curve, attached_) { curve->setVisible(false); curve->detach(); } } switch(f) { case MAGNITUDE: case MAGNITUDE_RAD: { std::pair< std::vector, std::vector > res; if(!curves_[f].second) { QLogger::info(QObject::tr("Calculate magnitude.")); std::map values = actValues(); res = sapecng::magnitude( std::make_pair(startFreq_->value(), endFreq_->value()), stepFreq_->value() )(num_, den_, values); } plot_->setTitle(functor_traits::title); plot_->setAxisTitle( QwtPlot::yLeft, functor_traits::yLabel); if(f == MAGNITUDE) plot_->setAxisTitle( QwtPlot::xBottom, functor_traits::xLabel); else if(f == MAGNITUDE_RAD) plot_->setAxisTitle(QwtPlot::xBottom, functor_traits::xLabel + tr(" (rad/s)")); setupCurve(res, MAGNITUDE); std::vector rad = res.first; for(std::vector::iterator i = rad.begin(); i < rad.end(); ++i) *i = 2. * 4.0 * std::atan(1.0) * *i; res.first = rad; setupCurve(res, MAGNITUDE_RAD); curves_[f].first->attach(plot_); curves_[f].first->setVisible(true); attached_.push_back(curves_[f].first); break; } case PHASE: case PHASE_RAD: { std::pair< std::vector, std::vector > res; if(!curves_[f].second) { QLogger::info(QObject::tr("Calculate phase.")); std::map values = actValues(); res = sapecng::phase( std::make_pair(startFreq_->value(), endFreq_->value()), stepFreq_->value() )(num_, den_, values); } plot_->setTitle(functor_traits::title); plot_->setAxisTitle( QwtPlot::yLeft, functor_traits::yLabel); if(f == PHASE) plot_->setAxisTitle( QwtPlot::xBottom, functor_traits::xLabel); else if(f == PHASE_RAD) plot_->setAxisTitle(QwtPlot::xBottom, functor_traits::xLabel + tr(" (rad/s)")); setupCurve(res, PHASE); std::vector rad = res.first; for(std::vector::iterator i = rad.begin(); i < rad.end(); ++i) *i = 2. * 4.0 * std::atan(1.0) * *i; res.first = rad; setupCurve(res, PHASE_RAD); curves_[f].first->attach(plot_); curves_[f].first->setVisible(true); attached_.push_back(curves_[f].first); break; } case GAIN: case GAIN_RAD: { std::pair< std::vector, std::vector > res; if(!curves_[f].second) { QLogger::info(QObject::tr("Calculate gain.")); std::map values = actValues(); res = sapecng::gain( std::make_pair(startFreq_->value(), endFreq_->value()), stepFreq_->value() )(num_, den_, values); } plot_->setTitle(functor_traits::title); plot_->setAxisTitle( QwtPlot::yLeft, functor_traits::yLabel); if(f == GAIN) plot_->setAxisTitle( QwtPlot::xBottom, functor_traits::xLabel); else if(f == GAIN_RAD) plot_->setAxisTitle(QwtPlot::xBottom, functor_traits::xLabel + tr(" (rad/s)")); setupCurve(res, GAIN); std::vector rad = res.first; for(std::vector::iterator i = rad.begin(); i < rad.end(); ++i) *i = 2. * 4.0 * std::atan(1.0) * *i; res.first = rad; setupCurve(res, GAIN_RAD); curves_[f].first->attach(plot_); curves_[f].first->setVisible(true); attached_.push_back(curves_[f].first); break; } case LOSS: case LOSS_RAD: { std::pair< std::vector, std::vector > res; if(!curves_[f].second) { QLogger::info(QObject::tr("Calculate loss.")); std::map values = actValues(); res = sapecng::loss( std::make_pair(startFreq_->value(), endFreq_->value()), stepFreq_->value() )(num_, den_, values); } plot_->setTitle(functor_traits::title); plot_->setAxisTitle( QwtPlot::yLeft, functor_traits::yLabel); if(f == LOSS) plot_->setAxisTitle( QwtPlot::xBottom, functor_traits::xLabel); else if(f == LOSS_RAD) plot_->setAxisTitle(QwtPlot::xBottom, functor_traits::xLabel + tr(" (rad/s)")); setupCurve(res, LOSS); std::vector rad = res.first; for(std::vector::iterator i = rad.begin(); i < rad.end(); ++i) *i = 2. * 4.0 * std::atan(1.0) * *i; res.first = rad; setupCurve(res, LOSS_RAD); curves_[f].first->attach(plot_); curves_[f].first->setVisible(true); attached_.push_back(curves_[f].first); break; } case ZEROS: case POLES: { std::pair< std::vector, std::vector > resZ; if(!curves_[ZEROS].second) { QLogger::info(QObject::tr("Looking for zeros.")); std::map values = actValues(); resZ = sapecng::zeros()(num_, den_, values); unsigned int size = resZ.first.size() > resZ.second.size() ? resZ.second.size() : resZ.first.size(); for(unsigned int i = 0; i < size; ++i) QLogger::info(QObject::tr("Zero found near to ") + QString("(%1, %2)") .arg(QString::number(resZ.first.at(i))) .arg(QString::number(resZ.second.at(i)))); } std::pair< std::vector, std::vector > resP; if(!curves_[POLES].second) { QLogger::info(QObject::tr("Looking for poles.")); std::map values = actValues(); resP = sapecng::poles()(num_, den_, values); unsigned int size = resP.first.size() > resP.second.size() ? resP.second.size() : resP.first.size(); for(unsigned int i = 0; i < size; ++i) QLogger::info(QObject::tr("Pole found near to ") + QString("(%1, %2)") .arg(QString::number(resP.first.at(i))) .arg(QString::number(resP.second.at(i)))); } plot_->setTitle( functor_traits::title + "/" + functor_traits::title ); plot_->setAxisTitle( QwtPlot::yLeft, functor_traits::yLabel); plot_->setAxisTitle( QwtPlot::xBottom, functor_traits::xLabel); setupCurve(resZ, ZEROS); setupCurve(resP, POLES); curves_[ZEROS].first->attach(plot_); curves_[POLES].first->attach(plot_); curves_[ZEROS].first->setVisible(true); curves_[POLES].first->setVisible(true); attached_.push_back(curves_[ZEROS].first); attached_.push_back(curves_[POLES].first); break; } default: break; } plot_->setFocus(Qt::OtherFocusReason); plot_->updateAxes(); plot_->replot(); setEnabled(true); } void WorkPlane::plot(int f) { plot((F) f); } void WorkPlane::redraw() { setDirty(); plot(lastId_); } std::map WorkPlane::actValues() const { std::map values; for(int i = 0; i < data_->rowCount(); ++i) values[qobject_cast( data_->cellWidget(i, 0))->text().toStdString()] = qobject_cast( data_->cellWidget(i, 1))->text().toDouble(); return values; } void WorkPlane::createMainLayout() { data_ = new QTableWidget; data_->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); data_->horizontalHeader()->setStretchLastSection(true); startFreq_ = new QDoubleSpinBox; startFreq_->setMaximum(std::numeric_limits::max()); startFreq_->setDecimals(5); startFreq_->setValue(0.00001); oldStartFreq_ = 0.01; endFreq_ = new QDoubleSpinBox; endFreq_->setMaximum(std::numeric_limits::max()); endFreq_->setDecimals(5); endFreq_->setValue(99.); oldEndFreq_ = 99.; stepFreq_ = new QDoubleSpinBox; stepFreq_->setMaximum(std::numeric_limits::max()); stepFreq_->setDecimals(5); stepFreq_->setValue(0.001); oldStepFreq_ = 0.001; QFormLayout* freqLayout = new QFormLayout; freqLayout->addRow(tr("Start (Hz):"), startFreq_); freqLayout->addRow(tr("End (Hz):"), endFreq_); freqLayout->addRow(tr("Step (Hz):"), stepFreq_); freqLayout->setFieldGrowthPolicy(QFormLayout::FieldsStayAtSizeHint); QGroupBox* freqBox = new QGroupBox(tr("Frequency box")); freqBox->setSizePolicy(QSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum)); freqBox->setLayout(freqLayout); QHBoxLayout* replotLayout = new QHBoxLayout; QPushButton* replot = new QPushButton(tr("Replot")); replotLayout->addStretch(); replotLayout->addWidget(replot); replotLayout->addStretch(); connect(replot, SIGNAL(clicked(bool)), this, SLOT(redraw())); dataLayout_ = new QVBoxLayout; dataLayout_->addWidget(data_); dataLayout_->addWidget(freqBox); dataLayout_->addStretch(1); dataLayout_->addLayout(replotLayout); dataLayout_->addStretch(2); plot_ = new QwtPlot_ContextMenu(this); plot_->setAxisScaleEngine(QwtPlot::yLeft, new QwtLinearScaleEngine); plot_->setAxisScaleEngine(QwtPlot::xBottom, new QwtLog10ScaleEngine); plot_->setAutoReplot(true); tracker_ = new QwtPlotPicker(plot_->canvas()); tracker_->setSelectionFlags(QwtPicker::PointSelection); tracker_->setRubberBand(QwtPicker::VLineRubberBand); tracker_->setTrackerMode(QwtPicker::AlwaysOff); grid_ = new QwtPlotGrid; grid_->setPen(QPen(Qt::gray, 0., Qt::DotLine)); grid_->attach(plot_); plot_->replot(); centralLayout_ = new QVBoxLayout; centralLayout_->addWidget(plot_); QFrame* separator; mainLayout_ = new QHBoxLayout; mainLayout_->addLayout(dataLayout_); separator = new QFrame; separator->setFrameStyle(QFrame::VLine | QFrame::Sunken); separator->setMidLineWidth(2); mainLayout_->addWidget(separator); mainLayout_->addLayout(centralLayout_); mainLayout_->setStretchFactor(dataLayout_, 1); mainLayout_->setStretchFactor(centralLayout_, 2); } void WorkPlane::setupCurves() { curves_ = QVector< QPair< QwtPlotCurve*, bool > >(NOOP); QwtSymbol symbol; symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[MAGNITUDE].first = new MarkableCurve; curves_[MAGNITUDE].first->setPen(functor_traits::pen); curves_[MAGNITUDE].first->setStyle(functor_traits::style); curves_[MAGNITUDE].first->setSymbol(symbol); curves_[MAGNITUDE].first->setCurveAttribute( functor_traits::attribute); curves_[MAGNITUDE].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[MAGNITUDE_RAD].first = new MarkableCurve; curves_[MAGNITUDE_RAD].first->setPen(functor_traits::pen); curves_[MAGNITUDE_RAD].first->setStyle(functor_traits::style); curves_[MAGNITUDE_RAD].first->setSymbol(symbol); curves_[MAGNITUDE_RAD].first->setCurveAttribute( functor_traits::attribute); curves_[MAGNITUDE_RAD].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE_RAD].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE_RAD].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[MAGNITUDE_RAD].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[PHASE].first = new MarkableCurve; curves_[PHASE].first->setPen(functor_traits::pen); curves_[PHASE].first->setStyle(functor_traits::style); curves_[PHASE].first->setSymbol(symbol); curves_[PHASE].first->setCurveAttribute( functor_traits::attribute); curves_[PHASE].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[PHASE_RAD].first = new MarkableCurve; curves_[PHASE_RAD].first->setPen(functor_traits::pen); curves_[PHASE_RAD].first->setStyle(functor_traits::style); curves_[PHASE_RAD].first->setSymbol(symbol); curves_[PHASE_RAD].first->setCurveAttribute( functor_traits::attribute); curves_[PHASE_RAD].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE_RAD].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE_RAD].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[PHASE_RAD].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[GAIN].first = new MarkableCurve; curves_[GAIN].first->setPen(functor_traits::pen); curves_[GAIN].first->setStyle(functor_traits::style); curves_[GAIN].first->setSymbol(symbol); curves_[GAIN].first->setCurveAttribute( functor_traits::attribute); curves_[GAIN].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[GAIN_RAD].first = new MarkableCurve; curves_[GAIN_RAD].first->setPen(functor_traits::pen); curves_[GAIN_RAD].first->setStyle(functor_traits::style); curves_[GAIN_RAD].first->setSymbol(symbol); curves_[GAIN_RAD].first->setCurveAttribute( functor_traits::attribute); curves_[GAIN_RAD].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN_RAD].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN_RAD].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[GAIN_RAD].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[LOSS].first = new MarkableCurve; curves_[LOSS].first->setPen(functor_traits::pen); curves_[LOSS].first->setStyle(functor_traits::style); curves_[LOSS].first->setSymbol(symbol); curves_[LOSS].first->setCurveAttribute( functor_traits::attribute); curves_[LOSS].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[LOSS_RAD].first = new MarkableCurve; curves_[LOSS_RAD].first->setPen(functor_traits::pen); curves_[LOSS_RAD].first->setStyle(functor_traits::style); curves_[LOSS_RAD].first->setSymbol(symbol); curves_[LOSS_RAD].first->setCurveAttribute( functor_traits::attribute); curves_[LOSS_RAD].second = false; connect(tracker_, SIGNAL(selected(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS_RAD].first, SLOT(selected())); connect(tracker_, SIGNAL(appended(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS_RAD].first, SLOT(appended(const QwtDoublePoint&))); connect(tracker_, SIGNAL(moved(const QwtDoublePoint&)), (MarkableCurve*) curves_[LOSS_RAD].first, SLOT(moved(const QwtDoublePoint&))); symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[ZEROS].first = new MarkedCurve; curves_[ZEROS].first->setPen(functor_traits::pen); curves_[ZEROS].first->setStyle(functor_traits::style); curves_[ZEROS].first->setSymbol(symbol); curves_[ZEROS].first->setCurveAttribute( functor_traits::attribute); curves_[ZEROS].second = false; symbol.setStyle(functor_traits::symbol); symbol.setSize(functor_traits::ssize); curves_[POLES].first = new MarkedCurve; curves_[POLES].first->setPen(functor_traits::pen); curves_[POLES].first->setStyle(functor_traits::style); curves_[POLES].first->setSymbol(symbol); curves_[POLES].first->setCurveAttribute( functor_traits::attribute); curves_[POLES].second = false; for(int i = 0; i < NOOP; ++i) { curves_[i].first->attach(plot_); curves_[i].first->setVisible(false); } lastId_ = NOOP; } void WorkPlane::setupCurve( std::pair< std::vector, std::vector > data, WorkPlane::F f ) { if(!curves_[f].second) { curves_[f].second = true; double* x = new double [data.first.size()]; std::copy(data.first.begin(), data.first.end(), x); double* y = new double [data.second.size()]; std::copy(data.second.begin(), data.second.end(), y); curves_[f].first->setData(x, y, data.first.size() < data.second.size() ? data.first.size() : data.second.size() ); delete [] y; delete [] x; } } } QSapecNG-2.0.0-source/src/gui/workplane/workplane.h000644 001750 001750 00000010255 11617757645 023014 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 WORKPLANE_H #define WORKPLANE_H #include "model/metacircuit.h" #include #include #include #include #include #include #include #include #include #include class QVBoxLayout; class QHBoxLayout; class QDoubleSpinBox; class QTableWidget; class QwtPlotGrid; class QwtPlotPicker; class QwtPlotMarker; namespace qsapecng { class QwtPlot_ContextMenu: public QwtPlot { public: QwtPlot_ContextMenu(QWidget* parent = 0): QwtPlot(parent), contextMenu_(0) { } QwtPlot_ContextMenu(const QwtText& title, QWidget* parent = 0) : QwtPlot(title, parent), contextMenu_(0) { } inline void setContextMenu(QMenu* menu) { contextMenu_ = menu; } inline QMenu* contextMenu() const { return contextMenu_; } void contextMenuEvent(QContextMenuEvent* event) { if(contextMenu_) contextMenu_->exec(event->globalPos()); } private: QMenu* contextMenu_; }; typedef std::pair< std::vector, std::vector > (*functor) ( const sapecng::metacircuit::expression& numerator, const sapecng::metacircuit::expression& denominator, std::map< std::string, double > values ) ; class MarkableCurve: public QObject, public QwtPlotCurve { Q_OBJECT public: MarkableCurve(): QwtPlotCurve() { initialize(); } ~MarkableCurve(); void setVisible(bool on); public slots: void selected(); void appended(const QwtDoublePoint& pos); void moved(const QwtDoublePoint& pos); private: void initialize(); private: QwtPlotMarker* marker_; }; class MarkedCurve: public QwtPlotCurve { public: MarkedCurve(): QwtPlotCurve() { } ~MarkedCurve(); void setVisible(bool on); void replotMarker(); private: void resetMarker(); private: QVector markers_; }; class WorkPlane: public QWidget { Q_OBJECT public: enum F { MAGNITUDE, MAGNITUDE_RAD, PHASE, PHASE_RAD, GAIN, GAIN_RAD, LOSS, LOSS_RAD, ZEROS, POLES, NOOP }; public: WorkPlane(QWidget* parent = 0); ~WorkPlane(); void setData(const std::map& values, const sapecng::metacircuit::expression& numerator, const sapecng::metacircuit::expression& denominator ); inline void setContextMenu(QMenu* menu) { plot_->setContextMenu(menu); } inline QMenu* contextMenu() const { return plot_->contextMenu(); } const QwtPlot& const_plot() const { return *plot_; } public slots: void setDirty(); void xAxisLogScale(bool log = true); void yAxisLogScale(bool log = false); void plot(WorkPlane::F f); void plot(int f); void redraw(); private: std::map actValues() const; void createMainLayout(); void setupCurves(); void setupCurve( std::pair< std::vector, std::vector > data, WorkPlane::F f ); private: sapecng::metacircuit::expression num_; sapecng::metacircuit::expression den_; QwtPlotGrid* grid_; QwtPlot_ContextMenu* plot_; QVector< QwtPlotCurve* > attached_; QVector< QPair< QwtPlotCurve*, bool > > curves_; QwtPlotPicker* tracker_; F lastId_; QDoubleSpinBox* startFreq_; QDoubleSpinBox* endFreq_; QDoubleSpinBox* stepFreq_; double oldStartFreq_; double oldEndFreq_; double oldStepFreq_; QTableWidget* data_; QVBoxLayout* dataLayout_; QVBoxLayout* centralLayout_; QHBoxLayout* mainLayout_; }; } #endif // WORKPLANE_H QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-vsplit.png000644 001750 001750 00000000241 11617757645 031504 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT[c`À  ô Å¡9CÀ´jh˜æšá3€¦U«f­ZR p`‘ëG˜3fÌ~˜{àîV”¶·OIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-busy.png000644 001750 001750 00000000311 11617757645 031143 0ustar00simonesimone000000 000000 ‰PNG  IHDR ’g PLTEÿÿÿÿÿÿ~ïOtRNS@æØfnIDATx^­Í± …0P§¹ ~ÓÜ)~6ˆŽiÒÒ¤dJ°ŽÛWO.l(Þä@ X`×@ tüJ!Ö9ˆ©lˆ&³çßa²qµÒÁ‰lÀÆQ] ˜~#-Íæ«Iå î8øÅø{4ß笸ñíu4ŒIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-sizeh.png000644 001750 001750 00000000221 11617757645 031303 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf6IDAT[c` h00pè% l LSXÅB€tg(D h˜8LLÜòÓ# /šÃ97IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-cross.png000644 001750 001750 00000000202 11617757645 031311 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØf'IDAT™c`À  ã²èÐÖP  Œ«Vp­š€à“mÜ=XKô ŒÖ "«IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-arrow.png000644 001750 001750 00000000253 11617757645 031320 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfPIDATx^=α €0 Ѥ€ØæA"9µ³OhØ-‰œƒk^cK?ým¸ :V-Ë@GêeèËö„Õΰqßo…ªÇ_NÓèpÄoYÖ„^]IºuZ•IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-forbidden.png000644 001750 001750 00000000307 11617757645 032122 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØflIDATx^uα C1P» „yœ \ä§`ƒÏ4.œL`"Á”ñE¢ŠBó Ðåÿ\ªÄR„Aö‡c!OÒ¾U+2öÙéçÖµ_ÖÖd\lõ+ù ZÕz‘<¿'r:ÅÈÜìÉÞü#ÿú™…7$ÿ/sÏIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-openhand.png000644 001750 001750 00000000240 11617757645 031756 0ustar00simonesimone000000 000000 ‰PNG  IHDRµú7ê pHYs ‰ ‰7ÉË­RIDAT(Ï…Ðá…Ñïý_úútW–&›D„êNtë^a¯'Ï`O#9#åV*ˆ~®õÀßWa`'Ê-$ò2d_=€Jì«;Ò€>x0tš¯ªbIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-uparrow.png000644 001750 001750 00000000204 11617757645 031661 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf)IDAT[c`ÀL+ 4W„Ö kÓKC€é©¡ ‰†¡0`­ç B7Ò~2IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-sizev.png000644 001750 001750 00000000215 11617757645 031324 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf2IDAT[c`ÀL+ 4W„Ö kÓKC€é©¡ ‰Emf>Ì>˜ý0÷À܇4ù Sv‘˜îIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-hsplit.png000644 001750 001750 00000000233 11617757645 031467 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf@IDAT™c`€..­ÊÚ@ Í¡ÊÚ¢ÕTY;AÓ€tSŽ``à e Cðaòpõ0ý¤Ú w/¬P¶×ܪéIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-sizeall.png000644 001750 001750 00000000256 11617757645 031634 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfSIDAT[c`À\ ´f„^¦˜¦†5€éÐP0­Áè ¢—0:H„§0:ˆ%¸BD&p†A‚†‰ÃÔÁôÁÍ™ ³f/Ü0waÛtêçNXIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-wait.png000644 001750 001750 00000000254 11617757645 031133 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfQIDAT™c`@R«V­Ó¡¡™È|¶ÐÐ:r&„K…ÐS§.ÑŒKÃ&€ Êœå10bpf”D~ÚˆúÐ%󦢚37--Ÿ{P§Ìô¯Y IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-closedhand.png000644 001750 001750 00000000223 11617757645 032267 0ustar00simonesimone000000 000000 ‰PNG  IHDRµú7ê pHYs ‰ ‰7ÉË­EIDAT(Ï­ÑË DÑùÿŸ¾-$pzSºé€¢Bë§@¯€×@r(2·`„”'˜ƒÑçØ Ù€žÔMØÎ^Áå± ” P¾õŸ–çIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-hand.png000644 001750 001750 00000000237 11617757645 031102 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfDIDAT[c``a€€L(=Xz”Žj€Ð‘ JcZd˜ ¥§N Ѫ¡šf @¦¦†& Ð«V-ÀJ£7ÖU%ÙIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-sizeb.png000644 001750 001750 00000000241 11617757645 031277 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT™c` V­jÓSC!´*”æ„ÒŒPšJ‹ªBèN½€1€ DÏ`u‹N…˜:5J@é(Æ€bÌvü l= ÏjIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-ibeam.png000644 001750 001750 00000000174 11617757645 031245 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØf!IDAT™c`À"Œ`š‘*@š3Œ4õ0÷À܇^TÜIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-whatsthis.png000644 001750 001750 00000000277 11617757645 032212 0ustar00simonesimone000000 000000 ‰PNG  IHDR ’g PLTEÿÿÿÿÿÿŽôÃìtRNS@æØfdIDATWch`€‚ ¡! Æ ÆU+AŒi lS³€Œ© R Œ#ƃ1B[Áº¦†&°-3¢VHM›Áa̘e,€1TDÀÖ«6@D8à ¨SÀ$ôÝW/qIEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/images/cursor-sizef.png000644 001750 001750 00000000241 11617757645 031303 0ustar00simonesimone000000 000000 ‰PNG  IHDR¹‡mð PLTEÿÿÿÿÿÿ~ïOtRNS@æØfFIDAT×c` V­jÓSC¡tD|j”€Ò!zš(„žÁê¦00At†pBhQUÍ 5‘JsBiÕPTa.À$,=Ï 'IEND®B`‚QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtSizePropertyManager000644 001750 001750 00000000037 11617757645 031102 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDateEditFactory000644 001750 001750 00000000035 11617757645 030141 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtScrollBarFactory000644 001750 001750 00000000035 11617757645 030341 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.qrc000644 001750 001750 00000001642 11617757645 031247 0ustar00simonesimone000000 000000 images/cursor-arrow.png images/cursor-busy.png images/cursor-closedhand.png images/cursor-cross.png images/cursor-forbidden.png images/cursor-hand.png images/cursor-hsplit.png images/cursor-ibeam.png images/cursor-openhand.png images/cursor-sizeall.png images/cursor-sizeb.png images/cursor-sizef.png images/cursor-sizeh.png images/cursor-sizev.png images/cursor-uparrow.png images/cursor-vsplit.png images/cursor-wait.png images/cursor-whatsthis.png QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtKeySequenceEditorFactory000644 001750 001750 00000000035 11617757645 032046 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtSizeFPropertyManager000644 001750 001750 00000000037 11617757645 031210 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtProperty000644 001750 001750 00000000037 11617757645 026754 0ustar00simonesimone000000 000000 #include "qtpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtLineEditFactory000644 001750 001750 00000000035 11617757645 030153 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.cpp000644 001750 001750 00000107553 11617757645 032134 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qttreepropertybrowser.h" #include #include #include #include #include #include #include #include #include #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtPropertyEditorView; class QtTreePropertyBrowserPrivate { QtTreePropertyBrowser *q_ptr; Q_DECLARE_PUBLIC(QtTreePropertyBrowser) public: QtTreePropertyBrowserPrivate(); void init(QWidget *parent); void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); void propertyRemoved(QtBrowserItem *index); void propertyChanged(QtBrowserItem *index); QWidget *createEditor(QtProperty *property, QWidget *parent) const { return q_ptr->createEditor(property, parent); } QtProperty *indexToProperty(const QModelIndex &index) const; QTreeWidgetItem *indexToItem(const QModelIndex &index) const; QtBrowserItem *indexToBrowserItem(const QModelIndex &index) const; bool lastColumn(int column) const; void disableItem(QTreeWidgetItem *item) const; void enableItem(QTreeWidgetItem *item) const; bool hasValue(QTreeWidgetItem *item) const; void slotCollapsed(const QModelIndex &index); void slotExpanded(const QModelIndex &index); QColor calculatedBackgroundColor(QtBrowserItem *item) const; QtPropertyEditorView *treeWidget() const { return m_treeWidget; } bool markPropertiesWithoutValue() const { return m_markPropertiesWithoutValue; } QtBrowserItem *currentItem() const; void setCurrentItem(QtBrowserItem *browserItem, bool block); void editItem(QtBrowserItem *browserItem); void slotCurrentBrowserItemChanged(QtBrowserItem *item); void slotCurrentTreeItemChanged(QTreeWidgetItem *newItem, QTreeWidgetItem *); QTreeWidgetItem *editedItem() const; private: void updateItem(QTreeWidgetItem *item); QMap m_indexToItem; QMap m_itemToIndex; QMap m_indexToBackgroundColor; QtPropertyEditorView *m_treeWidget; bool m_headerVisible; QtTreePropertyBrowser::ResizeMode m_resizeMode; class QtPropertyEditorDelegate *m_delegate; bool m_markPropertiesWithoutValue; bool m_browserChangedBlocked; QIcon m_expandIcon; }; // ------------ QtPropertyEditorView class QtPropertyEditorView : public QTreeWidget { Q_OBJECT public: QtPropertyEditorView(QWidget *parent = 0); void setEditorPrivate(QtTreePropertyBrowserPrivate *editorPrivate) { m_editorPrivate = editorPrivate; } QTreeWidgetItem *indexToItem(const QModelIndex &index) const { return itemFromIndex(index); } protected: void keyPressEvent(QKeyEvent *event); void mousePressEvent(QMouseEvent *event); void drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; private: QtTreePropertyBrowserPrivate *m_editorPrivate; }; QtPropertyEditorView::QtPropertyEditorView(QWidget *parent) : QTreeWidget(parent), m_editorPrivate(0) { connect(header(), SIGNAL(sectionDoubleClicked(int)), this, SLOT(resizeColumnToContents(int))); } void QtPropertyEditorView::drawRow(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { QStyleOptionViewItemV3 opt = option; bool hasValue = true; if (m_editorPrivate) { QtProperty *property = m_editorPrivate->indexToProperty(index); if (property) hasValue = property->hasValue(); } if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) { const QColor c = option.palette.color(QPalette::Dark); painter->fillRect(option.rect, c); opt.palette.setColor(QPalette::AlternateBase, c); } else { const QColor c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index)); if (c.isValid()) { painter->fillRect(option.rect, c); opt.palette.setColor(QPalette::AlternateBase, c.lighter(112)); } } QTreeWidget::drawRow(painter, opt, index); QColor color = static_cast(QApplication::style()->styleHint(QStyle::SH_Table_GridLineColor, &opt)); painter->save(); painter->setPen(QPen(color)); painter->drawLine(opt.rect.x(), opt.rect.bottom(), opt.rect.right(), opt.rect.bottom()); painter->restore(); } void QtPropertyEditorView::keyPressEvent(QKeyEvent *event) { switch (event->key()) { case Qt::Key_Return: case Qt::Key_Enter: case Qt::Key_Space: // Trigger Edit if (!m_editorPrivate->editedItem()) if (const QTreeWidgetItem *item = currentItem()) if (item->columnCount() >= 2 && ((item->flags() & (Qt::ItemIsEditable | Qt::ItemIsEnabled)) == (Qt::ItemIsEditable | Qt::ItemIsEnabled))) { event->accept(); // If the current position is at column 0, move to 1. QModelIndex index = currentIndex(); if (index.column() == 0) { index = index.sibling(index.row(), 1); setCurrentIndex(index); } edit(index); return; } break; default: break; } QTreeWidget::keyPressEvent(event); } void QtPropertyEditorView::mousePressEvent(QMouseEvent *event) { QTreeWidget::mousePressEvent(event); QTreeWidgetItem *item = itemAt(event->pos()); if (item) { if ((item != m_editorPrivate->editedItem()) && (event->button() == Qt::LeftButton) && (header()->logicalIndexAt(event->pos().x()) == 1) && ((item->flags() & (Qt::ItemIsEditable | Qt::ItemIsEnabled)) == (Qt::ItemIsEditable | Qt::ItemIsEnabled))) { editItem(item, 1); } else if (!m_editorPrivate->hasValue(item) && m_editorPrivate->markPropertiesWithoutValue() && !rootIsDecorated()) { if (event->pos().x() + header()->offset() < 20) item->setExpanded(!item->isExpanded()); } } } // ------------ QtPropertyEditorDelegate class QtPropertyEditorDelegate : public QItemDelegate { Q_OBJECT public: QtPropertyEditorDelegate(QObject *parent = 0) : QItemDelegate(parent), m_editorPrivate(0), m_editedItem(0), m_editedWidget(0) {} void setEditorPrivate(QtTreePropertyBrowserPrivate *editorPrivate) { m_editorPrivate = editorPrivate; } QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const; void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const; void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; void setModelData(QWidget *, QAbstractItemModel *, const QModelIndex &) const {} void setEditorData(QWidget *, const QModelIndex &) const {} bool eventFilter(QObject *object, QEvent *event); void closeEditor(QtProperty *property); QTreeWidgetItem *editedItem() const { return m_editedItem; } private slots: void slotEditorDestroyed(QObject *object); private: int indentation(const QModelIndex &index) const; typedef QMap EditorToPropertyMap; mutable EditorToPropertyMap m_editorToProperty; typedef QMap PropertyToEditorMap; mutable PropertyToEditorMap m_propertyToEditor; QtTreePropertyBrowserPrivate *m_editorPrivate; mutable QTreeWidgetItem *m_editedItem; mutable QWidget *m_editedWidget; }; int QtPropertyEditorDelegate::indentation(const QModelIndex &index) const { if (!m_editorPrivate) return 0; QTreeWidgetItem *item = m_editorPrivate->indexToItem(index); int indent = 0; while (item->parent()) { item = item->parent(); ++indent; } if (m_editorPrivate->treeWidget()->rootIsDecorated()) ++indent; return indent * m_editorPrivate->treeWidget()->indentation(); } void QtPropertyEditorDelegate::slotEditorDestroyed(QObject *object) { if (QWidget *w = qobject_cast(object)) { const EditorToPropertyMap::iterator it = m_editorToProperty.find(w); if (it != m_editorToProperty.end()) { m_propertyToEditor.remove(it.value()); m_editorToProperty.erase(it); } if (m_editedWidget == w) { m_editedWidget = 0; m_editedItem = 0; } } } void QtPropertyEditorDelegate::closeEditor(QtProperty *property) { if (QWidget *w = m_propertyToEditor.value(property, 0)) w->deleteLater(); } QWidget *QtPropertyEditorDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &, const QModelIndex &index) const { if (index.column() == 1 && m_editorPrivate) { QtProperty *property = m_editorPrivate->indexToProperty(index); QTreeWidgetItem *item = m_editorPrivate->indexToItem(index); if (property && item && (item->flags() & Qt::ItemIsEnabled)) { QWidget *editor = m_editorPrivate->createEditor(property, parent); if (editor) { editor->setAutoFillBackground(true); editor->installEventFilter(const_cast(this)); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); m_propertyToEditor[property] = editor; m_editorToProperty[editor] = property; m_editedItem = item; m_editedWidget = editor; } return editor; } } return 0; } void QtPropertyEditorDelegate::updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const { Q_UNUSED(index) editor->setGeometry(option.rect.adjusted(0, 0, 0, -1)); } void QtPropertyEditorDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { bool hasValue = true; if (m_editorPrivate) { QtProperty *property = m_editorPrivate->indexToProperty(index); if (property) hasValue = property->hasValue(); } QStyleOptionViewItemV3 opt = option; if ((m_editorPrivate && index.column() == 0) || !hasValue) { QtProperty *property = m_editorPrivate->indexToProperty(index); if (property && property->isModified()) { opt.font.setBold(true); opt.fontMetrics = QFontMetrics(opt.font); } } QColor c; if (!hasValue && m_editorPrivate->markPropertiesWithoutValue()) { c = opt.palette.color(QPalette::Dark); opt.palette.setColor(QPalette::Text, opt.palette.color(QPalette::BrightText)); } else { c = m_editorPrivate->calculatedBackgroundColor(m_editorPrivate->indexToBrowserItem(index)); if (c.isValid() && (opt.features & QStyleOptionViewItemV2::Alternate)) c = c.lighter(112); } if (c.isValid()) painter->fillRect(option.rect, c); opt.state &= ~QStyle::State_HasFocus; QItemDelegate::paint(painter, opt, index); opt.palette.setCurrentColorGroup(QPalette::Active); QColor color = static_cast(QApplication::style()->styleHint(QStyle::SH_Table_GridLineColor, &opt)); painter->save(); painter->setPen(QPen(color)); if (!m_editorPrivate || (!m_editorPrivate->lastColumn(index.column()) && hasValue)) { int right = (option.direction == Qt::LeftToRight) ? option.rect.right() : option.rect.left(); painter->drawLine(right, option.rect.y(), right, option.rect.bottom()); } painter->restore(); } QSize QtPropertyEditorDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { return QItemDelegate::sizeHint(option, index) + QSize(3, 4); } bool QtPropertyEditorDelegate::eventFilter(QObject *object, QEvent *event) { if (event->type() == QEvent::FocusOut) { QFocusEvent *fe = static_cast(event); if (fe->reason() == Qt::ActiveWindowFocusReason) return false; } return QItemDelegate::eventFilter(object, event); } // -------- QtTreePropertyBrowserPrivate implementation QtTreePropertyBrowserPrivate::QtTreePropertyBrowserPrivate() : m_treeWidget(0), m_headerVisible(true), m_resizeMode(QtTreePropertyBrowser::Stretch), m_delegate(0), m_markPropertiesWithoutValue(false), m_browserChangedBlocked(false) { } // Draw an icon indicating opened/closing branches static QIcon drawIndicatorIcon(const QPalette &palette, QStyle *style) { QPixmap pix(14, 14); pix.fill(Qt::transparent); QStyleOption branchOption; QRect r(QPoint(0, 0), pix.size()); branchOption.rect = QRect(2, 2, 9, 9); // ### hardcoded in qcommonstyle.cpp branchOption.palette = palette; branchOption.state = QStyle::State_Children; QPainter p; // Draw closed state p.begin(&pix); style->drawPrimitive(QStyle::PE_IndicatorBranch, &branchOption, &p); p.end(); QIcon rc = pix; rc.addPixmap(pix, QIcon::Selected, QIcon::Off); // Draw opened state branchOption.state |= QStyle::State_Open; pix.fill(Qt::transparent); p.begin(&pix); style->drawPrimitive(QStyle::PE_IndicatorBranch, &branchOption, &p); p.end(); rc.addPixmap(pix, QIcon::Normal, QIcon::On); rc.addPixmap(pix, QIcon::Selected, QIcon::On); return rc; } void QtTreePropertyBrowserPrivate::init(QWidget *parent) { QHBoxLayout *layout = new QHBoxLayout(parent); layout->setMargin(0); m_treeWidget = new QtPropertyEditorView(parent); m_treeWidget->setEditorPrivate(this); m_treeWidget->setIconSize(QSize(18, 18)); layout->addWidget(m_treeWidget); m_treeWidget->setColumnCount(2); QStringList labels; labels.append(QApplication::translate("QtTreePropertyBrowser", "Property", 0, QApplication::UnicodeUTF8)); labels.append(QApplication::translate("QtTreePropertyBrowser", "Value", 0, QApplication::UnicodeUTF8)); m_treeWidget->setHeaderLabels(labels); m_treeWidget->setAlternatingRowColors(true); m_treeWidget->setEditTriggers(QAbstractItemView::EditKeyPressed); m_delegate = new QtPropertyEditorDelegate(parent); m_delegate->setEditorPrivate(this); m_treeWidget->setItemDelegate(m_delegate); m_treeWidget->header()->setMovable(false); m_treeWidget->header()->setResizeMode(QHeaderView::Stretch); m_expandIcon = drawIndicatorIcon(q_ptr->palette(), q_ptr->style()); QObject::connect(m_treeWidget, SIGNAL(collapsed(const QModelIndex &)), q_ptr, SLOT(slotCollapsed(const QModelIndex &))); QObject::connect(m_treeWidget, SIGNAL(expanded(const QModelIndex &)), q_ptr, SLOT(slotExpanded(const QModelIndex &))); QObject::connect(m_treeWidget, SIGNAL(currentItemChanged(QTreeWidgetItem*,QTreeWidgetItem*)), q_ptr, SLOT(slotCurrentTreeItemChanged(QTreeWidgetItem*,QTreeWidgetItem*))); } QtBrowserItem *QtTreePropertyBrowserPrivate::currentItem() const { if (QTreeWidgetItem *treeItem = m_treeWidget->currentItem()) return m_itemToIndex.value(treeItem); return 0; } void QtTreePropertyBrowserPrivate::setCurrentItem(QtBrowserItem *browserItem, bool block) { const bool blocked = block ? m_treeWidget->blockSignals(true) : false; if (browserItem == 0) m_treeWidget->setCurrentItem(0); else m_treeWidget->setCurrentItem(m_indexToItem.value(browserItem)); if (block) m_treeWidget->blockSignals(blocked); } QtProperty *QtTreePropertyBrowserPrivate::indexToProperty(const QModelIndex &index) const { QTreeWidgetItem *item = m_treeWidget->indexToItem(index); QtBrowserItem *idx = m_itemToIndex.value(item); if (idx) return idx->property(); return 0; } QtBrowserItem *QtTreePropertyBrowserPrivate::indexToBrowserItem(const QModelIndex &index) const { QTreeWidgetItem *item = m_treeWidget->indexToItem(index); return m_itemToIndex.value(item); } QTreeWidgetItem *QtTreePropertyBrowserPrivate::indexToItem(const QModelIndex &index) const { return m_treeWidget->indexToItem(index); } bool QtTreePropertyBrowserPrivate::lastColumn(int column) const { return m_treeWidget->header()->visualIndex(column) == m_treeWidget->columnCount() - 1; } void QtTreePropertyBrowserPrivate::disableItem(QTreeWidgetItem *item) const { Qt::ItemFlags flags = item->flags(); if (flags & Qt::ItemIsEnabled) { flags &= ~Qt::ItemIsEnabled; item->setFlags(flags); m_delegate->closeEditor(m_itemToIndex[item]->property()); const int childCount = item->childCount(); for (int i = 0; i < childCount; i++) { QTreeWidgetItem *child = item->child(i); disableItem(child); } } } void QtTreePropertyBrowserPrivate::enableItem(QTreeWidgetItem *item) const { Qt::ItemFlags flags = item->flags(); flags |= Qt::ItemIsEnabled; item->setFlags(flags); const int childCount = item->childCount(); for (int i = 0; i < childCount; i++) { QTreeWidgetItem *child = item->child(i); QtProperty *property = m_itemToIndex[child]->property(); if (property->isEnabled()) { enableItem(child); } } } bool QtTreePropertyBrowserPrivate::hasValue(QTreeWidgetItem *item) const { QtBrowserItem *browserItem = m_itemToIndex.value(item); if (browserItem) return browserItem->property()->hasValue(); return false; } void QtTreePropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) { QTreeWidgetItem *afterItem = m_indexToItem.value(afterIndex); QTreeWidgetItem *parentItem = m_indexToItem.value(index->parent()); QTreeWidgetItem *newItem = 0; if (parentItem) { newItem = new QTreeWidgetItem(parentItem, afterItem); } else { newItem = new QTreeWidgetItem(m_treeWidget, afterItem); } m_itemToIndex[newItem] = index; m_indexToItem[index] = newItem; newItem->setFlags(newItem->flags() | Qt::ItemIsEditable); m_treeWidget->setItemExpanded(newItem, true); updateItem(newItem); } void QtTreePropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) { QTreeWidgetItem *item = m_indexToItem.value(index); if (m_treeWidget->currentItem() == item) { m_treeWidget->setCurrentItem(0); } delete item; m_indexToItem.remove(index); m_itemToIndex.remove(item); m_indexToBackgroundColor.remove(index); } void QtTreePropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) { QTreeWidgetItem *item = m_indexToItem.value(index); updateItem(item); } void QtTreePropertyBrowserPrivate::updateItem(QTreeWidgetItem *item) { QtProperty *property = m_itemToIndex[item]->property(); QIcon expandIcon; if (property->hasValue()) { QString toolTip = property->toolTip(); if (toolTip.isEmpty()) toolTip = property->valueText(); item->setToolTip(1, toolTip); item->setIcon(1, property->valueIcon()); item->setText(1, property->valueText()); } else if (markPropertiesWithoutValue() && !m_treeWidget->rootIsDecorated()) { expandIcon = m_expandIcon; } item->setIcon(0, expandIcon); item->setFirstColumnSpanned(!property->hasValue()); item->setToolTip(0, property->propertyName()); item->setStatusTip(0, property->statusTip()); item->setWhatsThis(0, property->whatsThis()); item->setText(0, property->propertyName()); bool wasEnabled = item->flags() & Qt::ItemIsEnabled; bool isEnabled = wasEnabled; if (property->isEnabled()) { QTreeWidgetItem *parent = item->parent(); if (!parent || (parent->flags() & Qt::ItemIsEnabled)) isEnabled = true; else isEnabled = false; } else { isEnabled = false; } if (wasEnabled != isEnabled) { if (isEnabled) enableItem(item); else disableItem(item); } m_treeWidget->viewport()->update(); } QColor QtTreePropertyBrowserPrivate::calculatedBackgroundColor(QtBrowserItem *item) const { QtBrowserItem *i = item; const QMap::const_iterator itEnd = m_indexToBackgroundColor.constEnd(); while (i) { QMap::const_iterator it = m_indexToBackgroundColor.constFind(i); if (it != itEnd) return it.value(); i = i->parent(); } return QColor(); } void QtTreePropertyBrowserPrivate::slotCollapsed(const QModelIndex &index) { QTreeWidgetItem *item = indexToItem(index); QtBrowserItem *idx = m_itemToIndex.value(item); if (item) emit q_ptr->collapsed(idx); } void QtTreePropertyBrowserPrivate::slotExpanded(const QModelIndex &index) { QTreeWidgetItem *item = indexToItem(index); QtBrowserItem *idx = m_itemToIndex.value(item); if (item) emit q_ptr->expanded(idx); } void QtTreePropertyBrowserPrivate::slotCurrentBrowserItemChanged(QtBrowserItem *item) { if (!m_browserChangedBlocked && item != currentItem()) setCurrentItem(item, true); } void QtTreePropertyBrowserPrivate::slotCurrentTreeItemChanged(QTreeWidgetItem *newItem, QTreeWidgetItem *) { QtBrowserItem *browserItem = newItem ? m_itemToIndex.value(newItem) : 0; m_browserChangedBlocked = true; q_ptr->setCurrentItem(browserItem); m_browserChangedBlocked = false; } QTreeWidgetItem *QtTreePropertyBrowserPrivate::editedItem() const { return m_delegate->editedItem(); } void QtTreePropertyBrowserPrivate::editItem(QtBrowserItem *browserItem) { if (QTreeWidgetItem *treeItem = m_indexToItem.value(browserItem, 0)) { m_treeWidget->setCurrentItem (treeItem, 1); m_treeWidget->editItem(treeItem, 1); } } /*! \class QtTreePropertyBrowser \brief The QtTreePropertyBrowser class provides QTreeWidget based property browser. A property browser is a widget that enables the user to edit a given set of properties. Each property is represented by a label specifying the property's name, and an editing widget (e.g. a line edit or a combobox) holding its value. A property can have zero or more subproperties. QtTreePropertyBrowser provides a tree based view for all nested properties, i.e. properties that have subproperties can be in an expanded (subproperties are visible) or collapsed (subproperties are hidden) state. For example: \image qttreepropertybrowser.png Use the QtAbstractPropertyBrowser API to add, insert and remove properties from an instance of the QtTreePropertyBrowser class. The properties themselves are created and managed by implementations of the QtAbstractPropertyManager class. \sa QtGroupBoxPropertyBrowser, QtAbstractPropertyBrowser */ /*! \fn void QtTreePropertyBrowser::collapsed(QtBrowserItem *item) This signal is emitted when the \a item is collapsed. \sa expanded(), setExpanded() */ /*! \fn void QtTreePropertyBrowser::expanded(QtBrowserItem *item) This signal is emitted when the \a item is expanded. \sa collapsed(), setExpanded() */ /*! Creates a property browser with the given \a parent. */ QtTreePropertyBrowser::QtTreePropertyBrowser(QWidget *parent) : QtAbstractPropertyBrowser(parent) { d_ptr = new QtTreePropertyBrowserPrivate; d_ptr->q_ptr = this; d_ptr->init(this); connect(this, SIGNAL(currentItemChanged(QtBrowserItem*)), this, SLOT(slotCurrentBrowserItemChanged(QtBrowserItem*))); } /*! Destroys this property browser. Note that the properties that were inserted into this browser are \e not destroyed since they may still be used in other browsers. The properties are owned by the manager that created them. \sa QtProperty, QtAbstractPropertyManager */ QtTreePropertyBrowser::~QtTreePropertyBrowser() { delete d_ptr; } /*! \property QtTreePropertyBrowser::indentation \brief indentation of the items in the tree view. */ int QtTreePropertyBrowser::indentation() const { return d_ptr->m_treeWidget->indentation(); } void QtTreePropertyBrowser::setIndentation(int i) { d_ptr->m_treeWidget->setIndentation(i); } /*! \property QtTreePropertyBrowser::rootIsDecorated \brief whether to show controls for expanding and collapsing root items. */ bool QtTreePropertyBrowser::rootIsDecorated() const { return d_ptr->m_treeWidget->rootIsDecorated(); } void QtTreePropertyBrowser::setRootIsDecorated(bool show) { d_ptr->m_treeWidget->setRootIsDecorated(show); QMapIterator it(d_ptr->m_itemToIndex); while (it.hasNext()) { QtProperty *property = it.next().value()->property(); if (!property->hasValue()) d_ptr->updateItem(it.key()); } } /*! \property QtTreePropertyBrowser::alternatingRowColors \brief whether to draw the background using alternating colors. By default this property is set to true. */ bool QtTreePropertyBrowser::alternatingRowColors() const { return d_ptr->m_treeWidget->alternatingRowColors(); } void QtTreePropertyBrowser::setAlternatingRowColors(bool enable) { d_ptr->m_treeWidget->setAlternatingRowColors(enable); QMapIterator it(d_ptr->m_itemToIndex); } /*! \property QtTreePropertyBrowser::headerVisible \brief whether to show the header. */ bool QtTreePropertyBrowser::isHeaderVisible() const { return d_ptr->m_headerVisible; } void QtTreePropertyBrowser::setHeaderVisible(bool visible) { if (d_ptr->m_headerVisible == visible) return; d_ptr->m_headerVisible = visible; d_ptr->m_treeWidget->header()->setVisible(visible); } /*! \enum QtTreePropertyBrowser::ResizeMode The resize mode specifies the behavior of the header sections. \value Interactive The user can resize the sections. The sections can also be resized programmatically using setSplitterPosition(). \value Fixed The user cannot resize the section. The section can only be resized programmatically using setSplitterPosition(). \value Stretch QHeaderView will automatically resize the section to fill the available space. The size cannot be changed by the user or programmatically. \value ResizeToContents QHeaderView will automatically resize the section to its optimal size based on the contents of the entire column. The size cannot be changed by the user or programmatically. \sa setResizeMode() */ /*! \property QtTreePropertyBrowser::resizeMode \brief the resize mode of setions in the header. */ QtTreePropertyBrowser::ResizeMode QtTreePropertyBrowser::resizeMode() const { return d_ptr->m_resizeMode; } void QtTreePropertyBrowser::setResizeMode(QtTreePropertyBrowser::ResizeMode mode) { if (d_ptr->m_resizeMode == mode) return; d_ptr->m_resizeMode = mode; QHeaderView::ResizeMode m = QHeaderView::Stretch; switch (mode) { case QtTreePropertyBrowser::Interactive: m = QHeaderView::Interactive; break; case QtTreePropertyBrowser::Fixed: m = QHeaderView::Fixed; break; case QtTreePropertyBrowser::ResizeToContents: m = QHeaderView::ResizeToContents; break; case QtTreePropertyBrowser::Stretch: default: m = QHeaderView::Stretch; break; } d_ptr->m_treeWidget->header()->setResizeMode(m); } /*! \property QtTreePropertyBrowser::splitterPosition \brief the position of the splitter between the colunms. */ int QtTreePropertyBrowser::splitterPosition() const { return d_ptr->m_treeWidget->header()->sectionSize(0); } void QtTreePropertyBrowser::setSplitterPosition(int position) { d_ptr->m_treeWidget->header()->resizeSection(0, position); } /*! Sets the \a item to either collapse or expanded, depending on the value of \a expanded. \sa isExpanded(), expanded(), collapsed() */ void QtTreePropertyBrowser::setExpanded(QtBrowserItem *item, bool expanded) { QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item); if (treeItem) treeItem->setExpanded(expanded); } /*! Returns true if the \a item is expanded; otherwise returns false. \sa setExpanded() */ bool QtTreePropertyBrowser::isExpanded(QtBrowserItem *item) const { QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item); if (treeItem) return treeItem->isExpanded(); return false; } /*! Returns true if the \a item is visible; otherwise returns false. \sa setItemVisible() \since 4.5 */ bool QtTreePropertyBrowser::isItemVisible(QtBrowserItem *item) const { if (const QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item)) return !treeItem->isHidden(); return false; } /*! Sets the \a item to be visible, depending on the value of \a visible. \sa isItemVisible() \since 4.5 */ void QtTreePropertyBrowser::setItemVisible(QtBrowserItem *item, bool visible) { if (QTreeWidgetItem *treeItem = d_ptr->m_indexToItem.value(item)) treeItem->setHidden(!visible); } /*! Sets the \a item's background color to \a color. Note that while item's background is rendered every second row is being drawn with alternate color (which is a bit lighter than items \a color) \sa backgroundColor(), calculatedBackgroundColor() */ void QtTreePropertyBrowser::setBackgroundColor(QtBrowserItem *item, const QColor &color) { if (!d_ptr->m_indexToItem.contains(item)) return; if (color.isValid()) d_ptr->m_indexToBackgroundColor[item] = color; else d_ptr->m_indexToBackgroundColor.remove(item); d_ptr->m_treeWidget->viewport()->update(); } /*! Returns the \a item's color. If there is no color set for item it returns invalid color. \sa calculatedBackgroundColor(), setBackgroundColor() */ QColor QtTreePropertyBrowser::backgroundColor(QtBrowserItem *item) const { return d_ptr->m_indexToBackgroundColor.value(item); } /*! Returns the \a item's color. If there is no color set for item it returns parent \a item's color (if there is no color set for parent it returns grandparent's color and so on). In case the color is not set for \a item and it's top level item it returns invalid color. \sa backgroundColor(), setBackgroundColor() */ QColor QtTreePropertyBrowser::calculatedBackgroundColor(QtBrowserItem *item) const { return d_ptr->calculatedBackgroundColor(item); } /*! \property QtTreePropertyBrowser::propertiesWithoutValueMarked \brief whether to enable or disable marking properties without value. When marking is enabled the item's background is rendered in dark color and item's foreground is rendered with light color. \sa propertiesWithoutValueMarked() */ void QtTreePropertyBrowser::setPropertiesWithoutValueMarked(bool mark) { if (d_ptr->m_markPropertiesWithoutValue == mark) return; d_ptr->m_markPropertiesWithoutValue = mark; QMapIterator it(d_ptr->m_itemToIndex); while (it.hasNext()) { QtProperty *property = it.next().value()->property(); if (!property->hasValue()) d_ptr->updateItem(it.key()); } d_ptr->m_treeWidget->viewport()->update(); } bool QtTreePropertyBrowser::propertiesWithoutValueMarked() const { return d_ptr->m_markPropertiesWithoutValue; } /*! \reimp */ void QtTreePropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) { d_ptr->propertyInserted(item, afterItem); } /*! \reimp */ void QtTreePropertyBrowser::itemRemoved(QtBrowserItem *item) { d_ptr->propertyRemoved(item); } /*! \reimp */ void QtTreePropertyBrowser::itemChanged(QtBrowserItem *item) { d_ptr->propertyChanged(item); } /*! Sets the current item to \a item and opens the relevant editor for it. */ void QtTreePropertyBrowser::editItem(QtBrowserItem *item) { d_ptr->editItem(item); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qttreepropertybrowser.cpp" #include "qttreepropertybrowser.moc" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtvariantproperty.cpp000644 001750 001750 00000306664 11617757645 031241 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtvariantproperty.h" #include "qtpropertymanager.h" #include "qteditorfactory.h" #include #include #include #include #if defined(Q_CC_MSVC) # pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ #endif #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtEnumPropertyType { }; class QtFlagPropertyType { }; class QtGroupPropertyType { }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif Q_DECLARE_METATYPE(QtEnumPropertyType) Q_DECLARE_METATYPE(QtFlagPropertyType) Q_DECLARE_METATYPE(QtGroupPropertyType) #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif /*! Returns the type id for an enum property. Note that the property's value type can be retrieved using the valueType() function (which is QVariant::Int for the enum property type). \sa propertyType(), valueType() */ int QtVariantPropertyManager::enumTypeId() { return qMetaTypeId(); } /*! Returns the type id for a flag property. Note that the property's value type can be retrieved using the valueType() function (which is QVariant::Int for the flag property type). \sa propertyType(), valueType() */ int QtVariantPropertyManager::flagTypeId() { return qMetaTypeId(); } /*! Returns the type id for a group property. Note that the property's value type can be retrieved using the valueType() function (which is QVariant::Invalid for the group property type, since it doesn't provide any value). \sa propertyType(), valueType() */ int QtVariantPropertyManager::groupTypeId() { return qMetaTypeId(); } /*! Returns the type id for a icon map attribute. Note that the property's attribute type can be retrieved using the attributeType() function. \sa attributeType(), QtEnumPropertyManager::enumIcons() */ int QtVariantPropertyManager::iconMapTypeId() { return qMetaTypeId(); } typedef QMap PropertyMap; Q_GLOBAL_STATIC(PropertyMap, propertyToWrappedProperty) static QtProperty *wrappedProperty(QtProperty *property) { return propertyToWrappedProperty()->value(property, 0); } class QtVariantPropertyPrivate { QtVariantProperty *q_ptr; public: QtVariantPropertyPrivate(QtVariantPropertyManager *m) : manager(m) {} QtVariantPropertyManager *manager; }; /*! \class QtVariantProperty \brief The QtVariantProperty class is a convenience class handling QVariant based properties. QtVariantProperty provides additional API: A property's type, value type, attribute values and current value can easily be retrieved using the propertyType(), valueType(), attributeValue() and value() functions respectively. In addition, the attribute values and the current value can be set using the corresponding setValue() and setAttribute() functions. For example, instead of writing: \code QtVariantPropertyManager *variantPropertyManager; QtProperty *property; variantPropertyManager->setValue(property, 10); \endcode you can write: \code QtVariantPropertyManager *variantPropertyManager; QtVariantProperty *property; property->setValue(10); \endcode QtVariantProperty instances can only be created by the QtVariantPropertyManager class. \sa QtProperty, QtVariantPropertyManager, QtVariantEditorFactory */ /*! Creates a variant property using the given \a manager. Do not use this constructor to create variant property instances; use the QtVariantPropertyManager::addProperty() function instead. This constructor is used internally by the QtVariantPropertyManager::createProperty() function. \sa QtVariantPropertyManager */ QtVariantProperty::QtVariantProperty(QtVariantPropertyManager *manager) : QtProperty(manager), d_ptr(new QtVariantPropertyPrivate(manager)) { } /*! Destroys this property. \sa QtProperty::~QtProperty() */ QtVariantProperty::~QtVariantProperty() { delete d_ptr; } /*! Returns the property's current value. \sa valueType(), setValue() */ QVariant QtVariantProperty::value() const { return d_ptr->manager->value(this); } /*! Returns this property's value for the specified \a attribute. QtVariantPropertyManager provides a couple of related functions: \l{QtVariantPropertyManager::attributes()}{attributes()} and \l{QtVariantPropertyManager::attributeType()}{attributeType()}. \sa setAttribute() */ QVariant QtVariantProperty::attributeValue(const QString &attribute) const { return d_ptr->manager->attributeValue(this, attribute); } /*! Returns the type of this property's value. \sa propertyType() */ int QtVariantProperty::valueType() const { return d_ptr->manager->valueType(this); } /*! Returns this property's type. QtVariantPropertyManager provides several related functions: \l{QtVariantPropertyManager::enumTypeId()}{enumTypeId()}, \l{QtVariantPropertyManager::flagTypeId()}{flagTypeId()} and \l{QtVariantPropertyManager::groupTypeId()}{groupTypeId()}. \sa valueType() */ int QtVariantProperty::propertyType() const { return d_ptr->manager->propertyType(this); } /*! Sets the value of this property to \a value. The specified \a value must be of the type returned by valueType(), or of a type that can be converted to valueType() using the QVariant::canConvert() function; otherwise this function does nothing. \sa value() */ void QtVariantProperty::setValue(const QVariant &value) { d_ptr->manager->setValue(this, value); } /*! Sets the \a attribute of property to \a value. QtVariantPropertyManager provides the related \l{QtVariantPropertyManager::setAttribute()}{setAttribute()} function. \sa attributeValue() */ void QtVariantProperty::setAttribute(const QString &attribute, const QVariant &value) { d_ptr->manager->setAttribute(this, attribute, value); } class QtVariantPropertyManagerPrivate { QtVariantPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtVariantPropertyManager) public: QtVariantPropertyManagerPrivate(); bool m_creatingProperty; bool m_creatingSubProperties; bool m_destroyingSubProperties; int m_propertyType; void slotValueChanged(QtProperty *property, int val); void slotRangeChanged(QtProperty *property, int min, int max); void slotSingleStepChanged(QtProperty *property, int step); void slotValueChanged(QtProperty *property, double val); void slotRangeChanged(QtProperty *property, double min, double max); void slotSingleStepChanged(QtProperty *property, double step); void slotDecimalsChanged(QtProperty *property, int prec); void slotValueChanged(QtProperty *property, bool val); void slotValueChanged(QtProperty *property, const QString &val); void slotRegExpChanged(QtProperty *property, const QRegExp ®Exp); void slotValueChanged(QtProperty *property, const QDate &val); void slotRangeChanged(QtProperty *property, const QDate &min, const QDate &max); void slotValueChanged(QtProperty *property, const QTime &val); void slotValueChanged(QtProperty *property, const QDateTime &val); void slotValueChanged(QtProperty *property, const QKeySequence &val); void slotValueChanged(QtProperty *property, const QChar &val); void slotValueChanged(QtProperty *property, const QLocale &val); void slotValueChanged(QtProperty *property, const QPoint &val); void slotValueChanged(QtProperty *property, const QPointF &val); void slotValueChanged(QtProperty *property, const QSize &val); void slotRangeChanged(QtProperty *property, const QSize &min, const QSize &max); void slotValueChanged(QtProperty *property, const QSizeF &val); void slotRangeChanged(QtProperty *property, const QSizeF &min, const QSizeF &max); void slotValueChanged(QtProperty *property, const QRect &val); void slotConstraintChanged(QtProperty *property, const QRect &val); void slotValueChanged(QtProperty *property, const QRectF &val); void slotConstraintChanged(QtProperty *property, const QRectF &val); void slotValueChanged(QtProperty *property, const QColor &val); void slotEnumChanged(QtProperty *property, int val); void slotEnumNamesChanged(QtProperty *property, const QStringList &enumNames); void slotEnumIconsChanged(QtProperty *property, const QMap &enumIcons); void slotValueChanged(QtProperty *property, const QSizePolicy &val); void slotValueChanged(QtProperty *property, const QFont &val); void slotValueChanged(QtProperty *property, const QCursor &val); void slotFlagChanged(QtProperty *property, int val); void slotFlagNamesChanged(QtProperty *property, const QStringList &flagNames); void slotPropertyInserted(QtProperty *property, QtProperty *parent, QtProperty *after); void slotPropertyRemoved(QtProperty *property, QtProperty *parent); void valueChanged(QtProperty *property, const QVariant &val); int internalPropertyToType(QtProperty *property) const; QtVariantProperty *createSubProperty(QtVariantProperty *parent, QtVariantProperty *after, QtProperty *internal); void removeSubProperty(QtVariantProperty *property); QMap m_typeToPropertyManager; QMap > m_typeToAttributeToAttributeType; QMap > m_propertyToType; QMap m_typeToValueType; QMap m_internalToProperty; const QString m_constraintAttribute; const QString m_singleStepAttribute; const QString m_decimalsAttribute; const QString m_enumIconsAttribute; const QString m_enumNamesAttribute; const QString m_flagNamesAttribute; const QString m_maximumAttribute; const QString m_minimumAttribute; const QString m_regExpAttribute; }; QtVariantPropertyManagerPrivate::QtVariantPropertyManagerPrivate() : m_constraintAttribute(QLatin1String("constraint")), m_singleStepAttribute(QLatin1String("singleStep")), m_decimalsAttribute(QLatin1String("decimals")), m_enumIconsAttribute(QLatin1String("enumIcons")), m_enumNamesAttribute(QLatin1String("enumNames")), m_flagNamesAttribute(QLatin1String("flagNames")), m_maximumAttribute(QLatin1String("maximum")), m_minimumAttribute(QLatin1String("minimum")), m_regExpAttribute(QLatin1String("regExp")) { } int QtVariantPropertyManagerPrivate::internalPropertyToType(QtProperty *property) const { int type = 0; QtAbstractPropertyManager *internPropertyManager = property->propertyManager(); if (qobject_cast(internPropertyManager)) type = QVariant::Int; else if (qobject_cast(internPropertyManager)) type = QtVariantPropertyManager::enumTypeId(); else if (qobject_cast(internPropertyManager)) type = QVariant::Bool; else if (qobject_cast(internPropertyManager)) type = QVariant::Double; return type; } QtVariantProperty *QtVariantPropertyManagerPrivate::createSubProperty(QtVariantProperty *parent, QtVariantProperty *after, QtProperty *internal) { int type = internalPropertyToType(internal); if (!type) return 0; bool wasCreatingSubProperties = m_creatingSubProperties; m_creatingSubProperties = true; QtVariantProperty *varChild = q_ptr->addProperty(type, internal->propertyName()); m_creatingSubProperties = wasCreatingSubProperties; varChild->setPropertyName(internal->propertyName()); varChild->setToolTip(internal->toolTip()); varChild->setStatusTip(internal->statusTip()); varChild->setWhatsThis(internal->whatsThis()); parent->insertSubProperty(varChild, after); m_internalToProperty[internal] = varChild; propertyToWrappedProperty()->insert(varChild, internal); return varChild; } void QtVariantPropertyManagerPrivate::removeSubProperty(QtVariantProperty *property) { QtProperty *internChild = wrappedProperty(property); bool wasDestroyingSubProperties = m_destroyingSubProperties; m_destroyingSubProperties = true; delete property; m_destroyingSubProperties = wasDestroyingSubProperties; m_internalToProperty.remove(internChild); propertyToWrappedProperty()->remove(property); } void QtVariantPropertyManagerPrivate::slotPropertyInserted(QtProperty *property, QtProperty *parent, QtProperty *after) { if (m_creatingProperty) return; QtVariantProperty *varParent = m_internalToProperty.value(parent, 0); if (!varParent) return; QtVariantProperty *varAfter = 0; if (after) { varAfter = m_internalToProperty.value(after, 0); if (!varAfter) return; } createSubProperty(varParent, varAfter, property); } void QtVariantPropertyManagerPrivate::slotPropertyRemoved(QtProperty *property, QtProperty *parent) { Q_UNUSED(parent) QtVariantProperty *varProperty = m_internalToProperty.value(property, 0); if (!varProperty) return; removeSubProperty(varProperty); } void QtVariantPropertyManagerPrivate::valueChanged(QtProperty *property, const QVariant &val) { QtVariantProperty *varProp = m_internalToProperty.value(property, 0); if (!varProp) return; emit q_ptr->valueChanged(varProp, val); emit q_ptr->propertyChanged(varProp); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, int val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, int min, int max) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); } } void QtVariantPropertyManagerPrivate::slotSingleStepChanged(QtProperty *property, int step) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_singleStepAttribute, QVariant(step)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, double val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, double min, double max) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); } } void QtVariantPropertyManagerPrivate::slotSingleStepChanged(QtProperty *property, double step) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_singleStepAttribute, QVariant(step)); } void QtVariantPropertyManagerPrivate::slotDecimalsChanged(QtProperty *property, int prec) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_decimalsAttribute, QVariant(prec)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, bool val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QString &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRegExpChanged(QtProperty *property, const QRegExp ®Exp) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_regExpAttribute, QVariant(regExp)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QDate &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, const QDate &min, const QDate &max) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); } } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QTime &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QDateTime &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QKeySequence &val) { QVariant v; qVariantSetValue(v, val); valueChanged(property, v); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QChar &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QLocale &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QPoint &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QPointF &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSize &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, const QSize &min, const QSize &max) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); } } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSizeF &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotRangeChanged(QtProperty *property, const QSizeF &min, const QSizeF &max) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { emit q_ptr->attributeChanged(varProp, m_minimumAttribute, QVariant(min)); emit q_ptr->attributeChanged(varProp, m_maximumAttribute, QVariant(max)); } } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QRect &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotConstraintChanged(QtProperty *property, const QRect &constraint) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_constraintAttribute, QVariant(constraint)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QRectF &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotConstraintChanged(QtProperty *property, const QRectF &constraint) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_constraintAttribute, QVariant(constraint)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QColor &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotEnumNamesChanged(QtProperty *property, const QStringList &enumNames) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_enumNamesAttribute, QVariant(enumNames)); } void QtVariantPropertyManagerPrivate::slotEnumIconsChanged(QtProperty *property, const QMap &enumIcons) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) { QVariant v; qVariantSetValue(v, enumIcons); emit q_ptr->attributeChanged(varProp, m_enumIconsAttribute, v); } } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QSizePolicy &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QFont &val) { valueChanged(property, QVariant(val)); } void QtVariantPropertyManagerPrivate::slotValueChanged(QtProperty *property, const QCursor &val) { #ifndef QT_NO_CURSOR valueChanged(property, QVariant(val)); #endif } void QtVariantPropertyManagerPrivate::slotFlagNamesChanged(QtProperty *property, const QStringList &flagNames) { if (QtVariantProperty *varProp = m_internalToProperty.value(property, 0)) emit q_ptr->attributeChanged(varProp, m_flagNamesAttribute, QVariant(flagNames)); } /*! \class QtVariantPropertyManager \brief The QtVariantPropertyManager class provides and manages QVariant based properties. QtVariantPropertyManager provides the addProperty() function which creates QtVariantProperty objects. The QtVariantProperty class is a convenience class handling QVariant based properties inheriting QtProperty. A QtProperty object created by a QtVariantPropertyManager instance can be converted into a QtVariantProperty object using the variantProperty() function. The property's value can be retrieved using the value(), and set using the setValue() slot. In addition the property's type, and the type of its value, can be retrieved using the propertyType() and valueType() functions respectively. A property's type is a QVariant::Type enumerator value, and usually a property's type is the same as its value type. But for some properties the types differ, for example for enums, flags and group types in which case QtVariantPropertyManager provides the enumTypeId(), flagTypeId() and groupTypeId() functions, respectively, to identify their property type (the value types are QVariant::Int for the enum and flag types, and QVariant::Invalid for the group type). Use the isPropertyTypeSupported() function to check if a particular property type is supported. The currently supported property types are: \table \header \o Property Type \o Property Type Id \row \o int \o QVariant::Int \row \o double \o QVariant::Double \row \o bool \o QVariant::Bool \row \o QString \o QVariant::String \row \o QDate \o QVariant::Date \row \o QTime \o QVariant::Time \row \o QDateTime \o QVariant::DateTime \row \o QKeySequence \o QVariant::KeySequence \row \o QChar \o QVariant::Char \row \o QLocale \o QVariant::Locale \row \o QPoint \o QVariant::Point \row \o QPointF \o QVariant::PointF \row \o QSize \o QVariant::Size \row \o QSizeF \o QVariant::SizeF \row \o QRect \o QVariant::Rect \row \o QRectF \o QVariant::RectF \row \o QColor \o QVariant::Color \row \o QSizePolicy \o QVariant::SizePolicy \row \o QFont \o QVariant::Font \row \o QCursor \o QVariant::Cursor \row \o enum \o enumTypeId() \row \o flag \o flagTypeId() \row \o group \o groupTypeId() \endtable Each property type can provide additional attributes, e.g. QVariant::Int and QVariant::Double provides minimum and maximum values. The currently supported attributes are: \table \header \o Property Type \o Attribute Name \o Attribute Type \row \o \c int \o minimum \o QVariant::Int \row \o \o maximum \o QVariant::Int \row \o \o singleStep \o QVariant::Int \row \o \c double \o minimum \o QVariant::Double \row \o \o maximum \o QVariant::Double \row \o \o singleStep \o QVariant::Double \row \o \o decimals \o QVariant::Int \row \o QString \o regExp \o QVariant::RegExp \row \o QDate \o minimum \o QVariant::Date \row \o \o maximum \o QVariant::Date \row \o QPointF \o decimals \o QVariant::Int \row \o QSize \o minimum \o QVariant::Size \row \o \o maximum \o QVariant::Size \row \o QSizeF \o minimum \o QVariant::SizeF \row \o \o maximum \o QVariant::SizeF \row \o \o decimals \o QVariant::Int \row \o QRect \o constraint \o QVariant::Rect \row \o QRectF \o constraint \o QVariant::RectF \row \o \o decimals \o QVariant::Int \row \o \c enum \o enumNames \o QVariant::StringList \row \o \o enumIcons \o iconMapTypeId() \row \o \c flag \o flagNames \o QVariant::StringList \endtable The attributes for a given property type can be retrieved using the attributes() function. Each attribute has a value type which can be retrieved using the attributeType() function, and a value accessible through the attributeValue() function. In addition, the value can be set using the setAttribute() slot. QtVariantManager also provides the valueChanged() signal which is emitted whenever a property created by this manager change, and the attributeChanged() signal which is emitted whenever an attribute of such a property changes. \sa QtVariantProperty, QtVariantEditorFactory */ /*! \fn void QtVariantPropertyManager::valueChanged(QtProperty *property, const QVariant &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtVariantPropertyManager::attributeChanged(QtProperty *property, const QString &attribute, const QVariant &value) This signal is emitted whenever an attribute of a property created by this manager changes its value, passing a pointer to the \a property, the \a attribute and the new \a value as parameters. \sa setAttribute() */ /*! Creates a manager with the given \a parent. */ QtVariantPropertyManager::QtVariantPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtVariantPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_creatingProperty = false; d_ptr->m_creatingSubProperties = false; d_ptr->m_destroyingSubProperties = false; d_ptr->m_propertyType = 0; // IntPropertyManager QtIntPropertyManager *intPropertyManager = new QtIntPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Int] = intPropertyManager; d_ptr->m_typeToAttributeToAttributeType[QVariant::Int][d_ptr->m_minimumAttribute] = QVariant::Int; d_ptr->m_typeToAttributeToAttributeType[QVariant::Int][d_ptr->m_maximumAttribute] = QVariant::Int; d_ptr->m_typeToAttributeToAttributeType[QVariant::Int][d_ptr->m_singleStepAttribute] = QVariant::Int; d_ptr->m_typeToValueType[QVariant::Int] = QVariant::Int; connect(intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(intPropertyManager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(intPropertyManager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); // DoublePropertyManager QtDoublePropertyManager *doublePropertyManager = new QtDoublePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Double] = doublePropertyManager; d_ptr->m_typeToAttributeToAttributeType[QVariant::Double][d_ptr->m_minimumAttribute] = QVariant::Double; d_ptr->m_typeToAttributeToAttributeType[QVariant::Double][d_ptr->m_maximumAttribute] = QVariant::Double; d_ptr->m_typeToAttributeToAttributeType[QVariant::Double][d_ptr->m_singleStepAttribute] = QVariant::Double; d_ptr->m_typeToAttributeToAttributeType[QVariant::Double][d_ptr->m_decimalsAttribute] = QVariant::Int; d_ptr->m_typeToValueType[QVariant::Double] = QVariant::Double; connect(doublePropertyManager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotValueChanged(QtProperty *, double))); connect(doublePropertyManager, SIGNAL(rangeChanged(QtProperty *, double, double)), this, SLOT(slotRangeChanged(QtProperty *, double, double))); connect(doublePropertyManager, SIGNAL(singleStepChanged(QtProperty *, double)), this, SLOT(slotSingleStepChanged(QtProperty *, double))); connect(doublePropertyManager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); // BoolPropertyManager QtBoolPropertyManager *boolPropertyManager = new QtBoolPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Bool] = boolPropertyManager; d_ptr->m_typeToValueType[QVariant::Bool] = QVariant::Bool; connect(boolPropertyManager, SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotValueChanged(QtProperty *, bool))); // StringPropertyManager QtStringPropertyManager *stringPropertyManager = new QtStringPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::String] = stringPropertyManager; d_ptr->m_typeToValueType[QVariant::String] = QVariant::String; d_ptr->m_typeToAttributeToAttributeType[QVariant::String][d_ptr->m_regExpAttribute] = QVariant::RegExp; connect(stringPropertyManager, SIGNAL(valueChanged(QtProperty *, const QString &)), this, SLOT(slotValueChanged(QtProperty *, const QString &))); connect(stringPropertyManager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)), this, SLOT(slotRegExpChanged(QtProperty *, const QRegExp &))); // DatePropertyManager QtDatePropertyManager *datePropertyManager = new QtDatePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Date] = datePropertyManager; d_ptr->m_typeToValueType[QVariant::Date] = QVariant::Date; d_ptr->m_typeToAttributeToAttributeType[QVariant::Date][d_ptr->m_minimumAttribute] = QVariant::Date; d_ptr->m_typeToAttributeToAttributeType[QVariant::Date][d_ptr->m_maximumAttribute] = QVariant::Date; connect(datePropertyManager, SIGNAL(valueChanged(QtProperty *, const QDate &)), this, SLOT(slotValueChanged(QtProperty *, const QDate &))); connect(datePropertyManager, SIGNAL(rangeChanged(QtProperty *, const QDate &, const QDate &)), this, SLOT(slotRangeChanged(QtProperty *, const QDate &, const QDate &))); // TimePropertyManager QtTimePropertyManager *timePropertyManager = new QtTimePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Time] = timePropertyManager; d_ptr->m_typeToValueType[QVariant::Time] = QVariant::Time; connect(timePropertyManager, SIGNAL(valueChanged(QtProperty *, const QTime &)), this, SLOT(slotValueChanged(QtProperty *, const QTime &))); // DateTimePropertyManager QtDateTimePropertyManager *dateTimePropertyManager = new QtDateTimePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::DateTime] = dateTimePropertyManager; d_ptr->m_typeToValueType[QVariant::DateTime] = QVariant::DateTime; connect(dateTimePropertyManager, SIGNAL(valueChanged(QtProperty *, const QDateTime &)), this, SLOT(slotValueChanged(QtProperty *, const QDateTime &))); // KeySequencePropertyManager QtKeySequencePropertyManager *keySequencePropertyManager = new QtKeySequencePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::KeySequence] = keySequencePropertyManager; d_ptr->m_typeToValueType[QVariant::KeySequence] = QVariant::KeySequence; connect(keySequencePropertyManager, SIGNAL(valueChanged(QtProperty *, const QKeySequence &)), this, SLOT(slotValueChanged(QtProperty *, const QKeySequence &))); // CharPropertyManager QtCharPropertyManager *charPropertyManager = new QtCharPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Char] = charPropertyManager; d_ptr->m_typeToValueType[QVariant::Char] = QVariant::Char; connect(charPropertyManager, SIGNAL(valueChanged(QtProperty *, const QChar &)), this, SLOT(slotValueChanged(QtProperty *, const QChar &))); // LocalePropertyManager QtLocalePropertyManager *localePropertyManager = new QtLocalePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Locale] = localePropertyManager; d_ptr->m_typeToValueType[QVariant::Locale] = QVariant::Locale; connect(localePropertyManager, SIGNAL(valueChanged(QtProperty *, const QLocale &)), this, SLOT(slotValueChanged(QtProperty *, const QLocale &))); connect(localePropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(localePropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(localePropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // PointPropertyManager QtPointPropertyManager *pointPropertyManager = new QtPointPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Point] = pointPropertyManager; d_ptr->m_typeToValueType[QVariant::Point] = QVariant::Point; connect(pointPropertyManager, SIGNAL(valueChanged(QtProperty *, const QPoint &)), this, SLOT(slotValueChanged(QtProperty *, const QPoint &))); connect(pointPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(pointPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(pointPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // PointFPropertyManager QtPointFPropertyManager *pointFPropertyManager = new QtPointFPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::PointF] = pointFPropertyManager; d_ptr->m_typeToValueType[QVariant::PointF] = QVariant::PointF; d_ptr->m_typeToAttributeToAttributeType[QVariant::PointF][d_ptr->m_decimalsAttribute] = QVariant::Int; connect(pointFPropertyManager, SIGNAL(valueChanged(QtProperty *, const QPointF &)), this, SLOT(slotValueChanged(QtProperty *, const QPointF &))); connect(pointFPropertyManager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); connect(pointFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotValueChanged(QtProperty *, double))); connect(pointFPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(pointFPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // SizePropertyManager QtSizePropertyManager *sizePropertyManager = new QtSizePropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Size] = sizePropertyManager; d_ptr->m_typeToValueType[QVariant::Size] = QVariant::Size; d_ptr->m_typeToAttributeToAttributeType[QVariant::Size][d_ptr->m_minimumAttribute] = QVariant::Size; d_ptr->m_typeToAttributeToAttributeType[QVariant::Size][d_ptr->m_maximumAttribute] = QVariant::Size; connect(sizePropertyManager, SIGNAL(valueChanged(QtProperty *, const QSize &)), this, SLOT(slotValueChanged(QtProperty *, const QSize &))); connect(sizePropertyManager, SIGNAL(rangeChanged(QtProperty *, const QSize &, const QSize &)), this, SLOT(slotRangeChanged(QtProperty *, const QSize &, const QSize &))); connect(sizePropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(sizePropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(sizePropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(sizePropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // SizeFPropertyManager QtSizeFPropertyManager *sizeFPropertyManager = new QtSizeFPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::SizeF] = sizeFPropertyManager; d_ptr->m_typeToValueType[QVariant::SizeF] = QVariant::SizeF; d_ptr->m_typeToAttributeToAttributeType[QVariant::SizeF][d_ptr->m_minimumAttribute] = QVariant::SizeF; d_ptr->m_typeToAttributeToAttributeType[QVariant::SizeF][d_ptr->m_maximumAttribute] = QVariant::SizeF; d_ptr->m_typeToAttributeToAttributeType[QVariant::SizeF][d_ptr->m_decimalsAttribute] = QVariant::Int; connect(sizeFPropertyManager, SIGNAL(valueChanged(QtProperty *, const QSizeF &)), this, SLOT(slotValueChanged(QtProperty *, const QSizeF &))); connect(sizeFPropertyManager, SIGNAL(rangeChanged(QtProperty *, const QSizeF &, const QSizeF &)), this, SLOT(slotRangeChanged(QtProperty *, const QSizeF &, const QSizeF &))); connect(sizeFPropertyManager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); connect(sizeFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotValueChanged(QtProperty *, double))); connect(sizeFPropertyManager->subDoublePropertyManager(), SIGNAL(rangeChanged(QtProperty *, double, double)), this, SLOT(slotRangeChanged(QtProperty *, double, double))); connect(sizeFPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(sizeFPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // RectPropertyManager QtRectPropertyManager *rectPropertyManager = new QtRectPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Rect] = rectPropertyManager; d_ptr->m_typeToValueType[QVariant::Rect] = QVariant::Rect; d_ptr->m_typeToAttributeToAttributeType[QVariant::Rect][d_ptr->m_constraintAttribute] = QVariant::Rect; connect(rectPropertyManager, SIGNAL(valueChanged(QtProperty *, const QRect &)), this, SLOT(slotValueChanged(QtProperty *, const QRect &))); connect(rectPropertyManager, SIGNAL(constraintChanged(QtProperty *, const QRect &)), this, SLOT(slotConstraintChanged(QtProperty *, const QRect &))); connect(rectPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(rectPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(rectPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(rectPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // RectFPropertyManager QtRectFPropertyManager *rectFPropertyManager = new QtRectFPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::RectF] = rectFPropertyManager; d_ptr->m_typeToValueType[QVariant::RectF] = QVariant::RectF; d_ptr->m_typeToAttributeToAttributeType[QVariant::RectF][d_ptr->m_constraintAttribute] = QVariant::RectF; d_ptr->m_typeToAttributeToAttributeType[QVariant::RectF][d_ptr->m_decimalsAttribute] = QVariant::Int; connect(rectFPropertyManager, SIGNAL(valueChanged(QtProperty *, const QRectF &)), this, SLOT(slotValueChanged(QtProperty *, const QRectF &))); connect(rectFPropertyManager, SIGNAL(constraintChanged(QtProperty *, const QRectF &)), this, SLOT(slotConstraintChanged(QtProperty *, const QRectF &))); connect(rectFPropertyManager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); connect(rectFPropertyManager->subDoublePropertyManager(), SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotValueChanged(QtProperty *, double))); connect(rectFPropertyManager->subDoublePropertyManager(), SIGNAL(rangeChanged(QtProperty *, double, double)), this, SLOT(slotRangeChanged(QtProperty *, double, double))); connect(rectFPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(rectFPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // ColorPropertyManager QtColorPropertyManager *colorPropertyManager = new QtColorPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Color] = colorPropertyManager; d_ptr->m_typeToValueType[QVariant::Color] = QVariant::Color; connect(colorPropertyManager, SIGNAL(valueChanged(QtProperty *, const QColor &)), this, SLOT(slotValueChanged(QtProperty *, const QColor &))); connect(colorPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(colorPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(colorPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // EnumPropertyManager int enumId = enumTypeId(); QtEnumPropertyManager *enumPropertyManager = new QtEnumPropertyManager(this); d_ptr->m_typeToPropertyManager[enumId] = enumPropertyManager; d_ptr->m_typeToValueType[enumId] = QVariant::Int; d_ptr->m_typeToAttributeToAttributeType[enumId][d_ptr->m_enumNamesAttribute] = QVariant::StringList; d_ptr->m_typeToAttributeToAttributeType[enumId][d_ptr->m_enumIconsAttribute] = iconMapTypeId(); connect(enumPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(enumPropertyManager, SIGNAL(enumNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotEnumNamesChanged(QtProperty *, const QStringList &))); connect(enumPropertyManager, SIGNAL(enumIconsChanged(QtProperty *, const QMap &)), this, SLOT(slotEnumIconsChanged(QtProperty *, const QMap &))); // SizePolicyPropertyManager QtSizePolicyPropertyManager *sizePolicyPropertyManager = new QtSizePolicyPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::SizePolicy] = sizePolicyPropertyManager; d_ptr->m_typeToValueType[QVariant::SizePolicy] = QVariant::SizePolicy; connect(sizePolicyPropertyManager, SIGNAL(valueChanged(QtProperty *, const QSizePolicy &)), this, SLOT(slotValueChanged(QtProperty *, const QSizePolicy &))); connect(sizePolicyPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(sizePolicyPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(sizePolicyPropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(sizePolicyPropertyManager->subEnumPropertyManager(), SIGNAL(enumNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotEnumNamesChanged(QtProperty *, const QStringList &))); connect(sizePolicyPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(sizePolicyPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // FontPropertyManager QtFontPropertyManager *fontPropertyManager = new QtFontPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Font] = fontPropertyManager; d_ptr->m_typeToValueType[QVariant::Font] = QVariant::Font; connect(fontPropertyManager, SIGNAL(valueChanged(QtProperty *, const QFont &)), this, SLOT(slotValueChanged(QtProperty *, const QFont &))); connect(fontPropertyManager->subIntPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(fontPropertyManager->subIntPropertyManager(), SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(fontPropertyManager->subEnumPropertyManager(), SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(fontPropertyManager->subEnumPropertyManager(), SIGNAL(enumNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotEnumNamesChanged(QtProperty *, const QStringList &))); connect(fontPropertyManager->subBoolPropertyManager(), SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotValueChanged(QtProperty *, bool))); connect(fontPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(fontPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // CursorPropertyManager QtCursorPropertyManager *cursorPropertyManager = new QtCursorPropertyManager(this); d_ptr->m_typeToPropertyManager[QVariant::Cursor] = cursorPropertyManager; d_ptr->m_typeToValueType[QVariant::Cursor] = QVariant::Cursor; connect(cursorPropertyManager, SIGNAL(valueChanged(QtProperty *, const QCursor &)), this, SLOT(slotValueChanged(QtProperty *, const QCursor &))); // FlagPropertyManager int flagId = flagTypeId(); QtFlagPropertyManager *flagPropertyManager = new QtFlagPropertyManager(this); d_ptr->m_typeToPropertyManager[flagId] = flagPropertyManager; d_ptr->m_typeToValueType[flagId] = QVariant::Int; d_ptr->m_typeToAttributeToAttributeType[flagId][d_ptr->m_flagNamesAttribute] = QVariant::StringList; connect(flagPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotValueChanged(QtProperty *, int))); connect(flagPropertyManager, SIGNAL(flagNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotFlagNamesChanged(QtProperty *, const QStringList &))); connect(flagPropertyManager->subBoolPropertyManager(), SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotValueChanged(QtProperty *, bool))); connect(flagPropertyManager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), this, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); connect(flagPropertyManager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), this, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); // FlagPropertyManager int groupId = groupTypeId(); QtGroupPropertyManager *groupPropertyManager = new QtGroupPropertyManager(this); d_ptr->m_typeToPropertyManager[groupId] = groupPropertyManager; d_ptr->m_typeToValueType[groupId] = QVariant::Invalid; } /*! Destroys this manager, and all the properties it has created. */ QtVariantPropertyManager::~QtVariantPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property converted into a QtVariantProperty. If the \a property was not created by this variant manager, the function returns 0. \sa createProperty() */ QtVariantProperty *QtVariantPropertyManager::variantProperty(const QtProperty *property) const { const QMap >::const_iterator it = d_ptr->m_propertyToType.constFind(property); if (it == d_ptr->m_propertyToType.constEnd()) return 0; return it.value().first; } /*! Returns true if the given \a propertyType is supported by this variant manager; otherwise false. \sa propertyType() */ bool QtVariantPropertyManager::isPropertyTypeSupported(int propertyType) const { if (d_ptr->m_typeToValueType.contains(propertyType)) return true; return false; } /*! Creates and returns a variant property of the given \a propertyType with the given \a name. If the specified \a propertyType is not supported by this variant manager, this function returns 0. Do not use the inherited QtAbstractPropertyManager::addProperty() function to create a variant property (that function will always return 0 since it will not be clear what type the property should have). \sa isPropertyTypeSupported() */ QtVariantProperty *QtVariantPropertyManager::addProperty(int propertyType, const QString &name) { if (!isPropertyTypeSupported(propertyType)) return 0; bool wasCreating = d_ptr->m_creatingProperty; d_ptr->m_creatingProperty = true; d_ptr->m_propertyType = propertyType; QtProperty *property = QtAbstractPropertyManager::addProperty(name); d_ptr->m_creatingProperty = wasCreating; d_ptr->m_propertyType = 0; if (!property) return 0; return variantProperty(property); } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid variant. \sa setValue() */ QVariant QtVariantPropertyManager::value(const QtProperty *property) const { QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); if (internProp == 0) return QVariant(); QtAbstractPropertyManager *manager = internProp->propertyManager(); if (QtIntPropertyManager *intManager = qobject_cast(manager)) { return intManager->value(internProp); } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { return doubleManager->value(internProp); } else if (QtBoolPropertyManager *boolManager = qobject_cast(manager)) { return boolManager->value(internProp); } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { return stringManager->value(internProp); } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { return dateManager->value(internProp); } else if (QtTimePropertyManager *timeManager = qobject_cast(manager)) { return timeManager->value(internProp); } else if (QtDateTimePropertyManager *dateTimeManager = qobject_cast(manager)) { return dateTimeManager->value(internProp); } else if (QtKeySequencePropertyManager *keySequenceManager = qobject_cast(manager)) { return keySequenceManager->value(internProp); } else if (QtCharPropertyManager *charManager = qobject_cast(manager)) { return charManager->value(internProp); } else if (QtLocalePropertyManager *localeManager = qobject_cast(manager)) { return localeManager->value(internProp); } else if (QtPointPropertyManager *pointManager = qobject_cast(manager)) { return pointManager->value(internProp); } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { return pointFManager->value(internProp); } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { return sizeManager->value(internProp); } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { return sizeFManager->value(internProp); } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { return rectManager->value(internProp); } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { return rectFManager->value(internProp); } else if (QtColorPropertyManager *colorManager = qobject_cast(manager)) { return colorManager->value(internProp); } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { return enumManager->value(internProp); } else if (QtSizePolicyPropertyManager *sizePolicyManager = qobject_cast(manager)) { return sizePolicyManager->value(internProp); } else if (QtFontPropertyManager *fontManager = qobject_cast(manager)) { return fontManager->value(internProp); #ifndef QT_NO_CURSOR } else if (QtCursorPropertyManager *cursorManager = qobject_cast(manager)) { return cursorManager->value(internProp); #endif } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { return flagManager->value(internProp); } return QVariant(); } /*! Returns the given \a property's value type. \sa propertyType() */ int QtVariantPropertyManager::valueType(const QtProperty *property) const { int propType = propertyType(property); return valueType(propType); } /*! \overload Returns the value type associated with the given \a propertyType. */ int QtVariantPropertyManager::valueType(int propertyType) const { if (d_ptr->m_typeToValueType.contains(propertyType)) return d_ptr->m_typeToValueType[propertyType]; return 0; } /*! Returns the given \a property's type. \sa valueType() */ int QtVariantPropertyManager::propertyType(const QtProperty *property) const { const QMap >::const_iterator it = d_ptr->m_propertyToType.constFind(property); if (it == d_ptr->m_propertyToType.constEnd()) return 0; return it.value().second; } /*! Returns the given \a property's value for the specified \a attribute If the given \a property was not created by \e this manager, or if the specified \a attribute does not exist, this function returns an invalid variant. \sa attributes(), attributeType(), setAttribute() */ QVariant QtVariantPropertyManager::attributeValue(const QtProperty *property, const QString &attribute) const { int propType = propertyType(property); if (!propType) return QVariant(); QMap >::ConstIterator it = d_ptr->m_typeToAttributeToAttributeType.find(propType); if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) return QVariant(); QMap attributes = it.value(); QMap::ConstIterator itAttr = attributes.find(attribute); if (itAttr == attributes.constEnd()) return QVariant(); QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); if (internProp == 0) return QVariant(); QtAbstractPropertyManager *manager = internProp->propertyManager(); if (QtIntPropertyManager *intManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) return intManager->maximum(internProp); if (attribute == d_ptr->m_minimumAttribute) return intManager->minimum(internProp); if (attribute == d_ptr->m_singleStepAttribute) return intManager->singleStep(internProp); return QVariant(); } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) return doubleManager->maximum(internProp); if (attribute == d_ptr->m_minimumAttribute) return doubleManager->minimum(internProp); if (attribute == d_ptr->m_singleStepAttribute) return doubleManager->singleStep(internProp); if (attribute == d_ptr->m_decimalsAttribute) return doubleManager->decimals(internProp); return QVariant(); } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { if (attribute == d_ptr->m_regExpAttribute) return stringManager->regExp(internProp); return QVariant(); } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) return dateManager->maximum(internProp); if (attribute == d_ptr->m_minimumAttribute) return dateManager->minimum(internProp); return QVariant(); } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_decimalsAttribute) return pointFManager->decimals(internProp); return QVariant(); } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) return sizeManager->maximum(internProp); if (attribute == d_ptr->m_minimumAttribute) return sizeManager->minimum(internProp); return QVariant(); } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) return sizeFManager->maximum(internProp); if (attribute == d_ptr->m_minimumAttribute) return sizeFManager->minimum(internProp); if (attribute == d_ptr->m_decimalsAttribute) return sizeFManager->decimals(internProp); return QVariant(); } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { if (attribute == d_ptr->m_constraintAttribute) return rectManager->constraint(internProp); return QVariant(); } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_constraintAttribute) return rectFManager->constraint(internProp); if (attribute == d_ptr->m_decimalsAttribute) return rectFManager->decimals(internProp); return QVariant(); } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { if (attribute == d_ptr->m_enumNamesAttribute) return enumManager->enumNames(internProp); if (attribute == d_ptr->m_enumIconsAttribute) { QVariant v; qVariantSetValue(v, enumManager->enumIcons(internProp)); return v; } return QVariant(); } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { if (attribute == d_ptr->m_flagNamesAttribute) return flagManager->flagNames(internProp); return QVariant(); } return QVariant(); } /*! Returns a list of the given \a propertyType 's attributes. \sa attributeValue(), attributeType() */ QStringList QtVariantPropertyManager::attributes(int propertyType) const { QMap >::ConstIterator it = d_ptr->m_typeToAttributeToAttributeType.find(propertyType); if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) return QStringList(); return it.value().keys(); } /*! Returns the type of the specified \a attribute of the given \a propertyType. If the given \a propertyType is not supported by \e this manager, or if the given \a propertyType does not possess the specified \a attribute, this function returns QVariant::Invalid. \sa attributes(), valueType() */ int QtVariantPropertyManager::attributeType(int propertyType, const QString &attribute) const { QMap >::ConstIterator it = d_ptr->m_typeToAttributeToAttributeType.find(propertyType); if (it == d_ptr->m_typeToAttributeToAttributeType.constEnd()) return 0; QMap attributes = it.value(); QMap::ConstIterator itAttr = attributes.find(attribute); if (itAttr == attributes.constEnd()) return 0; return itAttr.value(); } /*! \fn void QtVariantPropertyManager::setValue(QtProperty *property, const QVariant &value) Sets the value of the given \a property to \a value. The specified \a value must be of a type returned by valueType(), or of type that can be converted to valueType() using the QVariant::canConvert() function, otherwise this function does nothing. \sa value(), QtVariantProperty::setValue(), valueChanged() */ void QtVariantPropertyManager::setValue(QtProperty *property, const QVariant &val) { int propType = val.userType(); if (!propType) return; int valType = valueType(property); if (propType != valType && !val.canConvert(static_cast(valType))) return; QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); if (internProp == 0) return; QtAbstractPropertyManager *manager = internProp->propertyManager(); if (QtIntPropertyManager *intManager = qobject_cast(manager)) { intManager->setValue(internProp, qVariantValue(val)); return; } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { doubleManager->setValue(internProp, qVariantValue(val)); return; } else if (QtBoolPropertyManager *boolManager = qobject_cast(manager)) { boolManager->setValue(internProp, qVariantValue(val)); return; } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { stringManager->setValue(internProp, qVariantValue(val)); return; } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { dateManager->setValue(internProp, qVariantValue(val)); return; } else if (QtTimePropertyManager *timeManager = qobject_cast(manager)) { timeManager->setValue(internProp, qVariantValue(val)); return; } else if (QtDateTimePropertyManager *dateTimeManager = qobject_cast(manager)) { dateTimeManager->setValue(internProp, qVariantValue(val)); return; } else if (QtKeySequencePropertyManager *keySequenceManager = qobject_cast(manager)) { keySequenceManager->setValue(internProp, qVariantValue(val)); return; } else if (QtCharPropertyManager *charManager = qobject_cast(manager)) { charManager->setValue(internProp, qVariantValue(val)); return; } else if (QtLocalePropertyManager *localeManager = qobject_cast(manager)) { localeManager->setValue(internProp, qVariantValue(val)); return; } else if (QtPointPropertyManager *pointManager = qobject_cast(manager)) { pointManager->setValue(internProp, qVariantValue(val)); return; } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { pointFManager->setValue(internProp, qVariantValue(val)); return; } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { sizeManager->setValue(internProp, qVariantValue(val)); return; } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { sizeFManager->setValue(internProp, qVariantValue(val)); return; } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { rectManager->setValue(internProp, qVariantValue(val)); return; } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { rectFManager->setValue(internProp, qVariantValue(val)); return; } else if (QtColorPropertyManager *colorManager = qobject_cast(manager)) { colorManager->setValue(internProp, qVariantValue(val)); return; } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { enumManager->setValue(internProp, qVariantValue(val)); return; } else if (QtSizePolicyPropertyManager *sizePolicyManager = qobject_cast(manager)) { sizePolicyManager->setValue(internProp, qVariantValue(val)); return; } else if (QtFontPropertyManager *fontManager = qobject_cast(manager)) { fontManager->setValue(internProp, qVariantValue(val)); return; #ifndef QT_NO_CURSOR } else if (QtCursorPropertyManager *cursorManager = qobject_cast(manager)) { cursorManager->setValue(internProp, qVariantValue(val)); return; #endif } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { flagManager->setValue(internProp, qVariantValue(val)); return; } } /*! Sets the value of the specified \a attribute of the given \a property, to \a value. The new \a value's type must be of the type returned by attributeType(), or of a type that can be converted to attributeType() using the QVariant::canConvert() function, otherwise this function does nothing. \sa attributeValue(), QtVariantProperty::setAttribute(), attributeChanged() */ void QtVariantPropertyManager::setAttribute(QtProperty *property, const QString &attribute, const QVariant &value) { QVariant oldAttr = attributeValue(property, attribute); if (!oldAttr.isValid()) return; int attrType = value.userType(); if (!attrType) return; if (attrType != attributeType(propertyType(property), attribute) && !value.canConvert((QVariant::Type)attrType)) return; QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); if (internProp == 0) return; QtAbstractPropertyManager *manager = internProp->propertyManager(); if (QtIntPropertyManager *intManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) intManager->setMaximum(internProp, qVariantValue(value)); else if (attribute == d_ptr->m_minimumAttribute) intManager->setMinimum(internProp, qVariantValue(value)); else if (attribute == d_ptr->m_singleStepAttribute) intManager->setSingleStep(internProp, qVariantValue(value)); return; } else if (QtDoublePropertyManager *doubleManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) doubleManager->setMaximum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_minimumAttribute) doubleManager->setMinimum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_singleStepAttribute) doubleManager->setSingleStep(internProp, qVariantValue(value)); if (attribute == d_ptr->m_decimalsAttribute) doubleManager->setDecimals(internProp, qVariantValue(value)); return; } else if (QtStringPropertyManager *stringManager = qobject_cast(manager)) { if (attribute == d_ptr->m_regExpAttribute) stringManager->setRegExp(internProp, qVariantValue(value)); return; } else if (QtDatePropertyManager *dateManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) dateManager->setMaximum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_minimumAttribute) dateManager->setMinimum(internProp, qVariantValue(value)); return; } else if (QtPointFPropertyManager *pointFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_decimalsAttribute) pointFManager->setDecimals(internProp, qVariantValue(value)); return; } else if (QtSizePropertyManager *sizeManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) sizeManager->setMaximum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_minimumAttribute) sizeManager->setMinimum(internProp, qVariantValue(value)); return; } else if (QtSizeFPropertyManager *sizeFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_maximumAttribute) sizeFManager->setMaximum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_minimumAttribute) sizeFManager->setMinimum(internProp, qVariantValue(value)); if (attribute == d_ptr->m_decimalsAttribute) sizeFManager->setDecimals(internProp, qVariantValue(value)); return; } else if (QtRectPropertyManager *rectManager = qobject_cast(manager)) { if (attribute == d_ptr->m_constraintAttribute) rectManager->setConstraint(internProp, qVariantValue(value)); return; } else if (QtRectFPropertyManager *rectFManager = qobject_cast(manager)) { if (attribute == d_ptr->m_constraintAttribute) rectFManager->setConstraint(internProp, qVariantValue(value)); if (attribute == d_ptr->m_decimalsAttribute) rectFManager->setDecimals(internProp, qVariantValue(value)); return; } else if (QtEnumPropertyManager *enumManager = qobject_cast(manager)) { if (attribute == d_ptr->m_enumNamesAttribute) enumManager->setEnumNames(internProp, qVariantValue(value)); if (attribute == d_ptr->m_enumIconsAttribute) enumManager->setEnumIcons(internProp, qVariantValue(value)); return; } else if (QtFlagPropertyManager *flagManager = qobject_cast(manager)) { if (attribute == d_ptr->m_flagNamesAttribute) flagManager->setFlagNames(internProp, qVariantValue(value)); return; } } /*! \reimp */ bool QtVariantPropertyManager::hasValue(const QtProperty *property) const { if (propertyType(property) == groupTypeId()) return false; return true; } /*! \reimp */ QString QtVariantPropertyManager::valueText(const QtProperty *property) const { const QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); return internProp ? internProp->valueText() : QString(); } /*! \reimp */ QIcon QtVariantPropertyManager::valueIcon(const QtProperty *property) const { const QtProperty *internProp = propertyToWrappedProperty()->value(property, 0); return internProp ? internProp->valueIcon() : QIcon(); } /*! \reimp */ void QtVariantPropertyManager::initializeProperty(QtProperty *property) { QtVariantProperty *varProp = variantProperty(property); if (!varProp) return; QMap::ConstIterator it = d_ptr->m_typeToPropertyManager.find(d_ptr->m_propertyType); if (it != d_ptr->m_typeToPropertyManager.constEnd()) { QtProperty *internProp = 0; if (!d_ptr->m_creatingSubProperties) { QtAbstractPropertyManager *manager = it.value(); internProp = manager->addProperty(); d_ptr->m_internalToProperty[internProp] = varProp; } propertyToWrappedProperty()->insert(varProp, internProp); if (internProp) { QList children = internProp->subProperties(); QListIterator itChild(children); QtVariantProperty *lastProperty = 0; while (itChild.hasNext()) { QtVariantProperty *prop = d_ptr->createSubProperty(varProp, lastProperty, itChild.next()); lastProperty = prop ? prop : lastProperty; } } } } /*! \reimp */ void QtVariantPropertyManager::uninitializeProperty(QtProperty *property) { const QMap >::iterator type_it = d_ptr->m_propertyToType.find(property); if (type_it == d_ptr->m_propertyToType.end()) return; PropertyMap::iterator it = propertyToWrappedProperty()->find(property); if (it != propertyToWrappedProperty()->end()) { QtProperty *internProp = it.value(); if (internProp) { d_ptr->m_internalToProperty.remove(internProp); if (!d_ptr->m_destroyingSubProperties) { delete internProp; } } propertyToWrappedProperty()->erase(it); } d_ptr->m_propertyToType.erase(type_it); } /*! \reimp */ QtProperty *QtVariantPropertyManager::createProperty() { if (!d_ptr->m_creatingProperty) return 0; QtVariantProperty *property = new QtVariantProperty(this); d_ptr->m_propertyToType.insert(property, qMakePair(property, d_ptr->m_propertyType)); return property; } ///////////////////////////// class QtVariantEditorFactoryPrivate { QtVariantEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtVariantEditorFactory) public: QtSpinBoxFactory *m_spinBoxFactory; QtDoubleSpinBoxFactory *m_doubleSpinBoxFactory; QtCheckBoxFactory *m_checkBoxFactory; QtLineEditFactory *m_lineEditFactory; QtDateEditFactory *m_dateEditFactory; QtTimeEditFactory *m_timeEditFactory; QtDateTimeEditFactory *m_dateTimeEditFactory; QtKeySequenceEditorFactory *m_keySequenceEditorFactory; QtCharEditorFactory *m_charEditorFactory; QtEnumEditorFactory *m_comboBoxFactory; QtCursorEditorFactory *m_cursorEditorFactory; QtColorEditorFactory *m_colorEditorFactory; QtFontEditorFactory *m_fontEditorFactory; QMap m_factoryToType; QMap m_typeToFactory; }; /*! \class QtVariantEditorFactory \brief The QtVariantEditorFactory class provides widgets for properties created by QtVariantPropertyManager objects. The variant factory provides the following widgets for the specified property types: \table \header \o Property Type \o Widget \row \o \c int \o QSpinBox \row \o \c double \o QDoubleSpinBox \row \o \c bool \o QCheckBox \row \o QString \o QLineEdit \row \o QDate \o QDateEdit \row \o QTime \o QTimeEdit \row \o QDateTime \o QDateTimeEdit \row \o QKeySequence \o customized editor \row \o QChar \o customized editor \row \o \c enum \o QComboBox \row \o QCursor \o QComboBox \endtable Note that QtVariantPropertyManager supports several additional property types for which the QtVariantEditorFactory class does not provide editing widgets, e.g. QPoint and QSize. To provide widgets for other types using the variant approach, derive from the QtVariantEditorFactory class. \sa QtAbstractEditorFactory, QtVariantPropertyManager */ /*! Creates a factory with the given \a parent. */ QtVariantEditorFactory::QtVariantEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtVariantEditorFactoryPrivate(); d_ptr->q_ptr = this; d_ptr->m_spinBoxFactory = new QtSpinBoxFactory(this); d_ptr->m_factoryToType[d_ptr->m_spinBoxFactory] = QVariant::Int; d_ptr->m_typeToFactory[QVariant::Int] = d_ptr->m_spinBoxFactory; d_ptr->m_doubleSpinBoxFactory = new QtDoubleSpinBoxFactory(this); d_ptr->m_factoryToType[d_ptr->m_doubleSpinBoxFactory] = QVariant::Double; d_ptr->m_typeToFactory[QVariant::Double] = d_ptr->m_doubleSpinBoxFactory; d_ptr->m_checkBoxFactory = new QtCheckBoxFactory(this); d_ptr->m_factoryToType[d_ptr->m_checkBoxFactory] = QVariant::Bool; d_ptr->m_typeToFactory[QVariant::Bool] = d_ptr->m_checkBoxFactory; d_ptr->m_lineEditFactory = new QtLineEditFactory(this); d_ptr->m_factoryToType[d_ptr->m_lineEditFactory] = QVariant::String; d_ptr->m_typeToFactory[QVariant::String] = d_ptr->m_lineEditFactory; d_ptr->m_dateEditFactory = new QtDateEditFactory(this); d_ptr->m_factoryToType[d_ptr->m_dateEditFactory] = QVariant::Date; d_ptr->m_typeToFactory[QVariant::Date] = d_ptr->m_dateEditFactory; d_ptr->m_timeEditFactory = new QtTimeEditFactory(this); d_ptr->m_factoryToType[d_ptr->m_timeEditFactory] = QVariant::Time; d_ptr->m_typeToFactory[QVariant::Time] = d_ptr->m_timeEditFactory; d_ptr->m_dateTimeEditFactory = new QtDateTimeEditFactory(this); d_ptr->m_factoryToType[d_ptr->m_dateTimeEditFactory] = QVariant::DateTime; d_ptr->m_typeToFactory[QVariant::DateTime] = d_ptr->m_dateTimeEditFactory; d_ptr->m_keySequenceEditorFactory = new QtKeySequenceEditorFactory(this); d_ptr->m_factoryToType[d_ptr->m_keySequenceEditorFactory] = QVariant::KeySequence; d_ptr->m_typeToFactory[QVariant::KeySequence] = d_ptr->m_keySequenceEditorFactory; d_ptr->m_charEditorFactory = new QtCharEditorFactory(this); d_ptr->m_factoryToType[d_ptr->m_charEditorFactory] = QVariant::Char; d_ptr->m_typeToFactory[QVariant::Char] = d_ptr->m_charEditorFactory; d_ptr->m_cursorEditorFactory = new QtCursorEditorFactory(this); d_ptr->m_factoryToType[d_ptr->m_cursorEditorFactory] = QVariant::Cursor; d_ptr->m_typeToFactory[QVariant::Cursor] = d_ptr->m_cursorEditorFactory; d_ptr->m_colorEditorFactory = new QtColorEditorFactory(this); d_ptr->m_factoryToType[d_ptr->m_colorEditorFactory] = QVariant::Color; d_ptr->m_typeToFactory[QVariant::Color] = d_ptr->m_colorEditorFactory; d_ptr->m_fontEditorFactory = new QtFontEditorFactory(this); d_ptr->m_factoryToType[d_ptr->m_fontEditorFactory] = QVariant::Font; d_ptr->m_typeToFactory[QVariant::Font] = d_ptr->m_fontEditorFactory; d_ptr->m_comboBoxFactory = new QtEnumEditorFactory(this); const int enumId = QtVariantPropertyManager::enumTypeId(); d_ptr->m_factoryToType[d_ptr->m_comboBoxFactory] = enumId; d_ptr->m_typeToFactory[enumId] = d_ptr->m_comboBoxFactory; } /*! Destroys this factory, and all the widgets it has created. */ QtVariantEditorFactory::~QtVariantEditorFactory() { delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtVariantEditorFactory::connectPropertyManager(QtVariantPropertyManager *manager) { QList intPropertyManagers = qFindChildren(manager); QListIterator itInt(intPropertyManagers); while (itInt.hasNext()) d_ptr->m_spinBoxFactory->addPropertyManager(itInt.next()); QList doublePropertyManagers = qFindChildren(manager); QListIterator itDouble(doublePropertyManagers); while (itDouble.hasNext()) d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itDouble.next()); QList boolPropertyManagers = qFindChildren(manager); QListIterator itBool(boolPropertyManagers); while (itBool.hasNext()) d_ptr->m_checkBoxFactory->addPropertyManager(itBool.next()); QList stringPropertyManagers = qFindChildren(manager); QListIterator itString(stringPropertyManagers); while (itString.hasNext()) d_ptr->m_lineEditFactory->addPropertyManager(itString.next()); QList datePropertyManagers = qFindChildren(manager); QListIterator itDate(datePropertyManagers); while (itDate.hasNext()) d_ptr->m_dateEditFactory->addPropertyManager(itDate.next()); QList timePropertyManagers = qFindChildren(manager); QListIterator itTime(timePropertyManagers); while (itTime.hasNext()) d_ptr->m_timeEditFactory->addPropertyManager(itTime.next()); QList dateTimePropertyManagers = qFindChildren(manager); QListIterator itDateTime(dateTimePropertyManagers); while (itDateTime.hasNext()) d_ptr->m_dateTimeEditFactory->addPropertyManager(itDateTime.next()); QList keySequencePropertyManagers = qFindChildren(manager); QListIterator itKeySequence(keySequencePropertyManagers); while (itKeySequence.hasNext()) d_ptr->m_keySequenceEditorFactory->addPropertyManager(itKeySequence.next()); QList charPropertyManagers = qFindChildren(manager); QListIterator itChar(charPropertyManagers); while (itChar.hasNext()) d_ptr->m_charEditorFactory->addPropertyManager(itChar.next()); QList localePropertyManagers = qFindChildren(manager); QListIterator itLocale(localePropertyManagers); while (itLocale.hasNext()) d_ptr->m_comboBoxFactory->addPropertyManager(itLocale.next()->subEnumPropertyManager()); QList pointPropertyManagers = qFindChildren(manager); QListIterator itPoint(pointPropertyManagers); while (itPoint.hasNext()) d_ptr->m_spinBoxFactory->addPropertyManager(itPoint.next()->subIntPropertyManager()); QList pointFPropertyManagers = qFindChildren(manager); QListIterator itPointF(pointFPropertyManagers); while (itPointF.hasNext()) d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itPointF.next()->subDoublePropertyManager()); QList sizePropertyManagers = qFindChildren(manager); QListIterator itSize(sizePropertyManagers); while (itSize.hasNext()) d_ptr->m_spinBoxFactory->addPropertyManager(itSize.next()->subIntPropertyManager()); QList sizeFPropertyManagers = qFindChildren(manager); QListIterator itSizeF(sizeFPropertyManagers); while (itSizeF.hasNext()) d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itSizeF.next()->subDoublePropertyManager()); QList rectPropertyManagers = qFindChildren(manager); QListIterator itRect(rectPropertyManagers); while (itRect.hasNext()) d_ptr->m_spinBoxFactory->addPropertyManager(itRect.next()->subIntPropertyManager()); QList rectFPropertyManagers = qFindChildren(manager); QListIterator itRectF(rectFPropertyManagers); while (itRectF.hasNext()) d_ptr->m_doubleSpinBoxFactory->addPropertyManager(itRectF.next()->subDoublePropertyManager()); QList colorPropertyManagers = qFindChildren(manager); QListIterator itColor(colorPropertyManagers); while (itColor.hasNext()) { QtColorPropertyManager *manager = itColor.next(); d_ptr->m_colorEditorFactory->addPropertyManager(manager); d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); } QList enumPropertyManagers = qFindChildren(manager); QListIterator itEnum(enumPropertyManagers); while (itEnum.hasNext()) d_ptr->m_comboBoxFactory->addPropertyManager(itEnum.next()); QList sizePolicyPropertyManagers = qFindChildren(manager); QListIterator itSizePolicy(sizePolicyPropertyManagers); while (itSizePolicy.hasNext()) { QtSizePolicyPropertyManager *manager = itSizePolicy.next(); d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager()); } QList fontPropertyManagers = qFindChildren(manager); QListIterator itFont(fontPropertyManagers); while (itFont.hasNext()) { QtFontPropertyManager *manager = itFont.next(); d_ptr->m_fontEditorFactory->addPropertyManager(manager); d_ptr->m_spinBoxFactory->addPropertyManager(manager->subIntPropertyManager()); d_ptr->m_comboBoxFactory->addPropertyManager(manager->subEnumPropertyManager()); d_ptr->m_checkBoxFactory->addPropertyManager(manager->subBoolPropertyManager()); } QList cursorPropertyManagers = qFindChildren(manager); QListIterator itCursor(cursorPropertyManagers); while (itCursor.hasNext()) d_ptr->m_cursorEditorFactory->addPropertyManager(itCursor.next()); QList flagPropertyManagers = qFindChildren(manager); QListIterator itFlag(flagPropertyManagers); while (itFlag.hasNext()) d_ptr->m_checkBoxFactory->addPropertyManager(itFlag.next()->subBoolPropertyManager()); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtVariantEditorFactory::createEditor(QtVariantPropertyManager *manager, QtProperty *property, QWidget *parent) { const int propType = manager->propertyType(property); QtAbstractEditorFactoryBase *factory = d_ptr->m_typeToFactory.value(propType, 0); if (!factory) return 0; return factory->createEditor(wrappedProperty(property), parent); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtVariantEditorFactory::disconnectPropertyManager(QtVariantPropertyManager *manager) { QList intPropertyManagers = qFindChildren(manager); QListIterator itInt(intPropertyManagers); while (itInt.hasNext()) d_ptr->m_spinBoxFactory->removePropertyManager(itInt.next()); QList doublePropertyManagers = qFindChildren(manager); QListIterator itDouble(doublePropertyManagers); while (itDouble.hasNext()) d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itDouble.next()); QList boolPropertyManagers = qFindChildren(manager); QListIterator itBool(boolPropertyManagers); while (itBool.hasNext()) d_ptr->m_checkBoxFactory->removePropertyManager(itBool.next()); QList stringPropertyManagers = qFindChildren(manager); QListIterator itString(stringPropertyManagers); while (itString.hasNext()) d_ptr->m_lineEditFactory->removePropertyManager(itString.next()); QList datePropertyManagers = qFindChildren(manager); QListIterator itDate(datePropertyManagers); while (itDate.hasNext()) d_ptr->m_dateEditFactory->removePropertyManager(itDate.next()); QList timePropertyManagers = qFindChildren(manager); QListIterator itTime(timePropertyManagers); while (itTime.hasNext()) d_ptr->m_timeEditFactory->removePropertyManager(itTime.next()); QList dateTimePropertyManagers = qFindChildren(manager); QListIterator itDateTime(dateTimePropertyManagers); while (itDateTime.hasNext()) d_ptr->m_dateTimeEditFactory->removePropertyManager(itDateTime.next()); QList keySequencePropertyManagers = qFindChildren(manager); QListIterator itKeySequence(keySequencePropertyManagers); while (itKeySequence.hasNext()) d_ptr->m_keySequenceEditorFactory->removePropertyManager(itKeySequence.next()); QList charPropertyManagers = qFindChildren(manager); QListIterator itChar(charPropertyManagers); while (itChar.hasNext()) d_ptr->m_charEditorFactory->removePropertyManager(itChar.next()); QList localePropertyManagers = qFindChildren(manager); QListIterator itLocale(localePropertyManagers); while (itLocale.hasNext()) d_ptr->m_comboBoxFactory->removePropertyManager(itLocale.next()->subEnumPropertyManager()); QList pointPropertyManagers = qFindChildren(manager); QListIterator itPoint(pointPropertyManagers); while (itPoint.hasNext()) d_ptr->m_spinBoxFactory->removePropertyManager(itPoint.next()->subIntPropertyManager()); QList pointFPropertyManagers = qFindChildren(manager); QListIterator itPointF(pointFPropertyManagers); while (itPointF.hasNext()) d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itPointF.next()->subDoublePropertyManager()); QList sizePropertyManagers = qFindChildren(manager); QListIterator itSize(sizePropertyManagers); while (itSize.hasNext()) d_ptr->m_spinBoxFactory->removePropertyManager(itSize.next()->subIntPropertyManager()); QList sizeFPropertyManagers = qFindChildren(manager); QListIterator itSizeF(sizeFPropertyManagers); while (itSizeF.hasNext()) d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itSizeF.next()->subDoublePropertyManager()); QList rectPropertyManagers = qFindChildren(manager); QListIterator itRect(rectPropertyManagers); while (itRect.hasNext()) d_ptr->m_spinBoxFactory->removePropertyManager(itRect.next()->subIntPropertyManager()); QList rectFPropertyManagers = qFindChildren(manager); QListIterator itRectF(rectFPropertyManagers); while (itRectF.hasNext()) d_ptr->m_doubleSpinBoxFactory->removePropertyManager(itRectF.next()->subDoublePropertyManager()); QList colorPropertyManagers = qFindChildren(manager); QListIterator itColor(colorPropertyManagers); while (itColor.hasNext()) { QtColorPropertyManager *manager = itColor.next(); d_ptr->m_colorEditorFactory->removePropertyManager(manager); d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); } QList enumPropertyManagers = qFindChildren(manager); QListIterator itEnum(enumPropertyManagers); while (itEnum.hasNext()) d_ptr->m_comboBoxFactory->removePropertyManager(itEnum.next()); QList sizePolicyPropertyManagers = qFindChildren(manager); QListIterator itSizePolicy(sizePolicyPropertyManagers); while (itSizePolicy.hasNext()) { QtSizePolicyPropertyManager *manager = itSizePolicy.next(); d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager()); } QList fontPropertyManagers = qFindChildren(manager); QListIterator itFont(fontPropertyManagers); while (itFont.hasNext()) { QtFontPropertyManager *manager = itFont.next(); d_ptr->m_fontEditorFactory->removePropertyManager(manager); d_ptr->m_spinBoxFactory->removePropertyManager(manager->subIntPropertyManager()); d_ptr->m_comboBoxFactory->removePropertyManager(manager->subEnumPropertyManager()); d_ptr->m_checkBoxFactory->removePropertyManager(manager->subBoolPropertyManager()); } QList cursorPropertyManagers = qFindChildren(manager); QListIterator itCursor(cursorPropertyManagers); while (itCursor.hasNext()) d_ptr->m_cursorEditorFactory->removePropertyManager(itCursor.next()); QList flagPropertyManagers = qFindChildren(manager); QListIterator itFlag(flagPropertyManagers); while (itFlag.hasNext()) d_ptr->m_checkBoxFactory->removePropertyManager(itFlag.next()->subBoolPropertyManager()); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qtvariantproperty.cpp" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDateTimeEditFactory000644 001750 001750 00000000035 11617757645 030760 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtSizePolicyPropertyManager000644 001750 001750 00000000037 11617757645 032262 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtBoolPropertyManager000644 001750 001750 00000000037 11617757645 031063 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtTimeEditFactory000644 001750 001750 00000000035 11617757645 030162 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtAbstractEditorFactoryBase000644 001750 001750 00000000037 11617757645 032165 0ustar00simonesimone000000 000000 #include "qtpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtLocalePropertyManager000644 001750 001750 00000000037 11617757645 031367 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtPointFPropertyManager000644 001750 001750 00000000037 11617757645 031367 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtEnumEditorFactory000644 001750 001750 00000000035 11617757645 030531 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qteditorfactory.h000644 001750 001750 00000043442 11617757645 030303 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTEDITORFACTORY_H #define QTEDITORFACTORY_H #include "qtpropertymanager.h" #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtSpinBoxFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtSpinBoxFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtSpinBoxFactory(QObject *parent = 0); ~QtSpinBoxFactory(); protected: void connectPropertyManager(QtIntPropertyManager *manager); QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtIntPropertyManager *manager); private: QtSpinBoxFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtSpinBoxFactory) Q_DISABLE_COPY(QtSpinBoxFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtSliderFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtSliderFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtSliderFactory(QObject *parent = 0); ~QtSliderFactory(); protected: void connectPropertyManager(QtIntPropertyManager *manager); QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtIntPropertyManager *manager); private: QtSliderFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtSliderFactory) Q_DISABLE_COPY(QtSliderFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtScrollBarFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtScrollBarFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtScrollBarFactory(QObject *parent = 0); ~QtScrollBarFactory(); protected: void connectPropertyManager(QtIntPropertyManager *manager); QWidget *createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtIntPropertyManager *manager); private: QtScrollBarFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtScrollBarFactory) Q_DISABLE_COPY(QtScrollBarFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtCheckBoxFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtCheckBoxFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtCheckBoxFactory(QObject *parent = 0); ~QtCheckBoxFactory(); protected: void connectPropertyManager(QtBoolPropertyManager *manager); QWidget *createEditor(QtBoolPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtBoolPropertyManager *manager); private: QtCheckBoxFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtCheckBoxFactory) Q_DISABLE_COPY(QtCheckBoxFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, bool)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(bool)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtDoubleSpinBoxFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDoubleSpinBoxFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtDoubleSpinBoxFactory(QObject *parent = 0); ~QtDoubleSpinBoxFactory(); protected: void connectPropertyManager(QtDoublePropertyManager *manager); QWidget *createEditor(QtDoublePropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtDoublePropertyManager *manager); private: QtDoubleSpinBoxFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDoubleSpinBoxFactory) Q_DISABLE_COPY(QtDoubleSpinBoxFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, double, double)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotDecimalsChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(double)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtLineEditFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtLineEditFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtLineEditFactory(QObject *parent = 0); ~QtLineEditFactory(); protected: void connectPropertyManager(QtStringPropertyManager *manager); QWidget *createEditor(QtStringPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtStringPropertyManager *manager); private: QtLineEditFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtLineEditFactory) Q_DISABLE_COPY(QtLineEditFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QString &)) Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegExp &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QString &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtDateEditFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDateEditFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtDateEditFactory(QObject *parent = 0); ~QtDateEditFactory(); protected: void connectPropertyManager(QtDatePropertyManager *manager); QWidget *createEditor(QtDatePropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtDatePropertyManager *manager); private: QtDateEditFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDateEditFactory) Q_DISABLE_COPY(QtDateEditFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QDate &)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QDate &, const QDate &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QDate &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtTimeEditFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtTimeEditFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtTimeEditFactory(QObject *parent = 0); ~QtTimeEditFactory(); protected: void connectPropertyManager(QtTimePropertyManager *manager); QWidget *createEditor(QtTimePropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtTimePropertyManager *manager); private: QtTimeEditFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtTimeEditFactory) Q_DISABLE_COPY(QtTimeEditFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QTime &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QTime &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtDateTimeEditFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDateTimeEditFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtDateTimeEditFactory(QObject *parent = 0); ~QtDateTimeEditFactory(); protected: void connectPropertyManager(QtDateTimePropertyManager *manager); QWidget *createEditor(QtDateTimePropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtDateTimePropertyManager *manager); private: QtDateTimeEditFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDateTimeEditFactory) Q_DISABLE_COPY(QtDateTimeEditFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QDateTime &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QDateTime &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtKeySequenceEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtKeySequenceEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtKeySequenceEditorFactory(QObject *parent = 0); ~QtKeySequenceEditorFactory(); protected: void connectPropertyManager(QtKeySequencePropertyManager *manager); QWidget *createEditor(QtKeySequencePropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtKeySequencePropertyManager *manager); private: QtKeySequenceEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtKeySequenceEditorFactory) Q_DISABLE_COPY(QtKeySequenceEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QKeySequence &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QKeySequence &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtCharEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtCharEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtCharEditorFactory(QObject *parent = 0); ~QtCharEditorFactory(); protected: void connectPropertyManager(QtCharPropertyManager *manager); QWidget *createEditor(QtCharPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtCharPropertyManager *manager); private: QtCharEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtCharEditorFactory) Q_DISABLE_COPY(QtCharEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QChar &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QChar &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtEnumEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtEnumEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtEnumEditorFactory(QObject *parent = 0); ~QtEnumEditorFactory(); protected: void connectPropertyManager(QtEnumPropertyManager *manager); QWidget *createEditor(QtEnumPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtEnumPropertyManager *manager); private: QtEnumEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtEnumEditorFactory) Q_DISABLE_COPY(QtEnumEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *, const QStringList &)) Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *, const QMap &)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtCursorEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtCursorEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtCursorEditorFactory(QObject *parent = 0); ~QtCursorEditorFactory(); protected: void connectPropertyManager(QtCursorPropertyManager *manager); QWidget *createEditor(QtCursorPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtCursorPropertyManager *manager); private: QtCursorEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtCursorEditorFactory) Q_DISABLE_COPY(QtCursorEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QCursor &)) Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) }; class QtColorEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtColorEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtColorEditorFactory(QObject *parent = 0); ~QtColorEditorFactory(); protected: void connectPropertyManager(QtColorPropertyManager *manager); QWidget *createEditor(QtColorPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtColorPropertyManager *manager); private: QtColorEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtColorEditorFactory) Q_DISABLE_COPY(QtColorEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QColor &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QColor &)) }; class QtFontEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtFontEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtFontEditorFactory(QObject *parent = 0); ~QtFontEditorFactory(); protected: void connectPropertyManager(QtFontPropertyManager *manager); QWidget *createEditor(QtFontPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtFontPropertyManager *manager); private: QtFontEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtFontEditorFactory) Q_DISABLE_COPY(QtFontEditorFactory) Q_PRIVATE_SLOT(d_func(), void slotPropertyChanged(QtProperty *, const QFont &)) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed(QObject *)) Q_PRIVATE_SLOT(d_func(), void slotSetValue(const QFont &)) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtEnumPropertyManager000644 001750 001750 00000000037 11617757645 031074 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDoubleSpinBoxFactory000644 001750 001750 00000000035 11617757645 031173 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtFontEditorFactory000644 001750 001750 00000000035 11617757645 030533 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertymanager.h000644 001750 001750 00000070520 11617757645 030641 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTPROPERTYMANAGER_H #define QTPROPERTYMANAGER_H #include "qtpropertybrowser.h" #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QDate; class QTime; class QDateTime; class QLocale; class QT_QTPROPERTYBROWSER_EXPORT QtGroupPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtGroupPropertyManager(QObject *parent = 0); ~QtGroupPropertyManager(); protected: virtual bool hasValue(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); }; class QtIntPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtIntPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtIntPropertyManager(QObject *parent = 0); ~QtIntPropertyManager(); int value(const QtProperty *property) const; int minimum(const QtProperty *property) const; int maximum(const QtProperty *property) const; int singleStep(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, int val); void setMinimum(QtProperty *property, int minVal); void setMaximum(QtProperty *property, int maxVal); void setRange(QtProperty *property, int minVal, int maxVal); void setSingleStep(QtProperty *property, int step); Q_SIGNALS: void valueChanged(QtProperty *property, int val); void rangeChanged(QtProperty *property, int minVal, int maxVal); void singleStepChanged(QtProperty *property, int step); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtIntPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtIntPropertyManager) Q_DISABLE_COPY(QtIntPropertyManager) }; class QtBoolPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtBoolPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtBoolPropertyManager(QObject *parent = 0); ~QtBoolPropertyManager(); bool value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, bool val); Q_SIGNALS: void valueChanged(QtProperty *property, bool val); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtBoolPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtBoolPropertyManager) Q_DISABLE_COPY(QtBoolPropertyManager) }; class QtDoublePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDoublePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtDoublePropertyManager(QObject *parent = 0); ~QtDoublePropertyManager(); double value(const QtProperty *property) const; double minimum(const QtProperty *property) const; double maximum(const QtProperty *property) const; double singleStep(const QtProperty *property) const; int decimals(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, double val); void setMinimum(QtProperty *property, double minVal); void setMaximum(QtProperty *property, double maxVal); void setRange(QtProperty *property, double minVal, double maxVal); void setSingleStep(QtProperty *property, double step); void setDecimals(QtProperty *property, int prec); Q_SIGNALS: void valueChanged(QtProperty *property, double val); void rangeChanged(QtProperty *property, double minVal, double maxVal); void singleStepChanged(QtProperty *property, double step); void decimalsChanged(QtProperty *property, int prec); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtDoublePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDoublePropertyManager) Q_DISABLE_COPY(QtDoublePropertyManager) }; class QtStringPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtStringPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtStringPropertyManager(QObject *parent = 0); ~QtStringPropertyManager(); QString value(const QtProperty *property) const; QRegExp regExp(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QString &val); void setRegExp(QtProperty *property, const QRegExp ®Exp); Q_SIGNALS: void valueChanged(QtProperty *property, const QString &val); void regExpChanged(QtProperty *property, const QRegExp ®Exp); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtStringPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtStringPropertyManager) Q_DISABLE_COPY(QtStringPropertyManager) }; class QtDatePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDatePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtDatePropertyManager(QObject *parent = 0); ~QtDatePropertyManager(); QDate value(const QtProperty *property) const; QDate minimum(const QtProperty *property) const; QDate maximum(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QDate &val); void setMinimum(QtProperty *property, const QDate &minVal); void setMaximum(QtProperty *property, const QDate &maxVal); void setRange(QtProperty *property, const QDate &minVal, const QDate &maxVal); Q_SIGNALS: void valueChanged(QtProperty *property, const QDate &val); void rangeChanged(QtProperty *property, const QDate &minVal, const QDate &maxVal); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtDatePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDatePropertyManager) Q_DISABLE_COPY(QtDatePropertyManager) }; class QtTimePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtTimePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtTimePropertyManager(QObject *parent = 0); ~QtTimePropertyManager(); QTime value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QTime &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QTime &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtTimePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtTimePropertyManager) Q_DISABLE_COPY(QtTimePropertyManager) }; class QtDateTimePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtDateTimePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtDateTimePropertyManager(QObject *parent = 0); ~QtDateTimePropertyManager(); QDateTime value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QDateTime &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QDateTime &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtDateTimePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtDateTimePropertyManager) Q_DISABLE_COPY(QtDateTimePropertyManager) }; class QtKeySequencePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtKeySequencePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtKeySequencePropertyManager(QObject *parent = 0); ~QtKeySequencePropertyManager(); QKeySequence value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QKeySequence &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QKeySequence &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtKeySequencePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtKeySequencePropertyManager) Q_DISABLE_COPY(QtKeySequencePropertyManager) }; class QtCharPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtCharPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtCharPropertyManager(QObject *parent = 0); ~QtCharPropertyManager(); QChar value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QChar &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QChar &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtCharPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtCharPropertyManager) Q_DISABLE_COPY(QtCharPropertyManager) }; class QtEnumPropertyManager; class QtLocalePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtLocalePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtLocalePropertyManager(QObject *parent = 0); ~QtLocalePropertyManager(); QtEnumPropertyManager *subEnumPropertyManager() const; QLocale value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QLocale &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QLocale &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtLocalePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtLocalePropertyManager) Q_DISABLE_COPY(QtLocalePropertyManager) Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtPointPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtPointPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtPointPropertyManager(QObject *parent = 0); ~QtPointPropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QPoint value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QPoint &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QPoint &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtPointPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtPointPropertyManager) Q_DISABLE_COPY(QtPointPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtPointFPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtPointFPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtPointFPropertyManager(QObject *parent = 0); ~QtPointFPropertyManager(); QtDoublePropertyManager *subDoublePropertyManager() const; QPointF value(const QtProperty *property) const; int decimals(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QPointF &val); void setDecimals(QtProperty *property, int prec); Q_SIGNALS: void valueChanged(QtProperty *property, const QPointF &val); void decimalsChanged(QtProperty *property, int prec); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtPointFPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtPointFPropertyManager) Q_DISABLE_COPY(QtPointFPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtSizePropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtSizePropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtSizePropertyManager(QObject *parent = 0); ~QtSizePropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QSize value(const QtProperty *property) const; QSize minimum(const QtProperty *property) const; QSize maximum(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QSize &val); void setMinimum(QtProperty *property, const QSize &minVal); void setMaximum(QtProperty *property, const QSize &maxVal); void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal); Q_SIGNALS: void valueChanged(QtProperty *property, const QSize &val); void rangeChanged(QtProperty *property, const QSize &minVal, const QSize &maxVal); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtSizePropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtSizePropertyManager) Q_DISABLE_COPY(QtSizePropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtSizeFPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtSizeFPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtSizeFPropertyManager(QObject *parent = 0); ~QtSizeFPropertyManager(); QtDoublePropertyManager *subDoublePropertyManager() const; QSizeF value(const QtProperty *property) const; QSizeF minimum(const QtProperty *property) const; QSizeF maximum(const QtProperty *property) const; int decimals(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QSizeF &val); void setMinimum(QtProperty *property, const QSizeF &minVal); void setMaximum(QtProperty *property, const QSizeF &maxVal); void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal); void setDecimals(QtProperty *property, int prec); Q_SIGNALS: void valueChanged(QtProperty *property, const QSizeF &val); void rangeChanged(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal); void decimalsChanged(QtProperty *property, int prec); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtSizeFPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtSizeFPropertyManager) Q_DISABLE_COPY(QtSizeFPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtRectPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtRectPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtRectPropertyManager(QObject *parent = 0); ~QtRectPropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QRect value(const QtProperty *property) const; QRect constraint(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QRect &val); void setConstraint(QtProperty *property, const QRect &constraint); Q_SIGNALS: void valueChanged(QtProperty *property, const QRect &val); void constraintChanged(QtProperty *property, const QRect &constraint); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtRectPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtRectPropertyManager) Q_DISABLE_COPY(QtRectPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtRectFPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtRectFPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtRectFPropertyManager(QObject *parent = 0); ~QtRectFPropertyManager(); QtDoublePropertyManager *subDoublePropertyManager() const; QRectF value(const QtProperty *property) const; QRectF constraint(const QtProperty *property) const; int decimals(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QRectF &val); void setConstraint(QtProperty *property, const QRectF &constraint); void setDecimals(QtProperty *property, int prec); Q_SIGNALS: void valueChanged(QtProperty *property, const QRectF &val); void constraintChanged(QtProperty *property, const QRectF &constraint); void decimalsChanged(QtProperty *property, int prec); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtRectFPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtRectFPropertyManager) Q_DISABLE_COPY(QtRectFPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotDoubleChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtEnumPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtEnumPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtEnumPropertyManager(QObject *parent = 0); ~QtEnumPropertyManager(); int value(const QtProperty *property) const; QStringList enumNames(const QtProperty *property) const; QMap enumIcons(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, int val); void setEnumNames(QtProperty *property, const QStringList &names); void setEnumIcons(QtProperty *property, const QMap &icons); Q_SIGNALS: void valueChanged(QtProperty *property, int val); void enumNamesChanged(QtProperty *property, const QStringList &names); void enumIconsChanged(QtProperty *property, const QMap &icons); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtEnumPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtEnumPropertyManager) Q_DISABLE_COPY(QtEnumPropertyManager) }; class QtFlagPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtFlagPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtFlagPropertyManager(QObject *parent = 0); ~QtFlagPropertyManager(); QtBoolPropertyManager *subBoolPropertyManager() const; int value(const QtProperty *property) const; QStringList flagNames(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, int val); void setFlagNames(QtProperty *property, const QStringList &names); Q_SIGNALS: void valueChanged(QtProperty *property, int val); void flagNamesChanged(QtProperty *property, const QStringList &names); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtFlagPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtFlagPropertyManager) Q_DISABLE_COPY(QtFlagPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtSizePolicyPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtSizePolicyPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtSizePolicyPropertyManager(QObject *parent = 0); ~QtSizePolicyPropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QtEnumPropertyManager *subEnumPropertyManager() const; QSizePolicy value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QSizePolicy &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QSizePolicy &val); protected: QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtSizePolicyPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtSizePolicyPropertyManager) Q_DISABLE_COPY(QtSizePolicyPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtFontPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtFontPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtFontPropertyManager(QObject *parent = 0); ~QtFontPropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QtEnumPropertyManager *subEnumPropertyManager() const; QtBoolPropertyManager *subBoolPropertyManager() const; QFont value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QFont &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QFont &val); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtFontPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtFontPropertyManager) Q_DISABLE_COPY(QtFontPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotEnumChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotBoolChanged(QtProperty *, bool)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseChanged()) Q_PRIVATE_SLOT(d_func(), void slotFontDatabaseDelayedChange()) }; class QtColorPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtColorPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtColorPropertyManager(QObject *parent = 0); ~QtColorPropertyManager(); QtIntPropertyManager *subIntPropertyManager() const; QColor value(const QtProperty *property) const; public Q_SLOTS: void setValue(QtProperty *property, const QColor &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QColor &val); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtColorPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtColorPropertyManager) Q_DISABLE_COPY(QtColorPropertyManager) Q_PRIVATE_SLOT(d_func(), void slotIntChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) }; class QtCursorPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtCursorPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtCursorPropertyManager(QObject *parent = 0); ~QtCursorPropertyManager(); #ifndef QT_NO_CURSOR QCursor value(const QtProperty *property) const; #endif public Q_SLOTS: void setValue(QtProperty *property, const QCursor &val); Q_SIGNALS: void valueChanged(QtProperty *property, const QCursor &val); protected: QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); private: QtCursorPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtCursorPropertyManager) Q_DISABLE_COPY(QtCursorPropertyManager) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtStringPropertyManager000644 001750 001750 00000000037 11617757645 031436 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtFontPropertyManager000644 001750 001750 00000000037 11617757645 031076 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtTreePropertyBrowser000644 001750 001750 00000000043 11617757645 031135 0ustar00simonesimone000000 000000 #include "qttreepropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtbuttonpropertybrowser.h000644 001750 001750 00000012331 11617757645 032142 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTBUTTONPROPERTYBROWSER_H #define QTBUTTONPROPERTYBROWSER_H #include "qtpropertybrowser.h" #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtButtonPropertyBrowserPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtButtonPropertyBrowser : public QtAbstractPropertyBrowser { Q_OBJECT public: QtButtonPropertyBrowser(QWidget *parent = 0); ~QtButtonPropertyBrowser(); void setExpanded(QtBrowserItem *item, bool expanded); bool isExpanded(QtBrowserItem *item) const; Q_SIGNALS: void collapsed(QtBrowserItem *item); void expanded(QtBrowserItem *item); protected: virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem); virtual void itemRemoved(QtBrowserItem *item); virtual void itemChanged(QtBrowserItem *item); private: QtButtonPropertyBrowserPrivate *d_ptr; Q_DECLARE_PRIVATE(QtButtonPropertyBrowser) Q_DISABLE_COPY(QtButtonPropertyBrowser) Q_PRIVATE_SLOT(d_func(), void slotUpdate()) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed()) Q_PRIVATE_SLOT(d_func(), void slotToggled(bool)) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtCursorEditorFactory000644 001750 001750 00000000035 11617757645 031102 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDatePropertyManager000644 001750 001750 00000000037 11617757645 031045 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtCharPropertyManager000644 001750 001750 00000000037 11617757645 031045 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.h000644 001750 001750 00000032045 11617757645 030712 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTPROPERTYBROWSER_H #define QTPROPERTYBROWSER_H #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif #if defined(Q_WS_WIN) # if !defined(QT_QTPROPERTYBROWSER_EXPORT) && !defined(QT_QTPROPERTYBROWSER_IMPORT) # define QT_QTPROPERTYBROWSER_EXPORT # elif defined(QT_QTPROPERTYBROWSER_IMPORT) # if defined(QT_QTPROPERTYBROWSER_EXPORT) # undef QT_QTPROPERTYBROWSER_EXPORT # endif # define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllimport) # elif defined(QT_QTPROPERTYBROWSER_EXPORT) # undef QT_QTPROPERTYBROWSER_EXPORT # define QT_QTPROPERTYBROWSER_EXPORT __declspec(dllexport) # endif #else # define QT_QTPROPERTYBROWSER_EXPORT #endif class QtAbstractPropertyManager; class QtPropertyPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtProperty { public: virtual ~QtProperty(); QList subProperties() const; QtAbstractPropertyManager *propertyManager() const; QString toolTip() const; QString statusTip() const; QString whatsThis() const; QString propertyName() const; bool isEnabled() const; bool isModified() const; bool hasValue() const; QIcon valueIcon() const; QString valueText() const; void setToolTip(const QString &text); void setStatusTip(const QString &text); void setWhatsThis(const QString &text); void setPropertyName(const QString &text); void setEnabled(bool enable); void setModified(bool modified); void addSubProperty(QtProperty *property); void insertSubProperty(QtProperty *property, QtProperty *afterProperty); void removeSubProperty(QtProperty *property); protected: explicit QtProperty(QtAbstractPropertyManager *manager); void propertyChanged(); private: friend class QtAbstractPropertyManager; QtPropertyPrivate *d_ptr; }; class QtAbstractPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtAbstractPropertyManager : public QObject { Q_OBJECT public: explicit QtAbstractPropertyManager(QObject *parent = 0); ~QtAbstractPropertyManager(); QSet properties() const; void clear() const; QtProperty *addProperty(const QString &name = QString()); Q_SIGNALS: void propertyInserted(QtProperty *property, QtProperty *parent, QtProperty *after); void propertyChanged(QtProperty *property); void propertyRemoved(QtProperty *property, QtProperty *parent); void propertyDestroyed(QtProperty *property); protected: virtual bool hasValue(const QtProperty *property) const; virtual QIcon valueIcon(const QtProperty *property) const; virtual QString valueText(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property) = 0; virtual void uninitializeProperty(QtProperty *property); virtual QtProperty *createProperty(); private: friend class QtProperty; QtAbstractPropertyManagerPrivate *d_ptr; Q_DECLARE_PRIVATE(QtAbstractPropertyManager) Q_DISABLE_COPY(QtAbstractPropertyManager) }; class QT_QTPROPERTYBROWSER_EXPORT QtAbstractEditorFactoryBase : public QObject { Q_OBJECT public: virtual QWidget *createEditor(QtProperty *property, QWidget *parent) = 0; protected: explicit QtAbstractEditorFactoryBase(QObject *parent = 0) : QObject(parent) {} virtual void breakConnection(QtAbstractPropertyManager *manager) = 0; protected Q_SLOTS: virtual void managerDestroyed(QObject *manager) = 0; friend class QtAbstractPropertyBrowser; }; template class QtAbstractEditorFactory : public QtAbstractEditorFactoryBase { public: explicit QtAbstractEditorFactory(QObject *parent) : QtAbstractEditorFactoryBase(parent) {} QWidget *createEditor(QtProperty *property, QWidget *parent) { QSetIterator it(m_managers); while (it.hasNext()) { PropertyManager *manager = it.next(); if (manager == property->propertyManager()) { return createEditor(manager, property, parent); } } return 0; } void addPropertyManager(PropertyManager *manager) { if (m_managers.contains(manager)) return; m_managers.insert(manager); connectPropertyManager(manager); connect(manager, SIGNAL(destroyed(QObject *)), this, SLOT(managerDestroyed(QObject *))); } void removePropertyManager(PropertyManager *manager) { if (!m_managers.contains(manager)) return; disconnect(manager, SIGNAL(destroyed(QObject *)), this, SLOT(managerDestroyed(QObject *))); disconnectPropertyManager(manager); m_managers.remove(manager); } QSet propertyManagers() const { return m_managers; } PropertyManager *propertyManager(QtProperty *property) const { QtAbstractPropertyManager *manager = property->propertyManager(); QSetIterator itManager(m_managers); while (itManager.hasNext()) { PropertyManager *m = itManager.next(); if (m == manager) { return m; } } return 0; } protected: virtual void connectPropertyManager(PropertyManager *manager) = 0; virtual QWidget *createEditor(PropertyManager *manager, QtProperty *property, QWidget *parent) = 0; virtual void disconnectPropertyManager(PropertyManager *manager) = 0; void managerDestroyed(QObject *manager) { QSetIterator it(m_managers); while (it.hasNext()) { PropertyManager *m = it.next(); if (m == manager) { m_managers.remove(m); return; } } } private: void breakConnection(QtAbstractPropertyManager *manager) { QSetIterator it(m_managers); while (it.hasNext()) { PropertyManager *m = it.next(); if (m == manager) { removePropertyManager(m); return; } } } private: QSet m_managers; friend class QtAbstractPropertyEditor; }; class QtAbstractPropertyBrowser; class QtBrowserItemPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtBrowserItem { public: QtProperty *property() const; QtBrowserItem *parent() const; QList children() const; QtAbstractPropertyBrowser *browser() const; private: explicit QtBrowserItem(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent); ~QtBrowserItem(); QtBrowserItemPrivate *d_ptr; friend class QtAbstractPropertyBrowserPrivate; }; class QtAbstractPropertyBrowserPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtAbstractPropertyBrowser : public QWidget { Q_OBJECT public: explicit QtAbstractPropertyBrowser(QWidget *parent = 0); ~QtAbstractPropertyBrowser(); QList properties() const; QList items(QtProperty *property) const; QtBrowserItem *topLevelItem(QtProperty *property) const; QList topLevelItems() const; void clear(); template void setFactoryForManager(PropertyManager *manager, QtAbstractEditorFactory *factory) { QtAbstractPropertyManager *abstractManager = manager; QtAbstractEditorFactoryBase *abstractFactory = factory; if (addFactory(abstractManager, abstractFactory)) factory->addPropertyManager(manager); } void unsetFactoryForManager(QtAbstractPropertyManager *manager); QtBrowserItem *currentItem() const; void setCurrentItem(QtBrowserItem *); Q_SIGNALS: void currentItemChanged(QtBrowserItem *); public Q_SLOTS: QtBrowserItem *addProperty(QtProperty *property); QtBrowserItem *insertProperty(QtProperty *property, QtProperty *afterProperty); void removeProperty(QtProperty *property); protected: virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) = 0; virtual void itemRemoved(QtBrowserItem *item) = 0; // can be tooltip, statustip, whatsthis, name, icon, text. virtual void itemChanged(QtBrowserItem *item) = 0; virtual QWidget *createEditor(QtProperty *property, QWidget *parent); private: bool addFactory(QtAbstractPropertyManager *abstractManager, QtAbstractEditorFactoryBase *abstractFactory); QtAbstractPropertyBrowserPrivate *d_ptr; Q_DECLARE_PRIVATE(QtAbstractPropertyBrowser) Q_DISABLE_COPY(QtAbstractPropertyBrowser) Q_PRIVATE_SLOT(d_func(), void slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *)) Q_PRIVATE_SLOT(d_func(), void slotPropertyRemoved(QtProperty *, QtProperty *)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDestroyed(QtProperty *)) Q_PRIVATE_SLOT(d_func(), void slotPropertyDataChanged(QtProperty *)) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif // QTPROPERTYBROWSER_H QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtCheckBoxFactory000644 001750 001750 00000000035 11617757645 030144 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtPointPropertyManager000644 001750 001750 00000000037 11617757645 031261 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDateTimePropertyManager000644 001750 001750 00000000037 11617757645 031664 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtTimePropertyManager000644 001750 001750 00000000037 11617757645 031066 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtvariantproperty.h000644 001750 001750 00000025010 11617757645 030665 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTVARIANTPROPERTY_H #define QTVARIANTPROPERTY_H #include "qtpropertybrowser.h" #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif typedef QMap QtIconMap; class QtVariantPropertyManager; class QtVariantPropertyPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtVariantProperty : public QtProperty { public: ~QtVariantProperty(); QVariant value() const; QVariant attributeValue(const QString &attribute) const; int valueType() const; int propertyType() const; void setValue(const QVariant &value); void setAttribute(const QString &attribute, const QVariant &value); protected: QtVariantProperty(QtVariantPropertyManager *manager); private: friend class QtVariantPropertyManager; QtVariantPropertyPrivate *d_ptr; }; class QtVariantPropertyManagerPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtVariantPropertyManager : public QtAbstractPropertyManager { Q_OBJECT public: QtVariantPropertyManager(QObject *parent = 0); ~QtVariantPropertyManager(); virtual QtVariantProperty *addProperty(int propertyType, const QString &name = QString()); int propertyType(const QtProperty *property) const; int valueType(const QtProperty *property) const; QtVariantProperty *variantProperty(const QtProperty *property) const; virtual bool isPropertyTypeSupported(int propertyType) const; virtual int valueType(int propertyType) const; virtual QStringList attributes(int propertyType) const; virtual int attributeType(int propertyType, const QString &attribute) const; virtual QVariant value(const QtProperty *property) const; virtual QVariant attributeValue(const QtProperty *property, const QString &attribute) const; static int enumTypeId(); static int flagTypeId(); static int groupTypeId(); static int iconMapTypeId(); public Q_SLOTS: virtual void setValue(QtProperty *property, const QVariant &val); virtual void setAttribute(QtProperty *property, const QString &attribute, const QVariant &value); Q_SIGNALS: void valueChanged(QtProperty *property, const QVariant &val); void attributeChanged(QtProperty *property, const QString &attribute, const QVariant &val); protected: virtual bool hasValue(const QtProperty *property) const; QString valueText(const QtProperty *property) const; QIcon valueIcon(const QtProperty *property) const; virtual void initializeProperty(QtProperty *property); virtual void uninitializeProperty(QtProperty *property); virtual QtProperty *createProperty(); private: QtVariantPropertyManagerPrivate *d_ptr; Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, int, int)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, double, double)) Q_PRIVATE_SLOT(d_func(), void slotSingleStepChanged(QtProperty *, double)) Q_PRIVATE_SLOT(d_func(), void slotDecimalsChanged(QtProperty *, int)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, bool)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QString &)) Q_PRIVATE_SLOT(d_func(), void slotRegExpChanged(QtProperty *, const QRegExp &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QDate &)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QDate &, const QDate &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QTime &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QDateTime &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QKeySequence &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QChar &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QLocale &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QPoint &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QPointF &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSize &)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QSize &, const QSize &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSizeF &)) Q_PRIVATE_SLOT(d_func(), void slotRangeChanged(QtProperty *, const QSizeF &, const QSizeF &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QRect &)) Q_PRIVATE_SLOT(d_func(), void slotConstraintChanged(QtProperty *, const QRect &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QRectF &)) Q_PRIVATE_SLOT(d_func(), void slotConstraintChanged(QtProperty *, const QRectF &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QColor &)) Q_PRIVATE_SLOT(d_func(), void slotEnumNamesChanged(QtProperty *, const QStringList &)) Q_PRIVATE_SLOT(d_func(), void slotEnumIconsChanged(QtProperty *, const QMap &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QSizePolicy &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QFont &)) Q_PRIVATE_SLOT(d_func(), void slotValueChanged(QtProperty *, const QCursor &)) Q_PRIVATE_SLOT(d_func(), void slotFlagNamesChanged(QtProperty *, const QStringList &)) Q_PRIVATE_SLOT(d_func(), void slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *)) Q_PRIVATE_SLOT(d_func(), void slotPropertyRemoved(QtProperty *, QtProperty *)) Q_DECLARE_PRIVATE(QtVariantPropertyManager) Q_DISABLE_COPY(QtVariantPropertyManager) }; class QtVariantEditorFactoryPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtVariantEditorFactory : public QtAbstractEditorFactory { Q_OBJECT public: QtVariantEditorFactory(QObject *parent = 0); ~QtVariantEditorFactory(); protected: void connectPropertyManager(QtVariantPropertyManager *manager); QWidget *createEditor(QtVariantPropertyManager *manager, QtProperty *property, QWidget *parent); void disconnectPropertyManager(QtVariantPropertyManager *manager); private: QtVariantEditorFactoryPrivate *d_ptr; Q_DECLARE_PRIVATE(QtVariantEditorFactory) Q_DISABLE_COPY(QtVariantEditorFactory) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif Q_DECLARE_METATYPE(QIcon) Q_DECLARE_METATYPE(QtIconMap) #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qteditorfactory.cpp000644 001750 001750 00000237421 11617757645 030640 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qteditorfactory.h" #include "qtpropertybrowserutils_p.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(Q_CC_MSVC) # pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ #endif #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif // Set a hard coded left margin to account for the indentation // of the tree view icon when switching to an editor static inline void setupTreeViewEditorMargin(QLayout *lt) { enum { DecorationMargin = 4 }; if (QApplication::layoutDirection() == Qt::LeftToRight) lt->setContentsMargins(DecorationMargin, 0, 0, 0); else lt->setContentsMargins(0, 0, DecorationMargin, 0); } // ---------- EditorFactoryPrivate : // Base class for editor factory private classes. Manages mapping of properties to editors and vice versa. template class EditorFactoryPrivate { public: typedef QList EditorList; typedef QMap PropertyToEditorListMap; typedef QMap EditorToPropertyMap; Editor *createEditor(QtProperty *property, QWidget *parent); void initializeEditor(QtProperty *property, Editor *e); void slotEditorDestroyed(QObject *object); PropertyToEditorListMap m_createdEditors; EditorToPropertyMap m_editorToProperty; }; template Editor *EditorFactoryPrivate::createEditor(QtProperty *property, QWidget *parent) { Editor *editor = new Editor(parent); initializeEditor(property, editor); return editor; } template void EditorFactoryPrivate::initializeEditor(QtProperty *property, Editor *editor) { Q_TYPENAME PropertyToEditorListMap::iterator it = m_createdEditors.find(property); if (it == m_createdEditors.end()) it = m_createdEditors.insert(property, EditorList()); it.value().append(editor); m_editorToProperty.insert(editor, property); } template void EditorFactoryPrivate::slotEditorDestroyed(QObject *object) { const Q_TYPENAME EditorToPropertyMap::iterator ecend = m_editorToProperty.end(); for (Q_TYPENAME EditorToPropertyMap::iterator itEditor = m_editorToProperty.begin(); itEditor != ecend; ++itEditor) { if (itEditor.key() == object) { Editor *editor = itEditor.key(); QtProperty *property = itEditor.value(); const Q_TYPENAME PropertyToEditorListMap::iterator pit = m_createdEditors.find(property); if (pit != m_createdEditors.end()) { pit.value().removeAll(editor); if (pit.value().empty()) m_createdEditors.erase(pit); } m_editorToProperty.erase(itEditor); return; } } } // ------------ QtSpinBoxFactory class QtSpinBoxFactoryPrivate : public EditorFactoryPrivate { QtSpinBoxFactory *q_ptr; Q_DECLARE_PUBLIC(QtSpinBoxFactory) public: void slotPropertyChanged(QtProperty *property, int value); void slotRangeChanged(QtProperty *property, int min, int max); void slotSingleStepChanged(QtProperty *property, int step); void slotSetValue(int value); }; void QtSpinBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSpinBox *editor = itEditor.next(); if (editor->value() != value) { editor->blockSignals(true); editor->setValue(value); editor->blockSignals(false); } } } void QtSpinBoxFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) { if (!m_createdEditors.contains(property)) return; QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSpinBox *editor = itEditor.next(); editor->blockSignals(true); editor->setRange(min, max); editor->setValue(manager->value(property)); editor->blockSignals(false); } } void QtSpinBoxFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSpinBox *editor = itEditor.next(); editor->blockSignals(true); editor->setSingleStep(step); editor->blockSignals(false); } } void QtSpinBoxFactoryPrivate::slotSetValue(int value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) { if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } } /*! \class QtSpinBoxFactory \brief The QtSpinBoxFactory class provides QSpinBox widgets for properties created by QtIntPropertyManager objects. \sa QtAbstractEditorFactory, QtIntPropertyManager */ /*! Creates a factory with the given \a parent. */ QtSpinBoxFactory::QtSpinBoxFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtSpinBoxFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtSpinBoxFactory::~QtSpinBoxFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtSpinBoxFactory::connectPropertyManager(QtIntPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); connect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtSpinBoxFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent) { QSpinBox *editor = d_ptr->createEditor(property, parent); editor->setSingleStep(manager->singleStep(property)); editor->setRange(manager->minimum(property), manager->maximum(property)); editor->setValue(manager->value(property)); editor->setKeyboardTracking(false); connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtSpinBoxFactory::disconnectPropertyManager(QtIntPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); disconnect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); disconnect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } // QtSliderFactory class QtSliderFactoryPrivate : public EditorFactoryPrivate { QtSliderFactory *q_ptr; Q_DECLARE_PUBLIC(QtSliderFactory) public: void slotPropertyChanged(QtProperty *property, int value); void slotRangeChanged(QtProperty *property, int min, int max); void slotSingleStepChanged(QtProperty *property, int step); void slotSetValue(int value); }; void QtSliderFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSlider *editor = itEditor.next(); editor->blockSignals(true); editor->setValue(value); editor->blockSignals(false); } } void QtSliderFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) { if (!m_createdEditors.contains(property)) return; QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSlider *editor = itEditor.next(); editor->blockSignals(true); editor->setRange(min, max); editor->setValue(manager->value(property)); editor->blockSignals(false); } } void QtSliderFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QSlider *editor = itEditor.next(); editor->blockSignals(true); editor->setSingleStep(step); editor->blockSignals(false); } } void QtSliderFactoryPrivate::slotSetValue(int value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor ) { if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } } /*! \class QtSliderFactory \brief The QtSliderFactory class provides QSlider widgets for properties created by QtIntPropertyManager objects. \sa QtAbstractEditorFactory, QtIntPropertyManager */ /*! Creates a factory with the given \a parent. */ QtSliderFactory::QtSliderFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtSliderFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtSliderFactory::~QtSliderFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtSliderFactory::connectPropertyManager(QtIntPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); connect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtSliderFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent) { QSlider *editor = new QSlider(Qt::Horizontal, parent); d_ptr->initializeEditor(property, editor); editor->setSingleStep(manager->singleStep(property)); editor->setRange(manager->minimum(property), manager->maximum(property)); editor->setValue(manager->value(property)); connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtSliderFactory::disconnectPropertyManager(QtIntPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); disconnect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); disconnect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } // QtSliderFactory class QtScrollBarFactoryPrivate : public EditorFactoryPrivate { QtScrollBarFactory *q_ptr; Q_DECLARE_PUBLIC(QtScrollBarFactory) public: void slotPropertyChanged(QtProperty *property, int value); void slotRangeChanged(QtProperty *property, int min, int max); void slotSingleStepChanged(QtProperty *property, int step); void slotSetValue(int value); }; void QtScrollBarFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor( m_createdEditors[property]); while (itEditor.hasNext()) { QScrollBar *editor = itEditor.next(); editor->blockSignals(true); editor->setValue(value); editor->blockSignals(false); } } void QtScrollBarFactoryPrivate::slotRangeChanged(QtProperty *property, int min, int max) { if (!m_createdEditors.contains(property)) return; QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QListIterator itEditor( m_createdEditors[property]); while (itEditor.hasNext()) { QScrollBar *editor = itEditor.next(); editor->blockSignals(true); editor->setRange(min, max); editor->setValue(manager->value(property)); editor->blockSignals(false); } } void QtScrollBarFactoryPrivate::slotSingleStepChanged(QtProperty *property, int step) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QScrollBar *editor = itEditor.next(); editor->blockSignals(true); editor->setSingleStep(step); editor->blockSignals(false); } } void QtScrollBarFactoryPrivate::slotSetValue(int value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtIntPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtScrollBarFactory \brief The QtScrollBarFactory class provides QScrollBar widgets for properties created by QtIntPropertyManager objects. \sa QtAbstractEditorFactory, QtIntPropertyManager */ /*! Creates a factory with the given \a parent. */ QtScrollBarFactory::QtScrollBarFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtScrollBarFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtScrollBarFactory::~QtScrollBarFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtScrollBarFactory::connectPropertyManager(QtIntPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); connect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); connect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtScrollBarFactory::createEditor(QtIntPropertyManager *manager, QtProperty *property, QWidget *parent) { QScrollBar *editor = new QScrollBar(Qt::Horizontal, parent); d_ptr->initializeEditor(property, editor); editor->setSingleStep(manager->singleStep(property)); editor->setRange(manager->minimum(property), manager->maximum(property)); editor->setValue(manager->value(property)); connect(editor, SIGNAL(valueChanged(int)), this, SLOT(slotSetValue(int))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtScrollBarFactory::disconnectPropertyManager(QtIntPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); disconnect(manager, SIGNAL(rangeChanged(QtProperty *, int, int)), this, SLOT(slotRangeChanged(QtProperty *, int, int))); disconnect(manager, SIGNAL(singleStepChanged(QtProperty *, int)), this, SLOT(slotSingleStepChanged(QtProperty *, int))); } // QtCheckBoxFactory class QtCheckBoxFactoryPrivate : public EditorFactoryPrivate { QtCheckBoxFactory *q_ptr; Q_DECLARE_PUBLIC(QtCheckBoxFactory) public: void slotPropertyChanged(QtProperty *property, bool value); void slotSetValue(bool value); }; void QtCheckBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, bool value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QtBoolEdit *editor = itEditor.next(); editor->blockCheckBoxSignals(true); editor->setChecked(value); editor->blockCheckBoxSignals(false); } } void QtCheckBoxFactoryPrivate::slotSetValue(bool value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtBoolPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtCheckBoxFactory \brief The QtCheckBoxFactory class provides QCheckBox widgets for properties created by QtBoolPropertyManager objects. \sa QtAbstractEditorFactory, QtBoolPropertyManager */ /*! Creates a factory with the given \a parent. */ QtCheckBoxFactory::QtCheckBoxFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtCheckBoxFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtCheckBoxFactory::~QtCheckBoxFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCheckBoxFactory::connectPropertyManager(QtBoolPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotPropertyChanged(QtProperty *, bool))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtCheckBoxFactory::createEditor(QtBoolPropertyManager *manager, QtProperty *property, QWidget *parent) { QtBoolEdit *editor = d_ptr->createEditor(property, parent); editor->setChecked(manager->value(property)); connect(editor, SIGNAL(toggled(bool)), this, SLOT(slotSetValue(bool))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCheckBoxFactory::disconnectPropertyManager(QtBoolPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotPropertyChanged(QtProperty *, bool))); } // QtDoubleSpinBoxFactory class QtDoubleSpinBoxFactoryPrivate : public EditorFactoryPrivate { QtDoubleSpinBoxFactory *q_ptr; Q_DECLARE_PUBLIC(QtDoubleSpinBoxFactory) public: void slotPropertyChanged(QtProperty *property, double value); void slotRangeChanged(QtProperty *property, double min, double max); void slotSingleStepChanged(QtProperty *property, double step); void slotDecimalsChanged(QtProperty *property, int prec); void slotSetValue(double value); }; void QtDoubleSpinBoxFactoryPrivate::slotPropertyChanged(QtProperty *property, double value) { QList editors = m_createdEditors[property]; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QDoubleSpinBox *editor = itEditor.next(); if (editor->value() != value) { editor->blockSignals(true); editor->setValue(value); editor->blockSignals(false); } } } void QtDoubleSpinBoxFactoryPrivate::slotRangeChanged(QtProperty *property, double min, double max) { if (!m_createdEditors.contains(property)) return; QtDoublePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QList editors = m_createdEditors[property]; QListIterator itEditor(editors); while (itEditor.hasNext()) { QDoubleSpinBox *editor = itEditor.next(); editor->blockSignals(true); editor->setRange(min, max); editor->setValue(manager->value(property)); editor->blockSignals(false); } } void QtDoubleSpinBoxFactoryPrivate::slotSingleStepChanged(QtProperty *property, double step) { if (!m_createdEditors.contains(property)) return; QtDoublePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QList editors = m_createdEditors[property]; QListIterator itEditor(editors); while (itEditor.hasNext()) { QDoubleSpinBox *editor = itEditor.next(); editor->blockSignals(true); editor->setSingleStep(step); editor->blockSignals(false); } } void QtDoubleSpinBoxFactoryPrivate::slotDecimalsChanged(QtProperty *property, int prec) { if (!m_createdEditors.contains(property)) return; QtDoublePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QList editors = m_createdEditors[property]; QListIterator itEditor(editors); while (itEditor.hasNext()) { QDoubleSpinBox *editor = itEditor.next(); editor->blockSignals(true); editor->setDecimals(prec); editor->setValue(manager->value(property)); editor->blockSignals(false); } } void QtDoubleSpinBoxFactoryPrivate::slotSetValue(double value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator itcend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != itcend; ++itEditor) { if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtDoublePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } } /*! \class QtDoubleSpinBoxFactory \brief The QtDoubleSpinBoxFactory class provides QDoubleSpinBox widgets for properties created by QtDoublePropertyManager objects. \sa QtAbstractEditorFactory, QtDoublePropertyManager */ /*! Creates a factory with the given \a parent. */ QtDoubleSpinBoxFactory::QtDoubleSpinBoxFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtDoubleSpinBoxFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtDoubleSpinBoxFactory::~QtDoubleSpinBoxFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDoubleSpinBoxFactory::connectPropertyManager(QtDoublePropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotPropertyChanged(QtProperty *, double))); connect(manager, SIGNAL(rangeChanged(QtProperty *, double, double)), this, SLOT(slotRangeChanged(QtProperty *, double, double))); connect(manager, SIGNAL(singleStepChanged(QtProperty *, double)), this, SLOT(slotSingleStepChanged(QtProperty *, double))); connect(manager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtDoubleSpinBoxFactory::createEditor(QtDoublePropertyManager *manager, QtProperty *property, QWidget *parent) { QDoubleSpinBox *editor = d_ptr->createEditor(property, parent); editor->setSingleStep(manager->singleStep(property)); editor->setDecimals(manager->decimals(property)); editor->setRange(manager->minimum(property), manager->maximum(property)); editor->setValue(manager->value(property)); editor->setKeyboardTracking(false); connect(editor, SIGNAL(valueChanged(double)), this, SLOT(slotSetValue(double))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDoubleSpinBoxFactory::disconnectPropertyManager(QtDoublePropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotPropertyChanged(QtProperty *, double))); disconnect(manager, SIGNAL(rangeChanged(QtProperty *, double, double)), this, SLOT(slotRangeChanged(QtProperty *, double, double))); disconnect(manager, SIGNAL(singleStepChanged(QtProperty *, double)), this, SLOT(slotSingleStepChanged(QtProperty *, double))); disconnect(manager, SIGNAL(decimalsChanged(QtProperty *, int)), this, SLOT(slotDecimalsChanged(QtProperty *, int))); } // QtLineEditFactory class QtLineEditFactoryPrivate : public EditorFactoryPrivate { QtLineEditFactory *q_ptr; Q_DECLARE_PUBLIC(QtLineEditFactory) public: void slotPropertyChanged(QtProperty *property, const QString &value); void slotRegExpChanged(QtProperty *property, const QRegExp ®Exp); void slotSetValue(const QString &value); }; void QtLineEditFactoryPrivate::slotPropertyChanged(QtProperty *property, const QString &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor( m_createdEditors[property]); while (itEditor.hasNext()) { QLineEdit *editor = itEditor.next(); if (editor->text() != value) editor->setText(value); } } void QtLineEditFactoryPrivate::slotRegExpChanged(QtProperty *property, const QRegExp ®Exp) { if (!m_createdEditors.contains(property)) return; QtStringPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QLineEdit *editor = itEditor.next(); editor->blockSignals(true); const QValidator *oldValidator = editor->validator(); QValidator *newValidator = 0; if (regExp.isValid()) { newValidator = new QRegExpValidator(regExp, editor); } editor->setValidator(newValidator); if (oldValidator) delete oldValidator; editor->blockSignals(false); } } void QtLineEditFactoryPrivate::slotSetValue(const QString &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtStringPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtLineEditFactory \brief The QtLineEditFactory class provides QLineEdit widgets for properties created by QtStringPropertyManager objects. \sa QtAbstractEditorFactory, QtStringPropertyManager */ /*! Creates a factory with the given \a parent. */ QtLineEditFactory::QtLineEditFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtLineEditFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtLineEditFactory::~QtLineEditFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtLineEditFactory::connectPropertyManager(QtStringPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QString &)), this, SLOT(slotPropertyChanged(QtProperty *, const QString &))); connect(manager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)), this, SLOT(slotRegExpChanged(QtProperty *, const QRegExp &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtLineEditFactory::createEditor(QtStringPropertyManager *manager, QtProperty *property, QWidget *parent) { QLineEdit *editor = d_ptr->createEditor(property, parent); QRegExp regExp = manager->regExp(property); if (regExp.isValid()) { QValidator *validator = new QRegExpValidator(regExp, editor); editor->setValidator(validator); } editor->setText(manager->value(property)); connect(editor, SIGNAL(textEdited(const QString &)), this, SLOT(slotSetValue(const QString &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtLineEditFactory::disconnectPropertyManager(QtStringPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QString &)), this, SLOT(slotPropertyChanged(QtProperty *, const QString &))); disconnect(manager, SIGNAL(regExpChanged(QtProperty *, const QRegExp &)), this, SLOT(slotRegExpChanged(QtProperty *, const QRegExp &))); } // QtDateEditFactory class QtDateEditFactoryPrivate : public EditorFactoryPrivate { QtDateEditFactory *q_ptr; Q_DECLARE_PUBLIC(QtDateEditFactory) public: void slotPropertyChanged(QtProperty *property, const QDate &value); void slotRangeChanged(QtProperty *property, const QDate &min, const QDate &max); void slotSetValue(const QDate &value); }; void QtDateEditFactoryPrivate::slotPropertyChanged(QtProperty *property, const QDate &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QDateEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setDate(value); editor->blockSignals(false); } } void QtDateEditFactoryPrivate::slotRangeChanged(QtProperty *property, const QDate &min, const QDate &max) { if (!m_createdEditors.contains(property)) return; QtDatePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QDateEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setDateRange(min, max); editor->setDate(manager->value(property)); editor->blockSignals(false); } } void QtDateEditFactoryPrivate::slotSetValue(const QDate &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtDatePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtDateEditFactory \brief The QtDateEditFactory class provides QDateEdit widgets for properties created by QtDatePropertyManager objects. \sa QtAbstractEditorFactory, QtDatePropertyManager */ /*! Creates a factory with the given \a parent. */ QtDateEditFactory::QtDateEditFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtDateEditFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtDateEditFactory::~QtDateEditFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDateEditFactory::connectPropertyManager(QtDatePropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QDate &)), this, SLOT(slotPropertyChanged(QtProperty *, const QDate &))); connect(manager, SIGNAL(rangeChanged(QtProperty *, const QDate &, const QDate &)), this, SLOT(slotRangeChanged(QtProperty *, const QDate &, const QDate &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtDateEditFactory::createEditor(QtDatePropertyManager *manager, QtProperty *property, QWidget *parent) { QDateEdit *editor = d_ptr->createEditor(property, parent); editor->setCalendarPopup(true); editor->setDateRange(manager->minimum(property), manager->maximum(property)); editor->setDate(manager->value(property)); connect(editor, SIGNAL(dateChanged(const QDate &)), this, SLOT(slotSetValue(const QDate &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDateEditFactory::disconnectPropertyManager(QtDatePropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QDate &)), this, SLOT(slotPropertyChanged(QtProperty *, const QDate &))); disconnect(manager, SIGNAL(rangeChanged(QtProperty *, const QDate &, const QDate &)), this, SLOT(slotRangeChanged(QtProperty *, const QDate &, const QDate &))); } // QtTimeEditFactory class QtTimeEditFactoryPrivate : public EditorFactoryPrivate { QtTimeEditFactory *q_ptr; Q_DECLARE_PUBLIC(QtTimeEditFactory) public: void slotPropertyChanged(QtProperty *property, const QTime &value); void slotSetValue(const QTime &value); }; void QtTimeEditFactoryPrivate::slotPropertyChanged(QtProperty *property, const QTime &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QTimeEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setTime(value); editor->blockSignals(false); } } void QtTimeEditFactoryPrivate::slotSetValue(const QTime &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtTimePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtTimeEditFactory \brief The QtTimeEditFactory class provides QTimeEdit widgets for properties created by QtTimePropertyManager objects. \sa QtAbstractEditorFactory, QtTimePropertyManager */ /*! Creates a factory with the given \a parent. */ QtTimeEditFactory::QtTimeEditFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtTimeEditFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtTimeEditFactory::~QtTimeEditFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtTimeEditFactory::connectPropertyManager(QtTimePropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QTime &)), this, SLOT(slotPropertyChanged(QtProperty *, const QTime &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtTimeEditFactory::createEditor(QtTimePropertyManager *manager, QtProperty *property, QWidget *parent) { QTimeEdit *editor = d_ptr->createEditor(property, parent); editor->setTime(manager->value(property)); connect(editor, SIGNAL(timeChanged(const QTime &)), this, SLOT(slotSetValue(const QTime &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtTimeEditFactory::disconnectPropertyManager(QtTimePropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QTime &)), this, SLOT(slotPropertyChanged(QtProperty *, const QTime &))); } // QtDateTimeEditFactory class QtDateTimeEditFactoryPrivate : public EditorFactoryPrivate { QtDateTimeEditFactory *q_ptr; Q_DECLARE_PUBLIC(QtDateTimeEditFactory) public: void slotPropertyChanged(QtProperty *property, const QDateTime &value); void slotSetValue(const QDateTime &value); }; void QtDateTimeEditFactoryPrivate::slotPropertyChanged(QtProperty *property, const QDateTime &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QDateTimeEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setDateTime(value); editor->blockSignals(false); } } void QtDateTimeEditFactoryPrivate::slotSetValue(const QDateTime &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtDateTimePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtDateTimeEditFactory \brief The QtDateTimeEditFactory class provides QDateTimeEdit widgets for properties created by QtDateTimePropertyManager objects. \sa QtAbstractEditorFactory, QtDateTimePropertyManager */ /*! Creates a factory with the given \a parent. */ QtDateTimeEditFactory::QtDateTimeEditFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtDateTimeEditFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtDateTimeEditFactory::~QtDateTimeEditFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDateTimeEditFactory::connectPropertyManager(QtDateTimePropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QDateTime &)), this, SLOT(slotPropertyChanged(QtProperty *, const QDateTime &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtDateTimeEditFactory::createEditor(QtDateTimePropertyManager *manager, QtProperty *property, QWidget *parent) { QDateTimeEdit *editor = d_ptr->createEditor(property, parent); editor->setDateTime(manager->value(property)); connect(editor, SIGNAL(dateTimeChanged(const QDateTime &)), this, SLOT(slotSetValue(const QDateTime &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtDateTimeEditFactory::disconnectPropertyManager(QtDateTimePropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QDateTime &)), this, SLOT(slotPropertyChanged(QtProperty *, const QDateTime &))); } // QtKeySequenceEditorFactory class QtKeySequenceEditorFactoryPrivate : public EditorFactoryPrivate { QtKeySequenceEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtKeySequenceEditorFactory) public: void slotPropertyChanged(QtProperty *property, const QKeySequence &value); void slotSetValue(const QKeySequence &value); }; void QtKeySequenceEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QKeySequence &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QtKeySequenceEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setKeySequence(value); editor->blockSignals(false); } } void QtKeySequenceEditorFactoryPrivate::slotSetValue(const QKeySequence &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtKeySequencePropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtKeySequenceEditorFactory \brief The QtKeySequenceEditorFactory class provides editor widgets for properties created by QtKeySequencePropertyManager objects. \sa QtAbstractEditorFactory */ /*! Creates a factory with the given \a parent. */ QtKeySequenceEditorFactory::QtKeySequenceEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtKeySequenceEditorFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtKeySequenceEditorFactory::~QtKeySequenceEditorFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtKeySequenceEditorFactory::connectPropertyManager(QtKeySequencePropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QKeySequence &)), this, SLOT(slotPropertyChanged(QtProperty *, const QKeySequence &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtKeySequenceEditorFactory::createEditor(QtKeySequencePropertyManager *manager, QtProperty *property, QWidget *parent) { QtKeySequenceEdit *editor = d_ptr->createEditor(property, parent); editor->setKeySequence(manager->value(property)); connect(editor, SIGNAL(keySequenceChanged(const QKeySequence &)), this, SLOT(slotSetValue(const QKeySequence &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtKeySequenceEditorFactory::disconnectPropertyManager(QtKeySequencePropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QKeySequence &)), this, SLOT(slotPropertyChanged(QtProperty *, const QKeySequence &))); } // QtCharEdit class QtCharEdit : public QWidget { Q_OBJECT public: QtCharEdit(QWidget *parent = 0); QChar value() const; bool eventFilter(QObject *o, QEvent *e); public Q_SLOTS: void setValue(const QChar &value); Q_SIGNALS: void valueChanged(const QChar &value); protected: void focusInEvent(QFocusEvent *e); void focusOutEvent(QFocusEvent *e); void keyPressEvent(QKeyEvent *e); void keyReleaseEvent(QKeyEvent *e); bool event(QEvent *e); private slots: void slotClearChar(); private: void handleKeyEvent(QKeyEvent *e); QChar m_value; QLineEdit *m_lineEdit; }; QtCharEdit::QtCharEdit(QWidget *parent) : QWidget(parent), m_lineEdit(new QLineEdit(this)) { QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(m_lineEdit); layout->setMargin(0); m_lineEdit->installEventFilter(this); m_lineEdit->setReadOnly(true); m_lineEdit->setFocusProxy(this); setFocusPolicy(m_lineEdit->focusPolicy()); setAttribute(Qt::WA_InputMethodEnabled); } bool QtCharEdit::eventFilter(QObject *o, QEvent *e) { if (o == m_lineEdit && e->type() == QEvent::ContextMenu) { QContextMenuEvent *c = static_cast(e); QMenu *menu = m_lineEdit->createStandardContextMenu(); QList actions = menu->actions(); QListIterator itAction(actions); while (itAction.hasNext()) { QAction *action = itAction.next(); action->setShortcut(QKeySequence()); QString actionString = action->text(); const int pos = actionString.lastIndexOf(QLatin1Char('\t')); if (pos > 0) actionString = actionString.remove(pos, actionString.length() - pos); action->setText(actionString); } QAction *actionBefore = 0; if (actions.count() > 0) actionBefore = actions[0]; QAction *clearAction = new QAction(tr("Clear Char"), menu); menu->insertAction(actionBefore, clearAction); menu->insertSeparator(actionBefore); clearAction->setEnabled(!m_value.isNull()); connect(clearAction, SIGNAL(triggered()), this, SLOT(slotClearChar())); menu->exec(c->globalPos()); delete menu; e->accept(); return true; } return QWidget::eventFilter(o, e); } void QtCharEdit::slotClearChar() { if (m_value.isNull()) return; setValue(QChar()); emit valueChanged(m_value); } void QtCharEdit::handleKeyEvent(QKeyEvent *e) { const int key = e->key(); switch (key) { case Qt::Key_Control: case Qt::Key_Shift: case Qt::Key_Meta: case Qt::Key_Alt: case Qt::Key_Super_L: case Qt::Key_Return: return; default: break; } const QString text = e->text(); if (text.count() != 1) return; const QChar c = text.at(0); if (!c.isPrint()) return; if (m_value == c) return; m_value = c; const QString str = m_value.isNull() ? QString() : QString(m_value); m_lineEdit->setText(str); e->accept(); emit valueChanged(m_value); } void QtCharEdit::setValue(const QChar &value) { if (value == m_value) return; m_value = value; QString str = value.isNull() ? QString() : QString(value); m_lineEdit->setText(str); } QChar QtCharEdit::value() const { return m_value; } void QtCharEdit::focusInEvent(QFocusEvent *e) { m_lineEdit->event(e); m_lineEdit->selectAll(); QWidget::focusInEvent(e); } void QtCharEdit::focusOutEvent(QFocusEvent *e) { m_lineEdit->event(e); QWidget::focusOutEvent(e); } void QtCharEdit::keyPressEvent(QKeyEvent *e) { handleKeyEvent(e); e->accept(); } void QtCharEdit::keyReleaseEvent(QKeyEvent *e) { m_lineEdit->event(e); } bool QtCharEdit::event(QEvent *e) { switch(e->type()) { case QEvent::Shortcut: case QEvent::ShortcutOverride: case QEvent::KeyRelease: e->accept(); return true; default: break; } return QWidget::event(e); } // QtCharEditorFactory class QtCharEditorFactoryPrivate : public EditorFactoryPrivate { QtCharEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtCharEditorFactory) public: void slotPropertyChanged(QtProperty *property, const QChar &value); void slotSetValue(const QChar &value); }; void QtCharEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QChar &value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QtCharEdit *editor = itEditor.next(); editor->blockSignals(true); editor->setValue(value); editor->blockSignals(false); } } void QtCharEditorFactoryPrivate::slotSetValue(const QChar &value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtCharPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtCharEditorFactory \brief The QtCharEditorFactory class provides editor widgets for properties created by QtCharPropertyManager objects. \sa QtAbstractEditorFactory */ /*! Creates a factory with the given \a parent. */ QtCharEditorFactory::QtCharEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtCharEditorFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtCharEditorFactory::~QtCharEditorFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCharEditorFactory::connectPropertyManager(QtCharPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QChar &)), this, SLOT(slotPropertyChanged(QtProperty *, const QChar &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtCharEditorFactory::createEditor(QtCharPropertyManager *manager, QtProperty *property, QWidget *parent) { QtCharEdit *editor = d_ptr->createEditor(property, parent); editor->setValue(manager->value(property)); connect(editor, SIGNAL(valueChanged(const QChar &)), this, SLOT(slotSetValue(const QChar &))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCharEditorFactory::disconnectPropertyManager(QtCharPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QChar &)), this, SLOT(slotPropertyChanged(QtProperty *, const QChar &))); } // QtEnumEditorFactory class QtEnumEditorFactoryPrivate : public EditorFactoryPrivate { QtEnumEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtEnumEditorFactory) public: void slotPropertyChanged(QtProperty *property, int value); void slotEnumNamesChanged(QtProperty *property, const QStringList &); void slotEnumIconsChanged(QtProperty *property, const QMap &); void slotSetValue(int value); }; void QtEnumEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, int value) { if (!m_createdEditors.contains(property)) return; QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QComboBox *editor = itEditor.next(); editor->blockSignals(true); editor->setCurrentIndex(value); editor->blockSignals(false); } } void QtEnumEditorFactoryPrivate::slotEnumNamesChanged(QtProperty *property, const QStringList &enumNames) { if (!m_createdEditors.contains(property)) return; QtEnumPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; QMap enumIcons = manager->enumIcons(property); QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QComboBox *editor = itEditor.next(); editor->blockSignals(true); editor->clear(); editor->addItems(enumNames); const int nameCount = enumNames.count(); for (int i = 0; i < nameCount; i++) editor->setItemIcon(i, enumIcons.value(i)); editor->setCurrentIndex(manager->value(property)); editor->blockSignals(false); } } void QtEnumEditorFactoryPrivate::slotEnumIconsChanged(QtProperty *property, const QMap &enumIcons) { if (!m_createdEditors.contains(property)) return; QtEnumPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; const QStringList enumNames = manager->enumNames(property); QListIterator itEditor(m_createdEditors[property]); while (itEditor.hasNext()) { QComboBox *editor = itEditor.next(); editor->blockSignals(true); const int nameCount = enumNames.count(); for (int i = 0; i < nameCount; i++) editor->setItemIcon(i, enumIcons.value(i)); editor->setCurrentIndex(manager->value(property)); editor->blockSignals(false); } } void QtEnumEditorFactoryPrivate::slotSetValue(int value) { QObject *object = q_ptr->sender(); const QMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (QMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtEnumPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtEnumEditorFactory \brief The QtEnumEditorFactory class provides QComboBox widgets for properties created by QtEnumPropertyManager objects. \sa QtAbstractEditorFactory, QtEnumPropertyManager */ /*! Creates a factory with the given \a parent. */ QtEnumEditorFactory::QtEnumEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtEnumEditorFactoryPrivate(); d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtEnumEditorFactory::~QtEnumEditorFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtEnumEditorFactory::connectPropertyManager(QtEnumPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); connect(manager, SIGNAL(enumNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotEnumNamesChanged(QtProperty *, const QStringList &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtEnumEditorFactory::createEditor(QtEnumPropertyManager *manager, QtProperty *property, QWidget *parent) { QComboBox *editor = d_ptr->createEditor(property, parent); editor->setSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed); editor->view()->setTextElideMode(Qt::ElideRight); QStringList enumNames = manager->enumNames(property); editor->addItems(enumNames); QMap enumIcons = manager->enumIcons(property); const int enumNamesCount = enumNames.count(); for (int i = 0; i < enumNamesCount; i++) editor->setItemIcon(i, enumIcons.value(i)); editor->setCurrentIndex(manager->value(property)); connect(editor, SIGNAL(currentIndexChanged(int)), this, SLOT(slotSetValue(int))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtEnumEditorFactory::disconnectPropertyManager(QtEnumPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotPropertyChanged(QtProperty *, int))); disconnect(manager, SIGNAL(enumNamesChanged(QtProperty *, const QStringList &)), this, SLOT(slotEnumNamesChanged(QtProperty *, const QStringList &))); } // QtCursorEditorFactory Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) class QtCursorEditorFactoryPrivate { QtCursorEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtCursorEditorFactory) public: QtCursorEditorFactoryPrivate(); void slotPropertyChanged(QtProperty *property, const QCursor &cursor); void slotEnumChanged(QtProperty *property, int value); void slotEditorDestroyed(QObject *object); QtEnumEditorFactory *m_enumEditorFactory; QtEnumPropertyManager *m_enumPropertyManager; QMap m_propertyToEnum; QMap m_enumToProperty; QMap > m_enumToEditors; QMap m_editorToEnum; bool m_updatingEnum; }; QtCursorEditorFactoryPrivate::QtCursorEditorFactoryPrivate() : m_updatingEnum(false) { } void QtCursorEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QCursor &cursor) { // update enum property QtProperty *enumProp = m_propertyToEnum.value(property); if (!enumProp) return; m_updatingEnum = true; m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(cursor)); m_updatingEnum = false; } void QtCursorEditorFactoryPrivate::slotEnumChanged(QtProperty *property, int value) { if (m_updatingEnum) return; // update cursor property QtProperty *prop = m_enumToProperty.value(property); if (!prop) return; QtCursorPropertyManager *cursorManager = q_ptr->propertyManager(prop); if (!cursorManager) return; #ifndef QT_NO_CURSOR cursorManager->setValue(prop, QCursor(cursorDatabase()->valueToCursor(value))); #endif } void QtCursorEditorFactoryPrivate::slotEditorDestroyed(QObject *object) { // remove from m_editorToEnum map; // remove from m_enumToEditors map; // if m_enumToEditors doesn't contains more editors delete enum property; const QMap::ConstIterator ecend = m_editorToEnum.constEnd(); for (QMap::ConstIterator itEditor = m_editorToEnum.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QWidget *editor = itEditor.key(); QtProperty *enumProp = itEditor.value(); m_editorToEnum.remove(editor); m_enumToEditors[enumProp].removeAll(editor); if (m_enumToEditors[enumProp].isEmpty()) { m_enumToEditors.remove(enumProp); QtProperty *property = m_enumToProperty.value(enumProp); m_enumToProperty.remove(enumProp); m_propertyToEnum.remove(property); delete enumProp; } return; } } /*! \class QtCursorEditorFactory \brief The QtCursorEditorFactory class provides QComboBox widgets for properties created by QtCursorPropertyManager objects. \sa QtAbstractEditorFactory, QtCursorPropertyManager */ /*! Creates a factory with the given \a parent. */ QtCursorEditorFactory::QtCursorEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent) { d_ptr = new QtCursorEditorFactoryPrivate(); d_ptr->q_ptr = this; d_ptr->m_enumEditorFactory = new QtEnumEditorFactory(this); d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotEnumChanged(QtProperty *, int))); d_ptr->m_enumEditorFactory->addPropertyManager(d_ptr->m_enumPropertyManager); } /*! Destroys this factory, and all the widgets it has created. */ QtCursorEditorFactory::~QtCursorEditorFactory() { delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCursorEditorFactory::connectPropertyManager(QtCursorPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty *, const QCursor &)), this, SLOT(slotPropertyChanged(QtProperty *, const QCursor &))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtCursorEditorFactory::createEditor(QtCursorPropertyManager *manager, QtProperty *property, QWidget *parent) { QtProperty *enumProp = 0; if (d_ptr->m_propertyToEnum.contains(property)) { enumProp = d_ptr->m_propertyToEnum[property]; } else { enumProp = d_ptr->m_enumPropertyManager->addProperty(property->propertyName()); d_ptr->m_enumPropertyManager->setEnumNames(enumProp, cursorDatabase()->cursorShapeNames()); d_ptr->m_enumPropertyManager->setEnumIcons(enumProp, cursorDatabase()->cursorShapeIcons()); #ifndef QT_NO_CURSOR d_ptr->m_enumPropertyManager->setValue(enumProp, cursorDatabase()->cursorToValue(manager->value(property))); #endif d_ptr->m_propertyToEnum[property] = enumProp; d_ptr->m_enumToProperty[enumProp] = property; } QtAbstractEditorFactoryBase *af = d_ptr->m_enumEditorFactory; QWidget *editor = af->createEditor(enumProp, parent); d_ptr->m_enumToEditors[enumProp].append(editor); d_ptr->m_editorToEnum[editor] = enumProp; connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtCursorEditorFactory::disconnectPropertyManager(QtCursorPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty *, const QCursor &)), this, SLOT(slotPropertyChanged(QtProperty *, const QCursor &))); } // QtColorEditWidget class QtColorEditWidget : public QWidget { Q_OBJECT public: QtColorEditWidget(QWidget *parent); bool eventFilter(QObject *obj, QEvent *ev); public Q_SLOTS: void setValue(const QColor &value); private Q_SLOTS: void buttonClicked(); Q_SIGNALS: void valueChanged(const QColor &value); private: QColor m_color; QLabel *m_pixmapLabel; QLabel *m_label; QToolButton *m_button; }; QtColorEditWidget::QtColorEditWidget(QWidget *parent) : QWidget(parent), m_pixmapLabel(new QLabel), m_label(new QLabel), m_button(new QToolButton) { QHBoxLayout *lt = new QHBoxLayout(this); setupTreeViewEditorMargin(lt); lt->setSpacing(0); lt->addWidget(m_pixmapLabel); lt->addWidget(m_label); lt->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); m_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); m_button->setFixedWidth(20); setFocusProxy(m_button); setFocusPolicy(m_button->focusPolicy()); m_button->setText(tr("...")); m_button->installEventFilter(this); connect(m_button, SIGNAL(clicked()), this, SLOT(buttonClicked())); lt->addWidget(m_button); m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::brushValuePixmap(QBrush(m_color))); m_label->setText(QtPropertyBrowserUtils::colorValueText(m_color)); } void QtColorEditWidget::setValue(const QColor &c) { if (m_color != c) { m_color = c; m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::brushValuePixmap(QBrush(c))); m_label->setText(QtPropertyBrowserUtils::colorValueText(c)); } } void QtColorEditWidget::buttonClicked() { bool ok = false; QRgb oldRgba = m_color.rgba(); QRgb newRgba = QColorDialog::getRgba(oldRgba, &ok, this); if (ok && newRgba != oldRgba) { setValue(QColor::fromRgba(newRgba)); emit valueChanged(m_color); } } bool QtColorEditWidget::eventFilter(QObject *obj, QEvent *ev) { if (obj == m_button) { switch (ev->type()) { case QEvent::KeyPress: case QEvent::KeyRelease: { // Prevent the QToolButton from handling Enter/Escape meant control the delegate switch (static_cast(ev)->key()) { case Qt::Key_Escape: case Qt::Key_Enter: case Qt::Key_Return: ev->ignore(); return true; default: break; } } break; default: break; } } return QWidget::eventFilter(obj, ev); } // QtColorEditorFactoryPrivate class QtColorEditorFactoryPrivate : public EditorFactoryPrivate { QtColorEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtColorEditorFactory) public: void slotPropertyChanged(QtProperty *property, const QColor &value); void slotSetValue(const QColor &value); }; void QtColorEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QColor &value) { const PropertyToEditorListMap::iterator it = m_createdEditors.find(property); if (it == m_createdEditors.end()) return; QListIterator itEditor(it.value()); while (itEditor.hasNext()) itEditor.next()->setValue(value); } void QtColorEditorFactoryPrivate::slotSetValue(const QColor &value) { QObject *object = q_ptr->sender(); const EditorToPropertyMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (EditorToPropertyMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtColorPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtColorEditorFactory \brief The QtColorEditorFactory class provides color editing for properties created by QtColorPropertyManager objects. \sa QtAbstractEditorFactory, QtColorPropertyManager */ /*! Creates a factory with the given \a parent. */ QtColorEditorFactory::QtColorEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent), d_ptr(new QtColorEditorFactoryPrivate()) { d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtColorEditorFactory::~QtColorEditorFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtColorEditorFactory::connectPropertyManager(QtColorPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty*,QColor)), this, SLOT(slotPropertyChanged(QtProperty*,QColor))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtColorEditorFactory::createEditor(QtColorPropertyManager *manager, QtProperty *property, QWidget *parent) { QtColorEditWidget *editor = d_ptr->createEditor(property, parent); editor->setValue(manager->value(property)); connect(editor, SIGNAL(valueChanged(QColor)), this, SLOT(slotSetValue(QColor))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtColorEditorFactory::disconnectPropertyManager(QtColorPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty*,QColor)), this, SLOT(slotPropertyChanged(QtProperty*,QColor))); } // QtFontEditWidget class QtFontEditWidget : public QWidget { Q_OBJECT public: QtFontEditWidget(QWidget *parent); bool eventFilter(QObject *obj, QEvent *ev); public Q_SLOTS: void setValue(const QFont &value); private Q_SLOTS: void buttonClicked(); Q_SIGNALS: void valueChanged(const QFont &value); private: QFont m_font; QLabel *m_pixmapLabel; QLabel *m_label; QToolButton *m_button; }; QtFontEditWidget::QtFontEditWidget(QWidget *parent) : QWidget(parent), m_pixmapLabel(new QLabel), m_label(new QLabel), m_button(new QToolButton) { QHBoxLayout *lt = new QHBoxLayout(this); setupTreeViewEditorMargin(lt); lt->setSpacing(0); lt->addWidget(m_pixmapLabel); lt->addWidget(m_label); lt->addItem(new QSpacerItem(0, 0, QSizePolicy::Expanding, QSizePolicy::Ignored)); m_button->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Ignored); m_button->setFixedWidth(20); setFocusProxy(m_button); setFocusPolicy(m_button->focusPolicy()); m_button->setText(tr("...")); m_button->installEventFilter(this); connect(m_button, SIGNAL(clicked()), this, SLOT(buttonClicked())); lt->addWidget(m_button); m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::fontValuePixmap(m_font)); m_label->setText(QtPropertyBrowserUtils::fontValueText(m_font)); } void QtFontEditWidget::setValue(const QFont &f) { if (m_font != f) { m_font = f; m_pixmapLabel->setPixmap(QtPropertyBrowserUtils::fontValuePixmap(f)); m_label->setText(QtPropertyBrowserUtils::fontValueText(f)); } } void QtFontEditWidget::buttonClicked() { bool ok = false; QFont newFont = QFontDialog::getFont(&ok, m_font, this, tr("Select Font")); if (ok && newFont != m_font) { QFont f = m_font; // prevent mask for unchanged attributes, don't change other attributes (like kerning, etc...) if (m_font.family() != newFont.family()) f.setFamily(newFont.family()); if (m_font.pointSize() != newFont.pointSize()) f.setPointSize(newFont.pointSize()); if (m_font.bold() != newFont.bold()) f.setBold(newFont.bold()); if (m_font.italic() != newFont.italic()) f.setItalic(newFont.italic()); if (m_font.underline() != newFont.underline()) f.setUnderline(newFont.underline()); if (m_font.strikeOut() != newFont.strikeOut()) f.setStrikeOut(newFont.strikeOut()); setValue(f); emit valueChanged(m_font); } } bool QtFontEditWidget::eventFilter(QObject *obj, QEvent *ev) { if (obj == m_button) { switch (ev->type()) { case QEvent::KeyPress: case QEvent::KeyRelease: { // Prevent the QToolButton from handling Enter/Escape meant control the delegate switch (static_cast(ev)->key()) { case Qt::Key_Escape: case Qt::Key_Enter: case Qt::Key_Return: ev->ignore(); return true; default: break; } } break; default: break; } } return QWidget::eventFilter(obj, ev); } // QtFontEditorFactoryPrivate class QtFontEditorFactoryPrivate : public EditorFactoryPrivate { QtFontEditorFactory *q_ptr; Q_DECLARE_PUBLIC(QtFontEditorFactory) public: void slotPropertyChanged(QtProperty *property, const QFont &value); void slotSetValue(const QFont &value); }; void QtFontEditorFactoryPrivate::slotPropertyChanged(QtProperty *property, const QFont &value) { const PropertyToEditorListMap::iterator it = m_createdEditors.find(property); if (it == m_createdEditors.end()) return; QListIterator itEditor(it.value()); while (itEditor.hasNext()) itEditor.next()->setValue(value); } void QtFontEditorFactoryPrivate::slotSetValue(const QFont &value) { QObject *object = q_ptr->sender(); const EditorToPropertyMap::ConstIterator ecend = m_editorToProperty.constEnd(); for (EditorToPropertyMap::ConstIterator itEditor = m_editorToProperty.constBegin(); itEditor != ecend; ++itEditor) if (itEditor.key() == object) { QtProperty *property = itEditor.value(); QtFontPropertyManager *manager = q_ptr->propertyManager(property); if (!manager) return; manager->setValue(property, value); return; } } /*! \class QtFontEditorFactory \brief The QtFontEditorFactory class provides font editing for properties created by QtFontPropertyManager objects. \sa QtAbstractEditorFactory, QtFontPropertyManager */ /*! Creates a factory with the given \a parent. */ QtFontEditorFactory::QtFontEditorFactory(QObject *parent) : QtAbstractEditorFactory(parent), d_ptr(new QtFontEditorFactoryPrivate()) { d_ptr->q_ptr = this; } /*! Destroys this factory, and all the widgets it has created. */ QtFontEditorFactory::~QtFontEditorFactory() { qDeleteAll(d_ptr->m_editorToProperty.keys()); delete d_ptr; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtFontEditorFactory::connectPropertyManager(QtFontPropertyManager *manager) { connect(manager, SIGNAL(valueChanged(QtProperty*,QFont)), this, SLOT(slotPropertyChanged(QtProperty*,QFont))); } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ QWidget *QtFontEditorFactory::createEditor(QtFontPropertyManager *manager, QtProperty *property, QWidget *parent) { QtFontEditWidget *editor = d_ptr->createEditor(property, parent); editor->setValue(manager->value(property)); connect(editor, SIGNAL(valueChanged(QFont)), this, SLOT(slotSetValue(QFont))); connect(editor, SIGNAL(destroyed(QObject *)), this, SLOT(slotEditorDestroyed(QObject *))); return editor; } /*! \internal Reimplemented from the QtAbstractEditorFactory class. */ void QtFontEditorFactory::disconnectPropertyManager(QtFontPropertyManager *manager) { disconnect(manager, SIGNAL(valueChanged(QtProperty*,QFont)), this, SLOT(slotPropertyChanged(QtProperty*,QFont))); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qteditorfactory.cpp" #include "qteditorfactory.moc" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtRectFPropertyManager000644 001750 001750 00000000037 11617757645 031173 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtVariantEditorFactory000644 001750 001750 00000000037 11617757645 031233 0ustar00simonesimone000000 000000 #include "qtvariantproperty.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtVariantPropertyManager000644 001750 001750 00000000037 11617757645 031574 0ustar00simonesimone000000 000000 #include "qtvariantproperty.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtgroupboxpropertybrowser.h000644 001750 001750 00000011755 11617757645 032505 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTGROUPBOXPROPERTYBROWSER_H #define QTGROUPBOXPROPERTYBROWSER_H #include "qtpropertybrowser.h" #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtGroupBoxPropertyBrowserPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtGroupBoxPropertyBrowser : public QtAbstractPropertyBrowser { Q_OBJECT public: QtGroupBoxPropertyBrowser(QWidget *parent = 0); ~QtGroupBoxPropertyBrowser(); protected: virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem); virtual void itemRemoved(QtBrowserItem *item); virtual void itemChanged(QtBrowserItem *item); private: QtGroupBoxPropertyBrowserPrivate *d_ptr; Q_DECLARE_PRIVATE(QtGroupBoxPropertyBrowser) Q_DISABLE_COPY(QtGroupBoxPropertyBrowser) Q_PRIVATE_SLOT(d_func(), void slotUpdate()) Q_PRIVATE_SLOT(d_func(), void slotEditorDestroyed()) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtbuttonpropertybrowser.cpp000644 001750 001750 00000053566 11617757645 032514 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtbuttonpropertybrowser.h" #include #include #include #include #include #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtButtonPropertyBrowserPrivate { QtButtonPropertyBrowser *q_ptr; Q_DECLARE_PUBLIC(QtButtonPropertyBrowser) public: void init(QWidget *parent); void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); void propertyRemoved(QtBrowserItem *index); void propertyChanged(QtBrowserItem *index); QWidget *createEditor(QtProperty *property, QWidget *parent) const { return q_ptr->createEditor(property, parent); } void slotEditorDestroyed(); void slotUpdate(); void slotToggled(bool checked); struct WidgetItem { WidgetItem() : widget(0), label(0), widgetLabel(0), button(0), container(0), layout(0), /*line(0), */parent(0), expanded(false) { } QWidget *widget; // can be null QLabel *label; // main label with property name QLabel *widgetLabel; // label substitute showing the current value if there is no widget QToolButton *button; // expandable button for items with children QWidget *container; // container which is expanded when the button is clicked QGridLayout *layout; // layout in container WidgetItem *parent; QList children; bool expanded; }; private: void updateLater(); void updateItem(WidgetItem *item); void insertRow(QGridLayout *layout, int row) const; void removeRow(QGridLayout *layout, int row) const; int gridRow(WidgetItem *item) const; int gridSpan(WidgetItem *item) const; void setExpanded(WidgetItem *item, bool expanded); QToolButton *createButton(QWidget *panret = 0) const; QMap m_indexToItem; QMap m_itemToIndex; QMap m_widgetToItem; QMap m_buttonToItem; QGridLayout *m_mainLayout; QList m_children; QList m_recreateQueue; }; QToolButton *QtButtonPropertyBrowserPrivate::createButton(QWidget *parent) const { QToolButton *button = new QToolButton(parent); button->setCheckable(true); button->setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed)); button->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); button->setArrowType(Qt::DownArrow); button->setIconSize(QSize(3, 16)); /* QIcon icon; icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowDown), QIcon::Normal, QIcon::Off); icon.addPixmap(q_ptr->style()->standardPixmap(QStyle::SP_ArrowUp), QIcon::Normal, QIcon::On); button->setIcon(icon); */ return button; } int QtButtonPropertyBrowserPrivate::gridRow(WidgetItem *item) const { QList siblings; if (item->parent) siblings = item->parent->children; else siblings = m_children; int row = 0; QListIterator it(siblings); while (it.hasNext()) { WidgetItem *sibling = it.next(); if (sibling == item) return row; row += gridSpan(sibling); } return -1; } int QtButtonPropertyBrowserPrivate::gridSpan(WidgetItem *item) const { if (item->container && item->expanded) return 2; return 1; } void QtButtonPropertyBrowserPrivate::init(QWidget *parent) { m_mainLayout = new QGridLayout(); parent->setLayout(m_mainLayout); QLayoutItem *item = new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding); m_mainLayout->addItem(item, 0, 0); } void QtButtonPropertyBrowserPrivate::slotEditorDestroyed() { QWidget *editor = qobject_cast(q_ptr->sender()); if (!editor) return; if (!m_widgetToItem.contains(editor)) return; m_widgetToItem[editor]->widget = 0; m_widgetToItem.remove(editor); } void QtButtonPropertyBrowserPrivate::slotUpdate() { QListIterator itItem(m_recreateQueue); while (itItem.hasNext()) { WidgetItem *item = itItem.next(); WidgetItem *parent = item->parent; QWidget *w = 0; QGridLayout *l = 0; const int oldRow = gridRow(item); if (parent) { w = parent->container; l = parent->layout; } else { w = q_ptr; l = m_mainLayout; } int span = 1; if (!item->widget && !item->widgetLabel) span = 2; item->label = new QLabel(w); item->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); l->addWidget(item->label, oldRow, 0, 1, span); updateItem(item); } m_recreateQueue.clear(); } void QtButtonPropertyBrowserPrivate::setExpanded(WidgetItem *item, bool expanded) { if (item->expanded == expanded) return; if (!item->container) return; item->expanded = expanded; const int row = gridRow(item); WidgetItem *parent = item->parent; QGridLayout *l = 0; if (parent) l = parent->layout; else l = m_mainLayout; if (expanded) { insertRow(l, row + 1); l->addWidget(item->container, row + 1, 0, 1, 2); item->container->show(); } else { l->removeWidget(item->container); item->container->hide(); removeRow(l, row + 1); } item->button->setChecked(expanded); item->button->setArrowType(expanded ? Qt::UpArrow : Qt::DownArrow); } void QtButtonPropertyBrowserPrivate::slotToggled(bool checked) { WidgetItem *item = m_buttonToItem.value(q_ptr->sender()); if (!item) return; setExpanded(item, checked); if (checked) emit q_ptr->expanded(m_itemToIndex.value(item)); else emit q_ptr->collapsed(m_itemToIndex.value(item)); } void QtButtonPropertyBrowserPrivate::updateLater() { QTimer::singleShot(0, q_ptr, SLOT(slotUpdate())); } void QtButtonPropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) { WidgetItem *afterItem = m_indexToItem.value(afterIndex); WidgetItem *parentItem = m_indexToItem.value(index->parent()); WidgetItem *newItem = new WidgetItem(); newItem->parent = parentItem; QGridLayout *layout = 0; QWidget *parentWidget = 0; int row = -1; if (!afterItem) { row = 0; if (parentItem) parentItem->children.insert(0, newItem); else m_children.insert(0, newItem); } else { row = gridRow(afterItem) + gridSpan(afterItem); if (parentItem) parentItem->children.insert(parentItem->children.indexOf(afterItem) + 1, newItem); else m_children.insert(m_children.indexOf(afterItem) + 1, newItem); } if (!parentItem) { layout = m_mainLayout; parentWidget = q_ptr; } else { if (!parentItem->container) { m_recreateQueue.removeAll(parentItem); WidgetItem *grandParent = parentItem->parent; QWidget *w = 0; QGridLayout *l = 0; const int oldRow = gridRow(parentItem); if (grandParent) { w = grandParent->container; l = grandParent->layout; } else { w = q_ptr; l = m_mainLayout; } QFrame *container = new QFrame(); container->setFrameShape(QFrame::Panel); container->setFrameShadow(QFrame::Raised); parentItem->container = container; parentItem->button = createButton(); m_buttonToItem[parentItem->button] = parentItem; q_ptr->connect(parentItem->button, SIGNAL(toggled(bool)), q_ptr, SLOT(slotToggled(bool))); parentItem->layout = new QGridLayout(); container->setLayout(parentItem->layout); if (parentItem->label) { l->removeWidget(parentItem->label); delete parentItem->label; parentItem->label = 0; } int span = 1; if (!parentItem->widget && !parentItem->widgetLabel) span = 2; l->addWidget(parentItem->button, oldRow, 0, 1, span); updateItem(parentItem); } layout = parentItem->layout; parentWidget = parentItem->container; } newItem->label = new QLabel(parentWidget); newItem->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); newItem->widget = createEditor(index->property(), parentWidget); if (newItem->widget) { QObject::connect(newItem->widget, SIGNAL(destroyed()), q_ptr, SLOT(slotEditorDestroyed())); m_widgetToItem[newItem->widget] = newItem; } else if (index->property()->hasValue()) { newItem->widgetLabel = new QLabel(parentWidget); newItem->widgetLabel->setSizePolicy(QSizePolicy(QSizePolicy::Ignored, QSizePolicy::Fixed)); } insertRow(layout, row); int span = 1; if (newItem->widget) layout->addWidget(newItem->widget, row, 1); else if (newItem->widgetLabel) layout->addWidget(newItem->widgetLabel, row, 1); else span = 2; layout->addWidget(newItem->label, row, 0, span, 1); m_itemToIndex[newItem] = index; m_indexToItem[index] = newItem; updateItem(newItem); } void QtButtonPropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) { WidgetItem *item = m_indexToItem.value(index); m_indexToItem.remove(index); m_itemToIndex.remove(item); WidgetItem *parentItem = item->parent; const int row = gridRow(item); if (parentItem) parentItem->children.removeAt(parentItem->children.indexOf(item)); else m_children.removeAt(m_children.indexOf(item)); const int colSpan = gridSpan(item); m_buttonToItem.remove(item->button); if (item->widget) delete item->widget; if (item->label) delete item->label; if (item->widgetLabel) delete item->widgetLabel; if (item->button) delete item->button; if (item->container) delete item->container; if (!parentItem) { removeRow(m_mainLayout, row); if (colSpan > 1) removeRow(m_mainLayout, row); } else if (parentItem->children.count() != 0) { removeRow(parentItem->layout, row); if (colSpan > 1) removeRow(parentItem->layout, row); } else { const WidgetItem *grandParent = parentItem->parent; QGridLayout *l = 0; if (grandParent) { l = grandParent->layout; } else { l = m_mainLayout; } const int parentRow = gridRow(parentItem); const int parentSpan = gridSpan(parentItem); l->removeWidget(parentItem->button); l->removeWidget(parentItem->container); delete parentItem->button; delete parentItem->container; parentItem->button = 0; parentItem->container = 0; parentItem->layout = 0; if (!m_recreateQueue.contains(parentItem)) m_recreateQueue.append(parentItem); if (parentSpan > 1) removeRow(l, parentRow + 1); updateLater(); } m_recreateQueue.removeAll(item); delete item; } void QtButtonPropertyBrowserPrivate::insertRow(QGridLayout *layout, int row) const { QMap itemToPos; int idx = 0; while (idx < layout->count()) { int r, c, rs, cs; layout->getItemPosition(idx, &r, &c, &rs, &cs); if (r >= row) { itemToPos[layout->takeAt(idx)] = QRect(r + 1, c, rs, cs); } else { idx++; } } const QMap::ConstIterator icend = itemToPos.constEnd(); for(QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { const QRect r = it.value(); layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); } } void QtButtonPropertyBrowserPrivate::removeRow(QGridLayout *layout, int row) const { QMap itemToPos; int idx = 0; while (idx < layout->count()) { int r, c, rs, cs; layout->getItemPosition(idx, &r, &c, &rs, &cs); if (r > row) { itemToPos[layout->takeAt(idx)] = QRect(r - 1, c, rs, cs); } else { idx++; } } const QMap::ConstIterator icend = itemToPos.constEnd(); for(QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { const QRect r = it.value(); layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); } } void QtButtonPropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) { WidgetItem *item = m_indexToItem.value(index); updateItem(item); } void QtButtonPropertyBrowserPrivate::updateItem(WidgetItem *item) { QtProperty *property = m_itemToIndex[item]->property(); if (item->button) { QFont font = item->button->font(); font.setUnderline(property->isModified()); item->button->setFont(font); item->button->setText(property->propertyName()); item->button->setToolTip(property->toolTip()); item->button->setStatusTip(property->statusTip()); item->button->setWhatsThis(property->whatsThis()); item->button->setEnabled(property->isEnabled()); } if (item->label) { QFont font = item->label->font(); font.setUnderline(property->isModified()); item->label->setFont(font); item->label->setText(property->propertyName()); item->label->setToolTip(property->toolTip()); item->label->setStatusTip(property->statusTip()); item->label->setWhatsThis(property->whatsThis()); item->label->setEnabled(property->isEnabled()); } if (item->widgetLabel) { QFont font = item->widgetLabel->font(); font.setUnderline(false); item->widgetLabel->setFont(font); item->widgetLabel->setText(property->valueText()); item->widgetLabel->setToolTip(property->valueText()); item->widgetLabel->setEnabled(property->isEnabled()); } if (item->widget) { QFont font = item->widget->font(); font.setUnderline(false); item->widget->setFont(font); item->widget->setEnabled(property->isEnabled()); item->widget->setToolTip(property->valueText()); } } /*! \class QtButtonPropertyBrowser \brief The QtButtonPropertyBrowser class provides a drop down QToolButton based property browser. A property browser is a widget that enables the user to edit a given set of properties. Each property is represented by a label specifying the property's name, and an editing widget (e.g. a line edit or a combobox) holding its value. A property can have zero or more subproperties. QtButtonPropertyBrowser provides drop down button for all nested properties, i.e. subproperties are enclosed by a container associated with the drop down button. The parent property's name is displayed as button text. For example: \image qtbuttonpropertybrowser.png Use the QtAbstractPropertyBrowser API to add, insert and remove properties from an instance of the QtButtonPropertyBrowser class. The properties themselves are created and managed by implementations of the QtAbstractPropertyManager class. \sa QtTreePropertyBrowser, QtAbstractPropertyBrowser */ /*! \fn void QtButtonPropertyBrowser::collapsed(QtBrowserItem *item) This signal is emitted when the \a item is collapsed. \sa expanded(), setExpanded() */ /*! \fn void QtButtonPropertyBrowser::expanded(QtBrowserItem *item) This signal is emitted when the \a item is expanded. \sa collapsed(), setExpanded() */ /*! Creates a property browser with the given \a parent. */ QtButtonPropertyBrowser::QtButtonPropertyBrowser(QWidget *parent) : QtAbstractPropertyBrowser(parent) { d_ptr = new QtButtonPropertyBrowserPrivate; d_ptr->q_ptr = this; d_ptr->init(this); } /*! Destroys this property browser. Note that the properties that were inserted into this browser are \e not destroyed since they may still be used in other browsers. The properties are owned by the manager that created them. \sa QtProperty, QtAbstractPropertyManager */ QtButtonPropertyBrowser::~QtButtonPropertyBrowser() { const QMap::ConstIterator icend = d_ptr->m_itemToIndex.constEnd(); for (QMap::ConstIterator it = d_ptr->m_itemToIndex.constBegin(); it != icend; ++it) delete it.key(); delete d_ptr; } /*! \reimp */ void QtButtonPropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) { d_ptr->propertyInserted(item, afterItem); } /*! \reimp */ void QtButtonPropertyBrowser::itemRemoved(QtBrowserItem *item) { d_ptr->propertyRemoved(item); } /*! \reimp */ void QtButtonPropertyBrowser::itemChanged(QtBrowserItem *item) { d_ptr->propertyChanged(item); } /*! Sets the \a item to either collapse or expanded, depending on the value of \a expanded. \sa isExpanded(), expanded(), collapsed() */ void QtButtonPropertyBrowser::setExpanded(QtBrowserItem *item, bool expanded) { QtButtonPropertyBrowserPrivate::WidgetItem *itm = d_ptr->m_indexToItem.value(item); if (itm) d_ptr->setExpanded(itm, expanded); } /*! Returns true if the \a item is expanded; otherwise returns false. \sa setExpanded() */ bool QtButtonPropertyBrowser::isExpanded(QtBrowserItem *item) const { QtButtonPropertyBrowserPrivate::WidgetItem *itm = d_ptr->m_indexToItem.value(item); if (itm) return itm->expanded; return false; } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qtbuttonpropertybrowser.cpp" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.cmake000644 001750 001750 00000002160 11617757645 031536 0ustar00simonesimone000000 000000 INCLUDE(../common.cmake OPTIONAL) INCLUDEPATH += $$PWD DEPENDPATH += $$PWD qtpropertybrowser-uselib:!qtpropertybrowser-buildlib { LIBS += -L$$QTPROPERTYBROWSER_LIBDIR -l$$QTPROPERTYBROWSER_LIBNAME } else { SOURCES += $$PWD/qtpropertybrowser.cpp \ $$PWD/qtpropertymanager.cpp \ $$PWD/qteditorfactory.cpp \ $$PWD/qtvariantproperty.cpp \ $$PWD/qttreepropertybrowser.cpp \ $$PWD/qtbuttonpropertybrowser.cpp \ $$PWD/qtgroupboxpropertybrowser.cpp \ $$PWD/qtpropertybrowserutils.cpp HEADERS += $$PWD/qtpropertybrowser.h \ $$PWD/qtpropertymanager.h \ $$PWD/qteditorfactory.h \ $$PWD/qtvariantproperty.h \ $$PWD/qttreepropertybrowser.h \ $$PWD/qtbuttonpropertybrowser.h \ $$PWD/qtgroupboxpropertybrowser.h \ $$PWD/qtpropertybrowserutils_p.h RESOURCES += $$PWD/qtpropertybrowser.qrc } win32 { contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTPROPERTYBROWSER_EXPORT else:qtpropertybrowser-uselib:DEFINES += QT_QTPROPERTYBROWSER_IMPORT } QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtFlagPropertyManager000644 001750 001750 00000000037 11617757645 031041 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtVariantProperty000644 001750 001750 00000000037 11617757645 030301 0ustar00simonesimone000000 000000 #include "qtvariantproperty.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.cpp000644 001750 001750 00000200322 11617757645 031240 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtpropertybrowser.h" #include #include #include #if defined(Q_CC_MSVC) # pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ #endif #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtPropertyPrivate { public: QtPropertyPrivate(QtAbstractPropertyManager *manager) : m_enabled(true), m_modified(false), m_manager(manager) {} QtProperty *q_ptr; QSet m_parentItems; QList m_subItems; QString m_toolTip; QString m_statusTip; QString m_whatsThis; QString m_name; bool m_enabled; bool m_modified; QtAbstractPropertyManager * const m_manager; }; class QtAbstractPropertyManagerPrivate { QtAbstractPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtAbstractPropertyManager) public: void propertyDestroyed(QtProperty *property); void propertyChanged(QtProperty *property) const; void propertyRemoved(QtProperty *property, QtProperty *parentProperty) const; void propertyInserted(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty) const; QSet m_properties; }; /*! \class QtProperty \brief The QtProperty class encapsulates an instance of a property. Properties are created by objects of QtAbstractPropertyManager subclasses; a manager can create properties of a given type, and is used in conjunction with the QtAbstractPropertyBrowser class. A property is always owned by the manager that created it, which can be retrieved using the propertyManager() function. QtProperty contains the most common property attributes, and provides functions for retrieving as well as setting their values: \table \header \o Getter \o Setter \row \o propertyName() \o setPropertyName() \row \o statusTip() \o setStatusTip() \row \o toolTip() \o setToolTip() \row \o whatsThis() \o setWhatsThis() \row \o isEnabled() \o setEnabled() \row \o isModified() \o setModified() \row \o valueText() \o Nop \row \o valueIcon() \o Nop \endtable It is also possible to nest properties: QtProperty provides the addSubProperty(), insertSubProperty() and removeSubProperty() functions to manipulate the set of subproperties. Use the subProperties() function to retrieve a property's current set of subproperties. Note that nested properties are not owned by the parent property, i.e. each subproperty is owned by the manager that created it. \sa QtAbstractPropertyManager, QtBrowserItem */ /*! Creates a property with the given \a manager. This constructor is only useful when creating a custom QtProperty subclass (e.g. QtVariantProperty). To create a regular QtProperty object, use the QtAbstractPropertyManager::addProperty() function instead. \sa QtAbstractPropertyManager::addProperty() */ QtProperty::QtProperty(QtAbstractPropertyManager *manager) { d_ptr = new QtPropertyPrivate(manager); d_ptr->q_ptr = this; } /*! Destroys this property. Note that subproperties are detached but not destroyed, i.e. they can still be used in another context. \sa QtAbstractPropertyManager::clear() */ QtProperty::~QtProperty() { QSetIterator itParent(d_ptr->m_parentItems); while (itParent.hasNext()) { QtProperty *property = itParent.next(); property->d_ptr->m_manager->d_ptr->propertyRemoved(this, property); } d_ptr->m_manager->d_ptr->propertyDestroyed(this); QListIterator itChild(d_ptr->m_subItems); while (itChild.hasNext()) { QtProperty *property = itChild.next(); property->d_ptr->m_parentItems.remove(this); } itParent.toFront(); while (itParent.hasNext()) { QtProperty *property = itParent.next(); property->d_ptr->m_subItems.removeAll(this); } delete d_ptr; } /*! Returns the set of subproperties. Note that subproperties are not owned by \e this property, but by the manager that created them. \sa insertSubProperty(), removeSubProperty() */ QList QtProperty::subProperties() const { return d_ptr->m_subItems; } /*! Returns a pointer to the manager that owns this property. */ QtAbstractPropertyManager *QtProperty::propertyManager() const { return d_ptr->m_manager; } /*! Returns the property's tool tip. \sa setToolTip() */ QString QtProperty::toolTip() const { return d_ptr->m_toolTip; } /*! Returns the property's status tip. \sa setStatusTip() */ QString QtProperty::statusTip() const { return d_ptr->m_statusTip; } /*! Returns the property's "What's This" help text. \sa setWhatsThis() */ QString QtProperty::whatsThis() const { return d_ptr->m_whatsThis; } /*! Returns the property's name. \sa setPropertyName() */ QString QtProperty::propertyName() const { return d_ptr->m_name; } /*! Returns whether the property is enabled. \sa setEnabled() */ bool QtProperty::isEnabled() const { return d_ptr->m_enabled; } /*! Returns whether the property is modified. \sa setModified() */ bool QtProperty::isModified() const { return d_ptr->m_modified; } /*! Returns whether the property has a value. \sa QtAbstractPropertyManager::hasValue() */ bool QtProperty::hasValue() const { return d_ptr->m_manager->hasValue(this); } /*! Returns an icon representing the current state of this property. If the given property type can not generate such an icon, this function returns an invalid icon. \sa QtAbstractPropertyManager::valueIcon() */ QIcon QtProperty::valueIcon() const { return d_ptr->m_manager->valueIcon(this); } /*! Returns a string representing the current state of this property. If the given property type can not generate such a string, this function returns an empty string. \sa QtAbstractPropertyManager::valueText() */ QString QtProperty::valueText() const { return d_ptr->m_manager->valueText(this); } /*! Sets the property's tool tip to the given \a text. \sa toolTip() */ void QtProperty::setToolTip(const QString &text) { if (d_ptr->m_toolTip == text) return; d_ptr->m_toolTip = text; propertyChanged(); } /*! Sets the property's status tip to the given \a text. \sa statusTip() */ void QtProperty::setStatusTip(const QString &text) { if (d_ptr->m_statusTip == text) return; d_ptr->m_statusTip = text; propertyChanged(); } /*! Sets the property's "What's This" help text to the given \a text. \sa whatsThis() */ void QtProperty::setWhatsThis(const QString &text) { if (d_ptr->m_whatsThis == text) return; d_ptr->m_whatsThis = text; propertyChanged(); } /*! \fn void QtProperty::setPropertyName(const QString &name) Sets the property's name to the given \a name. \sa propertyName() */ void QtProperty::setPropertyName(const QString &text) { if (d_ptr->m_name == text) return; d_ptr->m_name = text; propertyChanged(); } /*! Enables or disables the property according to the passed \a enable value. \sa isEnabled() */ void QtProperty::setEnabled(bool enable) { if (d_ptr->m_enabled == enable) return; d_ptr->m_enabled = enable; propertyChanged(); } /*! Sets the property's modified state according to the passed \a modified value. \sa isModified() */ void QtProperty::setModified(bool modified) { if (d_ptr->m_modified == modified) return; d_ptr->m_modified = modified; propertyChanged(); } /*! Appends the given \a property to this property's subproperties. If the given \a property already is added, this function does nothing. \sa insertSubProperty(), removeSubProperty() */ void QtProperty::addSubProperty(QtProperty *property) { QtProperty *after = 0; if (d_ptr->m_subItems.count() > 0) after = d_ptr->m_subItems.last(); insertSubProperty(property, after); } /*! \fn void QtProperty::insertSubProperty(QtProperty *property, QtProperty *precedingProperty) Inserts the given \a property after the specified \a precedingProperty into this property's list of subproperties. If \a precedingProperty is 0, the specified \a property is inserted at the beginning of the list. If the given \a property already is inserted, this function does nothing. \sa addSubProperty(), removeSubProperty() */ void QtProperty::insertSubProperty(QtProperty *property, QtProperty *afterProperty) { if (!property) return; if (property == this) return; // traverse all children of item. if this item is a child of item then cannot add. QList pendingList = property->subProperties(); QMap visited; while (!pendingList.isEmpty()) { QtProperty *i = pendingList.first(); if (i == this) return; pendingList.removeFirst(); if (visited.contains(i)) continue; visited[i] = true; pendingList += i->subProperties(); } pendingList = subProperties(); int pos = 0; int newPos = 0; QtProperty *properAfterProperty = 0; while (pos < pendingList.count()) { QtProperty *i = pendingList.at(pos); if (i == property) return; // if item is already inserted in this item then cannot add. if (i == afterProperty) { newPos = pos + 1; properAfterProperty = afterProperty; } pos++; } d_ptr->m_subItems.insert(newPos, property); property->d_ptr->m_parentItems.insert(this); d_ptr->m_manager->d_ptr->propertyInserted(property, this, properAfterProperty); } /*! Removes the given \a property from the list of subproperties without deleting it. \sa addSubProperty(), insertSubProperty() */ void QtProperty::removeSubProperty(QtProperty *property) { if (!property) return; d_ptr->m_manager->d_ptr->propertyRemoved(property, this); QList pendingList = subProperties(); int pos = 0; while (pos < pendingList.count()) { if (pendingList.at(pos) == property) { d_ptr->m_subItems.removeAt(pos); property->d_ptr->m_parentItems.remove(this); return; } pos++; } } /*! \internal */ void QtProperty::propertyChanged() { d_ptr->m_manager->d_ptr->propertyChanged(this); } //////////////////////////////// void QtAbstractPropertyManagerPrivate::propertyDestroyed(QtProperty *property) { if (m_properties.contains(property)) { emit q_ptr->propertyDestroyed(property); q_ptr->uninitializeProperty(property); m_properties.remove(property); } } void QtAbstractPropertyManagerPrivate::propertyChanged(QtProperty *property) const { emit q_ptr->propertyChanged(property); } void QtAbstractPropertyManagerPrivate::propertyRemoved(QtProperty *property, QtProperty *parentProperty) const { emit q_ptr->propertyRemoved(property, parentProperty); } void QtAbstractPropertyManagerPrivate::propertyInserted(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty) const { emit q_ptr->propertyInserted(property, parentProperty, afterProperty); } /*! \class QtAbstractPropertyManager \brief The QtAbstractPropertyManager provides an interface for property managers. A manager can create and manage properties of a given type, and is used in conjunction with the QtAbstractPropertyBrowser class. When using a property browser widget, the properties are created and managed by implementations of the QtAbstractPropertyManager class. To ensure that the properties' values will be displayed using suitable editing widgets, the managers are associated with objects of QtAbstractEditorFactory subclasses. The property browser will use these associations to determine which factories it should use to create the preferred editing widgets. The QtAbstractPropertyManager class provides common functionality like creating a property using the addProperty() function, and retrieving the properties created by the manager using the properties() function. The class also provides signals that are emitted when the manager's properties change: propertyInserted(), propertyRemoved(), propertyChanged() and propertyDestroyed(). QtAbstractPropertyManager subclasses are supposed to provide their own type specific API. Note that several ready-made implementations are available: \list \o QtBoolPropertyManager \o QtColorPropertyManager \o QtDatePropertyManager \o QtDateTimePropertyManager \o QtDoublePropertyManager \o QtEnumPropertyManager \o QtFlagPropertyManager \o QtFontPropertyManager \o QtGroupPropertyManager \o QtIntPropertyManager \o QtPointPropertyManager \o QtRectPropertyManager \o QtSizePropertyManager \o QtSizePolicyPropertyManager \o QtStringPropertyManager \o QtTimePropertyManager \o QtVariantPropertyManager \endlist \sa QtAbstractEditorFactoryBase, QtAbstractPropertyBrowser, QtProperty */ /*! \fn void QtAbstractPropertyManager::propertyInserted(QtProperty *newProperty, QtProperty *parentProperty, QtProperty *precedingProperty) This signal is emitted when a new subproperty is inserted into an existing property, passing pointers to the \a newProperty, \a parentProperty and \a precedingProperty as parameters. If \a precedingProperty is 0, the \a newProperty was inserted at the beginning of the \a parentProperty's subproperties list. Note that signal is emitted only if the \a parentProperty is created by this manager. \sa QtAbstractPropertyBrowser::itemInserted() */ /*! \fn void QtAbstractPropertyManager::propertyChanged(QtProperty *property) This signal is emitted whenever a property's data changes, passing a pointer to the \a property as parameter. Note that signal is only emitted for properties that are created by this manager. \sa QtAbstractPropertyBrowser::itemChanged() */ /*! \fn void QtAbstractPropertyManager::propertyRemoved(QtProperty *property, QtProperty *parent) This signal is emitted when a subproperty is removed, passing pointers to the removed \a property and the \a parent property as parameters. Note that signal is emitted only when the \a parent property is created by this manager. \sa QtAbstractPropertyBrowser::itemRemoved() */ /*! \fn void QtAbstractPropertyManager::propertyDestroyed(QtProperty *property) This signal is emitted when the specified \a property is about to be destroyed. Note that signal is only emitted for properties that are created by this manager. \sa clear(), uninitializeProperty() */ /*! \fn void QtAbstractPropertyBrowser::currentItemChanged(QtBrowserItem *current) This signal is emitted when the current item changes. The current item is specified by \a current. \sa QtAbstractPropertyBrowser::setCurrentItem() */ /*! Creates an abstract property manager with the given \a parent. */ QtAbstractPropertyManager::QtAbstractPropertyManager(QObject *parent) : QObject(parent) { d_ptr = new QtAbstractPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys the manager. All properties created by the manager are destroyed. */ QtAbstractPropertyManager::~QtAbstractPropertyManager() { clear(); delete d_ptr; } /*! Destroys all the properties that this manager has created. \sa propertyDestroyed(), uninitializeProperty() */ void QtAbstractPropertyManager::clear() const { while (!properties().isEmpty()) { QSetIterator itProperty(properties()); QtProperty *prop = itProperty.next(); delete prop; } } /*! Returns the set of properties created by this manager. \sa addProperty() */ QSet QtAbstractPropertyManager::properties() const { return d_ptr->m_properties; } /*! Returns whether the given \a property has a value. The default implementation of this function returns true. \sa QtProperty::hasValue() */ bool QtAbstractPropertyManager::hasValue(const QtProperty *property) const { Q_UNUSED(property) return true; } /*! Returns an icon representing the current state of the given \a property. The default implementation of this function returns an invalid icon. \sa QtProperty::valueIcon() */ QIcon QtAbstractPropertyManager::valueIcon(const QtProperty *property) const { Q_UNUSED(property) return QIcon(); } /*! Returns a string representing the current state of the given \a property. The default implementation of this function returns an empty string. \sa QtProperty::valueText() */ QString QtAbstractPropertyManager::valueText(const QtProperty *property) const { Q_UNUSED(property) return QString(); } /*! Creates a property with the given \a name which then is owned by this manager. Internally, this function calls the createProperty() and initializeProperty() functions. \sa initializeProperty(), properties() */ QtProperty *QtAbstractPropertyManager::addProperty(const QString &name) { QtProperty *property = createProperty(); if (property) { property->setPropertyName(name); d_ptr->m_properties.insert(property); initializeProperty(property); } return property; } /*! Creates a property. The base implementation produce QtProperty instances; Reimplement this function to make this manager produce objects of a QtProperty subclass. \sa addProperty(), initializeProperty() */ QtProperty *QtAbstractPropertyManager::createProperty() { return new QtProperty(this); } /*! \fn void QtAbstractPropertyManager::initializeProperty(QtProperty *property) = 0 This function is called whenever a new valid property pointer has been created, passing the pointer as parameter. The purpose is to let the manager know that the \a property has been created so that it can provide additional attributes for the new property, e.g. QtIntPropertyManager adds \l {QtIntPropertyManager::value()}{value}, \l {QtIntPropertyManager::minimum()}{minimum} and \l {QtIntPropertyManager::maximum()}{maximum} attributes. Since each manager subclass adds type specific attributes, this function is pure virtual and must be reimplemented when deriving from the QtAbstractPropertyManager class. \sa addProperty(), createProperty() */ /*! This function is called just before the specified \a property is destroyed. The purpose is to let the property manager know that the \a property is being destroyed so that it can remove the property's additional attributes. \sa clear(), propertyDestroyed() */ void QtAbstractPropertyManager::uninitializeProperty(QtProperty *property) { Q_UNUSED(property) } //////////////////////////////////// /*! \class QtAbstractEditorFactoryBase \brief The QtAbstractEditorFactoryBase provides an interface for editor factories. An editor factory is a class that is able to create an editing widget of a specified type (e.g. line edits or comboboxes) for a given QtProperty object, and it is used in conjunction with the QtAbstractPropertyManager and QtAbstractPropertyBrowser classes. When using a property browser widget, the properties are created and managed by implementations of the QtAbstractPropertyManager class. To ensure that the properties' values will be displayed using suitable editing widgets, the managers are associated with objects of QtAbstractEditorFactory subclasses. The property browser will use these associations to determine which factories it should use to create the preferred editing widgets. Typically, an editor factory is created by subclassing the QtAbstractEditorFactory template class which inherits QtAbstractEditorFactoryBase. But note that several ready-made implementations are available: \list \o QtCheckBoxFactory \o QtDateEditFactory \o QtDateTimeEditFactory \o QtDoubleSpinBoxFactory \o QtEnumEditorFactory \o QtLineEditFactory \o QtScrollBarFactory \o QtSliderFactory \o QtSpinBoxFactory \o QtTimeEditFactory \o QtVariantEditorFactory \endlist \sa QtAbstractPropertyManager, QtAbstractPropertyBrowser */ /*! \fn virtual QWidget *QtAbstractEditorFactoryBase::createEditor(QtProperty *property, QWidget *parent) = 0 Creates an editing widget (with the given \a parent) for the given \a property. This function is reimplemented in QtAbstractEditorFactory template class which also provides a pure virtual convenience overload of this function enabling access to the property's manager. \sa QtAbstractEditorFactory::createEditor() */ /*! \fn QtAbstractEditorFactoryBase::QtAbstractEditorFactoryBase(QObject *parent = 0) Creates an abstract editor factory with the given \a parent. */ /*! \fn virtual void QtAbstractEditorFactoryBase::breakConnection(QtAbstractPropertyManager *manager) = 0 \internal Detaches property manager from factory. This method is reimplemented in QtAbstractEditorFactory template subclass. You don't need to reimplement it in your subclasses. Instead implement more convenient QtAbstractEditorFactory::disconnectPropertyManager() which gives you access to particular manager subclass. */ /*! \fn virtual void QtAbstractEditorFactoryBase::managerDestroyed(QObject *manager) = 0 \internal This method is called when property manager is being destroyed. Basically it notifies factory not to produce editors for properties owned by \a manager. You don't need to reimplement it in your subclass. This method is implemented in QtAbstractEditorFactory template subclass. */ /*! \class QtAbstractEditorFactory \brief The QtAbstractEditorFactory is the base template class for editor factories. An editor factory is a class that is able to create an editing widget of a specified type (e.g. line edits or comboboxes) for a given QtProperty object, and it is used in conjunction with the QtAbstractPropertyManager and QtAbstractPropertyBrowser classes. Note that the QtAbstractEditorFactory functions are using the PropertyManager template argument class which can be any QtAbstractPropertyManager subclass. For example: \code QtSpinBoxFactory *factory; QSet managers = factory->propertyManagers(); \endcode Note that QtSpinBoxFactory by definition creates editing widgets \e only for properties created by QtIntPropertyManager. When using a property browser widget, the properties are created and managed by implementations of the QtAbstractPropertyManager class. To ensure that the properties' values will be displayed using suitable editing widgets, the managers are associated with objects of QtAbstractEditorFactory subclasses. The property browser will use these associations to determine which factories it should use to create the preferred editing widgets. A QtAbstractEditorFactory object is capable of producing editors for several property managers at the same time. To create an association between this factory and a given manager, use the addPropertyManager() function. Use the removePropertyManager() function to make this factory stop producing editors for a given property manager. Use the propertyManagers() function to retrieve the set of managers currently associated with this factory. Several ready-made implementations of the QtAbstractEditorFactory class are available: \list \o QtCheckBoxFactory \o QtDateEditFactory \o QtDateTimeEditFactory \o QtDoubleSpinBoxFactory \o QtEnumEditorFactory \o QtLineEditFactory \o QtScrollBarFactory \o QtSliderFactory \o QtSpinBoxFactory \o QtTimeEditFactory \o QtVariantEditorFactory \endlist When deriving from the QtAbstractEditorFactory class, several pure virtual functions must be implemented: the connectPropertyManager() function is used by the factory to connect to the given manager's signals, the createEditor() function is supposed to create an editor for the given property controlled by the given manager, and finally the disconnectPropertyManager() function is used by the factory to disconnect from the specified manager's signals. \sa QtAbstractEditorFactoryBase, QtAbstractPropertyManager */ /*! \fn QtAbstractEditorFactory::QtAbstractEditorFactory(QObject *parent = 0) Creates an editor factory with the given \a parent. \sa addPropertyManager() */ /*! \fn QWidget *QtAbstractEditorFactory::createEditor(QtProperty *property, QWidget *parent) Creates an editing widget (with the given \a parent) for the given \a property. */ /*! \fn void QtAbstractEditorFactory::addPropertyManager(PropertyManager *manager) Adds the given \a manager to this factory's set of managers, making this factory produce editing widgets for properties created by the given manager. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. \sa propertyManagers(), removePropertyManager() */ /*! \fn void QtAbstractEditorFactory::removePropertyManager(PropertyManager *manager) Removes the given \a manager from this factory's set of managers. The PropertyManager type is a template argument class, and may be any QtAbstractPropertyManager subclass. \sa propertyManagers(), addPropertyManager() */ /*! \fn virtual void QtAbstractEditorFactory::connectPropertyManager(PropertyManager *manager) = 0 Connects this factory to the given \a manager's signals. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. This function is used internally by the addPropertyManager() function, and makes it possible to update an editing widget when the associated property's data changes. This is typically done in custom slots responding to the signals emitted by the property's manager, e.g. QtIntPropertyManager::valueChanged() and QtIntPropertyManager::rangeChanged(). \sa propertyManagers(), disconnectPropertyManager() */ /*! \fn virtual QWidget *QtAbstractEditorFactory::createEditor(PropertyManager *manager, QtProperty *property, QWidget *parent) = 0 Creates an editing widget with the given \a parent for the specified \a property created by the given \a manager. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. This function must be implemented in derived classes: It is recommended to store a pointer to the widget and map it to the given \a property, since the widget must be updated whenever the associated property's data changes. This is typically done in custom slots responding to the signals emitted by the property's manager, e.g. QtIntPropertyManager::valueChanged() and QtIntPropertyManager::rangeChanged(). \sa connectPropertyManager() */ /*! \fn virtual void QtAbstractEditorFactory::disconnectPropertyManager(PropertyManager *manager) = 0 Disconnects this factory from the given \a manager's signals. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. This function is used internally by the removePropertyManager() function. \sa propertyManagers(), connectPropertyManager() */ /*! \fn QSet QtAbstractEditorFactory::propertyManagers() const Returns the factory's set of associated managers. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. \sa addPropertyManager(), removePropertyManager() */ /*! \fn PropertyManager *QtAbstractEditorFactory::propertyManager(QtProperty *property) const Returns the property manager for the given \a property, or 0 if the given \a property doesn't belong to any of this factory's registered managers. The PropertyManager type is a template argument class, and represents the chosen QtAbstractPropertyManager subclass. \sa propertyManagers() */ /*! \fn virtual void QtAbstractEditorFactory::managerDestroyed(QObject *manager) \internal \reimp */ //////////////////////////////////// class QtBrowserItemPrivate { public: QtBrowserItemPrivate(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent) : m_browser(browser), m_property(property), m_parent(parent), q_ptr(0) {} void addChild(QtBrowserItem *index, QtBrowserItem *after); void removeChild(QtBrowserItem *index); QtAbstractPropertyBrowser * const m_browser; QtProperty *m_property; QtBrowserItem *m_parent; QtBrowserItem *q_ptr; QList m_children; }; void QtBrowserItemPrivate::addChild(QtBrowserItem *index, QtBrowserItem *after) { if (m_children.contains(index)) return; int idx = m_children.indexOf(after) + 1; // we insert after returned idx, if it was -1 then we set idx to 0; m_children.insert(idx, index); } void QtBrowserItemPrivate::removeChild(QtBrowserItem *index) { m_children.removeAll(index); } /*! \class QtBrowserItem \brief The QtBrowserItem class represents a property in a property browser instance. Browser items are created whenever a QtProperty is inserted to the property browser. A QtBrowserItem uniquely identifies a browser's item. Thus, if the same QtProperty is inserted multiple times, each occurrence gets its own unique QtBrowserItem. The items are owned by QtAbstractPropertyBrowser and automatically deleted when they are removed from the browser. You can traverse a browser's properties by calling parent() and children(). The property and the browser associated with an item are available as property() and browser(). \sa QtAbstractPropertyBrowser, QtProperty */ /*! Returns the property which is accosiated with this item. Note that several items can be associated with the same property instance in the same property browser. \sa QtAbstractPropertyBrowser::items() */ QtProperty *QtBrowserItem::property() const { return d_ptr->m_property; } /*! Returns the parent item of \e this item. Returns 0 if \e this item is associated with top-level property in item's property browser. \sa children() */ QtBrowserItem *QtBrowserItem::parent() const { return d_ptr->m_parent; } /*! Returns the children items of \e this item. The properties reproduced from children items are always the same as reproduced from associated property' children, for example: \code QtBrowserItem *item; QList childrenItems = item->children(); QList childrenProperties = item->property()->subProperties(); \endcode The \e childrenItems list represents the same list as \e childrenProperties. */ QList QtBrowserItem::children() const { return d_ptr->m_children; } /*! Returns the property browser which owns \e this item. */ QtAbstractPropertyBrowser *QtBrowserItem::browser() const { return d_ptr->m_browser; } QtBrowserItem::QtBrowserItem(QtAbstractPropertyBrowser *browser, QtProperty *property, QtBrowserItem *parent) { d_ptr = new QtBrowserItemPrivate(browser, property, parent); d_ptr->q_ptr = this; } QtBrowserItem::~QtBrowserItem() { delete d_ptr; } //////////////////////////////////// typedef QMap > Map1; typedef QMap > > Map2; Q_GLOBAL_STATIC(Map1, m_viewToManagerToFactory) Q_GLOBAL_STATIC(Map2, m_managerToFactoryToViews) class QtAbstractPropertyBrowserPrivate { QtAbstractPropertyBrowser *q_ptr; Q_DECLARE_PUBLIC(QtAbstractPropertyBrowser) public: QtAbstractPropertyBrowserPrivate(); void insertSubTree(QtProperty *property, QtProperty *parentProperty); void removeSubTree(QtProperty *property, QtProperty *parentProperty); void createBrowserIndexes(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty); void removeBrowserIndexes(QtProperty *property, QtProperty *parentProperty); QtBrowserItem *createBrowserIndex(QtProperty *property, QtBrowserItem *parentIndex, QtBrowserItem *afterIndex); void removeBrowserIndex(QtBrowserItem *index); void clearIndex(QtBrowserItem *index); void slotPropertyInserted(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty); void slotPropertyRemoved(QtProperty *property, QtProperty *parentProperty); void slotPropertyDestroyed(QtProperty *property); void slotPropertyDataChanged(QtProperty *property); QList m_subItems; QMap > m_managerToProperties; QMap > m_propertyToParents; QMap m_topLevelPropertyToIndex; QList m_topLevelIndexes; QMap > m_propertyToIndexes; QtBrowserItem *m_currentItem; }; QtAbstractPropertyBrowserPrivate::QtAbstractPropertyBrowserPrivate() : m_currentItem(0) { } void QtAbstractPropertyBrowserPrivate::insertSubTree(QtProperty *property, QtProperty *parentProperty) { if (m_propertyToParents.contains(property)) { // property was already inserted, so its manager is connected // and all its children are inserted and theirs managers are connected // we just register new parent (parent has to be new). m_propertyToParents[property].append(parentProperty); // don't need to update m_managerToProperties map since // m_managerToProperties[manager] already contains property. return; } QtAbstractPropertyManager *manager = property->propertyManager(); if (m_managerToProperties[manager].isEmpty()) { // connect manager's signals q_ptr->connect(manager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), q_ptr, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); q_ptr->connect(manager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), q_ptr, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); q_ptr->connect(manager, SIGNAL(propertyDestroyed(QtProperty *)), q_ptr, SLOT(slotPropertyDestroyed(QtProperty *))); q_ptr->connect(manager, SIGNAL(propertyChanged(QtProperty *)), q_ptr, SLOT(slotPropertyDataChanged(QtProperty *))); } m_managerToProperties[manager].append(property); m_propertyToParents[property].append(parentProperty); QList subList = property->subProperties(); QListIterator itSub(subList); while (itSub.hasNext()) { QtProperty *subProperty = itSub.next(); insertSubTree(subProperty, property); } } void QtAbstractPropertyBrowserPrivate::removeSubTree(QtProperty *property, QtProperty *parentProperty) { if (!m_propertyToParents.contains(property)) { // ASSERT return; } m_propertyToParents[property].removeAll(parentProperty); if (!m_propertyToParents[property].isEmpty()) return; m_propertyToParents.remove(property); QtAbstractPropertyManager *manager = property->propertyManager(); m_managerToProperties[manager].removeAll(property); if (m_managerToProperties[manager].isEmpty()) { // disconnect manager's signals q_ptr->disconnect(manager, SIGNAL(propertyInserted(QtProperty *, QtProperty *, QtProperty *)), q_ptr, SLOT(slotPropertyInserted(QtProperty *, QtProperty *, QtProperty *))); q_ptr->disconnect(manager, SIGNAL(propertyRemoved(QtProperty *, QtProperty *)), q_ptr, SLOT(slotPropertyRemoved(QtProperty *, QtProperty *))); q_ptr->disconnect(manager, SIGNAL(propertyDestroyed(QtProperty *)), q_ptr, SLOT(slotPropertyDestroyed(QtProperty *))); q_ptr->disconnect(manager, SIGNAL(propertyChanged(QtProperty *)), q_ptr, SLOT(slotPropertyDataChanged(QtProperty *))); m_managerToProperties.remove(manager); } QList subList = property->subProperties(); QListIterator itSub(subList); while (itSub.hasNext()) { QtProperty *subProperty = itSub.next(); removeSubTree(subProperty, property); } } void QtAbstractPropertyBrowserPrivate::createBrowserIndexes(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty) { QMap parentToAfter; if (afterProperty) { QMap >::ConstIterator it = m_propertyToIndexes.find(afterProperty); if (it == m_propertyToIndexes.constEnd()) return; QList indexes = it.value(); QListIterator itIndex(indexes); while (itIndex.hasNext()) { QtBrowserItem *idx = itIndex.next(); QtBrowserItem *parentIdx = idx->parent(); if ((parentProperty && parentIdx && parentIdx->property() == parentProperty) || (!parentProperty && !parentIdx)) parentToAfter[idx->parent()] = idx; } } else if (parentProperty) { QMap >::ConstIterator it = m_propertyToIndexes.find(parentProperty); if (it == m_propertyToIndexes.constEnd()) return; QList indexes = it.value(); QListIterator itIndex(indexes); while (itIndex.hasNext()) { QtBrowserItem *idx = itIndex.next(); parentToAfter[idx] = 0; } } else { parentToAfter[0] = 0; } const QMap::ConstIterator pcend = parentToAfter.constEnd(); for (QMap::ConstIterator it = parentToAfter.constBegin(); it != pcend; ++it) createBrowserIndex(property, it.key(), it.value()); } QtBrowserItem *QtAbstractPropertyBrowserPrivate::createBrowserIndex(QtProperty *property, QtBrowserItem *parentIndex, QtBrowserItem *afterIndex) { QtBrowserItem *newIndex = new QtBrowserItem(q_ptr, property, parentIndex); if (parentIndex) { parentIndex->d_ptr->addChild(newIndex, afterIndex); } else { m_topLevelPropertyToIndex[property] = newIndex; m_topLevelIndexes.insert(m_topLevelIndexes.indexOf(afterIndex) + 1, newIndex); } m_propertyToIndexes[property].append(newIndex); q_ptr->itemInserted(newIndex, afterIndex); QList subItems = property->subProperties(); QListIterator itChild(subItems); QtBrowserItem *afterChild = 0; while (itChild.hasNext()) { QtProperty *child = itChild.next(); afterChild = createBrowserIndex(child, newIndex, afterChild); } return newIndex; } void QtAbstractPropertyBrowserPrivate::removeBrowserIndexes(QtProperty *property, QtProperty *parentProperty) { QList toRemove; QMap >::ConstIterator it = m_propertyToIndexes.find(property); if (it == m_propertyToIndexes.constEnd()) return; QList indexes = it.value(); QListIterator itIndex(indexes); while (itIndex.hasNext()) { QtBrowserItem *idx = itIndex.next(); QtBrowserItem *parentIdx = idx->parent(); if ((parentProperty && parentIdx && parentIdx->property() == parentProperty) || (!parentProperty && !parentIdx)) toRemove.append(idx); } QListIterator itRemove(toRemove); while (itRemove.hasNext()) { QtBrowserItem *index = itRemove.next(); removeBrowserIndex(index); } } void QtAbstractPropertyBrowserPrivate::removeBrowserIndex(QtBrowserItem *index) { QList children = index->children(); for (int i = children.count(); i > 0; i--) { removeBrowserIndex(children.at(i - 1)); } q_ptr->itemRemoved(index); if (index->parent()) { index->parent()->d_ptr->removeChild(index); } else { m_topLevelPropertyToIndex.remove(index->property()); m_topLevelIndexes.removeAll(index); } QtProperty *property = index->property(); m_propertyToIndexes[property].removeAll(index); if (m_propertyToIndexes[property].isEmpty()) m_propertyToIndexes.remove(property); delete index; } void QtAbstractPropertyBrowserPrivate::clearIndex(QtBrowserItem *index) { QList children = index->children(); QListIterator itChild(children); while (itChild.hasNext()) { clearIndex(itChild.next()); } delete index; } void QtAbstractPropertyBrowserPrivate::slotPropertyInserted(QtProperty *property, QtProperty *parentProperty, QtProperty *afterProperty) { if (!m_propertyToParents.contains(parentProperty)) return; createBrowserIndexes(property, parentProperty, afterProperty); insertSubTree(property, parentProperty); //q_ptr->propertyInserted(property, parentProperty, afterProperty); } void QtAbstractPropertyBrowserPrivate::slotPropertyRemoved(QtProperty *property, QtProperty *parentProperty) { if (!m_propertyToParents.contains(parentProperty)) return; removeSubTree(property, parentProperty); // this line should be probably moved down after propertyRemoved call //q_ptr->propertyRemoved(property, parentProperty); removeBrowserIndexes(property, parentProperty); } void QtAbstractPropertyBrowserPrivate::slotPropertyDestroyed(QtProperty *property) { if (!m_subItems.contains(property)) return; q_ptr->removeProperty(property); } void QtAbstractPropertyBrowserPrivate::slotPropertyDataChanged(QtProperty *property) { if (!m_propertyToParents.contains(property)) return; QMap >::ConstIterator it = m_propertyToIndexes.find(property); if (it == m_propertyToIndexes.constEnd()) return; QList indexes = it.value(); QListIterator itIndex(indexes); while (itIndex.hasNext()) { QtBrowserItem *idx = itIndex.next(); q_ptr->itemChanged(idx); } //q_ptr->propertyChanged(property); } /*! \class QtAbstractPropertyBrowser \brief QtAbstractPropertyBrowser provides a base class for implementing property browsers. A property browser is a widget that enables the user to edit a given set of properties. Each property is represented by a label specifying the property's name, and an editing widget (e.g. a line edit or a combobox) holding its value. A property can have zero or more subproperties. \image qtpropertybrowser.png The top level properties can be retrieved using the properties() function. To traverse each property's subproperties, use the QtProperty::subProperties() function. In addition, the set of top level properties can be manipulated using the addProperty(), insertProperty() and removeProperty() functions. Note that the QtProperty class provides a corresponding set of functions making it possible to manipulate the set of subproperties as well. To remove all the properties from the property browser widget, use the clear() function. This function will clear the editor, but it will not delete the properties since they can still be used in other editors. The properties themselves are created and managed by implementations of the QtAbstractPropertyManager class. A manager can handle (i.e. create and manage) properties of a given type. In the property browser the managers are associated with implementations of the QtAbstractEditorFactory: A factory is a class able to create an editing widget of a specified type. When using a property browser widget, managers must be created for each of the required property types before the properties themselves can be created. To ensure that the properties' values will be displayed using suitable editing widgets, the managers must be associated with objects of the preferred factory implementations using the setFactoryForManager() function. The property browser will use these associations to determine which factory it should use to create the preferred editing widget. Note that a factory can be associated with many managers, but a manager can only be associated with one single factory within the context of a single property browser. The associations between managers and factories can at any time be removed using the unsetFactoryForManager() function. Whenever the property data changes or a property is inserted or removed, the itemChanged(), itemInserted() or itemRemoved() functions are called, respectively. These functions must be reimplemented in derived classes in order to update the property browser widget. Be aware that some property instances can appear several times in an abstract tree structure. For example: \table 100% \row \o \code QtProperty *property1, *property2, *property3; property2->addSubProperty(property1); property3->addSubProperty(property2); QtAbstractPropertyBrowser *editor; editor->addProperty(property1); editor->addProperty(property2); editor->addProperty(property3); \endcode \o \image qtpropertybrowser-duplicate.png \endtable The addProperty() function returns a QtBrowserItem that uniquely identifies the created item. To make a property editable in the property browser, the createEditor() function must be called to provide the property with a suitable editing widget. Note that there are two ready-made property browser implementations: \list \o QtGroupBoxPropertyBrowser \o QtTreePropertyBrowser \endlist \sa QtAbstractPropertyManager, QtAbstractEditorFactoryBase */ /*! \fn void QtAbstractPropertyBrowser::setFactoryForManager(PropertyManager *manager, QtAbstractEditorFactory *factory) Connects the given \a manager to the given \a factory, ensuring that properties of the \a manager's type will be displayed with an editing widget suitable for their value. For example: \code QtIntPropertyManager *intManager; QtDoublePropertyManager *doubleManager; QtProperty *myInteger = intManager->addProperty(); QtProperty *myDouble = doubleManager->addProperty(); QtSpinBoxFactory *spinBoxFactory; QtDoubleSpinBoxFactory *doubleSpinBoxFactory; QtAbstractPropertyBrowser *editor; editor->setFactoryForManager(intManager, spinBoxFactory); editor->setFactoryForManager(doubleManager, doubleSpinBoxFactory); editor->addProperty(myInteger); editor->addProperty(myDouble); \endcode In this example the \c myInteger property's value is displayed with a QSpinBox widget, while the \c myDouble property's value is displayed with a QDoubleSpinBox widget. Note that a factory can be associated with many managers, but a manager can only be associated with one single factory. If the given \a manager already is associated with another factory, the old association is broken before the new one established. This function ensures that the given \a manager and the given \a factory are compatible, and it automatically calls the QtAbstractEditorFactory::addPropertyManager() function if necessary. \sa unsetFactoryForManager() */ /*! \fn virtual void QtAbstractPropertyBrowser::itemInserted(QtBrowserItem *insertedItem, QtBrowserItem *precedingItem) = 0 This function is called to update the widget whenever a property is inserted or added to the property browser, passing pointers to the \a insertedItem of property and the specified \a precedingItem as parameters. If \a precedingItem is 0, the \a insertedItem was put at the beginning of its parent item's list of subproperties. If the parent of \a insertedItem is 0, the \a insertedItem was added as a top level property of \e this property browser. This function must be reimplemented in derived classes. Note that if the \a insertedItem's property has subproperties, this method will be called for those properties as soon as the current call is finished. \sa insertProperty(), addProperty() */ /*! \fn virtual void QtAbstractPropertyBrowser::itemRemoved(QtBrowserItem *item) = 0 This function is called to update the widget whenever a property is removed from the property browser, passing the pointer to the \a item of the property as parameters. The passed \a item is deleted just after this call is finished. If the the parent of \a item is 0, the removed \a item was a top level property in this editor. This function must be reimplemented in derived classes. Note that if the removed \a item's property has subproperties, this method will be called for those properties just before the current call is started. \sa removeProperty() */ /*! \fn virtual void QtAbstractPropertyBrowser::itemChanged(QtBrowserItem *item) = 0 This function is called whenever a property's data changes, passing a pointer to the \a item of property as parameter. This function must be reimplemented in derived classes in order to update the property browser widget whenever a property's name, tool tip, status tip, "what's this" text, value text or value icon changes. Note that if the property browser contains several occurrences of the same property, this method will be called once for each occurrence (with a different item each time). \sa QtProperty, items() */ /*! Creates an abstract property browser with the given \a parent. */ QtAbstractPropertyBrowser::QtAbstractPropertyBrowser(QWidget *parent) : QWidget(parent) { d_ptr = new QtAbstractPropertyBrowserPrivate; d_ptr->q_ptr = this; } /*! Destroys the property browser, and destroys all the items that were created by this property browser. Note that the properties that were displayed in the editor are not deleted since they still can be used in other editors. Neither does the destructor delete the property managers and editor factories that were used by this property browser widget unless this widget was their parent. \sa QtAbstractPropertyManager::~QtAbstractPropertyManager() */ QtAbstractPropertyBrowser::~QtAbstractPropertyBrowser() { QList indexes = topLevelItems(); QListIterator itItem(indexes); while (itItem.hasNext()) d_ptr->clearIndex(itItem.next()); delete d_ptr; } /*! Returns the property browser's list of top level properties. To traverse the subproperties, use the QtProperty::subProperties() function. \sa addProperty(), insertProperty(), removeProperty() */ QList QtAbstractPropertyBrowser::properties() const { return d_ptr->m_subItems; } /*! Returns the property browser's list of all items associated with the given \a property. There is one item per instance of the property in the browser. \sa topLevelItem() */ QList QtAbstractPropertyBrowser::items(QtProperty *property) const { return d_ptr->m_propertyToIndexes.value(property); } /*! Returns the top-level items associated with the given \a property. Returns 0 if \a property wasn't inserted into this property browser or isn't a top-level one. \sa topLevelItems(), items() */ QtBrowserItem *QtAbstractPropertyBrowser::topLevelItem(QtProperty *property) const { return d_ptr->m_topLevelPropertyToIndex.value(property); } /*! Returns the list of top-level items. \sa topLevelItem() */ QList QtAbstractPropertyBrowser::topLevelItems() const { return d_ptr->m_topLevelIndexes; } /*! Removes all the properties from the editor, but does not delete them since they can still be used in other editors. \sa removeProperty(), QtAbstractPropertyManager::clear() */ void QtAbstractPropertyBrowser::clear() { QList subList = properties(); QListIterator itSub(subList); itSub.toBack(); while (itSub.hasPrevious()) { QtProperty *property = itSub.previous(); removeProperty(property); } } /*! Appends the given \a property (and its subproperties) to the property browser's list of top level properties. Returns the item created by property browser which is associated with the \a property. In order to get all children items created by the property browser in this call, the returned item should be traversed. If the specified \a property is already added, this function does nothing and returns 0. \sa insertProperty(), QtProperty::addSubProperty(), properties() */ QtBrowserItem *QtAbstractPropertyBrowser::addProperty(QtProperty *property) { QtProperty *afterProperty = 0; if (d_ptr->m_subItems.count() > 0) afterProperty = d_ptr->m_subItems.last(); return insertProperty(property, afterProperty); } /*! \fn QtBrowserItem *QtAbstractPropertyBrowser::insertProperty(QtProperty *property, QtProperty *afterProperty) Inserts the given \a property (and its subproperties) after the specified \a afterProperty in the browser's list of top level properties. Returns item created by property browser which is associated with the \a property. In order to get all children items created by the property browser in this call returned item should be traversed. If the specified \a afterProperty is 0, the given \a property is inserted at the beginning of the list. If \a property is already inserted, this function does nothing and returns 0. \sa addProperty(), QtProperty::insertSubProperty(), properties() */ QtBrowserItem *QtAbstractPropertyBrowser::insertProperty(QtProperty *property, QtProperty *afterProperty) { if (!property) return 0; // if item is already inserted in this item then cannot add. QList pendingList = properties(); int pos = 0; int newPos = 0; QtProperty *properAfterProperty = 0; while (pos < pendingList.count()) { QtProperty *prop = pendingList.at(pos); if (prop == property) return 0; if (prop == afterProperty) { newPos = pos + 1; properAfterProperty = afterProperty; } pos++; } d_ptr->createBrowserIndexes(property, 0, afterProperty); // traverse inserted subtree and connect to manager's signals d_ptr->insertSubTree(property, 0); d_ptr->m_subItems.insert(newPos, property); //propertyInserted(property, 0, properAfterProperty); return topLevelItem(property); } /*! Removes the specified \a property (and its subproperties) from the property browser's list of top level properties. All items that were associated with the given \a property and its children are deleted. Note that the properties are \e not deleted since they can still be used in other editors. \sa clear(), QtProperty::removeSubProperty(), properties() */ void QtAbstractPropertyBrowser::removeProperty(QtProperty *property) { if (!property) return; QList pendingList = properties(); int pos = 0; while (pos < pendingList.count()) { if (pendingList.at(pos) == property) { d_ptr->m_subItems.removeAt(pos); //perhaps this two lines d_ptr->removeSubTree(property, 0); //should be moved down after propertyRemoved call. //propertyRemoved(property, 0); d_ptr->removeBrowserIndexes(property, 0); // when item is deleted, item will call removeItem for top level items, // and itemRemoved for nested items. return; } pos++; } } /*! Creates an editing widget (with the given \a parent) for the given \a property according to the previously established associations between property managers and editor factories. If the property is created by a property manager which was not associated with any of the existing factories in \e this property editor, the function returns 0. To make a property editable in the property browser, the createEditor() function must be called to provide the property with a suitable editing widget. Reimplement this function to provide additional decoration for the editing widgets created by the installed factories. \sa setFactoryForManager() */ QWidget *QtAbstractPropertyBrowser::createEditor(QtProperty *property, QWidget *parent) { QtAbstractEditorFactoryBase *factory = 0; QtAbstractPropertyManager *manager = property->propertyManager(); if (m_viewToManagerToFactory()->contains(this) && (*m_viewToManagerToFactory())[this].contains(manager)) { factory = (*m_viewToManagerToFactory())[this][manager]; } if (!factory) return 0; return factory->createEditor(property, parent); } bool QtAbstractPropertyBrowser::addFactory(QtAbstractPropertyManager *abstractManager, QtAbstractEditorFactoryBase *abstractFactory) { bool connectNeeded = false; if (!m_managerToFactoryToViews()->contains(abstractManager) || !(*m_managerToFactoryToViews())[abstractManager].contains(abstractFactory)) { connectNeeded = true; } else if ((*m_managerToFactoryToViews())[abstractManager][abstractFactory] .contains(this)) { return connectNeeded; } if (m_viewToManagerToFactory()->contains(this) && (*m_viewToManagerToFactory())[this].contains(abstractManager)) { unsetFactoryForManager(abstractManager); } (*m_managerToFactoryToViews())[abstractManager][abstractFactory].append(this); (*m_viewToManagerToFactory())[this][abstractManager] = abstractFactory; return connectNeeded; } /*! Removes the association between the given \a manager and the factory bound to it, automatically calling the QtAbstractEditorFactory::removePropertyManager() function if necessary. \sa setFactoryForManager() */ void QtAbstractPropertyBrowser::unsetFactoryForManager(QtAbstractPropertyManager *manager) { if (!m_viewToManagerToFactory()->contains(this) || !(*m_viewToManagerToFactory())[this].contains(manager)) { return; } QtAbstractEditorFactoryBase *abstractFactory = (*m_viewToManagerToFactory())[this][manager]; (*m_viewToManagerToFactory())[this].remove(manager); if ((*m_viewToManagerToFactory())[this].isEmpty()) { (*m_viewToManagerToFactory()).remove(this); } (*m_managerToFactoryToViews())[manager][abstractFactory].removeAll(this); if ((*m_managerToFactoryToViews())[manager][abstractFactory].isEmpty()) { (*m_managerToFactoryToViews())[manager].remove(abstractFactory); abstractFactory->breakConnection(manager); if ((*m_managerToFactoryToViews())[manager].isEmpty()) { (*m_managerToFactoryToViews()).remove(manager); } } } /*! Returns the current item in the property browser. \sa setCurrentItem() */ QtBrowserItem *QtAbstractPropertyBrowser::currentItem() const { return d_ptr->m_currentItem; } /*! Sets the current item in the property browser to \a item. \sa currentItem(), currentItemChanged() */ void QtAbstractPropertyBrowser::setCurrentItem(QtBrowserItem *item) { QtBrowserItem *oldItem = d_ptr->m_currentItem; d_ptr->m_currentItem = item; if (oldItem != item) emit currentItemChanged(item); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qtpropertybrowser.cpp" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtDoublePropertyManager000644 001750 001750 00000000037 11617757645 031402 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtAbstractPropertyBrowser000644 001750 001750 00000000037 11617757645 032004 0ustar00simonesimone000000 000000 #include "qtpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtGroupBoxPropertyBrowser000644 001750 001750 00000000047 11617757645 032007 0ustar00simonesimone000000 000000 #include "qtgroupboxpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowserutils_p.h000644 001750 001750 00000015675 11617757645 032324 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ // // W A R N I N G // ------------- // // This file is not part of the Qt API. It exists for the convenience // of Qt Designer. This header // file may change from version to version without notice, or even be removed. // // We mean it. // #ifndef QTPROPERTYBROWSERUTILS_H #define QTPROPERTYBROWSERUTILS_H #include #include #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QMouseEvent; class QCheckBox; class QLineEdit; class QtCursorDatabase { public: QtCursorDatabase(); QStringList cursorShapeNames() const; QMap cursorShapeIcons() const; QString cursorToShapeName(const QCursor &cursor) const; QIcon cursorToShapeIcon(const QCursor &cursor) const; int cursorToValue(const QCursor &cursor) const; #ifndef QT_NO_CURSOR QCursor valueToCursor(int value) const; #endif private: void appendCursor(Qt::CursorShape shape, const QString &name, const QIcon &icon); QStringList m_cursorNames; QMap m_cursorIcons; QMap m_valueToCursorShape; QMap m_cursorShapeToValue; }; class QtPropertyBrowserUtils { public: static QPixmap brushValuePixmap(const QBrush &b); static QIcon brushValueIcon(const QBrush &b); static QString colorValueText(const QColor &c); static QPixmap fontValuePixmap(const QFont &f); static QIcon fontValueIcon(const QFont &f); static QString fontValueText(const QFont &f); }; class QtBoolEdit : public QWidget { Q_OBJECT public: QtBoolEdit(QWidget *parent = 0); bool textVisible() const { return m_textVisible; } void setTextVisible(bool textVisible); Qt::CheckState checkState() const; void setCheckState(Qt::CheckState state); bool isChecked() const; void setChecked(bool c); bool blockCheckBoxSignals(bool block); Q_SIGNALS: void toggled(bool); protected: void mousePressEvent(QMouseEvent * event); private: QCheckBox *m_checkBox; bool m_textVisible; }; class QtKeySequenceEdit : public QWidget { Q_OBJECT public: QtKeySequenceEdit(QWidget *parent = 0); QKeySequence keySequence() const; bool eventFilter(QObject *o, QEvent *e); public Q_SLOTS: void setKeySequence(const QKeySequence &sequence); Q_SIGNALS: void keySequenceChanged(const QKeySequence &sequence); protected: void focusInEvent(QFocusEvent *e); void focusOutEvent(QFocusEvent *e); void keyPressEvent(QKeyEvent *e); void keyReleaseEvent(QKeyEvent *e); bool event(QEvent *e); private slots: void slotClearShortcut(); private: void handleKeyEvent(QKeyEvent *e); int translateModifiers(Qt::KeyboardModifiers state, const QString &text) const; int m_num; QKeySequence m_keySequence; QLineEdit *m_lineEdit; }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtKeySequencePropertyManager000644 001750 001750 00000000037 11617757645 032411 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.pri000644 001750 001750 00000002145 11617757645 031253 0ustar00simonesimone000000 000000 include(../common.pri) INCLUDEPATH += $$PWD DEPENDPATH += $$PWD qtpropertybrowser-uselib:!qtpropertybrowser-buildlib { LIBS += -L$$QTPROPERTYBROWSER_LIBDIR -l$$QTPROPERTYBROWSER_LIBNAME } else { SOURCES += $$PWD/qtpropertybrowser.cpp \ $$PWD/qtpropertymanager.cpp \ $$PWD/qteditorfactory.cpp \ $$PWD/qtvariantproperty.cpp \ $$PWD/qttreepropertybrowser.cpp \ $$PWD/qtbuttonpropertybrowser.cpp \ $$PWD/qtgroupboxpropertybrowser.cpp \ $$PWD/qtpropertybrowserutils.cpp HEADERS += $$PWD/qtpropertybrowser.h \ $$PWD/qtpropertymanager.h \ $$PWD/qteditorfactory.h \ $$PWD/qtvariantproperty.h \ $$PWD/qttreepropertybrowser.h \ $$PWD/qtbuttonpropertybrowser.h \ $$PWD/qtgroupboxpropertybrowser.h \ $$PWD/qtpropertybrowserutils_p.h RESOURCES += $$PWD/qtpropertybrowser.qrc } win32 { contains(TEMPLATE, lib):contains(CONFIG, shared):DEFINES += QT_QTPROPERTYBROWSER_EXPORT else:qtpropertybrowser-uselib:DEFINES += QT_QTPROPERTYBROWSER_IMPORT } QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtButtonPropertyBrowser000644 001750 001750 00000000045 11617757645 031513 0ustar00simonesimone000000 000000 #include "qtbuttonpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtIntPropertyManager000644 001750 001750 00000000037 11617757645 030722 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtGroupPropertyManager000644 001750 001750 00000000037 11617757645 031264 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtRectPropertyManager000644 001750 001750 00000000037 11617757645 031065 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtgroupboxpropertybrowser.cpp000644 001750 001750 00000046170 11617757645 033037 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtgroupboxpropertybrowser.h" #include #include #include #include #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QtGroupBoxPropertyBrowserPrivate { QtGroupBoxPropertyBrowser *q_ptr; Q_DECLARE_PUBLIC(QtGroupBoxPropertyBrowser) public: void init(QWidget *parent); void propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex); void propertyRemoved(QtBrowserItem *index); void propertyChanged(QtBrowserItem *index); QWidget *createEditor(QtProperty *property, QWidget *parent) const { return q_ptr->createEditor(property, parent); } void slotEditorDestroyed(); void slotUpdate(); struct WidgetItem { WidgetItem() : widget(0), label(0), widgetLabel(0), groupBox(0), layout(0), line(0), parent(0) { } QWidget *widget; // can be null QLabel *label; QLabel *widgetLabel; QGroupBox *groupBox; QGridLayout *layout; QFrame *line; WidgetItem *parent; QList children; }; private: void updateLater(); void updateItem(WidgetItem *item); void insertRow(QGridLayout *layout, int row) const; void removeRow(QGridLayout *layout, int row) const; bool hasHeader(WidgetItem *item) const; QMap m_indexToItem; QMap m_itemToIndex; QMap m_widgetToItem; QGridLayout *m_mainLayout; QList m_children; QList m_recreateQueue; }; void QtGroupBoxPropertyBrowserPrivate::init(QWidget *parent) { m_mainLayout = new QGridLayout(); parent->setLayout(m_mainLayout); QLayoutItem *item = new QSpacerItem(0, 0, QSizePolicy::Fixed, QSizePolicy::Expanding); m_mainLayout->addItem(item, 0, 0); } void QtGroupBoxPropertyBrowserPrivate::slotEditorDestroyed() { QWidget *editor = qobject_cast(q_ptr->sender()); if (!editor) return; if (!m_widgetToItem.contains(editor)) return; m_widgetToItem[editor]->widget = 0; m_widgetToItem.remove(editor); } void QtGroupBoxPropertyBrowserPrivate::slotUpdate() { QListIterator itItem(m_recreateQueue); while (itItem.hasNext()) { WidgetItem *item = itItem.next(); WidgetItem *par = item->parent; QWidget *w = 0; QGridLayout *l = 0; int oldRow = -1; if (!par) { w = q_ptr; l = m_mainLayout; oldRow = m_children.indexOf(item); } else { w = par->groupBox; l = par->layout; oldRow = par->children.indexOf(item); if (hasHeader(par)) oldRow += 2; } if (item->widget) { item->widget->setParent(w); } else if (item->widgetLabel) { item->widgetLabel->setParent(w); } else { item->widgetLabel = new QLabel(w); } int span = 1; if (item->widget) l->addWidget(item->widget, oldRow, 1, 1, 1); else if (item->widgetLabel) l->addWidget(item->widgetLabel, oldRow, 1, 1, 1); else span = 2; item->label = new QLabel(w); item->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); l->addWidget(item->label, oldRow, 0, 1, span); updateItem(item); } m_recreateQueue.clear(); } void QtGroupBoxPropertyBrowserPrivate::updateLater() { QTimer::singleShot(0, q_ptr, SLOT(slotUpdate())); } void QtGroupBoxPropertyBrowserPrivate::propertyInserted(QtBrowserItem *index, QtBrowserItem *afterIndex) { WidgetItem *afterItem = m_indexToItem.value(afterIndex); WidgetItem *parentItem = m_indexToItem.value(index->parent()); WidgetItem *newItem = new WidgetItem(); newItem->parent = parentItem; QGridLayout *layout = 0; QWidget *parentWidget = 0; int row = -1; if (!afterItem) { row = 0; if (parentItem) parentItem->children.insert(0, newItem); else m_children.insert(0, newItem); } else { if (parentItem) { row = parentItem->children.indexOf(afterItem) + 1; parentItem->children.insert(row, newItem); } else { row = m_children.indexOf(afterItem) + 1; m_children.insert(row, newItem); } } if (parentItem && hasHeader(parentItem)) row += 2; if (!parentItem) { layout = m_mainLayout; parentWidget = q_ptr;; } else { if (!parentItem->groupBox) { m_recreateQueue.removeAll(parentItem); WidgetItem *par = parentItem->parent; QWidget *w = 0; QGridLayout *l = 0; int oldRow = -1; if (!par) { w = q_ptr; l = m_mainLayout; oldRow = m_children.indexOf(parentItem); } else { w = par->groupBox; l = par->layout; oldRow = par->children.indexOf(parentItem); if (hasHeader(par)) oldRow += 2; } parentItem->groupBox = new QGroupBox(w); parentItem->layout = new QGridLayout(); parentItem->groupBox->setLayout(parentItem->layout); if (parentItem->label) { l->removeWidget(parentItem->label); delete parentItem->label; parentItem->label = 0; } if (parentItem->widget) { l->removeWidget(parentItem->widget); parentItem->widget->setParent(parentItem->groupBox); parentItem->layout->addWidget(parentItem->widget, 0, 0, 1, 2); parentItem->line = new QFrame(parentItem->groupBox); } else if (parentItem->widgetLabel) { l->removeWidget(parentItem->widgetLabel); delete parentItem->widgetLabel; parentItem->widgetLabel = 0; } if (parentItem->line) { parentItem->line->setFrameShape(QFrame::HLine); parentItem->line->setFrameShadow(QFrame::Sunken); parentItem->layout->addWidget(parentItem->line, 1, 0, 1, 2); } l->addWidget(parentItem->groupBox, oldRow, 0, 1, 2); updateItem(parentItem); } layout = parentItem->layout; parentWidget = parentItem->groupBox; } newItem->label = new QLabel(parentWidget); newItem->label->setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); newItem->widget = createEditor(index->property(), parentWidget); if (!newItem->widget) { newItem->widgetLabel = new QLabel(parentWidget); } else { QObject::connect(newItem->widget, SIGNAL(destroyed()), q_ptr, SLOT(slotEditorDestroyed())); m_widgetToItem[newItem->widget] = newItem; } insertRow(layout, row); int span = 1; if (newItem->widget) layout->addWidget(newItem->widget, row, 1); else if (newItem->widgetLabel) layout->addWidget(newItem->widgetLabel, row, 1); else span = 2; layout->addWidget(newItem->label, row, 0, 1, span); m_itemToIndex[newItem] = index; m_indexToItem[index] = newItem; updateItem(newItem); } void QtGroupBoxPropertyBrowserPrivate::propertyRemoved(QtBrowserItem *index) { WidgetItem *item = m_indexToItem.value(index); m_indexToItem.remove(index); m_itemToIndex.remove(item); WidgetItem *parentItem = item->parent; int row = -1; if (parentItem) { row = parentItem->children.indexOf(item); parentItem->children.removeAt(row); if (hasHeader(parentItem)) row += 2; } else { row = m_children.indexOf(item); m_children.removeAt(row); } if (item->widget) delete item->widget; if (item->label) delete item->label; if (item->widgetLabel) delete item->widgetLabel; if (item->groupBox) delete item->groupBox; if (!parentItem) { removeRow(m_mainLayout, row); } else if (parentItem->children.count() != 0) { removeRow(parentItem->layout, row); } else { WidgetItem *par = parentItem->parent; QWidget *w = 0; QGridLayout *l = 0; int oldRow = -1; if (!par) { w = q_ptr; l = m_mainLayout; oldRow = m_children.indexOf(parentItem); } else { w = par->groupBox; l = par->layout; oldRow = par->children.indexOf(parentItem); if (hasHeader(par)) oldRow += 2; } if (parentItem->widget) { parentItem->widget->hide(); parentItem->widget->setParent(0); } else if (parentItem->widgetLabel) { parentItem->widgetLabel->hide(); parentItem->widgetLabel->setParent(0); } else { //parentItem->widgetLabel = new QLabel(w); } l->removeWidget(parentItem->groupBox); delete parentItem->groupBox; parentItem->groupBox = 0; parentItem->line = 0; parentItem->layout = 0; if (!m_recreateQueue.contains(parentItem)) m_recreateQueue.append(parentItem); updateLater(); } m_recreateQueue.removeAll(item); delete item; } void QtGroupBoxPropertyBrowserPrivate::insertRow(QGridLayout *layout, int row) const { QMap itemToPos; int idx = 0; while (idx < layout->count()) { int r, c, rs, cs; layout->getItemPosition(idx, &r, &c, &rs, &cs); if (r >= row) { itemToPos[layout->takeAt(idx)] = QRect(r + 1, c, rs, cs); } else { idx++; } } const QMap::ConstIterator icend = itemToPos.constEnd(); for (QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { const QRect r = it.value(); layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); } } void QtGroupBoxPropertyBrowserPrivate::removeRow(QGridLayout *layout, int row) const { QMap itemToPos; int idx = 0; while (idx < layout->count()) { int r, c, rs, cs; layout->getItemPosition(idx, &r, &c, &rs, &cs); if (r > row) { itemToPos[layout->takeAt(idx)] = QRect(r - 1, c, rs, cs); } else { idx++; } } const QMap::ConstIterator icend = itemToPos.constEnd(); for (QMap::ConstIterator it = itemToPos.constBegin(); it != icend; ++it) { const QRect r = it.value(); layout->addItem(it.key(), r.x(), r.y(), r.width(), r.height()); } } bool QtGroupBoxPropertyBrowserPrivate::hasHeader(WidgetItem *item) const { if (item->widget) return true; return false; } void QtGroupBoxPropertyBrowserPrivate::propertyChanged(QtBrowserItem *index) { WidgetItem *item = m_indexToItem.value(index); updateItem(item); } void QtGroupBoxPropertyBrowserPrivate::updateItem(WidgetItem *item) { QtProperty *property = m_itemToIndex[item]->property(); if (item->groupBox) { QFont font = item->groupBox->font(); font.setUnderline(property->isModified()); item->groupBox->setFont(font); item->groupBox->setTitle(property->propertyName()); item->groupBox->setToolTip(property->toolTip()); item->groupBox->setStatusTip(property->statusTip()); item->groupBox->setWhatsThis(property->whatsThis()); item->groupBox->setEnabled(property->isEnabled()); } if (item->label) { QFont font = item->label->font(); font.setUnderline(property->isModified()); item->label->setFont(font); item->label->setText(property->propertyName()); item->label->setToolTip(property->toolTip()); item->label->setStatusTip(property->statusTip()); item->label->setWhatsThis(property->whatsThis()); item->label->setEnabled(property->isEnabled()); } if (item->widgetLabel) { QFont font = item->widgetLabel->font(); font.setUnderline(false); item->widgetLabel->setFont(font); item->widgetLabel->setText(property->valueText()); item->widgetLabel->setEnabled(property->isEnabled()); } if (item->widget) { QFont font = item->widget->font(); font.setUnderline(false); item->widget->setFont(font); item->widget->setEnabled(property->isEnabled()); item->widget->setToolTip(property->valueText()); } //item->setIcon(1, property->valueIcon()); } /*! \class QtGroupBoxPropertyBrowser \brief The QtGroupBoxPropertyBrowser class provides a QGroupBox based property browser. A property browser is a widget that enables the user to edit a given set of properties. Each property is represented by a label specifying the property's name, and an editing widget (e.g. a line edit or a combobox) holding its value. A property can have zero or more subproperties. QtGroupBoxPropertyBrowser provides group boxes for all nested properties, i.e. subproperties are enclosed by a group box with the parent property's name as its title. For example: \image qtgroupboxpropertybrowser.png Use the QtAbstractPropertyBrowser API to add, insert and remove properties from an instance of the QtGroupBoxPropertyBrowser class. The properties themselves are created and managed by implementations of the QtAbstractPropertyManager class. \sa QtTreePropertyBrowser, QtAbstractPropertyBrowser */ /*! Creates a property browser with the given \a parent. */ QtGroupBoxPropertyBrowser::QtGroupBoxPropertyBrowser(QWidget *parent) : QtAbstractPropertyBrowser(parent) { d_ptr = new QtGroupBoxPropertyBrowserPrivate; d_ptr->q_ptr = this; d_ptr->init(this); } /*! Destroys this property browser. Note that the properties that were inserted into this browser are \e not destroyed since they may still be used in other browsers. The properties are owned by the manager that created them. \sa QtProperty, QtAbstractPropertyManager */ QtGroupBoxPropertyBrowser::~QtGroupBoxPropertyBrowser() { const QMap::ConstIterator icend = d_ptr->m_itemToIndex.constEnd(); for (QMap::ConstIterator it = d_ptr->m_itemToIndex.constBegin(); it != icend; ++it) delete it.key(); delete d_ptr; } /*! \reimp */ void QtGroupBoxPropertyBrowser::itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem) { d_ptr->propertyInserted(item, afterItem); } /*! \reimp */ void QtGroupBoxPropertyBrowser::itemRemoved(QtBrowserItem *item) { d_ptr->propertyRemoved(item); } /*! \reimp */ void QtGroupBoxPropertyBrowser::itemChanged(QtBrowserItem *item) { d_ptr->propertyChanged(item); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qtgroupboxpropertybrowser.cpp" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtSliderFactory000644 001750 001750 00000000035 11617757645 027700 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtSpinBoxFactory000644 001750 001750 00000000035 11617757645 030040 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtCharEditorFactory000644 001750 001750 00000000035 11617757645 030502 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtColorEditorFactory000644 001750 001750 00000000035 11617757645 030703 0ustar00simonesimone000000 000000 #include "qteditorfactory.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtCursorPropertyManager000644 001750 001750 00000000037 11617757645 031445 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtColorPropertyManager000644 001750 001750 00000000037 11617757645 031246 0ustar00simonesimone000000 000000 #include "qtpropertymanager.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertybrowserutils.cpp000644 001750 001750 00000043637 11617757645 032337 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtpropertybrowserutils_p.h" #include #include #include #include #include #include #include #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif QtCursorDatabase::QtCursorDatabase() { appendCursor(Qt::ArrowCursor, QApplication::translate("QtCursorDatabase", "Arrow", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-arrow.png"))); appendCursor(Qt::UpArrowCursor, QApplication::translate("QtCursorDatabase", "Up Arrow", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-uparrow.png"))); appendCursor(Qt::CrossCursor, QApplication::translate("QtCursorDatabase", "Cross", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-cross.png"))); appendCursor(Qt::WaitCursor, QApplication::translate("QtCursorDatabase", "Wait", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-wait.png"))); appendCursor(Qt::IBeamCursor, QApplication::translate("QtCursorDatabase", "IBeam", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-ibeam.png"))); appendCursor(Qt::SizeVerCursor, QApplication::translate("QtCursorDatabase", "Size Vertical", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-sizev.png"))); appendCursor(Qt::SizeHorCursor, QApplication::translate("QtCursorDatabase", "Size Horizontal", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-sizeh.png"))); appendCursor(Qt::SizeFDiagCursor, QApplication::translate("QtCursorDatabase", "Size Backslash", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-sizef.png"))); appendCursor(Qt::SizeBDiagCursor, QApplication::translate("QtCursorDatabase", "Size Slash", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-sizeb.png"))); appendCursor(Qt::SizeAllCursor, QApplication::translate("QtCursorDatabase", "Size All", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-sizeall.png"))); appendCursor(Qt::BlankCursor, QApplication::translate("QtCursorDatabase", "Blank", 0, QApplication::UnicodeUTF8), QIcon()); appendCursor(Qt::SplitVCursor, QApplication::translate("QtCursorDatabase", "Split Vertical", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-vsplit.png"))); appendCursor(Qt::SplitHCursor, QApplication::translate("QtCursorDatabase", "Split Horizontal", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-hsplit.png"))); appendCursor(Qt::PointingHandCursor, QApplication::translate("QtCursorDatabase", "Pointing Hand", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-hand.png"))); appendCursor(Qt::ForbiddenCursor, QApplication::translate("QtCursorDatabase", "Forbidden", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-forbidden.png"))); appendCursor(Qt::OpenHandCursor, QApplication::translate("QtCursorDatabase", "Open Hand", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-openhand.png"))); appendCursor(Qt::ClosedHandCursor, QApplication::translate("QtCursorDatabase", "Closed Hand", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-closedhand.png"))); appendCursor(Qt::WhatsThisCursor, QApplication::translate("QtCursorDatabase", "What's This", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-whatsthis.png"))); appendCursor(Qt::BusyCursor, QApplication::translate("QtCursorDatabase", "Busy", 0, QApplication::UnicodeUTF8), QIcon(QLatin1String(":/trolltech/qtpropertybrowser/images/cursor-busy.png"))); } void QtCursorDatabase::appendCursor(Qt::CursorShape shape, const QString &name, const QIcon &icon) { if (m_cursorShapeToValue.contains(shape)) return; int value = m_cursorNames.count(); m_cursorNames.append(name); m_cursorIcons[value] = icon; m_valueToCursorShape[value] = shape; m_cursorShapeToValue[shape] = value; } QStringList QtCursorDatabase::cursorShapeNames() const { return m_cursorNames; } QMap QtCursorDatabase::cursorShapeIcons() const { return m_cursorIcons; } QString QtCursorDatabase::cursorToShapeName(const QCursor &cursor) const { int val = cursorToValue(cursor); if (val >= 0) return m_cursorNames.at(val); return QString(); } QIcon QtCursorDatabase::cursorToShapeIcon(const QCursor &cursor) const { int val = cursorToValue(cursor); return m_cursorIcons.value(val); } int QtCursorDatabase::cursorToValue(const QCursor &cursor) const { #ifndef QT_NO_CURSOR Qt::CursorShape shape = cursor.shape(); if (m_cursorShapeToValue.contains(shape)) return m_cursorShapeToValue[shape]; #endif return -1; } #ifndef QT_NO_CURSOR QCursor QtCursorDatabase::valueToCursor(int value) const { if (m_valueToCursorShape.contains(value)) return QCursor(m_valueToCursorShape[value]); return QCursor(); } #endif QPixmap QtPropertyBrowserUtils::brushValuePixmap(const QBrush &b) { QImage img(16, 16, QImage::Format_ARGB32_Premultiplied); img.fill(0); QPainter painter(&img); painter.setCompositionMode(QPainter::CompositionMode_Source); painter.fillRect(0, 0, img.width(), img.height(), b); QColor color = b.color(); if (color.alpha() != 255) { // indicate alpha by an inset QBrush opaqueBrush = b; color.setAlpha(255); opaqueBrush.setColor(color); painter.fillRect(img.width() / 4, img.height() / 4, img.width() / 2, img.height() / 2, opaqueBrush); } painter.end(); return QPixmap::fromImage(img); } QIcon QtPropertyBrowserUtils::brushValueIcon(const QBrush &b) { return QIcon(brushValuePixmap(b)); } QString QtPropertyBrowserUtils::colorValueText(const QColor &c) { return QApplication::translate("QtPropertyBrowserUtils", "[%1, %2, %3] (%4)", 0, QApplication::UnicodeUTF8) .arg(QString::number(c.red())) .arg(QString::number(c.green())) .arg(QString::number(c.blue())) .arg(QString::number(c.alpha())); } QPixmap QtPropertyBrowserUtils::fontValuePixmap(const QFont &font) { QFont f = font; QImage img(16, 16, QImage::Format_ARGB32_Premultiplied); img.fill(0); QPainter p(&img); p.setRenderHint(QPainter::TextAntialiasing, true); p.setRenderHint(QPainter::Antialiasing, true); f.setPointSize(13); p.setFont(f); QTextOption t; t.setAlignment(Qt::AlignCenter); p.drawText(QRect(0, 0, 16, 16), QString(QLatin1Char('A')), t); return QPixmap::fromImage(img); } QIcon QtPropertyBrowserUtils::fontValueIcon(const QFont &f) { return QIcon(fontValuePixmap(f)); } QString QtPropertyBrowserUtils::fontValueText(const QFont &f) { return QApplication::translate("QtPropertyBrowserUtils", "[%1, %2]", 0, QApplication::UnicodeUTF8) .arg(f.family()) .arg(f.pointSize()); } QtBoolEdit::QtBoolEdit(QWidget *parent) : QWidget(parent), m_checkBox(new QCheckBox(this)), m_textVisible(true) { QHBoxLayout *lt = new QHBoxLayout; if (QApplication::layoutDirection() == Qt::LeftToRight) lt->setContentsMargins(4, 0, 0, 0); else lt->setContentsMargins(0, 0, 4, 0); lt->addWidget(m_checkBox); setLayout(lt); connect(m_checkBox, SIGNAL(toggled(bool)), this, SIGNAL(toggled(bool))); setFocusProxy(m_checkBox); m_checkBox->setText(tr("True")); } void QtBoolEdit::setTextVisible(bool textVisible) { if (m_textVisible == textVisible) return; m_textVisible = textVisible; if (m_textVisible) m_checkBox->setText(isChecked() ? tr("True") : tr("False")); else m_checkBox->setText(QString()); } Qt::CheckState QtBoolEdit::checkState() const { return m_checkBox->checkState(); } void QtBoolEdit::setCheckState(Qt::CheckState state) { m_checkBox->setCheckState(state); } bool QtBoolEdit::isChecked() const { return m_checkBox->isChecked(); } void QtBoolEdit::setChecked(bool c) { m_checkBox->setChecked(c); if (!m_textVisible) return; m_checkBox->setText(isChecked() ? tr("True") : tr("False")); } bool QtBoolEdit::blockCheckBoxSignals(bool block) { return m_checkBox->blockSignals(block); } void QtBoolEdit::mousePressEvent(QMouseEvent *event) { if (event->buttons() == Qt::LeftButton) { m_checkBox->click(); event->accept(); } else { QWidget::mousePressEvent(event); } } QtKeySequenceEdit::QtKeySequenceEdit(QWidget *parent) : QWidget(parent), m_num(0), m_lineEdit(new QLineEdit(this)) { QHBoxLayout *layout = new QHBoxLayout(this); layout->addWidget(m_lineEdit); layout->setMargin(0); m_lineEdit->installEventFilter(this); m_lineEdit->setReadOnly(true); m_lineEdit->setFocusProxy(this); setFocusPolicy(m_lineEdit->focusPolicy()); setAttribute(Qt::WA_InputMethodEnabled); } bool QtKeySequenceEdit::eventFilter(QObject *o, QEvent *e) { if (o == m_lineEdit && e->type() == QEvent::ContextMenu) { QContextMenuEvent *c = static_cast(e); QMenu *menu = m_lineEdit->createStandardContextMenu(); const QList actions = menu->actions(); QListIterator itAction(actions); while (itAction.hasNext()) { QAction *action = itAction.next(); action->setShortcut(QKeySequence()); QString actionString = action->text(); const int pos = actionString.lastIndexOf(QLatin1Char('\t')); if (pos > 0) actionString.remove(pos, actionString.length() - pos); action->setText(actionString); } QAction *actionBefore = 0; if (actions.count() > 0) actionBefore = actions[0]; QAction *clearAction = new QAction(tr("Clear Shortcut"), menu); menu->insertAction(actionBefore, clearAction); menu->insertSeparator(actionBefore); clearAction->setEnabled(!m_keySequence.isEmpty()); connect(clearAction, SIGNAL(triggered()), this, SLOT(slotClearShortcut())); menu->exec(c->globalPos()); delete menu; e->accept(); return true; } return QWidget::eventFilter(o, e); } void QtKeySequenceEdit::slotClearShortcut() { if (m_keySequence.isEmpty()) return; setKeySequence(QKeySequence()); emit keySequenceChanged(m_keySequence); } void QtKeySequenceEdit::handleKeyEvent(QKeyEvent *e) { int nextKey = e->key(); if (nextKey == Qt::Key_Control || nextKey == Qt::Key_Shift || nextKey == Qt::Key_Meta || nextKey == Qt::Key_Alt || nextKey == Qt::Key_Super_L || nextKey == Qt::Key_AltGr) return; nextKey |= translateModifiers(e->modifiers(), e->text()); int k0 = m_keySequence[0]; int k1 = m_keySequence[1]; int k2 = m_keySequence[2]; int k3 = m_keySequence[3]; switch (m_num) { case 0: k0 = nextKey; k1 = 0; k2 = 0; k3 = 0; break; case 1: k1 = nextKey; k2 = 0; k3 = 0; break; case 2: k2 = nextKey; k3 = 0; break; case 3: k3 = nextKey; break; default: break; } ++m_num; if (m_num > 3) m_num = 0; m_keySequence = QKeySequence(k0, k1, k2, k3); m_lineEdit->setText(m_keySequence.toString(QKeySequence::NativeText)); e->accept(); emit keySequenceChanged(m_keySequence); } void QtKeySequenceEdit::setKeySequence(const QKeySequence &sequence) { if (sequence == m_keySequence) return; m_num = 0; m_keySequence = sequence; m_lineEdit->setText(m_keySequence.toString(QKeySequence::NativeText)); } QKeySequence QtKeySequenceEdit::keySequence() const { return m_keySequence; } int QtKeySequenceEdit::translateModifiers(Qt::KeyboardModifiers state, const QString &text) const { int result = 0; if ((state & Qt::ShiftModifier) && (text.size() == 0 || !text.at(0).isPrint() || text.at(0).isLetter() || text.at(0).isSpace())) result |= Qt::SHIFT; if (state & Qt::ControlModifier) result |= Qt::CTRL; if (state & Qt::MetaModifier) result |= Qt::META; if (state & Qt::AltModifier) result |= Qt::ALT; return result; } void QtKeySequenceEdit::focusInEvent(QFocusEvent *e) { m_lineEdit->event(e); m_lineEdit->selectAll(); QWidget::focusInEvent(e); } void QtKeySequenceEdit::focusOutEvent(QFocusEvent *e) { m_num = 0; m_lineEdit->event(e); QWidget::focusOutEvent(e); } void QtKeySequenceEdit::keyPressEvent(QKeyEvent *e) { handleKeyEvent(e); e->accept(); } void QtKeySequenceEdit::keyReleaseEvent(QKeyEvent *e) { m_lineEdit->event(e); } bool QtKeySequenceEdit::event(QEvent *e) { if (e->type() == QEvent::Shortcut || e->type() == QEvent::ShortcutOverride || e->type() == QEvent::KeyRelease) { e->accept(); return true; } return QWidget::event(e); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.h000644 001750 001750 00000015763 11617757645 031602 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QTTREEPROPERTYBROWSER_H #define QTTREEPROPERTYBROWSER_H #include "qtpropertybrowser.h" #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif class QTreeWidgetItem; class QtTreePropertyBrowserPrivate; class QT_QTPROPERTYBROWSER_EXPORT QtTreePropertyBrowser : public QtAbstractPropertyBrowser { Q_OBJECT Q_ENUMS(ResizeMode) Q_PROPERTY(int indentation READ indentation WRITE setIndentation) Q_PROPERTY(bool rootIsDecorated READ rootIsDecorated WRITE setRootIsDecorated) Q_PROPERTY(bool alternatingRowColors READ alternatingRowColors WRITE setAlternatingRowColors) Q_PROPERTY(bool headerVisible READ isHeaderVisible WRITE setHeaderVisible) Q_PROPERTY(ResizeMode resizeMode READ resizeMode WRITE setResizeMode) Q_PROPERTY(int splitterPosition READ splitterPosition WRITE setSplitterPosition) Q_PROPERTY(bool propertiesWithoutValueMarked READ propertiesWithoutValueMarked WRITE setPropertiesWithoutValueMarked) public: enum ResizeMode { Interactive, Stretch, Fixed, ResizeToContents }; QtTreePropertyBrowser(QWidget *parent = 0); ~QtTreePropertyBrowser(); int indentation() const; void setIndentation(int i); bool rootIsDecorated() const; void setRootIsDecorated(bool show); bool alternatingRowColors() const; void setAlternatingRowColors(bool enable); bool isHeaderVisible() const; void setHeaderVisible(bool visible); ResizeMode resizeMode() const; void setResizeMode(ResizeMode mode); int splitterPosition() const; void setSplitterPosition(int position); void setExpanded(QtBrowserItem *item, bool expanded); bool isExpanded(QtBrowserItem *item) const; bool isItemVisible(QtBrowserItem *item) const; void setItemVisible(QtBrowserItem *item, bool visible); void setBackgroundColor(QtBrowserItem *item, const QColor &color); QColor backgroundColor(QtBrowserItem *item) const; QColor calculatedBackgroundColor(QtBrowserItem *item) const; void setPropertiesWithoutValueMarked(bool mark); bool propertiesWithoutValueMarked() const; void editItem(QtBrowserItem *item); Q_SIGNALS: void collapsed(QtBrowserItem *item); void expanded(QtBrowserItem *item); protected: virtual void itemInserted(QtBrowserItem *item, QtBrowserItem *afterItem); virtual void itemRemoved(QtBrowserItem *item); virtual void itemChanged(QtBrowserItem *item); private: QtTreePropertyBrowserPrivate *d_ptr; Q_DECLARE_PRIVATE(QtTreePropertyBrowser) Q_DISABLE_COPY(QtTreePropertyBrowser) Q_PRIVATE_SLOT(d_func(), void slotCollapsed(const QModelIndex &)) Q_PRIVATE_SLOT(d_func(), void slotExpanded(const QModelIndex &)) Q_PRIVATE_SLOT(d_func(), void slotCurrentBrowserItemChanged(QtBrowserItem *)) Q_PRIVATE_SLOT(d_func(), void slotCurrentTreeItemChanged(QTreeWidgetItem *, QTreeWidgetItem *)) }; #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #endif QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/qtpropertymanager.cpp000644 001750 001750 00000636467 11617757645 031216 0ustar00simonesimone000000 000000 /**************************************************************************** ** ** This file is part of a Qt Solutions component. ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Qt Software Information (qt-info@nokia.com) ** ** Commercial Usage ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Solutions Commercial License Agreement provided ** with the Software or, alternatively, in accordance with the terms ** contained in a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** Please note Third Party Software included with Qt Solutions may impose ** additional restrictions and it is the user's responsibility to ensure ** that they have met the licensing requirements of the GPL, LGPL, or Qt ** Solutions Commercial license and the relevant license of the Third ** Party Software they are using. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** ****************************************************************************/ /**************************************************************************** ** ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** Contact: Qt Software Information (qt-info@nokia.com) ** ** This file is part of the tools applications of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage ** This file contains pre-release code and may not be distributed. ** You may use this file in accordance with the terms and conditions ** contained in the either Technology Preview License Agreement or the ** Beta Release License Agreement. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** In addition, as a special exception, Nokia gives you certain ** additional rights. These rights are described in the Nokia Qt LGPL ** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this ** package. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 3.0 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU General Public License version 3.0 requirements will be ** met: http://www.gnu.org/copyleft/gpl.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at qt-sales@nokia.com. ** $QT_END_LICENSE$ ** ****************************************************************************/ #include "qtpropertymanager.h" #include "qtpropertybrowserutils_p.h" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #if defined(Q_CC_MSVC) # pragma warning(disable: 4786) /* MS VS 6: truncating debug info after 255 characters */ #endif #if QT_VERSION >= 0x040400 QT_BEGIN_NAMESPACE #endif template static void setSimpleMinimumData(PrivateData *data, const Value &minVal) { data->minVal = minVal; if (data->maxVal < data->minVal) data->maxVal = data->minVal; if (data->val < data->minVal) data->val = data->minVal; } template static void setSimpleMaximumData(PrivateData *data, const Value &maxVal) { data->maxVal = maxVal; if (data->minVal > data->maxVal) data->minVal = data->maxVal; if (data->val > data->maxVal) data->val = data->maxVal; } template static void setSizeMinimumData(PrivateData *data, const Value &newMinVal) { data->minVal = newMinVal; if (data->maxVal.width() < data->minVal.width()) data->maxVal.setWidth(data->minVal.width()); if (data->maxVal.height() < data->minVal.height()) data->maxVal.setHeight(data->minVal.height()); if (data->val.width() < data->minVal.width()) data->val.setWidth(data->minVal.width()); if (data->val.height() < data->minVal.height()) data->val.setHeight(data->minVal.height()); } template static void setSizeMaximumData(PrivateData *data, const Value &newMaxVal) { data->maxVal = newMaxVal; if (data->minVal.width() > data->maxVal.width()) data->minVal.setWidth(data->maxVal.width()); if (data->minVal.height() > data->maxVal.height()) data->minVal.setHeight(data->maxVal.height()); if (data->val.width() > data->maxVal.width()) data->val.setWidth(data->maxVal.width()); if (data->val.height() > data->maxVal.height()) data->val.setHeight(data->maxVal.height()); } template static SizeValue qBoundSize(const SizeValue &minVal, const SizeValue &val, const SizeValue &maxVal) { SizeValue croppedVal = val; if (minVal.width() > val.width()) croppedVal.setWidth(minVal.width()); else if (maxVal.width() < val.width()) croppedVal.setWidth(maxVal.width()); if (minVal.height() > val.height()) croppedVal.setHeight(minVal.height()); else if (maxVal.height() < val.height()) croppedVal.setHeight(maxVal.height()); return croppedVal; } // Match the exact signature of qBound for VS 6. QSize qBound(QSize minVal, QSize val, QSize maxVal) { return qBoundSize(minVal, val, maxVal); } QSizeF qBound(QSizeF minVal, QSizeF val, QSizeF maxVal) { return qBoundSize(minVal, val, maxVal); } namespace { namespace { template void orderBorders(Value &minVal, Value &maxVal) { if (minVal > maxVal) qSwap(minVal, maxVal); } template static void orderSizeBorders(Value &minVal, Value &maxVal) { Value fromSize = minVal; Value toSize = maxVal; if (fromSize.width() > toSize.width()) { fromSize.setWidth(maxVal.width()); toSize.setWidth(minVal.width()); } if (fromSize.height() > toSize.height()) { fromSize.setHeight(maxVal.height()); toSize.setHeight(minVal.height()); } minVal = fromSize; maxVal = toSize; } void orderBorders(QSize &minVal, QSize &maxVal) { orderSizeBorders(minVal, maxVal); } void orderBorders(QSizeF &minVal, QSizeF &maxVal) { orderSizeBorders(minVal, maxVal); } } } //////// template static Value getData(const QMap &propertyMap, Value PrivateData::*data, const QtProperty *property, const Value &defaultValue = Value()) { typedef QMap PropertyToData; typedef Q_TYPENAME PropertyToData::const_iterator PropertyToDataConstIterator; const PropertyToDataConstIterator it = propertyMap.constFind(property); if (it == propertyMap.constEnd()) return defaultValue; return it.value().*data; } template static Value getValue(const QMap &propertyMap, const QtProperty *property, const Value &defaultValue = Value()) { return getData(propertyMap, &PrivateData::val, property, defaultValue); } template static Value getMinimum(const QMap &propertyMap, const QtProperty *property, const Value &defaultValue = Value()) { return getData(propertyMap, &PrivateData::minVal, property, defaultValue); } template static Value getMaximum(const QMap &propertyMap, const QtProperty *property, const Value &defaultValue = Value()) { return getData(propertyMap, &PrivateData::maxVal, property, defaultValue); } template static void setSimpleValue(QMap &propertyMap, PropertyManager *manager, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), QtProperty *property, const Value &val) { typedef QMap PropertyToData; typedef Q_TYPENAME PropertyToData::iterator PropertyToDataIterator; const PropertyToDataIterator it = propertyMap.find(property); if (it == propertyMap.end()) return; if (it.value() == val) return; it.value() = val; emit (manager->*propertyChangedSignal)(property); emit (manager->*valueChangedSignal)(property, val); } template static void setValueInRange(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), QtProperty *property, const Value &val, void (PropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, ValueChangeParameter)) { typedef Q_TYPENAME PropertyManagerPrivate::Data PrivateData; typedef QMap PropertyToData; typedef Q_TYPENAME PropertyToData::iterator PropertyToDataIterator; const PropertyToDataIterator it = managerPrivate->m_values.find(property); if (it == managerPrivate->m_values.end()) return; PrivateData &data = it.value(); if (data.val == val) return; const Value oldVal = data.val; data.val = qBound(data.minVal, val, data.maxVal); if (data.val == oldVal) return; if (setSubPropertyValue) (managerPrivate->*setSubPropertyValue)(property, data.val); emit (manager->*propertyChangedSignal)(property); emit (manager->*valueChangedSignal)(property, data.val); } template static void setBorderValues(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), QtProperty *property, const Value &minVal, const Value &maxVal, void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter)) { typedef Q_TYPENAME PropertyManagerPrivate::Data PrivateData; typedef QMap PropertyToData; typedef Q_TYPENAME PropertyToData::iterator PropertyToDataIterator; const PropertyToDataIterator it = managerPrivate->m_values.find(property); if (it == managerPrivate->m_values.end()) return; Value fromVal = minVal; Value toVal = maxVal; orderBorders(fromVal, toVal); PrivateData &data = it.value(); if (data.minVal == fromVal && data.maxVal == toVal) return; const Value oldVal = data.val; data.setMinimumValue(fromVal); data.setMaximumValue(toVal); emit (manager->*rangeChangedSignal)(property, data.minVal, data.maxVal); if (setSubPropertyRange) (managerPrivate->*setSubPropertyRange)(property, data.minVal, data.maxVal, data.val); if (data.val == oldVal) return; emit (manager->*propertyChangedSignal)(property); emit (manager->*valueChangedSignal)(property, data.val); } template static void setBorderValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), QtProperty *property, Value (PrivateData::*getRangeVal)() const, void (PrivateData::*setRangeVal)(ValueChangeParameter), const Value &borderVal, void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter)) { typedef QMap PropertyToData; typedef Q_TYPENAME PropertyToData::iterator PropertyToDataIterator; const PropertyToDataIterator it = managerPrivate->m_values.find(property); if (it == managerPrivate->m_values.end()) return; PrivateData &data = it.value(); if ((data.*getRangeVal)() == borderVal) return; const Value oldVal = data.val; (data.*setRangeVal)(borderVal); emit (manager->*rangeChangedSignal)(property, data.minVal, data.maxVal); if (setSubPropertyRange) (managerPrivate->*setSubPropertyRange)(property, data.minVal, data.maxVal, data.val); if (data.val == oldVal) return; emit (manager->*propertyChangedSignal)(property); emit (manager->*valueChangedSignal)(property, data.val); } template static void setMinimumValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), QtProperty *property, const Value &minVal) { void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0; setBorderValue(manager, managerPrivate, propertyChangedSignal, valueChangedSignal, rangeChangedSignal, property, &PropertyManagerPrivate::Data::minimumValue, &PropertyManagerPrivate::Data::setMinimumValue, minVal, setSubPropertyRange); } template static void setMaximumValue(PropertyManager *manager, PropertyManagerPrivate *managerPrivate, void (PropertyManager::*propertyChangedSignal)(QtProperty *), void (PropertyManager::*valueChangedSignal)(QtProperty *, ValueChangeParameter), void (PropertyManager::*rangeChangedSignal)(QtProperty *, ValueChangeParameter, ValueChangeParameter), QtProperty *property, const Value &maxVal) { void (PropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, ValueChangeParameter, ValueChangeParameter, ValueChangeParameter) = 0; setBorderValue(manager, managerPrivate, propertyChangedSignal, valueChangedSignal, rangeChangedSignal, property, &PropertyManagerPrivate::Data::maximumValue, &PropertyManagerPrivate::Data::setMaximumValue, maxVal, setSubPropertyRange); } class QtMetaEnumWrapper : public QObject { Q_OBJECT Q_PROPERTY(QSizePolicy::Policy policy READ policy) public: QSizePolicy::Policy policy() const { return QSizePolicy::Ignored; } private: QtMetaEnumWrapper(QObject *parent) : QObject(parent) {} }; class QtMetaEnumProvider { public: QtMetaEnumProvider(); QStringList policyEnumNames() const { return m_policyEnumNames; } QStringList languageEnumNames() const { return m_languageEnumNames; } QStringList countryEnumNames(QLocale::Language language) const { return m_countryEnumNames.value(language); } QSizePolicy::Policy indexToSizePolicy(int index) const; int sizePolicyToIndex(QSizePolicy::Policy policy) const; void indexToLocale(int languageIndex, int countryIndex, QLocale::Language *language, QLocale::Country *country) const; void localeToIndex(QLocale::Language language, QLocale::Country country, int *languageIndex, int *countryIndex) const; private: void initLocale(); QStringList m_policyEnumNames; QStringList m_languageEnumNames; QMap m_countryEnumNames; QMap m_indexToLanguage; QMap m_languageToIndex; QMap > m_indexToCountry; QMap > m_countryToIndex; QMetaEnum m_policyEnum; }; #if QT_VERSION < 0x040300 static QList countriesForLanguage(QLocale::Language language) { QList countries; QLocale::Country country = QLocale::AnyCountry; while (country <= QLocale::LastCountry) { QLocale locale(language, country); if (locale.language() == language && !countries.contains(locale.country())) countries << locale.country(); country = (QLocale::Country)((uint)country + 1); // ++country } return countries; } #endif static QList sortCountries(const QList &countries) { QMultiMap nameToCountry; QListIterator itCountry(countries); while (itCountry.hasNext()) { QLocale::Country country = itCountry.next(); nameToCountry.insert(QLocale::countryToString(country), country); } return nameToCountry.values(); } void QtMetaEnumProvider::initLocale() { QMultiMap nameToLanguage; QLocale::Language language = QLocale::C; while (language <= QLocale::LastLanguage) { QLocale locale(language); if (locale.language() == language) nameToLanguage.insert(QLocale::languageToString(language), language); language = (QLocale::Language)((uint)language + 1); // ++language } const QLocale system = QLocale::system(); if (!nameToLanguage.contains(QLocale::languageToString(system.language()))) nameToLanguage.insert(QLocale::languageToString(system.language()), system.language()); QList languages = nameToLanguage.values(); QListIterator itLang(languages); while (itLang.hasNext()) { QLocale::Language language = itLang.next(); QList countries; #if QT_VERSION < 0x040300 countries = countriesForLanguage(language); #else countries = QLocale::countriesForLanguage(language); #endif if (countries.isEmpty() && language == system.language()) countries << system.country(); if (!countries.isEmpty() && !m_languageToIndex.contains(language)) { countries = sortCountries(countries); int langIdx = m_languageEnumNames.count(); m_indexToLanguage[langIdx] = language; m_languageToIndex[language] = langIdx; QStringList countryNames; QListIterator it(countries); int countryIdx = 0; while (it.hasNext()) { QLocale::Country country = it.next(); countryNames << QLocale::countryToString(country); m_indexToCountry[langIdx][countryIdx] = country; m_countryToIndex[language][country] = countryIdx; ++countryIdx; } m_languageEnumNames << QLocale::languageToString(language); m_countryEnumNames[language] = countryNames; } } } QtMetaEnumProvider::QtMetaEnumProvider() { QMetaProperty p; p = QtMetaEnumWrapper::staticMetaObject.property( QtMetaEnumWrapper::staticMetaObject.propertyOffset() + 0); m_policyEnum = p.enumerator(); const int keyCount = m_policyEnum.keyCount(); for (int i = 0; i < keyCount; i++) m_policyEnumNames << QLatin1String(m_policyEnum.key(i)); initLocale(); } QSizePolicy::Policy QtMetaEnumProvider::indexToSizePolicy(int index) const { return static_cast(m_policyEnum.value(index)); } int QtMetaEnumProvider::sizePolicyToIndex(QSizePolicy::Policy policy) const { const int keyCount = m_policyEnum.keyCount(); for (int i = 0; i < keyCount; i++) if (indexToSizePolicy(i) == policy) return i; return -1; } void QtMetaEnumProvider::indexToLocale(int languageIndex, int countryIndex, QLocale::Language *language, QLocale::Country *country) const { QLocale::Language l = QLocale::C; QLocale::Country c = QLocale::AnyCountry; if (m_indexToLanguage.contains(languageIndex)) { l = m_indexToLanguage[languageIndex]; if (m_indexToCountry.contains(languageIndex) && m_indexToCountry[languageIndex].contains(countryIndex)) c = m_indexToCountry[languageIndex][countryIndex]; } if (language) *language = l; if (country) *country = c; } void QtMetaEnumProvider::localeToIndex(QLocale::Language language, QLocale::Country country, int *languageIndex, int *countryIndex) const { int l = -1; int c = -1; if (m_languageToIndex.contains(language)) { l = m_languageToIndex[language]; if (m_countryToIndex.contains(language) && m_countryToIndex[language].contains(country)) c = m_countryToIndex[language][country]; } if (languageIndex) *languageIndex = l; if (countryIndex) *countryIndex = c; } Q_GLOBAL_STATIC(QtMetaEnumProvider, metaEnumProvider) // QtGroupPropertyManager /*! \class QtGroupPropertyManager \brief The QtGroupPropertyManager provides and manages group properties. This class is intended to provide a grouping element without any value. \sa QtAbstractPropertyManager */ /*! Creates a manager with the given \a parent. */ QtGroupPropertyManager::QtGroupPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { } /*! Destroys this manager, and all the properties it has created. */ QtGroupPropertyManager::~QtGroupPropertyManager() { } /*! \reimp */ bool QtGroupPropertyManager::hasValue(const QtProperty *property) const { Q_UNUSED(property) return false; } /*! \reimp */ void QtGroupPropertyManager::initializeProperty(QtProperty *property) { Q_UNUSED(property) } /*! \reimp */ void QtGroupPropertyManager::uninitializeProperty(QtProperty *property) { Q_UNUSED(property) } // QtIntPropertyManager class QtIntPropertyManagerPrivate { QtIntPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtIntPropertyManager) public: struct Data { Data() : val(0), minVal(-INT_MAX), maxVal(INT_MAX), singleStep(1) {} int val; int minVal; int maxVal; int singleStep; int minimumValue() const { return minVal; } int maximumValue() const { return maxVal; } void setMinimumValue(int newMinVal) { setSimpleMinimumData(this, newMinVal); } void setMaximumValue(int newMaxVal) { setSimpleMaximumData(this, newMaxVal); } }; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtIntPropertyManager \brief The QtIntPropertyManager provides and manages int properties. An int property has a current value, and a range specifying the valid values. The range is defined by a minimum and a maximum value. The property's value and range can be retrieved using the value(), minimum() and maximum() functions, and can be set using the setValue(), setMinimum() and setMaximum() slots. Alternatively, the range can be defined in one go using the setRange() slot. In addition, QtIntPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the rangeChanged() signal which is emitted whenever such a property changes its range of valid values. \sa QtAbstractPropertyManager, QtSpinBoxFactory, QtSliderFactory, QtScrollBarFactory */ /*! \fn void QtIntPropertyManager::valueChanged(QtProperty *property, int value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtIntPropertyManager::rangeChanged(QtProperty *property, int minimum, int maximum) This signal is emitted whenever a property created by this manager changes its range of valid values, passing a pointer to the \a property and the new \a minimum and \a maximum values. \sa setRange() */ /*! \fn void QtIntPropertyManager::singleStepChanged(QtProperty *property, int step) This signal is emitted whenever a property created by this manager changes its single step property, passing a pointer to the \a property and the new \a step value \sa setSingleStep() */ /*! Creates a manager with the given \a parent. */ QtIntPropertyManager::QtIntPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtIntPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtIntPropertyManager::~QtIntPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns 0. \sa setValue() */ int QtIntPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property, 0); } /*! Returns the given \a property's minimum value. \sa setMinimum(), maximum(), setRange() */ int QtIntPropertyManager::minimum(const QtProperty *property) const { return getMinimum(d_ptr->m_values, property, 0); } /*! Returns the given \a property's maximum value. \sa setMaximum(), minimum(), setRange() */ int QtIntPropertyManager::maximum(const QtProperty *property) const { return getMaximum(d_ptr->m_values, property, 0); } /*! Returns the given \a property's step value. The step is typically used to increment or decrement a property value while pressing an arrow key. \sa setSingleStep() */ int QtIntPropertyManager::singleStep(const QtProperty *property) const { return getData(d_ptr->m_values, &QtIntPropertyManagerPrivate::Data::singleStep, property, 0); } /*! \reimp */ QString QtIntPropertyManager::valueText(const QtProperty *property) const { const QtIntPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return QString::number(it.value().val); } /*! \fn void QtIntPropertyManager::setValue(QtProperty *property, int value) Sets the value of the given \a property to \a value. If the specified \a value is not valid according to the given \a property's range, the \a value is adjusted to the nearest valid value within the range. \sa value(), setRange(), valueChanged() */ void QtIntPropertyManager::setValue(QtProperty *property, int val) { void (QtIntPropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, int) = 0; setValueInRange(this, d_ptr, &QtIntPropertyManager::propertyChanged, &QtIntPropertyManager::valueChanged, property, val, setSubPropertyValue); } /*! Sets the minimum value for the given \a property to \a minVal. When setting the minimum value, the maximum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within the range). \sa minimum(), setRange(), rangeChanged() */ void QtIntPropertyManager::setMinimum(QtProperty *property, int minVal) { setMinimumValue(this, d_ptr, &QtIntPropertyManager::propertyChanged, &QtIntPropertyManager::valueChanged, &QtIntPropertyManager::rangeChanged, property, minVal); } /*! Sets the maximum value for the given \a property to \a maxVal. When setting maximum value, the minimum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within the range). \sa maximum(), setRange(), rangeChanged() */ void QtIntPropertyManager::setMaximum(QtProperty *property, int maxVal) { setMaximumValue(this, d_ptr, &QtIntPropertyManager::propertyChanged, &QtIntPropertyManager::valueChanged, &QtIntPropertyManager::rangeChanged, property, maxVal); } /*! \fn void QtIntPropertyManager::setRange(QtProperty *property, int minimum, int maximum) Sets the range of valid values. This is a convenience function defining the range of valid values in one go; setting the \a minimum and \a maximum values for the given \a property with a single function call. When setting a new range, the current value is adjusted if necessary (ensuring that the value remains within range). \sa setMinimum(), setMaximum(), rangeChanged() */ void QtIntPropertyManager::setRange(QtProperty *property, int minVal, int maxVal) { void (QtIntPropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, int, int, int) = 0; setBorderValues(this, d_ptr, &QtIntPropertyManager::propertyChanged, &QtIntPropertyManager::valueChanged, &QtIntPropertyManager::rangeChanged, property, minVal, maxVal, setSubPropertyRange); } /*! Sets the step value for the given \a property to \a step. The step is typically used to increment or decrement a property value while pressing an arrow key. \sa singleStep() */ void QtIntPropertyManager::setSingleStep(QtProperty *property, int step) { const QtIntPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtIntPropertyManagerPrivate::Data data = it.value(); if (step < 0) step = 0; if (data.singleStep == step) return; data.singleStep = step; it.value() = data; emit singleStepChanged(property, data.singleStep); } /*! \reimp */ void QtIntPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtIntPropertyManagerPrivate::Data(); } /*! \reimp */ void QtIntPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtDoublePropertyManager class QtDoublePropertyManagerPrivate { QtDoublePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtDoublePropertyManager) public: struct Data { Data() : val(0), minVal(-INT_MAX), maxVal(INT_MAX), singleStep(1), decimals(2) {} double val; double minVal; double maxVal; double singleStep; int decimals; double minimumValue() const { return minVal; } double maximumValue() const { return maxVal; } void setMinimumValue(double newMinVal) { setSimpleMinimumData(this, newMinVal); } void setMaximumValue(double newMaxVal) { setSimpleMaximumData(this, newMaxVal); } }; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtDoublePropertyManager \brief The QtDoublePropertyManager provides and manages double properties. A double property has a current value, and a range specifying the valid values. The range is defined by a minimum and a maximum value. The property's value and range can be retrieved using the value(), minimum() and maximum() functions, and can be set using the setValue(), setMinimum() and setMaximum() slots. Alternatively, the range can be defined in one go using the setRange() slot. In addition, QtDoublePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the rangeChanged() signal which is emitted whenever such a property changes its range of valid values. \sa QtAbstractPropertyManager, QtDoubleSpinBoxFactory */ /*! \fn void QtDoublePropertyManager::valueChanged(QtProperty *property, double value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtDoublePropertyManager::rangeChanged(QtProperty *property, double minimum, double maximum) This signal is emitted whenever a property created by this manager changes its range of valid values, passing a pointer to the \a property and the new \a minimum and \a maximum values \sa setRange() */ /*! \fn void QtDoublePropertyManager::decimalsChanged(QtProperty *property, int prec) This signal is emitted whenever a property created by this manager changes its precision of value, passing a pointer to the \a property and the new \a prec value \sa setDecimals() */ /*! \fn void QtDoublePropertyManager::singleStepChanged(QtProperty *property, double step) This signal is emitted whenever a property created by this manager changes its single step property, passing a pointer to the \a property and the new \a step value \sa setSingleStep() */ /*! Creates a manager with the given \a parent. */ QtDoublePropertyManager::QtDoublePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtDoublePropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtDoublePropertyManager::~QtDoublePropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns 0. \sa setValue() */ double QtDoublePropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property, 0.0); } /*! Returns the given \a property's minimum value. \sa maximum(), setRange() */ double QtDoublePropertyManager::minimum(const QtProperty *property) const { return getMinimum(d_ptr->m_values, property, 0.0); } /*! Returns the given \a property's maximum value. \sa minimum(), setRange() */ double QtDoublePropertyManager::maximum(const QtProperty *property) const { return getMaximum(d_ptr->m_values, property, 0.0); } /*! Returns the given \a property's step value. The step is typically used to increment or decrement a property value while pressing an arrow key. \sa setSingleStep() */ double QtDoublePropertyManager::singleStep(const QtProperty *property) const { return getData(d_ptr->m_values, &QtDoublePropertyManagerPrivate::Data::singleStep, property, 0); } /*! Returns the given \a property's precision, in decimals. \sa setDecimals() */ int QtDoublePropertyManager::decimals(const QtProperty *property) const { return getData(d_ptr->m_values, &QtDoublePropertyManagerPrivate::Data::decimals, property, 0); } /*! \reimp */ QString QtDoublePropertyManager::valueText(const QtProperty *property) const { const QtDoublePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return QString::number(it.value().val, 'f', it.value().decimals); } /*! \fn void QtDoublePropertyManager::setValue(QtProperty *property, double value) Sets the value of the given \a property to \a value. If the specified \a value is not valid according to the given \a property's range, the \a value is adjusted to the nearest valid value within the range. \sa value(), setRange(), valueChanged() */ void QtDoublePropertyManager::setValue(QtProperty *property, double val) { void (QtDoublePropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, double) = 0; setValueInRange(this, d_ptr, &QtDoublePropertyManager::propertyChanged, &QtDoublePropertyManager::valueChanged, property, val, setSubPropertyValue); } /*! Sets the step value for the given \a property to \a step. The step is typically used to increment or decrement a property value while pressing an arrow key. \sa singleStep() */ void QtDoublePropertyManager::setSingleStep(QtProperty *property, double step) { const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtDoublePropertyManagerPrivate::Data data = it.value(); if (step < 0) step = 0; if (data.singleStep == step) return; data.singleStep = step; it.value() = data; emit singleStepChanged(property, data.singleStep); } /*! \fn void QtDoublePropertyManager::setDecimals(QtProperty *property, int prec) Sets the precision of the given \a property to \a prec. The valid decimal range is 0-13. The default is 2. \sa decimals() */ void QtDoublePropertyManager::setDecimals(QtProperty *property, int prec) { const QtDoublePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtDoublePropertyManagerPrivate::Data data = it.value(); if (prec > 13) prec = 13; else if (prec < 0) prec = 0; if (data.decimals == prec) return; data.decimals = prec; it.value() = data; emit decimalsChanged(property, data.decimals); } /*! Sets the minimum value for the given \a property to \a minVal. When setting the minimum value, the maximum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within in the range). \sa minimum(), setRange(), rangeChanged() */ void QtDoublePropertyManager::setMinimum(QtProperty *property, double minVal) { setMinimumValue(this, d_ptr, &QtDoublePropertyManager::propertyChanged, &QtDoublePropertyManager::valueChanged, &QtDoublePropertyManager::rangeChanged, property, minVal); } /*! Sets the maximum value for the given \a property to \a maxVal. When setting the maximum value, the minimum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within in the range). \sa maximum(), setRange(), rangeChanged() */ void QtDoublePropertyManager::setMaximum(QtProperty *property, double maxVal) { setMaximumValue(this, d_ptr, &QtDoublePropertyManager::propertyChanged, &QtDoublePropertyManager::valueChanged, &QtDoublePropertyManager::rangeChanged, property, maxVal); } /*! \fn void QtDoublePropertyManager::setRange(QtProperty *property, double minimum, double maximum) Sets the range of valid values. This is a convenience function defining the range of valid values in one go; setting the \a minimum and \a maximum values for the given \a property with a single function call. When setting a new range, the current value is adjusted if necessary (ensuring that the value remains within range). \sa setMinimum(), setMaximum(), rangeChanged() */ void QtDoublePropertyManager::setRange(QtProperty *property, double minVal, double maxVal) { void (QtDoublePropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, double, double, double) = 0; setBorderValues(this, d_ptr, &QtDoublePropertyManager::propertyChanged, &QtDoublePropertyManager::valueChanged, &QtDoublePropertyManager::rangeChanged, property, minVal, maxVal, setSubPropertyRange); } /*! \reimp */ void QtDoublePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtDoublePropertyManagerPrivate::Data(); } /*! \reimp */ void QtDoublePropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtStringPropertyManager class QtStringPropertyManagerPrivate { QtStringPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtStringPropertyManager) public: struct Data { Data() : regExp(QString(QLatin1Char('*')), Qt::CaseSensitive, QRegExp::Wildcard) { } QString val; QRegExp regExp; }; typedef QMap PropertyValueMap; QMap m_values; }; /*! \class QtStringPropertyManager \brief The QtStringPropertyManager provides and manages QString properties. A string property's value can be retrieved using the value() function, and set using the setValue() slot. The current value can be checked against a regular expression. To set the regular expression use the setRegExp() slot, use the regExp() function to retrieve the currently set expression. In addition, QtStringPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the regExpChanged() signal which is emitted whenever such a property changes its currently set regular expression. \sa QtAbstractPropertyManager, QtLineEditFactory */ /*! \fn void QtStringPropertyManager::valueChanged(QtProperty *property, const QString &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtStringPropertyManager::regExpChanged(QtProperty *property, const QRegExp ®Exp) This signal is emitted whenever a property created by this manager changes its currenlty set regular expression, passing a pointer to the \a property and the new \a regExp as parameters. \sa setRegExp() */ /*! Creates a manager with the given \a parent. */ QtStringPropertyManager::QtStringPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtStringPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtStringPropertyManager::~QtStringPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns an empty string. \sa setValue() */ QString QtStringPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's currently set regular expression. If the given \a property is not managed by this manager, this function returns an empty expression. \sa setRegExp() */ QRegExp QtStringPropertyManager::regExp(const QtProperty *property) const { return getData(d_ptr->m_values, &QtStringPropertyManagerPrivate::Data::regExp, property, QRegExp()); } /*! \reimp */ QString QtStringPropertyManager::valueText(const QtProperty *property) const { const QtStringPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return it.value().val; } /*! \fn void QtStringPropertyManager::setValue(QtProperty *property, const QString &value) Sets the value of the given \a property to \a value. If the specified \a value doesn't match the given \a property's regular expression, this function does nothing. \sa value(), setRegExp(), valueChanged() */ void QtStringPropertyManager::setValue(QtProperty *property, const QString &val) { const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtStringPropertyManagerPrivate::Data data = it.value(); if (data.val == val) return; if (data.regExp.isValid() && !data.regExp.exactMatch(val)) return; data.val = val; it.value() = data; emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the regular expression of the given \a property to \a regExp. \sa regExp(), setValue(), regExpChanged() */ void QtStringPropertyManager::setRegExp(QtProperty *property, const QRegExp ®Exp) { const QtStringPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtStringPropertyManagerPrivate::Data data = it.value() ; if (data.regExp == regExp) return; data.regExp = regExp; it.value() = data; emit regExpChanged(property, data.regExp); } /*! \reimp */ void QtStringPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtStringPropertyManagerPrivate::Data(); } /*! \reimp */ void QtStringPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtBoolPropertyManager class QtBoolPropertyManagerPrivate { QtBoolPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtBoolPropertyManager) public: QMap m_values; }; /*! \class QtBoolPropertyManager \brief The QtBoolPropertyManager class provides and manages boolean properties. The property's value can be retrieved using the value() function, and set using the setValue() slot. In addition, QtBoolPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtCheckBoxFactory */ /*! \fn void QtBoolPropertyManager::valueChanged(QtProperty *property, bool value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. */ /*! Creates a manager with the given \a parent. */ QtBoolPropertyManager::QtBoolPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtBoolPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtBoolPropertyManager::~QtBoolPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by \e this manager, this function returns false. \sa setValue() */ bool QtBoolPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, false); } /*! \reimp */ QString QtBoolPropertyManager::valueText(const QtProperty *property) const { const QMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); static const QString trueText = tr("True"); static const QString falseText = tr("False"); return it.value() ? trueText : falseText; } // Return an icon containing a check box indicator static QIcon drawCheckBox(bool value) { QStyleOptionButton opt; opt.state |= value ? QStyle::State_On : QStyle::State_Off; opt.state |= QStyle::State_Enabled; const QStyle *style = QApplication::style(); // Figure out size of an indicator and make sure it is not scaled down in a list view item // by making the pixmap as big as a list view icon and centering the indicator in it. // (if it is smaller, it can't be helped) const int indicatorWidth = style->pixelMetric(QStyle::PM_IndicatorWidth, &opt); const int indicatorHeight = style->pixelMetric(QStyle::PM_IndicatorHeight, &opt); const int listViewIconSize = indicatorWidth; const int pixmapWidth = indicatorWidth; const int pixmapHeight = qMax(indicatorHeight, listViewIconSize); opt.rect = QRect(0, 0, indicatorWidth, indicatorHeight); QPixmap pixmap = QPixmap(pixmapWidth, pixmapHeight); pixmap.fill(Qt::transparent); { // Center? const int xoff = (pixmapWidth > indicatorWidth) ? (pixmapWidth - indicatorWidth) / 2 : 0; const int yoff = (pixmapHeight > indicatorHeight) ? (pixmapHeight - indicatorHeight) / 2 : 0; QPainter painter(&pixmap); painter.translate(xoff, yoff); style->drawPrimitive(QStyle::PE_IndicatorCheckBox, &opt, &painter); } return QIcon(pixmap); } /*! \reimp */ QIcon QtBoolPropertyManager::valueIcon(const QtProperty *property) const { const QMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QIcon(); static const QIcon checkedIcon = drawCheckBox(true); static const QIcon uncheckedIcon = drawCheckBox(false); return it.value() ? checkedIcon : uncheckedIcon; } /*! \fn void QtBoolPropertyManager::setValue(QtProperty *property, bool value) Sets the value of the given \a property to \a value. \sa value() */ void QtBoolPropertyManager::setValue(QtProperty *property, bool val) { setSimpleValue(d_ptr->m_values, this, &QtBoolPropertyManager::propertyChanged, &QtBoolPropertyManager::valueChanged, property, val); } /*! \reimp */ void QtBoolPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = false; } /*! \reimp */ void QtBoolPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtDatePropertyManager class QtDatePropertyManagerPrivate { QtDatePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtDatePropertyManager) public: struct Data { Data() : val(QDate::currentDate()), minVal(QDate(1752, 9, 14)), maxVal(QDate(7999, 12, 31)) {} QDate val; QDate minVal; QDate maxVal; QDate minimumValue() const { return minVal; } QDate maximumValue() const { return maxVal; } void setMinimumValue(const QDate &newMinVal) { setSimpleMinimumData(this, newMinVal); } void setMaximumValue(const QDate &newMaxVal) { setSimpleMaximumData(this, newMaxVal); } }; QString m_format; typedef QMap PropertyValueMap; QMap m_values; }; /*! \class QtDatePropertyManager \brief The QtDatePropertyManager provides and manages QDate properties. A date property has a current value, and a range specifying the valid dates. The range is defined by a minimum and a maximum value. The property's values can be retrieved using the minimum(), maximum() and value() functions, and can be set using the setMinimum(), setMaximum() and setValue() slots. Alternatively, the range can be defined in one go using the setRange() slot. In addition, QtDatePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the rangeChanged() signal which is emitted whenever such a property changes its range of valid dates. \sa QtAbstractPropertyManager, QtDateEditFactory, QtDateTimePropertyManager */ /*! \fn void QtDatePropertyManager::valueChanged(QtProperty *property, const QDate &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtDatePropertyManager::rangeChanged(QtProperty *property, const QDate &minimum, const QDate &maximum) This signal is emitted whenever a property created by this manager changes its range of valid dates, passing a pointer to the \a property and the new \a minimum and \a maximum dates. \sa setRange() */ /*! Creates a manager with the given \a parent. */ QtDatePropertyManager::QtDatePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtDatePropertyManagerPrivate; d_ptr->q_ptr = this; QLocale loc; d_ptr->m_format = loc.dateFormat(QLocale::ShortFormat); } /*! Destroys this manager, and all the properties it has created. */ QtDatePropertyManager::~QtDatePropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by \e this manager, this function returns an invalid date. \sa setValue() */ QDate QtDatePropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's minimum date. \sa maximum(), setRange() */ QDate QtDatePropertyManager::minimum(const QtProperty *property) const { return getMinimum(d_ptr->m_values, property); } /*! Returns the given \a property's maximum date. \sa minimum(), setRange() */ QDate QtDatePropertyManager::maximum(const QtProperty *property) const { return getMaximum(d_ptr->m_values, property); } /*! \reimp */ QString QtDatePropertyManager::valueText(const QtProperty *property) const { const QtDatePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return it.value().val.toString(d_ptr->m_format); } /*! \fn void QtDatePropertyManager::setValue(QtProperty *property, const QDate &value) Sets the value of the given \a property to \a value. If the specified \a value is not a valid date according to the given \a property's range, the value is adjusted to the nearest valid value within the range. \sa value(), setRange(), valueChanged() */ void QtDatePropertyManager::setValue(QtProperty *property, const QDate &val) { void (QtDatePropertyManagerPrivate::*setSubPropertyValue)(QtProperty *, const QDate &) = 0; setValueInRange(this, d_ptr, &QtDatePropertyManager::propertyChanged, &QtDatePropertyManager::valueChanged, property, val, setSubPropertyValue); } /*! Sets the minimum value for the given \a property to \a minVal. When setting the minimum value, the maximum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within in the range). \sa minimum(), setRange() */ void QtDatePropertyManager::setMinimum(QtProperty *property, const QDate &minVal) { setMinimumValue(this, d_ptr, &QtDatePropertyManager::propertyChanged, &QtDatePropertyManager::valueChanged, &QtDatePropertyManager::rangeChanged, property, minVal); } /*! Sets the maximum value for the given \a property to \a maxVal. When setting the maximum value, the minimum and current values are adjusted if necessary (ensuring that the range remains valid and that the current value is within in the range). \sa maximum(), setRange() */ void QtDatePropertyManager::setMaximum(QtProperty *property, const QDate &maxVal) { setMaximumValue(this, d_ptr, &QtDatePropertyManager::propertyChanged, &QtDatePropertyManager::valueChanged, &QtDatePropertyManager::rangeChanged, property, maxVal); } /*! \fn void QtDatePropertyManager::setRange(QtProperty *property, const QDate &minimum, const QDate &maximum) Sets the range of valid dates. This is a convenience function defining the range of valid dates in one go; setting the \a minimum and \a maximum values for the given \a property with a single function call. When setting a new date range, the current value is adjusted if necessary (ensuring that the value remains in date range). \sa setMinimum(), setMaximum(), rangeChanged() */ void QtDatePropertyManager::setRange(QtProperty *property, const QDate &minVal, const QDate &maxVal) { void (QtDatePropertyManagerPrivate::*setSubPropertyRange)(QtProperty *, const QDate &, const QDate &, const QDate &) = 0; setBorderValues(this, d_ptr, &QtDatePropertyManager::propertyChanged, &QtDatePropertyManager::valueChanged, &QtDatePropertyManager::rangeChanged, property, minVal, maxVal, setSubPropertyRange); } /*! \reimp */ void QtDatePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtDatePropertyManagerPrivate::Data(); } /*! \reimp */ void QtDatePropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtTimePropertyManager class QtTimePropertyManagerPrivate { QtTimePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtTimePropertyManager) public: QString m_format; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtTimePropertyManager \brief The QtTimePropertyManager provides and manages QTime properties. A time property's value can be retrieved using the value() function, and set using the setValue() slot. In addition, QtTimePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtTimeEditFactory */ /*! \fn void QtTimePropertyManager::valueChanged(QtProperty *property, const QTime &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtTimePropertyManager::QtTimePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtTimePropertyManagerPrivate; d_ptr->q_ptr = this; QLocale loc; d_ptr->m_format = loc.timeFormat(QLocale::ShortFormat); } /*! Destroys this manager, and all the properties it has created. */ QtTimePropertyManager::~QtTimePropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns an invalid time object. \sa setValue() */ QTime QtTimePropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QTime()); } /*! \reimp */ QString QtTimePropertyManager::valueText(const QtProperty *property) const { const QtTimePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return it.value().toString(d_ptr->m_format); } /*! \fn void QtTimePropertyManager::setValue(QtProperty *property, const QTime &value) Sets the value of the given \a property to \a value. \sa value(), valueChanged() */ void QtTimePropertyManager::setValue(QtProperty *property, const QTime &val) { setSimpleValue(d_ptr->m_values, this, &QtTimePropertyManager::propertyChanged, &QtTimePropertyManager::valueChanged, property, val); } /*! \reimp */ void QtTimePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QTime::currentTime(); } /*! \reimp */ void QtTimePropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtDateTimePropertyManager class QtDateTimePropertyManagerPrivate { QtDateTimePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtDateTimePropertyManager) public: QString m_format; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtDateTimePropertyManager \brief The QtDateTimePropertyManager provides and manages QDateTime properties. A date and time property has a current value which can be retrieved using the value() function, and set using the setValue() slot. In addition, QtDateTimePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtDateTimeEditFactory, QtDatePropertyManager */ /*! \fn void QtDateTimePropertyManager::valueChanged(QtProperty *property, const QDateTime &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. */ /*! Creates a manager with the given \a parent. */ QtDateTimePropertyManager::QtDateTimePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtDateTimePropertyManagerPrivate; d_ptr->q_ptr = this; QLocale loc; d_ptr->m_format = loc.dateFormat(QLocale::ShortFormat); d_ptr->m_format += QLatin1Char(' '); d_ptr->m_format += loc.timeFormat(QLocale::ShortFormat); } /*! Destroys this manager, and all the properties it has created. */ QtDateTimePropertyManager::~QtDateTimePropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid QDateTime object. \sa setValue() */ QDateTime QtDateTimePropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QDateTime()); } /*! \reimp */ QString QtDateTimePropertyManager::valueText(const QtProperty *property) const { const QtDateTimePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return it.value().toString(d_ptr->m_format); } /*! \fn void QtDateTimePropertyManager::setValue(QtProperty *property, const QDateTime &value) Sets the value of the given \a property to \a value. \sa value(), valueChanged() */ void QtDateTimePropertyManager::setValue(QtProperty *property, const QDateTime &val) { setSimpleValue(d_ptr->m_values, this, &QtDateTimePropertyManager::propertyChanged, &QtDateTimePropertyManager::valueChanged, property, val); } /*! \reimp */ void QtDateTimePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QDateTime::currentDateTime(); } /*! \reimp */ void QtDateTimePropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtKeySequencePropertyManager class QtKeySequencePropertyManagerPrivate { QtKeySequencePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtKeySequencePropertyManager) public: QString m_format; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtKeySequencePropertyManager \brief The QtKeySequencePropertyManager provides and manages QKeySequence properties. A key sequence's value can be retrieved using the value() function, and set using the setValue() slot. In addition, QtKeySequencePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager */ /*! \fn void QtKeySequencePropertyManager::valueChanged(QtProperty *property, const QKeySequence &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. */ /*! Creates a manager with the given \a parent. */ QtKeySequencePropertyManager::QtKeySequencePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtKeySequencePropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtKeySequencePropertyManager::~QtKeySequencePropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an empty QKeySequence object. \sa setValue() */ QKeySequence QtKeySequencePropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QKeySequence()); } /*! \reimp */ QString QtKeySequencePropertyManager::valueText(const QtProperty *property) const { const QtKeySequencePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return it.value().toString(QKeySequence::NativeText); } /*! \fn void QtKeySequencePropertyManager::setValue(QtProperty *property, const QKeySequence &value) Sets the value of the given \a property to \a value. \sa value(), valueChanged() */ void QtKeySequencePropertyManager::setValue(QtProperty *property, const QKeySequence &val) { setSimpleValue(d_ptr->m_values, this, &QtKeySequencePropertyManager::propertyChanged, &QtKeySequencePropertyManager::valueChanged, property, val); } /*! \reimp */ void QtKeySequencePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QKeySequence(); } /*! \reimp */ void QtKeySequencePropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtCharPropertyManager class QtCharPropertyManagerPrivate { QtCharPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtCharPropertyManager) public: typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtCharPropertyManager \brief The QtCharPropertyManager provides and manages QChar properties. A char's value can be retrieved using the value() function, and set using the setValue() slot. In addition, QtCharPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager */ /*! \fn void QtCharPropertyManager::valueChanged(QtProperty *property, const QChar &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. */ /*! Creates a manager with the given \a parent. */ QtCharPropertyManager::QtCharPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtCharPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtCharPropertyManager::~QtCharPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an null QChar object. \sa setValue() */ QChar QtCharPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QChar()); } /*! \reimp */ QString QtCharPropertyManager::valueText(const QtProperty *property) const { const QtCharPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QChar c = it.value(); return c.isNull() ? QString() : QString(c); } /*! \fn void QtCharPropertyManager::setValue(QtProperty *property, const QChar &value) Sets the value of the given \a property to \a value. \sa value(), valueChanged() */ void QtCharPropertyManager::setValue(QtProperty *property, const QChar &val) { setSimpleValue(d_ptr->m_values, this, &QtCharPropertyManager::propertyChanged, &QtCharPropertyManager::valueChanged, property, val); } /*! \reimp */ void QtCharPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QChar(); } /*! \reimp */ void QtCharPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtLocalePropertyManager class QtLocalePropertyManagerPrivate { QtLocalePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtLocalePropertyManager) public: QtLocalePropertyManagerPrivate(); void slotEnumChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); typedef QMap PropertyValueMap; PropertyValueMap m_values; QtEnumPropertyManager *m_enumPropertyManager; QMap m_propertyToLanguage; QMap m_propertyToCountry; QMap m_languageToProperty; QMap m_countryToProperty; }; QtLocalePropertyManagerPrivate::QtLocalePropertyManagerPrivate() { } void QtLocalePropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) { if (QtProperty *prop = m_languageToProperty.value(property, 0)) { const QLocale loc = m_values[prop]; QLocale::Language newLanguage = loc.language(); QLocale::Country newCountry = loc.country(); metaEnumProvider()->indexToLocale(value, 0, &newLanguage, 0); QLocale newLoc(newLanguage, newCountry); q_ptr->setValue(prop, newLoc); } else if (QtProperty *prop = m_countryToProperty.value(property, 0)) { const QLocale loc = m_values[prop]; QLocale::Language newLanguage = loc.language(); QLocale::Country newCountry = loc.country(); metaEnumProvider()->indexToLocale(m_enumPropertyManager->value(m_propertyToLanguage.value(prop)), value, &newLanguage, &newCountry); QLocale newLoc(newLanguage, newCountry); q_ptr->setValue(prop, newLoc); } } void QtLocalePropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *subProp = m_languageToProperty.value(property, 0)) { m_propertyToLanguage[subProp] = 0; m_languageToProperty.remove(property); } else if (QtProperty *subProp = m_countryToProperty.value(property, 0)) { m_propertyToCountry[subProp] = 0; m_countryToProperty.remove(property); } } /*! \class QtLocalePropertyManager \brief The QtLocalePropertyManager provides and manages QLocale properties. A locale property has nested \e language and \e country subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by QtEnumPropertyManager object. These submanager can be retrieved using the subEnumPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with editor factory. In addition, QtLocalePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtEnumPropertyManager */ /*! \fn void QtLocalePropertyManager::valueChanged(QtProperty *property, const QLocale &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtLocalePropertyManager::QtLocalePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtLocalePropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotEnumChanged(QtProperty *, int))); connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtLocalePropertyManager::~QtLocalePropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e language and \e country subproperties. In order to provide editing widgets for the mentioned subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtEnumPropertyManager *QtLocalePropertyManager::subEnumPropertyManager() const { return d_ptr->m_enumPropertyManager; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns the default locale. \sa setValue() */ QLocale QtLocalePropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QLocale()); } /*! \reimp */ QString QtLocalePropertyManager::valueText(const QtProperty *property) const { const QtLocalePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); QLocale loc = it.value(); int langIdx = 0; int countryIdx = 0; metaEnumProvider()->localeToIndex(loc.language(), loc.country(), &langIdx, &countryIdx); QString str = tr("%1, %2") .arg(metaEnumProvider()->languageEnumNames().at(langIdx)) .arg(metaEnumProvider()->countryEnumNames(loc.language()).at(countryIdx)); return str; } /*! \fn void QtLocalePropertyManager::setValue(QtProperty *property, const QLocale &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtLocalePropertyManager::setValue(QtProperty *property, const QLocale &val) { const QtLocalePropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; const QLocale loc = it.value(); if (loc == val) return; it.value() = val; int langIdx = 0; int countryIdx = 0; metaEnumProvider()->localeToIndex(val.language(), val.country(), &langIdx, &countryIdx); if (loc.language() != val.language()) { d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToLanguage.value(property), langIdx); d_ptr->m_enumPropertyManager->setEnumNames(d_ptr->m_propertyToCountry.value(property), metaEnumProvider()->countryEnumNames(val.language())); } d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToCountry.value(property), countryIdx); emit propertyChanged(property); emit valueChanged(property, val); } /*! \reimp */ void QtLocalePropertyManager::initializeProperty(QtProperty *property) { QLocale val; d_ptr->m_values[property] = val; int langIdx = 0; int countryIdx = 0; metaEnumProvider()->localeToIndex(val.language(), val.country(), &langIdx, &countryIdx); QtProperty *languageProp = d_ptr->m_enumPropertyManager->addProperty(); languageProp->setPropertyName(tr("Language")); d_ptr->m_enumPropertyManager->setEnumNames(languageProp, metaEnumProvider()->languageEnumNames()); d_ptr->m_enumPropertyManager->setValue(languageProp, langIdx); d_ptr->m_propertyToLanguage[property] = languageProp; d_ptr->m_languageToProperty[languageProp] = property; property->addSubProperty(languageProp); QtProperty *countryProp = d_ptr->m_enumPropertyManager->addProperty(); countryProp->setPropertyName(tr("Country")); d_ptr->m_enumPropertyManager->setEnumNames(countryProp, metaEnumProvider()->countryEnumNames(val.language())); d_ptr->m_enumPropertyManager->setValue(countryProp, countryIdx); d_ptr->m_propertyToCountry[property] = countryProp; d_ptr->m_countryToProperty[countryProp] = property; property->addSubProperty(countryProp); } /*! \reimp */ void QtLocalePropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *languageProp = d_ptr->m_propertyToLanguage[property]; if (languageProp) { d_ptr->m_languageToProperty.remove(languageProp); delete languageProp; } d_ptr->m_propertyToLanguage.remove(property); QtProperty *countryProp = d_ptr->m_propertyToCountry[property]; if (countryProp) { d_ptr->m_countryToProperty.remove(countryProp); delete countryProp; } d_ptr->m_propertyToCountry.remove(property); d_ptr->m_values.remove(property); } // QtPointPropertyManager class QtPointPropertyManagerPrivate { QtPointPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtPointPropertyManager) public: void slotIntChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QMap m_propertyToX; QMap m_propertyToY; QMap m_xToProperty; QMap m_yToProperty; }; void QtPointPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (QtProperty *xprop = m_xToProperty.value(property, 0)) { QPoint p = m_values[xprop]; p.setX(value); q_ptr->setValue(xprop, p); } else if (QtProperty *yprop = m_yToProperty.value(property, 0)) { QPoint p = m_values[yprop]; p.setY(value); q_ptr->setValue(yprop, p); } } void QtPointPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { m_propertyToX[pointProp] = 0; m_xToProperty.remove(property); } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { m_propertyToY[pointProp] = 0; m_yToProperty.remove(property); } } /*! \class QtPointPropertyManager \brief The QtPointPropertyManager provides and manages QPoint properties. A point property has nested \e x and \e y subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtIntPropertyManager object. This manager can be retrieved using the subIntPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. In addition, QtPointPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtIntPropertyManager, QtPointFPropertyManager */ /*! \fn void QtPointPropertyManager::valueChanged(QtProperty *property, const QPoint &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtPointPropertyManager::QtPointPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtPointPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtPointPropertyManager::~QtPointPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e x and \e y subproperties. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtPointPropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns a point with coordinates (0, 0). \sa setValue() */ QPoint QtPointPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QPoint()); } /*! \reimp */ QString QtPointPropertyManager::valueText(const QtProperty *property) const { const QtPointPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QPoint v = it.value(); return QString(tr("(%1, %2)").arg(QString::number(v.x())) .arg(QString::number(v.y()))); } /*! \fn void QtPointPropertyManager::setValue(QtProperty *property, const QPoint &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtPointPropertyManager::setValue(QtProperty *property, const QPoint &val) { const QtPointPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; if (it.value() == val) return; it.value() = val; d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], val.x()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], val.y()); emit propertyChanged(property); emit valueChanged(property, val); } /*! \reimp */ void QtPointPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QPoint(0, 0); QtProperty *xProp = d_ptr->m_intPropertyManager->addProperty(); xProp->setPropertyName(tr("X")); d_ptr->m_intPropertyManager->setValue(xProp, 0); d_ptr->m_propertyToX[property] = xProp; d_ptr->m_xToProperty[xProp] = property; property->addSubProperty(xProp); QtProperty *yProp = d_ptr->m_intPropertyManager->addProperty(); yProp->setPropertyName(tr("Y")); d_ptr->m_intPropertyManager->setValue(yProp, 0); d_ptr->m_propertyToY[property] = yProp; d_ptr->m_yToProperty[yProp] = property; property->addSubProperty(yProp); } /*! \reimp */ void QtPointPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *xProp = d_ptr->m_propertyToX[property]; if (xProp) { d_ptr->m_xToProperty.remove(xProp); delete xProp; } d_ptr->m_propertyToX.remove(property); QtProperty *yProp = d_ptr->m_propertyToY[property]; if (yProp) { d_ptr->m_yToProperty.remove(yProp); delete yProp; } d_ptr->m_propertyToY.remove(property); d_ptr->m_values.remove(property); } // QtPointFPropertyManager class QtPointFPropertyManagerPrivate { QtPointFPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtPointFPropertyManager) public: struct Data { Data() : decimals(2) {} QPointF val; int decimals; }; void slotDoubleChanged(QtProperty *property, double value); void slotPropertyDestroyed(QtProperty *property); typedef QMap PropertyValueMap; PropertyValueMap m_values; QtDoublePropertyManager *m_doublePropertyManager; QMap m_propertyToX; QMap m_propertyToY; QMap m_xToProperty; QMap m_yToProperty; }; void QtPointFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) { if (QtProperty *prop = m_xToProperty.value(property, 0)) { QPointF p = m_values[prop].val; p.setX(value); q_ptr->setValue(prop, p); } else if (QtProperty *prop = m_yToProperty.value(property, 0)) { QPointF p = m_values[prop].val; p.setY(value); q_ptr->setValue(prop, p); } } void QtPointFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { m_propertyToX[pointProp] = 0; m_xToProperty.remove(property); } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { m_propertyToY[pointProp] = 0; m_yToProperty.remove(property); } } /*! \class QtPointFPropertyManager \brief The QtPointFPropertyManager provides and manages QPointF properties. A point property has nested \e x and \e y subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtDoublePropertyManager object. This manager can be retrieved using the subDoublePropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. In addition, QtPointFPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtPointPropertyManager */ /*! \fn void QtPointFPropertyManager::valueChanged(QtProperty *property, const QPointF &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtPointFPropertyManager::decimalsChanged(QtProperty *property, int prec) This signal is emitted whenever a property created by this manager changes its precision of value, passing a pointer to the \a property and the new \a prec value \sa setDecimals() */ /*! Creates a manager with the given \a parent. */ QtPointFPropertyManager::QtPointFPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtPointFPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotDoubleChanged(QtProperty *, double))); connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtPointFPropertyManager::~QtPointFPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e x and \e y subproperties. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtDoublePropertyManager *QtPointFPropertyManager::subDoublePropertyManager() const { return d_ptr->m_doublePropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns a point with coordinates (0, 0). \sa setValue() */ QPointF QtPointFPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's precision, in decimals. \sa setDecimals() */ int QtPointFPropertyManager::decimals(const QtProperty *property) const { return getData(d_ptr->m_values, &QtPointFPropertyManagerPrivate::Data::decimals, property, 0); } /*! \reimp */ QString QtPointFPropertyManager::valueText(const QtProperty *property) const { const QtPointFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QPointF v = it.value().val; const int dec = it.value().decimals; return QString(tr("(%1, %2)").arg(QString::number(v.x(), 'f', dec)) .arg(QString::number(v.y(), 'f', dec))); } /*! \fn void QtPointFPropertyManager::setValue(QtProperty *property, const QPointF &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtPointFPropertyManager::setValue(QtProperty *property, const QPointF &val) { const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; if (it.value().val == val) return; it.value().val = val; d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], val.x()); d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], val.y()); emit propertyChanged(property); emit valueChanged(property, val); } /*! \fn void QtPointFPropertyManager::setDecimals(QtProperty *property, int prec) Sets the precision of the given \a property to \a prec. The valid decimal range is 0-13. The default is 2. \sa decimals() */ void QtPointFPropertyManager::setDecimals(QtProperty *property, int prec) { const QtPointFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtPointFPropertyManagerPrivate::Data data = it.value(); if (prec > 13) prec = 13; else if (prec < 0) prec = 0; if (data.decimals == prec) return; data.decimals = prec; d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec); d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec); it.value() = data; emit decimalsChanged(property, data.decimals); } /*! \reimp */ void QtPointFPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtPointFPropertyManagerPrivate::Data(); QtProperty *xProp = d_ptr->m_doublePropertyManager->addProperty(); xProp->setPropertyName(tr("X")); d_ptr->m_doublePropertyManager->setDecimals(xProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(xProp, 0); d_ptr->m_propertyToX[property] = xProp; d_ptr->m_xToProperty[xProp] = property; property->addSubProperty(xProp); QtProperty *yProp = d_ptr->m_doublePropertyManager->addProperty(); yProp->setPropertyName(tr("Y")); d_ptr->m_doublePropertyManager->setDecimals(yProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(yProp, 0); d_ptr->m_propertyToY[property] = yProp; d_ptr->m_yToProperty[yProp] = property; property->addSubProperty(yProp); } /*! \reimp */ void QtPointFPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *xProp = d_ptr->m_propertyToX[property]; if (xProp) { d_ptr->m_xToProperty.remove(xProp); delete xProp; } d_ptr->m_propertyToX.remove(property); QtProperty *yProp = d_ptr->m_propertyToY[property]; if (yProp) { d_ptr->m_yToProperty.remove(yProp); delete yProp; } d_ptr->m_propertyToY.remove(property); d_ptr->m_values.remove(property); } // QtSizePropertyManager class QtSizePropertyManagerPrivate { QtSizePropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtSizePropertyManager) public: void slotIntChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); void setValue(QtProperty *property, const QSize &val); void setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal, const QSize &val); struct Data { Data() : val(QSize(0, 0)), minVal(QSize(0, 0)), maxVal(QSize(INT_MAX, INT_MAX)) {} QSize val; QSize minVal; QSize maxVal; QSize minimumValue() const { return minVal; } QSize maximumValue() const { return maxVal; } void setMinimumValue(const QSize &newMinVal) { setSizeMinimumData(this, newMinVal); } void setMaximumValue(const QSize &newMaxVal) { setSizeMaximumData(this, newMaxVal); } }; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QMap m_propertyToW; QMap m_propertyToH; QMap m_wToProperty; QMap m_hToProperty; }; void QtSizePropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (QtProperty *prop = m_wToProperty.value(property, 0)) { QSize s = m_values[prop].val; s.setWidth(value); q_ptr->setValue(prop, s); } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { QSize s = m_values[prop].val; s.setHeight(value); q_ptr->setValue(prop, s); } } void QtSizePropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { m_propertyToW[pointProp] = 0; m_wToProperty.remove(property); } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { m_propertyToH[pointProp] = 0; m_hToProperty.remove(property); } } void QtSizePropertyManagerPrivate::setValue(QtProperty *property, const QSize &val) { m_intPropertyManager->setValue(m_propertyToW.value(property), val.width()); m_intPropertyManager->setValue(m_propertyToH.value(property), val.height()); } void QtSizePropertyManagerPrivate::setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal, const QSize &val) { QtProperty *wProperty = m_propertyToW.value(property); QtProperty *hProperty = m_propertyToH.value(property); m_intPropertyManager->setRange(wProperty, minVal.width(), maxVal.width()); m_intPropertyManager->setValue(wProperty, val.width()); m_intPropertyManager->setRange(hProperty, minVal.height(), maxVal.height()); m_intPropertyManager->setValue(hProperty, val.height()); } /*! \class QtSizePropertyManager \brief The QtSizePropertyManager provides and manages QSize properties. A size property has nested \e width and \e height subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtIntPropertyManager object. This manager can be retrieved using the subIntPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. A size property also has a range of valid values defined by a minimum size and a maximum size. These sizes can be retrieved using the minimum() and the maximum() functions, and set using the setMinimum() and setMaximum() slots. Alternatively, the range can be defined in one go using the setRange() slot. In addition, QtSizePropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the rangeChanged() signal which is emitted whenever such a property changes its range of valid sizes. \sa QtAbstractPropertyManager, QtIntPropertyManager, QtSizeFPropertyManager */ /*! \fn void QtSizePropertyManager::valueChanged(QtProperty *property, const QSize &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtSizePropertyManager::rangeChanged(QtProperty *property, const QSize &minimum, const QSize &maximum) This signal is emitted whenever a property created by this manager changes its range of valid sizes, passing a pointer to the \a property and the new \a minimum and \a maximum sizes. \sa setRange() */ /*! Creates a manager with the given \a parent. */ QtSizePropertyManager::QtSizePropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtSizePropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtSizePropertyManager::~QtSizePropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e width and \e height subproperties. In order to provide editing widgets for the \e width and \e height properties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtSizePropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid size \sa setValue() */ QSize QtSizePropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's minimum size value. \sa setMinimum(), maximum(), setRange() */ QSize QtSizePropertyManager::minimum(const QtProperty *property) const { return getMinimum(d_ptr->m_values, property); } /*! Returns the given \a property's maximum size value. \sa setMaximum(), minimum(), setRange() */ QSize QtSizePropertyManager::maximum(const QtProperty *property) const { return getMaximum(d_ptr->m_values, property); } /*! \reimp */ QString QtSizePropertyManager::valueText(const QtProperty *property) const { const QtSizePropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QSize v = it.value().val; return QString(tr("%1 x %2").arg(QString::number(v.width())) .arg(QString::number(v.height()))); } /*! \fn void QtSizePropertyManager::setValue(QtProperty *property, const QSize &value) Sets the value of the given \a property to \a value. If the specified \a value is not valid according to the given \a property's size range, the \a value is adjusted to the nearest valid value within the size range. \sa value(), setRange(), valueChanged() */ void QtSizePropertyManager::setValue(QtProperty *property, const QSize &val) { setValueInRange(this, d_ptr, &QtSizePropertyManager::propertyChanged, &QtSizePropertyManager::valueChanged, property, val, &QtSizePropertyManagerPrivate::setValue); } /*! Sets the minimum size value for the given \a property to \a minVal. When setting the minimum size value, the maximum and current values are adjusted if necessary (ensuring that the size range remains valid and that the current value is within the range). \sa minimum(), setRange(), rangeChanged() */ void QtSizePropertyManager::setMinimum(QtProperty *property, const QSize &minVal) { setBorderValue(this, d_ptr, &QtSizePropertyManager::propertyChanged, &QtSizePropertyManager::valueChanged, &QtSizePropertyManager::rangeChanged, property, &QtSizePropertyManagerPrivate::Data::minimumValue, &QtSizePropertyManagerPrivate::Data::setMinimumValue, minVal, &QtSizePropertyManagerPrivate::setRange); } /*! Sets the maximum size value for the given \a property to \a maxVal. When setting the maximum size value, the minimum and current values are adjusted if necessary (ensuring that the size range remains valid and that the current value is within the range). \sa maximum(), setRange(), rangeChanged() */ void QtSizePropertyManager::setMaximum(QtProperty *property, const QSize &maxVal) { setBorderValue(this, d_ptr, &QtSizePropertyManager::propertyChanged, &QtSizePropertyManager::valueChanged, &QtSizePropertyManager::rangeChanged, property, &QtSizePropertyManagerPrivate::Data::maximumValue, &QtSizePropertyManagerPrivate::Data::setMaximumValue, maxVal, &QtSizePropertyManagerPrivate::setRange); } /*! \fn void QtSizePropertyManager::setRange(QtProperty *property, const QSize &minimum, const QSize &maximum) Sets the range of valid values. This is a convenience function defining the range of valid values in one go; setting the \a minimum and \a maximum values for the given \a property with a single function call. When setting a new range, the current value is adjusted if necessary (ensuring that the value remains within the range). \sa setMinimum(), setMaximum(), rangeChanged() */ void QtSizePropertyManager::setRange(QtProperty *property, const QSize &minVal, const QSize &maxVal) { setBorderValues(this, d_ptr, &QtSizePropertyManager::propertyChanged, &QtSizePropertyManager::valueChanged, &QtSizePropertyManager::rangeChanged, property, minVal, maxVal, &QtSizePropertyManagerPrivate::setRange); } /*! \reimp */ void QtSizePropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtSizePropertyManagerPrivate::Data(); QtProperty *wProp = d_ptr->m_intPropertyManager->addProperty(); wProp->setPropertyName(tr("Width")); d_ptr->m_intPropertyManager->setValue(wProp, 0); d_ptr->m_intPropertyManager->setMinimum(wProp, 0); d_ptr->m_propertyToW[property] = wProp; d_ptr->m_wToProperty[wProp] = property; property->addSubProperty(wProp); QtProperty *hProp = d_ptr->m_intPropertyManager->addProperty(); hProp->setPropertyName(tr("Height")); d_ptr->m_intPropertyManager->setValue(hProp, 0); d_ptr->m_intPropertyManager->setMinimum(hProp, 0); d_ptr->m_propertyToH[property] = hProp; d_ptr->m_hToProperty[hProp] = property; property->addSubProperty(hProp); } /*! \reimp */ void QtSizePropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *wProp = d_ptr->m_propertyToW[property]; if (wProp) { d_ptr->m_wToProperty.remove(wProp); delete wProp; } d_ptr->m_propertyToW.remove(property); QtProperty *hProp = d_ptr->m_propertyToH[property]; if (hProp) { d_ptr->m_hToProperty.remove(hProp); delete hProp; } d_ptr->m_propertyToH.remove(property); d_ptr->m_values.remove(property); } // QtSizeFPropertyManager class QtSizeFPropertyManagerPrivate { QtSizeFPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtSizeFPropertyManager) public: void slotDoubleChanged(QtProperty *property, double value); void slotPropertyDestroyed(QtProperty *property); void setValue(QtProperty *property, const QSizeF &val); void setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal, const QSizeF &val); struct Data { Data() : val(QSizeF(0, 0)), minVal(QSizeF(0, 0)), maxVal(QSizeF(INT_MAX, INT_MAX)), decimals(2) {} QSizeF val; QSizeF minVal; QSizeF maxVal; int decimals; QSizeF minimumValue() const { return minVal; } QSizeF maximumValue() const { return maxVal; } void setMinimumValue(const QSizeF &newMinVal) { setSizeMinimumData(this, newMinVal); } void setMaximumValue(const QSizeF &newMaxVal) { setSizeMaximumData(this, newMaxVal); } }; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtDoublePropertyManager *m_doublePropertyManager; QMap m_propertyToW; QMap m_propertyToH; QMap m_wToProperty; QMap m_hToProperty; }; void QtSizeFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) { if (QtProperty *prop = m_wToProperty.value(property, 0)) { QSizeF s = m_values[prop].val; s.setWidth(value); q_ptr->setValue(prop, s); } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { QSizeF s = m_values[prop].val; s.setHeight(value); q_ptr->setValue(prop, s); } } void QtSizeFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { m_propertyToW[pointProp] = 0; m_wToProperty.remove(property); } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { m_propertyToH[pointProp] = 0; m_hToProperty.remove(property); } } void QtSizeFPropertyManagerPrivate::setValue(QtProperty *property, const QSizeF &val) { m_doublePropertyManager->setValue(m_propertyToW.value(property), val.width()); m_doublePropertyManager->setValue(m_propertyToH.value(property), val.height()); } void QtSizeFPropertyManagerPrivate::setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal, const QSizeF &val) { m_doublePropertyManager->setRange(m_propertyToW[property], minVal.width(), maxVal.width()); m_doublePropertyManager->setValue(m_propertyToW[property], val.width()); m_doublePropertyManager->setRange(m_propertyToH[property], minVal.height(), maxVal.height()); m_doublePropertyManager->setValue(m_propertyToH[property], val.height()); } /*! \class QtSizeFPropertyManager \brief The QtSizeFPropertyManager provides and manages QSizeF properties. A size property has nested \e width and \e height subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtDoublePropertyManager object. This manager can be retrieved using the subDoublePropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. A size property also has a range of valid values defined by a minimum size and a maximum size. These sizes can be retrieved using the minimum() and the maximum() functions, and set using the setMinimum() and setMaximum() slots. Alternatively, the range can be defined in one go using the setRange() slot. In addition, QtSizeFPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the rangeChanged() signal which is emitted whenever such a property changes its range of valid sizes. \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtSizePropertyManager */ /*! \fn void QtSizeFPropertyManager::valueChanged(QtProperty *property, const QSizeF &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtSizeFPropertyManager::rangeChanged(QtProperty *property, const QSizeF &minimum, const QSizeF &maximum) This signal is emitted whenever a property created by this manager changes its range of valid sizes, passing a pointer to the \a property and the new \a minimum and \a maximum sizes. \sa setRange() */ /*! \fn void QtSizeFPropertyManager::decimalsChanged(QtProperty *property, int prec) This signal is emitted whenever a property created by this manager changes its precision of value, passing a pointer to the \a property and the new \a prec value \sa setDecimals() */ /*! Creates a manager with the given \a parent. */ QtSizeFPropertyManager::QtSizeFPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtSizeFPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotDoubleChanged(QtProperty *, double))); connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtSizeFPropertyManager::~QtSizeFPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e width and \e height subproperties. In order to provide editing widgets for the \e width and \e height properties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtDoublePropertyManager *QtSizeFPropertyManager::subDoublePropertyManager() const { return d_ptr->m_doublePropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid size \sa setValue() */ QSizeF QtSizeFPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's precision, in decimals. \sa setDecimals() */ int QtSizeFPropertyManager::decimals(const QtProperty *property) const { return getData(d_ptr->m_values, &QtSizeFPropertyManagerPrivate::Data::decimals, property, 0); } /*! Returns the given \a property's minimum size value. \sa setMinimum(), maximum(), setRange() */ QSizeF QtSizeFPropertyManager::minimum(const QtProperty *property) const { return getMinimum(d_ptr->m_values, property); } /*! Returns the given \a property's maximum size value. \sa setMaximum(), minimum(), setRange() */ QSizeF QtSizeFPropertyManager::maximum(const QtProperty *property) const { return getMaximum(d_ptr->m_values, property); } /*! \reimp */ QString QtSizeFPropertyManager::valueText(const QtProperty *property) const { const QtSizeFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QSizeF v = it.value().val; const int dec = it.value().decimals; return QString(tr("%1 x %2").arg(QString::number(v.width(), 'f', dec)) .arg(QString::number(v.height(), 'f', dec))); } /*! \fn void QtSizeFPropertyManager::setValue(QtProperty *property, const QSizeF &value) Sets the value of the given \a property to \a value. If the specified \a value is not valid according to the given \a property's size range, the \a value is adjusted to the nearest valid value within the size range. \sa value(), setRange(), valueChanged() */ void QtSizeFPropertyManager::setValue(QtProperty *property, const QSizeF &val) { setValueInRange(this, d_ptr, &QtSizeFPropertyManager::propertyChanged, &QtSizeFPropertyManager::valueChanged, property, val, &QtSizeFPropertyManagerPrivate::setValue); } /*! \fn void QtSizeFPropertyManager::setDecimals(QtProperty *property, int prec) Sets the precision of the given \a property to \a prec. The valid decimal range is 0-13. The default is 2. \sa decimals() */ void QtSizeFPropertyManager::setDecimals(QtProperty *property, int prec) { const QtSizeFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtSizeFPropertyManagerPrivate::Data data = it.value(); if (prec > 13) prec = 13; else if (prec < 0) prec = 0; if (data.decimals == prec) return; data.decimals = prec; d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec); d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec); it.value() = data; emit decimalsChanged(property, data.decimals); } /*! Sets the minimum size value for the given \a property to \a minVal. When setting the minimum size value, the maximum and current values are adjusted if necessary (ensuring that the size range remains valid and that the current value is within the range). \sa minimum(), setRange(), rangeChanged() */ void QtSizeFPropertyManager::setMinimum(QtProperty *property, const QSizeF &minVal) { setBorderValue(this, d_ptr, &QtSizeFPropertyManager::propertyChanged, &QtSizeFPropertyManager::valueChanged, &QtSizeFPropertyManager::rangeChanged, property, &QtSizeFPropertyManagerPrivate::Data::minimumValue, &QtSizeFPropertyManagerPrivate::Data::setMinimumValue, minVal, &QtSizeFPropertyManagerPrivate::setRange); } /*! Sets the maximum size value for the given \a property to \a maxVal. When setting the maximum size value, the minimum and current values are adjusted if necessary (ensuring that the size range remains valid and that the current value is within the range). \sa maximum(), setRange(), rangeChanged() */ void QtSizeFPropertyManager::setMaximum(QtProperty *property, const QSizeF &maxVal) { setBorderValue(this, d_ptr, &QtSizeFPropertyManager::propertyChanged, &QtSizeFPropertyManager::valueChanged, &QtSizeFPropertyManager::rangeChanged, property, &QtSizeFPropertyManagerPrivate::Data::maximumValue, &QtSizeFPropertyManagerPrivate::Data::setMaximumValue, maxVal, &QtSizeFPropertyManagerPrivate::setRange); } /*! \fn void QtSizeFPropertyManager::setRange(QtProperty *property, const QSizeF &minimum, const QSizeF &maximum) Sets the range of valid values. This is a convenience function defining the range of valid values in one go; setting the \a minimum and \a maximum values for the given \a property with a single function call. When setting a new range, the current value is adjusted if necessary (ensuring that the value remains within the range). \sa setMinimum(), setMaximum(), rangeChanged() */ void QtSizeFPropertyManager::setRange(QtProperty *property, const QSizeF &minVal, const QSizeF &maxVal) { setBorderValues(this, d_ptr, &QtSizeFPropertyManager::propertyChanged, &QtSizeFPropertyManager::valueChanged, &QtSizeFPropertyManager::rangeChanged, property, minVal, maxVal, &QtSizeFPropertyManagerPrivate::setRange); } /*! \reimp */ void QtSizeFPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtSizeFPropertyManagerPrivate::Data(); QtProperty *wProp = d_ptr->m_doublePropertyManager->addProperty(); wProp->setPropertyName(tr("Width")); d_ptr->m_doublePropertyManager->setDecimals(wProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(wProp, 0); d_ptr->m_doublePropertyManager->setMinimum(wProp, 0); d_ptr->m_propertyToW[property] = wProp; d_ptr->m_wToProperty[wProp] = property; property->addSubProperty(wProp); QtProperty *hProp = d_ptr->m_doublePropertyManager->addProperty(); hProp->setPropertyName(tr("Height")); d_ptr->m_doublePropertyManager->setDecimals(hProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(hProp, 0); d_ptr->m_doublePropertyManager->setMinimum(hProp, 0); d_ptr->m_propertyToH[property] = hProp; d_ptr->m_hToProperty[hProp] = property; property->addSubProperty(hProp); } /*! \reimp */ void QtSizeFPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *wProp = d_ptr->m_propertyToW[property]; if (wProp) { d_ptr->m_wToProperty.remove(wProp); delete wProp; } d_ptr->m_propertyToW.remove(property); QtProperty *hProp = d_ptr->m_propertyToH[property]; if (hProp) { d_ptr->m_hToProperty.remove(hProp); delete hProp; } d_ptr->m_propertyToH.remove(property); d_ptr->m_values.remove(property); } // QtRectPropertyManager class QtRectPropertyManagerPrivate { QtRectPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtRectPropertyManager) public: void slotIntChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); void setConstraint(QtProperty *property, const QRect &constraint, const QRect &val); struct Data { Data() : val(0, 0, 0, 0) {} QRect val; QRect constraint; }; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QMap m_propertyToX; QMap m_propertyToY; QMap m_propertyToW; QMap m_propertyToH; QMap m_xToProperty; QMap m_yToProperty; QMap m_wToProperty; QMap m_hToProperty; }; void QtRectPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (QtProperty *prop = m_xToProperty.value(property, 0)) { QRect r = m_values[prop].val; r.moveLeft(value); q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_yToProperty.value(property)) { QRect r = m_values[prop].val; r.moveTop(value); q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_wToProperty.value(property, 0)) { Data data = m_values[prop]; QRect r = data.val; r.setWidth(value); if (!data.constraint.isNull() && data.constraint.x() + data.constraint.width() < r.x() + r.width()) { r.moveLeft(data.constraint.left() + data.constraint.width() - r.width()); } q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { Data data = m_values[prop]; QRect r = data.val; r.setHeight(value); if (!data.constraint.isNull() && data.constraint.y() + data.constraint.height() < r.y() + r.height()) { r.moveTop(data.constraint.top() + data.constraint.height() - r.height()); } q_ptr->setValue(prop, r); } } void QtRectPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { m_propertyToX[pointProp] = 0; m_xToProperty.remove(property); } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { m_propertyToY[pointProp] = 0; m_yToProperty.remove(property); } else if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { m_propertyToW[pointProp] = 0; m_wToProperty.remove(property); } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { m_propertyToH[pointProp] = 0; m_hToProperty.remove(property); } } void QtRectPropertyManagerPrivate::setConstraint(QtProperty *property, const QRect &constraint, const QRect &val) { const bool isNull = constraint.isNull(); const int left = isNull ? INT_MIN : constraint.left(); const int right = isNull ? INT_MAX : constraint.left() + constraint.width(); const int top = isNull ? INT_MIN : constraint.top(); const int bottom = isNull ? INT_MAX : constraint.top() + constraint.height(); const int width = isNull ? INT_MAX : constraint.width(); const int height = isNull ? INT_MAX : constraint.height(); m_intPropertyManager->setRange(m_propertyToX[property], left, right); m_intPropertyManager->setRange(m_propertyToY[property], top, bottom); m_intPropertyManager->setRange(m_propertyToW[property], 0, width); m_intPropertyManager->setRange(m_propertyToH[property], 0, height); m_intPropertyManager->setValue(m_propertyToX[property], val.x()); m_intPropertyManager->setValue(m_propertyToY[property], val.y()); m_intPropertyManager->setValue(m_propertyToW[property], val.width()); m_intPropertyManager->setValue(m_propertyToH[property], val.height()); } /*! \class QtRectPropertyManager \brief The QtRectPropertyManager provides and manages QRect properties. A rectangle property has nested \e x, \e y, \e width and \e height subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtIntPropertyManager object. This manager can be retrieved using the subIntPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. A rectangle property also has a constraint rectangle which can be retrieved using the constraint() function, and set using the setConstraint() slot. In addition, QtRectPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the constraintChanged() signal which is emitted whenever such a property changes its constraint rectangle. \sa QtAbstractPropertyManager, QtIntPropertyManager, QtRectFPropertyManager */ /*! \fn void QtRectPropertyManager::valueChanged(QtProperty *property, const QRect &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtRectPropertyManager::constraintChanged(QtProperty *property, const QRect &constraint) This signal is emitted whenever property changes its constraint rectangle, passing a pointer to the \a property and the new \a constraint rectangle as parameters. \sa setConstraint() */ /*! Creates a manager with the given \a parent. */ QtRectPropertyManager::QtRectPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtRectPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtRectPropertyManager::~QtRectPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e x, \e y, \e width and \e height subproperties. In order to provide editing widgets for the mentioned subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtRectPropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid rectangle. \sa setValue(), constraint() */ QRect QtRectPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's constraining rectangle. If returned value is null QRect it means there is no constraint applied. \sa value(), setConstraint() */ QRect QtRectPropertyManager::constraint(const QtProperty *property) const { return getData(d_ptr->m_values, &QtRectPropertyManagerPrivate::Data::constraint, property, QRect()); } /*! \reimp */ QString QtRectPropertyManager::valueText(const QtProperty *property) const { const QtRectPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QRect v = it.value().val; return QString(tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x())) .arg(QString::number(v.y())) .arg(QString::number(v.width())) .arg(QString::number(v.height()))); } /*! \fn void QtRectPropertyManager::setValue(QtProperty *property, const QRect &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. If the specified \a value is not inside the given \a property's constraining rectangle, the value is adjusted accordingly to fit within the constraint. \sa value(), setConstraint(), valueChanged() */ void QtRectPropertyManager::setValue(QtProperty *property, const QRect &val) { const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtRectPropertyManagerPrivate::Data data = it.value(); QRect newRect = val.normalized(); if (!data.constraint.isNull() && !data.constraint.contains(newRect)) { const QRect r1 = data.constraint; const QRect r2 = newRect; newRect.setLeft(qMax(r1.left(), r2.left())); newRect.setRight(qMin(r1.right(), r2.right())); newRect.setTop(qMax(r1.top(), r2.top())); newRect.setBottom(qMin(r1.bottom(), r2.bottom())); if (newRect.width() < 0 || newRect.height() < 0) return; } if (data.val == newRect) return; data.val = newRect; it.value() = data; d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height()); emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the given \a property's constraining rectangle to \a constraint. When setting the constraint, the current value is adjusted if necessary (ensuring that the current rectangle value is inside the constraint). In order to reset the constraint pass a null QRect value. \sa setValue(), constraint(), constraintChanged() */ void QtRectPropertyManager::setConstraint(QtProperty *property, const QRect &constraint) { const QtRectPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtRectPropertyManagerPrivate::Data data = it.value(); QRect newConstraint = constraint.normalized(); if (data.constraint == newConstraint) return; const QRect oldVal = data.val; data.constraint = newConstraint; if (!data.constraint.isNull() && !data.constraint.contains(oldVal)) { QRect r1 = data.constraint; QRect r2 = data.val; if (r2.width() > r1.width()) r2.setWidth(r1.width()); if (r2.height() > r1.height()) r2.setHeight(r1.height()); if (r2.left() < r1.left()) r2.moveLeft(r1.left()); else if (r2.right() > r1.right()) r2.moveRight(r1.right()); if (r2.top() < r1.top()) r2.moveTop(r1.top()); else if (r2.bottom() > r1.bottom()) r2.moveBottom(r1.bottom()); data.val = r2; } it.value() = data; emit constraintChanged(property, data.constraint); d_ptr->setConstraint(property, data.constraint, data.val); if (data.val == oldVal) return; emit propertyChanged(property); emit valueChanged(property, data.val); } /*! \reimp */ void QtRectPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtRectPropertyManagerPrivate::Data(); QtProperty *xProp = d_ptr->m_intPropertyManager->addProperty(); xProp->setPropertyName(tr("X")); d_ptr->m_intPropertyManager->setValue(xProp, 0); d_ptr->m_propertyToX[property] = xProp; d_ptr->m_xToProperty[xProp] = property; property->addSubProperty(xProp); QtProperty *yProp = d_ptr->m_intPropertyManager->addProperty(); yProp->setPropertyName(tr("Y")); d_ptr->m_intPropertyManager->setValue(yProp, 0); d_ptr->m_propertyToY[property] = yProp; d_ptr->m_yToProperty[yProp] = property; property->addSubProperty(yProp); QtProperty *wProp = d_ptr->m_intPropertyManager->addProperty(); wProp->setPropertyName(tr("Width")); d_ptr->m_intPropertyManager->setValue(wProp, 0); d_ptr->m_intPropertyManager->setMinimum(wProp, 0); d_ptr->m_propertyToW[property] = wProp; d_ptr->m_wToProperty[wProp] = property; property->addSubProperty(wProp); QtProperty *hProp = d_ptr->m_intPropertyManager->addProperty(); hProp->setPropertyName(tr("Height")); d_ptr->m_intPropertyManager->setValue(hProp, 0); d_ptr->m_intPropertyManager->setMinimum(hProp, 0); d_ptr->m_propertyToH[property] = hProp; d_ptr->m_hToProperty[hProp] = property; property->addSubProperty(hProp); } /*! \reimp */ void QtRectPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *xProp = d_ptr->m_propertyToX[property]; if (xProp) { d_ptr->m_xToProperty.remove(xProp); delete xProp; } d_ptr->m_propertyToX.remove(property); QtProperty *yProp = d_ptr->m_propertyToY[property]; if (yProp) { d_ptr->m_yToProperty.remove(yProp); delete yProp; } d_ptr->m_propertyToY.remove(property); QtProperty *wProp = d_ptr->m_propertyToW[property]; if (wProp) { d_ptr->m_wToProperty.remove(wProp); delete wProp; } d_ptr->m_propertyToW.remove(property); QtProperty *hProp = d_ptr->m_propertyToH[property]; if (hProp) { d_ptr->m_hToProperty.remove(hProp); delete hProp; } d_ptr->m_propertyToH.remove(property); d_ptr->m_values.remove(property); } // QtRectFPropertyManager class QtRectFPropertyManagerPrivate { QtRectFPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtRectFPropertyManager) public: void slotDoubleChanged(QtProperty *property, double value); void slotPropertyDestroyed(QtProperty *property); void setConstraint(QtProperty *property, const QRectF &constraint, const QRectF &val); struct Data { Data() : val(0, 0, 0, 0), decimals(2) {} QRectF val; QRectF constraint; int decimals; }; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtDoublePropertyManager *m_doublePropertyManager; QMap m_propertyToX; QMap m_propertyToY; QMap m_propertyToW; QMap m_propertyToH; QMap m_xToProperty; QMap m_yToProperty; QMap m_wToProperty; QMap m_hToProperty; }; void QtRectFPropertyManagerPrivate::slotDoubleChanged(QtProperty *property, double value) { if (QtProperty *prop = m_xToProperty.value(property, 0)) { QRectF r = m_values[prop].val; r.moveLeft(value); q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_yToProperty.value(property, 0)) { QRectF r = m_values[prop].val; r.moveTop(value); q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_wToProperty.value(property, 0)) { Data data = m_values[prop]; QRectF r = data.val; r.setWidth(value); if (!data.constraint.isNull() && data.constraint.x() + data.constraint.width() < r.x() + r.width()) { r.moveLeft(data.constraint.left() + data.constraint.width() - r.width()); } q_ptr->setValue(prop, r); } else if (QtProperty *prop = m_hToProperty.value(property, 0)) { Data data = m_values[prop]; QRectF r = data.val; r.setHeight(value); if (!data.constraint.isNull() && data.constraint.y() + data.constraint.height() < r.y() + r.height()) { r.moveTop(data.constraint.top() + data.constraint.height() - r.height()); } q_ptr->setValue(prop, r); } } void QtRectFPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_xToProperty.value(property, 0)) { m_propertyToX[pointProp] = 0; m_xToProperty.remove(property); } else if (QtProperty *pointProp = m_yToProperty.value(property, 0)) { m_propertyToY[pointProp] = 0; m_yToProperty.remove(property); } else if (QtProperty *pointProp = m_wToProperty.value(property, 0)) { m_propertyToW[pointProp] = 0; m_wToProperty.remove(property); } else if (QtProperty *pointProp = m_hToProperty.value(property, 0)) { m_propertyToH[pointProp] = 0; m_hToProperty.remove(property); } } void QtRectFPropertyManagerPrivate::setConstraint(QtProperty *property, const QRectF &constraint, const QRectF &val) { const bool isNull = constraint.isNull(); const float left = isNull ? FLT_MIN : constraint.left(); const float right = isNull ? FLT_MAX : constraint.left() + constraint.width(); const float top = isNull ? FLT_MIN : constraint.top(); const float bottom = isNull ? FLT_MAX : constraint.top() + constraint.height(); const float width = isNull ? FLT_MAX : constraint.width(); const float height = isNull ? FLT_MAX : constraint.height(); m_doublePropertyManager->setRange(m_propertyToX[property], left, right); m_doublePropertyManager->setRange(m_propertyToY[property], top, bottom); m_doublePropertyManager->setRange(m_propertyToW[property], 0, width); m_doublePropertyManager->setRange(m_propertyToH[property], 0, height); m_doublePropertyManager->setValue(m_propertyToX[property], val.x()); m_doublePropertyManager->setValue(m_propertyToY[property], val.y()); m_doublePropertyManager->setValue(m_propertyToW[property], val.width()); m_doublePropertyManager->setValue(m_propertyToH[property], val.height()); } /*! \class QtRectFPropertyManager \brief The QtRectFPropertyManager provides and manages QRectF properties. A rectangle property has nested \e x, \e y, \e width and \e height subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtDoublePropertyManager object. This manager can be retrieved using the subDoublePropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. A rectangle property also has a constraint rectangle which can be retrieved using the constraint() function, and set using the setConstraint() slot. In addition, QtRectFPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the constraintChanged() signal which is emitted whenever such a property changes its constraint rectangle. \sa QtAbstractPropertyManager, QtDoublePropertyManager, QtRectPropertyManager */ /*! \fn void QtRectFPropertyManager::valueChanged(QtProperty *property, const QRectF &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtRectFPropertyManager::constraintChanged(QtProperty *property, const QRectF &constraint) This signal is emitted whenever property changes its constraint rectangle, passing a pointer to the \a property and the new \a constraint rectangle as parameters. \sa setConstraint() */ /*! \fn void QtRectFPropertyManager::decimalsChanged(QtProperty *property, int prec) This signal is emitted whenever a property created by this manager changes its precision of value, passing a pointer to the \a property and the new \a prec value \sa setDecimals() */ /*! Creates a manager with the given \a parent. */ QtRectFPropertyManager::QtRectFPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtRectFPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_doublePropertyManager = new QtDoublePropertyManager(this); connect(d_ptr->m_doublePropertyManager, SIGNAL(valueChanged(QtProperty *, double)), this, SLOT(slotDoubleChanged(QtProperty *, double))); connect(d_ptr->m_doublePropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtRectFPropertyManager::~QtRectFPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e x, \e y, \e width and \e height subproperties. In order to provide editing widgets for the mentioned subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtDoublePropertyManager *QtRectFPropertyManager::subDoublePropertyManager() const { return d_ptr->m_doublePropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns an invalid rectangle. \sa setValue(), constraint() */ QRectF QtRectFPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property); } /*! Returns the given \a property's precision, in decimals. \sa setDecimals() */ int QtRectFPropertyManager::decimals(const QtProperty *property) const { return getData(d_ptr->m_values, &QtRectFPropertyManagerPrivate::Data::decimals, property, 0); } /*! Returns the given \a property's constraining rectangle. If returned value is null QRectF it means there is no constraint applied. \sa value(), setConstraint() */ QRectF QtRectFPropertyManager::constraint(const QtProperty *property) const { return getData(d_ptr->m_values, &QtRectFPropertyManagerPrivate::Data::constraint, property, QRect()); } /*! \reimp */ QString QtRectFPropertyManager::valueText(const QtProperty *property) const { const QtRectFPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QRectF v = it.value().val; const int dec = it.value().decimals; return QString(tr("[(%1, %2), %3 x %4]").arg(QString::number(v.x(), 'f', dec)) .arg(QString::number(v.y(), 'f', dec)) .arg(QString::number(v.width(), 'f', dec)) .arg(QString::number(v.height(), 'f', dec))); } /*! \fn void QtRectFPropertyManager::setValue(QtProperty *property, const QRectF &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. If the specified \a value is not inside the given \a property's constraining rectangle, the value is adjusted accordingly to fit within the constraint. \sa value(), setConstraint(), valueChanged() */ void QtRectFPropertyManager::setValue(QtProperty *property, const QRectF &val) { const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtRectFPropertyManagerPrivate::Data data = it.value(); QRectF newRect = val.normalized(); if (!data.constraint.isNull() && !data.constraint.contains(newRect)) { const QRectF r1 = data.constraint; const QRectF r2 = newRect; newRect.setLeft(qMax(r1.left(), r2.left())); newRect.setRight(qMin(r1.right(), r2.right())); newRect.setTop(qMax(r1.top(), r2.top())); newRect.setBottom(qMin(r1.bottom(), r2.bottom())); if (newRect.width() < 0 || newRect.height() < 0) return; } if (data.val == newRect) return; data.val = newRect; it.value() = data; d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToX[property], newRect.x()); d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToY[property], newRect.y()); d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToW[property], newRect.width()); d_ptr->m_doublePropertyManager->setValue(d_ptr->m_propertyToH[property], newRect.height()); emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the given \a property's constraining rectangle to \a constraint. When setting the constraint, the current value is adjusted if necessary (ensuring that the current rectangle value is inside the constraint). In order to reset the constraint pass a null QRectF value. \sa setValue(), constraint(), constraintChanged() */ void QtRectFPropertyManager::setConstraint(QtProperty *property, const QRectF &constraint) { const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtRectFPropertyManagerPrivate::Data data = it.value(); QRectF newConstraint = constraint.normalized(); if (data.constraint == newConstraint) return; const QRectF oldVal = data.val; data.constraint = newConstraint; if (!data.constraint.isNull() && !data.constraint.contains(oldVal)) { QRectF r1 = data.constraint; QRectF r2 = data.val; if (r2.width() > r1.width()) r2.setWidth(r1.width()); if (r2.height() > r1.height()) r2.setHeight(r1.height()); if (r2.left() < r1.left()) r2.moveLeft(r1.left()); else if (r2.right() > r1.right()) r2.moveRight(r1.right()); if (r2.top() < r1.top()) r2.moveTop(r1.top()); else if (r2.bottom() > r1.bottom()) r2.moveBottom(r1.bottom()); data.val = r2; } it.value() = data; emit constraintChanged(property, data.constraint); d_ptr->setConstraint(property, data.constraint, data.val); if (data.val == oldVal) return; emit propertyChanged(property); emit valueChanged(property, data.val); } /*! \fn void QtRectFPropertyManager::setDecimals(QtProperty *property, int prec) Sets the precision of the given \a property to \a prec. The valid decimal range is 0-13. The default is 2. \sa decimals() */ void QtRectFPropertyManager::setDecimals(QtProperty *property, int prec) { const QtRectFPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtRectFPropertyManagerPrivate::Data data = it.value(); if (prec > 13) prec = 13; else if (prec < 0) prec = 0; if (data.decimals == prec) return; data.decimals = prec; d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToX[property], prec); d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToY[property], prec); d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToW[property], prec); d_ptr->m_doublePropertyManager->setDecimals(d_ptr->m_propertyToH[property], prec); it.value() = data; emit decimalsChanged(property, data.decimals); } /*! \reimp */ void QtRectFPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtRectFPropertyManagerPrivate::Data(); QtProperty *xProp = d_ptr->m_doublePropertyManager->addProperty(); xProp->setPropertyName(tr("X")); d_ptr->m_doublePropertyManager->setDecimals(xProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(xProp, 0); d_ptr->m_propertyToX[property] = xProp; d_ptr->m_xToProperty[xProp] = property; property->addSubProperty(xProp); QtProperty *yProp = d_ptr->m_doublePropertyManager->addProperty(); yProp->setPropertyName(tr("Y")); d_ptr->m_doublePropertyManager->setDecimals(yProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(yProp, 0); d_ptr->m_propertyToY[property] = yProp; d_ptr->m_yToProperty[yProp] = property; property->addSubProperty(yProp); QtProperty *wProp = d_ptr->m_doublePropertyManager->addProperty(); wProp->setPropertyName(tr("Width")); d_ptr->m_doublePropertyManager->setDecimals(wProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(wProp, 0); d_ptr->m_doublePropertyManager->setMinimum(wProp, 0); d_ptr->m_propertyToW[property] = wProp; d_ptr->m_wToProperty[wProp] = property; property->addSubProperty(wProp); QtProperty *hProp = d_ptr->m_doublePropertyManager->addProperty(); hProp->setPropertyName(tr("Height")); d_ptr->m_doublePropertyManager->setDecimals(hProp, decimals(property)); d_ptr->m_doublePropertyManager->setValue(hProp, 0); d_ptr->m_doublePropertyManager->setMinimum(hProp, 0); d_ptr->m_propertyToH[property] = hProp; d_ptr->m_hToProperty[hProp] = property; property->addSubProperty(hProp); } /*! \reimp */ void QtRectFPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *xProp = d_ptr->m_propertyToX[property]; if (xProp) { d_ptr->m_xToProperty.remove(xProp); delete xProp; } d_ptr->m_propertyToX.remove(property); QtProperty *yProp = d_ptr->m_propertyToY[property]; if (yProp) { d_ptr->m_yToProperty.remove(yProp); delete yProp; } d_ptr->m_propertyToY.remove(property); QtProperty *wProp = d_ptr->m_propertyToW[property]; if (wProp) { d_ptr->m_wToProperty.remove(wProp); delete wProp; } d_ptr->m_propertyToW.remove(property); QtProperty *hProp = d_ptr->m_propertyToH[property]; if (hProp) { d_ptr->m_hToProperty.remove(hProp); delete hProp; } d_ptr->m_propertyToH.remove(property); d_ptr->m_values.remove(property); } // QtEnumPropertyManager class QtEnumPropertyManagerPrivate { QtEnumPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtEnumPropertyManager) public: struct Data { Data() : val(-1) {} int val; QStringList enumNames; QMap enumIcons; }; typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtEnumPropertyManager \brief The QtEnumPropertyManager provides and manages enum properties. Each enum property has an associated list of enum names which can be retrieved using the enumNames() function, and set using the corresponding setEnumNames() function. An enum property's value is represented by an index in this list, and can be retrieved and set using the value() and setValue() slots respectively. Each enum value can also have an associated icon. The mapping from values to icons can be set using the setEnumIcons() function and queried with the enumIcons() function. In addition, QtEnumPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. The enumNamesChanged() or enumIconsChanged() signal is emitted whenever the list of enum names or icons is altered. \sa QtAbstractPropertyManager, QtEnumEditorFactory */ /*! \fn void QtEnumPropertyManager::valueChanged(QtProperty *property, int value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtEnumPropertyManager::enumNamesChanged(QtProperty *property, const QStringList &names) This signal is emitted whenever a property created by this manager changes its enum names, passing a pointer to the \a property and the new \a names as parameters. \sa setEnumNames() */ /*! \fn void QtEnumPropertyManager::enumIconsChanged(QtProperty *property, const QMap &icons) This signal is emitted whenever a property created by this manager changes its enum icons, passing a pointer to the \a property and the new mapping of values to \a icons as parameters. \sa setEnumIcons() */ /*! Creates a manager with the given \a parent. */ QtEnumPropertyManager::QtEnumPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtEnumPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtEnumPropertyManager::~QtEnumPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value which is an index in the list returned by enumNames() If the given property is not managed by this manager, this function returns -1. \sa enumNames(), setValue() */ int QtEnumPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property, -1); } /*! Returns the given \a property's list of enum names. \sa value(), setEnumNames() */ QStringList QtEnumPropertyManager::enumNames(const QtProperty *property) const { return getData(d_ptr->m_values, &QtEnumPropertyManagerPrivate::Data::enumNames, property, QStringList()); } /*! Returns the given \a property's map of enum values to their icons. \sa value(), setEnumIcons() */ QMap QtEnumPropertyManager::enumIcons(const QtProperty *property) const { return getData >(d_ptr->m_values, &QtEnumPropertyManagerPrivate::Data::enumIcons, property, QMap()); } /*! \reimp */ QString QtEnumPropertyManager::valueText(const QtProperty *property) const { const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QtEnumPropertyManagerPrivate::Data &data = it.value(); const int v = data.val; if (v >= 0 && v < data.enumNames.count()) return data.enumNames.at(v); return QString(); } /*! \reimp */ QIcon QtEnumPropertyManager::valueIcon(const QtProperty *property) const { const QtEnumPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QIcon(); const QtEnumPropertyManagerPrivate::Data &data = it.value(); const int v = data.val; return data.enumIcons.value(v); } /*! \fn void QtEnumPropertyManager::setValue(QtProperty *property, int value) Sets the value of the given \a property to \a value. The specified \a value must be less than the size of the given \a property's enumNames() list, and larger than (or equal to) 0. \sa value(), valueChanged() */ void QtEnumPropertyManager::setValue(QtProperty *property, int val) { const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtEnumPropertyManagerPrivate::Data data = it.value(); if (val >= data.enumNames.count()) return; if (val < 0 && data.enumNames.count() > 0) return; if (val < 0) val = -1; if (data.val == val) return; data.val = val; it.value() = data; emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the given \a property's list of enum names to \a enumNames. The \a property's current value is reset to 0 indicating the first item of the list. If the specified \a enumNames list is empty, the \a property's current value is set to -1. \sa enumNames(), enumNamesChanged() */ void QtEnumPropertyManager::setEnumNames(QtProperty *property, const QStringList &enumNames) { const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtEnumPropertyManagerPrivate::Data data = it.value(); if (data.enumNames == enumNames) return; data.enumNames = enumNames; data.val = -1; if (enumNames.count() > 0) data.val = 0; it.value() = data; emit enumNamesChanged(property, data.enumNames); emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the given \a property's map of enum values to their icons to \a enumIcons. Each enum value can have associated icon. This association is represented with passed \a enumIcons map. \sa enumNames(), enumNamesChanged() */ void QtEnumPropertyManager::setEnumIcons(QtProperty *property, const QMap &enumIcons) { const QtEnumPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; it.value().enumIcons = enumIcons; emit enumIconsChanged(property, it.value().enumIcons); emit propertyChanged(property); } /*! \reimp */ void QtEnumPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtEnumPropertyManagerPrivate::Data(); } /*! \reimp */ void QtEnumPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } // QtFlagPropertyManager class QtFlagPropertyManagerPrivate { QtFlagPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtFlagPropertyManager) public: void slotBoolChanged(QtProperty *property, bool value); void slotPropertyDestroyed(QtProperty *property); struct Data { Data() : val(-1) {} int val; QStringList flagNames; }; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtBoolPropertyManager *m_boolPropertyManager; QMap > m_propertyToFlags; QMap m_flagToProperty; }; void QtFlagPropertyManagerPrivate::slotBoolChanged(QtProperty *property, bool value) { QtProperty *prop = m_flagToProperty.value(property, 0); if (prop == 0) return; QListIterator itProp(m_propertyToFlags[prop]); int level = 0; while (itProp.hasNext()) { QtProperty *p = itProp.next(); if (p == property) { int v = m_values[prop].val; if (value) { v |= (1 << level); } else { v &= ~(1 << level); } q_ptr->setValue(prop, v); return; } level++; } } void QtFlagPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { QtProperty *flagProperty = m_flagToProperty.value(property, 0); if (flagProperty == 0) return; m_propertyToFlags[flagProperty].replace(m_propertyToFlags[flagProperty].indexOf(property), 0); m_flagToProperty.remove(property); } /*! \class QtFlagPropertyManager \brief The QtFlagPropertyManager provides and manages flag properties. Each flag property has an associated list of flag names which can be retrieved using the flagNames() function, and set using the corresponding setFlagNames() function. The flag manager provides properties with nested boolean subproperties representing each flag, i.e. a flag property's value is the binary combination of the subproperties' values. A property's value can be retrieved and set using the value() and setValue() slots respectively. The combination of flags is represented by single int value - that's why it's possible to store up to 32 independent flags in one flag property. The subproperties are created by a QtBoolPropertyManager object. This manager can be retrieved using the subBoolPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. In addition, QtFlagPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes, and the flagNamesChanged() signal which is emitted whenever the list of flag names is altered. \sa QtAbstractPropertyManager, QtBoolPropertyManager */ /*! \fn void QtFlagPropertyManager::valueChanged(QtProperty *property, int value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! \fn void QtFlagPropertyManager::flagNamesChanged(QtProperty *property, const QStringList &names) This signal is emitted whenever a property created by this manager changes its flag names, passing a pointer to the \a property and the new \a names as parameters. \sa setFlagNames() */ /*! Creates a manager with the given \a parent. */ QtFlagPropertyManager::QtFlagPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtFlagPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this); connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotBoolChanged(QtProperty *, bool))); connect(d_ptr->m_boolPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtFlagPropertyManager::~QtFlagPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that produces the nested boolean subproperties representing each flag. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtBoolPropertyManager *QtFlagPropertyManager::subBoolPropertyManager() const { return d_ptr->m_boolPropertyManager; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns 0. \sa flagNames(), setValue() */ int QtFlagPropertyManager::value(const QtProperty *property) const { return getValue(d_ptr->m_values, property, 0); } /*! Returns the given \a property's list of flag names. \sa value(), setFlagNames() */ QStringList QtFlagPropertyManager::flagNames(const QtProperty *property) const { return getData(d_ptr->m_values, &QtFlagPropertyManagerPrivate::Data::flagNames, property, QStringList()); } /*! \reimp */ QString QtFlagPropertyManager::valueText(const QtProperty *property) const { const QtFlagPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QtFlagPropertyManagerPrivate::Data &data = it.value(); QString str; int level = 0; const QChar bar = QLatin1Char('|'); const QStringList::const_iterator fncend = data.flagNames.constEnd(); for (QStringList::const_iterator it = data.flagNames.constBegin(); it != fncend; ++it) { if (data.val & (1 << level)) { if (!str.isEmpty()) str += bar; str += *it; } level++; } return str; } /*! \fn void QtFlagPropertyManager::setValue(QtProperty *property, int value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. The specified \a value must be less than the binary combination of the property's flagNames() list size (i.e. less than 2\sup n, where \c n is the size of the list) and larger than (or equal to) 0. \sa value(), valueChanged() */ void QtFlagPropertyManager::setValue(QtProperty *property, int val) { const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtFlagPropertyManagerPrivate::Data data = it.value(); if (data.val == val) return; if (val > (1 << data.flagNames.count()) - 1) return; if (val < 0) return; data.val = val; it.value() = data; QListIterator itProp(d_ptr->m_propertyToFlags[property]); int level = 0; while (itProp.hasNext()) { QtProperty *prop = itProp.next(); if (prop) d_ptr->m_boolPropertyManager->setValue(prop, val & (1 << level)); level++; } emit propertyChanged(property); emit valueChanged(property, data.val); } /*! Sets the given \a property's list of flag names to \a flagNames. The property's current value is reset to 0 indicating the first item of the list. \sa flagNames(), flagNamesChanged() */ void QtFlagPropertyManager::setFlagNames(QtProperty *property, const QStringList &flagNames) { const QtFlagPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; QtFlagPropertyManagerPrivate::Data data = it.value(); if (data.flagNames == flagNames) return; data.flagNames = flagNames; data.val = 0; it.value() = data; QListIterator itProp(d_ptr->m_propertyToFlags[property]); while (itProp.hasNext()) { QtProperty *prop = itProp.next(); if (prop) { delete prop; d_ptr->m_flagToProperty.remove(prop); } } d_ptr->m_propertyToFlags[property].clear(); QStringListIterator itFlag(flagNames); while (itFlag.hasNext()) { const QString flagName = itFlag.next(); QtProperty *prop = d_ptr->m_boolPropertyManager->addProperty(); prop->setPropertyName(flagName); property->addSubProperty(prop); d_ptr->m_propertyToFlags[property].append(prop); d_ptr->m_flagToProperty[prop] = property; } emit flagNamesChanged(property, data.flagNames); emit propertyChanged(property); emit valueChanged(property, data.val); } /*! \reimp */ void QtFlagPropertyManager::initializeProperty(QtProperty *property) { d_ptr->m_values[property] = QtFlagPropertyManagerPrivate::Data(); d_ptr->m_propertyToFlags[property] = QList(); } /*! \reimp */ void QtFlagPropertyManager::uninitializeProperty(QtProperty *property) { QListIterator itProp(d_ptr->m_propertyToFlags[property]); while (itProp.hasNext()) { QtProperty *prop = itProp.next(); if (prop) { delete prop; d_ptr->m_flagToProperty.remove(prop); } } d_ptr->m_propertyToFlags.remove(property); d_ptr->m_values.remove(property); } // QtSizePolicyPropertyManager class QtSizePolicyPropertyManagerPrivate { QtSizePolicyPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtSizePolicyPropertyManager) public: QtSizePolicyPropertyManagerPrivate(); void slotIntChanged(QtProperty *property, int value); void slotEnumChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QtEnumPropertyManager *m_enumPropertyManager; QMap m_propertyToHPolicy; QMap m_propertyToVPolicy; QMap m_propertyToHStretch; QMap m_propertyToVStretch; QMap m_hPolicyToProperty; QMap m_vPolicyToProperty; QMap m_hStretchToProperty; QMap m_vStretchToProperty; }; QtSizePolicyPropertyManagerPrivate::QtSizePolicyPropertyManagerPrivate() { } void QtSizePolicyPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (QtProperty *prop = m_hStretchToProperty.value(property, 0)) { QSizePolicy sp = m_values[prop]; sp.setHorizontalStretch(value); q_ptr->setValue(prop, sp); } else if (QtProperty *prop = m_vStretchToProperty.value(property, 0)) { QSizePolicy sp = m_values[prop]; sp.setVerticalStretch(value); q_ptr->setValue(prop, sp); } } void QtSizePolicyPropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) { if (QtProperty *prop = m_hPolicyToProperty.value(property, 0)) { QSizePolicy sp = m_values[prop]; sp.setHorizontalPolicy(metaEnumProvider()->indexToSizePolicy(value)); q_ptr->setValue(prop, sp); } else if (QtProperty *prop = m_vPolicyToProperty.value(property, 0)) { QSizePolicy sp = m_values[prop]; sp.setVerticalPolicy(metaEnumProvider()->indexToSizePolicy(value)); q_ptr->setValue(prop, sp); } } void QtSizePolicyPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_hStretchToProperty.value(property, 0)) { m_propertyToHStretch[pointProp] = 0; m_hStretchToProperty.remove(property); } else if (QtProperty *pointProp = m_vStretchToProperty.value(property, 0)) { m_propertyToVStretch[pointProp] = 0; m_vStretchToProperty.remove(property); } else if (QtProperty *pointProp = m_hPolicyToProperty.value(property, 0)) { m_propertyToHPolicy[pointProp] = 0; m_hPolicyToProperty.remove(property); } else if (QtProperty *pointProp = m_vPolicyToProperty.value(property, 0)) { m_propertyToVPolicy[pointProp] = 0; m_vPolicyToProperty.remove(property); } } /*! \class QtSizePolicyPropertyManager \brief The QtSizePolicyPropertyManager provides and manages QSizePolicy properties. A size policy property has nested \e horizontalPolicy, \e verticalPolicy, \e horizontalStretch and \e verticalStretch subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by QtIntPropertyManager and QtEnumPropertyManager objects. These managers can be retrieved using the subIntPropertyManager() and subEnumPropertyManager() functions respectively. In order to provide editing widgets for the subproperties in a property browser widget, these managers must be associated with editor factories. In addition, QtSizePolicyPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtIntPropertyManager, QtEnumPropertyManager */ /*! \fn void QtSizePolicyPropertyManager::valueChanged(QtProperty *property, const QSizePolicy &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtSizePolicyPropertyManager::QtSizePolicyPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtSizePolicyPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotEnumChanged(QtProperty *, int))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtSizePolicyPropertyManager::~QtSizePolicyPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the nested \e horizontalStretch and \e verticalStretch subproperties. In order to provide editing widgets for the mentioned subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtSizePolicyPropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the manager that creates the nested \e horizontalPolicy and \e verticalPolicy subproperties. In order to provide editing widgets for the mentioned subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtEnumPropertyManager *QtSizePolicyPropertyManager::subEnumPropertyManager() const { return d_ptr->m_enumPropertyManager; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns the default size policy. \sa setValue() */ QSizePolicy QtSizePolicyPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QSizePolicy()); } /*! \reimp */ QString QtSizePolicyPropertyManager::valueText(const QtProperty *property) const { const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); const QSizePolicy sp = it.value(); const QtMetaEnumProvider *mep = metaEnumProvider(); const int hIndex = mep->sizePolicyToIndex(sp.horizontalPolicy()); const int vIndex = mep->sizePolicyToIndex(sp.verticalPolicy()); //! Unknown size policy on reading invalid uic3 files const QString hPolicy = hIndex != -1 ? mep->policyEnumNames().at(hIndex) : tr(""); const QString vPolicy = vIndex != -1 ? mep->policyEnumNames().at(vIndex) : tr(""); const QString str = tr("[%1, %2, %3, %4]").arg(hPolicy, vPolicy).arg(sp.horizontalStretch()).arg(sp.verticalStretch()); return str; } /*! \fn void QtSizePolicyPropertyManager::setValue(QtProperty *property, const QSizePolicy &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtSizePolicyPropertyManager::setValue(QtProperty *property, const QSizePolicy &val) { const QtSizePolicyPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; if (it.value() == val) return; it.value() = val; d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToHPolicy[property], metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy())); d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToVPolicy[property], metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy())); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToHStretch[property], val.horizontalStretch()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToVStretch[property], val.verticalStretch()); emit propertyChanged(property); emit valueChanged(property, val); } /*! \reimp */ void QtSizePolicyPropertyManager::initializeProperty(QtProperty *property) { QSizePolicy val; d_ptr->m_values[property] = val; QtProperty *hPolicyProp = d_ptr->m_enumPropertyManager->addProperty(); hPolicyProp->setPropertyName(tr("Horizontal Policy")); d_ptr->m_enumPropertyManager->setEnumNames(hPolicyProp, metaEnumProvider()->policyEnumNames()); d_ptr->m_enumPropertyManager->setValue(hPolicyProp, metaEnumProvider()->sizePolicyToIndex(val.horizontalPolicy())); d_ptr->m_propertyToHPolicy[property] = hPolicyProp; d_ptr->m_hPolicyToProperty[hPolicyProp] = property; property->addSubProperty(hPolicyProp); QtProperty *vPolicyProp = d_ptr->m_enumPropertyManager->addProperty(); vPolicyProp->setPropertyName(tr("Vertical Policy")); d_ptr->m_enumPropertyManager->setEnumNames(vPolicyProp, metaEnumProvider()->policyEnumNames()); d_ptr->m_enumPropertyManager->setValue(vPolicyProp, metaEnumProvider()->sizePolicyToIndex(val.verticalPolicy())); d_ptr->m_propertyToVPolicy[property] = vPolicyProp; d_ptr->m_vPolicyToProperty[vPolicyProp] = property; property->addSubProperty(vPolicyProp); QtProperty *hStretchProp = d_ptr->m_intPropertyManager->addProperty(); hStretchProp->setPropertyName(tr("Horizontal Stretch")); d_ptr->m_intPropertyManager->setValue(hStretchProp, val.horizontalStretch()); d_ptr->m_intPropertyManager->setRange(hStretchProp, 0, 0xff); d_ptr->m_propertyToHStretch[property] = hStretchProp; d_ptr->m_hStretchToProperty[hStretchProp] = property; property->addSubProperty(hStretchProp); QtProperty *vStretchProp = d_ptr->m_intPropertyManager->addProperty(); vStretchProp->setPropertyName(tr("Vertical Stretch")); d_ptr->m_intPropertyManager->setValue(vStretchProp, val.verticalStretch()); d_ptr->m_intPropertyManager->setRange(vStretchProp, 0, 0xff); d_ptr->m_propertyToVStretch[property] = vStretchProp; d_ptr->m_vStretchToProperty[vStretchProp] = property; property->addSubProperty(vStretchProp); } /*! \reimp */ void QtSizePolicyPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *hPolicyProp = d_ptr->m_propertyToHPolicy[property]; if (hPolicyProp) { d_ptr->m_hPolicyToProperty.remove(hPolicyProp); delete hPolicyProp; } d_ptr->m_propertyToHPolicy.remove(property); QtProperty *vPolicyProp = d_ptr->m_propertyToVPolicy[property]; if (vPolicyProp) { d_ptr->m_vPolicyToProperty.remove(vPolicyProp); delete vPolicyProp; } d_ptr->m_propertyToVPolicy.remove(property); QtProperty *hStretchProp = d_ptr->m_propertyToHStretch[property]; if (hStretchProp) { d_ptr->m_hStretchToProperty.remove(hStretchProp); delete hStretchProp; } d_ptr->m_propertyToHStretch.remove(property); QtProperty *vStretchProp = d_ptr->m_propertyToVStretch[property]; if (vStretchProp) { d_ptr->m_vStretchToProperty.remove(vStretchProp); delete vStretchProp; } d_ptr->m_propertyToVStretch.remove(property); d_ptr->m_values.remove(property); } // QtFontPropertyManager: // QtFontPropertyManagerPrivate has a mechanism for reacting // to QApplication::fontDatabaseChanged() [4.5], which is emitted // when someone loads an application font. The signals are compressed // using a timer with interval 0, which then causes the family // enumeration manager to re-set its strings and index values // for each property. Q_GLOBAL_STATIC(QFontDatabase, fontDatabase) class QtFontPropertyManagerPrivate { QtFontPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtFontPropertyManager) public: QtFontPropertyManagerPrivate(); void slotIntChanged(QtProperty *property, int value); void slotEnumChanged(QtProperty *property, int value); void slotBoolChanged(QtProperty *property, bool value); void slotPropertyDestroyed(QtProperty *property); void slotFontDatabaseChanged(); void slotFontDatabaseDelayedChange(); QStringList m_familyNames; typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QtEnumPropertyManager *m_enumPropertyManager; QtBoolPropertyManager *m_boolPropertyManager; QMap m_propertyToFamily; QMap m_propertyToPointSize; QMap m_propertyToBold; QMap m_propertyToItalic; QMap m_propertyToUnderline; QMap m_propertyToStrikeOut; QMap m_propertyToKerning; QMap m_familyToProperty; QMap m_pointSizeToProperty; QMap m_boldToProperty; QMap m_italicToProperty; QMap m_underlineToProperty; QMap m_strikeOutToProperty; QMap m_kerningToProperty; bool m_settingValue; QTimer *m_fontDatabaseChangeTimer; }; QtFontPropertyManagerPrivate::QtFontPropertyManagerPrivate() : m_settingValue(false), m_fontDatabaseChangeTimer(0) { } void QtFontPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (m_settingValue) return; if (QtProperty *prop = m_pointSizeToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setPointSize(value); q_ptr->setValue(prop, f); } } void QtFontPropertyManagerPrivate::slotEnumChanged(QtProperty *property, int value) { if (m_settingValue) return; if (QtProperty *prop = m_familyToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setFamily(m_familyNames.at(value)); q_ptr->setValue(prop, f); } } void QtFontPropertyManagerPrivate::slotBoolChanged(QtProperty *property, bool value) { if (m_settingValue) return; if (QtProperty *prop = m_boldToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setBold(value); q_ptr->setValue(prop, f); } else if (QtProperty *prop = m_italicToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setItalic(value); q_ptr->setValue(prop, f); } else if (QtProperty *prop = m_underlineToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setUnderline(value); q_ptr->setValue(prop, f); } else if (QtProperty *prop = m_strikeOutToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setStrikeOut(value); q_ptr->setValue(prop, f); } else if (QtProperty *prop = m_kerningToProperty.value(property, 0)) { QFont f = m_values[prop]; f.setKerning(value); q_ptr->setValue(prop, f); } } void QtFontPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_pointSizeToProperty.value(property, 0)) { m_propertyToPointSize[pointProp] = 0; m_pointSizeToProperty.remove(property); } else if (QtProperty *pointProp = m_familyToProperty.value(property, 0)) { m_propertyToFamily[pointProp] = 0; m_familyToProperty.remove(property); } else if (QtProperty *pointProp = m_boldToProperty.value(property, 0)) { m_propertyToBold[pointProp] = 0; m_boldToProperty.remove(property); } else if (QtProperty *pointProp = m_italicToProperty.value(property, 0)) { m_propertyToItalic[pointProp] = 0; m_italicToProperty.remove(property); } else if (QtProperty *pointProp = m_underlineToProperty.value(property, 0)) { m_propertyToUnderline[pointProp] = 0; m_underlineToProperty.remove(property); } else if (QtProperty *pointProp = m_strikeOutToProperty.value(property, 0)) { m_propertyToStrikeOut[pointProp] = 0; m_strikeOutToProperty.remove(property); } else if (QtProperty *pointProp = m_kerningToProperty.value(property, 0)) { m_propertyToKerning[pointProp] = 0; m_kerningToProperty.remove(property); } } void QtFontPropertyManagerPrivate::slotFontDatabaseChanged() { if (!m_fontDatabaseChangeTimer) { m_fontDatabaseChangeTimer = new QTimer(q_ptr); m_fontDatabaseChangeTimer->setInterval(0); m_fontDatabaseChangeTimer->setSingleShot(true); QObject::connect(m_fontDatabaseChangeTimer, SIGNAL(timeout()), q_ptr, SLOT(slotFontDatabaseDelayedChange())); } if (!m_fontDatabaseChangeTimer->isActive()) m_fontDatabaseChangeTimer->start(); } void QtFontPropertyManagerPrivate::slotFontDatabaseDelayedChange() { typedef QMap PropertyPropertyMap; // rescan available font names const QStringList oldFamilies = m_familyNames; m_familyNames = fontDatabase()->families(); // Adapt all existing properties if (!m_propertyToFamily.empty()) { PropertyPropertyMap::const_iterator cend = m_propertyToFamily.constEnd(); for (PropertyPropertyMap::const_iterator it = m_propertyToFamily.constBegin(); it != cend; ++it) { QtProperty *familyProp = it.value(); const int oldIdx = m_enumPropertyManager->value(familyProp); int newIdx = m_familyNames.indexOf(oldFamilies.at(oldIdx)); if (newIdx < 0) newIdx = 0; m_enumPropertyManager->setEnumNames(familyProp, m_familyNames); m_enumPropertyManager->setValue(familyProp, newIdx); } } } /*! \class QtFontPropertyManager \brief The QtFontPropertyManager provides and manages QFont properties. A font property has nested \e family, \e pointSize, \e bold, \e italic, \e underline, \e strikeOut and \e kerning subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by QtIntPropertyManager, QtEnumPropertyManager and QtBoolPropertyManager objects. These managers can be retrieved using the corresponding subIntPropertyManager(), subEnumPropertyManager() and subBoolPropertyManager() functions. In order to provide editing widgets for the subproperties in a property browser widget, these managers must be associated with editor factories. In addition, QtFontPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtEnumPropertyManager, QtIntPropertyManager, QtBoolPropertyManager */ /*! \fn void QtFontPropertyManager::valueChanged(QtProperty *property, const QFont &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtFontPropertyManager::QtFontPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtFontPropertyManagerPrivate; d_ptr->q_ptr = this; #if QT_VERSION >= 0x040500 QObject::connect(qApp, SIGNAL(fontDatabaseChanged()), this, SLOT(slotFontDatabaseChanged())); #endif d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); d_ptr->m_enumPropertyManager = new QtEnumPropertyManager(this); connect(d_ptr->m_enumPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotEnumChanged(QtProperty *, int))); d_ptr->m_boolPropertyManager = new QtBoolPropertyManager(this); connect(d_ptr->m_boolPropertyManager, SIGNAL(valueChanged(QtProperty *, bool)), this, SLOT(slotBoolChanged(QtProperty *, bool))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); connect(d_ptr->m_enumPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); connect(d_ptr->m_boolPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtFontPropertyManager::~QtFontPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that creates the \e pointSize subproperty. In order to provide editing widgets for the \e pointSize property in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtFontPropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the manager that create the \e family subproperty. In order to provide editing widgets for the \e family property in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtEnumPropertyManager *QtFontPropertyManager::subEnumPropertyManager() const { return d_ptr->m_enumPropertyManager; } /*! Returns the manager that creates the \e bold, \e italic, \e underline, \e strikeOut and \e kerning subproperties. In order to provide editing widgets for the mentioned properties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtBoolPropertyManager *QtFontPropertyManager::subBoolPropertyManager() const { return d_ptr->m_boolPropertyManager; } /*! Returns the given \a property's value. If the given property is not managed by this manager, this function returns a font object that uses the application's default font. \sa setValue() */ QFont QtFontPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QFont()); } /*! \reimp */ QString QtFontPropertyManager::valueText(const QtProperty *property) const { const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return QtPropertyBrowserUtils::fontValueText(it.value()); } /*! \reimp */ QIcon QtFontPropertyManager::valueIcon(const QtProperty *property) const { const QtFontPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QIcon(); return QtPropertyBrowserUtils::fontValueIcon(it.value()); } /*! \fn void QtFontPropertyManager::setValue(QtProperty *property, const QFont &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtFontPropertyManager::setValue(QtProperty *property, const QFont &val) { const QtFontPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; const QFont oldVal = it.value(); if (oldVal == val && oldVal.resolve() == val.resolve()) return; it.value() = val; int idx = d_ptr->m_familyNames.indexOf(val.family()); if (idx == -1) idx = 0; bool settingValue = d_ptr->m_settingValue; d_ptr->m_settingValue = true; d_ptr->m_enumPropertyManager->setValue(d_ptr->m_propertyToFamily[property], idx); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToPointSize[property], val.pointSize()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToBold[property], val.bold()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToItalic[property], val.italic()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToUnderline[property], val.underline()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToStrikeOut[property], val.strikeOut()); d_ptr->m_boolPropertyManager->setValue(d_ptr->m_propertyToKerning[property], val.kerning()); d_ptr->m_settingValue = settingValue; emit propertyChanged(property); emit valueChanged(property, val); } /*! \reimp */ void QtFontPropertyManager::initializeProperty(QtProperty *property) { QFont val; d_ptr->m_values[property] = val; QtProperty *familyProp = d_ptr->m_enumPropertyManager->addProperty(); familyProp->setPropertyName(tr("Family")); if (d_ptr->m_familyNames.empty()) d_ptr->m_familyNames = fontDatabase()->families(); d_ptr->m_enumPropertyManager->setEnumNames(familyProp, d_ptr->m_familyNames); int idx = d_ptr->m_familyNames.indexOf(val.family()); if (idx == -1) idx = 0; d_ptr->m_enumPropertyManager->setValue(familyProp, idx); d_ptr->m_propertyToFamily[property] = familyProp; d_ptr->m_familyToProperty[familyProp] = property; property->addSubProperty(familyProp); QtProperty *pointSizeProp = d_ptr->m_intPropertyManager->addProperty(); pointSizeProp->setPropertyName(tr("Point Size")); d_ptr->m_intPropertyManager->setValue(pointSizeProp, val.pointSize()); d_ptr->m_intPropertyManager->setMinimum(pointSizeProp, 1); d_ptr->m_propertyToPointSize[property] = pointSizeProp; d_ptr->m_pointSizeToProperty[pointSizeProp] = property; property->addSubProperty(pointSizeProp); QtProperty *boldProp = d_ptr->m_boolPropertyManager->addProperty(); boldProp->setPropertyName(tr("Bold")); d_ptr->m_boolPropertyManager->setValue(boldProp, val.bold()); d_ptr->m_propertyToBold[property] = boldProp; d_ptr->m_boldToProperty[boldProp] = property; property->addSubProperty(boldProp); QtProperty *italicProp = d_ptr->m_boolPropertyManager->addProperty(); italicProp->setPropertyName(tr("Italic")); d_ptr->m_boolPropertyManager->setValue(italicProp, val.italic()); d_ptr->m_propertyToItalic[property] = italicProp; d_ptr->m_italicToProperty[italicProp] = property; property->addSubProperty(italicProp); QtProperty *underlineProp = d_ptr->m_boolPropertyManager->addProperty(); underlineProp->setPropertyName(tr("Underline")); d_ptr->m_boolPropertyManager->setValue(underlineProp, val.underline()); d_ptr->m_propertyToUnderline[property] = underlineProp; d_ptr->m_underlineToProperty[underlineProp] = property; property->addSubProperty(underlineProp); QtProperty *strikeOutProp = d_ptr->m_boolPropertyManager->addProperty(); strikeOutProp->setPropertyName(tr("Strikeout")); d_ptr->m_boolPropertyManager->setValue(strikeOutProp, val.strikeOut()); d_ptr->m_propertyToStrikeOut[property] = strikeOutProp; d_ptr->m_strikeOutToProperty[strikeOutProp] = property; property->addSubProperty(strikeOutProp); QtProperty *kerningProp = d_ptr->m_boolPropertyManager->addProperty(); kerningProp->setPropertyName(tr("Kerning")); d_ptr->m_boolPropertyManager->setValue(kerningProp, val.kerning()); d_ptr->m_propertyToKerning[property] = kerningProp; d_ptr->m_kerningToProperty[kerningProp] = property; property->addSubProperty(kerningProp); } /*! \reimp */ void QtFontPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *familyProp = d_ptr->m_propertyToFamily[property]; if (familyProp) { d_ptr->m_familyToProperty.remove(familyProp); delete familyProp; } d_ptr->m_propertyToFamily.remove(property); QtProperty *pointSizeProp = d_ptr->m_propertyToPointSize[property]; if (pointSizeProp) { d_ptr->m_pointSizeToProperty.remove(pointSizeProp); delete pointSizeProp; } d_ptr->m_propertyToPointSize.remove(property); QtProperty *boldProp = d_ptr->m_propertyToBold[property]; if (boldProp) { d_ptr->m_boldToProperty.remove(boldProp); delete boldProp; } d_ptr->m_propertyToBold.remove(property); QtProperty *italicProp = d_ptr->m_propertyToItalic[property]; if (italicProp) { d_ptr->m_italicToProperty.remove(italicProp); delete italicProp; } d_ptr->m_propertyToItalic.remove(property); QtProperty *underlineProp = d_ptr->m_propertyToUnderline[property]; if (underlineProp) { d_ptr->m_underlineToProperty.remove(underlineProp); delete underlineProp; } d_ptr->m_propertyToUnderline.remove(property); QtProperty *strikeOutProp = d_ptr->m_propertyToStrikeOut[property]; if (strikeOutProp) { d_ptr->m_strikeOutToProperty.remove(strikeOutProp); delete strikeOutProp; } d_ptr->m_propertyToStrikeOut.remove(property); QtProperty *kerningProp = d_ptr->m_propertyToKerning[property]; if (kerningProp) { d_ptr->m_kerningToProperty.remove(kerningProp); delete kerningProp; } d_ptr->m_propertyToKerning.remove(property); d_ptr->m_values.remove(property); } // QtColorPropertyManager class QtColorPropertyManagerPrivate { QtColorPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtColorPropertyManager) public: void slotIntChanged(QtProperty *property, int value); void slotPropertyDestroyed(QtProperty *property); typedef QMap PropertyValueMap; PropertyValueMap m_values; QtIntPropertyManager *m_intPropertyManager; QMap m_propertyToR; QMap m_propertyToG; QMap m_propertyToB; QMap m_propertyToA; QMap m_rToProperty; QMap m_gToProperty; QMap m_bToProperty; QMap m_aToProperty; }; void QtColorPropertyManagerPrivate::slotIntChanged(QtProperty *property, int value) { if (QtProperty *prop = m_rToProperty.value(property, 0)) { QColor c = m_values[prop]; c.setRed(value); q_ptr->setValue(prop, c); } else if (QtProperty *prop = m_gToProperty.value(property, 0)) { QColor c = m_values[prop]; c.setGreen(value); q_ptr->setValue(prop, c); } else if (QtProperty *prop = m_bToProperty.value(property, 0)) { QColor c = m_values[prop]; c.setBlue(value); q_ptr->setValue(prop, c); } else if (QtProperty *prop = m_aToProperty.value(property, 0)) { QColor c = m_values[prop]; c.setAlpha(value); q_ptr->setValue(prop, c); } } void QtColorPropertyManagerPrivate::slotPropertyDestroyed(QtProperty *property) { if (QtProperty *pointProp = m_rToProperty.value(property, 0)) { m_propertyToR[pointProp] = 0; m_rToProperty.remove(property); } else if (QtProperty *pointProp = m_gToProperty.value(property, 0)) { m_propertyToG[pointProp] = 0; m_gToProperty.remove(property); } else if (QtProperty *pointProp = m_bToProperty.value(property, 0)) { m_propertyToB[pointProp] = 0; m_bToProperty.remove(property); } else if (QtProperty *pointProp = m_aToProperty.value(property, 0)) { m_propertyToA[pointProp] = 0; m_aToProperty.remove(property); } } /*! \class QtColorPropertyManager \brief The QtColorPropertyManager provides and manages QColor properties. A color property has nested \e red, \e green and \e blue subproperties. The top-level property's value can be retrieved using the value() function, and set using the setValue() slot. The subproperties are created by a QtIntPropertyManager object. This manager can be retrieved using the subIntPropertyManager() function. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. In addition, QtColorPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager, QtAbstractPropertyBrowser, QtIntPropertyManager */ /*! \fn void QtColorPropertyManager::valueChanged(QtProperty *property, const QColor &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtColorPropertyManager::QtColorPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtColorPropertyManagerPrivate; d_ptr->q_ptr = this; d_ptr->m_intPropertyManager = new QtIntPropertyManager(this); connect(d_ptr->m_intPropertyManager, SIGNAL(valueChanged(QtProperty *, int)), this, SLOT(slotIntChanged(QtProperty *, int))); connect(d_ptr->m_intPropertyManager, SIGNAL(propertyDestroyed(QtProperty *)), this, SLOT(slotPropertyDestroyed(QtProperty *))); } /*! Destroys this manager, and all the properties it has created. */ QtColorPropertyManager::~QtColorPropertyManager() { clear(); delete d_ptr; } /*! Returns the manager that produces the nested \e red, \e green and \e blue subproperties. In order to provide editing widgets for the subproperties in a property browser widget, this manager must be associated with an editor factory. \sa QtAbstractPropertyBrowser::setFactoryForManager() */ QtIntPropertyManager *QtColorPropertyManager::subIntPropertyManager() const { return d_ptr->m_intPropertyManager; } /*! Returns the given \a property's value. If the given \a property is not managed by \e this manager, this function returns an invalid color. \sa setValue() */ QColor QtColorPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QColor()); } /*! \reimp */ QString QtColorPropertyManager::valueText(const QtProperty *property) const { const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return QtPropertyBrowserUtils::colorValueText(it.value()); } /*! \reimp */ QIcon QtColorPropertyManager::valueIcon(const QtProperty *property) const { const QtColorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QIcon(); return QtPropertyBrowserUtils::brushValueIcon(QBrush(it.value())); } /*! \fn void QtColorPropertyManager::setValue(QtProperty *property, const QColor &value) Sets the value of the given \a property to \a value. Nested properties are updated automatically. \sa value(), valueChanged() */ void QtColorPropertyManager::setValue(QtProperty *property, const QColor &val) { const QtColorPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; if (it.value() == val) return; it.value() = val; d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToR[property], val.red()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToG[property], val.green()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToB[property], val.blue()); d_ptr->m_intPropertyManager->setValue(d_ptr->m_propertyToA[property], val.alpha()); emit propertyChanged(property); emit valueChanged(property, val); } /*! \reimp */ void QtColorPropertyManager::initializeProperty(QtProperty *property) { QColor val; d_ptr->m_values[property] = val; QtProperty *rProp = d_ptr->m_intPropertyManager->addProperty(); rProp->setPropertyName(tr("Red")); d_ptr->m_intPropertyManager->setValue(rProp, val.red()); d_ptr->m_intPropertyManager->setRange(rProp, 0, 0xFF); d_ptr->m_propertyToR[property] = rProp; d_ptr->m_rToProperty[rProp] = property; property->addSubProperty(rProp); QtProperty *gProp = d_ptr->m_intPropertyManager->addProperty(); gProp->setPropertyName(tr("Green")); d_ptr->m_intPropertyManager->setValue(gProp, val.green()); d_ptr->m_intPropertyManager->setRange(gProp, 0, 0xFF); d_ptr->m_propertyToG[property] = gProp; d_ptr->m_gToProperty[gProp] = property; property->addSubProperty(gProp); QtProperty *bProp = d_ptr->m_intPropertyManager->addProperty(); bProp->setPropertyName(tr("Blue")); d_ptr->m_intPropertyManager->setValue(bProp, val.blue()); d_ptr->m_intPropertyManager->setRange(bProp, 0, 0xFF); d_ptr->m_propertyToB[property] = bProp; d_ptr->m_bToProperty[bProp] = property; property->addSubProperty(bProp); QtProperty *aProp = d_ptr->m_intPropertyManager->addProperty(); aProp->setPropertyName(tr("Alpha")); d_ptr->m_intPropertyManager->setValue(aProp, val.alpha()); d_ptr->m_intPropertyManager->setRange(aProp, 0, 0xFF); d_ptr->m_propertyToA[property] = aProp; d_ptr->m_aToProperty[aProp] = property; property->addSubProperty(aProp); } /*! \reimp */ void QtColorPropertyManager::uninitializeProperty(QtProperty *property) { QtProperty *rProp = d_ptr->m_propertyToR[property]; if (rProp) { d_ptr->m_rToProperty.remove(rProp); delete rProp; } d_ptr->m_propertyToR.remove(property); QtProperty *gProp = d_ptr->m_propertyToG[property]; if (gProp) { d_ptr->m_gToProperty.remove(gProp); delete gProp; } d_ptr->m_propertyToG.remove(property); QtProperty *bProp = d_ptr->m_propertyToB[property]; if (bProp) { d_ptr->m_bToProperty.remove(bProp); delete bProp; } d_ptr->m_propertyToB.remove(property); QtProperty *aProp = d_ptr->m_propertyToA[property]; if (aProp) { d_ptr->m_aToProperty.remove(aProp); delete aProp; } d_ptr->m_propertyToA.remove(property); d_ptr->m_values.remove(property); } // QtCursorPropertyManager Q_GLOBAL_STATIC(QtCursorDatabase, cursorDatabase) class QtCursorPropertyManagerPrivate { QtCursorPropertyManager *q_ptr; Q_DECLARE_PUBLIC(QtCursorPropertyManager) public: typedef QMap PropertyValueMap; PropertyValueMap m_values; }; /*! \class QtCursorPropertyManager \brief The QtCursorPropertyManager provides and manages QCursor properties. A cursor property has a current value which can be retrieved using the value() function, and set using the setValue() slot. In addition, QtCursorPropertyManager provides the valueChanged() signal which is emitted whenever a property created by this manager changes. \sa QtAbstractPropertyManager */ /*! \fn void QtCursorPropertyManager::valueChanged(QtProperty *property, const QCursor &value) This signal is emitted whenever a property created by this manager changes its value, passing a pointer to the \a property and the new \a value as parameters. \sa setValue() */ /*! Creates a manager with the given \a parent. */ QtCursorPropertyManager::QtCursorPropertyManager(QObject *parent) : QtAbstractPropertyManager(parent) { d_ptr = new QtCursorPropertyManagerPrivate; d_ptr->q_ptr = this; } /*! Destroys this manager, and all the properties it has created. */ QtCursorPropertyManager::~QtCursorPropertyManager() { clear(); delete d_ptr; } /*! Returns the given \a property's value. If the given \a property is not managed by this manager, this function returns a default QCursor object. \sa setValue() */ #ifndef QT_NO_CURSOR QCursor QtCursorPropertyManager::value(const QtProperty *property) const { return d_ptr->m_values.value(property, QCursor()); } #endif /*! \reimp */ QString QtCursorPropertyManager::valueText(const QtProperty *property) const { const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QString(); return cursorDatabase()->cursorToShapeName(it.value()); } /*! \reimp */ QIcon QtCursorPropertyManager::valueIcon(const QtProperty *property) const { const QtCursorPropertyManagerPrivate::PropertyValueMap::const_iterator it = d_ptr->m_values.constFind(property); if (it == d_ptr->m_values.constEnd()) return QIcon(); return cursorDatabase()->cursorToShapeIcon(it.value()); } /*! \fn void QtCursorPropertyManager::setValue(QtProperty *property, const QCursor &value) Sets the value of the given \a property to \a value. \sa value(), valueChanged() */ void QtCursorPropertyManager::setValue(QtProperty *property, const QCursor &value) { #ifndef QT_NO_CURSOR const QtCursorPropertyManagerPrivate::PropertyValueMap::iterator it = d_ptr->m_values.find(property); if (it == d_ptr->m_values.end()) return; if (it.value().shape() == value.shape() && value.shape() != Qt::BitmapCursor) return; it.value() = value; emit propertyChanged(property); emit valueChanged(property, value); #endif } /*! \reimp */ void QtCursorPropertyManager::initializeProperty(QtProperty *property) { #ifndef QT_NO_CURSOR d_ptr->m_values[property] = QCursor(); #endif } /*! \reimp */ void QtCursorPropertyManager::uninitializeProperty(QtProperty *property) { d_ptr->m_values.remove(property); } #if QT_VERSION >= 0x040400 QT_END_NAMESPACE #endif #include "moc_qtpropertymanager.cpp" #include "qtpropertymanager.moc" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtBrowserItem000644 001750 001750 00000000037 11617757645 027372 0ustar00simonesimone000000 000000 #include "qtpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/qtsolutions/qtpropertyeditor/QtAbstractPropertyManager000644 001750 001750 00000000037 11617757645 031733 0ustar00simonesimone000000 000000 #include "qtpropertybrowser.h" QSapecNG-2.0.0-source/src/gui/images/symbols/vcvs.svg000644 001750 001750 00000013631 11617757645 023277 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/voltmeter.svg000644 001750 001750 00000006222 11617757645 024335 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/vccs.png000644 001750 001750 00000001156 11617757645 023240 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ëIDATX…íÖ¿KÕQÇñ×Q‰¨M·†ÊfCS .¶]"ˆpqikìû‚(wkr œ$‚à}!p‘Êþƒ¶"éª[CAu:Á—‹©÷ë5)|à3œ‡ç<Ÿ÷áüà„£“Œžu?88*@a$„0r$‚c)aï“FK÷)i>†-Ô’¶0öW0ލrµ”?VL U4oƒhaâX0‰í½ÌÛ ¶1ÙULd¾ÄTWp;2Ç9<ÅÍ6ˆ\?¨À-ÜÀ¬_ïÂW|,h·cŒëéîŸÇ†qð#1Æ·©®†'x¡‚ÎàÖð¼/Mn!Oßñ© !Ì`==»x†+ à*®¥»…'foð ýõ&€Âa¶ /°¸OÍ=\,ŒÓœþn¼ÄÂ!jRí@·¯á 6±´OÍRªìê5lƒØÀCôò½)·Ñ‰yŒQH !„³xœëlJ¯%ˆ;1Æ/õë Aôá.¥Ô;Ü1~ë¸W€ð ïDzҼÐh4æ²,îdÿÊ(˲áF£1÷{ñ=eÙtžç«•Je¥Ô*:ˆJ¥²’çùj–eÓ¤/Y³Ùܬ×ëËÕjuþ¸ªÕê|½^_n6››á t+þí_ñ)Àð%/€\N¤IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/ccvs.png000644 001750 001750 00000001172 11617757645 023236 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<÷IDATX…íÖ±K•Qðߢ`’`($å”ÐPP“84†Ð-š8¶ëš !"B„B4)ÒX‹KE5å&Ñ ’T&×AOÃ=.ïç<ðÀwÎyßçyç{ßï‹”’³—ÎTýÂÀ…so "&#bòDEû@D<ÇÝ<ý˜RzVˆ(¥T70´d¬`ºWñ,£¹j­9¯ÍœªÌb©Z¼ÆÄfOÅækO~ˆ‰eÌ7Ôò=*^cb Ç᎔’ˆèÇcô+—æ~gt ð0¥´{HE^àsJi1"Zòu$üB{F+ö±ŠW)¥Õ¦Ì±‹m|Ë*ó¿ØÂ}\ÁVDôâÞ¥”ör~;žàsì5¼ÅþáO®˜ý̽{ì2Ä0>¡ãˆ˜ëY¸#Ç7ú%Á{´ÓžcF^Y`4 t°×•÷Fëâ¬'8 á+z«ÖzóÚPÝ|õ&dÁA¬ãNÆ: qIÊ&ð=c (Oá¯!DÄí\I_ sT LLLÜÛØØxÝ××÷tllìMP(7‘Ë€r×b'ÕœnnnîÁÚÚÚËîîîGSSS ©j¿µT*µmnnöDÄMt*¿Ù¸Š¶l¢b¤òL¹sîT„3¶#â§r#û­ñññžR©ÔV•w²+hÄ8ßÿ„. 4bü-ÿè ³"X€IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/ground.png000644 001750 001750 00000000750 11617757645 023577 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<eIDATX…í—AJAE_Iˆ&*s#äÑE‹äÁ#xŠBApïÒE6n".ŒA%„|)pŒ3ÉLO˜l¦ àwOõïOUÁt™$BÍÌn$]s„ 0³S`æËHÒ[ÏAÐí+ëGî½P’"ZÀؽJR+ À€F Y‘ ìÄŠ°\ ¨”&`‘‚Kð•‚Kð‚K°÷ Tö. jÂÈü 1³h-þ0ŽÍì$¶^Hš‘Å$%:ÐFÀ0”Ó§~vtÓîÙ”pt+U¸`õ£¸˜¶õYnf   DîÍŽ image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/port.svg000644 001750 001750 00000015617 11617757645 023310 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/transformer.png000644 001750 001750 00000001262 11617757645 024642 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î</IDATX…í×Í‹OaðÏ™ßüÆP^šfYx %³P›‰„…k Q²²‘d#K’,, ÛI‘B²”,½§ÄÆ8÷™ˆ™æ^Í §Nß{Ÿ{îyÎ}nd¦é¤ŽiµþßÁNˆˆ…˜‰Ïø2Š9‰mÌú‰Û™ù4°[±K~z'ñ¯ñ3óDƒG±ý˜_ŒŽÒWìÆ·@ÖbH•‘¿—¦›2seMãÅé3ªlŽEpOfÖbÜœš²«p¡–lvâ.ö¡5ŽL7áaÉØ„z£IŸED/¢;3Œñüádf~ª¥´n~‰ôök-Ülª«ñˆˆ-øP®» ÎÈÌ´#bu}µˆˆ 1Œa\/Ëó ö¼‰ûq6"k)n˜ú6ãR¹_Qp à ìAWmPÿÀKÕä\SÖ†°¦¼° /2ó F;ý#^¡;"Ö7ÒÖ ò ¸¢Ñ{ÊZoÁþ‚GÊósœô¨šöÎn½‚¯ªVÇ”õ@1tgœ9pmJ{ "Z±ÏÆ(åF"b[M¢Þˆ;8ŽÙãÈôã´j¬™Ôà2–Õ”]c“]‚¾Ì|^Sö¾ê“ image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/opampl.svg000644 001750 001750 00000006573 11617757645 023615 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/ammeter.svg000644 001750 001750 00000006230 11617757645 023745 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/wire.png000644 001750 001750 00000000773 11617757645 023254 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<xIDATX…íÖ1KÃPÀñÿ ŠC¡Ò Ž JÁ!-VÄA*¤Ý\\²AÄA?F;8.â”EwGµ"T\3ä´*ˆ$ 9‡FˆÒní‹`nyox?î¸Ç)!É0}}¾¹\nÌ4ÍlbÛ¶¯K¥R»^¯¯&Ò¾ï+×ug4›Íµ0 Çi)¥¥”¥M "?˜n`é÷}¿³ûa§2Û@8¦è:†"ŠÈ 0¼OJ©šR*=ðô¨H!jË3° Œ ´= ØZ€ ¬kÄ ãÀ!ð \óZ1HhD# £ƒl‰Ù”V@„öWàXÔ ˆA2ÀðZ1È p¼;€¡ƒ¬D-¹ Ú1ˆAöD„jµš¯T*“"=¾â~‡ˆœ‰È2ðX.—k†a<‹Å+м’‰Hò¬‹T*ðÑÌêÓ4³Aøžç‰âñ7¶â!à_¾½Ô-`Å ÁÚIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/vccs.svg000644 001750 001750 00000020422 11617757645 023250 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/ccvs.svg000644 001750 001750 00000014177 11617757645 023262 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/ground.svg000644 001750 001750 00000005041 11617757645 023610 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/resistor.png000644 001750 001750 00000000710 11617757645 024147 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<EIDATX…íÔ½N”Q‡ñ߬²%J⊭)‰ÆZhè-ì¡÷ ¥`¥…‰bba”†Ž; >,_C3›àpw‚9“œæÉygžÌÿäÌt—Õ»ÓéM  4&ÐÆˆˆ¸†õ¯aS·.3ØŠˆAGè}DÌw®¿ˆ¥‰ 2óƃ9ì ±…(¾Rlýb‹Åö0ý¯¾ͨŸcŸðßð‡ØÇ;œc³øƒÏ8Ã<Æ/|Ç6ªo¼¬þkÆ:žf¦‡µˆó+K9®áÛø‰Ý̼ˆˆßXÃ+`¯ë,àžá6"âIm¥‡]œà´¤áÁÈ:qL×z‹ÅúW"Z)×0¢¹‘L ±„͛LJáû(6ÀWÌŒê9|TcWDLeæi‡õ3ó¤Ã"Çh>±Àm×ýø6&КÀ-p :‚—3fIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/xccs.svg000644 001750 001750 00000007272 11617757645 023262 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/cccs.png000644 001750 001750 00000001212 11617757645 023206 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDATX…íÖÍK”Qðß Ó(Ñ0  ‚\UPmÄEËZE›B\E{Ý&hˆ„ˆ 7ý ÑJ‘–­ÜTDm’6-D’„¾d¦o‹¹Ã`Ἆˆà…æžsîó<—{Ï}'RJörÚSõö½ˆ‹ˆ±q}"â!.çé«”ÒƒBD)¥† , -c…¸ ˆOb­5±Ö›ÜU˜Â\­x‰9LíŠÌÔïü&æ1ÓT˜Íç¼ÕÎàÎÔ˜XÀìv¸#¥$"úqý*­¹/]ÜL)•#â0†qgq.×¼ÅÕ”ÒψhËÇ‘°ŽÎŒ£ØÄ"ž¤”[r3”ñ²êüÖp XK)ýŠˆ÷ùö—q8XÇïÌ×ÓxŽ?ø¯yÍfæ.o» q¯ÑµE.pÇó¼+×Þmö%Ä tþ§¦3× 6½ ²ÀP8µEîTÎ 5ÄÙHqºƒwè­‰õæØ†ù]o`—2–q£W‘EÙÄ>f å)ü5„ˆ¸˜;éMaŽªÑÑÑ++++Oûúúî?« •G䨠ÒçõØHu»›žž¾¾´´ô¸»»ûÖøøøKh©É-•Jí«««=q'UnöIœ@{6Q5RýMååܨ g|ˆÏ*Ù'¬ŒŒô”J¥öšu;;‚fŒýýŸðÀÀfŒ¿Šâß±¯S>IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/transformer.svg000644 001750 001750 00000012046 11617757645 024657 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/wire.svg000644 001750 001750 00000015000 11617757645 023254 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/current.png000644 001750 001750 00000000742 11617757645 023764 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<_IDATX…íÖ¿JQðßè^ÒRˆ…)RD‹)ì· ¤õ „´iÓ¤ñò)Ë‚h•.éÒIù;x‘Dö\nŠØsæ;ß~;ÃÌÙÈLó´…¹¾}0üF³Œˆe<­å‡Ìü>Qf69–ð —øV~Y{K­|M%ˆˆUœà¶q¿|»öN Ó°†O8¸sP˜µ®¼Ñõ2ŠˆC<À³ÌüùÌ=ãKf>ï-ØEbò—Ø"öñ°Ö“Âîvá•ò-¼Àf.Lù[¥÷""ñO°ŽÇØÀ$"vpQØ÷qŠ_ø3å¿q†w™yÚ:>÷„¹±Æìu(Áž†´tÁ[×éßæ°3oƒ€Žð†ë5µaÓÔ >–úâq=á«Mœ-à©4¿ÆWü(ŸywD·­¯Ëhf}ÙÜÿƒ€AÀÜ\½å³Y^éæIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/resistor.svg000644 001750 001750 00000006222 11617757645 024166 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/cccs.svg000644 001750 001750 00000017165 11617757645 023237 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/symbols.png000644 001750 001750 00000027014 11617757645 023773 0ustar00simonesimone000000 000000 ‰PNG  IHDR’éÏžnŒsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœíw¼EÕÇ¿'¹é¡¥ A¤…’ -¡7¬ (ŠJ{Eš(*EPPE)¯¼¨A¥(‚"(‘Dz‰ Búyÿ8»¹ûÌ3Ûžg˽7÷÷ùÌçÙgwvæÌîÙ™33§ˆª""ë[—g«ê"zÑ‹Œè#"+–'Ï׈HG­”õ¢[¡Ì>­ª Dä~àTàŒiëE7B`:p_ÈDªú*p¤ˆl]e½èV裪s€…Ñ“"².0¸²wˆëEô ~ï‘ëEd¬ˆì\ >|±6êzÑm Á¬M€§€ªªÀÙ1yVþ§2ŠzÑ-!ÆC„½Ò½Àöž|oë¨ê¬ iëE7B(#…½Ò—qï+§TET/ºúDÿ¨ê¿€Ää=VDÖ(Ÿ¤^tGôñœ;xÖs~ðrÉéEwÅ2©á¤ÈàNOþÅÀªú\Ù„õ¢{Á×#¡ªw—y.uß-•¢^tKx{$<lâ\R` U}¢dÚzÑàí‘Tõ=àÀ\ç’/÷b9E,#¨êà+žK»ŠÈ±åÔ‹îˆØ¡­!“ÈåÀáÎéÀvªúx„õ¢{!+# 6v.= l©ª³K ­Ý‰C[ˆyi=à¯"â ä½XΉ‘TõàHÏ¥­€ÇDä Y+سë‘ÍE䨺éèÈ4´5Ü ò3àè„,ó0½ïg×"éeà1Í[aM‘U€Iªú¾šÉéòhEûñXL{ò°˜ëƒ-ƒäâß"òÑ wëê8<Ÿ%³ˆôWU߆÷rÌC[ˆ G9øM õ}8¡…ûêÀÁï[iEä4àêrÉéÚÈÍHªº88Û˃iD¤¯ˆ|]DÖ‘Dä+"²~ ¤¶Ùë{=%ï:À·ñëq-7h‰‘Tu‰ªžlÜ,Írf€™†€ªúœªNÖ¦ˆÈk"r…ˆ*"cZ¥=Žˆ?š’÷ë@_Ì.p¹EËŒBUWÕƒ°¥€S²_¨ª>/ÐØs…½ÂhàPà àU™*"‹È"2,/í>V3ûGN=”w:eÅ,íê¹PÕÂЛ©'Må(ëƒÀ:ÀÀ̘2£i ð¶¸ÐÑbÆGÊ\ ¬”÷°HÞK‹|–Ý-µÝ#9L¹ëM\,S[ØÌZÖ¿iÀ{À¯€É)·ôÁ|œÜ ¼)"¿‘O‰ÈJYë&FŽŸQÕwò9þwŽ:z î‘F‹hî-Î.¨üÑÀç€k1 á´^*L »€ã0#†¤:þ¹ïò„|+ó#yw¯»W¨3ÍHGy^âS@ÿ 7u–-o`=ÐÂŒ5ø>0³6Ž2GôCøRBýŸŠä[ ©ûeÖ™r¯lÇAD†Oˆœ^ ŒSÕXµ(ˆÈPL6Ú›Šo ôÏpëtàVàÀàšÈµMUuRL}×ïQÕZ"¼‡ HFº3gŠâBUýj!ä§g ¶41c¬q˜YUVÌVVÕ¦i}  13kø–ªÆ˜.(„‘DdOÌÇR¯©9©¨ÁfòÆt2ÖöÀûnù›ªîSÖGßGN}¸Š^·K£Yeðšå½ê·3Ð>ø$ðSLnŠÒFÂ}WEòÍúÖÝ–‚ŸK`àv¬ç½€9·ˆJía¢Ûê~-´ãp§ ›Çäë™°‡ù^ ˜qºÛPÐsظ[#Û>8^\T#{z˜H}ë~ -´åÚý/$äÓfÅÖЮĶX6 ºK ç·÷.ÁÔƒb{Þv* ¼ó@W¨û¡äl‹oFè??!ïñ Œä¦ÀMÀ‰À‡~u·5¡]a‹¿gy®m <™t;ÞØÎ"^X=SD®žÃf?C±N\ ¯wЩ7µ ÚòbS`däÒžá¶‘ãW°¡}_šõÙ†û à=yø;¶ðù€ª¾Û*ÑEADŽÎÇd£ž,#092-rï6ضGÖ/3oZ Pá×xR¤î×I’hì…/œ_ó#u'ÙG`N_ÇÓâþ`›m?Å¡i°Š“çRRöI[­üŽ™(LûWø0ÿ©÷’„|£ŠÉ·&€_M¶ ç0½üÛ!X¯‚v%†Ž™ØLíÌzè#©eµPùZAQ&Í „m•„6½©{ׄ|ûEò-†e(»[q?S5Éó^þ“_V)ª½]Ÿ&}TY|Üb}Âãÿÿw\š„iŒ( Íûd¬û¸¬e¶"lßi0nÉKÙØØ:;r<×Is€˜Üþ4;§ñ4pn tµŠFŽÿ¨ªIªÃQAÛçö'jfðS€Qv&`ê+>lÝj7U}CD†ŠÈ·Uµ%¯0"²#p醨ê3\Õ—ï|}hTÁˆv¥ÛVLËg#õKÈ'4.DŽ/–QÀg€_Ш ø¦“ïq"Z 9Êß x×óÜÝt 9×Àêb¤ÕðÏÔ@Ë׃ºÿ–’oƒS*¢m=L ¾Ó¥Z³)<­…²6ÄdÏ4&úAK´ÖÄHßò4àjÐéÁ„ÎÅÀÎ)ùöŽÐzBÏ­6®…©–&›ÖÑ¨áøµw«é!÷KÒ"ù è\Œ¬›9r´o5la8‰–ÿÓN=uÄùÍ«§W«ê_j 5=óû3d ­T~£ªÓK$©0–5wШlèb p„ªþ²­Ê*þ:&Òü5Ì €)m´ïŒY©ÄZ•t¥„m;=èyÞÑ´ŒëDi©0 É4Z…OÑüu¦ªWVBÄr€)î’í=à@U½­ˆ:«ÚN£™‰îìe¢bxþ–d&zSõù{aõVÑ#‰ÈfÀ#43îxUÍ"Ÿô"uâ+°µ±8LÇL§ uÙX:#‰H_ÌìÙus3UU?TjåËD¤ðsÌî/¯ÕŒO ECÛWñûJÊäw¨é|܈mÇa*¶!ýj)4”Ù#‰ÈÚØÞÙ`ÏeŶهfE·8%¸ùØÚÈMZÓ²A‚ža#Ì||#,Þ]˜V£Ó3L ±žâà_Áï}ªšêþ'¨o=à÷ ]<Ž gå-[”<½ò5†Ö<Íîé®_ŒÉ¾=ļif´y0 «ý؆ï[)eÝ ¬Xús(ñoQ½@ ö˜Eî'0ƒwJnã\lv ¡J°}³ÿ#]ó¯äðÓUé§0Ò)3ÐLùßgÇWEš‹YsdÉ;…‚•á’R™Âv¡.sà{žKg”]w€“=çÞöVÕ·+¢!ªú2¦®üfL–]sú/ i+Û•1R°€y9¶;ÅdU}ªÌºƒúcîi\œ¢ª/VPß þu0 ‡)ØÂfÃp®ªSEäplÇßEàãØ>\µHò¶¡S˜Û¯dòhüBd¬/Ç‚ëÿ˜§îû¨`ý ³°u}X*¶ÊÿÕ˜{nŠy^÷,·Âv Sóƒ˜Ë«—U¯ƒ<çŽÒà­•Œs±}ƒ€óEħIz¦²ââ#"òþ"‰Ë‚4FZs\‚.ýJâ7$¿ "Ç~³KA°)»súoªúdYu:Ø=áZ_ši#nëÉ/˜P^)Òi~Ìq‘8„æYZ}0•”WDäÌ¢Âi9Ø’fgî—–PO$«¥d‹»~IÌùD]xÙIDΑRêÍŒ4Fz/æ¸H¸Ñâ0‹Ôø´ˆìU0 [9ÿß"=ö\QÈÒÓ{Ÿ½š“ø'<—b£mŠÈFÀ™ØÌïÌàÛè =RÞÖ«·ˆÈç ¤Áe¤¿©™r—U]@zÜÜ%\ó©Ò$õH€TõG˜±@!Ã`W`¤Ó0=¤<à2)jεrù[AåfÅ®MÃÏ,!þá9·fBþ…j1‰ ~‹‘}S¦¥éœV®UâôwElEùpà;˜}Öí˜Ù$• Hðù˜±îÁ˜[›h¹c«œ:cëyß ÙqéýÀ6)÷®@³¯©¥ ùo¶Ž·n)¤ )DJ„¸Õª|¸†`Ú‰q)ok¶Qþúž2G×ÑÖ€žQ˜ƒ­ÌÊ„øœz½ôÓé‘8¼çŽ"èNÚÔj^ü-khK„ªÎUÕ‡TuàóX™(†¿ ¦ð­`”ç\%ò‘ªú_U}VUgç¸Í§Ö÷<Âw¾®ó¿-d)d¾ó[TõW˜ ™û¢?LëL»#µŸ1e#Åýo "²>æ¡vM`W±Ãý¸¯‰Ht•÷m,„ÂKªš4«(ªúˆ|8Ϲô5¹WUÿ³ÈžÀHî¬O‰ÿðÝŠÂv,N'»*g\úqÅr„`3—ŽYÀÚ9Ë:ÓS΀ºd¤ŸÇµý3òÞëä½·:Tõô >ë^˜Ð ØîóÐȱÐhBšÍnWUߢXiPU‘ÏaކG.­ üNDÆ«jÖi­ï‹ìn=’Û«þ7!o)=R€ªNÆvŸK‡ˆ| 75¥rTõ-ù>ÍCÜVغÌ1‹ò1ÍšØÒCwAF*EF*ÛvÄpðol›ãÀ»X;¸¿ÆàÑ9+}Œ4±u’jAí=ReŒ„©iüs¿²6fqh;ªê|âµ'/θÁÛ­IDV¤Óãnˆ¤ÞÞU‹)DM¦JFÚ8RUŸWsötÅìóü“•\Œ~˜á~_ð ÆfwÀš{•Çò»³¹B–u:5†½1—Q4 Ùá±Ð(d‡Çoa+Î7kºc¨7Tu^øGU—ŠHÛÞÃTu‰ˆ|³Ïwq¸ˆ\©ª÷$ñ¬çÜ̦¯%?‹"2Û†¸¹•ûsbOϹ&äw5 Óêø2éöíIi6¶„¨’Š™Ò¬ù? x½Àå€Gcè›BBì7ÌÑwßI-ÒrpðLv¯hêÿªC÷)ù¯sò_W‘ VÂB_툩„) ¼‡s~s`xŽÏÅãÓ0/#ÏåàÓ2ŒcöÓRîõE zš¡A±ðÁ½'VÄD›zèN܄ŴQ£ù¯,”‘*ㆤFKL)'.Ð\al0õ_ó1 ÷=sŸWñÞsÿ0Ì;šbá0Jg¢ Þ«=4™rÏ¥NþK‹ %‹°=(ømWgz^Ìù"5/ã¬d`Á ãp}ÌùÓEddÌ5`™ÕÕ˜/¨»€/¦Y‚m­O9§‹‰›„Rd¤,Œ4Ðùm>‚h dUÔœ¿Gí½nÀ&€D$ÎÛÚ5˜Þ“‹•ï§Tû5LའóPÕæö·1À(T³ÈM‚ÛÎbžJ7ØÎ.pÃ6»áiî†g•ÐÝo‚ £“ˆ8|ÀfŸßL¸ï/ú4xÐ[Çܳ%¦fsfUÃYPï¦4+ãeš `‘¢÷\QÅÐ6(r\ÆÐV¸AšUîÀÓqø ¦ß³^­q¾¸(Êãbà+ªúVéÍ‹`‘õFš{£Ø›w¨Nº³¢JFò1MœÜÔ.¾¼Ý‚ Œ07O¸çfì+÷akà¶`ÍmTõlm7ÎY6€¿Å̺]ü"ð¶1Ÿô¿%TÉH¾—TŠwU]‚YîÞØpŒ}Å/&Ü3“d¥ÿ;K²«ËŠóñoß,"ƒb_`dº¶szí"ŒO«d¤J¡ª/`…OÀ<œ<Ž-&!iÌÂßDħ WDd ˆ\…Åuñá*5O%i8†æ}¹aØsj)‚YÔ{ÿÇÚ}Ñ +‰VƒÆŸxhô¥Ó†ÁANšÆìúï2, cqQ¶ÿ lU¦°Ý/æ¸Ç!?öΘ}=à ùràa®zDälëÇ5à ±ø„šG·¸r6‘[±yxL¶UGDäIó'îG oM'×~¢'÷HtFÑΛv,޾˜?„)ê>:¡œ!˜öCÜŽBRº;o›Òµe¤ð¶‚èveFÂÖž|ûmyÒÓ˜ ’Û!(&«nƒ-2NÍP×,D L÷ë•6Û³›°ôËÒ†4 Å誧¦äí–‘Õ°Õp×S\^l„yMù‰ˆ<9éz{¡3‚4SÕY óa°&»ìJ³‡G0§¨/º‚áù—ć"ƒ©¿‚í¡®…ù ðM8 ØQDöT›ÕÆ#åK‰î.ØæWÿ$Í\ÿrÍ=Ñ ,Lj;_nUé9lÏÛC`2¬«"¢XO{¶wïʘmà×éÔöˆ¦I‰‹—¥Ë kyÖ¼°¸±zdML$˜2\Ú |Û³û)Ù§™žÆ–-¼&ØA[úÓì pQ@sfUŸ ¬!˜SÖéNyw¤×•RèF‘‚hã¥mŸð ö©‰‰~–ò—`ÑVqî}?¶Q{?É.ÚI/b–0!]ap ð'çþjó ¥9æÞ q Vؘöã€ýÛ ê„„‡öÝŠ™¨Û©Oz‘s²´3[:1è ž£Ù+HÖ4 SY>Ø,G[Ðé"L¿§X¯ï:å_îË—¯MD†‡ó°øIf.Iå\G¼3ñ;Uu×VÊmŽØ^Õ~ Ù¦ûªjn}í`cwL˜îˆ¤~žÿ‹1GðOiš _ß·1Ká—_Ö¤—ÚZ=ß ÑÿùɪÚhX‘#"Aý"#W'MEß¡Ä+`ë#I=ÃcT鸞ö¬ƒm„‡´ßID5ë­Žv(âùÒØ3ÍÁÑ8­¢Ák¤¼<¥M]§ 4 ']P¾\7ƒähÓ­ÚŸ§Y–Û?rý%LÞ[·ú`áÅÂ2¯­š‘ÌÀH_(±þјƤú @¹¢‚gê:—ßË“g šc½-Áô®Zúp±…Îhy;VÉH7d`¤»Jª{]’ø)¦IY[xªÚ4„FQ!6†fjækóLVܤ…úïrž]ßÒ [½Íº×óÁ‚ëÞx#¥Îç€ÕëfŽœírgQ›§ä? á9, >ô<3ʼnNÇVÁH§fd"Î/°Þmivìé¦iäô¥T“tÇGâY¯Áöä^‹´arÆrWÁnÄ=‹¥Ø’Èû2”5Ûê ï}2JLÈËÊHo ¨wÌÒ5­®êf‡nŽzÒ3ñ(òc†©Ñv|'g—¤<—y˜Pž¼ÒiæíË|0{æ`¢0}¶Í:÷s¾_šMŠËášéD·ÌS}Í“ÇíU¶ËYÇêßÃëS÷‰)ç[NþŸ•ù`þC䳘ګïÚ}mÔw0éòØ|`—º™ÆCûæ˜ÈXO¾°Ž'Ÿë¶/÷šCãUÀg0íßóú'°ž§ŒÝœ|ÿ(ëÁŒÆow¥˜±âf /½•™Ä‘¤ï{-¢mž™h0¶ÂÒ9[öåýO$߸#¥¾ð0r®/ñbÈ»8ºh4ûYx½,ÿH_ Ùî LIý.5Ÿ“qñÙr)¢‹ÈñÀÅ${SàóªzSž²+Â4ƹOUÿ7&oTgê=mÍJ9´Üy.<¡fuóBBç9v}®!ÈÐ2¾°¾ø·Df#"ùà_(|‡Œ‹ƒ˜Jj–øDÇ 5öFû9tÎ"ÙÙÅ$'¢Pónf÷¾‡ ¡}°ð¥qÏîMàNžIe<œýc:Ì“w;ü;æ_ÊPϬ{Oc¢Sêf˜ú;0k”(­‰“ šws©Šãc>\ßs{Stkríæä½¡ŒäÓÍŽ]¹¦Ó§P4=G²"רà¤1Ò9u3LB¾äÐú» ÷|>ãyîÿy†o6=,§œËœ{>_ôÃÙÕCØB<’äžÁØâ {ßÁ1ùGc6î»÷~¿ xqÝÌ’ÐæA4Ξ¦’!ˆ æ -º¼qSŽ:ãFŠ0ÍŬuG¤”ÓA£}Ü|`¥¢Ð=–ᾯxGýø1¦=÷IçÞ_ùîí* SªiGŽ™*εægdÀˆŸ%ÏÆ´1Ge¬ß±]­ªùp>Ãå©á¹0E¯ç=÷èä[ †^pø•œÓÅ™h%}v~1çýkÏ5¼ÿ[ y¯ ú(6¼fç”ùÎû]³hFòù:;Çý‡xîÿ§“çHlÍEœó¾¸£êf” í<%Ò¾ÇZazW–gû>Vl†vŸó<ßŶI¶h‘öõ㘸¨‡³­‡ f+ç(£f1á–³w$ÏÁÁ¹GÎõÅö.·ØÓ·#mk)úeÐÓD{ð_yò| `œÿb:H‡Ò†Î¶vôD¤Îç‰ÿ)êáø"ÜB9õ”ó@äzê²c‹š—ãQ­«%LÙ,\÷úo›eíë<§Xóí‚hw÷ùöm¸^@›y^þ4"n÷r–ç3Xœ¹Þ‹p.°AÝÌ‘³mQE³‡ (/j†´˜’|{Ó¬‘ù§¦<Tr½çÅ{÷Š2–ç*N)pwÝLPÐ 9;Ò¦©”7ÓŠ ¿mYD{ê8F¹èe<«ïíV²!Í[Ï’ÃÑyL¹®¾‹ãëf„^Š«Ý¸Ve~F3ë¥À©Ñ{ªó~ß$F“µÝŠ~íyáŸ. ö”«›\3sü<_þÙÙ³ãÛ“ëú/üu§MÿS ›Ó¼Õq-hRåmB³áå;$¨õ¶Cüº4«Š1´S›ÅU}XL¦Ç%ÑØFsæ&ÅýšèÚóà–Õ¶pa?÷ú\+ÄýÐC@[®uSê[›fáﲺ_’‡ÎÃ"ôM¢}êi['`¸j ¶Û²_^‚†Ñl3VZo©×]fX@‚JjM/«/Jü‡ÔM“‡FŸk@~ÝvÙ9 9ÃCDéû\˜F¤[ïOê~1:£ºÌÏ“Ñ#l…ô­ïéÝ“ xX8#aÖ®ô­>„[ºçQ“ÿɇ8ÃG—3:À£Ï1“ÙwZÊcŽt$fCÅé9îoç8ÿa¾K‡ˆ|_Dî‘ûDäJ9MD‘ñ"²z$´û ˜ÚFˆS‹S0ÞLùß2rñ@š=ZTÖEèpµÞ!ǵzï§yh¦÷ˆT~\ݽӖß:ôý¶Êé‹4;õ>#;»7,芘·ý²ñ`ÊõÄ;\?±`ZÚÅô”ÿ-!•‘D¤¦¬ÅmªúpäÄ­˜e_8M- çckgQÌÇŒï¡Ó"ćÑi–+†¯m#-„˜.õšÎ¹Ó‹¨S·¼Ób;~á<»_T!#}Ó£‰¢ÙhTu1pžsz às%×;Ó= ‘²«¢”)‘¾áü¿]U*¢â6q9ÍBâÉAt 2q¶–°—ˆlWr}e ZF t[6uNŸ^D¥íB- û…Îéu°õ2ë}‡Æ Äg•Y_I¨¼G:Õùÿç.Ò…¸sJÅ7"‹ƒeáºÈñ."²sÉõêIDvÁô¦£8/r]Dä§"ò˜ˆ<,"›ALD¤Ÿˆ4¬å¨ê,ÀuHµ!渕:‘›Eä¯"r‘ˆ-"»ˆÈšNÜÚ7°MãîÚVW‡›¸˜XÅ1’ý4JöSˆèbcñ¼¢×ç“Ñ A‹3‚zÖvί½Ô(-¶XÇ3N9nû¦`Á }®t>Z÷l,G;ÝÝBôÆ›z¤ ÊòçôEP`çú¬7( a×0ƒTÕÿи¦°¥ˆìÞB±‘ª±ö­i!ø¾àoµP_]pNãRsÁ7´¹²ÑÌÄ&Š©Îÿ%ؾWYX/øõ…£ú±w¡¹ Yð;Ϲ…˜:ÈÃ1u‡ØTDú·PgpŸU+~(›át{ciÖ¢krX…Í¢¦Õ¹‡·ÐÔãUfï°µ}Î:ÖpÚ>ØJn¯s }IDATÔɳÖ[cà°€}ç’Ó=LC›ëÃêžBÊu*¹ÖóB¼ò±.~`Å ?ë1üa0a+ݹ *173áý×ýÒKz–w;Ïéî"Ê]6´‰Èz˜†_w«ê䘞l‘ª>¬ªïú® U¯ªŸPsãë»þ(6AˆbÙ"gUwD޳ìCgVX6J—‘N¡Yfš."ˆÈf"²r YQDÆŠÈþ˜í˜‹¼²Rt Êû YxZDÖ­¢>J’‘DU‘÷è§ä‹ö2&„/ Ò¢ÈqÚÿÐ4¦úEŽÓþ÷ÃÔYßí®Çé…‡ægRŸ " sFúqU½>Ë}í Rçeªú¥ ê»›,݈¹«Y_‹ˆ)Œ›’¬ØÓ•e‡µè\“šONgèmÈ,¡c‰¹´éÅ%c}ç&ýoYF‘U1 ÈžŠO‹ÈÚò‰õz`jÄîöKá‘QØLÌô{²ëÄÜ%ýo }0e­b”›º&:0ö±‘éT YJuª2›9ÿßWA3Ã…¡"rÉëc™ÑR‹±$蚘‰Ét^½ÂµtN4®ÕˆæcÉøó¿ Fú#æyäåà÷EÚ¡ªŠÈeÀFÀª˜&`ø;,HñM\ßêíÃØÚD™ØÛos±‹=c˜™˜žÒtìãxø—ªÎõL»¯Áü€M¾S(åÉXÉùïs+S(Tuð©¢Ëí sà‹`zz/=Ä#ªzJÑ„9uŸE3#½ |DU]c€<ø6º4ÄÏU5.ÜTË‘ý° }—:—VpþWÑ#•‚Ì aªú~E.÷a”_?l‡‰Ddk7[Ãx®…"ˆsv-p±ˆ¸Fn»ª¶KAÞÕ'=ç†AH |uøhÉ„àå^IãêõªúF«e&`6#`/çšÛ®btƒj@^Fú¯ç\]=’–¬ø>‚îÝ4…(ó¸ê-U<»J°Ü1’ˆìlMç´wp¨¶Ö3 >9^ǹ¶|2’ªÎÆìÜ£è6Œ$"ƒáª:óà:‹VùZ›ô%aÕ˜c¨F,¨­ì:»š„u0ÒU]ØB9[Щ€÷2pIûiQsíŽqBé‘ZQ•p×’ê¶´XÎëÀU"2[;½¢BˆÈPàXàiUuø¢ŒÔ¹ ‡ÕÃH­ôHƒÿuôHýD$÷G ªÏc[!³1oEí§]|¸ID– ×"²Í^”±zÌÐÖJäîËõ‘ªºÀ›»ø˜u-艫ꋘ*L!–•bÁ‡Në]™(<ê¼gf¤À+Ì`ìùgMaþ¨N˜ú{ŽÓB˜© …¿oc[)/j 2à"#ñ™E¯@£­WazŸ×³Á”kp[Ðø·ŠûÜÙŒ„e‚¿û,w‘Çñ3EÙæèq¸ ¶_¶ 6zÏQÕ×£™òmî°¢Ì.:®ì8ZªÆ6ÎÿµDdxp×#¿]«`ëc®„Fùêb"€¯«êóªºDUÁ>êËÝLy)NݤL9)®ì®ÂH¾^'d$_Ožë«ØïÑ,L¥Ù_Va=RŒT¶—¶¬p7»çÏÇ3<ùgDòuu Âd>`™¶Äa˜)Vò Û½=R3\ˆGVÉ}z^á9#Ý‹©± ¤S6Š»ÿ³^‹ ÛYl„ê¿§¦bÃòŽªú¶›9/#õÊHTõ5yÎí{#—cIU—ˆÈ{4~œ³Tõžr(5>¤²ÌÚæzfh/Å•[TTæ0WvWRþ¦ ÷ ¶žböeG{¨ƒ°ÙTÜŽÀ6p 9! ‘—‘✗锼Ž:sAUÿŽG)MU‹È,ͦ¢Œ4ÿ̮ۡ¨Y[™_U\Ù]†‘Reœwœ=ÂÙUSz©|¼s ½Œ”ù|ˆ+»ÕÛªñFÌ1ô2RæóE »÷HÑYØ?œkÝa-)z©|D£S»ÈÝ©Ï u`¹c¤À{IekPªú2æÛé~Ì/ —‘ ±z­y)N+±mÅÊë ¬ÿ¸µ‚@8Qì¡ÍþÜ¡­L•ßR‘—‘š–ÆSÎBê‘qÀŸ±@3;ªŠ™Ôœ’ùk÷Ü«UÐSZa¤9˜çŽ1ç 3(Ÿ‘ÞÁö 6ÆŒgå©SD¶Ç˜hÌÍñÌr÷ö@M¶.Lsþw[FÊ»²ý6fÖ|Zð²ˆ,ÂögÊÂÛ˜Zìw#uö!##‰È˜;x˜ˆéýØc¦=czŒ²ñ„ó¿Û2R+=Ò-ι›)¿GºÙ9wK–:¶‰ž&ªêLU½‹°üYDV,’èŒ{ÇË #=I³3‡ý1¶,<ìéœÛ-8‹ Æ­t2ÑU]6+RÕÛ0×w 0o' ”õ+ƒZȰÐÁƒ5õŠ… ¯ä` ˆœ'"ãDä `¬«¿[$Ô"­."çˆÈv"ò=Ìßv¬¾¶ˆLÄz­ÁóOŒ2Q¤ì?a̴ظ£§«—¿n´§î…|® üû’ï6¯ÀïáXï² øÝ !ïn˜Š¨bL4¶èø °Æ¨šˆÈnÀ˜!å4L°þWU´öôHF‘C±˜˜ÚÇîªúª“ç3À¯0õ–g±ÍÔ—+&µG G mQ¨ê•˜BÚ|ÌÀò~Ù0¼."ÇWcLô8¦‹ÔËD-¢ÇöH!o$7cúA³€}}èÜÅ¿ØOUß­‡ÂžÏH"²6­…i(†=ñÍØfm¡^ð—GôØ¡- U}ó…ôm¾øX/ƒå¢G ,8þÛþ81ï‚e/â±\1X ZU}¯n:zja¤±cÇ®;nܸ#§OŸþì7Þx¹VìÕ¤jl¸á†kî°ÃÇLŸ>}Ú7Þx©–Hº´e»-Œ5jÄGqÿO<1r̘1œtÒIÛ‰RX$k’ORLíµ!•1Ô >|èQGõà¤I“V1bÇü8à“E×S7*g¤½öÚës/½ôÒÈ[o½€N8ဠ²ôPLqåÈïüŒàK}=ç²FK@D–âa°i.æÛ2ôº;kܸq[½úê««ß|³¹Á<õÔSw‘¡ªÚcÂG@ ŒôüóÏ?¸óÎ;/4hPÇèÑ£Yºté\lmgÆ@Ã0Åù\LPúж³U,Æi&0sòäÉ‹&Nœ¸dÈ!}GŽÉ Aƒ¦ö4&‚šd¤#<ò›«®ºêÁC† ynòäÉ?¸âŠ+îk ÊÂeº=R_ÏqÖsîõph[âüÆg=7G=E=öØãGŽù¹ŽŽŽiO?ýôy×\sÍ]í<¿®ˆÿ®1¨CnÿéIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/current.svg000644 001750 001750 00000007216 11617757645 024002 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/userdef.png000644 001750 001750 00000001373 11617757645 023740 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<xIDATX…í–»kTQÆߺDŒL$iDP,Wƒ,AQ [$° þÁÊB0¤YHŠõQ¤I1‚…D‰.⃠o²›ŒÅ™ÕË’ë= ²Í~pØ»s¾™3w^çÊÌh'rm=½ã@Ç K”4 ½ÀNÿíõíϾ>ù滋­FÙiCI§2°éo¨šÙ|16'gf6C–Ôí:qHêvj"lº|¿(Î=CˆÆ`Àí¼ÞÞzÖe%IsÀ Ô `Ó×3[ÃïÆûêxº–€ó„üßóÕë²%çT2lû™¥<°B(®àeKr‰ÁDÔÖ€+À^à°Ëƀ㾗ÄkóÍ–·ïñ3WòföÂÉH¤©Äß2p è¦]ÖÌ Þ´™¥Ùl"¶_5ÌìpÿotþÉIÉ€šË—èwú;_ÌlÙeIÛñ˜ÙÆVçä$% Kš”Ô´)É•»|F:wÝh•Ðþ\÷½&F\whH2·Ýð³†%Û>ŠS'aK 53»“IB{_$#©5à @]ÒbB¾ ,§é%°hfß²H±]p€0é´›ßmØï’¦N&ò’Ž»€Ë@‘ôA4ï:U€y Œºì&p0ϺlTÒ ¶Ds„Vþ˜öÏïÀ¡§û€[„¡sÎeSÀàF w­1¬Gef1—Ñm`‹0ó2ò"¼\'ã2Êø­Ô:ÇAR­ùì·Ýl7š™=É"Åác ,éj$ÿ¡V2õEmþ$ûŸhû(î8Ðqà'y¾¿…\%IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/voltage.png000644 001750 001750 00000000746 11617757645 023747 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<cIDATX…íÖ±jTQàoÌ;Q,B* Ë„@Ђ酴>@ê`ekacc“GȤ° X¦D­ìLa:»‚Æ8;ÂÈrϲ°)îÀÀ½sþóŸÿÎ0snd¦yÚ¹žÞ èônƒ€Á´#â6êõ03ME”™MŽE¼Á.ÊÏ*¶ØÊ×T‚ˆXžb÷Ë×+vT˜ÙgËøŽÝ ˜ÝÂ,wå®—QDìãžgæå ˜»ø„Ÿ™ùrfÀ&[°[…ÝìÂ=(åkx…U,µç`­ôþ˜¡wøŒ“ }ŒˆcüÁß1¿Âìeæqë8ˆ'ñ""Æ€×ØÁicc ¶'`VðÛJÐÒŒJ0œ€f¿3oƒ€ðžQ÷\[Zkjæ©…‡øVBžÕëù_±ÔÄÙKó[œãwùÔ£¸ó ºn³ºŒ¦0+›ûÿ@/ Ð ˜»€hœø·”IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/symbols.svg000644 001750 001750 00000054161 11617757645 024011 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/mutualinductance.png000644 001750 001750 00000001510 11617757645 025641 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ÅIDATX…í×OˆÕuðÏì¾usU67QÁ +÷àA0;”)Í`¡K^*$¨KXÔ¡§Î’¨ Ã…=D+‰Úa))êb·(¡Z·²Tw:ü¾Ÿ÷v¿5Ú‹Ã|ßwæ;3ß™ùÎo^d¦¥„%µ~Ó´näpDlDbuf~÷¿;€‡± g±8"b/v`3.áb¡ãwü†_q:3ÿé:?‹Gñf·âˆýXWp F .Ç_8Ó*Œs8¸€³‡ðT×ÞjÃóñj^ÿ¦ßÃÞyô}ˆ•2S97 JÉ2 ã–ÜŽ“mÙ:ˆ3ª¨vêÆ™y­2ss}¼Žˆáˆ¸'3¿™?PDÄNÌfæ É6¹ÑvÅIÜÞGf3¦1‰­µô6 k1²“}x_`[}‹iDÓXÛ‡7Šï›(kä@DÜpºü^Yèª"ò-ÞŽˆ[k+íÆQléÚka>Uu¾'Êþ…n*ô¹ÂŸÂ 4®lÄ»óÔÀ>.ëmí-t ÷÷8ó²>EÙ+ç0ƒ1Ý2Ÿá²?RöF"b9¶ª^I7ŒõûVôr`¼¤á¼„gÛŒˆX·p¸ôó…5“™—ð9Þ(ÎtB+"†"â…ˆØwgžPã#Œ©j`'T9~¨È¬)tm¡þqìVj`?žÄ}7ÚžÆ;eÝ60Xè$&é[„-}¾ øª©¾¦}`¯+} üPò¼¢®ÎÚDÄ3øWðb±ªš9ÕRÜ ô_cUMÙÛpü?KAD ábf^¨y©ÕÓ‹…d[ñ`YïrmpX¦ Þ…_êï€Ë˜ŠˆŸUsƜꉶá,> Q…÷µöð'fTó`{.|?3OÔµ^†’ýª¡õNl(—jÃaüª™pcç3ójƒ›Ö†’ÊN¼¥h– –üŸÑMþPDùüÓ.C¯IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/capacitor.png000644 001750 001750 00000000612 11617757645 024243 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<IDATX…í–AJÃ@…¿W‡ÒÑu"žÅU=A"x=P¼‰;^ ÁjþŸ`¤FL΃0ó3ó>†YDfÆ.5Úi{È ô´tü¡¤Å`À90þ̳ÁŽ€“à= ` Áž Д6Úï{H’t Œ+`ƒ ¨€5ðÚg­Ò˜Iºæó&¦À$ÌÇ€ï>ÖÀ%P% yñä €‘oª}]åy—š’oáŒ6@ l’™ÝùæÛ-o I÷@¢ðlfÛžÑè7o`æeçª?xi•–ž ð<ÿàÙ•zÜËà—|ÿ8;¥üWœ2@ø÷Œ˜< ¹q>IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/out.png000644 001750 001750 00000000666 11617757645 023116 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<3IDATX…í–?K…PÆ£EíýB±YœÜÒÁEè+¸º96ú!\…Æ¿@«.Í nB£(BPC$‰CÄÛÈ­†ÛĈóÂÃ9ÃïÎóžs8"Â’u°hwÀø ‡s7PUõR’$W„U×u÷UU]ÃPO"šExÃ0n£(z©ëšš¦¡²,Éó¼JÓ´«É7€®ë7Y–½‡aH¶m“¢(äº.¥iJA<Ȳ|1€Sß÷›$IHE0ɲ,jÛ–LÓ¼#¢Ï p'XÚlí×VN8 xð:ªð àiÔ#ÏóçŽãœÅqŒ¾ï¿d¢( äyEQ6ÀÏ)à~‘«ïÚZ÷ÿ\,}ÿ3„ûŒ!7šg«]Ñì»jñ·€0Àøÿq<Acg2IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/userdef.svg000644 001750 001750 00000012042 11617757645 023746 0ustar00simonesimone000000 000000 QSapecNG-2.0.0-source/src/gui/images/symbols/voltage.svg000644 001750 001750 00000007001 11617757645 023751 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/capacitor.svg000644 001750 001750 00000006405 11617757645 024264 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/mutualinductance.svg000644 001750 001750 00000024436 11617757645 025670 0ustar00simonesimone000000 000000 image/svg+xml L p L s K QSapecNG-2.0.0-source/src/gui/images/symbols/wirecross.png000644 001750 001750 00000001364 11617757645 024323 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<qIDATX…í—?hSQƧ¡j+RH†* ­ÆŠ>’–ÄE„@‡"•àì$ÄÔ¤›‡¨ƒCϘ :(‚ÅÚ.ŠƒfФHuiS“ˆÿÍuxQÒ’6yIÓvè³¼sîw¾wîùî}O”Rl¤µlhõ-›’€®ëgÂáðèzrhš¶SÓ´ù|Þb³Ù\º®¿h6%H¥RŸºººn¹Ýî©x<Þ-"Òl(¥*:0Ì'VÊ1ë@ gbbâÜÈÈHûÿ:«-öó@ ØÑ(`0ø°··W%‰kÿž­ª¥Ôà~¯Däx½W:^Ì …éª[P¡Ã@ÛM¬¾Šq3-öOàh•\g©ðпbžÙ},Àeàp°.‹ïîyà<`Y¯ÞŽ‹Àk h®_8`¯ §‘©:{Àà ð0ƒÑè]àz€@+ð xo ."Ò#"€ià°899U3˜É–·aìóO 58—Ÿ|t mÍfãx‹!Áá*¹€çÀàHCJ`3²òÛLÈõð¹Ô1ECVA YÝ:ëTÊa uLQAš+-: ¼ÃØþF¤ZÂkÅ8¼2À¡òØ’±aœb6à¢RêIÍÓ\ƒ‰H70ÚÑÑq?‹õe2™y³Z­ý¡P(‘Íf=À]`V•3[cóûýþd2y]Ó´-¹\Î7999äõzw)¥Î*¥fšY X,Þöx<ìv{„H$r2^u85M÷Z»4ùe«Úæû/Ø"°Þö#nVŸü(‚$IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/vcvs.png000644 001750 001750 00000001100 11617757645 023250 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<½IDATX…íÖ?K\Aðß„  ’…-„tÉÖ)ˆ•X¤!eû9^!A,\°RøR*ÖIcB’*¥Ä´B y¯ÐIá]X–¬ºÏöÂ)æÎsÎ0ïΛ”sv“qçFÕÇÆn½”ÒZJiíJuï”Ò+<ᇜsQ‹(ç<4°Ž}Lö±^‹«†øö0Ñ“›ˆÜƵÀ&v{ÅûLìbóZ `«çLìak¤°ç¶/ÃrÎRJsx9g­ù?M$<Ï9W:"á5>åœwRJ“qßÑLáx“s>¸~ãkèŽáÏpÇ)¥â]Îù$Ö7ð°µ÷ñ'øƒŸÑ1§Á]]º ±ŒhžSó „›Q»<êpïÑ8§¦5+#ï‚X ™ÿÌÍÄÜêPœÃ‡Ð¾ Õ“kEnih¾a„à"ñ$pˆÅZ\u…‰y| Ì×å©ý7„”Òãè¤ÏµIºNŠ¢˜m·ÛGNg¡în.B§ÓYh·ÛGEQÌvs½’©²,§«ªjÔÞÍQUU£,Ëig7"®ð UÜî7áØÀØÀ(âÞ†‹o䯗IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/voltmeter.png000644 001750 001750 00000000761 11617757645 024324 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<nIDATX…íÖ¯oQÀñÏ£G{`ëJu+M %d5 Ù¤ׄàHQ š ø×ÜÃÐ4¡Ma7VTô]nsˆd’Ý7ïÍ|3?Þn‰ó”ksÞô=Àÿ0˜ö`)e wóõKDœMå("ª‹xŠDêI®-Vû« ¾‚o8ÆÜÁ-ìàgÚV:À*~à5®_bâeîYíàop÷/±?Ä2>â`¦ØÎZ¯£`Œµ–ý6Žòy+÷n_Åw‰¥”M<ÂLƳÑ6ñ7#"J)»xŒQöòg<‹ˆÃœŽ¦AǸȳþÆW¼‹ˆqÍ.` ¿ðûØKÛiDVøú'•%µÖžà,ÚëU%¨iÂWøÀ¤l™‘1Þ·ö]4a:àS¦¾ØÂF+ø ]aYÆ÷ÌÄÈdö‡¸—pÝ]D-ˆ!žãç©S_ÅM*«eV£©f%sÿèz€`îIþ {îø5QIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/out.svg000644 001750 001750 00000012777 11617757645 023137 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/symbols/port.png000644 001750 001750 00000001154 11617757645 023264 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<éIDATX…Í—±jA†¿9G)TtàtÒ6Â>Ôû})̽ӥ°Àµ #‚õ§ÐÈ^­o×'ƒuØB³3ÿü7;;³2Iô)E¯ÑÀ—}ŒÍlLXGÛ°Iÿ:cv©3+€™m$=%ì¾:Áø%)&ùV$ep ÔÀà=ÛÀgà>§ïÙ&3`fœ’þD{ß°u6`)éod7¾¿• ”ùŠ  Œtsà ¨Zì+ß›Gú¸HÆÉ¤}_ÃéºmèÆ©ãh(€: >ëzþß,"QE—aÁ×ûoóõ¼Œmv‘ßóµü›ÙX´O7Y8޹ö/wÂ)пŸ%=~4ºû>ªÆc$ ”ò&ãWí.n©}Y†ÇcáØeŽ@عF’îSÁ[৯Û Ç%bd‡Q®G_±›Ê©ëöÆê}æäÎõ†Ýbm\·7V<ŽCBK3«Úê@’ÌìŒ×´ß¤z½™UÀ2ãMV>RñÁ2I1×F¾rõ2Ù)Ç^åÄ÷ôÄ̆ð¬¸ïI ŠûÌ.ïVŶ[IúÁ¦‡TjÇØvÙBñkéè†Qïã8p:ȃäxŸdÑqþQ}ɧ=Ë;ôóÇä3娧áAä?cDT¯Q®lŽIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/inductor.png000644 001750 001750 00000000653 11617757645 024132 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<(IDATX…íÖ1KVaÇáë¯fH¶‚6$…ÑÐÐRТƒø„h7‡& ‡¾€ä´8¸$´DK“£»´âÐÐÜÖÐíàA//å ¼Ï{8?8Ïs‡3œT•Q^c#ݽ  þ@’{Iö’¬÷Úd’wIVzm6Éû$Ir#€$·±‹/XLò&É<pŒI¶’Ì`G˜Âæuªê¯ƒXêÝÃ9ÖzígxÝk±üÏõ{Ü îãž`_@«8Ezí~b¢×vm±€¹niŒ]:í[ÔÀüÁóÀ¶‡œÔζ7dÍÂg¼ªªË·HòOq?º9Å÷ªú5付¬ªß×hãx€Åî¦qÁIU}Jû%k€h€h€Q.ÂDÆñ@!¯lIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/opampl.png000644 001750 001750 00000001107 11617757645 023566 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<ÄIDATX…íÖOˆQÇñÏ3îø³¹¦Lj6†…ºR¦4ÊÎn&; I”²³Á†…”XÊr¶Š‘,‘X؈Íd1‰BYLFC£<÷”)tß{îS§óöžçœç{Îó;"3­¤õ­hô@ P "Æ#âbD -9Af¶,¸€ÄW\Áæ*ýª”ª)ØRêØW1n °£8ægJ¢|÷¡{0:†1‚sh`ç3óy'}XW`±¾üû„טÂ6áFf^Çv*x÷#b,"¢-‚ЏŠé?´Õp3š:y£XSiì6ž¶ðéÇq¼- ïq¦¬ÔÀR<¨è»' @.*Ÿ1'xˆý^ŽƒhAS;ß«8×Ú¸ÞÊ!"öâ’¦0?à,náMfÎþ¶S·",í ÜÖk1Š!œÄjÍ­¹ ™³¹R ƒØ‰{™™± §p0Ž;ÙÆ;¯†/…|Ö¯QÊ ç3ó#îFÄhDœÆ>ÜÄ®N¢ª)¸V Ç4ü hü­»`¦Ô“x‰­™y83§:šõ"«º c.gæ»nƒ.¶hC/ËbÿÆ‹¨Ðø¯~{ŸðbýIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/ammeter.png000644 001750 001750 00000000757 11617757645 023742 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<lIDATX…íÖ¿KQÀñÏÓSXZ*¦L‚?I¥ÿ€múÌ_6$¤Hccmå v!bA$©Ò¥ñ?ÇâæÈ!Ùå–K±ûfÞ›ùî›yo·D„qÊÄX³·-@ ð?tê.,¥Ì`=‡gñ³V ˆ¨¤˜Æ+\#R¯Ó6]9^Åä ø‚OØÁ*ñWé[hKø†}L¥í Öò¹‹÷9g© €#ܱã9.øˆ£‘`+kýhÈÖÃÔÝ!ûZÎÝú—Ø%"”RVð,·tRÿx´ƒÜàA ^µ”Ó¬;lgíoòt ô¿sí@ÿà3#â²Ê=0‰™L¾§xˆÇ˜ÇF…X¥b z9>Çó!ÿK¼«S‚*M¸‡˜ÅÎ=þeM5a&èàoè÷ÎÁ[MÃL2‡¯¹=ý³ßÅfÂ5w Atñßñ+µöU\2heÕǨ6À¨dìÿ-@ ÐŒà]} <}±®‚IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/symbols/wirecross.svg000644 001750 001750 00000023253 11617757645 024337 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/screenshots/ss-0.png000644 001750 001750 00000515374 11617757645 023750 0ustar00simonesimone000000 000000 ‰PNG  IHDRÀXrfÄ pHYsHHFÉk> vpAgÀXD4º€IDATxÚìuxÇ÷ÿw¯»KÜ b4¸‚[‘¶X© ÅŠ”-®Å¥¸»» q×›äºûÞßóÍË'$ $!´×óç²»wöÌ™¹»ï=sMNÎÏ×j‡Ãá@ @ @ ©%‹ÕŠaõm@ @ @þm ³ÙfsÞd±X­6ÛíÛ 99¾¾<—ËdR©`¯R©ÑYYEEryÛ¶QQÞÞd2‘H àpx<_Ùi@™ ÉÉEEB!Ç`€2™L:LÎÏ—HT*P&›M§“ÉÍš…†zxT]&@ äóSP’¢×k4J%ö†Ùl6›ÍV\\P›«Ñ¨T2Ù°a_={v}[ @ |:¾~—§Ó  ÐK½¼\\8­V¯7›^*“©T:]ddP‹KõõÒÚÕ`¿Ìº£wî$&J¥ÎÕ¾yóéÓ¬¬Î›7 BQEÑŠ');®_ò$#£E‹°0WW&“Éd0*ï\¦¯¯»;Ÿèå%TVfzz^žTêî.P©•• @ ©/òó³²’’¼¼üýCC+;¦¸8//#ÃÕÕÓÓÏEq8R@ ùg´Íœœ¢"•* ÀӓϯL«LKËÍ-+ËÏ/)Q©€^Êb±XLfeeÖ®û%×`µÚlåÙŸ’“‹‹½½]]y< [«Ê íî.±ÙÉÉ99ryXX@@&“ÉŠó1Îeúùyxðù‰‰/^<~\Y™ FF6köüyRR^^eeB @ê «ÕjÅ0ç{È¢x¼Ñh2Y,D"‰TÝ{9›M&{󿨱õë Èd__‹E&ËÉ‘JY¬®]¿þzÈV­A,…âÁƒ-[?.)¡R•ÊôôädaàÀ_<80Nÿ<~xõêüùÅ‹wïÞ¼ùÐ!¹œÃ0àÀC‡~ýÕá0³³.\X¿þÁéÝ{äÈ>}:tàóñxµz×®;öï‡LFQ‹åÅ‹äd«uôè™3¿ùÆÍDúX;ìvƒ!=ýÂ…¹s—.=wî›o¶lÙ±#$äÃ^ؽ{Ñ¢E‹X¬à`&³´4+‹Hœ4iîÜ©Sßo_‰äìÙ¶oùÔ½û´i±ÙðE@ ÿ@ÛŒ‰ õô¬Z/ ðò ív s8€^Ú¸qh(ƒQY™ÎlròË—•ë¥îî"‘¯oÕlÝÕN·Z‹‹ß¾•É23r[ñH‹E¡ÈÎv¶Ó¹îè¹s§¤dg—–²Ù …âééâÂáTß”ü|‰D©T«u:ƒ¡aC77ç½ÅÅeej5(3%åõë§O4ˆˆhÚ´b9`/øL§‹D L1M$‰C@ ©-22’’ž?ÏÉIN~òÄfÃ0árÿ 7É7JJòóÓÒèt:N kÑâõë'O®_çp8.W­V©Ѝ¨ØØ¸¸÷Ë6™Þ¾Ý¹sÊ”yó8œ3¶léß?(ÈÕÄWX­ùùëÖ½}K£MžŽÃ]ºôÛo“'ÿñÇ÷ß{Vµ)ÁÁÅÄP($J¨ØÎeSœ'*3Ô¹LMC$~L#C @j³Ùd2™8±ØÏO.W©ôú7ož>½y³Q£¨¨fÍ$’‚‚œœ¨¨æÍ;v¤RétC./-ÍϧÓ9¡Ã@Z"¯xÇ1,Ïqçp”ߣ É:v»ÕŠ Ž·÷À[¶tî¬Õ~ÿý­[ë×þèÑë×6,^¼xñœ9yyÏŸß¼ùôiAAZšÃѨQh¨ÅâpàpB$òùv;ŠR(T*F£y{·oß­Ûë×Ïž=yRT¤Ó¹ºÞ»wèЃGa¡Ñ¨Õ–”(……®®,V‡B¡°ÙNDÄôéz½\î\ÑNçºÿ_T„XÌã±XEEeeÅbµb˜¯oHHãÆUÿG––ªÕ"—ËbU4×¹LpC >Wü ö‚¿Îe$™\—.…@ ü=Ý»8vìéÓ{÷®^ýòåýû/vîÜ¿ÿ¸q"‘·whhÓ¦íÚõî-º»ûùa˜Ífµ¢(O"étjµ\^uÉx¼P7bDëÖ:Ýùó—/§¥•ïq8 †‚‚Ó§W¯ŽŠH$)+;~|ûöãÇSSÛ·;vÆyó~ÿ=>OI¹{÷×_ÇŸ2E"qskÓ&&&66<Üju^1Ìl&@Ä6‚Øljubâýûnnl¶«««+•j±hµ^^Ý»wë6zôÚµ?ü0vl|¼———WxøÍ›oß*Rž¤¤Äá ËcœÁívƒ“'_¸°`Aß¾oß®[7yòÌ™à¬(Êf·k7qâÔ© <^Vf±”×Eñx@ “étÎnÇá„wsþh´&M~üñàÁ7o6oÞ½»zÒ³3ÏŸ_»öø±Ng·#/tèðøqn®Fƒa‡ÕªV¿|y劋 ‘XZúòå»#»tñðË݈ˆ±c]\h4ù @ ä¿DE½´ú¶YQÕ¬¾[QG­Zƒ­ëº'%½|ùä øël!ØRuÝñƒûã(Š (ZPPZªT …\.ƒ‘žþömB‚LVZZTTÙ_G pqÉÊ*(J]\x<N§Óß¿1NOÏË+-eÊåeeÅÅ••V~ïp ˆRi6‰ LƒN§RQÔy!@ äs–Ä0»Ýf3 ½>44:ºuk2™B¡R)­|™³ÙdÒëI$"‘Db±øüòXàªKg±BC[´ P^½Ú±£ @«5ÓÓïÝ;v,!ÁfëÕ+""""$„J%“q8¹üÖ­óò¤Ò’’ׯŸ<ÑjCCGŒ;60P¥:uêìÙ7RRL& Ãáž={ø0=ÝÛ»aC±8#ãÊ•ãÇ ŽJ-(xóæòågÏŠŠ""""š6íÐ!440ÐdzõêÈ‘;32rsóóÕj_ß=BB\\øüׯ·l™<ùñãÄĤ¤œœôôÜ\®¸øÁƒ§O_¾ÌÈÐéh4w÷˜˜°°à`"Q(ŒŠòòR©Îž5ú÷‹™LBqumÕêòå?þ˜;75µ°0?¿¤$??%Ål¦R==ÃÂ5 a³ét*‡û™×n7²²nÞ¼|ùÊ•+W¬V2™Á E¢  {÷víúóOW×V­bc¹\*•ÅÊÈØ¿õêÜܲ²ääÄÄÌLoïÐÐ äüù={nÜpskÕ*6¶Aƒèh6;+ëÔ©óçÁ‘­[÷ìÙ¶­@@&3 ™ŒÇC@ Èg½T­..NK«Z)­¨—º»‹Å޳ªYQƒ}·¬áûÈd¥¥ÅÅ\®Pèê æ V­ÁÖuÝ•[`—+º¹;«®;züø½{…… èÔÔìl‰„D" WW‘èïRk•–*•6›Õj³ùû{zòùDâÿêúËÌÌLJJH¨¬LÈ—WX(•VV&@ ¤¾()ÉËKI‘Ë¥R‰$4´I“>tL~~zº‹‹—W` ‚”'p¨.‡Ýž°zuGŽ(C‡N™2sf¿~žžl6›].Î:6›^o4Z,@QÈT*N£Y,z½Je4Úíïp˜Ív»Å’žþ石g¯Y3~üºu{÷’ÉD"Ê!ÈdÄE;6ÈvŒa Ú'‘èt2AŒF½Þ`0›'I$*•FCQ«U§3 «•Éäñ‚w!¦R)j5ƒÁår¹ zÃ,ƒÁh4›m6'PÔá°Zm6‡ƒD¢Ñ *õÓ2@›ÍƒZm4šLv;‘W•Ìæüü3g¶l™??>~æÌµkwìØ¶mÛ¶íÛ7lX¹rîÜÏž-+ö½çƒÑ A\Ü€QQ† âpØl ¨Ñ»ã.5õĉڲÖn×j““Ož\¾|ذ&MÂÃ;tÈÎ6ßyËfS(Fj×®gÏÙ³÷ï¿s'##+ËÙž/àÿ&MÂÃÛ·ÿ+·nÝ´é?–-›5kÏž¤$x÷Køÿĉß4è»ï¶l¹t)/Ïd*÷\\³f½{;‹5çÏoß>~çÎÍ›÷í;þž=7o~Úycbââºu£ÑL&“©²ÞQÞãÂÃÛ·Ÿ:uÅŠ-[&M5jÚ´Õ«oÞ,+³Zë§Õœ‘#›7oÝzèÐ3V¬X»vóæ;š7ŠêÚuþü vìØ¼yݺß~ãIÅ~ú±´n߯ßçö’ͦT>~¼cǦM[¶¬_ÿË/S§~ÿýÚµoÞètÕù6aîÝ“J­Öw[ËGçí£¾TœûZtt£FíÛ;÷5‹%?×.羆az}F†s_++3Šòß—OŒöx¼Éd6YãÑûX,É­[‡­Z5jTÓ¦:=}ªPØl‚ ‡É”Ÿý:Ø>kÖŽçνz¥RUåÇ=âŸ5b@ @ äŸÎGÐãÆסƒHÄ`¸¹ 0nÜ„ “'ÿôÓ/¿¬[·re›6|> ;vœ=»lY£F4ZýU‰LöòêÓgܸqã:v8pܸ ¾ùæ›o¾þzêÔ3–,a±P´êï—ïÇã‚nÝ@Ê÷ÙleeW¯®XQ{4Ïd6lØ¿ÿÔ©sçöè!:¾¾Tê; ÁhÕjîÜŸž2eÆŒ½{Ï{gÏ—ð¿PÈdzyñí·ß~;yò?üüsjê¶m ^¼XZ ”/ƒrÿOœøÃtzëÖmÛz{S(Àÿ6›\®ÕŸ?÷nYýºv‹ óôlÝzöìéÓGîÐáSÏüw×á»Çdzy9qâĉ+WNŸ._ºôË/‹=~¬Tþ3E$>¿}û•+·n]±bæÌ￟4iÂ.—FsqéÕk̘ &Mš6mÎ??2¹vΆ¢ïéÚÄáP«,˜7ïڵɓ'Nüî»yóæÏïÕËh”ËÆê”F˜¤$½ÞùETùÈã¼ýCcTM1m¶º¹®œûZ“&,ïÜ׊„„ë×ûG§:÷57·nÝjë÷åó^Ÿ‰äêÚ¾ýÀ¶lÉç3îîM›òx°žBñòêÔ l0`È^½"#9<þïëýå×@ @ ÿ.>2Çû®Cjê‘#¿ý¦ÑüðæMqq"ÑàÁ-ZôêµeKnnåÓ{÷í6lÀ€ßON.—cúõëØqòäû÷UªÚ>œ­Å0½>5õÈ‘;zõ‰ðx S©îÝ›1#.ÎÙR‹E©,(Ÿ…âömP£òýFc~þÉ“iiµ?i›F ;wûö~ý._–ÉÞE±Y,……3f,\Ø¢›­Tþ¯=Ka!ð'ø¿ÕZTtø0ð'ˆ)ܹ³W¯V­zõ:p ¨ÈdÊÈØ´iêÔ‰;vl×î»ï0L¡¸uëë¯GŽü믢"çxËšc±””œ;·gÏŽ[·®[÷ÛonØðçŸýû»ºA†oÕêý«ÅbÉÉÙ²¥[·V­F~úT«EáÃcb7Ž‹[³æÙ3ÝWRræÌ˜1Í›wèðË/ﮡš¢lvLÌ­[?ÿ|ú4ðƒÃ¡Ñ¼zuâÄ¡C]º¨Õ7Ξ}ùrY™Ýþüùºu dͦT>ü <¹yóOŸ"‰äâÒ¾}çÎŽLvñbbbYÙË—àAcÆtè@"%'Ÿ9c4ܾm·wëÖºµHD$ÖfmH$—^½F;väÈ^½BCß¾Õj1ÌYHù¨‚¢8Üûlj®®Ý»÷ë¢ûx¼ðð¦M9“)'G§«½+†@àr¥Òóç_¼P*ív£± àÖ-—€€›4!‘rrŽ}õJ­¾vÍ`èСÜAcÇrr8œ¾}›5€´îëÛ£Gt´ÝþèÑÉ“yy&‚àpx<—Û²åÈ‘#G>tè€ÎW•ÕZVvïÞÂ…ññÎÑïå˜Í‡mß¾}û¢E»w£èøñ7ΘN§¨;wž8±w¡t:‚X,R©Á`³ åq­(Š¢Îþuwö'¸®œ{(¸®ê¢‡V†Ý®R%$8ûA„JuömuŽùІǓÉTªÙœ–¶jÕâÅÛ·›L"Q·nsæÄÆòxµÑÛ)”  ©S÷ìÙ¶íìÙyóFŒèСK—o¿]¿þÑ#¥Ò¹Ï;÷Ùõð‡Æ(EQÐkœÛôо‡Íf4ÎgÂáÀ±6[ÝûA>¿iÓÎûšÅÒ©S` s_Ã0£± Àù:õý_üÝõ FûøøÎÝÜœG{:ý]´0¸–œ{1¸–œ{1ÓÀXªVÛí QÁXš›k0 Qk{,h4Ïž_´ò¿™™ÿ›ûãaQE»téÞ= €FãŠÒéžžëW/_Êåµ-§C @ ä¿áã¿ÂbÅÄt4†™LeeÀŸÎ>œ6mÖ¬òcÜܺtiÝšN?~üܹÔÔŒŒøø¨¨nÝx¼ˆ‡cΉäÁƒÀÀöí{ö‹ëB2rîçשÓ3g^»&“µnݧXL¨ö•‡¢(ŠÇ¿/Jãñu1¼Y3­ àĉ¤¤²²àà´4¹<(¨aÀ€Áƒ## „iÓŽILäp:uŠŠ*Ÿ ¢×#•êâB¥–ËYx<•*“H&SB‚Á$Åá>ô2ÃnW©=úý÷eˆ=z´{w ¥¢gÈdOÏaþþú믛6e2ÿ¾ee÷ïoÝzà@A/x{3™ÿ;-ÿ}–{¹ü3¸®œ{èçÇn7$’ª}[c*–ŒÇ ;þñǺuÉÊ•79Ò¢EçÎÏž³`ÁòåÓ¦µo/Ô¼/<^ãÆ×®Ý¹³oßÁƒsç~ÿýªUÓ§/Yòí·‡5hPq tî³×®ÕÜûо“gÅâÎçÎ<øÒ¥Õ«7nüã¥2)I­îÙsÞ¼¹sñx€Í®kÿH..mÚœ8ñèQy_kÛ¶_?6[ x××JK}}ÓÒøüÀÀÐЪK«úz£½»;‡Ó¾}e%€kÉÅ…Ë}¿¯H&SQQy/F‰N/,è:Ç»l© FHÈàÁ7n,\¸cGAŸß­ÛàÁbqf¦Z]>­Üj•J?þpmÿ¿Ëpö¿1gµ‘8y²Ã±qc|ü„ ß}wà@³f³gWf‰äæÖ£ðgù$q»]©þÇP(ÁÁ“&-]š’’“3lXË–B!‹6kÖ¬YÁo¿Ó¦ÅÇ{yÕüüÎÿ4‰”“³ÿýûåÑÝÂçãp*UBBJŠZ]ž¼âÂ…«W%’¿‹¸«AdêÔ9süü’“¿ûnøð™3äÛoEY¬˜˜E‹. zûöûï§Ní×ÏÓÓ9Žrôh‰dÛ¶;wÊÊ@-²²Nž¼tÉno×nÊ”£ª:àñN›6+Wž8ѹstt÷î ܾ]¾Ì˜sMßyòï3fòäƒY¬áçLùî» úõÓé¬V»]«µZŽêø\WÎ=\WµßC«¶¡gOgß"‚ξ­Î1ëk±äæ80þ³g11óçïßùrBÂÖ­AA×®-[¶i“ó|ŽOÃbÉÍݹsìØE‹< y¼¨¨aÃæÌùê«€:Juî³ÀÃÎ}xŒ0R©Ñø~‹m¯Ø•·Pù«µ¸øÂ…Å‹÷íËȘ:uòä~XºtË–?þøñÇö킺öO9Jp°s_ëÜY,ÆãûÚ A?ý¤Ñ8÷µ«ï»kÉÕµ[·… 7mzöÌy´—ÉÞ3àZrîÅ‚ FcÅ^ ÆÒéÓ§Oÿí70¢‚±ôÌ™ñãçÍ#jíxèãjùŽ¿û…ýpYYY2™ÙünŸÕZRÒ°áĉýûƒ8@ |:øÙ³gÍš>½:‡=ºsç† 7o>{V\l2Q©Lf§N7hP¾ßjU(6lØ´i÷n£ÑÅ¥Y³4Àá¶oß¼y÷n†Fsq nØ0006¶M¡0;ûÀ+Ö¯?yòþ}§ÿéÓãâ¨ÔšOñ¶X$’[·Nœ8zôüù£G<(.–HRR^¿NHxôèεk?æó‡ :´U«¦Mcc…ž=¿újÕª—/ß¾ÍÈ(-%“I¤/RR”J•*9ùÞ½ë×ïßON0`„±cÉd<ž@@Ñ·oÏœ9yR¥ nØ0$ÄÝF«¾üþ÷véÒÁƒ·nùûÏž=mZ·n..(ªPÜ»wòäþýgÏÞ¹óÎÅ nÞ\ ˆŸ4iíÚG>|õÊáèÚuÒ¤˜OO*L[§RÉä[·Øì ‹‰D%‘h4»=9ÙÅ¥qãöí§×Žÿ7nܹó“‰Á\]üü¬Öë××­;p !E#"Ú´‰ŒlÝšL~ñâСի7m:s&!!#ÃÛ»eˈˆŒŒ[·ž=S©( %)éþý[·T*‰Íæñüýƒ‚ž=;rdóæ›7Ÿ=“H¬V.×ãcLj_ßš[N$R(Ë¥KÇ¿yÓ´é?N˜Ð¦@@  (‰D§7ož89dȸqÎr}PPl¬‡Gnîþý»v]¿ž’’“sû¶B=wîœ9;{z¢¨L¶~ý¦M»v)•D"“Édº¹äå]¹²k×ùówï&'ëtL¦Ï‚ÑÑ%%{÷þñÇ))4ZD„RùäÉ_ݼ™z‹Õ¹s“&!!ï<-•nØð¿ý+*J¥:{võêU«Nzñ"?¿¨ˆNÏɹsçêÕÌLµº¬,?ÿåË'OÞ¾U*?ÝÝõú{÷6mÚ¹óÒ%àÏðð°°ð𢢭[Ç=\WcÆôéÓ±cí¥¤±Ù”ʧO/^<þøñK—nÝ2©T ÅbAQw÷  ¡ÐÙ·/^¼yóèÑÅ‹ju»vÀ·b1•ÊbU}LRÒɓ۶?/õë׬™¿vöñãk×<øðaNNRÒóçMLÌÔ©?þع³·7…R“:¢(@¥ªÕ·nmÛöàAzzNεkW®H$ÍšýôÓŒ‘‘îîB!è³` {&•"QëÖáá^^`äÛû÷oÑâùóS§Þ _}ի׃ÇïÛwîÜ;IIÞÞýû Ú÷ĉ#Gλw/?ŸÃ‰ŒŒŠ §Ósrn܈ÿK7nÜ´iÇŽýûÏœyüxôèQ£zöÌË«+ÿ8{êüùÝ»} ŒBÎ}íáà ï¿ÿê«NÄbðûÆÀ‹³³E"ðûê{æÌóç EU×sDDqñÖ­cÇ®XqèÐÝ»`´W*ÓÓ_¿6ÙlFÂÂ5*)Ù±cþ|Ћ߾½wïüùo¾ùñÇaÃ<=Éäòø`*•L¾ysß¾3gøüÉ“¿ù¦KOO6Ûn¿xñÀk×BC¿ÿ¾|ܨ¹‡œËÀ/oDÄàÁƹ»S©(j2åçß¼¹yó¾}—/[,L&Ççûùùû·mÛ¶­Hô¡_X//îöícÇöí;þÍ£ŒB!‚H$¿ÿ>gÎÆEEInnbâýû—.=sæW_ÒhŸ/ @ @þ J¥\^RRßf@ äsàpèõIIkÖ|ýõ‚“&íÝ{ô(§Ó>}zðàìÙLæ˜1ýùá ã#Zí³g[¶Èå'úøÀxg@ Ô6¥–<ªú˜ŒŒôôääú­Ò?ÅκÍ5©Ë?«F5¯ï¿£¦µÅ¿ÛcU×îK¨ŠR©žž:´mëë»aÃÖ­»v±Ù8œNWZ*•¶i3~ÝJÏÕ*ò%xïsòi¾ú/Y,RéÍ›'Ož9s÷®Tš™éç׫WïÞ;Óé0î@ @ µŒ€†@ @ @ Hcœ @ @ R'@@ @ @ u !@ @ R'|Ä"„@ ¤2ŒF£Ñh´Ûív»Ýáp8ŽÚ*EQEñx<'H$‰Äú®1@ ò÷@@ ùD€è,‘åä8f·“H$‰„Ãápx|mÃ0Ìn·X,³Y«ÕhTªfÍbc»w7›M&½¾¾}@ TLÁ@ |4V«Õjµj4R©Ñ¨T2™L&S((Š¢8œ£Ve’Éd2•Êç ..F£P€Hèúö@ Rµ­P(J¥V«Õjµ …R©TfffffdƒÁPRRRRV×£‡¿@€¿?…B&“Éõí„wÈår¹BÁçóù<^ÍK³Ùl6›­´´´´¬ LÆôòòòòô¬ïZVÅ?·ÁãYIIIIiéÓ§OŸ>{F$’H‚··——·wƒ „„àp8®Î_º8[’šš–––f4°ÄÇÇÇÇÛ›N§ÓéôÏã‰D"))–h4jµFàï,¡R©T*õóx¦2”J¥R¥JIIIIMmÙ²eËæÍëËg€¬ Õjµ:]^^~~~¾R)—+r¹R)—çädgçæâpx<ß½{·n]»††††6lX×–€¾™••™™•,}³¬L*•Ë%_Zßüü@ýû¸sçîÝ{÷ÀçÖ­cc[µªßQ €;=¹¼¬¬¨ˆÉd29œÏs^Ž#??;;5µQ£¨¨–-m6«Õj­o@ @ æ£èsçΟ¿p¡¸¸  --::22<ÜáÀ0“ ä¡D"ww2™@ ÝÜ„B2Y©,+CÑ;wÓÒÂÃ5 g0H$nçÎíÛׯ÷ó hÔ¨E‹-Z´àp86»&•IKKKKO?~üĉS§bccc[¶ôôôôôð Ñ¨T*•B¡P¨TƒÁ ÓAî<‹Åb±ZÇŒ3fÌ©´¸8?_$âñØì.]úö2¤K—Î;vtuuuuuý4{æÌùùç¹s32RS6 ñ÷:tܸˆˆˆˆððÚ}x6F½žF£Ñ˜L‡ÃáÀ°mAà¡P,öð¨¯üX@ nÞ¼nÝÊ•@H-((**)¡ÓÙl>_©”Ëe2.—É$‘>ärY,¥Ry¼!C† 2„Á`0ŒÚµäÀýû÷ï·ZFµXB"Q(tºN§ÓétÀ’&MÂÃóòd2³¹®-ÑhŠ’™L¡P«%D"™L¡$'¿~ýä °$7· @":ô«¯&MªŽ%Õ¿Òªëß¾}ùòþ}_ßóçÏž=uªgÏÞ½ûõ«-ŸTͶm[¶¬Yèë‹¢8Àb1$ƒÁbñx`Ü}Çc0˜L±Û õõuwo×.66:Z¯×éÔêK—.]º|¹}ûöíÛµ3™L&³ùc{è›x<†©ÕL&‹Åf“ÉD¢ÃÁãñùb±Á`4Z,))©©YY*•R)•º¹¹ºŠDoßfe¥¥Múí·£FK@ß7n„©S?Í’OkG ˆ|žVsö“I¡X,t:Îd‚ÑŒËåóÅbÐv`4ó÷÷ö.o;0šM™òí·£F 5õØ»8ÇšõHÕ¬^½zõÚµà3øe÷óóõõõ­o» ÿ-*öw @ z½VËd2™l¶sÞgðY¯×ë °Ü…Ö–=jµJ%—ãñŒ€†@ |ÙàgÏž5kúôêA").–H»ÝhlÒ¤I“ðp6›Éd0¨T …@ ‘H$°4 VívƒF£R““³²²³³²’’’“33}}}|<<¬V‹E«ÅãI$C,‰D¢•0@ì¤Z­V«TwïÞ½{÷î©SÇŽ=zïÞ­[ׯŸ;wæÌ™3§OŸ:uòäñãÇŽ9ròäñã'Ož:uêÔ©SçÎ;wö¬Á TJ¥>>îîB¡‡‡H”]T$—·mÛ¶m›65‰TÝ»w÷îÝ»™L:B‰mÞ<"âôé³gÏŸ/((**-‰D"‘ˆÅb±X¬š 7àá‡Ng0X, ðʥçŒŽŽŠ c±X,ƒH$„J¥PH¤ÏÙ‚5áÔ©“'Ož44¹¼¸X*U«ãã6,**:ºqc&“ÅâpÞ¼IJJM‹ëرE‹¤¤ääÔT>_(tu‹Åb±¸v-Ñë•Ê’’‚‚’…X2p`|ü!v;†9ÀµZ¥R©,“É`–…B¡PX[~s¶ÄáÀ0›­{÷Þ½ãã%îîîîîî7oÞ¹óà°¤]»ØØ˜•Ê`À°êXRý+­:deegçä¨Tr¹Db0 z=€ÃÙí..îî~~P{Ù3+#''++%%::2²AµZ­Öë===<:F£PˆD<AðxAH$2™D=bÇŽ]»¼{÷Þ½'O2223ss¹\6›D:r䨱3g<<<===]\>î}3$$ ÀÅ%9955+Ël6›-77WWàС£GÏŸ‰iÞ¼C‡¤¤·o_¾ôööòru-,,,,*:{öüùë×% o=úÎ’ºî›*•J¥Vƒ}uÝ^=ìï/‰Db±HÄb—LWÃF3"‘H$@›‚ÑìÌ™ÚñxuWý¾ä* s8Ã[}¶mÛ¾ýÏ?M&³ÙlîÛ·OŸ^½¸\.—Ë­o» ÿ-*öw‹Åb±Xär©´¸˜Á/)ßF… —,Y±‚ÃápX,>ŸÇãrÁ8Æ%ðÚ¿3‡^¯Óiµ>>þþ X­‹ÉTß‚@ @>ÌGG@Óh4f2™ÍV+‡Ã$™L§›Í&“N‡av»ÍF"‘H4‡Ç‰‚ÃY,ôïß³'ƒA§S©©©ii©©éé99ÙÙÙÙyyJ¥V‹¢!!ÁÁÁÁd2™L"Uß°KBÂóç/^lÞ¼qãÆ` N¡H@Œ`³  |¦Ñ(”òò@&c.p¹l6…B&“Hf±`˜ÕjµÚlŸæVð8áîîîîâ‚av;†5lÞ¤IQ‘Tj46nqåÊ•+W¯¶k×®]Û¶ÞÞÞÞÞÞ$‰ô©1,f³Ùl2„b³U> Ó¹-«ÕnÏËËÏ—H(Áf{ðàñã7o¢££¢"#E"¡Ç³Xl6‰‹‹‹ëÜ™Íf2éôŒŒÌÌììôôÌÌÜܬ¬ììüüš´à§a0 Cbâë× ¥¥ee E»v;vëæííããçG¥Òh4" ÍjµZ•JOOww‘ˆžááááÕ®%;ÆÆ6kÆb‰D°¬Vݸqt4°äÈ‘C‡öïoÓ¦yóˆ`IppmúÍÙ’C‡Nž¼tiĈñãË-ñððôôòêׯÿþý%V«Õj·V×’ê_iU¢ÂËGƒ¤¤´4__OO¡°¸X*ÕéˆDãÕ«-š7oÚ´æ>©¥R¥Òj³²rrJKO:{öêÕààÀ@/¯w‹Gáp‘H¡Øí6›Ùl4šL‹§§»»«kóæ11aaŠâñW¯^»vïÞË—¯_''ûøøúúûGD|Ü5úfNN~~YÙµk7o>|8xðС#Gþõ×Ñ£çΉDb±·7Çãñxd2.ß¹óðarróæMšDFzy¹»óxIi©R F×{÷îÝ»wXRw}S­V«Õêëׯ_¿~½U«V­Zµ¢P( DÓu¢vÏ|îÜwßM›öý÷uaIÛ¶M›†…¥¥¥¦æäKØl6›ÃyðàÞ½Û·%të»zõÖ­‡K>-î©2œ-éÚµmÛÆ?~üøáC`‰^¯Ói4Ïž=xpý:°¤´´¬¬´”Je±<=«cIõ¯´ªs :uêØ±];‹Å`P©Äb€Áð÷ ‰Ž ­-ŸT HgÜ£GPPPP`àøñãÇ2w“H$Æ:‰Lf00 ìÖÇÜ»·Q£ÐÐÀ@‹ÅjµÙš5kÒdòä½{ºp!****2òcûè›W®\½úúõäÉS§þôÚzöìÛwÔ¨üüüüüüœœœœœ‡Ã!ˆÅâêêâ"òù|>ƒÁçóù]m6»E%uç=6›Íf³“’_½b³©T«•Íær…B«ÕfÃ0­V­V(Ìf“Éd2™„ÅŠŠŠŠŠŠzóæÍ›7oZ´hÖ¬I7777W×O‹³Ûív‹åõëÄÄ´´;wîÝ{ô¨wïîÝ[µ‹E"üñxb±Ÿ‚ ¨úÿ¸|ùÚµ{÷4 ñóÖcÛ|}}}}|ÀÜÕ«×ëõzý÷ßO›6ujõý››——Ÿú‘P(ðùÕ·¼6»uëöí;w@^ø~ýúõëÓ§®Çíšã¼ [í– z+¸R?gŽþR©L&“ed¤§gf‚--Z´hѬÙçOË®G=zòl   æåÿ}ÿÊÌÎÎÎÎÍU©T*•*((((8X  …B«Õh”Ëoß¾{÷É“!C† 9òÑ£„„çÏ>|ðàÞ=ƒF#“Y,6›ËW&N£‰ýúõé÷9ý @ Ô-@ƒIÖàñDÚíf³†L¦RY,<'Àc?@$R©@&‰$•ªÑØl †¡(ŠR(T*éh´šGçY­6›Ý^þhŠ¢B¡P($Ãápv;†a•J&“H(Š ‰D"‘H`»R©Vët—Ëbñx<—[“éÿ@²Ûm6‹Ï‹É¤ÓÑhT*‰tóæÍ›·owîÜ©S‡l6‹Åb¹¹¹ºŠÅfµ åÒÒÇÉ1‹Éd4âpx<áoÚÔ¹}|¼½==E"¡P,yœnܸqãÚ5±X(|øðñã—/ÝÝÝÜ\\CC=<8‹Á‰\\<<”J½žHü<±ÏƒN§Ó)*•Étssuusc±èt*U").ÎÉKEF6l€¢V«Z½qã®]'NDDDFFGƒÇѺ°äêÕ;w:wnÝ::X’žž˜(“EF6lØ °$--==#ÃÙ0¥·¶ìq¶¤_¿¸¸Ž32òòÊ-™…›6ˆ–\»vïÞ‹«V­]»n]u,©þ•V‘¢¢¢¢âbWWWWp…ƒeß´Z½Þl&“©T‡£PÊsʃIÊ™™™™™™u!¾"dßå÷i%t:WWWW‘Ãìv«Õf³ÙL&E%I$ |JMMMMNnÙ²U«Ö­õzN¯²ìÇZ úæëׯ^%$¼~ýúõË—MšÄÄ´h!‹Å..×®]¹rö¬Ñh6Ûí:uêÔµëÇ÷×B$‰D§ƒJFWgKêºoÒht:Îãñxl¶X,q¹8O"Y, — –ÆÊÍ--óB<< ƒÁh/ùj’†xÌf³ÙôúFÂÂ48|øÈ‘sçΜ¹páÎÐÐ À5ƒÃBF†Ùl±X,yyùùEEéé™™…… †„øúZ­‹Ñøiû´¾Àår¹΄ ãÇ{éÒåËW®€¿ÝºuíÚ¥KeWHu’ðü9@$Íš5köñ³‚ƒƒ‚ýýýü|}ïÞ½wïþýýû8t(...®{÷Ú’êþY?33;ûر#G,..))+—[\,• ]ºtëÖ«X‚ª¬¬¬¬´ôÈ‘cÇNœ PÈDÎfS«ÕjÄ }ì#buŽwnÁ‡Ÿ>}ûvðà!C†ÏÊÊÊÊÊx<cÈÁƒûõ“Ë¥Ò²2N§ÓjãâºwïÔ‰J¥Ri4©T*--ÍÎÎÊJOwqqq‹]]}|š7¯ú¼ÙÙ‰‰!!5k®4 !ÈÿNY­oß¾}›”tõê¥K.«²³ ¤ÒˆˆæÍ½½½½½¼bbØl6{øðQ£ÆŒÆu}ælÉìÙ?ý4uêÖ­;vìÙ,‰Äb±¸Q£&MD"` ¸º¨T*•J­]KΖ:tøðñãT*çá,!“)2¹k×Þ½ãã%@@¯‹+-???¿ ÀdÒéJKÍf­¶´4==33//++5õÅ £ÑbAOO//ÿú÷ïÕ |+000ÐÇçĉ'Nœ R‰ÄòÙT*•J ä奧?žðòeJÊðá£FWñ¼ÎWøÞ-õ¡+ ô«Õj5›A¤³»»»»««L&“)•žžîîà»f³Y­(ŠÃáñ`†—Ëá‰Dbƒ(Ša:Xpd@þض}S$8­V§3ZµjÖ,4ŒÈ 4lzàÀ¡C'N (G&óÍøñ#F€q†NG s]m6»êcÉÇz¬" ®¤ñõõõõõݰaÓ¦;z÷îÑ£m[&“Éd±˜L.×Õ,î ÎRóþ|ðàáçO5­Ö`ÈÊÊÊÊËø|Œ‘‚ ŠâpBzzjjjª¯¯‡Ÿ/r8F£Éd2 nøSÆ4Ð.‹Åb0xxxx¸»3*•J–FÌÍÍÏ—H ‹‹KK‹Š$’²²ãÇOºx,ó×±c‡­[‹Å"ŸO¡Ðé\.W>¶oVÇc %$’‚‚´4•J./.¶Ù„LNJJIÉÊ¢ó±c§N]º¤R©TJeŸ>}úÔFÆaPBAAAA~¾ÝŽa(:a¸qÆ5mÚ¤ID¸Ö³²rsKJ¸\‡ÍîØ±C‡ØØððF¤Rh±˜LF§»»×¤íj …B¡ËÓÓ3222@¿°Ûm6›ísŠ¿@òþóÏíÛ·l9~üĉS§Æ?þÛo·mÛºuãF—Ïïç™LDâ§Ì›©šò8ùò×¢_Îr£sì‡>½ÿ­Ú“)?ûn HTÒ¶mÛ¶­[¯ZµzõÚµl6›Íb­^ýîeIíZXYiÀ Ýòù|>bÒŸ>}ö,!áýï¾+áóă_:г@¼vTTdd£Fii¹¹íÚµk×¾½‡‡‡‡‡øÏÍÍÎNK[²ä×_—/¿ÿþýû÷oݺqãò庳@ ©kþO€V«U*©”ÃáñD" =üÍ×–,!!‘h4£Ñ`P«A4Èøl·Ûlf3Èš¤m»Ýj5›Á#€Éd2!»fÓiA¢ ™L¥Òj‹ŠJKŠÀ@ooWWð@ „‰Rž ãýG)2´Ng0˜L$RUü«CiiIII X¬†F£ÓÁpAyt¹Ýn·ŸD¢ÃàççíÓ¤IãÆ …\®P8KrÕ?oõ¢$’âb©HíJ¥R©TZ,‰Øl<‡Ã0‰Je±¤R©T*–¸¸¸¸v»Õª×q×d2›«×‚`R¿ó•öÎ÷ÃùógΜ>ݾ}llÓ¦R©TZVæææîîá ¤gga ¼œ¨:i碮œ-IJJNNI™;wàÀ!C*ZRwK.]:þìÙ† ==%À3uaIu®´F5 »páüùsçˆDÎbQ«u:‹¥cÇ.]Z·.--++++,,(ÈËS«•J¹œÏ ù|'zäÈ‘#GŒ6Ëd2™\þøñýûW¯ÚíÅÅ EŸ>ýûRÙy¯4@$rs¯›*;$1pssu ££##4 ò÷OMMJJNæóY,77 M‚øhzA|}A.‘H$âp`4£Ñèt­&cšÕjµ‚LÛ ˜êïææááïÓ±c—.}ûj4Z 2K$ÅÅEEnnnnnnf³•¿êq‘Û7«ã±Šp8l6›­Ri4Fca¡D¢PDGGGGEåææääääç·lÙ´ixø›7‰‰©©Û·oß¾cÇĉ'~ûmM¯E°"w%ˆÄò¹/F£Á Ñ€|â`Qì éÇĉ_=z4Š: ø=ú´¶«-éêλwïÝÛ±cÇŽ]»ÜÝÝÝÝÜvíúóÏmÛ.\¸páÒ¥õë7lؼy÷î]»¶oÿ<£ ÈYè­Õ/­S§N:t·gddddf®\¹zõ´jÕ²e‹'Ož:uæ ™L&“É`$/--))-]±bùòeËBBªs] VzÖ¬™3§O¯Ì’œœœœÜÜß~[¶lɰ7))))9yݺõë7mª¹%U÷÷Š{%’’’ÒR C:¼ý¤æW8’Á`0˜LF­V«Åb‘H Ðj5µ¼òß‚Ð@ .ÿ÷èÈåòx ×$ˆ·ú»¨72™L¦RA¤³Ãa³÷¬ÖòÌËd2¢eÁñ 2È`;@ P(R©\®Ó)5©¸5_´hÑ¢… Ð2î]¾|ùòÕ«OŸ>yòø±TZ\\P@£‘Éå’.ˆƒ±Ït:•J¡V+",?Íðà÷öíÛ·‰‰$àphµj5XüÉñu ] ð ð…ÍfµZ,ÁÁ!!ÁÁW¯^¿~ó¦Õjµ¶n]ý…°@”¨ÍfµšÍÕ9Þß? ÀßÿÈ‘6nÌÉÉË+.Öh´Z£ˆDRî eüø±c‡¯ ðx áãpx<Š~\ ‚º;_iå/ªöJ‹‹ëÙ³W/Ð/|}³³srD"‘H(IQ¢¢"##"Ö¯_¿~ÃÎ…Íæp¸\ a€6`êqß¾ŽY3:_iÕͨT0ƒËe³0 {÷’’²2…Äñ¹»»¹‰Å$™L£„B`ËræääåAôWWWWw÷šŒi`bùÎ{÷ž81lØÈ‘ß|!‘T¡P( I÷àÁƒçÏ;V«JÕ¦M‹ÁÁ`‰,Ð7«oÉÇz¬"|>Ÿ_yݼyÛ¶½{Ëå2YII—.;wîüâÅ‹/^xz²Ù@Ö¼~ý΄„­[·oßµ«eË-š6ucbbbš4ùس[,‹ÍÆçs¹D"Šâñï²Z•”\»våÊåËÞÞÞÞ®®ƒÉd±0™x<І„ûûƒÙ9 åÔ§µ]õû‚3 ÆÿàÁC‡þú+3333+kÉ’Å‹.}ZµjÕªE‹=ûǺsçŸnÛ^é]»výú¹¹¹¹yyÇ6dJk÷¼ ! ¸òÁ¢‹åK £(Š‚½µµÀ&·—-ûõ×Å‹ëÚŸu ó èׯgϨ¨ˆˆ°°ºX„,J¼e˦Më׃t1`OÐ^))©©©©{÷îÙóçŸuý¢ÂÙ’+W®^½vm÷î½{÷ï/ð­V‹Åj­-Kªîïbð8==##3S¯W«%™L.W(Êà 0Ìl>thÿþ?ÿ”Je2¹üöí;wîßïׯOŸ¸¸Õ«W­úý÷wËh¿[d@ ùçñ‰7â •ZžÑb1u:ÉäóA„ ȧ d*•FãpˆD£\¾A«Õd"“©TC£Ñé,–ÚJM$-`x4hР»víÚµsg‘vÇŽ­[·lQ*e²ÒR‡s8Èd ÄÈáñv;‚É5±HfJ¥B!“Q(d2‘h2™LF#F£‰DåQáv»Õê¼–:ˆ¹c0 :]«U«Õj0A¤zÖD"™L&™¯:ÇÓh4…Ò®]›6M›6n¬Ñ¨Tv;†‘H|>ŸÏf£(† ƒ^o6ƒ$“)£®[°"¹¹yyyy›6mÚ´uëo¿-[öë¯<|øàAppppppbâ›7¯_‹D"ˆ§.çĉ'Ny*AlÔÑ£G?_‘¹k x´^½zÍšuë€% 6ÜÙ’ØØV­bc¿bT¯\¹zõêU牾aa¡¡ ÖÄ’/^¾|õªqã&Mbb€%/^¼|ùò%X¼XRÑ35çc¯4D€L¶€EÕ@ b4zyyz†‡k4Fz±Pøq r~,`4/C€Ø]¾¸ê»EÏ,³Y¯Çáðx"±|‘=ÁáÀ´}Oô‡Ã‰jÒ#@j À@OÏ Ö®]±¢}ûNââ||||¼½Á’g‚ G£FED\¿~íÚ•+å1ˇÃú&x W׉_Ê}H¡P(‹Ùl6ðù\.“ DüãÇÙ»×nGiìØñã'N4™ŒF£qåÊU«V¬<8>~àÀO;;h;ðü±X<ž»;ŸÏåêtb±H$²Ù 5‡Ãå’Hd2•ZžªÜcLæ§yìcû‚Á`0 ‹-^¼t)ÜþùçŸgÍb2™L&³êï0`@¿~ —ny6ÛèèÈHð òy’‡€Ù$` Ä .^¼ti÷î={öïïÕ«gÏ=@Îèšäh‹Ξ=gμy nl3!@lÙ26¶];ÐRàeŒ¯¯ÏÁƒìÙóiçþ‹ëÑ£{÷ºöáçÔ("""¢Q£º; ÛçÏŸ?ÿçŸ3332²²Àö-Z´hÖìóŒ?Ζ€%=96›ÃÛƒ‚jKÿØþ¢õoݺ}ûÁwwOOA‡¤Ú ðx.,,<<",Æ –ªæñ‘H*-+“Jäãf¥@ @ _Ÿx;" Ágä6› *•NçpP”Ba2 ĈÃj5›õz<žH$“AþhµZ£Ñéjë<ˆ:GˆPœbœ›ÛâÅK–dggggg?}úäÉ“'7o^½z鑈Ç#ˆP(×Lê²X,‹,Ãá… †Á ×ët<ƒ!Z,f³Áê^ž Ãìv°…H$p8ƒÁh4Þ-ÐW=@´2ˆI¯~ éÈ.`a Áàp@²”Ïß‚‰„B¡0>>>¾ÿéÓg̘1#4´aÆ ©TJíÙ³gÏž=+Ê. …^¯×ëõ`§ì윜Ü\>_ àó?ÍYÒÙ±X,vqñôôôtw–€]ço•–––––¾xñâÅ«W΂&ˆ®‰%À3Ζ€lÅΖԅ õ±WZe¼}ûöíÛ·7oÞ¾}ïžXÌãñx` 8ðʼ6èÝ»wïž=k×þŠ€¾–[ÞÍØÙfÁ""/A°Z­Vƒ¤ËË`Êdr¹VëîîåX“,iÑ¢iÓˆWW±˜Ç3™0 ôUI&“J¥Ò“'Ož …"‘‹ X¤ LmöóóóóõÂzÕgg2Y,ÇjµX,–n V$444´aC^£aà 4Ë|”ýúõíÛ»wÅo-X0þÏ?ƒÏÛ¶mßþçŸß|óõ×ãÇ×ÄðÄýKŠ‹‹‹% pK*¶˜Ö½|ùï¿ÿúkmùX<³té’%‹Kúë¯#G@4eu®™Oãc¯´Ê9‚5­V«Å0£Q&#ˆDN«Õjåò=zö4¨.ì¯è f³Å‚a ÆY§ÓëÍf>_$âpèt‹B±Û1Ìáˬ‚3•J¥âpD"Š‚8÷¢¢²²Nºtqs«I–P(T*vûöÝ»)$’^O$$Ò”)_=h^o01™4W>ƒAÐ7AVèºë›Î€ÄS¦Lž~üäÉ“'³gÏœ9sæâÅK–,X ðù|~M,Ãã 2¬FÀã!ˆN7cÆ?N˜–ÖiŽ€UT*ƒ!Y­Fci)‘H"Q(5ñXuúðM4(>¾æ>¿P½zõìYß»`´iÞ¼yó¦Mk^ÃÃÃÃÃÂ~ûí÷ßW®<þüù‹¥R™L&Ç€vüöÛo¾™0aöìY³¦O¯Nü8Rsªîï•¥ÈÐë £ÌUÙ±A°˜ë&—Ëå2ø&Èû^ç½©ÍæòM` @ È?•Ožèp ¨ÕZ¾j¼ÙL HtºJ¥R©Tz½N§ÑØí‘(‘H$……æp¼ySH¥ee%%ƒÑh6¿zõæMF†Z­Vk4 ÷ó»D<ØÞ½{õúPDmuYP›7oÞ¼Y3 dK$ Xv·@¬ÔjµZ­öõë7o’“/_¾zõÆ »Ýf³Û9.—ËùX%‰¤¤$((((0°:góA^å_ ä!ýùç9sfÎ2xudÖ±c¿újô躰ÄÓÓÓÓÓ³¸¸¸¸¸¸îߪq¶DSÖµ%¥UE›6­[ÇÆfd¤¤¼xa6›É”Ÿ/‘ää|ÎÅÍ@_Ë ¥Òf³Û=<¼¼¼½}|P'“Åb¡Ï×ht:ƒA­V©”JBA&“ËU*­V«Õé £ÑdJJJIÉÍMOOOOO àÓz°ÄjµÙ<}rssrrsÁ^@(üýýüüü€¸_ßöBþ+TÝß+“‡¥R©T&+,,,¼q,{[VVVVRÂf³X,ÖÙ³§O;æ×€5@ò¢}ûöìÙ±C¯×ë °<8”Ÿ!@ ÿ\>Zâi @Œð¢E¿þºyó»ä‡ÇƒåëÈdYdâ£ÑètH$Œ°°¦M€Èfóxnn ÷qý:,C§GF†‡š ć: ÀßÔÑöÿ±Û÷L&³¹üXŠ LÃK3‚Ò‚ƒƒ‚A¬kuÎr€þ[[ÐyZ4ˆ)®~Š0Ù¿.,µ®þK‚ºà]T:ÃápêrñÃw¨=iD2>~üìÙË—:F£ÕÆÇZ½Åk ÐŽ9vìÌ™K—®\¹w$åp8PAÀP 9ßi4*•Je³96;2²qãØX – …bqvvãÆÑÑQQŸÖ#@ßüóÏ={Ž–”÷MŽ¢( ú&‹Åf³ÙÀÐ7ÝÜ<=4–€¾YKê»×¼y³fM›¶hѼymä‡ýw{ì¿ <====<À ˜ýû÷ï?x\E`u°·¾-…ü×ãøe|—¸¬|þ oßÞ½»uG‚¬Ð:V«×—ÏÉ RÁ< ñÎÎ/óÀ"‘@w2ïKÐ d¡¶^ C @ uªTÊå%%õm@ òOÂjµZ­V¹\./--.ÎÏÏ̉ªêú¼àeŒO@@h(•J¥2v»ÍV³ÔX@ HÝñÙ&¹C @ ÿÀ,+¡P(tsÃ0›ÍjU©”J©,§ –E­­sÅ«m68Íd2Y,‹Ã‹ÐÖ·' @ ª€Ð@ H “):=1ñåË ½^«µÙl6«µ¶ÊÇã "‘N§Ó _ßÀÀ°0°Œ4\œ@ òåó4¸i&‘Èd2‡ÃáʳÜB HmòcêtRYæ„„ÇoÞ¬o«!@ @þ»4iÒ¼y‡5)EKÎM†ap1R (F§³Xƒ^¯ÑÀ¸-@³f±±]»2L&‡ƒ¢(Z{S¶!@ @j‚J¥P”–Ö¤‘H$R( ¯\}Wüû+y,‹Åh¬o‹ê“Nzô:Ôn·Û­V»Ýn·ÙêÛ"@ @ Ú„€Ç> ÿYYii‰‰:N§Réõ:F#»¸xyq¹HÄãñùbqõK“Ë¥R‰D¥R(d²ÒÒ’’ü|:Á`± ƒÃñ÷nÔ¨â·Àȃ K}{£¾Ò3XHÊy;˜ƒ"•––jµBQVVRRXH£ÑéL&ƒÁbq8~~ápµ¹¼@ @ ÿeœŸÇ%’¢¢œ°¶xwssw÷õÄb}¯»’?7X,6›Ã©Ii¨Ñh0hµõQ›M©|òäðá5kž?oÕjþüI“|}I¤ú°ù÷–BÊÎÎÈxû–ËåóÅbƒÉäri4:Á(+“H Š‹ ³³©TN÷÷ ÇãñøÊ3§§§¤¼|i2™LF£««»»Häââéi0èõ:Èõ¬T*¥¥ÞÞ¾¾!!‘H"9—i2z}eåÿ[s@7mÚ²e—. •J¥VLyôòå³gwï2™,‡ÃáðxBá;¯jµ:V«Ræåed5h 2øWÝR@>'à÷ýËy€„@ R5z½N§V§§§¤¼~ žÇ=<¼½@ žÇ rsÓÓÁ‘ày¤­¯’?¯7¼¼üý+;þèÑ3g®\4¨OŸ®]+;†nŽ[º´OŸE‹öï/+kÓfÊ”¹s7ož:µgO‹%/oÛ¶ž=ûô9yòêÕW¯®\Á0½>-íܹ}ûvï~ü˜DêØñ‡FŽìÜY$úXñ‡c³cbzöìÑãɹÜn‡¹§!ºHω‰/_>|db±ØÕÕËËù±ØÍÍËK$ruõôŸV«Õj4L&“ÉbLñË9‹ƒƒCC›4q>†Ng0˜Lð×l6›Æ·o_¿~òÄß?88"‚Åb±ØìúöJ}Âd²Ù\®Ñh0ètÎÛ%’ââ¼¼€€ààðp =;ïqåà/‘H"‘É))oß&$b±§§§gU?@>:^¯×£(‚ (N§Óhàu¢¾m„@ ò¿¤¦&%=Ô AtteÏã!!aaMš(ryi)x ˆhÙ’D"‘*×Dë®äÏé ½^«U©* ¤çê”ùÉ7ú÷Ÿ5kûv*õõëž=׬1™ív«µ´ôîÝÕ«ÓÒ†mÕJ§+(0›m677 Å×·E ¥2.®K—öíQAl6£±¸øæÍ¥K÷ïOIáó­Öüü´4­6<|óæ_~éÐáôé+~ùe×®L¦ $551±S§C‡Núúk› Ãìv›Ín7òóÿüs̘Q£„ ._=:$ÏÊ:~|åÊ+WJKi´üüçÏ““Y¬‰,xôhÖ¬3 ˜9sÀîÅ‹W¯¸y³´tРE‹V­š6-6–ÇËÉ9yrÙ²?þ8^­öñ‰Œ‹³²p¸NV¯ž4)<œÁÀádÆ™3çÎ5<<ø|•êñã;w¦NݳçÌ77 A,–‹7n<}:#C«MKKIÁáºu[¸pþü¸8W×Ï@ KJÊ›7OŸFE5iÒ¶-xì±Û­V«õîÝ{÷îÜ©x|›6­[·mûúõóçwï b±——@ ¹¸€[¥¤Ü(,ÌÎŽŽ½}ûÖ­7œ¿ >ƒòÁ0äÍ›/îÝ iÔ¨iÓÿrÄ.È‚av{ù‹·¤¤7o=òõ  oív›Íj­¬6›Íæñ7nÖ¬C¥R./+Ój5µšN§ÓŒú®@ ÿEL&“ÉlÞ»wÏž½{Û¶m×®C‡ëׯ_¿v-,,4´a쬬¬œÇãpÄb‘H$€Ng0ètOO•j· %%YY¯_'&EEuéÒ¥‹HD&ãpf6K¥—/_½úæ‡G£FxzŠD4ZU÷X6›ÁPVF Ðh"‘Ãa6K$Ý¿_\Ü¢EÇŽÛíCY™NG$ …‚Èdwî\»öú5›éååâR=X­2ÙÝ»×®½zÈdfg›Í..Ž»;Ÿ¯TÊåÒ´i@ƒñ_½„@ Hýãü<ž¯Áöê?¿|ùôé;~~AAááÎÏãKÎÌÌÌÌÈ(--+“J«¶ªê’?§7œmöðpwwss>ÞYz±Ï·8Ox·ü “ѧX¬Ríßÿà†|õ*™Ü·ïäɃ!ȳg2™ÕÚ»·P¨Ó¥§_¹‚ Í›wê„a‡Õ*‘œ<9mÚ’%óç:t〠FcròÊ•jµxüС}úLš4|øáçNMŸöãÓ§·k%&•"†™Í'O®]›‘Ñ»÷Ÿþþ{p0•j³•”œ>=kÖ$&?~ÿþáÃVkqñ… Ë–edÐhL¦J•–vüxffÆGΞß¶-ޫרQ?ÿ¼vm—.—.ýò˼yK—^»µk×Ù³Ó§‡‡Óé:´lùÍ7©©£FmÛÖ¸1…RVööm—.?ü°ys‡<žÝÞ·¯PxæŒLf± Èã•”:ôã[·þðÃáçO[­EEý5pàˆ¿üâptï¾eK]7?Rs„B s80 AŽ÷÷¶jÕªUl,øüàÁƒ÷ïÛíf· …..žž:V«T²ÙŸÃ‘É(ªR)•ee Lp¤si` (ÇyË;K<=­V‹Åj¥Õ·oê s8ìv©T*-.¦Ói4ÎãA?;;;;+«²ïúùùù•Ç;³Ù\®@ŸŸ››žN$’HD"òkC ù|Hd2ФI“&ÑÑ·oß¾}ë–L&“I¥x<¢±±­[·nm4Fãþýû÷ïÝÛ¾}ûö;¾xñüyB¬Y³fMŸN&“Éÿå„ÑÉ"‘››PH¡$'—–âp‹Á`4âñ ™L"ñxD"ÑÉ8œÍf6›L…B£‘ɲÑá0™Š‹_¿NO‹›6åñˆDI$jÞ¼m[&Ób±ÛõúÒÒׯÓÓÍæÐP:Å¢PŽò¨mp‡âp¼ïW9àÎEQ”JõõŠ ÉÉyúôþý»w““Û·oß>&F¥ÒéH$‡NÇãÿÛw…©œŸÇ?-+•J¥Òh õ¨óóxMJÇWVò—æªÓn8CxW(ÇåÆÄtîÌå®Ysîœ^Ÿ—WXh±tì8~¼Häç7pà‘#*•=zÄÆ_¹¢×wìØ´)†a˜Ý®P<{vôhN‡_^™ìíݽ{TTv¶Á€a¡¡(J  (Ïå6xpÿþåhµf±”–Þ¹säŠNž¼`Á€~~å78(J$R(fsZÚÙ³OŸææ¶mÙµëìÙB!Š~õ‘èâÒ¥K·nþþŠÃaÁÁýûáéyàÀ¡CÏŸK¥fóÎ'NìÛG¡¸»S©f2•– 6›^oµÚíf³)•ÏŸ÷ìÖ¹3hb<ÞÍmèP`ÅRZúôé©SYYjµR¹nÝúõ‡Á-—k4ÅÅ0a䟕J£1 ¯‚-=zôèø Äâ-Z´hÑlG‚ÜÐ¥¥I~>H¸A$‰X´P(‹=<À‘à» LgéÙ¹4ð”é\Z}û¦>/ÿ@¦l‹Ãáó}åãããããSÙw€lÚ6›Õj³áñ0ã$@ õCPP``@€Ãáp8ƒ^TXXPPX˜––žžíêêêêâÒ¾}Û¶mÚˆÅb±XL§ÓétºÍfµZ,àáòC¥–K¹(J&™E‡_£Q«•JççñO{ÒÏÍÍÍÍÍÇWVòçô°XUñøŠÒóßä€Fw1‘$’ÏС‹7n|èо}»w÷ïÿÝw¿ýÆåâñD"‡“™¹pá·ß;6v,îâòÓO¿ÿ^þ]‡Ãù–áýÛ°¿üåYÏÞ?&?ÿÒ¥ýûïÜ9v,;ûÅ ƒá¯¿öï5ÊÇA(” ®_üØËËjMM=sfÞ¼qã–.}ø°qãFÊo·@i‚ (‡Ã‰tºXL£áp?üЯߔ)]»<ø×_C‡zxNù4/‡ìVƒA*µZm6A"ì±Z1 A@Ix<ŠÒhß}7uêäÉ`ïÔ©?ü PT¬òe‚a6›Õj·[­ ØÒ´i“&;ö‚íàóÿN9y×Ë>\fe8ÊÄã 0hþ·{x4U(d²ÒR//oï  gŸUö]OO÷•J¹¼¤„Ï ÝÝI$©|4ƒ@ ò91F“ÉÃÃÓÓ×÷éÓ§OŸ>õööööòòððòòó+(ÈÏÏÏ?þüùsçz÷îÓ§o_‰D"‘H ƒÁh¤R©T*õC¥¾»grü*ƒÇ3™®®®®Ii©Íæééëëáàï¯R%&k4nn®®4Zf¦Réííî2T‹D–’"•Òh®®~~`/‹%¹ºâpÿ{–û÷ïÝËÈ Ñ\\µÙˆÄüügÏž?ÇáBC…¢¢ää²²ˆˆvíš6e³„Å’ÉJJ’’(OÏðð˜Ø 2bãp@@w8`ô3@ê‡ÊžÇ«—Ëå …yyÙÙ))ÎÏã••\³€c*+ùó{è¾ûø*hçtºŸ_ß¾ÞÞ—/4i"•WE1ìéÓÏsskÛÖÕµ|‚Ïå6n}šðü9ØÛ¸qttd¤óÙ+–é\„B¡RétƒÁ`Ðë1'ÜÝÝÜ\]+û‹U€L¦Pèt˜|@ úÂn·Ûíö‹/]º|¹°°°°°°´´´´¤„F£Ñh4¹L§3 †@ ðù>>>>ÞÞJ¾á Š¢(ÿ¿a? 3Me\Åá„òWþ‚¢åÒuÍÄ^ CQ"‘͉Äb77±¸uë–-ƒ‚X,±Ù0 A0ŒBÁã?ŸU¾#¸„ 2B ¤¾©ìy¼ú ƒNWñy¼bÉ`{Õ¥9SYÉõåš—_¡8‹Õ°a11..Î7Bññ¾¾TêÊ•¾¾]»zxY@$ººöë·fÍœ9K—þñÇÖ­ÕZP’¢Ñ ¼i“Õ*•Þ¼yêÔ™3……:\~õjn®Ñع³››NwëÖéÓçÏ?y¢V7iÒ¶í7ßìØ±y3öóÏ?ÿ|èPrò¼yݺ……§§¯\¹iÓ–-M›ªT¹¹:ÝÀË–MŸ~çΔ)gϾx±jÕ/¿,[ÖªUPT*‘´k÷ûï+Vté"âñ2}z¯^TêÏ?9jÔË—:4o@ dd¬XñÛoûöñùóçóìÙ¤IC†ŒéååëëâÂç¯ZµjÕ’%‚ îî®^=sfÿþÇOœèë+óù¡¡ƒýôSyÖ\äKG&++“HÀÛ3p«ÿâÅ«WoÞ8þþ·¤Ò’‘ÈÅÅË‹@ Ê%c‡Ë óó³²x<O$rþH+Jg[À#(¤ï¨o¯|)Ðh4“©×ëõj5…RYÜÓßC¥R©ï¿*€@ ò9 ,·lÙ²eóæ=|øøqZZZZjª··‡ÇÇ?}ª×ëtz}Y™TZZzáÂ… .äææææähµZ­VË`0^b§Ñ<=™L»Ýf{_‚Æ0»Á I$<ºåû+w«Ž`r8»ýÃǰX8œÉTV¦Õb˜‡‡XL§Ûl%%:“)¹¸ðù©©……åa?V«Næ•B òeRóçqN§S«+>WVru}€c*+ùó{C")))+«¸áÇ‚‚‰Ûu]º`ĈV­zõjÕêàÁ'&Nôñ©*jùïb2™L&SFFjêË—`µV¡P$úÐÀdb©´¬¬¸˜Ï ÝÜ &“Ū¬Ì²2‰$/O  ]]+‹b)++--*Òh4•Ê××ß¿aÃÊʬHBÂãÇ7oÖ·ÿjŸNzô:T¥R(JK<Ÿ’òöíÓ§..nn^^L&“ÉáT¿4ŠFc08cUßõƒ@ ä¿Î«WoÞ¤¤€»£»wïÞ½sgÈ!C†•Ëår¹üʕ˗/]êÙ³W¯Þ½/\8þܹo¿ýæ›ñã«3µV¯×hT*› ‡#‰DE-› Ah4ƒJ%‘P„ÈåƒÁb±XT*‘¨P¼¿—ÉT*ƒN§Ñ¨T"ÃL&ƒE)‡LFQƒA­V**•Í&“I£ÑhÌfO(äóÄjÕëÕjÎbÁã‰D"'‘èt ,X-—+•@$’H‚Øl(J&³XT*‰„ÃÁ¨g|)8?‡‡—•ÉdJeu¾+ \nffzzb¢¿X˜óóxÝ•\_Þ PÔn—Ëe2‰Äß?((<ÜÅÅÍÍÛ»b9&“ɤ׃„R)“¹¸¸»{{ÿC'k[,R)ˆ§¾{÷øñ'üüzõêÝ»k×à`:½¾mƒ@¾,ˆD"‘Hôññ÷ ---.ÎË“Éd²’*•J¥ÓI$2™BQ«U*¹\¥R*e2Ng2AªªË´X,‹%++339™Ãárù|6›Ãáó-³¬òn0Ølv»Í¤çªËüo‚Ãáp(êçšžžšúúuppƒï§1© °œcQQAANN£FQQåËHB ©_ ƒÁ`fñx<‡+.....à> ¼øqÓÕ/™Ng±ÞQ]ñT ‰‚ª·ˆD\.“ùîÿ †s0Æá8O$ Ê»ãI$ƒËåñ>d!—Ëçx@ _ÎÏãV«Õj±<›]ïZ,‹ÙìââîîçG¡P(Îy"ê²äúòFVVFFRR³f­ZuëBÖhT*¹ü]nèòdx<O ðù‹KVVZÚ›7 ‹ÅåþChI(¼}ûõë‡ëÛäK<Ø0 “I$z{J$……ÙÙeeMa!Š9>_$‹]\¼½ÁZ«8\Uë«‚2=<¼½5F©Ôë5¥2++--1‘L‹èÐhL¦»»—W` …B&“Éõí‰/‰L¦R…B‘ÈÝ]£Q« ƒÉ¬üÇI«ÕhTªÒR‰¤ @$ruõ𨺽 |,‹Åj}úôÉ“G@´^¯×ëõ·oß¾}ã†Ùí¦R©T*ÕÉ“'O;&“I¥28†D"‘>f@ šžÇß¾}õêñcWWww/¯ê?7hШQÓ¦•=×]ÉŸßþþÁÁáá`1a³Ùd2*+„ÊY­Z­Jåêêîîí]R"‘äæþƒSp@ 7ÿ…÷êõz½N§V«T …Éd0èt*•JUVF&“É nŠÁ‹ÝÜ||À»P(=C @ R@ô.˜É žÇU*¹¼¤Äd2› ð<Îã ®®`æwõŸÇë®äÏé† 5ЉÑëµZ• D=ƒc*F@;ÞÃìöW¯ž?¿ÿ @ ÿNèt:Á “Éd Ån·Û1L(tqñôÓxÁâd2™ ³ÞC @ RÁ×ùyœËåñ„B›Íf³ÙÀó8H¢> %NoÔ¼Ì/¢bq†ðÿA(7C @ òy œŸÈÿ%×µ7j¡œú®ü×™žJJŠ‹óòÀ‚õmQM!‰D ,héêêîîãSu®+@ @ ÿV  @ õ†DRT”›«PÈd¥¥þþ!!11®®ÞÞõmWM1›M&£Q©T(JK33ÓÒÞ¼ ‹ˆhÖ¬¾í‚@ @ ò¹4Ô …\^ZÚ¬YëÖÝ»#ˆÃ ƒ^¯ÕÖ·]5äªD"ww¡P,öð())*ÊÉ¡Ó  ã÷ jmµZ­K}ÛþODûû5jTu¼yFFjêë×ÿŸ;ÇÚ†„DDTv$¸Þ²³32Þ¾ý§×º¢ªÓî@ R_@@ê&Mš7ïÜÙjµX, Ã0»½¾-ªìv»Ýfq8<ÏÌLOOLŒˆˆŽnÕJ«Õh”J»ÝjµZE"±ØÝ½¾íý÷`µZ,fó›7/^ujóæ•+½¼&Nܽ»qc»ýñã%KæÍ{òdá§M«o¤<͈ÃÄ3HíC&S(tºL&“•–‚-Àç<'ý[=ÿ߬uÕ€@ @ /Jh0q5//''=ÝÕÕÓ30ÐÛ;,¬ukÅã‰Äú6ùïâpØíV+†Y­F£D"‘X „éʾ¥Ói4ju^^nnZZÓ¦­Zuíj³Y­Vkm¥}iH|òäþýË—]]=<üüø|>_(¬oŸ}é8Ç,–œœM›^¾&OnÖŒÉ[1lôè³ge²]»z÷‰ðøwÇ£(Þ AÏž6iòò¥Ãáp (›Ý¬Ù‚64kV~›­´ôøñ±c'O8pß¾ãÇ?}Á‹LçZÛí:]zzçÎ={þüs³fcÆLš4yò!íÛ‹Å2Ù‘#£Fùr·n;vìØ1r$Ÿ_Xxýú‰ÇoÛvèPJʶmgÏîÚ%|Ú/“VûêÕĉC‡®]»eËùó{ö|J /_Nœ8tèºuM›nÙ²cÇW_yzÖ÷¯$xýãu|ú©³çÍæ¢¢«WãâFŒØ±#&fàÀÞ½•ª¨ˆÍîÒå§Ÿ ¦Óqu<[êC>$ôúŒŒ‹y¼®]›7çó óʼ:µ¶ÛµÚôô7Ξ=yrÓ¦íÛ/_>üàÁk× òð(oµ'6ož>}ûö£G33ƒƒ‡ ›4iýú¯¿îÒ¥ªs;Ëåv»³'öì9fŒóUñÃ#Gþþû×_oß>{vƒTjÕõq8€èôÀÀ¸¸Okw@ ù¨ô¡L\åñD""‘L¦R¡ô | €žˆÇS(,™ÌḺšLF£ÁPõ·JJ$’¼<ÿ  ðp‹Åd2Ab ~Öü/†Ùl6›Õj6›L^^>>AAJ¥LVRRßÞúçPÙäúÿÝëpØík×véÂãáñ Á…ÁšúóÏ¿ÿ¾~ý¦MëÖýúëìôèó,€IDATÙ³g?Ž 6›Bñøñ¾}+VÌžýý÷óç#ˆÅRTtêÔúõË—¯]ûüy^ÞªU۷߸!•Z­åå¯^ýÝwS§ÎŸ¿jÕ† ëÖ-[6sæÛ·:ÝŽ Kqñ©SK–L˜pêÔ«W§N͜٭[Ӧݻ¯^™Y•ýëò¡Zãñ F``d$ƒÇÓhÍ›7oîáA¡ ˆRùúõ½{ …NWZzõêãÇR)G£ùøtèЩSp°»{óæ“' Dâ§§/@Ñš&@(ð[0¬f¥Õöß¿»ÒÈdw÷Î:ÝÍ->~ôè#Æûæ›)S22öï_½úúu©ôs$‡©èC»]&»ukÓ¦‹SS ð’¬6jÇ3™]ºôîÝ­›››íî¾mÛüù‡ge™Låm׿ÿðáññÞÞ\®—×°aC†têôwg´Ûe²ªì,/ù?öïŸ5«A*õïkñεÓî@ RTO&®r8›†4œF|iàpx<…b³JeÕGêõ:FÃåòxBaÝ%Ò1† ‹Ååæäde%'×·‡þ)TO,Ä0½>5õða+$dıەÊû÷çÎ:õ—_Ö¬¹zDÀët±±MRÏå6k׸ñªU6¬X DââÅýú?hÐÑ£GŽ$%MŸ>aB‡åç²X$’—/;t˜;wÏž>}ÄbAŒÆöíþùÕ«sç~ý5:º_¿)SFŠÿãääÞ½GŽœ>½C‡èh±¸¶D¯^½<=­Ö-[îÞ-+³XBB¼½32ž=óð7®}{™lûöK—^¾Døx±X«ÍÈxöŒÅêÚµMð]«U&{ôhçÎuë®^ÅãE" %3S¯þê«©S{÷ÎÉùóÏyóþúëÙ3‹eèÐ9sºvÝ¿ÿþý  ={†w~‹¥ ààÁï¿ÿé§3g(”V­¾ÿ>2R«Ý¼ùܹ’’¸¸‰»u{ùòðáÇU*7·Þ½§OŸ;wâĆ +¶šÉ”}ùò®]Û¶]»¦Õ²Ùv{^žRùÝw¿ü2b„‹Ë„ ÇÿòËС?ýÔ»·ZýêÕÛ·ýuîÜÛ·ÍšM™²dÉœ9ݺ‰Å"‘ܾ½}ûÎoÞàñîîL¦Ñèé7eJ§N"Q]¿FQ2™ËåpH¤òß~«µj{³yþüU«ðó0¬°0113³cǨ(këÖ³g ;v\³fݺ#˜Ì7oŽݱãàÁ£G?&‘NÚ»wèPç³_º´sçöíÛ·¿ySXèâràÀ®]½z͘ñí·]ýú9B -ZÈåý5wîÎÑÑ;wNšÔ°!ŽÃ‘É ‰„áhåuoÛÖá¸~}÷î;>”Ëy<£ÑË+"bРÁƒ[´xÿŒv»Zýë¯K–ìÚդɤIS§ví*99çÏoذkWJ ü¦VGDtì”pø0ð@AÁÁƒ2kÏ@ òù¨4º|â*‡Çc˜BqõjRÒßÅXVæÉ“o¾iÛ¶[·]»rsÿn¢¨Ý.“]¼˜“óeež®Úþ/Óæ/‡úðÏÇ]uÿP‡Ãá v•z4ÈÎ "–ëî/‘H$‰pxõ©*¾Üy/hgl1›óóþõׇ…B"ñÝ·ˆD.×Ë |F"‘F#q¸÷ÏRñ¼fsQÑéÓ'¶oÒz€í póæ$%ét‡ÃÇmÛŽ3jÔˆÆ صkH^(ùÕúiÕjΜ~ýPôÌ™+nÞ”Jíök×:uúæ›þýgÍš;·E ™lûv»Ý`ÈÈØ¹ó񴯯©S›4a±l6™ìúõo¾3fï^OÏ©SçÍ?~Ê”™3.ìÛ73söìQ£V¯îÖmìØAƒh4¥R*-( ÓÛ´9xð믽¼@ì4°nË–+W0¬ÿ9rdõêï¾kÑ¢_¿ž= ƒA«Õëýý;w^¾|Û¶ýûÏ[·®M›‡ùå§Ÿœë÷®&8>`ÀÂ…+WΜٳg›6\nbâÑ£[·¦¦šLl6‹¥×+•¥¥..­Z þõ×S§ž:µiS«VII6üöÛ›7Z­Ã1~üر[·–•q8,g·£èÍ›+Vüüó‰EEV«£TÇçÎÇ‚#õúÜÜ«WýýüqÖ¬V­8GTmͦP<|˜œ¬V“HnnQQ=z|ÿýŠË–µhÑ·o\f4v;ð ›Ý¸ñ€ƒ7nL"™ÍfsEvë6thnn4‡Ó¼ùðá_}Åã•'Ѩ­Z—ŸqÉ’Ó§?_½ºW¯Þ½/~¿÷U]÷²2X ìüöÛaÚ7/·Öùì8‹UPðúuQ‘É|áp¬\¹qã¥KÎ~›<9<Üǧ{÷wx¿ÌOñ@ Ô/ÕÊëˆÇ …qq¡¡4Zíœôcb©1L£yýúÄ 7·Ê³Û~iüm®[ìv“éÝÿêÇ?0‚ß™úšü©Œêyg0‚ƒ‡Åá,«E)±˜LÆ0æ'ücXÕ‰<*nÁã©T7·ÒRFàÝv‹…Lvw§Ñ@®éº½ˆD¡°Y³Æ)‰äüù´4™¬U«   §Ñ||úö Ãã¥R‰äÙ3™¬iÓÐP.G 3KK ¡PD" ¥<_1@¥ …d²Ùü. Š¢(P1£1†i4/>y’“£ÓU|™ƒ¢(ŠÃ½Cðx:ÝÕ•NÇá>œ?Eq8‘Éž=Û»wãÆ;”J¡ÐÓ“Áx?_÷ûe‚ä:Î#•ٌù¸të6räèÑ&Œ7zôÙ³W®ìØ1x°›[]EÁ¢(G£y{ÇÆÞ»·{÷Ó§ Å»VmÏãÅÆFD(—//_>eʨQ=zÄÇÏœ x|Ù (Ö°á˜1óçõ•‹Ëóç‰Õúþu×K—.]:z´³ß¶m{üX©ü'ø @ @ªKµœöì™1ãíÛöí—.3ÆÛ›LF‡Ãhœ9sâÄ_~ñò ‹Õê/<øþûíÛOœ Ùl Ž{[¶>üì™Zýôé;Ipð×_oÚ4eŠ@à\þ£GÇÆž>M¡tê4`À?̘1thHŽ ‡J•œ|ò¤BѪUÇŽ¦6çäœ:µrå­[eeTjaáË—ÉÉLæ„ <{6oÞŒ½zýðÃÀzý«W/_;vçNiiŸ>óæ­^ýõ×-[òxGYÙÍ›þ¹|ùéÓjµ§gPB¡Tr8cÇΘ1lXHƒÃY­LåÞªh3Øj4fd¬\¹mÛÕ«B!‘¨Ñäå%&fföé³råÎQQ Ƈë5qâºu}úäå­_¿uë¥K ðvNשÓâÅãÆ¹»¿~½gÏÒ¥yy^^Í›ƒZ§¦¾~ý왟ߔ)ÇŽZƒäçÎ]¼÷ôd³õúŒŒ””iÓV¯ÞºL宬½† ãó¯^ݰáÔ)©tذyó† {þ|ß¾íÛŸ>MMEÑfͦOß²å—_zõ Ï[¾|ݺ;wP”ÁP©ÒÒt:6›Ã±Z gíÚ-[–,yß?íÚi4‰‰‡/^{vÍš‹‹Š¨TÐ#Š&M.\½úÛoÃÇ÷ìY½úÒ¥’’¢¢¤$àáùó§O‹ãóËÊ.^ܶmóæ„ÐFƒ·÷ Aß}×½»«kíN·‡Qr_•Ç#ˆ+¿Å®\Y¼xçNÿ™3{ôèÛ×Õõ÷ßU* s8ØlÎb)+{þüñc‡£[·I“Þ-}wÅ0³Ùy Çå6n|òä¥K2YÏž½{‹D עŀ^^ŠÃáphµgóÇÔºâuH&»¸têˆÃÍ{âÄ“' ._Þ³§Ã 4šŸ_¯^·o?|˜•Õ°aëÖññ‚ÃápØíd²HD¥"ˆÉTVâl Îf3¥R‹…L‹ß?×ûQ° 1…b2ݽûÇ œ8áëûÇññžž$Ò»o9G˜Úíz}I‰ÑˆÃ1™K¶ÙŠæÍ[¸ðìÙöí7mÚ¸±ys›íðáÍ›ßSÑ’ŠåÐh‡ZšªV›ÍÍš1™$†Y,*•Å‚Çs8гœ]ŸWÜïp&—¿z%“Y,;  ‚Tm‘h2I$óæmܸo߬YJezúåË›7/Y’žn0üo|8Ãl¶wmðáÖ©lKÍkaï·,‚H^^ƒ-\8nܤIÇŽåå•¿ˆ¨N[8ף⹪ª‘RÔ¿ÿ¼y7üÖ¥ËØ±Û¶µo¿}{÷îÕk5@ ùÒ©–ݤɀ¾y#—;oÅã-Ú¼yùr Ån—JOKKKÓë$2Òb¹|ù›oâãÿüsçΛ7GI“~ü±üJ§{ò”a³I¥×¯¶gÏýû#F¼£êpètÏŸ/Y²u+›½`A«V‚ v»\~óæŠ«V;Ö·ï† çÎ 4~¼§'…‚¢(:y²Á ÑètAA}ûN˜ÐµëàÁcÆŒuäȘ1ññ£GóùGŽœüàÁ–-‡ 2$)I&‹ŒµåÛ«¨õ€¹see<‡ãáa·#“éâB"?^XhµL¥Þ¸QY{óïÛwàÀ‚¥¥nn;/Z´m[ÏžVkNΆ Æ=c†ÍÓ·ïœ9+W¾x1xðѣǎuè “ýòËС?þh±üöÛéÓK–|È?x<‹Õ¨ÑðáË–mܨT¾yƒÃápfsaáåËW¯öî½bE\\JŠÙÌfûùiµ,Ö¤IÌ™3lØwßUÝ:4šRYRRXÈ`ôè±`Á™3}û"ˆVûwWÝĉcÇ;VZÚ¢Å7ß´n׳ç¨Q‘‘^^Bpð!ûöíß¿`Áøñ³fýþ{y9É‘#`úùàÁnnx<׸ñW_MžÜ£‘zÄôé7._Žaññ#GrôèÑ£ãÇ 8\¹‡QAF4hùrŸþý mtóæâÅ_íæÖ¨ÑÉ“C‡zxÔž ÄŸÚH 5åÉäã3qb³fÿ+÷víºxñ×_ƒÏ§N=zÊ 8ÜÝÜ»×ݽü11‡=|xáBùYŒ˜˜?¾~ýýó®®ûöõêål…rãÆ²eÑÑåå3™11“&1™•Ûü±õþß-4ZXØ´i#Gòù£G>ìêJ ÄÅ=lv“&?þ¸k×RéáÃǃk/tè°uëÎÊŸnܸtéÎ"…’‘¡Ó,]ºgOŸ>÷ï_¸°fD¢×+•Ÿ?éÒèÑãÇÇÆ>xpéÒ‰Ñh4nØpæÌÎjõñãË—Ú³§L¶ÿ_MŠ 6[ié¹s¿þº|¹ÃÉ`dg+•nnÓ¦íÝ»zõýû/þñ‡Db0¨T W¯Þ¹3f̘111ƵmK ,[6yò´iM||³f|¾Ã‘™¹|ùŠÛ·›Íz½RùäÉÅ‹W®ôïßµ«Tzñâóç …^_VvéÒ¥KnÞ¼mÛ!k×þúë×_Ž îî;;cÆÈ‘MšÔÄóï×j--}ôH¡ÐéJJΟ?{öæM*µW¯¶m»wg2>œ>}þüC‡–.]°`ð࿳Çn—ÉfÌX¾üÒ¥ \\H$ÆáˆŒìÑC  úé§aÃÜÝgÍúæ›#4š ôõEÎf+-=}úìÙk×Þ÷áèÑ‘‘½z…‡[­k×Μ¹xqŸ>û÷/YÂå~j¼qy­1L§ËȸråÈ‘C‡rrм¼û÷¥R‹%6V($‰D7·¸¸±ce²aÃfÎÔé\]Áwÿ®îŠ›Û_Íœ¹x±J5xðÀ£Gwëæéé\£–- hÜX"1Ôêׯ>ÌÊÒé ¹~ý·ßþ{÷ÖDÖ5|Jz¡„jhŠRDìØ±‹ˆ½÷º–ÕU×¶k[{ïk/¨XV]w׆±`A¤£tH„ôIòý1o>‚ˆ¢¢A=¿çÙ}ðææÌ;CHN3'9ÙĤArÞF^¼xâDss•J?çÎ=y2|xh¨¯ï§ÏÏ'AQ ;p`Íš?þÀqKKggOOWW2-¡Ñ”—gf–—k4tzå禘5±øÁƒ?þX¶¬oßcǺwg0*¬’JÓÓ£¢22ûöus#ÛpÜÒ²S§+6lÈËëÓgäÈÎÕjkëÀÀˆˆE‹Ö¯'·€ã[¡PX,GG Ç B.'­V.G‹Ïg2õ«Ç(&ÓÆ†FS*<Ë AjÒçÝÞ5fF"II‰‚Í®:‹5Ù¯!C¸ÜÛ·8zôõkr¶9œ·?‚î5Ép¯u:‚(, 3fÚ´  SÓÊ=Õꬬ¯·ç–¼`œìC¡X[wîüÓOaa/._>{ö‚ ff2Y—. ,^ìá¡/Þò®ùA¡Ñll:ujÛöÙ³²2±¸¼<%%0ÐÛ»sg ‹£GsrJJzôˆ‰))iÕª{w>ÿÌ™;?|tPÃ(²V®¡÷u+VlØ0}úæÍÛ·;¶råÈ‘›7§¤lÙr÷î„ dú­ò|èÏ.¹¼¤D«Õ_>_Xxûöž=ÿüƒaäo‡C¡<}jøajJÖã};¢R‰ãöö†Çhܸɓ§Mû¸ßKðmú1W7V—ÀÆqkëÐЃÿþ;4´r ³°8wnþ| ‹ª+°)KË-&LX²¤E‹wE ›=»e˰°Ê­-[öï?s&ù}Û¨Q«V>=j‚ HyyB‚P(|~¿üòóÏ#F8:¾ýUPXجY-[†…Íš¥ß/AÀÀiÓ¶l9¾âwxذ‡­xÞØ±•㌷n]ïÞú/ôæÌÙ¶­cÇ·gîSÏ™ªsN¡X[7o~åʵk•ošçéyà@TÔO?¶q8;V7ár}}׬™;××·êv]]Ã×/?uJÿ©^·nÁÁú9éÕ+"¢òvíº|ù¡C]»¾oü»×(Êf»»wí:zôªU]»Žý®>AAóæ;vëÖ¼y1Øìê÷üäÊ•cÇȯZõ¢¢þûïÌ™·[NŸ6l3æ·ßÖ­«näµ5`\5ª]•F#^»Æç2cƸq£G‡…µháêÊá¢(neE§k4¥¥o?¯â¶sÆbÙÚz{;9-\xüøÛ7¤“É22.^LI±·ïÕËÝLl“©íœ±ØËkøðÿþ»yóôé¹sß¼‰Œ\ºtõj²á‡3‚Ëss 35urâr©T&Ad2ò2m}…"?_­¦ÓíìÈtdMú¼Ë»ÇŒ¢4š…®ÕV\¼®©~êû÷kÁ‚9sŽ7œíª#¨ú‘Ôp¯1ŒÅrpHJ*)©|S82][³ãõ~Z­Z-Èd Ž7wî‚[·nÙ2iRÛ¶––úѾ{~H †ƒC—/?þâÅ“' zx˜™q¹ÎÎ÷îýûobbBBFF@@P ö©GçÃg9ÿ‹WmúûVq ÿ÷ûÿwïw]ÿ¿!ò».Œês*o×…QÁ^ýã©á è·?ÐนY³fûöuîÜÛÛÇÇÛÛÕÕÖ¶ Àß?"âCûåîþßcÆüöÛ°aúÙ¶°ÐéW¬øí·?ÿ\¼xúôúõ ÷ÚÔT¥ÊË3ÜkAÐм¼¡C;w8Aœœkk ‹•+×­[µ Çmlúö}ßñ:w.7·¼\(Œ=w.*jèЈ>ÿ¯¿Î»{W$*/ÏÍ-.V(ÊËKK ‰$:zòäÀÀfÍt:ÍÔÔÑÑß¿sçÉ“W®ìÛ÷åËwS›Ý¨ÑíÛK–ÌŸ¿iÓ_uè@¡ (‚P©GŽ,\˜ž~àÀåË}úP©5;:ähïÝ‹Š:}ÚÅ¥oß¾}qüöíu¶¶±±+V$'›˜øù5h`oO§³fÍ‚žž,Ö«W¢Vçä¬[·mÛöíä §¥‰DNN+W._Ža¢Ñ4k6dHÇŽ{öÌ»|ùºuäoy¤^¾d±$gxݺùó{ô˜7ÏÖÖߟœá±c;w¶·ßµëøññã×­ûå—=ÈcÔ¹óäÉ«WTÛ¿öï*Á!—¿|¹páÀk×6i²{÷®]}ú˜˜¤¤|¨…χËÁkË—6ú¾¨`³½½·n=wnÏžogÌïó­ö¾E¨X,æçW} >>6öúu??×h^¾ŒŠ’Ë[µê×ÏήvoˆV{ÆoÛ¶k×ÀÀƒÏŸ5ÊÙ¹rA‰ºF­ÎÌܾýÙ3 ‹I“üý+¯þ8Éýûû÷ …~~ÆÚkN*}ölûö‰.T©ÆŽÝ±còd•êÑ£cÇfÏ^°àäI[Ûk×nÞܲåë­6H$÷ïºxñ®]ÑÑW®{.—K¥å嵵ƖJ¥Ri4''w÷ 7þÒ묿'äªg2õìááåÕ´©±GP;(ŸP÷¡(Š¢(“Éd2™ŽŽNNžžF£ÑÔÖ:h2>™t¦R©T¸aéÇ nXZZYÙØ{,µ ÐüpÈ4´±G*ëÐ1 ÇÉUíß ¨. à‹€4¢ÕŠÅwî$'+ÆIõ#”Hž= lÒ$,,6¶¬ìÛs]!àKƒ¨sŠÌÌ“'wìØ¼yÏžgÏLLºvõòÂñ¼¼gÏ=*.Þ»÷ìÙƒ?½Ú¼N'‘¼xqô(—Û°á!ú6µº¸X&£Ñ*÷¼q£ € Úµãó]Ýø\oo E¡P*µÚêÇŒ RVv÷nŸ>£GDûöaaíÚYZ¾|¹gÏ¡C!!“& ZRréÒÞ½¹¹S§^½zñbÿþ66_¢Põ#ü(j”€–HÊÊJJÒÓSRž?'k•{Ø€ºÈÔÔÌÌÂÂÆÆÎN àrMLÌÍ="À·ŠÁpvŸ|H¥ºº:80™eeÙÙj5‚ AˆD±±†cf³+Räl¶¿ÿ¶mwï>}jkkaA£©Õiië×GE9£Rõë7aÂŒ-ZÌš5vl^žLF£i4¯_Ÿ;·fÍ©SIIÉË—ÏŸ“£ ÎÈX¼xùòãÇ Æ_½zäÈ»wwîܼùÖ­çÏQ48xɒÇ·léßßÂ"9ùøñeËÖ¯ü˜Ã¡Ó_¿NH059s͚Ο?ú´ àí®\9vìèÑäìYY©T™™]ºÌž½y³ƒ!]½ºuë¼y……~~!!bñ½{qq‰‰ ±±Ö¿ÿ‘#ëÖ……98sµ|ùÔ©óæQ(ÎÎffäÈ—,Ù»÷ÈHxPw| ——““™)çç;99;{x (ŽcP¸ðr¹L&•¦§§¤$&š™ñx––NN..žžÆ×÷ EQEu:N§ƒÈùG‰¬ÓI$iiW®4o^¿~»v‘—wúô”) ^¾üï¿)))/^ÈdmÚ„‡ÿñÇ¡C·o7vìŽýú1‘‘ÁÁsæ Ö­[Hˆ£#~úô‘#OŸþòË”)]º±­¬úô ܸ±¤D§CÍÁ!,lòä¡C³³‹Šš5›9ÓÍMŸÔ›7ŽP­ÎɉïÒå·ßNžìßßÖ–BA™,0pæÌøxrö:v5jĈ6m¶nEÑ;w.\½Z«ÕéÔê üýçÎ}õª{÷õë½½)”¬,‚7î×_-òöf±È‘ß½+ëtäLÖõó"Cdˆ ‘!2D†È"Cäo'òç¨6-‘”•‰ÅBaqqAA£F¾¾AAÆ* ®3553³´´±±³srÊÏÏË{ýÚØ#úž}¹?'"×µÈlÞ¼aÃýûJQQjjJ ŠnÙ²o‚`›Ý¿ÿÉ“W¯¶iƒ *UAÁóç÷ïgfJ¥jµTŠ 8N£óùäÚåÐPww:AÊÊÞµ¥R9œšŒöÈ‘´4o×®Œ •ŠBAqsëÝ;0P£9òèÑŒ ¹< Ã( ‹V­ÆŒ?~Ô(ww: òòNœˆŒLI))qwŠÚ²eýz­69¹¸¸´4;;9¹¬Œ ‚ƒÍÍ©Tr6´Z¡ðÊ•Áƒ»wïØÑp=/‡C¡|ü˜I^^¶¶ÁÁ†-!Þ»GŽJ,^³fõjN*ÕJÿö•FspèÙ3<¼Y3A ÅÒÒß¿U+O¡¸}Eq¼M›ví,-MM—/Ÿ7oÆ6mvîœ9sÙ2[[Åq©´ò5‘èÞ½Z¶ìÓ§bOX,æÖ-ýìùø (Š’[¼ukÁý¹Áã)©© A A”–Þ»WT••µfÍß#9rsóQ£† !gòsκÏ‘!2D†È"Cdˆ ‘!ò÷ùsT›€NOOIyñB pvvw7ö ß++>ßÑÑØ£|FŒ˜6mæL} Ž Mqñ?ÿŒ×³ç† §O'$\¿îëÛ¶­¿?·n]t´¾Šb•ŠaZû±*ÇCQò¿Š7{ooE1ŒF£PP”Íöô:tæÌéÓ]]i´9s~ù¥¸X¡ÀñÊ SN¥*)‘É¢òÛÇÚ}3i8ª¹sçÎýùg²‚(•¯^‘ih7Ücòßd “éí½re||zº§§‰ Ž=:uj“& DG;÷Ï?ƒWÞ¦N÷öìég°ò[åÊ[$ûT´#7œI²]&#ˆÚœ!ð)®^½|ùøñŽCB""Œ=`|Õ& ÉZφã_â–4€ïŽ×~ºð#ªþ|N© E"…‚¬Š¬Õ–—gf>.«TñþT-†iµ ÅÛñÞÕ³°P.×h [vu‰"#cbŠŠúöí×ÏÆ&=ýܹû÷1¬uë \\˜ÌwÅÁq¯iÓ°0'§ââ={~útúô… ]\nÝZ¿~ûvkÒ¤E‹LMõ¯œ8na´wï²eqqaaË–µlif†a*UQ‘á½8>&ý®¾†£’Ht:árµZ¡Upð¤I:¼?šFSXxåÊŠgδh±mÛœ9÷í;qbHȶm÷ïËåUßE’ûyá‚~öÈÖºõàÁúÙ{÷*õª#?qbçΧOGúõצMÉ‘?.•òx†3 ÆUR"{€1Õè&„_“J•“såʱcGÞ¸ñð¡©©R9hPÿþíÛ[YéW S(¶¶=z,\Ø¿ÿñã#Gλb…¯¯³³——§'•zóæï¿ïÚuìØë×IQÑG92cƯ¿Ž…¢L¦«ëÀÍ›cØ¢Eܽ;}zx¸§ç³g§N>}ÿ>A0eeÎÎMš˜˜0™®®gÎŒ3f …2a¤IÓ§ܲexøîÝ+V¼~ýë¯ ,Xðê•—WAH4bÄ®]Ë—7kfb¢Vn×Ãcðà»wwsÞµkùò—/§L™2eäÈ ||†]¼xÚ´ª SÍÙ¹uëGúõëСS'—Æ}|¼¼¸\&;ûôé#GŽyýA>¼Ã*Æ\5åKBáþý^»VXXV–›{ìØþý̘1|8…B¥êGÕ©Snn¶¶VV䨔Ê'–-#÷åæÍãÇ›“٬قgÎìÙ3t¨@@£©T7nœ>}øðÑ£W¯R(=zÌš5zthhÆ\.ü©þZ¤R©T"1115åñ4‚ W™‘B,ŽýóÏcÇ?–Ë‹ŠÓÓÍÌÆŽýí·©SíìîÜ™0aÔ¨[·¦M;qbÅ ooËØûòcz×”H<:´S§Ÿ~"ˆÖ­{ôhÝÚÂ"%åС“'_¿îÔiÔ¨þýKKÿûïØ±¼¼1cNž¿]»ˆˆÑ£©TGGmÙ²aC..¨üºd2‰¤¬ŒÇãñø|ôNWZÿë¯ þ÷ß–-W¯FFDaáµküñâ…\Žã>>]»îÙsáB×®ÆÞƒÝ» †YX´k÷ÇK—®XÄdfeíÚõ×_ý¥Rõè1bÄØ±~~=z0™‹½zeìñð­Ãq*•BÑju:­ÖØc¾¶:R‚ƒJåó{õZµjÖ,µzذ ÊËuºñã9ò–>8N§Óéägt:¹<5õüùÍ›ÏËÎf0JJ>¼wO(lÖlÁ‚ˆ?|xýúÓ§srzô˜??<<%%2òèј˜'O$’† G^¾ÜÑ19yëÖ›7cbŠ‹4˜:uÛ¶M›Tªìì+W6oÞºõáC¹\¡ÈËðÎ.œ3'$ÄÆÆðîó?šòr©´´Ç) A”J}»Z]Zš˜˜ž.‘èSÒŠ…EË–£F5nŒã÷ï9²~ý… Ož”—Íž=~lö“'LJ†þþ»©i×®:Y[?{vôèñã™™›6]¼¸nÝ“'kÖ¬Z…ã©iyyrrRÒÏ?oܸuë<ÿŸï]GÅjØpÞ¼9s0ÌÄEÄp];‰F³µmÕª~ýǧOoÞ|Ö¬ŒŒþyôèß_¿þûïS§NŸÞ¾ýÈŸ=š6=|øÜ¹œœ¾}gÏîÓ'.îÏ?÷í{òD,bbþýw÷ncï=uNGÞ×Ѐ/C(,*ÊË+)‰Š‹ òó_¿f³9‡Ã13ssóôôöþؘii¯^={V^^^^R"•–——•ñù66¹¹¥¥µ5gaÁç{¿Á·¡Ž$ A¨TKËN6l¸u«E ÿÖ­gÍZ±âܹի»v¥Ó+ ™baѤɰa³f…„P(Ožœ:•œ•HÌÍ[·¶´Ôß%fÿþË—W¯F"#|]iiÉÉÏžyyy{èÓÂ:NwóæÍ›•ï¨ܾ=ùZ”—÷æMZ—Û Ÿ_Õh66vvNNööŽŽnn†¯]U9::9¹»'&>}G¡8;ׯÏd2™Pé¼KJ@Þ#søðuëfÎŒ‰ [»væÌC‡¦OŸ={ôèfÍ4¡ðúõ™3úéäÉ¢£OŸV©23wî\·îÓ·‹ã,–½=›­Õ–”$&––ªT­[›™ÑhZ­J%)•Æã1™”:4SŸªæ«žkB­..޽}› üýÛ··±iÜxèÐ¥Kç̹x±gÏ={ª{Aþóϯ¿®ZõìÙ–-wïR(BR©XŒa¶¶†óOö—Ë A¾ùÿvÑéöö¡¡ÇÿûïÝ»––oÞtê4c† •Š r¹¾án B&ËÍ¥P*— ÀªjbV«ÕéôíäÏL¦@œ˜XT”™Y\¼uëŠû÷ß½«P4h€ IIÏžuìxìØÙ³³f¹¹mÛ6mÚôé%%‡‡……ZýúuÇŽS§®\Ù°!^R½oßo¿¥§;9–—?zôäÉ‹?xàî>cFdäôé­Zñxäç«5kæÎ]¶ŒBLM%’W¯^¾œ?ݺŋ/_^³fÉ’Ê[oÓfíÚáÃéôóçoÞ,*²²’É\\š56lذÆ×¯Ÿ?ãÆæÍþyáž=ml¨T•*;ûòå7oŽ'ãK¥..üüs÷î¶¶4šN§P̘ñë¯Û·»»óù:Ýë×&&®ZõçŸûöÕÅÄ;uX,©T …\®Õj4Íûû“}È´òÓ§ݾ­V„Zã8®ÿ2‰ŒfkÛ ³3ÙÿÖ­Û·££Û´iݺm[²ÙBþL¶+• …TZR"Q(Tª±çÔEFNëiµIbbjjQQZÚ®]{öœ8!•Ò·oûöŽŽüùçÝ»:ݺµhQÿþ‚ ⸙Y³f£GwîüçŸS¦,]ºqc£FŽŽ4š••N—”´nÝgÏfg—— …·oŸ>5bÄ€VVçÎ9s÷®PX^žŸ_\\R’’û×_±±B¡Tš—'™š†„9I¿ÿ>o^Ÿ>S¦ðù7l8`À¬YãÆ5onìƒT»>6élaaeec£R)•ÉF!‹8˜š¾yóûïS§nÛæèØ°¡P˜‘!…†îÜyøðíÛçϯ[—“#•ŠÅññ7o&%ÛÙíÙÓ£ÇO?=x`o?`À°a{ö¬[·xq\Ü¥K÷ïÛÚnÙrö,•úûï}útïŽ ‹ Ÿoa±iÓ† ¿ýfì9û¶UwõB,>zôĉ۷‹‹%’üüÓ§‹Œô÷?~À}âŸFŠŠV­Z¸°oß³gÿüÓÖÖð+‚ÈÍ=}zÞ¼ùóuºfÍLLRR„BGÇW¬0ö¾Ph4¡/Á¡oÑh´Ú#G¶oß¾ýÁ ¥¸8===]§[½zÓ¦ 0lòäáÃOž¼paéÒ+bbîÞÕ?+/ïÜ9àçŸ×¬™>Ï×§Ú·ïÐá—_¶l¹xñ·ßZµ ïßÿÉ“âb?¿)S:uê×ìÓ»wPPŸ>§OGFFDP©—.åå™››˜jµNÇåÚØÐhGŽä䘙 þî­#ˆD‚ãEEB¡ŸßĉÎÎúeC™™11÷ïÛÛ——«Õ A hXX¯^«W“%.ÉøW®,\8nœ½½—Wdä!LæÕ«OŸŠÅ4Z»vÝ»‡„ ? àñã7öí«»õ¯¨K ¹\*e0h4C§{ß h21@¶04“Y^.“I¥ä¿+Ú+G#ŸgØb؇ŒF®ƒ&«HÆ€„{ ®c±¸\“ªß€oÅçA•ª  &æÚµgÏÌÍÃÛ5«œ~®ú–ð¥à8“ik[P —WN6©Õ †aéªïÔår 35uqár)²%Y±rŸÚYlXâ’l!K\’ñ5šòòœœU«ŽùûïØØ;wŽ_¼80ðÍ›¤$™ÌØ3 À·‚Á`2Ùl™L&“HÈ/•Èö€€¦M›4!ÿoØBö!ÿ/•Êdee …R¹Ü©a4òÿ†©gÙR5Î`°ÙUc@‚Ó|›Ífs¹þ[,ð­ù¼#H£ñù-ZtèÀç·hQõQ“fÍŽ¹{÷¯¿Œ½—|Tª¼¼7Μ9}úîÝ'O¸\>_©ìß¿{÷Ö­-,¨TQ©ŠŠ®_Š:ž,/ùï¿™™ry§NÎÎL&Ž[[‡†¦¥ÍœùÓOK–––jõ›77ž?¿|y£Fä…ô ‚%òÄâ–-=<ÌÌTªüüùó/\8p Y3ýê霜Aƒºw¯\qõêéÓ«Û:Š2ÁŸŽ?s¦X>(ª¿Aüýýü||ÈŸ=zòäéSr+d;ÍÚÚÆF  Ñh4¸*¼ * …ùùUˆ½~Ýݽ~}&“Ū|I¼F£ÑéŸ|2ö~Ô¾ŽCB""JJD¢‚33Ï¿zõòåãÇÉ×[''W׆ k‡|C@¾¨ÝBdˆ ‘!2D†È"CäÚŠL¾ë«Ý‘|ˆDòàÁŽB¡¯/”ÈàûFV^¶³³·wv®Iÿ‚‚üüìl²v³››»{£FU£Q( •jmÍçÛÛ×$fvvvvzº½½@àîÎ`Ðéú<ù‰žüüK¶Ôµ×gˆü±¤R‰¤¤„Œ¬Õ’·ÐÕoE«5lÑÓj5š'O>¼s§F+ «¿}¼Ûç' Áû}‰?'"Cdˆ ‘!2D†ÈùëG®ý‘{€¯ÃÖÖÁÁÕµ  //+ËÒÒÊÊÖÖp岡‚‚œœ²²²²’77/¯ê¢¥¤$%=~L&­¬¬­íìªö$_‹Š ssù|À0õ\oñõ"×–% “’^¼xôÈØC|Kš6 jßÞØ£àGcbÒ¬Ùĉ&&ÆàKc0 ÃÚÚÖÖÉ©¬¬¬L,–JËÊÄâ’‘¨¨ˆNg2™L²ª™\vrru­>MLFkÔÈ×7(H©T*•ʼ¼ììôt¹\.//W*år¹ÜÌÌÂÂÚšÍf³MMù|{{—š¤ž¨QÚݽiÓ®]=TÀ·¦ò-MP»ÈÄ1•J¥Z[›šššZXXZòùŽŽä-1 ÃpœN§ÓkV‡\CMÆ´³st¬W¼Ù AA×:S( þ?ÆÞ{ðm¨s7!\±âòåÊ Åi4GÙ³»ty×EüÈp5O7¿_mÅ Î% I¾¾ú{t’.]zúôCÏêÞÝÇçÛüÅÐhŠ‹/_ž5kìØèèÏž]½AD§“J“’NŸf³ë× 3öÁ÷F©|óæìÙ£G÷î=tèõk ‹.]œ™L!ˆòò7oîÜqwŸ>}ß¾ÐPkë}£YV;~|K–ìÚ}励÷ Ôµ€nÚÔË«^=òçøøÄÄÔÔO‹3tè¶m™™2™R©ÑÄÇ'%}|Áì'nߦPž<¹fwÿ¬;pÜÒ2$dãÆ³gCBômQXxãÆºu‘‘¡¡{ö@Ô6:ÝѱOŸ¡CGŽÌÍ}öÌÂbÂ.—|L§{ùòï¿‹ŠjéÝ·8’HÊÊJJòóss³²d2©T"Q«Õj([ø–™šš™YXØØØÙ \®‰‰¹¹±Gê¢:´šJ¥P¨ÔÅ‹{÷öôÄ0 ûøë×_¸ž^ýãju^ÞСýûÿüsDÄòå}ûÆÇ/Z´rå¼yçÏß¿¢99—/ïÚµ}{|¼B¡P俢hÇŽ‹O›Ö±#6|x&ôè1sfÿþRé“'Ÿ:]PЫ×Â…ëÖ×¢§Ó^¿¾wïêÕçΕ–::zxˆDb±™Ù¨Qsæ T¿>‡ƒaQQË—ïÛ÷ü9›íêjm­Õ––6k6`@ëÖII'O^¹’ ‘,\øûï&\¾¼cǺu;w>~œ•õúõþýׯ‡‡Ú¾½…•Š ;vÌš5m¹O­~ó¦M›‰W®¬_ŸN/(¸|yݺŋ$$$$„ÜÇÄÄÖ­7l(.>|xêT`üøÍ›×¯;¶Q£íÛ{÷îÞýõë®],X¾|„nݬ¬¨TcŸ àk«š>Öj×­ëÖÍÚšü—Z]XxýúºuÇŽ%&’ç[jjy¹·÷š5K—bìÑðmÈÊÊÈHJ²¶æóíí­¬¬¬lmQÇ?å³/Ôr¹L&•¦§§¤$&š™ñx––NN..žžÆ¨[j!m¸êùsVC;:òù¦¦±±™™:F¥~üšJ2BõS©¶¶,–XœŸŸÍá„„üúëùó½{DAATÔ¨QlÚäìÜ·o¿~ööZmqñ… Ë–ggçíÅåÊdeeåå½{Û¥KxøˆÆ<9bDXØðá'OFEýý÷ A[¶ôïyúôĉ|>ŽË剉  Ø·ï‚«WŸ?¿rå¦Mkמ:UPмùøñ­[wï:l˜ŸŸ£#…âáѦ͞=»w/^Œ Tê²e!!#Gpþü™3/^Lš4jTûöä>h4EE.8:λa¹²½W¯ÎçÏ'·2yòèÑ»w5nLî#Ù'5ÃÌÍ'NŒ‰‹ büxSS¡0<üèÑ-[† sr‚ÄólܸÀ@ýo.‚ ›}ÿ~bbB‚]¸0vlXØŸ8}ö,ù8yn'%ÉåR¿þÛÑ´Z±øÚ5±²jÝÚØ{€ñ¥¤$%%$4jäëdì±@m2553³´´±±³sr’Ë ¥ÒØ#uQ­­€þüB&&,•Êb1(ÊdÒhŸ€&#|¨Šb…‚aú:BQX¨T⸽}HȘ1Ó¦™š"ÈøñsæèŸsó&Š¢(ŽWŒ‰Ba±Y,'¹œ ´Z¹AX,>ŸÉÔ'…)&ÓÆ†FS*<Ë AV¬Ø°aúôÍ›·o?vlåÊ‘#7oNIÙ²åîÝ üýk¶Z­L–›Ëç››W®ËK£)•99äVô[¯ØG’@ЧO¯^ææ.DF¾xQZÚ¶mË–:ØÙAêìÞ}ÿ~jª¿?—«ÑH¥IIÇ“íäùFžÛ†ýÉsÛð|3¤Ñ”•¥¤@YpÃØ£€/‹F£Ñ¾Í{³/­.ö©­Ðffl6ÆdÒéÆá0™ÿ2ÂGOÆb98°XZ­Xœ”TR¢ÿ®F«U©„BÛa:— äòÜ\…ÃLMœ¸\*•ÉD™¬°P.×hô}Šü|µšN·³c0(‹½¼†_¼øàÁ«WÿûïæÍÓ§##—.]½:9Y&«éh™L;;í ·RÍÁ¡gÏÐPsóÌÌ3gbcoßnْχô30„ãl¶§çÀääùFžÛ†½Ès»ºó à }ù5¡Pdfž<éîîèèí=zôÒ¥ëÖ­[·bÅüùS§îÜùä‰D¢Õê{ŠD÷îíß¿lÙ„ ½zµiÓ¬YçÎÆ;€ƒZÏ€ŽcÜ# ¼K-—àøææ&&L¦D¢Ñà¸Bñ)œÉ‚ Å»W«‹ŠrsËË…Â{÷¢¢NŸvqéÛ·oßvíœCCwí:~œ Ö­ûå—=æÎµ¶ö÷¯_?,lîÜáÃÉK¤Ôꜜ ,˜;·¤¤E OÏââü|mæÌ³gmÜØÌ ÃZµŠŒœ2e÷î5kfÎ\½Z ðô,. ={öÞ½¢¢ÔTrƒƒ™L¥Rœ ÚºuìØ+W>|˜Ï ©¸í!ø±¨Õùù×®ýõ×¹swï>{ÆáX[K¥=zôèѺ5ŸO§“}pÜÚºgÏ={"#ÙìÕ«7mÚ¶<ß’“ËÊ4øãE‹Èóíܹ¼<©T$zõJ"Ñj==ùü¾}AàM6Ô ƒáìÎ盘=:zôÌ™³fµhab‚ ;6n~çNÿþÇwëfi‰a<^óæ£FýúkÆžž5o^q½¾-!ݾ}ðà$&vì¸téøñNN°zð=BÅb¡0?¿êññ±±×¯»»×¯ïムŽÝ—Ê«W%%,–L¦VS(•W׎#ˆZíãcm-—×îØÆoÛ¶k×ÀÀƒÏŸ5ÊÙYŸžû6•–Þ»7wîÂ…%%kÖlÙÒ­›±Ç¾O¦¦Êç% ÉW!cïGíëØ1$$"¢¤D$*(03ãñøü«W/_>~œ|½urrumØÐØcG«Võê5i8nÜÐ¡ŽŽZma!‡<{öˆAA<^å«NÊÊîÞíÝ»yó9sÎ{ñ"&ÆØcðnä»>òmÓ¦AAú»ûvìX´hÀ€½{ÏŸ/*jÑbÈ4šçÏ“’ÜÜFŒX°`Ú´öí­­ëâ5«:]yyRRTÔãÇ={¶nýýßÌ^*•J%6›ÍærÉF"IL lÙrÊ”6m¦Mûùç)SîÜÙÕ•J‹cc£¢Þ¾}ûöÿþ[·îß/^´²ª.µ\V·c‡Häç7q¢³3$ Á÷‚|Ý#?ÿ{, vH¥II‰N§ÓétZ­V«Õ’?#‚hµ†-zZ­FóäÉÇwîÔZ èÏgiIYYÇŽ9rð \.—|yôèqã&L@±²2öÞÔEqqׯ?}joÏf߸af6~¼±GCtº½}¿~ãÇOêãSXxæÌüùZ-\È߫ѣGnßþÂ…ë×ïÝ:tâĉ6ÌÈX±¢W¯)S–. hÜxëÖÖ­ÍÍëÖ_‚(,ü÷ß5kΜ),üõ×=Z·þþ?ËdIY™aǹ\/¯++® ÀÓ30ÐÅ…É$×´i›6..NB‚Õ§žI(Z·Ž/Ô¾:”€¶°°´´²š:uæÌÙ³=–·íÚ}励Gñ¹Ú·÷ñAññùåc8Îḻ÷ésùrÿþ?ý4fL«V[¶øúV¾!,€ïCåä#¹ª Ãh4++.—FCÑAƒ[´ÐjCBFîÑÃÃÃÌ,"¢ÿ–-OŸ9rذK— 8|øàÁž=ML×®0`úô’’eËþûoî\µzÈ&M*+9òС &NtrzölëÖAƒFŒ8{¶I“‡¯\5êС#¦OÏÍ]¸ðÈ‘Y³LMÏŸ0`ذ۷gÍ:sfëÖíÛ»tiÙ²òÖCC‚¨¨W¯$’–- Ç.—¿|¹tihè¨Q \»vï…¢T¦¦nÙ2uê?ÿLº{÷äÉÆžëOWPPPmeeccooؾ`ÁîÝ}úôì9lØŒW®œ?¿o_·n&&yy§N­Y#Ï™³jUÏž}ûtîìç·oßÙ³‹y{³Ù;¶j5qâ\¹²c‡¿Õ­½{Mt×®-[¾lÙ•+ÐéÙÙ«V¥¦ZXÌ›çåÅdªÕ99'NÜ¿Ïf‡‡·jefIm@]R£´R©T¾»ªòçÒéE³³•JSS­A0L­V* ­V©,/'q×äe“\ØÍ`˜š~ÿß¼ðmh֌ǃÐ_Š¢(ŠV\ð‘!2Dþ^"›™¡¨J¥Õêt †DòâEbbI Aøú²Xe8>e«ßâl@dˆ ‘!òA”Ê7oŽÛ½{÷n*õõk3fëÖ9s||ØlÁ077 :tèÐÁƒ]]i4¦¨èâÅS§22ÌÌ ´´DÁq—fêÔ¨(AÑž=„Jµ±éܹ[·zõEi´ úõ2ÄÑñèÑãÇ B,~øðܹ´´ÒRW×K—öïß¾]«MK ËÊòòÒÒ$‚¨ºu‘H|õjVV^^rrÇŽ ªOÞ¹³sç‘#oÞล¥“—«?fŸŠNuÚ´ñôd0ž?OIQ(D"ã§«ml¨TÉÏW«=ð9èt‡J­_ß‚JU©òóe²—/•Jý£,–©)îçga¢R©L¦ÓDy¹J•˜X^^ùeèT ÅÕÕÊŠF³° •*1±¸˜ T*6›NïØÑÒAÒÓËÊ4š7o¤RíÜÙÃNÏÏ/.V©JKµZår5‚xø°¨H£yÿY…¢T*…Òºµ«+…rëÖ«W5½ÊÃ0ÌßßÃÉLHHOW*íí©TrÜÙùÔ©]»¢£ ›7ïуËMK‹Šúûo&8xéRAA¢¼<-­¸X©DggÍÉùçŸíÛóó½¼&N¤Ñìì||¶·?xð·ßöìIHøçŸŸ~îÜÙ²åÏ?Y¬Q£fάn ¦Õ*•EEryåOÕtº‹Ëر¿üÒ²eõëÏ›wèП:8|û«q &“Í~÷cTª“ÓðáÛ¶Mžü×_aaGŽþóÏÒ¥ÖÖú$óˆ“'=Ú³gdddäèÑ…râÄž=gÏJ$jµN‡ ”*y £Óãã_¾,-%gg++ E«-/ÏË«ø„G£ÙÙ…„üöÛÆ gÎÌžíëËáhµbñ£GR©™™¿¿‰ ”àÔ%FN@«T¡Ñ¶¨Õ¡ÕR(8ŽãäŸ_2íŒã8N&¡+ÖA“V¨­ª«W_¼x×…3Æ€¢fjJ¡hµ¯_(qê6•ª¤D£y𠼜 ¼½)F¥ª8¦íÛ;8P(EE))ÉÇ2™N×§OÆ FzúË— Ei©á[6‚Ðh^½*,DQ++µZ© µZµ³ãp0ìâÅ””òrô²\®ÑP(/_æäÈå ‚„†úúr¹vvB¡D’’òþ¡Ñ\½úâEEª¼&pEMLp\§“Ëe2¥25ÕØ³À·é̙ӧcb„ÂòòÜܨ¨ãÇÏ ?¾¢`…JUT”]^.Þ¾}úô™3nnýû÷îݹ³³³­mŸ>ë×ÏŸŸ½jÕªU[·¾|Éd¾|YV¾~ýüù~~¢Ó=|ˆ RVöèÑÚµK–lÛÖ¬™‰IJŠP¼jÕš5;#•Šãýû¯[7wî«WóæýòË”)³g7nܰဳfÇ`¿këööA߾͚aØŠ3fÌš5yòŋ۶YXèÓÌTª ŠZ[‡‡YX|îZßºÍæpª®M¯@¥òù: `gçëëåU9ý;{vLæ/¿ :lØãÇíÛÕ«G¡¤¤¬Y³lÙºuOž¸¹‰D :]^^Û¶#G††zyq8îîYYK–tëvî\Ë–Õ«gg‡ ¹¹çÎEEݸáâÑ®]`àãÇãÆ…‡,¸¸ðù›6mØðÛoÆž-x[H@Wþ¾”L"‹Db±HTVVVVZjbÂ嚘j4Z­FC~GL£Ñh4ŸÏçÛØT$ ß—ÈEQmÝÚÍÅÊÍ}ýZ*MKS«1¬o___çùóŒ …‚N71¡P¼½­­©Ôìì¬,‰äΑA† iÖÌÔT$ÊÍ-/¿v-'‡ ‚‚|}MMi´âb™ìÎìl•ÊËËÕ•ÅÒj ŽFc±püþýÔT™ÌÕU `³525E‘ApÜÒ²´T*}ñB«¥Ómm©T­E µúÅ‹¼<µZ¥¢Ñh4 …ŒF¥*Je\œH„ d4 U*;;WW&ÓÒR,–H¢¢Þ¼ùPò|y:y†jµ† èÇ_¿–J‹‹%F¥ÒéD£!¿RÑh´Z•êí#‡ã¡Ó©ÕNÇf[X0™¶¶IyyfæÛ¿/:‚ètAú8äÕååjuå1T†¢(jkËç3™õêq8(zûvZš\îèhgÇb5kfe…a))B!AXX°ÙTª› 'N<~\^îéigG£q8†aÞÞ––öüy~>A¨Õ4•Ú¼9ŸO¡ÈåF^Ùðq©m~,³g:1{ö»§Ñ¬¬nÞLHˆ‰y×c|~»v³fmØÐ®Ý»ž+‘ ‚P(vvaa«V­\ix;;Ctº@гç²eÇŽõìYõÑwoÉìÝ{óæ+Wª«í,øø Èã}égápØlSÓ÷õ Ríí>s¦òM AZ·^°àøñÛ·,¨h[¼xÆŒ÷Ec2¯^½ÿæMöùó§N9Ò°eÙ²cÇ.]2öÜÀ‡9]^^Qÿ™$—«T ‡Ãá). c³Y¬Š»¾“…´µZ­V£ÑjµZò‰d2¯¼\¡øP6ÛÄÇét‚ÐhÊËår‚É0 A¨T‰D.¿w¯ @§‹‹ËÉa³öóc±LLòóKJ¢¢ ´ÚÐP ÊÊd2µº¼üÕ+‘èæM‘H«EQ:Á Óår¦¤D«E•J&Ã077N¥zü8-M§«W/ ÀÄäò嘘ââÿŸ| Aà8Fqq2™þr«ˆSS±8/O¡ £Õ«çâÂá…B¡HDF ¢Ñâò常º²š(U©t:¦¼\¡ÐÓ—/߼џçF§Óé %%©©Ré».³Ãq Ój;tðõ55åp KKOžÌÊR««¦sµZN§“Ë•J‚Ét: +-ÕhÄÊŠFÓj_¾”H´Úê ͤ¤dg#ˆ¯o@—[^.—«T/_feét òù\î½{))eeúñ°Xl¶­­J¥T>xž®Õ:9YZr¹ÑÑ™™ ŠÒh Fxx£F Ɖ11b1ù,WWc~LׯGE?O®_¾uëôé3gÆŸ=;"¢fµœ?Aœ??n\Ÿ>Ë—/^|óf|¼¥å÷’~F++›ª©e5cä´R©VW^ý©R©Õú„“É`0äŠN‚ ò¼¥8Èô4‡ÃáH$ Y=úC«€µZAB­Öh”JµZ§#[ÔêŠW«µZ²]¥R«5š‚‚ׯU*ÆÛ›Ng2µZ¥òÙ3¡P£!Óç8N¥¢èÓ§ééeeUëîR(8N& +P§Ãq‚@QývÉV×é4ÃhÑÑ))•£©To? Ô ï>¦$ …Éd2[¶0ìúõÄÄêWë“gàƒ/^ÈdmÚøø˜švèPVV\|ölnnå3Üð,•Ë B£¹téÕ+fäHOO&óÑ£¢¢²²¢¢ê~+t:ò̬øM¬ÚR1r+J%‚TîCžÿJÕ3A¾ÜÛ[@õÚ·>ü·ßÚ·>ükm‘Báó{õÚ¿?&¦W/cï=€º¥Î•à F«¥P( %++33#ƒËårML‚ Ôj&“Åb±PAP´¢‡NG¡Ðh FÕhU‘)A†,}@ú=¶à¸FC¶ë‹”——––—¿~­Ó™›»»³XÊ;b±RIVØEQ¥R­¶´¤PtºW¯BŸv¤RQAÔêŠÛI¼=BN£ÁqývÉ6¥APÔÒÃôÑPÃ0ŒBÑé´Z2ZÕgºâ]G‡Ba³Ùìv휜tºû÷_¼(+«ZvÃyJ¥"‘Dùê•:r¤§'§V¿~]P`xÌ+—à !Ëo(•F¥êK|TŸê®zf¾ë\%Ç£ßÊÛ}PT©$¥Aèô·ÏpH@@õ|}}}}}ßßóÑ£G="¿„¯ycï%€ *•JEêß/F£Ó= PÕ•W k4jµFÃá°ÙŽ····þ#yãAN§ÓéÔjµZ­~ýúÍ›ìlµZ¥*+»páþýÇËË™Lê·†a8Îåâ8ŠÚÙ™›£(A””h4&& †99ÙØÐéYYééåå&&664›M¡àxýú|>•úâEZšTzæÌÇ,Öôé~~Tê… W¯–—ë#+j5‹Õ¦½ýرBEEr¹FsìØÃ‡b±§§‹ ƒAnÅÙ™B!ˆ/ÊËu:ôÚÀÀæÍ-,(”ÔÔ²²›7³²ŠíÛoÞ,-íÑ£I++2ZBÂË—ÅÅ7o …BFsvf0P4;;+«¼œŒÖ·oûö66™™÷îåç?|(—#H¿~o·`“ÉáŒÓ¼9~éRt´P˜“ƒ 4Z¿~ÁÁ<^ffLŒ¾'øXl¶¥%‡Ó¤ ŸÏb¹»S(JiiQQyy||n.A̞ݵ«™“‰¢âïïèhn®Õ*RéŽÿýWTdx J …Éd±š6µ±¡Ñ”J åæÍ´´¼¼¥KSSqü§Ÿ:wæóssSSÅâ¿ÿÎÍEQ6›J¥RÛ¶uwg³“’d2qrâr5š¿þºqC$JJª(R†á¸‡‡NþF„Z­Õº¸ØÛëÏUGG%ˆ”a2›4!Ç£R1‚µÒ+ÎçÒÒÒÒmÛnÜP«{ôpue³ËË1Œ¼“3”ˆ€w9qâĉ'æÏŸ?þüŒŒŒŒŒŒ÷÷ïÞ½{÷îÝ ƒÁ¨Iÿ¾}ûöíÛwÓ¦M›6mêÕ«W/X‰uCyyY™¾`|x>6öúuw÷úõ}|”J*•Çû›ß¾=6¶rÂS£‘H 7l6¬iS²Ê3Ypƒ\õC¦žeΞ½uëÙ³¤$­V Àq*¾i nX²¤C6ûs"¯BÆÞÚ×±cHHDDI‰HTP`fÆãñùW¯^¾|ü8ùzëääêÚ°¡±ÇøRÈÂbÞÞÞÞÞÞ%%%%%%wïÞ½{÷®³³³³³sÕþ/_¾|ùòehhhhh¨B¡P(999999ÕÅ'û¿xñâÅ‹¿ÿþûï¿ÿN®†&¿È7öÞÀˆ|×÷½¾³CM›µoOþL¾î‘Ÿ=.P;¤R‰¤¤„\L~®!Fýç}‹žV«Ñ}úôàÁƒtwwwww7ÂIÐt:Î`|¹A̛ש“>¾R©T*• …LÆf“‹¸krÁ(¹°Û̌dz°øò“¨ò6dùòåË—/_³fÍš5kÈ+º<=====U*•J¥ÊÌÌÌÌ̬Zˆƒ\+-ÙR]O²øÙŸl!·ò믿þúë¯ä;¥/WˆƒL=wëÖ­[·nYYYYYY†ž:uêÔ©S;vìØ±ãµk×®]»V¯^½zõêû˜¾ÌØx[iiI‰XliijÊf[[›šr8|¾™—kkË㙚ÚÙYX˜™ÙÙYZš›ÛÛ[Zš›;8ðù\.“iì±¼™ 1l'Ëk…8ª>‹|Ô°¥ºž†Å: Ûûõëׯ_?²Ç—Ø/F£ÑhÈÜäm«ö [½zõêÕ««[ë àëCQ*•Ï÷ðhܸQ#6Ç¿—m¨kŒ\‚ã]t:ŽÉd0ôk¢1Œ¼ !†aZy{B²rtyù‡ËpH¥II§N={faÑ»wP••úùã•J“’NŸf³ë× «®—FS\|ùò«W,VHˆ——~mÒ‡)II»våæº¸ŒA£Ý¾}ë–PجY§N¾¾¦¦_çx€Ï3|¸¿ÿô锕‘ëú¹Ü¦M·n=sæÀ®]y<ìÿ¿R«óó¯];þèѽ{_¼°°1bäÈÛ·71‰ß¼yÔ¨“'Uª^½Ú¶ èØÑß¿¬lèÐþý×­ 2$"¢^=*µ¤$+‹ËíÙsîÜaü½9ì=_1‘çä¬YcÇFGoÜxöìêÕ5Û…")iíÚþýgÍš:uçΙ3És²}{__SSx# ø88ØÛÛÙ‘?Óh46`@xøÀÕõÏËËËËË#ËnT]ƒL®P®®ÇâÅ‹/^lزtéÒ¥K—VíiX¬Ã°Üâ¢E‹-ZD¦¡­¬¬¬¬¬ªíÉ“'N?NÞö™¼tDÄ AƒWן\yíïïïïïß»wïÞ½{W×sàÀ$W@õƒ?75õññ÷÷õe2³²ââ<(,T(È{&ang×¼¹J•›{÷nròãÇ_z<:Z]PPy[(ÊdÚÚ6kÖªƒñâŵkR)ÜÕ ¾Gu0 B¡ieA2íL~"“цÞ0¢ÑÏ©ÞëÖEF-XгgPPõ¿jŠ É˜¡¡{öTŸ€ÆqKË/¯¯V—–R©† tºƒCÇŽ:98|Ù¹µO,f2Û·ß±#&fÕ*??APÃ(;AL¥ÚØtèЫW¿~II..<^—.•*ÅÆÞ¾ýðááÛ6;ÆfW<ËÒ’Ë=}:,lìØÉ“ýý¹\<¸uë^½þû¯K—3gúô±µ¥Tû;Nž“7ž=[y-Þ‡¨Õ¥¥©©‰Fç¤q‘¯„÷œ…È"­ÈUK„™›››››Wן|´ºò†…8 ÇLµhРAƒ ûW-ÙaX|ðX‡¡8p I“&Mš4YµjÕªU«j²5Ù;6›Íf³wíÚµk×®;wîܹóC‘?îX|[çD†È"ŽˆˆaæL9~üС­[kÒþ~¶¶ º¸h4ÉÉÿüST¤O=“´Z¥² àÉss''__ssM,NJzøE]][µrt´°Àñ7ož=ËÈpr²¶‰ââ’“ËÊt:ÍÖ¶^=''++ …dz³c2%’ÄĬ,¥ÒÁ¡^=GG§ àÁƒ«W³²ÔjkkGG† --5šÄÄŒ ±¸ò¶??77ss.W¡puõõÍÉyþüñc•êËÌ/ÀؾÅ×gˆ\[ê\šœ ‘H,‰ÊÊÊÊJKML¸\òQF«ÕhÈEäš#>ŸÏ·±Ñ' ä}k ÕêÜÜ;?ÎʲµÝ¿Ã¹ÜÙ9 `Ò¤Q£Ú·W«sr._Þµkûöøx…B¡ÈÍEÑŽ/ž6­[7[Ûì쨨åË÷í{þœÍvuµ¶ÖjKK›4éÑÃÃã޽ݻɘ¯_ïßýzxøÐ¡íÛ[X®¬&±øáÓ'÷î-*êÐaÆŒ®]-,ÊÊîÞýóÏe˄† ;u*-ô(5511>ECCwî\° S'…âÂ…½{Ož¼wO,¾qC¥rwïÒeРÁƒ7>ztΜiÓJK=º(J§[ZòxtúûúVœ“ÿ ‘,\øûïÓ§“çä–-gÏuïÞµkýúä9—”„¢.üóφ ä9™-•ŠD;w>üø1yN2™ÅÅׯ¯[wìXb"yNΙ3þòåÆžûïÙ—ûs‘!2D~?JÕÿ_µjõêÕ« 0 <üsb–Î ÇL¦t«&  Kvë «+¾aˆ\¡\“Ù µZ­Þ»wïÞ={&Ožxpé‚0™ryÓ¦AAõê …wî¼xáìììܤ ùe«N§RåçgggdXZÚÛóù|þ»¶•žž–fgçèhn.¥§'$@ê€ïÛ·øú ‘kKK@“8‡Ã!ÓÊlvÅítôi9­V«Õh´Z­–¼e¡>­§T¾/M¥ÚÙÙÛ³Ù<^`à¨Q3gŽåìL§DAATÔèÑlÚäìÜ·o¿~ööZmqñ… Ë–ggçíuëÖÚµ§N4o>~|ëÖÝ»‡†æç'P(õëpá™3/^‰ìwN2ÅܼI“ž=Û´Ù¿_(Ôj„Jµ°hÙ2"bР={Š‹ýüÆŽ>=4”ìÖ¦ÍàÁÏž=گߘ1áᥥB¡Ÿ9Z¦¨èÂGǹs7l˜8‘Ï×—<èÕ«sçùóW¯>~åÊúõ¡vÝ"—s¹Zí›7¹¹ee¶¶<^QQçΞ;·o_TÔ¬Ynntú»žµo_ß¾­[vé²}ûþý³g¿kE›žN§Ó„LVTÄç3eeqqÏž‰Å-[¶mkañ®„wÅ9¹{÷îÝ‹ž“‡9òë¯C‡NŸþë¯doµ:#cË–gÏÔjWWòœü÷ßsç'L:´qcòœ=:,ìÏ?ˆŽ>{¶b;pBÀ÷hüø &N,-----ýüÔ3‰,ÄaØB–Ô?~üøñã«ö4,ÙQ]ñO³`ÁÂ… â8…B¡¼?õLòóóóó󋌌ŒŒŒtrrrrrªzÂ#GŽ9rdÁ‚ ,¨®†5ä³aêùc×>“jvÓY­V­®œ¦Ðé´ZÑé ¡03óÕ«ÂB©T«Å06ÛÝÝÅÅÄD¡ÈÏ'{Êå))ܸ‘’‚ еõ»·P½ê¶ü(êôjY²´V«Õjµä§Añ¿¡ÿ/=Íáp8Ÿ“Ý×éŠÂB¥ÇííCBÆŒ™6müø9s6o¾téÞ½¿þŠˆpp RW¬Ø°aút_ßâ⨨•+GŽìÜyçÎ;w„BýX>Ž¿ýÆàý÷§×je²Ü\>ŸÉ¬\m—FS*sräòϨ}#G.[6aB«VNN&&4—ëææàPZýø±P¨VW÷¬ððåËÄñ3g¦M[¶ìüùììê·€¢(J¡°XÖÖ‹ÍËãݸ±jÕΙ™ ŧŒ·ê9ˆ¢ÕWw&ÏI¹Aj^Û@ed!²°†aIêzâxñ¯ÃÝÝÝÝÝýúõëׯ_÷ñññññk`ïÞ½{÷î%SÏ......Æœk¨Û ÓÍŸ–z&«ÕL¦™þ®O˜fXÚïCt:F¡ÐhP”F«üHåO U·T³D8€ï[M@“+šsssssr$ÿ¯¬L¥R©”J…B¡P(d2™L* ‹‹‹‹u:ò{ÚOšŒÅrp`±´Z±8)©¤D©$ÛµZ•J($Sºb±—×ðá‹^L&ŽkµjµV[ý'N£FS§þñÇŒžž¯X1zô‡o²‰ ,–ƒCýú,–B‘š*‘TŸÞ®=ä9Éd"È×þm€ï ™¢­II ÃBïïù5¹¹¹¹¹¹;vìØ±cÍ Ü¸qãÆz€šûœÔ3);;9¹°É¬_ßÇÇÒ’Á0L6cncãë[ó„±N§R(†K¡(.×É©qcAF¥Òéh433:AP”JårmmôÛ®.2‚à8Vui€ïGKW’¥²96›Ãñööööõ5l'W:“wfÏÎÎÎÎÎ.-U©ÊÊÒÒ²²^¼ðôlÔHß¿:={úû«Õ6Lžq"3S§KHˆ--MMuqéÓ§oßà`gçž=33gÍš6mõjÀÓ“¬·»bETÔŠ @ñºèÒ¥eËF޼sG§kذqcE»wß·ïÔ©^½*¯ P«óó¯]»páìÙ;w^¼àñÜÜFŒÿóÏ«Wû÷‰ hß¾{wOÏáÃ,˜:µC¹\(,)yõjëÖ?þذ¡uk{{ò$-J932r÷îÆ¹ÜwH­ És2/O*‹Ë˕ʢ"òœÌÍ-/ oß.(P*Ésò¯¿Î»{71ÑÔ”Ç#ÏI²Ï™™r9yNîÙÉf¯^½iÓ¶mä99{ö¼yË–{îà[²téÒ¥K—’_´¿¿¤†a!Žèèèèèhc½B#Æ ü¸Tªüü˜˜»wõ3 iµJennL ù¯‡¯]»|¹âÑ·[ÈçH$YYwîDEU´„D’™OþëÙ³ë× Ëñ!Hiijê•+7n¤¦ê[ªnëÑ£k×þúËØ³àËBÅb¡ð]’âãcc¯_ww¯_ßÇA8;»¯3 ‚‚üü¼<//²øYjÇqÇÉÔ³ÌÀóç/_&%9;{xxyÑétú»«é¾6SS åój@“¯BÆÞÚ×±cHHDDI‰HTP`fÆãñùW¯^¾|ü8ùzëääêÚ°¡±ÇxŸU«V­ZµŠ¬½råÊ•+WÖVd{{{{{{ƒÁ`0ÒÒÒÒÒÒjÒ?'''''çKìã¼yóæÍ›÷%æ~仾ïõ-jÚ4(Hw4òuüükìqÚ!•J$%%äâ`2g[QY«5lÑÓj5š'O>¼s§®€F!o}ƒã:NG®}Ö?Š¢(JîÒ‹II¯^98¸¸¸»Cêß:²˜™€®yÿ/7åƞÀ·ªÎ% MMÍÍy¼«ï…¢âáѨ‘ŸŸ±Ç P;Ž=zôèÑ/׿æÈµÏçÏŸ?þü’%K–,Y¢Ñh4Í“'Ož}úôéÉh¨9ÇÔÔÒÒØ£¾¶:·Z")--)qv¶³³±!Ko`Š¢(ùñF_Ž£¢,ŠbŽËd2™T*“iµÆ?À÷„|×E&£ÉrM4yËDX 5W^^ZZ\lìQ_[û¨@¯f2™LÆÿc¾…Å"ÿÏb±Xl6›Íb‘½k_*MNŽŠŠ‹+.V«?vdŸþÜϣхW®Ì™¾paR’LVÓç)ÉÉ7öíÛ·ïÞ½™™JåõëOŸ–•i4_sìA4š+¦NýùçÍ›wíÚ¾}óæyóÆŽ•Jßýe‰ZŸóæÙ³›6 ¾bÅáÃÿý—­P¨Õ¥¥11›6 øÓOk×=uófnnFÆ… ]»6oޡâE›6íÚuàÀŽ«W/[vøðóçååþ2Æð¼ú˜ý©8¯”Êœœ7à¼|ßöïß¿ÿþ¦M›6mÚÔÔÔÔÔÔ433333S,‹ÅâŸRéwJµ±  íÝûÕ+gg¯S'*U,Ž‹»{÷ñã}ûÖ®=p€Í®8×--9œ³gûö=züøÆ99²C‡°°ë×;v<~¼gO[[Jµ¿ãŸ^ÑéööíÚµooooìY€/L¶FFFFFFîÝ»wïÞ½5jÔ¨…B¡T~u}üøñãÇgÏž={öl²TÅ™3gΜ9cì=ø\;wîܹsçÍ›7oÞ¼yëÖ­[·nuëÖ­[·n!!!!!!kÖ¬Y³f@ Æ) îªs hN§ÓéD"±X$*++++-51árõiSF«ÕhD§CF£Ñø|>߯¦f hµ:/oß¾„„ׯùüC‡6oV(‚&MÆ><8X­.*ºyóÀuë.^Äq>ŸÁHK+/oØpذŸ~ ÏÌ›+“‰D÷ï:´ysß¾ ÌšÅ`…Õï©§§az|> ÅÖvÑ¢  !ç•<‡ ¥ºêæ$EN¡HO?sfýú»w6\¾< àÃÇEétKKssã}} ¢¤äñãÓ§ÿü“<¯æÍ[ºtòä{÷\±‚<¯ºvíÜÙÃ#-íåËGÈóêôé¿þZ³æÒ¥ýûõçÕž=Ç'$ îëKžW›6<™”Äã©ÕÙÙóæ-\¸b…±ç>Å¿ÿþûï¿ÿŽ7nܸq†_~“éfò½‡¯¯¯¯¯oãÆ7n|õêÕ«W¯nݺuë֭ׯ_¿~ýzûöíÛ·oo콩)H7ø¾¡(•Êç»»7jde•œüøñ׺vÇÂÂÕ5(ÈÍM 01),|ðàêÕÌÌꮉ5ƬÐémÛ¶mk86Æ5ÊÉyúôùs©T£A:ÝÖ¶Iss­V§37çó B&ËÎ~ó¦¢T§Ž¦9‡Ã133337ç [È `i4:N'oXu-Ò»P©¶¶¶¶,8lØ´idêY£).¾tiòäAƒvîtpøé§Õ«Gš9ó·ß- {õjáÂðð%Kºt6¬_?Ãç’©g¦°ðüù † Y¿ôZåpllèôèèߟ<9((,¬K&++S*œºvýå—M›Ž?yrß¾ÐÐ7oŽÙ²eÚ´ß~Û·ïðá={ºvMOß¹sñâªãnÜ84´U«ì츸øø¼<…Aš771‘JE¢ÂB[ÛŽ-ÚºõôéÓ§÷ìiß>1qÆ_~éÝ{Ô¨þý ÇÌb‰DÚScùI ­V¥*-‰äÉ“„‘ˆ Þ÷¬ƒÃÃ;v\´(;»wï1cºvut¬¾¯N§Ó„LVTdmÍ`”•ÅÇ?^RRý[ ÅÌÌð¼B …Ç3<¯ š<ù—_ Ï«çÏ ÂÅÅð¼;6"Â××ð¼š={Ê” ÈóÊØ³øžÍ™Ó¤I£FC†\¿.‘×K‘"772røð3¢£õmbñ={zyµhQ“È¡¡¡¡¡¡™ª¦žgΜ9sæÌ &L˜0aÞ¼yóæÍ#%{N:uêÔ©Ïž={öìYÿþýû÷ïoìÙByôèÑ£G8pà@;;;;;»Ñ£G=úСC‡zýúõëׯÉ=:qâĉ'rsssss÷íÛ·oß¾aÆ 6¬vSÏ­Z5lسgLLY™¾¥}û Ú·?r$'Gÿ×±G –-{þ\_~¬iÓV­V®LNV*=Ÿð#£ÑøüæÍ›7oÞ¼aC.Ç+Áqss—æÍ»wÿb›/E™L[Û€€N\\*–XétjuAÁ×L=“„ÂׯÓÓ5ÿÐ2$A c±œÛ¶mÙ²Q#Ïp~¿ N©¬:6r– ÓÊyyñùååYY ÏŸß½{åJRÒÛ} :u4M"+;kµZ­V«R©T*A„þc ¹òˆÍæp8rÝô§mE«•Éòòära2­­™Lý <Ž3|>¦TæäTÿ\…¢¨H¥Â0;»Ñ£ÇŸ4i̘™3×®ŠŠŽ6¼ðÖðÃ+ùo²ˆa‹>Iù1ÈÛ3VóîHŸ³§ 6`Æã5hЫWL̆ »ved(Õ÷îßñâ°0 ;{vöì•+/^|ßÑAQ¥PX,+«ùóúÉÜ<:zíÚ={²²ÞÿýÑÞn©þáyeÜùýѼýº‘!òyäÈîݙ̄„]»ââD"ý "‚((¸}ûß==ÇŒiÖLÙ¢sçÊ+ßG­V«Õj²®qÕGÉ÷ä)bcccccÍÍÍÍÍÍ«öœ6mÚ´iÓÈ*ÉG=zô¨qç™J¥R©Ô“'Ož> tîìë[¯ž……­­»»ŸŸ››¹9—kaáêêëK£á8nnîääëÛ ŸŸþ}‚~ë †½}ýúžž¹ºÖ¯èãÓ¨‘»;‚ (ƒaiéæÖ²ePPÛ¶:89yx4iÒ°a³f]»¶nÝ¡C×®×V?ž™] ãp,,X¬” ³²òðàpÈ¥v(Ê`¶mÛ©““ŸïììääááïߪUÇŽÝ»ûúººZY™šÚÙyyµhÑ¡CHˆ··@Àá`ù¬ààN77ò(óïæfiI§¿ëŒFQ:œ%òÊZ71a2Écêêêëëææâbo_¹OÅq¬WÏǧIòh’ÇÃ0L4ÉãèåÕºuŸ>äÑü¿ nø_Ÿ!rm©£ hrEsnnnnNŽäÿ••©T*•RI~L’Éd2©T(,...þœ4†1™¶¶L&‚ÈåEEr¹þ¨F£T¨Õtº]õÏe±ìíY,®¤Ä°]«U©D"cÏbmî)øT!¿}yŠÒéju~¾Bñ¾ïŠÙì† 'N\¹rêTw÷„„5k&N¬É7ËL¦½½§'‹¥P¤§K$ï_c]; Ï«/¿5Pás^÷ 2DþÖ#»¹ Ò§—ûüùŽwïk4¢Råä\½zíZ“&áá,–>rIÉÍ›5Lš¨îMYp£mÛ¶mÛ¶%×>ÿüóÏ?ÿüsÕžd2ÚöíÛ·oßnÜyöööööö&#“EE:uêÔ©S§{÷îÝ»w¯K—.]ºtno߯߄ 3f´hab"•º»wîü×_Ý»_¾¼• X¶¬U«Aƒ–-3líÝ{Ú´öí{÷ž6MßÒ©Ó„ ûöuê4a‚¾åçŸOžÜ·Oÿ¯—,9}zà@ÃÍ>>rŸï)¨MÆf¯_¿kתU5éM¥ÚØ÷î=mZppïÞ•³°8räÊ•¨(ö¿ÿŽ‹»{÷ãGE¡ðxoŸWäõöyEžQ†gKXXuçÕ¬Y“'Ãyø:h4{û= âó7o>pàôé¼¼eË&M²¶þÔZ‰d•äš$ ?–¿¿¿¿¿¿±çëSTMR¦¤W®\¹råJ2%M®÷ñññññù”-ÑhZmAÁÝ»……*•>­P¤¥9òË/[·¢èĉ«VÍšeìù€o›aúsRÏÅÅ*ƒamÍfS©ùù …Jeø(Ž³ÙŽŽeebqV–þFìoCQg³e2µº°P§CQ©” P”N¯ÜÃèôêÒ (J§;8x{7n\¯Þ£Gׯÿó†±Ù Ö,+PA§Óh¤R‚@ÊibÅqK£!·ÿáKÙ?<8N§³Ù¥¥¥¥eeäVu:…âÍ›Ü\•ÊÓS àñ*ÏÏç çÇu:•J&S«uº+R=ò8r¹4† …jµVKG #+M×Ö¾=u²Šâ8…B¡õ Ér¨²*ôÓ§/^¼|icãèèäDV34ö¸ðõÐhvvÝ»bgWPPZÖ´)WõƒnÝ»üì[F–A“Ëår¹œ\ÙM. — |l´Š‹©TC"yñ"1±¤D¿fjõêŸ~ŠíÚuþü\\¨TF"Éʺ¿¸¸rªÀÇø¼UÏ‚ ÙÙÉÉEEl¶§§»»‰ÉÛ7!tpðð05•É W·¢¨áµIF§[Y¹¸”–ªÕ:N§RçåÉd †> Œ¢tº¹y½zõëWŸüÅ0:JÕÿõ!ÆææTjÅ}t:ÁqÍðnKoGÓé”Ê¢¢Ü\©”F«xŒBa±lm--e22eZ“Zªïχ#Ðé4šHT¹H£V+“eg+l¶‹‹Í§1¥ÑX,:]¬Èù§R%’ädò(|jä·‘ÇÑÎÎÑ‘Ç#&y¹\}%ëÚÚà[ƒŠÅBa~~Õâãcc¯_ww¯_ßÇG©¤Ry¼¯3 òÃLi©X,¿gØ(ŠZ[óù|¾q¦ ð!ÖÖ÷›þ4䫱÷£öuìQR"˜™ñx|þÕ«—/?N¾Þ:9¹º6lhì1ð#"owL&RÉ/¿??&ù®ÆÆÆÆÆÆF,~ÿ{ãÛ¹sçÎ;ÉR·nݺuëV·nݺuëfXpC c¾%仾ïõí‡P(ÖÖMš´mÛ´éÇ׮]¾lìñüˆš4éÐ!$D$нr%# _€/«iÓ  öíÉŸÉ×=òó¯±Çj‡T*‘””U+ÈÅÁõ¦µZÃ=­V£yòäáÃ;wjôáŠN§Ókçv/5Ý–‰‰‰‰©©ñ¦P`àÛA£Ñh4Yˆ£¶ŠfÑ6lذî}±T]º9$$$$$„¼}"¤›|Xñ Aêh hc˜3gΜ9s®^½zõêU²ð—á£?~üøñÉ“'Ož}úôéÓ»_d*œL+CºÀ—‡aL¦••½½‹ ƒA¡0ÖÖ\.•JÞ(Êc}-Æd’óoaáààæ&•ææffJ$jµ±Çø±@àŽ?~üøqWWWWW׋/^¼xÑpýrcïãîîîîîÏãñx_«”YuÈ5Ý'Nœ8qâÙBÞNðÆ7nÜX¼xñâÅ‹ÉÛ Üðððððð0îÈ|›´Z¹¼¨(3óþý¢¢ÌLcæG¥ÕÊåwïþóOå[ÙÀ× h€ÿ±¶¶¶¶¶Þ¿ÿþýû{ôèÑ£GÔÔÔÔÔÔšÜd¬z¶~ýúõë×:tèСCu!õ\È2%½råÊ•+WBJj‡cjjiiìQ_$ *i×®]»víbcccccÛ·oß¾}ûÕ«W¯^½š\ûLV‹6ì3wîܹsç::::::Ξ={öìÙÆÞ)iøÒlmÝÝ›65ö(àK‚{Aw4À;«¡ÉÛô‘-A!—ËårùÒ¥K—.]J¦eïܹsçÎcº6UMI“ȵޑ‘‘‘‘‘ƒ 4h¹fÜÇÇÇÇÇÇØ£Ô-€¨ …B¡P|}}}}}KKKKKKÉŸ=®¯‡¬"½|ùòåË—³X,‹EÖ¹6ö¸uöù!À÷Š\ïL¦ž×­[·nÝ:² ɃÞÕuÆŒÁƒ=CäÚ hÔ ïKœ ¨þ1r}fg§_uŒ¢l¶—×! Þ¿_X¨TÖ½1“d²ôôQ£¼½¹\e±¼½gÏÞ³gÈ;wÄb­ök޾&H@ÀÈZµ23‰nÜÈÈ(/;¡«ÓÉd™™ÿþÛ¨‘¹9ŽW äòÜ\''.—J­‹cÖéd²ââ7o(”Š^Tª­m׮ǎÅŽ½N¾€€‘õï?}zÓ¦79’”dxC?¹üåËÓ§7nLIqt¤Ñ*žAIEÚW­.*ºs'*ÊÛÛÔÃD­ÎͽxqíÚíÛ ·¢ÕJ$Ožäå©ÕmjuNγgÉǯAþ˜1kµr¹PXZêí]9•jk›™yäÈ;"¤ ß'Êç‡øææíÛ¯]{êTûö•ÛQ”Éôò9òرþ©ü…ÂåVT^¦Rmmû÷?vLÿo·³ ={Ò$Ãç`—ëçgkkØF¥ÚÛ{{ʪé3†±XŽŽÞÞ,ÖÛQ¨Ô¿ÿ>|¸W/ãÍ=|Y°à#ìÝ»gÏîݧNEFž<gìÕöÞíÙ³}û¶m[·ßãqãFŒ=µj@ü ?~üøñã“'OžLMÍ˓ɘL‡&M\\ÌÌÔj©T¡@Q*U$JK+*ârÝÜllÌÍi´—/ŸCäÚ h€$$$$$$\¹råÊ•+†íÝ»wïÞ½{£FA-Nø6& SÏŸ·öY«•Éòó325š† {õjܸ~}¡°°ðÞ½Œ µšÉX,µ:9Y.'N­NM‹»y35•|~yyB›7õêùûwïîåenÎádg?|xî‚hµjµaòD§S(²²èôàànÝÄ0…¢ àõë/ÞU¦ÃX,gg€Í–É^½**’ËÉv©4;ûõk.(ÈÇA^¾|þœŒ-ff¾zUXå;àK4¨µÕÐê&Ã4tm•Ý ©Tb±R‰¢ÖÖt:†ed¨T!•ŠÒé\.†aB¡Z­Õ¢(†Ñé¦Ó)•Tjié«W‰‰±±IIII4×¶m«V~~……11éé†ñQ”Ba³Éþ·n]»VXhcS¿~Ë–žžùù••½=N£‘J A(:ÇQAÔjEqœÅÂ0F*5öÑ€ f쀺‚¼-á¼yóæÍ›G®‰6öˆÔ¦ÚM=#Š"AH$ååZ-…bfÆáP©(ªÓ©TÅÅyy2ƒagçèÈã!ŠÒéææõêÕ¯ÏåR(R¯ž‹‹¹9yg­V¥‰ F£©zá8ŠÒéööd²gAAFFNNE§ÑÈD3‚ ˆN§TåæJ¥4š­-Ç` ‚P(,–­­¥¥N'¦§“#ðuÀ hð? {,ê"­V*}ñâÞ½k×^¼Ð·‰Åwîܺõᅥý¤Òì옘¨¨ììŠ6‘(9YÿÕfIIJŠHdøŒ{÷¢£É["ÈÇ׮]¾\±Å¤¤„„”}OF"yôèÞ½èèwQ§“Érrbcÿú+'§¢U"yõêò嘘Šíør`4€/оH@ø" 4ðÅq8¦¦––ÆðµAøâlmÝÝ›65ö(àKR©Œ=PA _$ |€ðE@ h@uá«W66ÆÅ—Ù¯7*þ˜ˆ bcƒ ¯^"‚ÿ߲͛gÎl×ÎØ£ø–¨Õ™™Û¶ <|xL̼y/=êã#‘;6|xxxddXØ©S§O÷îmcC©CyŒ¯;f‚((¸xqâÄ)SŠŠ,8rdäHgg:ÝØsV‡^¸ÀÐÔ©ááÆàÝš6õòªW/>>115µ&톢U[0ŒN·°07§Ñ°ÿ]íVçä\¾¼k×öíññ …B‘›‹¢;.^wÇml˜ÌÔÔòroïQ£æÌ4H$:qböìíÛOŸÎÌìØq×®ãLJ 11‰?ujË–íÛOž¼s‡N7.4ÔÜ|çÎdz²lm÷ïß°¡gÏE‹æÍ³°øÚ{ À§AQEQN§Óé ò·ùs@PGÕµ—K@U†éfòçÏ‹§Råå]¹rèÐÎ.ddä燆®^½vmË–<†!ˆZýæÍ™3óæíÜI¿ürò䌦¦gÏŽ9bÄ’%¶h±sgP©iÕ¤ð—õ¡1çå]º4gÎòåÏž……8±}{h¨‰É«Wë×÷é3þš5^^QQ³gpàÀáÃK–hµ:‚P(ææ-[öï?tèãÇQQ׮ݻ2rä€çÏŸ9óâE`à¨Q3gBê|[¾Üg|ˆüu"H@ê(™L©$cðn†IgÃÔó§¬}®@£ÙÚví:lØ„ túï¿·j5uêš5>>íÚ=Ú·¯¹ynî¥KgÏfeq83gÚÙ1™Š©é A‡ÿûï AÆ›‰ùüùãÇ33íìfÏnÓ†Ï'ŸãêÚ§O÷î8>bÄÆ2gÎäÉïJ›£(†}ít:Ô6H@ê(µš ´Zc€ñiµZ­V‹a†Á ´ Î1LC^êùm<žŸŸ……VûàA\œP¨V÷íkaÁb98°XZ­Xœ”TR¢T™šÒéZ­J%*•faÁd³Jô»ÆÌdÚÙ1™"“Êå ‚˜˜à8A(ùùj5ngWñü·W.êtA®‰€o$ u”ZMðF ~Tr¹L&•Þ¼ùßýÕ®]çÎ={Òht:ƒA¦¡ÉK É wÆ)ùÜUÏzú÷ÿdÖÄÄÓÓÁN//OJJM--%ˆ ,,üüBBD¢'NŸ~ùrĈ3‚¸¸;÷ïg2GŒ˜=û͛ݻwìpr?~Âoo.ôZ‰äÉ“víJKëÖmúô~ýlm$'çâÅM›ÎŸ7ìù¥ÆÜ´i¯^NN6\¾/vïÞ½;—ûæÍ•+bX`àï¿#†Q(<†•”$$$%••!ˆ@Àd¾zuåʵk……j5‡CnôZ¥R(T(à³àÛŠÅBa~~Õâãcc¯_ww¯_ßÇA8ÃoäàCLM)•ês"ÄÇgeAZ~TçÏŸ8±gOçÎmÚ4ibmmeÅãݼùðaVVnnJJ|¼••µµµ5‹eiéæfnnaae¥Óiµ:@àêêáñþÈ«V7gN¿~6¬^]¯›ýu/mÎÊ’H4''.Ç?'ŽNWRrõêêÕsçþó¹/îîlöûR'JeRÒ… ÙÙææ>>Ba\\~¾¹y@@P»»þbp@íêØ±qckë’‘¨ @ÿùºiÓ®]=.øR óäë^ÇŽ!!ƨR©DRRB.!¯P¬¨7­Õ¶èiµÍ“'Þ¹+ u”J%8àÇåæÖ ¿ÿåË×¯ÇÆòùff “ieåîÞ¬™¿¿··§§§§§çŠëÖíØÑºu` ¯¯ Ÿoe%•Êd•J£ÑhÕEþé§­[—. …Â’™ŒJ53£R¿Ni¦°ðùs‘ˆÅ²´d0Øl*õsVps8íÛÿôÓÖ­-Zû¢RÑéffÕ÷W(JKUªòr.×ÄÄÇ'$ÄÖV«U©à¯-øÒ  ¨£ 4üÈllÝÜ òò8KK›ì쬬ÔÔ—/ ÒÓssóò 4hܸU+ƒÉ$kk>ŸÏ •J•мù]Qu:¹|Æ9sfÍjÖlΜ+¯\YºôÕ+qw'ˆ¼¼¤¤ääîß3fýúƒ_¼8|xÒ¤#G®\‘Ëׯ?p`ÕªèèmÛ,ˆ‹³´œ8qΜnÝâìÙÓ§SS¹\GG.W«õðèÒÅÕõùó-[Μ‰Ž‹ét©4'ÇÊjþüÝ»÷ïü8?ŸÃ)/÷ðïÒ¥C;»³g·lÙ¸‘ŒPZšœœ–æëëì¬Ñ:v6¬qã¤$ ‹#FŒ¨WÅ"÷$/ïÆµkOœ¸t)=Ü—7F4(0°_¿ÐPr_”ʦN9²AƒÔÔ‹/^LLÌÏ71A‘hèÐNš7çñþý÷•+ù|¯¬,99##<üçŸW¬€k@uââbbþý·j»¿@@ppÕvH@ê(‚Ðh ®ü¨är¹\¡ps³²BÖ­[µªWïÔ)¥R©ôô´·g±Z·nÙ2(è÷ßÿøcëVllÜÜ\\œœär‚Ë)É|w\C­.*ÊÏ‹E"…ÂÏ/0°kW…"'ÇÞ¾mÛ6mÂÂ:wîÓçѣ˗ÓÒ´ÚŽ‡ ûóÏ©SËÊ (+S«¤¤ÄÎnåÊI“zött\³fâÄðp›BC ‚Àñ›7W­Z±ÂÖö×_#"h´K—6n7nÛ¶¨(:BÁ0 ³µíÖ­^½œGÇààzõø|®¸øòe‰„ͦÑÈŽ…Eq±\îï?t(¡°ËíÝ{à@ E¥"Ž,beÕ´iÛ¶jõ11ä¾Ðé …L¦P88´iCîËóçãLJ…]¿Þºõöí;vìØ­Û›7¹¹AëÖõêYXh4QQ 8ztƒ¶¶<ƒ|÷î¿ÿ¦¤””»¸˜šâ8$¢ÀÛZ´èܹºUûCÔ9ܹóï¿..òæÍ›7ÙÙt:“ÉbYYq¹Z-N§ÓéL&—Ëã9888ööŽŽNNEEÙÙŸ2EQÅ0Ç0 C%ÿC­A8{ûnÝ‚‚ÒÒÒÒnÜ R‡Çq c0Ôj·°hÐ 8xÀ€F¬­Y¬öí»téÝ[©,)yò„|ãã4N¡õžÕêÊÛÕéÔj‰Ä0Ž#È€ …XGF ÇF¡P©TêÇï ٢ߗwÍŒF£Óa…bX D§#o¬Óá8Üæ€Ú”——’oìQÀ—bjÚ ±G¾X ¾y øúææ¾~šuõê£G<ž••ÝÅ‹÷ï?|xÿþ“'II……ÏžQ©RXX\,ÙÙyyµkÇd²XÎÇoóÝ©V:]  »}{óæþéÖmâDGQ*•Bqr¢ÑòòââÒÓ%__ÀÒR$ºsçþ}Ã×—ËÕÇz;¦R©ÑèÆq“† ãâ^¼ÐG ÓD&“É8ç]£Q©²³>ŒŽÎÎnÒ¤eKÊ{ÞÉ8mŒã&&ÞÞ¯^åä(•~~öö¢V …11—Û°á×8Æüxx< Q#cø\»‹…ÂüüªèïÒ[¿¾‚p8vvÆÞ5À·Äðî·ŸæÚµÄD‚0ö~0¦Çcbþù§]»¦M]]/^ü矛7ÍÌ8:}À€ú÷ß±cÏžC‡;;KËvíÚ¶mÕ*5µ¬ÌÂâýë…5¥²¼¼¼\*U((6ÛÔ” ¤ÒÒRg2MLX,ƒB‘HÄb‘HßÂdÒh:T*J¥bbbbÂf“ñu:Ž d2©T*U©P”B¡PpœJe2ÿ½ûk"ë>é$ô^VDDPì"XQ+ŠŠ»®u×ÞûÚë*¶ÕUlˆŠXW]D¤ƒ(Jè½$H2“ïûòE èù=ÏæaïÜ9sï$rrç •*—WVVV•Êd2¨ ‰TU%WVÊåt:“ÉdªªÒédre%Š€a •ŠJˆ ••,–††¶6Š€arye%ŽcŽa‰H„æÂb±XL&êFÎd’ÉIM ‡ƒãb±PH¡¨ª²ÙL&Î`P(!‹Db1ŽS(4…‚aŠŠ “I£ÁÚg¾Ï¨Q}úóù%%ùùèó5—kmý¹uaàW†R6drÍ•+´\zz,Võ+½ï èêêå¥ìqÆQQ!òù(Åüiºùãt5‚ÀñØØ¨¨X š)‰D"‘ªª*+E"2™L¦PP‚677'''‡F£ÓétÔ¯®ÕµQ( ›­®Î`Ô¬’f0ttû¨«ki}Ü‚a,–¶¶šZíñQ©,›­®Îb}z$6»ö:lƒÃÑÖf0>]W„ÇY}T&õÀ°Oçòi:ýã•OM&«ª²XNã?{ðó“Ë¥R±X ÈËãñ„B °°!¿Ðo7GCCOÁÐÐ00PQa³55•=h*€ÍŽL&•J¥¹¹¹¹99þþiiïß‹D"‘HÄãefVU¥¦æä|~iiIIZZff^Þë×ÉÉYYNN#FL™ÂfÓhÊž€ŸŸ@——šjddbbfflܳ§“J.׿JRge¥§§¤äääädd@ðsƒ4hvP¡C==}|”=àóÊÊøüÂB{û^½,//++-­«gvvVVVÖ¬Y³ví¹sgÏž9£©©¥¥«ûîÝÛ·QQšš¦¦Ÿß¯¼<*jݺ={d²M›6lppJÓÓOžœ:uÆŒ—/ÿþûáÃ3g¤Òôô‹wíJIF£ÑètUU‹Ã144667g³9uõÚ=…²2>?//''=] àó‹‹•=ö葉®¡¡­ÝðY‹DB¡T*•J$Êû÷jøóš  ýûOžärg̘1£S'6›L&ˆòò¸¸ Nâñ† ™7ÏÃÃÀÃrr‚‚޹sG±gÂÊ+W®\¹lYHHhhhèû÷))ï߯X±|ù²e™nþ|œÏ·jj’ÉÁë×ÉÉ|>Ž›™éê&'?xðï¿……2›ú bl\RrõêÍ›oßzz.\hcóæÍ©SçΩ¨Lš´x±µ5‡£¸^¾©´´¸8/¯ö”úi×®C‡Î1ŒÍ62RöP-‰º:•ú} G ´´¨HÙóø2‚ ‚ Ó &“Åb³ÕÔP{||tth(—kfÖ¶-‰D&͚ͯuffzzJJçÎ]»öîڅ²²ÒR—J¥ÒŸoÖµÏ@íçÑÐÐÒÒ×çóKJòóÑçk.×ÚÚÑQÙã)#ãõë§Otuõò*..,ÌÉQÜzõêիׯ3f̨QuEˆ‰‰ˆxö ^àç §ÇbUDï{è_‡²ÇGE…PÈ磯ÓÐ'⚯ÖB±¥AàxllTTHÈO›ü ÐYó~$“Éd ­öU»ŽŽ®®¾~M}5e³)f­­­££¯¯8ë¼¼œœŒŒŸuÖ yÞÀ¯ƒD"‘H¤êŒ\NŠcÆŒ=rdívôˆR3(‚²çM Jpš©æxßÖº•————•)¶0 †ªjËšÅ×B«[PÁŸ{ÖŠj?ïà×Áb©©ikgdðxIIŽšš†Aàø—*'£„uqqQQ^Š ìy@Ó‚ЀfJ^§²²èh?¿Œ ‰DÞlH¥IU•âøÉd …BQìSY™•uÿþ™3»vÍ™ãììè8zô©SÇ<¸fÍÂ…K–lÜøÏ?II?j¼Ÿ;‡ñòeQ‘TÚð( …B¡(ÎÕzVì#“••½{7bD¿~ýû÷è1xð¢EW®dfV÷‘H BB®];rdéÒ Nœ¸?1Q(ÄñúŽJååÉÉwî|<Ú²²èh_ßaæL©>nQÑ“'‹{{oßÞ¹|.æ—Õ~ÞÀ¯C]ÝȨC>_&c0ÒÒ …ÂŒŒ’±¸þÇÌÌÒÒÊJ‰„ÁÐÕUW76¶´Tö< iAÐŒ}¾Bõ%jQwe<~iü †±ñ A'Žߣ‡Ž‹ed4}úìÙóç¯_¿jUÿþ)).ìÝû£F[ûâxQQR’H„ã;w …Ãi×ÎÈH]ÝØØÅÅÌ,-íĉµk/_F[i4]Ý^½<='N3f„ñãìÐÍ®¯|Žýûï‘#AA¶zF5ÇÕÖvtÜ·ïÂ…•+2‹ÏÅüÖ¹€_…B¥R©******l6›Íá4ü‘Éd2™ÌÚK:àç%8ÍÔéÓîÚõî]BB||«V3f92k–½½ºúçþ<“Ë++W®\ºôÀ.×ÊJGG ˆŠZ´hÏžmÛââ.]:xððá»wKJ\][·~ÿþݻׯ#"’“I¤€€;wNž¤Ñ0 äÒÜܧOOŸæñ**RS?| “û÷_¸pÉ’õôsnµ«¼‘H$ƒ¡©©ØV÷xœÕÕy¼»wOžôóKLTU¥Óss““9œÉ“.´·ýúìÙ”GÇå˧L15¥ÓqœÏŒ=zúô«Wׯ?wnçN[Û“ŸïÞ™3§O‡†ki‰Å\®ÍرãÆõì©­Mm¤ßTªŽÎСkÖÌž-•Ο¿cGE…\îíÍb‘HF"‘É ^Sÿ®®¹wèšzêÔÉ“ññYYÿíç7|øòå¾¾_¶ˆãATÔÍ›þþÁÁ åå«Woذd †ÉåUUè¼=}ZXÈdfe½~ýþ=‡ãí={ö“'51ј3gâÄž=óyÀ¯­¤$##!AÙ£€¦¢§giÙ¹³²Gš#H@š©iÓ,X¾ý×^½v¶¢"-íÁƒ­[—.õ÷oÓæ·ßD{áxaaÝãY° K—‰wï>|øÞ½ü|;;/¯³gwíÚ¶ÉÄ0‰JmÓfذ¤¤ÒÒêóC&««wëF§WUýýwuq‹šÊåTªžž‹‹——«knni©¥åÔ©¦¦tz}søú¹£ÿ£P45ûôÙ¼9 ÀßßÙyĈM›V¯>{ö?œœèôš’õ=ׯϟëV``r²½ýĉS§jiU:Q¼A šZ×®C†tïþ×_gÏîß_}VKJBCÑysw߱㯿Fž4ÉÀ·¤$UU o=Àç¶kgg§ìQ@S’H”=ÐAаXd2Ž‹Å8ŽJF|ŠD"“Ï;t诿(mmcc .×Ô”Íþ¸Ï§ëŽI¤êÕÔQUUTTUE&Ìœ9}ú”)¨}Ö¬ùó›r^ªªff}úLœØ¹ó©S‹9Ža½{üåñÈd[¶lÙRPpø°Ÿ_` «ë˜1±±ãÆ-]údzgÛØüèççk‘HªªS§DEíÚµeËýû––k×cöå碼<.îÛŽJ¡hiõéƒÎÛèÑóçOž,•êêÚÚ¢ó¦ìsüœ 4 ™R\ã,“É—«ªª¸ÚµfÍlIÉ‹zz£GûøÌ˜1aÂС=z˜™©ª*ö©S1‰Äd¨ªÊåâV¯ªªYI\ŸúÇ_W´þXC£S' ‚(.ŽE[ëLV^ž›[ZÚ¾½§çš5‡Ÿ?¿lY×®¹¹W¯îÞ}âDr²HTßQ?{í³ñµ2÷êv‚¨n;výúéÓÛ·OJ:yríÚ«WÓÓþ\ÔuœÚ­Š-ŠçíÞ½[·VFFÆ8اÏË—»vÍ™ƒaææ†nX÷sakkd4|xçÎRéþý+VlÚäî~æÌ’%oÞ=|˜›+ñùÉÉ|~IIiéãÇçæŠDAy9ŽËå**8^}Þ(”öímlÊÊjΛ¶öµkó磘è ,^ìáÑüW“åáó##/^¼pÁßÿÞ½/âãÅâË—ƒƒ¯_¯¯C‡/^ºT&kÝZ[»¤$5•FÛ¼yÿþêòƒ2YQÑãLJ]ºôêÚ:xðÚµK–ôíÛx÷g€‹TZZ\œ—W{CddXØ“'íÚuèй3†±ÙFFÊ* %QW§R¿¯öSQQAAN޲çÑPii©©IIvv=z89µÄñ=½êßèw‡¹yëÖ:({\?BíçÑÐÐÒÒ×çóKJòó«?_ÛÙ¹¸({\ )!!3g¾eË_=\wO‚(-9óî]©ôøñáõ´Š‹'O¦ÓÝÜ.]ÒÐÀ°ÒÒÐÐ%KÆŒqp8p 8mõõ}òÄ×÷ÆýûûõSöL¨b½ï èêêå…ZH$‰DjŠkI!ò‰\Q!òù(2ADõΆa¡ØR p<66**$Jpš±ê¢-ã±¥æÞXs¿2™F#“?½çÌçTT¤¤ôëgk«¡A¡`•ª©ik;`WQQ½õúõ7oTT·Òé ÿü£ì9𽚮Œ!Dþ1‘¿\¾h¦šç›æ¯3~˜;K*-)‰ŠêØQSÓÞµÐhÖÖ±±%%UU:aXTTf¦Tª¦¦¸U]]*ýRYhÎ  ÐäH$*•Ëq-× ‘är‰Øl´‚Z.çp¨T ÃqÔm•É0ŒNWöØàÛA €&G¥ª©µoŸ–V^.•¢™L(üð¡m[‡FC[ i4T£zkE÷å´d°ÐLµkgiÙ­›²Gñí£E·Qö¸~4Å[Lü ZÖ«à×´uëÈ‘“'ÛØ?îççæ¦¯O¥Êdùù7o.Xàë±hÑ¥KÛ¶uè€aoÞlÙâåµc‡­í‰gΠžõGæó#"®_¿s'$äñãÌ̲²‚ÿ22ÜÝ ârŒÊÊ7oîÜ)+³°¨ŽÆáØÛ—”¬^½téþýíÚé觤ɛ7<ˆ"ÚÛïÜùÏ?‹íßèÐöíhëœ9—/:¤ì³ߎTZZ\œ—W{Cõ]z;tèÜÃØlø¶ ð5ï~ûmл²çÀ·@_Ìóù%%ùùÕŸ¯íì\\”=.h*Šyô¾÷«-Qú¹UT…|>ºçAAÔÜÿ‰ [ªŽÇÆFE…„À h@3Uýh©  h¦ÌÌZ·¶²Rö(À·ƒ›hu®€¦Ñh4: pÇɦ|%'¹œB!“I$eåËÍMI‰ŒTö( ©¨«[ZB!Mð9u& [·n×ÎÊ*5õýû·oÍÍ;w65UöP-IY™@P\¬©©©©££ì± |ZZ\n§NÊð£Õ™€æpÔÔ455445utÄâÂÂÔT]]}}ccXϨ‹HTY)‘TU‰Åee****ªªÊP¦/Ü„Ð̬U+ ©T*•HÊÊøü¢"¹œ BÙÃ4Gt:ƒÁ`p8Žº:•J¥ÒhÊP&jC:¡zКšZZººÊ0~6çÏoÛ6qâ¥K·oçåÙÙ?v,–”N¥öéóÛo‹{yYY±Xp*hyà­Ђ‘H$RÓ‚È"Cdˆ ‘!2D†ÈYY‘M^^'öë§£Ãfs¹£FMŸ>{öêÕëÖ üþ½ŸßÆOžÈdÊ#àÛµÄwcˆÜX´úû•——•ñùyy¹¹|~iiQ‘²'F£1ªªl6‡cddllnÎb±ÙjjÊøùÉår¹\‘!2D†È"Cdˆ ‘!òϹ¥èÝ»K—N^¼ˆ‰IHhHû—ÕNšH$ƒ¡­­¡Á`T¯~–Jsr‚ƒO:q":ºªª²27—Drv^½zîÜÁƒ ~T!@©4/oÚ´ Ö¬7nÝ:w÷¨¨M›vï^¶ìêÕçÏéô3Z’–øn ‘K“' ß¼‰wpèÝÛÅE_ߨØÜ\"©¬‹•=qИÈd …BAihô"/(ÈËËÈ`±X,GÙ£ÐøPŠ¥›k·_l¹Ç7nœ9óܹ6m~ÿýÂ…^½45Éd/(¸uË××ÛûÈ33ww##‚() ÚºuÞ<##+«Ë—ÇŒ16þIhÍÀ@Uµ´4??+‹Ã2ä?®^>¼é -O“' Û´iß¾sg¹\.'ˆªªÊJ‘HÙSÇe2™ =¢¥þyy99éémÚ´k÷ñ"À—HÊ„ ¶¶••K–œ<ùß³fõìéQYYX(‘ÉFFC†øøÌëà ®Ža3f,Y¢¬q’ÉTjs¼àšïJ@ûûߺuÿ>úyìXw÷!Cj÷ÑÔÔÔÔÕ•J%’ªªæ¹4.ô,£¢+B¡P(*{D¿UUUU*•B¡P¾ú·\׿âÚÚµkß¾cÇ””ää·o•=c€2)®ƒnŒµÏ545ml´´äò¨¨ˆˆ’©ÔÝ]KKUÕØXUU.çó““©ÔÁA]F#‰¤¤D"!“µ´˜Lê*6  a¾ñm¹!©g„ÁPQQU~þºÏ/_>|ؽ{Ïžƒ}íÖŸT*•J$Aii~¾²ÇòkÉÎÎÈ,-;uêÞ]yPWφÿ+® ¥žQZ±EÙ³(Ç÷§žïÞ  )../ÏË º~ýÞ½ß÷ô\µÊÅåÚµ… W¬X¹òÔ©[·œ1ãСsçd²ƒ×­óô\½ZOÏÖ¶}{OÏß~óö¶·Ç°;Ç›>½sçC‡Nœ:TOJÅñ‚‚ÀÀ%K,ˆŠš7ïìÙ-,0,1qÇŽ)Söì±±9|¸ºç׌W*-,ÌÍ­¨(.¸~ÝÜÜÃÃݽ33e?м|uúÛ“Vu'Â~6õÏô×9F§Óh †²Gñk‰**„BtX]W(þ+n,°&ð=<<-:ÞÃcÑ¢Û—,¹råÅ Åtº‰ÉðáË–ùù}®æòÊ•W®œ>­ØB¡èéqðà•+#FÔ´ZZ®ZåïÿqϯA£éê^¿¢ì3ÍÝW' QÒ%°~Ùþ¯S|£þ™þ:ç¡Ñèt¸ûï$—³Ùjjõ¿Îÿ7Ö‘!õ jûÆ OCWVŠÅd2™L¡Èd2™Tªì)7•®]íí ‚ >·Æ¹þ­?:Ng0´µuu •=–_‹¦¦¶¶¡aýÅ7ųP4…ï*ÍßtUIIqq~¾¶¶ŽŽT*òùÊž2øTUÙlç×I¸·tßVZÙ£Í]“ßöÇääøx]]#£êª´¿VŠ_ Žã¸Lfhhlln®ì±@sQR’‘ñ}·é€æLOÏÒ²sge4GMž€¶¶¶µíÙ3??//##??''=Ï/--*RöÄAc¢Ñh4:Åb³ÕÔ MLÌÍY,KMMÙã€æÂа];;;eš’D¢ì€æ¨ÉЇÃᨫs8ðM†¡Â•d2™L&+{,ÐT~Pàg‚ãUUÅÅÙÙÉÉee¥¥ ):J"‘H$’šš¦¦¾>‹¥£cjÊb©©ik+{6ÐT  P²ì쬬ÔT##“6mär‚ËáÛ@óÇã%$„„89¹¸Œ'•—  ß—D"‘Èä—/ÿû/(¨mÛnÝ>[x¡ðÕ+_ß¡C.´µõöž:•F++ »|ùêÕŒŒñã'OvrJIyòäÞ½üüéÓoÞI€’¡Ô3•J¥R© •J¡4|_´v )F‘!2D†È"Cdˆ ‘!²²"ƒ–­wF¯y½²²2333'Ož2ÅǵAàø—WL“ÉššŽŽûöùúúúúúNžÔ¯%¾CäÆ h€’¡UϨöZð5û~ù·oD†È"Cdˆ ‘!2D†Èʉ Z¢ºSÏYYYYcÇŽ?aBfffff¦âÖ/EUUµ¶^¼xéÒnÝêêA£öécnþß+WÅÇlÚäîîà0~üÞ½¯^y{»¸xzž=›ž^U…úÿóϦM'zx •J&ý'ôª* ÅØØÕuÆŒ… {ôPWǰY³æÍ[¸Pyçð³Ðà«}OÅ^àçƒRÏ“'OšäíZÖ¬Y·nÃgggçê*Ðñ£FöñÿËdŠKÉTU ¢´4)‰Ï¯.ÓAIq±X,“)û¬~€_Ï/))(Éd2™ŒLF倿hëÖ‘#'O¾s'?¿:¡*“åçß¼9gÎÈ‘ü‘”$c†‰ÅoÞlÙâá1i’bφC%5V¬X±béÒ  »wÑçå}ûþüsÏ¢ tåÊÕ«þþÏž …YYDG—–ÊdRiaáóç7o¾|yãÆµkÿþ›–&£óòåS§š›ß¹3a€“&Í™³jÕýûÉÉ$…"•fgß½ðøñ‰ÿü3{vnîš5Ç?iÒÌ™gÏFG“Ht:®š4 Riiqq^ž²‡ŸÒÐÐÒÒ×Wö(øv|~II~~ddXØ“'íÚÙÙ¹¸({D 1¥¤DFèêêåU\\X˜“£¸õêÕ«W¯_3f̘Q£êŠñì¼6ÀÏA]J•HÐÏè}ýëPö¸@㨨 ù|tõú ­æJŽê/Õ>¾Æƒ p<66**$äßf1L&‹E§3 ™L&CQ@c#‚Àñòò²²ÒÒæyWVh8‰D"‘ª?ÝÈå¯h3fôè‘#k·#h/AÙó€¦E¥ÓétF£ÓÑ åpœ  Î i°Xl¶††DRUUY)‘H$èr7hi Ú´éÖíÕ«ÐÐG**ÊÊŠ‹²Ô%Ùl55mmAÙó€¦E¥Ph4*• >ÿ4ô΃aÕç@KÃd²Ù ƒaeÅáÈd_³˜J¥ý?eÏšÃÐ…"€àWñáûw¯_————óùååeeúú\®¦¦ŽŽžž––¶ö×T^...,ÌÍåóKJŠŠòóóò22X,6[MÍf³54Ú´±°°¶VöŒàG¨¬LK»råøñ#Güü^¿f³îØ‘F+*JI‰ŽNJÚ½ÛßÿæM§±oÝ+—ÿûo~¾L6`€¾>||~,ªeš/*Žã¸âwtQ^þæÍ­[û÷geijÒéQQ‘ŸŸ’¢¢2vìŽóçwîÌfC…" Ã0¹¼¼<1Ñß?:Z[ÛÓ³_?==øàš™L&“J_¿Ž‰ 544667oÛÖÒÒÆ¦vOt±XffZZr2›­¦¦¥Åáp8jjµ«’¡˜EE99ÆÆ\nÛ¶::úúÆÆµ#gdðxïÞåççæff¶icaac£¦¦¦¦®®ì³É477nî\_ßììÈH]Ýß~ëÕKM äÒÌ̳g=*)!ˆ¡CutªSÐÛ·Ïœ9}zi©¹¹¥¥®®D’–6dȲevîÌd–”<~|ìØêÕoÞ¸¹:´paëÖtºLV\üôiÏžƒ=zèÐýûþ™™ù×_[¶œ?_P ¯ÿòe›6½z͘1{ö!ð 4OUUUU••Ê4*µ±—[€ŸÝ·Ã0L.¯¨xýzß¾I“–.ÍÏ¿qãÁƒ;k:J¥>>·o—–âx§Nªªp“B “ÉòóïÝÛºõÊ•üüÝÝûöÕÑ󚟒“_¿6002233665mÓý«úôéÓ'Oj÷wttttrzû6>><œJ57ïÐAEEE…ɬ³cGkk{ûêÄõç+™šš™µk‡Ž˜››™ùá‡ciik«ì³MëúõãÇ÷ï'ˆ‚‚÷ïSSe²ýûOž¬ùs\*ÍÎŽŒ2dË–+WF64¤R1L$rpX²$2òÑ£?ÿ´·wvž2eÒ¤øø¢¢ê}¨TmmGG:½²òÏ? ‚N713fÞ¼I“²² »w_²¤M:]Ùó€Oýõg©4;ûÚµuënÞTU]¼øÆO«BS(3ftŠîßZY™ŸÿäÉ–-.$&jkK¥ïÞ …;=ºqãСϞ>½uëž=þþYY#F¸¹u’˜+<¸fͨQAAÏž…„üûohhQQPÐÿ]¼vúô–-»w_¹’•5dÈÀmÚ¼ySZÊå¾xñø±Ÿº¨E"©ïèOŸþõצM»v]»VX8rä°aII QQ¡¡‰‰$Ò³gaaèšD’•tøp@@JŠPøî]b"™ìâ²~}ß¾éé;w¢S§nÜèåæç÷×_(BŸ>«V=Ú»wjêŸþùgTTzº±ñ‰{÷޽iÓÊ•ººTjeåû÷×®íÞ}ÿ~~¾ªjFFTÔÛ·jj ìß¿zu×®޲Ÿtðk‘H*+ÅbCCKKss‚Àq¯¿?êSUUYYQÁç—–R©4š…B¡P(¥¥ÅÅ……(&êùüùÿ={†öíׯoßþýÑϨµ Äw||tôÿI¥2™TŠ¢)ûÜ@S5jöì :w.(¸~}ñâñã÷ìQ¼’ÇKJ^¾;¶wï‘#k.ØUUÅñçÏ/^äñÄb{ûÎ?½ú«Ð- Çe2™L"Éȸuë￳³MLÖ®µ·WWGíŠ]ŒŒèt©477 `üxsç®^}ñâêU´U,~ûvݺøøÊÊqãúô7nÔ¨ãÇϜٸqÚ´… W®D}$ïØ±˜míéÓÿ}ذéÓ—.åñŽŽ./WSëÓgܸѣ÷óÛ¸qîÜ•+7oF{Éd99W¯þýwZšX7ÐtH$ …Ín×näÈõëçÏ?v,!A$Â0UU Cwà¨J&‘ÐU%5-µ¯-!ˆÏ]oÍÃ0L.§P˜L==&S.¯¨ÈÍ‹Q¢ }ÀùøÇE¢œœŠ CÉ£êv EEE__$’É?¡V5Hÿ£ØB&×ôAû|¼•Êb™˜ˆD8N_sôOã(‹ *+ *+)#£… ,˜7oÑ¢•+÷î}þ<"âÆ Åʧ£ýüz¤š‘èè8;ïÛwàÀ¼yëÖMžìêÚ³ç A3f8ðü9ºˆösgá±é™L:É”ËqÇÑcíׯbJõa2ét´U|FÛ*+Å⊊Ú1{ô°···WŒ‰Zû ˜ŠÑ°ïV»>ucÈ"Cäo¬X–ˆFÓа²23{û–ϯþšBÑÖîÑÃß?4´°°æ‹i‘ˆLîÛwâÄV­Ð_9d2“žPZZ™ „ÂÜÜ꯫ˆÅ_ººåç<Ï"CdˆüóF-…@}ùòÑ£«WO›6iÒˆ&4d¯£G—/_µêС£GwïÞ¸qùò}û·âxqñÓ§Š[_¼()¥l åk‰ïƹ±ü¯!…¢©Ù¹sÿþêê……·oÇÅ µ»Þ½˜•…ã**††,†‰ÅŠ[q\,ÎÏWQiü;¿Êd"QNN«V•J¡4ÎÑ)UUcc‹ ø|Åv‚HJJ¾g´8^^ž]Zje5iRXXHÈ?ÿ¬_ïà™yáÂúõ{÷6ö¹àËD"‘H($‚Àqôhoog×­[]¨OE…HTVÆ`0™,–â=™L«v̰°ðððpÅã¢Å>(fãÞ!º®ÚÓ"Cdˆüã#WUeeÝ»wéÒÅ‹Ož\¾|áÂqq޳X³goÛ¶lÙáÃaa|>ŽcfbÒ¥KpðêÕ«WoÛ¶wïž=6¬\yâÄæÍÝ»«©¡?Y,KËÔÔåËœœ½¼æÏ_·nÏžóçML0,3ÓßÿŸ‚ƒóó©ÔÖ­¯_Ÿ1cÆŒµkÏž}ñ¢¨èÓôôÏwž!2D†ÈùWˆ Z uõ®]ÇŸ;wÅŠ3ÔÔD¢ŠŠ/íA|þ›7ŽŽK—Î;wî’%sç::ÆÅ ¨*AðùÛ·ïÞ­¸õСíÛÔ=W¾WK|7†ÈåÿÓ@tz«V‹=x•õä‰ŸßÆ{÷⸞‹E&‹D<žšš»ûÚµ †žž›ÛÅ‹7n°X6ìÛwü¸ŽŽTš™™˜XVfiyäȺu……Ožøûfe•—?z”™)÷î-—‡†\¿þâÅÛ·:µn=l˜ž^XØíÛaa/_ª«·oߪ•››JnlÝzèЉI^^JJq±©éþýÛ¶¡õË_sôÿÍÏ—Hz÷ưÐÐëׯ_ MHÐÕmß¾U«ñã]]ÿþÛß_&6l„9sZµÒ××Ö¶²;véR ‹ääê!!ׯ߼9}º··¾>ŠP\\^ž›[XH¥r¹£Gwë&•nÛ6{ö’%cÇÞ¹s䈆†LVXx÷îÚµë×S©;ÚÛóùr¹ƒÃüù{÷.[¦ì§üŠÒÒx¼wïÚµ³°@õDI¤èèØØøxÅ>]»ÚÚvîüñ^©©ïÞéép¹t:^}c+##“V­PÌöí;t°±QŒ¦µ£õÎèíÅ´´ìÔÉÎNÙg¾D"ÉɹwoÏžÓ§_¿Æñ’’˜ÏØxÁ‚½{—-ëÕKS³ötº±±‹‹Ïºu..>>oëÙóõëK—zöTl[½ú¯¿NŸ®{$’ªjxxrò›7·¯X1ožâÿ''‡…]¼øu³ÃñE‹¼¼æÎUSëÒ¥uk KI _±âĉë×9¸s9ðµ(­!ke²¼¼{÷&NìÕküx ÃH$^½||nÞÌÏ—JGŒËïÝ;~<.N[»G £RÑV ýû÷ïÇ0 ëÓGÙ3€oA*--.ÎËSö0¡0"ÂÛÛÅeÓ¦¿ÿ~ñâöme€ŸªãL¥R©4šžž¾¾±qCöÊÊÊÊJM56ærÛµc2 £vL##ccsó†DËÏÏËËÊBõ Û´i×®S§†ì¥¡¡¥¥¯¯ìóøáx^ž¿¿‡Ç€{öܾ˜.†‡ûúðÛoff‘‘!!¿ÿ®ì1~™,+köìÿþc±Ž0@SS.ÏËó÷÷÷'OO//#£Æ¿ž ~]|~II~~ddXØ“'\®µµ££²GšByyDÄüù#GnÙrøðÇ·nÕÕO*ÍÈøë¯„MÍ™3»táp0 ÄÂððóçKK»tñò°³g§N>=4ôï¿>Ÿ_T”ŸŸ——™©XCñÇq\&ËËËÍÍÈÐ×70àrk§žc¢hh¯ºb¢h@PR‚b*û|À—Q(ZZ½z-Z´aÃöí¨…N×Ô43£ÓùüÈHeîûQ©&&GŽ8:jjÖÜÇUT¨ÔæW-ø™HT*›-×Ü¿J.—ÉD"6›F«ÞJ¥bXõÝÐV™ Ãh4e¾]³J@«©uïkŸh\L&“ÉdvêdcÓ£‡žž¡¡™Y^^nnf&—šš˜˜”ôæMtt^^^^VVyyyyy¹¾¾±q«Vl6‡£¦VL­¼\$ª¨@1Q4ÅDѬ­mm{ô¨?&4'tº‰ÉÀãÆ9;K¥¹¹Ë–ùú¾};eŠ¿ÿ… Ê[ã¨N6DUUiia!†½|ñµ5¤€– (hÿþ“'ÊËQ¥e #ˆòò¸¸sçöïÈËC¿ý¤ÒœœÚ=¦®åtRin®b4*ÕÀÀÅåÒ¥°°¢"G7|ùòÜ9gg}} mõõµ±).VÜÊçÛØ,Z¤ì³ß®Y% MUF‰c##SÓ¶m[µjÛÖÚºm[KË®]ŒLLÚ´ÑÖÖÕÕׯkÕsm(š¶¶¶¶žЉ¢¡È(fã@s$—oÞ¼cÇû÷ÿ}úôìÙ;ªª*{L‹Lf0tumlÆð`ýú={Þ½ûøFÏ@Ë÷úõË—¯^efŠDÕ‰`¹\$JOŠzù2&F É0 Ãd2 >>4ôãžõ¢¢þùçÌ™¿ÿÎÊ ®_ô(3³ª ¥¤e2>ÿãhd²¦fÇŽíÝ{ìØ±cûö9òø±µµº:º*‰LÖÔ´³[µjÙ2Å­óçÿþ{Ê>‹ðíšU h¨5 Ê$—WV~øð÷ß™™FFÞÞíÚ©¨|}yŠðððððpƒÁ`0llllllêïמÑÑÑÑÑÑèç®]»víÚõkÆ%“ …d²¶¶â-{õêÜy„ýû_¼¸tÉÞU¥ð½ 4à×5 nßSn2 € =Ÿ /F[(==w÷¼¼·oýüêqùòåË—/¯\¹råÊ•d2™L&óx<Wÿ^ é9lذaÆ¡ÔvZZZZZÚ×ÌLf0fÌ5Ê×·C‡^½,,8‘(3óðáÿþ»p¡kWH=ÓÿÐBaYŸŸ——““ž.UT…R©T*‘({xåPW×ÐÐÖ6002âr955MMe~2YWwĈÀÀ””‚‚o±yóæÍ›7=zôèÑ£³fÍš5kVýý%‰D"A esssssóºzªªªªªªîܹsçÎhu*µÔвÙW®Ü¼yü¸O3àñ¿tz:—”¤§§¯ol¬«««khH"Q(d¨ À/J,‰**RSSRÞ¾ÕÐÐÒÒÑ13kÕÊÂBÙ〖%ˆ]]]]]]¿tÁõóçÏŸ?Žz>}úôéÓ§>>>>>>õ÷5jÔ¨Q£ÝÝÝÝÝÝ•=oø5%%)).®²R_¿wï—/ËʾîN¯€Ÿ—®®±±‰IëÖzzêê"‘²G-*¾ª?£UÉëÖ­[·n]ý{mذaÆ (õìâââââRWõ|õêÕ«W¯Püµk×®]»m…444g ƒÁd*{Д šø**¸‘“C¡à8ŽCúP#'G Àñ.]tuéteš;tÛ T|cüøñãÇGíuÖP,©zÖ_ˆõär¹\.µ 7JL1bĈ_SŽšÕz–H¤RtCx„Gx„ÇêG‰D&“Ë)2ùëþþ·nÝ¿¯ì·8øqüýýýýýQ‚¸öV´º¹v»bI Ô¢Xˆ£vÿÚ=P!ÇqGå8”}& éáûw/]JIQUí×OÙƒ4G^^;S© éYWÒyìXw÷!C¾ö¸ZZúúÊž=àWÔ·oëÖ}ú¤¤””$'s¹l6—ëääí=p`]ýssssssß¾}ûöí[ÅâŠ}ZµjÕªU+ÇãñÛ QI ´®ùÝ»wïÞ½C…8j÷ÏÈÈÈÈÈP\ [ÚØØØØØ ÚÓõÏñĉ3gŽC?ëèXXè褤<þჲÏ=üløü’’üüÈȰ°'OÚµ³³sqQöˆÀFAXؾ}›6…‡{znÛ¶pa«V †²G@SPW§R«Kp ÷½]]½¼”=.Ð8**„B>}î ´pQ.—Ë1¬újÐê–jã±±QQ!!ÿK*¡.Êžàç’Î(%¿- ]?”â©y˃È"CäÆˆ¬ª*‘T¯bÖШªÒÒÒÔÔÔÔÔ¬«?ÚzþüùóçÏ×Uþ¢va Å⊠eÅBŠcF nKKKKK˺æuöìÙ³gÏ>|øðáÇ ?#Nc×úÿY_"Cdˆüc"ÿšÎœÙ´iôè òòìí'Nôò¢R_½¢Rûõ[¾|ùrookk‹LVö8¿vÌL¦TZR’™™šš-ã¸²Ç €²´ÄwcˆÜXþ—€Æñæ5,@ËÕ‰æº4Ý[*D†ÈùWŽqâĉ'êJ@#]Ô?Úuë’“×®•ËI$ 9ÒÉÉÓóÇŸgˆ ‘!2D†È@‘·÷äÉÜ»÷øqhèØ±³fÍ›×¹³P¨©9eʸqk×>|8xðµk »:³yÙÕuÿþ›7¿t}?·–øn ‘ËÿÞ¸¥R™ ¾‡|ŸÚ©ç™Œ€ÆbbbbbbÂåJ¥ffúúúúQÝ*Ö@ htÛ@T|£®þŠ-¨ÿìÙ³gÏžýýã‘H¸\©ýÜXsð«±³ëØ±m[ôsdäÛ·ïß×nùºˆ$†I$¹¹ÁÁçÏ?Èãåå±ÿ™3nn(õ,•ff^¾y2cƈ»võî}á­[Ó¦iiÅÄÌš5dÈÌ™eeãÆ:uùòâÅݺåçúøx{:dnþðáÇ[¶ü¸Y@S‚ âädk«¡÷ú5Ÿ_\ ©z|ŨGíâµû£žb±X,×u{C@Y“Îß›z®A§º¸Lš4sæÕ«£G’˜8|ø‚(¥,“•”DD¥¦ ææAAýuú4A¼_R"æäðxB¡LÖ£‡º:öcÏD}c&‘¨T‹JU,‚.‘§ÑŒŒœÝÝmm1 èT--kk ªª°°;~hZ h‚Pö`¾iTUU§{÷Ö­ÕÔôôd2‘¨°P.§P´µ54èôÂÃsrªª¾7¹®¡ÁbQ©Ju‘í/õg0ÔÔÔÔªªÊÊÊÊ”}†Ð\(⨫ø†"Ô³ªªªªªª!ý€Ÿ‰D¡x{wíZY¹`ÁѣϞ÷îíé©©YYYPPUE¡»ºÎ˜±paêê6{öòåÊq]cÖÓ«»?‰D¡(®ÖFÿÿ#×oÀðÿ%8püëÐwîœ>½cGŸ>#Føøhhèê :#ÁÁ.ìßß½ûÀžž::FFff¨ÿóç7ož9Ó¯ßÈ‘S§6Ö¤R¡P xñâà ÅĤªª¤$=]*Å02YEE]½m[ … ’“«ªªû;9u颫KÁ`¨©1EFæäà8†‘H::\®ŽN‡L¦\®¡¡¥Å`TU¥¤”•••„º:™,—gfâ¸\®£Ãåêêö飡AEE••$’ŠJI‰P˜—§££©éèØºµªêë×ÉÉRiddjjEEy9A`˜£c·n††**"QUUE™L£%'¿{—ŸŸ—GTªµuÇŽzz–-š™ÙÚêêåæfe<™”T}"š¡°¬ŒÏÏËËÍÍÈJK‹Šj÷¡Ri4:]U•Åb³Û·ïÐ}ÿÅBÏž={öìYýý7nܸqãÆÊÊÊÊÊʺŠuÊõ}ë?V½x U0577ÎÆ†Fóõ=þÕ«¢¢#†72rs=ÚÈè̙ݻOн~}ñb.7,ìȑӧUT||–-ËÌ!áÙ³7NBýÓÓß½‹‹KNމ ©¬‹+*¾öˆ_~”Ë;vlÕJC£W/ aÃ,-éôwïÄâš>F¡Hïß>~œ”TXœP^nbB¥„\N§³Xnn ƳgII·oÇÄðù$™Œã::ºº**jj$Ru4ÔóíÛÄÄÂBÔŸD"‘¤Ò¸¸”>¿´T&ÃñÇ““…B@&CG'“óòòóƒ‚Þ¼)*ú÷ßׯóó==­¬ *U&“Hbc“’JK»t16¦PrrRS Ÿ>ÍΖHÿ\Á#<~Íc]oyy99™™iiÉɦ¦ffíÛèêêåUû±G¾}]\LL¸Üvíòò²³ÓÓ•ýÖÊ¡Xˆ£®âŠPÏú‹u?‡ÀÀ7þû¯¸X(Ìʺ}ûÚµ;wTTÚ´ññ8ÐÈ(+ëèÑOÂ0ÍÄÄÝ}÷îß·³‹]±bÅŠ+vízûÖÞ~úôNÔÔH¤¸¸/ÂÂÒÓE¢êÏ2!ñx/^DE 2†a˜LÆçÇÆ†„¼|©Ø³)Ævûv``nnEEiilìóçIIϟߺ“S^^\pã†TšŸÿäÉíÛ¡¡%%åå99EEÕ÷j€–¯ÎÐùùééÉÉïÞÅÅ•–æçgfÊdR©D‚’RAqq~~«V:ÙÛ§¥½yùömxøÓ§QQ]»¦¯ofÖ¾}AAFÆû÷••"‘HôâE`àùó::FFææQQØÛ»¸Œ/—ËåÁã%$DDçæfdðùÙÙzzÆÆ\n‡¶¶úú\n»võOƒL&¹<>>%¥¸87—ÉTS1¢W/4/ô«„Lf0TTTUi´þý 0 èTC,NMåóSSqœ ¤R …Á°²ÒÒ¢ÑRRŠ‹ËÊ‚ƒE" ›<­íFÑB.G=­­µ´ÈäÔT¡088/O"Áq*U›ªîY=B:]E%6¶  ¬L&«þå†ã$’ŽŽšš†™,åæâ8A¤¦~øPRòê•Pß|‚æ­¸¸¨(7×Á¡woôŒÏ/.®¹ã*ñ? …B¥jkëè|øðî]|<›­¦¦©Éfs8jjÊžüh /¦z2™L&“©ìQMkÔ¨ß~»|yÔ¨ß~û¸}ùò›7##KlÐ馦¿ÿ~ႇGí8«Wß¼yþ¼b •ª¯?rä±c7oŽYÓjeµfM@À… ?fÌ'nÝZóÿ66ýúMš´}»â^žž‹;9yz.^üãÎ:üÿ_‚C&ûøÖzZZÆÆmÚ ÇúCØÙ¹¸Œ÷6õéãé9s¦‘Q›6:ŽËdÿü³sç‚Ý»»¸Œß®]×®ýû?ztáÂÞ½çÎmÚ4k–††®®‘‘«ëÌ™kךšZZÚÙÕŽ_{lµÉå8.—Ëd2Ž———–òùAAIIZZ::†ãÙÙ2†‘ÉR)Žçå½_ZúìYyyuz—N'‘0L&£RE¢[·îÞMJ*.&“™Ì.]ºtiÝÚÍM__$ÊÊÂ0 #Çq©T&“ËQÏ‚©T.§P •µk]\ þúëÑ#>%˜GN&ã8AÈdF(BõÈÑèe2—JI$´µú(Ê~yP;»=”J¥ÒÊJ—ÉÐJ‚Ï‘Éd2©T* ùü¶m-,¬­““ãâllºuëÝ[Ùó€íâÅ‹/^lÜžÐ<ý¯GõJáoy¤P¨T&ÓÎÎÅeƒV­¬¬ªWþ’HŠA«V;¶iccÓ·/j·³sq™8QW×Ĥm['§‰ûí{Ž®øX½J™ ¢¢¢´T"Ñ×§R«g'“UVŠD]»¶jÅdÒhh/¹œLÖ×§Pär £Ó9œAƒÚµc0¤R±X$ЉIJª. Q(®9ê‰â þÕ¥6ÐH0ŒDR›L&WTt颣C&cXu;‰Dùù¥¥…… Šþñ:kx„ÇæðX×ÛƒÁdª¨ /fþ¦C£ÑhtºT*•ÖÔf?§ÿ­€ÆñêKæ¿•¾~ëÖVVµãôî=jÔìÙÕé)¹\.g±´´ôô'LX¼Ýõõ{ŽN¥ªªª©uíÚª›ÍåJ$‰Xüáƒ@- Ü£‡¶vAAXXQ'‘TU½¯£cfæëëì,‘‰D2Ù߇†fea˜\.å䨫 бcE…ª*‡C&‡‡GDöìÙ¯Ÿš—khÈdÒhBauϱc»w‰²²**äòðððð¼¼ììÊJ29"¢°Ã\]Û´QUý÷_tB—H22Œ¹\775µÊÊòr2™N¿x1::+«¢‚D¢R;v47×ÐhÛ–Éd0rsSSKKß¼ ëK@óUg ŽÆD"¡M[*-++-}þ<*ª´ôÓmeeëÖ=yRV¦ØvåJppbâç"Édeewï>}úqäáÃþIHPl¹{÷éÓ””ºFöôéÛ·µÛŸ=ãñ>¿ŽÇŽy“ž×ç €2UUUUUV*{Ðt¨T2YÙcÍQ7!¾‡BÝ84=”!“ÉdX7 øyý ‡4@Ãðù™™oÞ™˜˜™›š¶mK"‘H$Rý{Éår¹\ž••žž’’““““‘¡©ijje¥ìÙ@Sùÿ› h@˃þ¼CÀAdˆ ‘!2Dn>ZâÙ€È"Cäæ´B¡@PTdlܳ§³³HT^.4|_mmƒääÄÄèhMMSÓÏ÷*/ˆX°ÀÝ}Ù²ÎÇŸ4‰F Ãï]»q#3sôè‰û÷ÿþéÓ §L¹råÄ WW]]eŸ>¯%¾CäÆ5 -XÓ½¥Bdˆ ‘!ò¯¹é´Ä³‘!2D†ÈÍ'2h)Ðk !éžì쬬¬¬?þX³fíÚsçΞ=sF.—Ëqü˯"2YS³oß]»fΜ9ÓÁA*MO'ˆGîÝ“J}|æÌYµJ*uu55ݵ+%EÙg€úµÄwcˆÜXþ—€¦PÈd «¬”Hp\ÙC4L&N¡({ÐÜ¡jÎiiiiééææææff¨}Ø077wwÇûðáÑ£‡<øš»p±ÙݺmÚ´aCÝ=h43³‰W¯ÖÐ 3gÇŽÛ· jÛVCCK«sçÁƒ¯]›7oâÄîÝOºvmÊ33M*MK;~ÜÇgæÌW¯–-»yóÌ™÷ï.=:?åÊ æÏ·°PQ™6ÍÍmþ|_ß‹²·WWÿRQ¨ßÿж¶\®ºzhhrrq±²‡h.ºtárÕÕ•= hîЪáC]]‡ ›:ÕÇÇÇgùòåË—.MIIIINž8qÂ//CCCCCæYŸH¡ÐhvvãÇ{{{zš›Óé¨õÚµÚ=I$2Y1¥œ–VVff|æÌéÓOŸbŸ/ææ¦§——Ëdööêê4š²Ï. eû_ÚÅÅÖVOý–Æç‹Å°€_WïÞíÛkk»¸ØÚêëc†I¥Ê4o’˧Oûùùùµnݪ•™•J¥R©ëÖ­[·z5êÓtǧR¿| ÄÚ$2ÙÈhÈŸ¹sÔÕ1lúôÙ³çÎUÞyülþÿ&„R©D2h••†zTöÀÊ'“I¥UUF§“ÉÊ |‹  ýûOžärg̘1£S'6›L&ˆòò¸¸ Nâñ† ™7ÏÃÃÀÃrr‚‚޹sG±g k¼y“;|¸»»§ç¬Y³nÝãÇÝ¿ÿ5e7¾äó«§?ߪ©I&óùññÉÉ|>Ž›™éê&'ß¿ÿða~¾TÊf£>#G¥¦îßöl\Ü©S ÚØ¼ysìØ¾}**“&-^lmÍá@ À÷¤~Z¯_¿|ùêUf¦HT–ËE¢ôô¨¨—/cb™ Ã0L&âãCC?îÙpr‡8°oZûlhhhh` ¯CÃãÇÄ_»vãÆõë!!ÅÅååÙÙÅÆòù8.•†„ܾpýú³gééb1Š=uª··µuVÖ¶mcÇΜ¹páš5­[;9¡„{pp`àÓ§nnÛ¶-_Þ­[\Üš5¾¾Ó§Ï›—˜hgçãÓ±#¤žƒªì4••+¯\9}Z±…BÑÓ1âàÁ+WFŒ¨iµ´\µÊßÿãž §˜Pær¹\SÓ5kV¯þý÷ƪøÜ¥‹‹ËèÑèqܸß~ûxkŸ>&lÞܧϧ{µn=iÒáÃW®LšôqûСΙ£Ø²l™ŸßðáuÎ@¬€øjl¶ººŽNzzjjb"‰D"‘Hr9Aà8z=zÔ(ÅôH8.“æçge¡Êž4-X €f JKCBÖ®]¾<4tʔÇW¬hßžÉTö¨˜LMM#£œœœœÌL‘èÝ»¸¸†¬wF©j‹ÃÑÒb255•=hZ€€Òìß¿|ù!GŽ\¾œ“ӯߌ>>4Úë×!!4ÚÀë×oÛ6k–­­ªªTZTÄ㥤ddˆD8®ì1›ÌÌàà½{ÿü3(¨°PGÇÔT_¿¼<##-MGÇÕuÙ²ùó]\LMŒOë,жm·n½zݺ²u«••ŠŠ²ç€ †ŠŠš‰¤§§¢Â`hk£jÒ C¥R©´ÿQö< iAJ3w®¯ï!×®=}:}ú’%K—vï.hk:bÄöí!!£GÿóšZ``|¼¾¾¥%“ùáƒ@ •<9gÎæÍÿü“Ÿ?{öÎS§¾xqüøÁƒÏŸ'$HŽŽ6\¸pèИ1&&Êž"‘¼¿~=›=cÆéÓª«×¤™år>?$dêÔž=ûöµ´ŒŽ Y¹²z[UÕû÷Ç;Ö±ã˜1ÞÞË–yx<~äH÷î޲çàÛ””dd$$({ ¹H”=›žž¥eçÎÊhŽ Ý¢¢")ÉËkܸ}ûþøãòå'llØle h9ªª²³¯_?~|ÿþK—Þ¿ÏÉ?þرcÇ ÒÑ!“)”‘#¶mÛ»wãF.W,–Ë—,™6ÍÇçС#G¼¼Ž Õ×þüÊ•GrrüýGrvÞ¾ýÏ?1l̘?ÿTö¼0 Ãp¼¸8:zذvíFút…3‰Äá´m;l˜®ni鉆aÕ h±8=ýÑ£öí{õúí·!C(Ÿ“'_¿ºwïÕK]]Ùsð- Ûµ³³Sö( )ÁW+às~¢4Aœ<¹yóÖ­‰¶¶®®šNáᩩݺ-^¼aÔ);²ÙŸ~ðk d2‹Õ¡•ZU%‘DãÅ•Ë+*’“oÞd±Ú·÷ôüqgøÑ cãQ£fÏ^°ÀÏÏÉ©gϸ¸Ñ£W¬@¿µI$ͦÑÈ ·NFµét“#ÆëÞÃ0ŒJÕÑéÚµO-­ÊÊÿþSöŒjà¸Xœ“£§§¥E¡ÔÞJ¡0™L&†‰Å5­"QJÊÅ‹³X……8Îb …¡¡ÇŽEGcX¯^({NÐPß•€ž0aÔ(-[víÚ³§uë6mÚ¶Eåög̘“Y^ž—‡ª=I¥%%aagÏîÜùþ½“Ó–-ÞÞ\.†ã¥¥/_zyMštîÜêÕ—/?ŽVIŸ=»~ýúõ"‘‘‘¶vYYTÔÿùøìÛwð`\ܹsœ}²±©»?‰D¡(~¹Œþ¿)¾nþvtº‰‰››Ÿß«W|~Ÿ>}ûjh(–àüü2355GŒ@-<^h(‡³bÅÕ«+V°X$†-^ÿÍÅñÿõ×âÅNõøe²ÂÂÇ׬ٱCñ¸••OŸúûc˜Tš•°fÍ©S8>aÂ’%óç/^ܧO\ÜÁƒ[¶ÄÄ_ºŸ/?Z ‘!2DnÙ‘«³ {ÆkhXY™™ñùYYçÏ¿}ËçËd5=jïSw´æt6èôV­’“·n=}:>¾¢¢f¾"QB™3[·&%98üñÇ´iF"QAAii—.ÆÆ(õŒ"3­Z æí­«[XØ2nÃØÜ_u"CdˆÜ¼#Àϧ%¾CäÆRç èðð°°—/Ÿ|ýúþ}Éß?#C(,,|úôŸ.]š7oútCÃþùçŸgÏ „¬¬ü|‰Ãôõéôæp6(”Ë—-’Ë÷ìY¹rÅ mm}}±8;;#C[{Á‚Ë—÷ï:TW7(èØ±eË.^LO×ÓëÛ7)©gO_ß úö­¬LK ôó;|x×®èèC‡îÜÙ¼yî\77ƒOg×|4çWD†È"7ÿÈ ¥àó##/^¼pÁßÿÞ½/âãÅâË—ƒƒ¯_¯¯C‡/^ºT&kÝZ[»¤$5•FÛ¼yÿþåËÑV™¬¨èñãC‡.]zõ m>ëÖݽëã³nÝÇíÛ·?{öþýöí5-QQ3f(–ðêÖmÈÙ³PÜkÊ”5k† ™2eÍeÏ«6SÓ¡C—-;p`èкû¸ºÎ»g«ë§í †™ÙðásæìÞ=|¸²ç€vv'.X`aѶmB‚›Ûúõ_ÚC( ×ÐXºtûöI“LMét©4#㯿bb„B ëÒÃÂÃW®?~ÿþ½{=º}m4iܸ úö}ôèØ1eϾÅ7–àPÄf³ÙΦM;vìÚ…RϨF£Ñh´>}ú÷wtôòš4iÊÔ¾yóλw£uÍ—.]»vóæ÷ŸNçr==çÏïÞýÅ‹ÂB©Tq[AÁãÇ\¿žž^UE&kjvíURRsñªXL"ÙÛ{z3™öå wQ1®]¯]ûçŸØX¡°ºœ†TZR¢xl‰Áxý:9™Ï¯>A”—¢:Ñ(Ž–V·nïÞ‰Dè¸r¹HôäIAAu$2™ ªª>>~UUi©X\U$ÊÊz÷®¢B*•ËrI2:®““®na¡âqSRüýwí¢P44:w2ÄØ¸¤$(èæÍ·oQÒ;2òÔ©sçRRÄâæ÷- ü(RiVÖ­[;w>{–‘QUï‡àkÈdeeÉÉ­Z±ÙÕK»¨T§M›÷ï…B©mÍÍ•J«¯ðF[Y,©4;[Ùc€o×h—o8::9 X»ýøq?¿sçë Û^¼xíÚÍ›S—„BÑÒ0`Ë–åË×®Œär¹\mm‹LŽe0z÷ž5KOJ¥R9KËgÏ–-Û¿?5µ];--©43sãÆ¥K7mb³e²ÂÂÛ·oߎˆ(.æñÚ¶7näH{{ {ñ¢¤¤¢"7÷þýÛ·Ÿ>årGvt´³KH˜5kêTooSSKKKËöíY,ÏÍ}𠺃CVÖ¶m®®3g޾ݻw—.VVmÛ`XNNpp`àÓ§\î˜1ýûÛØDEÍ›7gÎÌ™\®©©¾¾–Öúõ[·nÚ„a2™™™«k×®dòÁƒ×®EDLšäáѽ»¦¦žÞ AþþnnS¦$$ôëçà`aabÒ®]pp`à¾}oÞ´jUR’›[QQ\üâEATŠÆ÷n``XXR’ŽŽ…—;ztÿþ£GïÚµté¬Y3gΟŽËåàëÛ®•jdäæ¶mÛòå©©ëÖ­Y³zõêÕ¶¶íÛ{zþö›·7‡ÓüêÈÀ‘Ÿ|ø07j”·wëÖÏŸoެ쀖D.—É„B•š›(“HŠªjy¹TŠ®˜ e²š+»ÑV*Ã$e¾]“×Bë k·7vIl‰Nÿã={v쨿ßìÙ;vìÙóùmºº}úL˜°iSŸ>·;:…†::*¶-_~öì½{÷[»vÙ2Åÿ¿råßÿý÷Óãûø(þÿŠ~~Ÿ •ª§çâ²{wP‹ËÇ[45oÞ¼wïÒ%Ŷɓáëûñø=<,øxüÆåzxœ;wꔇGícÓé&&Ç/[æç—ú†a˜\.†„të¶yóŠlvxxh¨²GZMK«[·ÄD>_"éÖMMN—Jùüׯmmµ´zô Ñ0¬[7SS-(õG[ÍÜ\Ùc€o×%8€Ÿ[eeJÊ… ÆA|€–æÎ={Ž}ýº¦ˆ&A…±±~~{ö\¿ž›‹Š`J¥ÙÙµ{6L]¥Ù¤Òœœ£±XmÛ>Êuâ8Ÿÿôi«V¨è‹Õ¶í¨QVV¨ìfõV‰ÄÊÊËKÙg¾$ €z QQ›78`jª££­­«Ûºõˆ/^äç¿{go¿~}bbe¥²GØ’ÅÅÅÅÅÅ5¤gtttttô×öÿ1³ˆ‰‰‰‰‰ù÷ßÚW>@ùââ^¼ KO‰jÐ"ñâET”@€îÕ$“ñù±±!!/_*ö¬Ÿqýúߟ>}î\ffYYA¿ÿƒ5w ‘ÉJK?ŽF&kiuêtÿþ·:´k×ÁƒtA&Woµ·_³fÕ*Å­‹­]Û«—²Ï"|»&/Á´lêê½{_¸ðî]NNqñ‹wî\»°mÛöíçÎ-_nanb ¾ÖåË—/_¾üûï¿ÿþûï<ÇãÕßذaÆ c2™L&³!ý======8pàÀwwwww÷¦›Ëýû÷ïß¿Ÿ•••••åïïïïï?räÈ‘#G²¹_;€IDATj”·7z\²äÓí**VVnn**·.\xðàÞ½uŤRuu\¼xÁ‚ÏÝg Z"X 4¦­Ý»÷È‘³gïÞ‘–öî¥%›M†ß¤_ ‚ 6oÞ¼yóf‰D"‘HÒÒÒÒÒÒêꟘ˜˜˜˜¨ªªªªªŠú×õß³gÏž={6lذaù\.¯ëÒØÆÃáp8αcÇŽ;æëëëëë;kÖ¬Y³f••••••ýðÓ Í|lÀ…Ö£„²£££££ãÓ§OŸ>}ZWÿçÏŸ?þÜQAýñQÿQ£F5 ÇqÇ?Ëߦ‚J…P( …Ò¹sçÎ;ÿÈ£@ó%8ðƒ ²{÷îÝ»woxxxxxxrrrrr²‹‹‹‹‹‹Oí½Ð*æW¯^½zõJ,‹Åâú‚úÏž={öìÙ(lcccccÓÔ…8)®†F-sæÌ™3gν{÷îÝ»wòäÉ“'OBøÕ俦¤DF*{ÐTÔÕ--aáøH@àAe7víÚµk×.‰D"‘,,,,,, q˜›››››+î…ÖJs¹\.—‹Zêê©X¬µ £¬[·nݺu¨jùñsGÉèÇ?~üxæÌ™3gÎŒUSSSSSSƳàG+/ŠŠ”= àGƒøAPjØÕÕÕÕÕU±½þBµËnÔÕS±X‡b;*Çñã qÔæìììììŒÖe£Ò\,ær¹\©TÙãRŽ#GŽQSCgÃÌÌÌŒÍvrrvž4©®þ¹¹¹¹¹¹¨ìFí5Èh…r]…8Ö¯_¿~ýzÅ–7nܸ±vOÅbŠíèˆk×®]»v-JCëêêêêêÖ5Ú/Nž IIQWON~öìøñ§O>”Ë>¬«XXXXXXÏž={öì‰ZV­ZµjÕ*Å>^^^^^^¨*ÐÖq …B¡Pˆ tŒ9räÈ‘Pšð3Ѐ¬é.¥‡Èùs1kb7Ř[ųA"‘É$’f½:vìØ±cǺžÅBŠqQI ÅâˆbÉÔ¢X|£väìÙ³gÏžõóóóóó«´B!•*¢½JKéôÒÒúû«¨¨¨¨¨ìرcÇŽh¯Ú}Ð kJ±Z´¯¯¯¯¯ï¬Y³fÍšUVVVVV¦x6”ýœí+¤%ýë†È"CäæùgG"1ööŽŽƒ››³XdÈKðKh‰ïƹ±@ h@£  ýÜ…ä]»ÚÛ|9|cA]!2Dþ1‘ÍÍ[µâpØlK"qqqq™2ÅÈÈÈÈȨ)Æßü½|zèX\Y©¢ràÀW¯ÚÚÚÚÚÚ~OLÅÒèÿW½î €ÆÒß!rc4 ÑØÛ÷ê5xpÍ›ñ?Íó퀯5räÈ‘óç @0f̘1Û·+{DÊ|ÿþ×'Xë‡ q(¶ ’³gÏž={v힊%;ê*¾ñm&Mš2e„aÃÚ·—É<<.<}:/ÏÎnäÈ… [·¦Ó›î¬*®†F-¨4ǽ{÷îÝ»wòäÉ“'OB_ËËkòäùóÿùçüùÇÒ^¹\&+)‰ŠÊÈÀñ.]´µq<9™ÇC[$±˜ 8 *êþ}©”N76nÓ¦CssM,èt­ªŠÇKJzÿ^(”É>ýt@&«ªöèѳ§MeeNŽšš†FEEAÁ‡©©ùù,–±qçÎmÚÑhR)‰¤®N§—”DE½yóáCq1fdÔ­[»vººryyyE޳Ùl6›M&S(Iff||d¤¦f‡]»Êå"‘DB¥r8))11ÿý§˜â&“UU-,ºuëÒÅÌ,''4ôþýŒ ±˜Db0¨ÔêÑ’ÉL¦±q«VuÍ Ç ‡þýûõËψxô(-­¢‚ ¸ÜNœMMutpüÍ›ÐÐððöí23_¿æñ45­­»tIJúï¿›7år:ÝÐÐܼCSS&SEEKKEE(|ûöíÛ¤¤Œ ‰„Áàr[·Fs‰$ ¥¢âÇ÷ïssE¢Ÿ®€†ƒK]­€ŽˆxùòáȈ—/?ŽŠzõêß•=.@Ë€ q 5¿Š%5êê©Xˆ£þâß‚JÕÒêÙsÚ4 ŠŠòrWÎ×h(}úôéÓ§O£Š¥9”ÇqÇcbbbbbN:uêÔ©ØØØØØXô¥£rÇ .(Ý\ûç¯%effdÈdjjššt:‰„ad2‹¥­­«[T”›[^.“ÚÚvíª®^PýîÝ»w <žTÚ®µµ¥¥¶6õ3 áB$‹e²ÊÊââÔÔ¸¸RS³³I$&“˵²êØÑظª*99::991±¨ˆÍær;ub³) ëØÑÂBG§¨())&&55%%.ŽÃQW—J?|ˆ‰‰ˆ(.–ÉX,)--.îÇ÷ï_¿NNNJÊÍÕРÑ>AUU^^aaU›Ý¦ƒCŸ> ‰„ãUURiõo·/ÍK.¯¬”É>]Ù•Åãåç…B¡H!á8ƒ¡©illl¬¢RV–ž/—“H**úú66]»ª©ååÅÅ%%ÅÇø@¡èë·m«¥E§“HÆÆ¶¶;*ÎECÃÂÂήö\ ¹ЀF+ ßÖ¨ªªªªªª¿¤†b!Žú{~2YùÔœQkkkkkke­†~ûöíÛ·o§L™2eÊôß½{÷îÝ»9räÈ‘#¨vhhhhh¨²Ï€h3J:+¦ž¾öYAˆD<^^žTÚ¦ —«««¢RXXZjb¢©YT”™™“CfeÅbI$YY%%••ès€H”—WTD"uéÒºµŠ …RTÔcÉå••ii11/^äå„X,•²Ù\.›M¡ÉÕI^ ås¿©«“Htº®.ndÄf·n­¯öPS“É22RSKJj’ˆã|~jê«WOŸJ$;÷îÝ¿¿£cZZ|üË—¨(ˆ‘Ñ·ÎëÓOCryUUIIzzrrVVy9Ž“H †©©‰ ‡#‘df ‰\^U•’ñï¿))h{{‹N¯¨02²´Ds¡Ói4‹Í¦ÑÈäçÍ $ ÐŒlܸqãÆ••••••õ—ÔP,ÄñìÙ³gÏž){ìM è@+¾…B¡P(D:FŽ9räȦNF£UÏÉÉÉÉÉÉuõìÓ§OŸ>}PUn2™L†[K@󠘆þ¶Ôs5‚ ÓÓ##õõ{õrtlÝ://&&9ùÍ›ŠŠº—Toùš›c‘H †±±µu;æç¿|ùðannQQq±TÚ¶­ê“–VXHzzž›[YYUõâÅÓ§aaÕ¨T‚¨¨ÈÌ|óÄ@íµÓÖ$ƒ¡¯¯£C"ff¾~ýøqV“ifÖ½{Ÿ>ÎÎ8ÜÐyÕžaí¹üãe:$F&“ÉT*ƒQ=:¹ÃH$ôèj,™Lq.<Þ‡ÉÉd²\©g@ó >Bååoßzzp C‡Ž­¬Æ›0ÁÛ[*•J%’Ç÷íûóÏ%KV¬¨þ0SRR\\Tt÷n`à­[ÞÞ>>Ó¦‘H_sùÍçÐhº»•œÜºµ¶¶»»µ5“Y\üâÅÉ“›6[Y $DFFG¿ÿömd$‰äævüøêÕÇ¡Bý;v,[–@£™™0™Ba^zû–ÉŠ‹CCOÚº59yРíÛ}|ÌÌ ™¬´ôŋѣÇ;}zýúë×ýüºtáp0ìÔ©Õ«ÿøC,66ÖÑÂß=›1ãÈ‘cÇ¢£OŸÞ»÷èÑóçÿûÏÕuî\míqã&MrrÒÖ¦Ñ0ìØ±¥K.LMÛ·×Ò’J33ûõ›3gûöŒüü  ½{ׯÇ0WWW×Èȵk·oûÖÉéҥ˗-jÓFÙ/ ñ]¼xñâÅ‹M׿¡d²’’ÐЫWSS‚¼<‘èĉC‡ÔÔúö5júôáÃÍÍ•}žj $/Z›üæÍ›7oÞ°X,‹Uÿ^çÎ=xpæ Zmvà€¯ïÁƒcÇŽ;n\]ýÑm2TzñâÅ‹/Vö¹Д¢²2==8¸²òs[²³?|ˆ‰ÉÎþü¾bñ‹÷ï߸¡Ø&FGß¾›ûißââ·o>üï¿·o«[ÒÒx¼êkwœÍÍ“’þý÷òåÜÜÊJ¹œJÕÔtp°·ïÔ©u묬¼¼øø¤¤°°»wëŸ\.“•–fdÄÇ?}š‘QWŸ/Í ÃÊËy¼çÏCCy¼Ûssóòj®7JM}ÿþsg´¢"5511,,5õs±E¢´´¤¤°°´´Fxúàú®ôæÍëÖ­^’Ρ¡/^ü÷_AA~~~þºu¿ÿ¾bÅØ±^^'=zàÀ¾}&L™âã³xñ¼y¾¾}ûöï?`À™3ýuüø´i³fÍ™ÓØ“¢Ñ´µ{÷?ÞËküx??éĉ Ö­SW§Pd²Aƒ Ú°!5uàÀ-[,,ŒÒÒ€cã Nœ˜4ÉÌ ¥¤¯_¿tiâD £Rµµ{õ;vìØ¤¤’’ÿ?eTMÍÞ½i´ªª£G«WIËd‰‰ƒ-]º{·££¶6A¸»ëéÝ»'êé >uêØ±·n]¿þæÍܹӦ99UG’Jss_¿0`õêƒÝÜôõ©T ‹==×­‹½paãÆ®]]]çÌ™Åçóù|þ’%K–,YráÂ… .ôïß¿ÿþ ›Ÿßðþhmõµk×®]»6zôèÑ£G×ÕSOOOOO¯cÇŽ;vTöyðóKJJK Û¶µ¶¶·g³ù|¡Lf0**Þ¿ŠJL¬©ú @y¾«ôäÉӦ͘ѷ¯£ã€+W®^½n‡ÇСƒ9zô˜1NNƒ ëæ6pà€Ç»»9sæœ9óæ%&¾}ûömxøË—MuŸt‰Drvvw·µ­)ÆA¥jhTUñx2†„@íî>h±1J=#,–b¥Ï¯ÑVlCq\\:uÒÔDU¨Tccoïáà ê®Å„ã|~D„«k÷î::5½TTp<,ìêÕÌLô-2™L£ÙÛO˜àã3f̸qcÆ8;wèÀf7Í@s„ÒÁ¨ôצž¿ ºàÒ¥K—.]zùòåË—/×îó÷ßÿý÷ß~~~~~~ß•ÐÁ‡¡¡QQ¯^¥¤¤¤¼}ûî]BBBBAA]µ¦ühu¦G—/_¼xÁ33sssó={¶oߺUq+úPÁãåå+¶Oœ8eŠÏ!®®nn¨åøq?¿sçüóÏݻnjñòš8µïÞ½ÿ¡C7®YóûïcÇzxT÷G rqquuw÷ô=ÚÍÍÝýK·»©Ëçîl[Ó"—K$X,“}\ï¹võçÚ-QÓFRiEEQ‘L†j>Ñé¨]&# «;îhûi+‰„ð$QÉ䯬H àËPíèÑ£GMIIIIIñòòòª^ kooooo~ž7oÞ¼yó¦L™2eÊeüœPÒÝlÕbÎÈÈȨëòঔžžžžžNAèÖ…áááááá={öìÙ³çĉ'Nœ©g¨ ›­®®££ìQ?ZÉÑœ JL|ó&!aÚ´™3}}mlºvíÚÕܼU«Ö­Û¶m×®}ûÚ{Íš5wîüùµÛçÌY°`Ñ¢ÚíkÖlܸe‹££“ÓÀÙÙYY™™ÿ¯¼­µièT>MÑ~9eK¡hiÙÙùûïÝíêºb…ƒƒš™,‘””(Þ@Lf2ãâ’’ÊÊd2ss]]*• ÊË jÊüS©ÚÚvv7n=úî»ûÂ…ÖÖªª&=|XP@£ Êba™LUU]SÓÎ.(èÁƒââ!C† ÓÓC%8Èd‡1cLMÑ­—„ÂÆÒÔ'77777×ßßßßßÿÔ©S§NêÔ©S§N¨T*õã/cbbbbb–-[¶lÙ²ÀÀÀÀÀÀëׯ_¿~]Ù3?©S§N:õ¿ÿþûï¿ÿP©†Ôwnjè/´N ”}ž e04l×ÎÎNÙ£€¦ôñ-I@êL@»º>bzlx8F«^ÿÛv …B¡Pú÷wrrvþ¶ H¥yyß¾úúµº:—K§ѽ{IIPP@@XXqqjj»v^^žž=z`Ø‹%%åå99AAs¹ãÇ;;ÛÙ½~íããí=n—keeiiaÁbDNν{Õ}zõÊÌÜ´ÉÙyêÔ[·úõëÚµS§ví 1,;ûîÝê>NN]ºDFº¸LŸîãcfff¦¯¯­½yó®]Û·c˜TjnîæfgG&ÿùç•+¯^Mêééà ©I£uìøäÉÂ…{÷¾oanB¸eËʕ۶±Ù2Yaáóç·nݼùòeaáû÷­Zyzzz::𛫍Àº"h ¼{÷Ò¥víìì\\”=@s¤®N¥~î;L --}ýŠ ¡Ï—Ëår¹]”~Æ0 #Å–jã±±QQ!!vv=zÔ¤Cñ•={ð«psssss1bĈ#PZq+J#¢¾UUUUUU¡ª»;vìØ±c‡bÏ8p­WE·kSöÌÀ·hÓ¦uëV­ÐsM§ÓétúرãÆ_Wÿ°°°°°0T†bûöíÛ·o_µjÕªU«P;ŠsüøñãÇן†ær¹\.×ÃÃÃÃÃŤ3´t|~II~~ddXØ“'ð¹ðsSÌ ÷½]]›ß ½Á·ùžüÏwÝ„”«é*Bä–ùòåõë]\Úµ35íÜÙ×÷ðá[·j"“É!!.lݺ`ÁÑ£AAùùõ] &•J¥RéÌ™3gΜY{+ZÁª¢¢¢¢¢‚RŠššššššµ{.\¸páÂ…EEEEEE/^¼xñâÏqžÍȊż4ë…^Š_H(¶3™L&“‰®úª}>ŸÏçóQ© TdãàÁƒTL=7‡³‘!2D†ÈùGFßJ&+.ž<ÙÅÅÓóìÙôôË`”«%¾CäÆBýþ ,5ß¶Aä_5òøñ+VìØu玷wnnÇŽ}ûÖD&™,'ÇßßÊÊÐÐÕUS³¾_»víÚµkW]¿ªÑªU´êÙÖÖÖÖÖvåÊ•+W®¬ÝE@ÑЊit[¶–~žµÈ7nܸiÓÚµk×®Y³cÇÎ;wŽ;vì¸qõÇD¯ Ô‚^!¨] ‚Úµ’o-ˆV=£×Xs;"Cdˆ ‘|ä_ Ž … ƒõï?gN¯^óçÿñÇŒ^^..ææ4ZIIdd@À¹s§O;vÿþæÍÁÁ÷ïëèÐhŸD¥jk«¨ˆÅ"A4ísÓxcàWÑß!2RUUY)“É …‚ã2™LÖ½¤R©T"¡ÑètÐZ4ËÖvË–þ™0aÀ€‘#§NŰ7onÝÂ0‰$=ýâÅ Š‹§L9y²îý£¢¢¢¢¢ºuëÖ­[·ú„Š*4dLöööööö¨ð‚²ÏøÞÞ“&M𔕕]ê¹~µ_3ŠIçÄÄÄÄÄÄŒŒŒŒŒ eÏøvv;¶mùöíû÷ i¯ …Âátêtòäøñ Æ‚¯^ÑéË–ùøHF&««›šÒhééÖÖGލ«—–>yrìØÎ©iûö%%¥¥Ó¦-_>aB‡l6ù]çÝð1CêÐÒED¼|ùð¡ƒCïÞ..ã8Þ½Þ¿÷.>¾m[ kk(Á Åc0ÌÍÇ3FSóÝ;ô]lUUFÆÝ»aaýûVÿ¾ÑÑÑÑÑÑM1ª®]»víÚUÙç4¨È*Ò‚Jm@}g?”n®ýó×ârG6ŒÅJJ:s&2²¤Ç1L*ÍÍ}ñâ¿ÿlmÝÜÚ´QQ¹{wùòÍ›_¿0`õêeË/ž?útuõ¿ÿþã]»bc+*~ôŠô†ŒùÇŽŸžž¾¾±ñ«W/^Ü»WTTX˜›[WO´ê¹´´¤¤°P_ßÀÀÄ„Åb±ÔÔ`4€Ÿnjêá1~¼ŽNn®D"——ß¼ùöíС“&Íž­ì±_ZõÌáp8N\\\\\¤žüÐg”tVL=7|í³":ÝÔtäHWWuõË—/^|þ¼°°_¿.]>Œ‰éÙsðà#h4 [·.-MCcôèîÝut¨T Ã0.×Å¥[7_¼øêÕÌÌÊÊûõCÆ -žž‰‰ª*›­¦–ŸŸ““‘‘’’”[»'F£1,‡Ãá´mÛ¾}çΨV@ø)Ðé­ZÍž}ñ¢‹Ëøñ“'Ÿ>ݧÏ֭Ç|î¶oЦL™2eÊ™¬¡u¬߸zõêÕ«W•}^€rp¹\.—‹Ö;£Êεo-üÓÍß–z®F£™›OštôèìÙbñž=S§ž÷ñ=;H$ôŸr*r7tÌÐÒ±Ùl¶šZ›6íÛWßÛÆÀÀȈËårÍÌÚµC-]ºtïÞ·¯bê4€Ÿfd$‘ðx&&&X[««7äÞ¿t:N§ÇÇÇÇÇÇ7Ö8PY++++++eŸðãðù|>ŸJm "tðëø¾Ôs M_Ð ƒÂ²²áÃmmÕÕkê:»»›™ñùAA‘‘ÅÅhñ@ffppT™ìà0fŒ©)“ù¹˜wîìÙsôèë×B!A ‚ ccýüöì¹~=7W*Å0 “J³³k÷üþ1€·D?-%%&fß¾®]Ùì¯ÙoùòåË—/¯ë~Á111111«j©ÝÇqÇQ´E‹-Z´HÙg|/‚ ˆ†}=yòäÉ“'Q© ´êYÙcZ"ÍÀ ÿ1cŒÝÝ--ÕÔ—¸¹íÞ½fMÇŽOžlÙ²wïGŽüõWi©—×–-+WvéÂfËd……¹¹%%wîÜ»÷îPHqq/^„…¥§‹D5 h‘ˆÇ‹ˆxñ"*J @©l™ŒÏ yùR±ç÷éáûw/]âr­­•=@s¤§Çb}îû{ --}ýŠ ¡ÏGi;”¦©Iá„bK5‚ÀñØØ¨¨;»=œœê:.НìÙƒ_EAAAAAƒƒƒƒƒÃ;wîܹómë—[·nݺuëÈÈÈÈÈH------eÏ |¯[·nݺukÆ 6l@_0ÄÆÆÆÆÆ’Éd2¬mð%|~II~~ddXØ“'íÚÙÙ¹¸({DÐTÔÕ©T‰ýŒÞ÷tuõòRö¸À÷B¿Ë[Ðó‹JpÐé4ƒ‘‘‘žž’boß«×ÀµñÀ'ÓÓÓÓÓÓóóóóóó>|øðáþîõܳgÏž={Ο?þüyH=ÿLÜÝÝÝÝÝQY•Í›7oÞ¼ÙÖÖÖÖÖöúõëׯ_oøë~M€þgÀ€  srrrrrzõêÕ«W¯$‰D"Ù´iêT_ßuë¶o_»vΜ©S7m íׯ_¿~ý¢¢¢¢¢¢úôéÓ§OeÏ4>‰D"‘P2¥¡·lÙ²eË”Œ†44ÔîÉ |­†~úôéÓ§OQ‹LVRòßÁÁ¥¥¥¥zz¯^åå­Y3{vÇŽ2Y§N½z…„„„„„({ÔàÇÉÍÍÍÍ͵°°°°°xþüùóçÏgΜ9sæÌ%K–,Y²¤S§Nªï (ÊÍMI‰ŒTö( ©¨«[Zvî¬ìQ€æÐÀÈåååÉÉ:uîlk«­-•–•uëfoß¿ÿ™3TÚ£‡š¦ì1‚¦rüøñãÇ£/$PºyèСC‡uuuuuuݵk×®]»¸\.—ËUöH4wZZ\.|I à× hà är™¬¬ŒF£PH$ “J1ŒD¢RY¬²2©Ýrü, Ý ÐÀÐé::ùùbñ¿ÿª©‘H&‘””ÄÄ88èè@Åç–ÝH%‘“Ëýû÷ïß¿¿££££££¯eÍ\.•ŠÅA^' ……r¹\þ¥ èÞކ†žƒ¡¡a` ¢Âfkj*{6ÐT9}÷n`à­[ýû;999±Ùl6‡# …eeÏŸÿûï¿ÿ6b„»»²§¬Lû÷¯\yô¨‡Ç¦Msçš›3Ê-úÓ­!äAdˆü}Øl ‹rsƒ‚®_?~ÇŽE‹ºu>ÜÂÂÓsÁ‚æ:fˆü)F£Ñ®\¹råÊsssssóÊZšÛ˜!2D†È"ÿš‘AK!ä奦™˜˜™÷ìéä„^õï…^3YYéé))9999€¿‚–øn ‘K#' ïÜ ¸qMÕÕuøð#ž={òäÉ“»woݺy³iÐqòäæÍ[·J$ÚÚººjjt:ADD„‡§¦vë¶xñ† S¦tìÈféAÓÊÎNKËÉ©¬Äñê–ŠŠää7Þ¼ÑÒ>ÜÞ^Gªˆð5šî-"Cä‘ÉÚÚ††ÉÉÏžijäè¸qãíÛ]»;6ztó3Dþ”µµµµµµbä³gÏž={öÙ³gÏž=Û¾}ûöíÛ{õêÕ«W/Å5ÑíÛ·oß¾ýÏw6 2D†È"7çÈ ¥ ‚¢"cãž=E¢òr áûjkëè$''&FGkjšš~¾WyyDÄ‚îîË–uî<~ü¤I4šP~íÚ™™£GOœØ¿ÿû÷OŸ>xPX8eÊ•+'N¸ºêê*û¬ðy-ñÝ"7–FN@óx<^jjJÊ»wII6|øˆ>¤¤$'£ö¦™‚L–“sãÆ´iS¦LŸ~þüÇJͶI“¼½³³££‹ŠÈd “ËÅâÕ«.ܺÕĤS'=½²²ØØ°°ùó<|øõë¿ÿÞ±ãøñ›7³³û÷oÝúݻׯ£¢ø|SÓ€€€€'(¹\,æñîÞ=t(88;›ÉDJK»výý÷;fδ¶ÆñÒÒ/.\Ø¿ÿÁƒ¼¼ÜÜ·oóòÚ¶>}Õª… {ôÐÖnÛ–ÁÈÈ ¥Òh´¢¢É“§NÝ·O_ßÅ…Ç‹år»u›5kÊGG©´°ðéÓ³g÷î½s‡BÑ×g2?|(/·²š<ù·ßÆKK;vláÂ+W^½ª¬7nÝ:w÷‹Ÿ?·²:ujÞ¼Ö­éô¦{ÁÀ¯«_?w÷aÃ@ ؾ}ûö ”="PZúï¿#F88ÌšåáñÇë×ëéuïîîîêjeÅáÉ_ÞßGA]}“Ô¨6ô÷$©ð3A‰´ ‚ j÷ÉÎÎÎÎÎ7nüø  ƒNüøÑ£‡1 ÃâK©"këµk¯]{ôHOOS“F“JÓÓ âÑ£{÷¤RŸ9sV­Â°iÓÆŽýûï;Ö¬¹ßÔÔÍ-*jӦݻ“’úôÙ»—J}üøÏ?œ>Þۛ˥Ñüý·m›:õÚµÐPcõêË—ïØ±¬,8øÔ©'¢£©Tuu‘ÈÌlÔ¨¹s60€er€ï×€g_O$‰D"ôsEEEEEEÓM€ ‚øøû÷ss55SωÄdwëfb¢ªJ÷ïëèøúþþ»¯ïìÙ .Z´d‰MjªD¢¥Õ£ÇèÑ£G³ÙAJʸq¿ý¶yóöígÎ\½º{÷Сïߋņã÷ïoÙ²gÏ“'G¸zõøq “É ?^³fÇŽ¤$gçE‹–-Û°ÁÓ³²òéSÿ¨(€ÍNK ‹ŒÌÍE—øÒh††††ªªZZ“'/\ˆRÏ&“ååÿþûŽ ýú­X1mÚ’%«WO™¢¦vùòºuþ?dÈÌ™&¨¨%%ܽ[X8mÚ AzzT¨é àB¡Ðéd2•ª­=mš··›[CSÏ ‡ÒÓgΜ9sæ Çãñxƒ 4hÐË—/_¾|9dÈ!C†Lœ8qâĉññññññÊ>'P”Jæñx¼´4¹‚™3gÍš3§¸¸¸¸¨èüùsçΞUÜú¥¨ “‰RÏu÷a0Z·öö^¼xÊ”èÐaܸŋ§M:ÔÒRUU,‰p¼æH#GN˜àà@£UUUU¡„y@Àš5§Náø„ K–Ìœ9sæ¼yqqnÙ#4¿u”€–¨Î„åóçÿþûäÉáÃû÷ÿù'Žã8ŽŽ£7-¹œJ¥Ri4‡Ãáp ƒÉ¤Ó :½°0?¿ @$‰ª“Îb±X,¡öeË.œ7Ïçóùüªÿ©¬¬¬ ËÊÊÊÐw†d2™L&S(T*…²xñòå+WÒhT*Ö§OÿþŽŽµÇ‰ãYY"†±XõO•BÑÓ6lÎ]] äÒ””ØØÌL™ÌÈÃP £Ñ TTª u°XíÚ1qâÍ›¥¥R©……¡á°aþyñ¢ƒƒb±X&‰¢¬,&æÆÔÔÆŽµ²ÒРRµµ½¼Ž»{×Ë E¿wïËŠqœÏŠº};=]CcäH;;mm4z.wÈ.]bÙ²70ŒB>œD¢P45íìÆ÷övt47‡•Ï~E$R㦜¿U‹‹Åb±ý5Ãd2™L&úFÙgÊÊC‡ºº6uªÏòåË—/]š’’’’œh.är¹Ç'Mòöž8ñôi?????¿3gΜ2dÈAƒÖ®]»ö?PŸ¦Ãç󟦻år™Œ jÚ¨TIUµU«‘#gΜ4‰Ë¥Ñ¦N:uüx‰„L†Ô3 14É:‹Åª^¬ªªªZŒnt:—ëé9~÷î/^J¥ŠÛ ?>pàúõôôª*¹¼ªª´T,®~³'‘(+ëÝ»Š ©´æDžšÿ“J CCoÝêÔIMLưªªÒR ªJ&SŒ H¥2…¢¥Õ­›““®naa@@@À»w&—‹D))þþ»v=yRPðñØþ÷ ¢ªª¤¤æÆ„Цf×®nn\.ŸUR‚a&gfÞ¿C"ÙÛ{z6ÅGnõ;tèÆë×ÏŸôèáÃW¯ÂÃÃÕ=¢_™D’ŸÿþåËW®dd………wï~ø }íoG”n?~üøñ㌌ŒŒŒ""""""\]]]]]ÃÂÂÂÂÂNŸ>}úôéÉ“'Ož<™Ëår¹\eÏ_'(hÿþ“'ÊË«k4Dyy\ܹsû÷äå¡ÏêRiNNíž ‡Ö5¯\¹rå²emÚ´mÛ¦ ª ½bÅòåË–Éëð-óùü^ŸoÕÔ$“‚ׯ““ù|”uHN~ðàß Q^Ã0lÈcã’’  ›7ß¾­¨Ë1,2òÔ©sçRRÄbÈ=C#' Ñ%¨**5Igô3joªIP(ZZlÙ²sçÚµþyðàÑ£çÎ>}üøÎwï2½{÷飧Ç`èé äï?kÖ”)«Woß~èЭ[©©íÚ=ºwï… B!A`˜\.ŽK¥……(K€òÏž¥§W§Ž§Nõö¶¶ÎÊÚ¶mìØ™3.\³&#£uk'' ËÉ  |úÔÍmÛ¶åË»u‹‹[³Æ×wúôyóíì||:väpàzk@c =|x÷î¥K\®µõç*,­»woÝê×oÀ€8GM­¼¼¼\(|öìÉ“'O† 1ÂÝ]ÙS®‹P1¾§ç–-‡?|xë–²Ç@s¡§Çb}®ª©††––¾~E…PÈç£?žÐ7ü5H„bK5‚ÀñØØ¨¨;»=ê.òƒâ+{öÔ`0¦OŸ6M.'‘Èdoo''''?¿ &LPö¸À·;{öìÙ³gŸ={öìÙ3Tv£W¯^½zõR,¸Ñ¾}ûöíÛ+{¤Z*>¿¤$??22,ìÉ“ÆúÜ šÌÌ„„gÏœœ\\Æ+)),ÌÎnø¾èÓQ\\tô‹¦¦:õï¯ìÙð½³è}oà@WW//e |/ô»L±=¿FF\.N£1éé))öö½z ˆrAŠýy4J1£Ô3ja³Ùl§y§žk¾-DkŠŸ>MI©¨øúï;øµTUUVŠÅd2…òqåõúI¥R©DB£Ñé †²gÀבH¸\33©ÔÔÔÔT___¾ iù||||||Μ9sæÌÇãñ 4hР—/_¾|ùrÈ!C† ™8qâĉOž°’ €†*--)ÉÏ×ÑÑÕ52Âq™¬¦†X}ÊË…B€Åb±8eÏ€¯ÃbÝ»÷à†ijª¨<}ž‘aÎÎÎÎÊhL> P‹â*éíÛ·oß¾VIa255Œrrrr23E¢wïââRXƒD"‘H$‹ÃÑÒb2ÿ½»lâüÿ~ñ¤iSw¡h¶)CŠ» ‡!†Û!ÃÙ`Øpg¸»ŠS¬+ZR×4•4ir¹ûýñ|óë• …¶+lï×,{î¹Ï='½»|îÉs––ÎÎe½¥ høBéé*UJJDDhè³g®®åÊU©biieeg—·&éõœ‘‘ž®R‘!8*Uòð¨Q£¬× èÒÓïÞe˜Füü4ss iÓJ•”Êû÷ÓÓ)ªAã¯~àß(oJš }—Ž9räÈ‘þýû÷ïߟ¼í¾F5p~øo0113³²"ÿ¢3@A€€/dgçààâbbbjªP$$ÄÆFF†‡¿yóôiÞš"‘H$‘Èåffff•*U©‚Ô |kôz•êõkƒA,68#˜˜8;¿z•–¦×7h PˆDeÝFøç:tèСC‹-Z´h‘‰‰‰‰‰IppppppY· ¾vJedä‹eÝ €ÒbgW­¾ïC~€€b1555U(LM«Tñò*húZµêÖmÚ4ï ôß –¥éôt–徎S JÓÓõúÏyw9|»¸ýW®\¹råÊeË–-[¶¬S§N:u*ëÖÀ·Áѱre_ß²n@iÒéʺð5*á—üûˆÅ66õë …Z­Á@J †ŒŒ¿ÿ®_߯F,.ëÖAi ª[·nݺu/\¸páÂ…¾}ûöíÛ÷áÇ>Dê (оaäõEyÑ"#rñ˜šzxˆÅ §Ni4ææ2YvvDÄãǦ¦_o›¹¸‘¯]»víÚ5’nþVڌȈŒÈˆŒÈÿŽÈÿ>ßâÙ‘K Ðð +½S*"#rn|¾µ5MGDܹ#—§¦š˜QT¥JVVüü%Ñ·³5‘‘‘¹t#üû|‹gcD.)ÿK@K$‰TZÖ€¯Fq (µºC‡6mÈçæÍ›4iÒ¤¬[_ƒ´´ÀÀ#:w^¼xÛ¶[·üý ®É0©©#Fœ?¯×oÞܹ³•UJÊ™3?ü wêtà€…E¥¦Þ½;yr¯^õë¯YãïO¦ŽuíÚ¨Q'Nüùçwß•õš| Œ ðÅø|‘ˆÏçñ>]S­ÿ5-,Š --kÖlÑâÝ;µÚ8õøñ—/e2îT±øÅ‹ƒËz¾Ð¥Ž¦ÓÓÃÂÊ—75‰H‰PhfV±bDDF†^O¦ÆÅéõr9wª\®×ÇÄ”uÛ¾ÐP*ðB€"‘Éž>}ò„e%©ôÆ gggç_~¹råÊ•²n”¼W¯CBöîݳÇÁÁÑÑÑqÈÁƒ.ëvÀ·M(T(ªTyÿ^¥Òë›4±´‹i:#ãï¿+U²´lÙR(¤¨*UE"2 E‘©jµHääTÖmørH@‰DrçÎ;äóãÇr¹‰Éýû11ø9ä¿‘«ëÁƒ0ŒV«Õ.X°pá‚H@|»Î[±bãÆrå~úiÔ(oo33>Ÿa22ž>ݵkË–¿ÿnß~âÄž=)*&æÜ¹5kNŸæÖ,ÚX6ÿr½>6öùs­ÖÁÁM.¯TéÖ­[·Tª~ý\]­­Uª7Ê—ïÐaÄŠ¢¨J•zöôôÔh Š2ÈTÎÓsäȲފ_®TÐ:N—ýäIpppp­Z¾¾¾¾b±X,‘”õÊ|¹ï¾eÝ€oU‰½„0!!>>>þíÛ·oÿþûìÙË—¯_óæÃ‡ØXò™”wîܺuË–%µDƒ!#ãÅ‹sç–/ïÕ«eËÚµ›6}ÿ^£Éùá M§¤Œíç×¶íüù»v$'ëõùG ­­4èÙ³G™L£ÉÊʙ²jõ›7G–Ʀ/*š^¼xîÜ?þؾ}Ë–Õ«—-›4iìØ‚~Þðõ(Ð#FüðÀJ¥R™’rüø¹s¹rR¡B¥J•*­X±fÍúõ4­×ëõ¤þ¶m{öpfòù33/¯N¦MÛ»·jU–íÔÉÂB"áñþÕ„ææÞÞ6œ:5fLÕª2™^Ÿ˜xíÚÒ¥¼zee¥×GEEDdfz{ÿñÇ‚R—3¯^{á¦M+WnܸgÏíÛ:ŒcmݧϠA-[Z[ …Íôé£GÏŸïæV£†½}ZÚãÇwîLš´uëñãr9Ÿ¯ÓEGŸ=»lÙùóQQ2Y|üãÇÏžefš›[Xôè1gΟúúfe]º´eËÆÁÁZ­VËãµj5oÞ„ íÛ;:rœ£×GEíÚU±âˆ“&õëçê*S”Á ÕrÐd½V®Ì»^sæ´o÷îîÝK–lÜxìØû÷ûöùûŸ8AÓ©©wî=ºnÝÆU«Ž¿bE\Ü–-óæ.®S§Š]]Éçóç§M[´hêÔÝ»¯_ )J£ ]µª{wµše”˹E"'§†íÝûôéãÇ_¾3fØ0cßmšŽ?ÞÖvܸ¹sÇŽõò’˳³CC5šÐЬ,ŠòòÒh._^°`õêÇ·m»víäɬ¬çÏgÎì×ïçŸ)ªaCSÓØØC‡&Lؼ™¦gÍ:|xÒ$só“'‡2dþüG5Ú¼¹Assc*\$²µmÚtÆÎÇOM0aôè^½Úµóñ±µ(êSë%بQïÞ½{ïÚµwïüùƽ`iÙ¸ñ÷ßôäÉóçB¡£c‡£GÿðÃÉ“gÎLž\­Úĉӧ7nìãco/Òtbâë×­[ÿüóòåÍ›[[3L×®vv/¦¤ÐtçÎÖÖqqÇÿòËæÍ£GïÝ{æ MÇÆ8@Ö…¢Ú·ß²¥4Y€oQ\\xxppY· ´˜›W«V£FY·¾F& _¾|þ<$äÔ©ãÇ}ýúåË/ôzš¦i–eþß³gOžÇç{yÕ¨Q£F·n={öêåééíý©ÃW,vuíÞ}ÿþ³g“’š7ïÑÃÁa¢£œœÊ—6Ì`HJzøðÔ©÷ï-,ºu3Î#“¹¹µkW§Î‡Z-EU­ZäM&´·ïÒeÜ8;;±˜¢ôú¤¤°°Ç## ''ŠbYƒA£Ñji:g¤‹u:šV*>¼páíÛ´4w÷ ¶mÛ±ƒa""”ÊŒŒØØwï22hºAsóœ^ÐR©‡Çøñ ffîÛ7wnŸ>ûöýùgãÆ·o_½ºs'E©TŸ^/Û·›Ûªœ÷ùòù"Ÿ/ZZöêÕ§O¯^¤”aRRÛµóòjÓ†ÔåóìÜ™¢(ЦŒë’ž¾aÃÚµ,›•e\—’>P¾mŽŽ•+ûú–u+J“NWÖ-€¯Q h’ö-<ùKz1Ø«W÷î$aíãS«VíÚykvéÒ­[¶¶vvvv¤ä¯¿8|¸dz@SE‰DîîÍŠíÛïÝ[µê¢EjõáÕ*·`E ™ÌãQÔ玧l0(•ׯ_¼¨Õ¶lÙ£‡³³­mµj Ö¨ñü9EQ”PhcÓ¢Å!ß}wäÃPE™˜xy-^|úôåËe0$%;'ðx&&*|ÿýO? R®œD2bÄĉ))ÙÙ|>wŠ¢éää»wûôY¸pÿþ>}.¤(ƒ!1ñÌ™ýû##uº¤Ò¢¯WÞÿç&ÉÉ\ü\c‚3Œ^¯V''Ó4©i|u$M3 ©-“u9rìØ ÈT².%±Oþ OžÌ-¿ÿþýû÷U*•J¥â–÷ëׯ_¿~>>>>>>eÝv€¯]±^BHÒÇÆ1jÔÚµ«V-_^PͪU«W÷ô4553S(Z·nÛ¶}û’K=çèÖÍÁ!)éС+6lHOïܹfMR.XZúúvíZ®œJ•“tÕh¢¢üý=ru%iÜüÑ|>ÃdgsKXV§S*³² ’`fµ:*êõëŒ šfYšNHð÷ß±# ::oâ[ °°¨Y³C¥òìÙcÇ^¿& í  Í›wî ËÊÊ=Ëff¾x‘–F–D––œ\³¦••HT´õâó¥R++>?§Ãdf††úû_½š³œüÖ](´¶öõ=qâøñÐPcËX6++ 1Q¯ç®‹ZM¦æ¬KÉîY€‚ÔÑ‘¹è‘É/°,óhß¾}ûöíó– ùmÓ¿qk 2"#2"#ò×àßç[<#rI)—Κ5þÂ…oÞ¼~ýê˲,Ëæ]UR¾råÒ¥K–,\¸tiÁ©êâhÖ¬W/gç­[wìprêÚµZ5…Â8E$rrêÔiùò9sV®\³fÃò²¾°°ôô~ý–/§é¤¤[·NŸ>u*.N­V*CC32ÆÃC*uwïÔÉ×—Ï_µêðá†íÑ£~}KK;»¶mlÓ¦ÿæÍ5ªVÍÕÕÃãüùsçví²²š6­Y³ï¿oÚtß¾† ==+U"=…ÍÍ]]k×¾páâÅ}ûºv]¾|æÌˆˆY³¦OŸ>}úôÚµ«VíÕkúôÁƒŠÜÛM °±iÜxáÂùóW¬¨VÍÉI HM}ÿ>%å矗.%5 [/RÃĤJ•<¸fÍ¡CGþå—Úµ½¼*W®\¹R¥V­ž<9zôС÷ï)êéÓØØÌÌ””ë×ß¿×hš7ww—Éx<‘ÈÍ­V­ààví~üqÈråÊ•³··¶^´è?~ÿ¢(ÊÅ…¬Ë?üðÈnnvvÖÖd]4(= ð1rnAdDFdD.NdŽo¥ÍˆŒÈˆŒÈˆüïŽ ðïó-ž¹¤ðΟ?p re_ßvíŠnÕªeË~ÿ}Û¶M›Ö¯'cFK$b±X}ŽÝ¿ÿöí“')Š¢XV­~üxæÌÄD/¯¥KË—ÿ÷®?ü™› …EÅ)8øþýkלœÜÜÄb‘H"‰Œüð!<¼^½FZµ"cÇ}¹VVööe½öðßòìÙ³gÏžùûûûûûsË;vìØ±cG/////¯²n#|KT*¥2!Ü'—Ô÷n€¯7{@Î{­ZuèЯ_Y· Š‹\˸%Ÿ›ÿ)Ð\S¦Ì˜1sæ¸q“'O™òäIpppp­Z¾¾¾¾b±X,‘”õæú'…:͘1xpPÐÚµ7nÞ¬Pðù™™II‰‰..S§æ7B6|Jª74%œ€&Hº¹~ýF7.ëüçñù EÇÿùgÁ¯o€¯÷µ„xå @q”JàÛU‹£¬Ûðmã—uàß h(H@@©@JÐP*„ä?ÙÙÙÙZmY7¾NB!«à³!©¥ h€R$‰DbqY· t òeÝ ø! PŠ*T¨\ÙÓ³¬[PºÒÓÓÒRRʺð5–u¾Çãñx,˲%ý”‘‘‘‘‘¹¤"›™)––ññqqoßš›[ZÚÚŠÅb±X,ðù<^ɶ àŸ”•¥ÕêtÙÙMzºL&“™˜Tók8#rYA¾a¥wJEdDFdDFdDFdDFdD.ÙÈÖÖ66vvZ­F“•¥Õfe¥§³,Ã0Li´ àŸ!K$‰™™™™¹¹P(ŠDÕüzÎÆˆüÏ+•´N§ÓétOŸ>~üèQÍšµkשCžî–õÊü®\¹páàÁ²n@Ù+áô–-6¬[·yóúõk× 4MÓP(Ž5nÜ„ Æ9j”H$ü<à[תU‡ýú•u+àßI¥R*”Êää„„·o#"^¾ôõmРeK2ÕÂÂÊÊÞ¾¬Û£ÄЉ‰ ïß¿}ûöí‰çÎùû»»W¨P¡)ÙºuãÆõë{ôèØ±]»³g/_¾zµäW…a¶n]´hÉÎÚÚÖV¡‹æáà ·oëÔ™4iþüÁƒ«W75ýÚÆ×R«ÃÂNœxùÒʪsçzõllòKͧ¥=|¸}û¦Mþþé鎎"‘^ß ÁСÇ{y}}k@”@zôè2$5U©T*:yòÌîÔòå+V¬Xñ÷ßW®\½š¦iZ¯'õ7mÚ±c×®’XšŽ=qbذÁƒüqÏž€ gÚ AÆÄ<~Ÿšzÿþ®]‹ýýwË–‹èæ& ©©÷îõë7hÐîݳgïÝ;~|üŽ‹STÛ¶mÛ>z´páòåoÞ4n¼t©PxçÎÎ}úÌÛµ+)Ÿ:õèÑ[·x¼ØXÿíÛ·lyü8;[«‹ãñüüfÏ3¦eK±øÇ{öœ2¥OŸ_~éÓ'-íñã'O>uêÉ“zõ&MZ»vúô6m(ꇆ]½ÚÞ¾]»wïž>us«SgäÈÁƒ›7ç®á¸q3f\¸Ð¹óž=‡÷îíâ"%%¥¥éõÜ:Û¶ýòËÔ©ii..•*YYéõÑѹp¡‡‡D¢RÝ¿¿oß²eŸ»îÍ›ïÚõ×_ýûÇÅíÝû矗/ge99Y[‡…¥¥U©òË/“'·kçà QÔ¦Móæýö›Pèâbn®VGD¼y3vì²eëÖ¡§;À¿83ß½xûöµk—/“á5òÖÙ¾}Ó¦SRRR’“É`ä¤>™·ø+À0ii!!—.ÅÅYZrSÏ'•:;שãîîêÚ°aÏž={ 9q –– ŠDÙÙÙÙ #98´m;bDÿþ§N?Ÿ”TµjŸ>“& Ö¡C2Yrò›7Ür¡P¯Ž>ujΜíÛ †þý'O7nÒ¤&Mž=[»vñâ'OÔjKK…B¥zùòСGll:u5jÖ¬mÛ&M23»woãÆ­[ß½£iGGGG+«úõøa„¼©gâ»ïlm££·lùé§É“·n=þÙ3[[ss‘ÈØ÷™¦ãã_¼øî»éÓ'O7nÔ¨aÃ&Ož={îÜU«BBÔjÀʪAƒ/[÷Ö­íì®^3géÒ7oüü&N5ê§Ÿ&LÐjoÜ8räÑ#¥’¦)J¯Ž&[`Ĉ#ÆŽ%ÛáÉ“´´¯oÈsø'ØúÕ«—/_¼8{öäÉ'Þ¼yõêåKš¦išf8ž?öìéSRßÁÁÑÑÑñøñ#G }ýúÕ«è訨ÈÈ«W/_¾téòeÿ <~üÔ)RäÈÁƒ¬^ÝËËÛ›Œ Íçóù|>Ççóùžž^^ÞÞ;wïÞ£Gõêžž^^µÓ`P«££³²(J.ÿÔÊòxù W‘»L ‰|}ûö8°Gwwã‹,-¹åCbâéÓþþïß§§—+çïÿ×_»v1ÌÛ·*UFF\܇™™4MQ"‘£cË–:Õ¬©P%“yzÖ­knž¤V EÛIÆmÞ¼y³¥åúõëÖ<¸hÑ?¶¶7n R¯ž¥%E©TµkçëÛ®]N ^&c˜NœˆŽÖjkÖôðøòu5êᅧ޽==-,ø|Š¢¨M›ÎŸß¹“D4=R*ýýcbvì¸qƒ¢X6+ëí[sóÞ½{ô¨WÏܽ þ« L@“´oáÉ_Ò‹yèÐþýûô! ë¾} 4ˆ[‡ô€îÞ½wïÞ½É IùÖ­»wïÛרQ“&M›gD"?¿fÍÌÌöï' ÝÜý õú˜˜«WX¶iÓï¾£¨¼½ræã2¡0oº–Çãós—óùb±PÈ㙘”/ß½ûˆƒ¹¹‰DÆ«Têt|¾Htó&ÇãñùÜX<ž@2¸`÷îétÞÞßÿë¯ýõý÷¿þJQ#Føùuï.•îÚuäHß¾RéÇ©d²¤×öËÖ]¯×ë5š”­–l_>ŸÇcަy<±˜ÇãóÅbî siµ4]œý ß¾b ÁAÒÇ?ü0lØðá7®Y³zuÞ:Ç=fŒµµµµMvvvvvvË–­[·iSüÔ³‘XìæÖ£Ç¸quëÞ¹“””{däÄÄ«W׬9~üÇìlŠâñ$’çÏÃÂT*cßc†ÉÌLJâ¦J‹:l„@`aQ£FÛ¶ÎÎJå… 'O¾zEQCjjpðöí»w‡‡k4EÊ]Îç3Lv¶RiLïæçøñ;>LOgc‰Á`fæééãce% ––µkûû?z¤TæÄÐhx¼zõzôpv–J)ª8ëÞ²¥­mRÒ©S§N…†fe±,E…‡9òÇ×®%&êõd;- V“Cjja[þ?ü0`@Ïžææööîî_¢qã&Mš6½uëÆë×»uëÙóûïy¼{Ѳ,˲ìªUË–ýþûĉ?ÿ<}º©©™™™YɬŸ/“¹»7k¶ÿ¼ysç>|øæMXXXØ‹8qûvVVýúÝ»·iãããìlkû×_ÇwëæïÿøqDDddTT||ZÚ‹÷I$R©Rùúõ­[·n=}šœljêèX±b¹rr¹JµsçÖ­ý•–&š™‘rww+++«ŠëÖµ±‰Š:thùòóçöðaµjƒ׬™««DÂãñùff>ìØ1oÞ­[¡¡ïÞ…†Þ½{îÜ AãÆõëçä$óx%);w~îº[XˆDõêYY½ðàŠýuîÜ;Cýú&tï^£†……@Àç+ïßoÝ:bÄŽgÎܹóèуOŸöîݱcË–üb=à€¯…\NŽ¢O‹Ž~÷ÎÔÔÌÌÜ\ „´´´4¥ÒÙÙÕµBr(úr¥R™ÌÔ´¬×àë¢Õj4jµF“•¥V§¦*•IINN..åË“©ø6 %‹oÜ’ÏÍÿðΟ?pÀÍÍÛ;¿×ß}®5kV®\¾ü¯¿¶nݼY¯×ëiZ,–HÄâQ£Æ›0¼¨Œø\Ö›ŠÊÎN./ÚÄààû÷¯]spprrs‹E"‰$2òÇððzõ5jÕŠŒ_ôåZXXYÙÛ—õÚ|]T*¥2!A©LNNHxû6"âåK_ß Z¶$SñmJ9Þ¸%Ÿ›ÿ~Þ?eâÄŸž6môèñã'N|úôñãGjÖ¬]»N±X,6¾Ôþ J8Mts½z 4lXÖ+ecô@©@¾ay_yŠÈˆŒÈˆŒÈˆŒÈˆŒÈˆŒÈˆŒÈˆü_‹üõ·‘¿õÈÅ4|Ãò¾Y‘‘‘‘‘‘‘ù¿ùëo!"ë‘‹ h(H@@©@J…üG"‘H¤Ò²n |­tº²n|{ÐJÐP*€€R4”ŠRL@¯^ýÇK—–õ @Éàñx<¯ð.aÉ.~ùòß~[¼øÕ«—/Ÿ?߲寿öì:tÀ€>}ªW÷ôôöž6mÖ¬9sÊzÀ—(_¾R%o襤„„ÈÈ„„ŒŒ´4OOŸ †a&oýîýæÍ«W/_nݺk×Þ½b±X,‘Ϥ|Ù²%K.,ëM_ÂÒÒÊÊÚºjUOO_ߺu6ôó“J¥R“‚ê—Xèß~[°`îÜÍ›ÿúk÷n‘H$‹I9ùLÊG6lÈ’Z¢Á‘ñâÅÅ‹›7/X°jÕÁƒññ;wÞ¹së–»»LÆãQM§¤ŒݶmÿþööƒM:nÜ€~~GŽ,Z4¾Ngccggn.‘0̃÷îýýwíÚ£FõëçèxûöÊ•X[6|x¿~íÚ‘hÁÁÇŽ­ZµcǦM—.ÙÛ4y²PøömHˆƒƒ³³H”’òúuDÄôéþ¹aCÁ;mdÀ –eY†aY–ýTýb% çÍ›5kÆŒÈÈÞ¿'=¹©g.R¾}ûÞ½A9ÜÜÊ•sw_°à·ß–-û²¥ ff^^:M›¶woÕª,Û©“……D’“ Íͽ½7l8uj̘Š•Ê£G jÞü§ŸºuK ȉ3dÈàÁÑÑÁÁIIVV¾¾Ó¦íÝ»qãO?ݹ3uê!Æh®®"ч$ÚˆrùþýÇŽùùMšÔ¯Ÿ««XLQƒVûé ð_R`:88(èÁƒóçÏœ9uŠ|–H$‰ÄÌL¡P(ÌÌÌÌŠÔÔÔT¥rÇŽ½{((õ̲,˲sæÌ˜1uª§§·wdlè4¨ÿ~èÛ÷ûï@ ÈÈHOOO×h4¦^½ 6ìØ±K—nÝ|}ëÕ«_¿°•JÝܾÿ¾cÇ[·”Jƒ¡U+€¢ôú¸¸N*Vtue˜´´gÏ.\ˆ‹³²êÕëã¹y<©ÔÅ¥n]WWc‰\þæÍ_+•Í›“hwîܾ]³f§N:Èd"‘ÁÐ´é† ;Ÿš:aÂèѽzµkçãckËMkÀ?!ç™[I?BdDFdDFdDFdDFdDFdDFdDþV"ý-Däo=rq8´X,‹Å&&&&r¹‹‹««««££““³³½½½½ƒƒ­­]RRBBBBffFFF™ëÎÛ·oÞ4 ƒ”´òÉ“G>Lþ%õɼ+VªT¹2‰I⻸¸ºº¹‘å’6e5ÄbW×îÝ÷ï¿u+)‰¦)Š¢tºèè€''‘ˆ¢ µ:22+‹¢äò¢DëÐÁÜ<<œíÉ“† [·&Ñ(J*õð?¾aÃÌÌ‹çÎíÓ§k×ví~üѸÆðÏ)½S*"#2"#2"#2"#2"#2"#2"#ò·ùëo!"ë‘‹£ÀÐ5jÔ¬Y«ù·ðÇ9rèО=;vlÛvúô¥KW¯r§*ææææ¯^½{M’Ñ—/ûû_¸àïãF``É­ˆHäî®Ñ¬XѾýÞ½U«.Z¤V>\©Ò¸q PE9:¶iÓ²¥™Ùž=$Mœ»¯²^péË6kÖ©“«ë A7þôÓå˽{J¢ýüs÷î¾¾B!EQM''ß½Û§ÏÂ…û÷÷é³p!E ‰‰gÎìß©Óýðƒ›[Ñ’æß®#GNŸ¾t©wï®]Û¶-¨ÿsæ¯gÏÞ½ûö4hèÐLIINNJÊ[‡”Ø«W÷î¤~i¬p·nII‡­X±aCzzçÎ5k§ˆÅåÊõê5iRýú·o'&êõܹV®ßÔÔÓsåÊ… ==K{¾6Üa7Hº á8J8MÔ«× AÆ;vìÙsà@õê^^ÞÞe½AàŸ@ÞµZx |»ò¦˜‹5tRRbbBš5Ë–-Yò¹Mù²Ôs||LLt4Yî?·Ù $Èd2™\®Ñdeef’÷®*ææVV_ãX ô}¢´­­½ýĉ3fÌžýÏ4ÈÁÁÙÙÅ¥¬7 |‰jÕ¼½ëÖåóù|€ô|¶·g˜råX–es^Û ÿ¥2ü7‘7Hº½ž€_üy! ¥ h(H@@‘T®\¥JõêyKò–ÿ{ avvv¶V[Ö€¯“PÈÿŒ‡UGŽœ>}éùÜ»w×®mÛ–uû $åM7‡‡‡…½z•·&z@@‰á¦ž *)Y<Çã!2"#2"#2"#2"#2"#2"#2"ÿ—#ý-Däo=2WÞDsA©g h(ܾϥ—†fY–eYDFdDFdDFdDFdDFdDFdDFäÿr䯿…ˆü­GΫð¤3—ðŸiüäpCpü[% ÐP*J1½víªU+V”õ @Ù(á!8V¯þã¥K_¿~õêåËõë·nݱcäÈ!C ªV­zuOÏÉ“§Oÿå—²^eø6¨TJeBBY·>-""44$D­ÎÌÌÈÐëõúìì²nÀKpðýû×®•u+þëD"‘H"111553srrvvw—ËMMвnWÙ+áthèëׯ_oذmÛÎ"‘H$‘ÏãÇ9|øÊ•K—þöÛÏ?ÿòˬYe½âP\ññ±±QQ..îîUªXZZYÙÙI$‰LVÖíø§egkµMjªR™@ºjyyùøÔ¯_Öí*{%–€þã%K-Z·nëÖíÛIê™”“Ϥ|„Ÿ~>¼´V…a¶n]´hÉÎÚÚÖV¡‹æáà ·oëÔ™4iþüÁƒ«W75ÍÊ ={vÿþ#Gž>%5E¢´´ˆˆ/Þ½£¨Zµ†ïÝûÈ‘‰gÍjØpÔ¨iÓ† éÝ»M›råD¢ÔÔÇϜٷo×®íÛ¯\™4iöì.]޹v-=ÝÁÁÑQ$Òë4:tøp//SS¯ôw@ÙÉÌLOOKKIINŽ‹«XÑÃÃÛ›¦õzN­ÎÈP©Êºuÿ4>_ lllmœ¬­mmœãã##år¹Ü̬¬[W–Š•€^´hîÜÙ³£¢"###¹½žóÖ$å›6íܹ{7”ÃÕÕÍÍÍí×_.\²¤x«@Ó±±'N 6xð?îÙ äL4hàÀ˜˜Ç““ù|Rsö쨨FV®üõ×ι5YV«%5--›5ëÕK,ž2åáC‰dâÄAƒx<Šâó gg±82ÒËkõêÇçÍ=zÀ€Î÷ì9|¸wo‘())-M¯ÿ'wT®\¥JõêäsAï]¥9ôz½§%áíÛðð š4éÐA«ÍÊR«ËºEe‰a†aHî”DD¼yóìY… Uªøø%‚P( …2™Lö9¿-&¹‘‚²"Õ'Ÿ‹>Wq˜€~ü88øáËÏž=sæÑ£àà‡%‰D"13S( 333333•*555•¤• J=³,˲삳gÏœY­š———zôh’24¨@ 22ÒÓÓÓµZF£ñõ­W¯~ýöí;wîÒ¥vm_ߺu j'䥅„\ºgiÙ£ÇÇSy<©ÔÙ¹NŠb˜””[·Z·öòjÕŠ›zÎ[S§ëÞ½}{¹|äÈ={žþÞ½;wjÔhß¾m[™ŒÇ³µŽÞ²å§Ÿ&OV©ÆŒ1bäÈŽ‹v0ü[å=å•ÞI¹ $é¬T*•IIÉÉññQQYYYY™™e½þ=$™ÌÄ$;;;[£)ë¶ü×ݽ{ùr½zµiÃý\ÖíøïÒëõz.4ôåˇ ¯Éãñx<žLfbbjZ­š——¯/))|®¢äF¾& Åb±X,61‘ËårWWWW’ƒ'%r¹\njš™™‘‘‘aeemmm}ïÞ;õê5hа¡1­œ‘‘‘qêԉǎ………†¾yÓºuÛ¶íÛ'&&&&&6hаa£FV«Ñ˜šššššêt:NG–BÚPø  juttVEÉåE©éà`a!üD¿o±ØÅ¥K—¶mÍÍ;t(009¹qcŸ«WŸ=«_¿U«ND"Š6lóæÍ›--ׯ_·îàÁE‹~øA °µ½qcÈzõ,-ó&¸þ;>÷É[ñ´,Òß9%%!!:Z$‹% +«²ÞBÿññ±±‘‘ä3yÐXÖ-ŠÊ}]Æ5àkàààääæV”šMVVf&ŸÏç ,˲ SPÍ⤞I…Døgr8¦b½¼jÔðñ!ÿâÔ©ãÇÝ·o×®¿þ:vììÙ ¸S …B¡xúôÍ›ˆˆŒŒŒŒôô«W/_¾téìÙË—¯^-þ ˆD~~Íš™™íßo0PEåNþêõ11W¯°lÓ¦­ZùùíÛwëVJJÍš­ZY[TÓϯC‡råú÷_³fذ«Wüé§;Z¶œ:uâÄÙ³Iú:0P§óöþþû_ýë¯ï¿ÿõWŠ1Âϯ{w©t×®#G puͯ?8À¿Û? + >ŸÏçóÅb‰D"Á¸K¥eY–œ ¬q¯Ë¸F| Šš‹`Yƒ¦ÿ‡–ÀK»uëÙ³W/2ÊIJJJJr²µµµµ ·)ÿé§!C~ø!o’ºxÄb7·=Æ«[÷Τ$½þ»ïlmÉßÄÄ«W׬9~üÇŸ~jÚT,vwŠZ»vÁ‚;w||~ý5§¦^Ï­éçGQ%ÙÛûùuîlo¿uëû÷;úø˜›óùÆ¥?¾sçÇ5j̘Ѩ‘BÁçS”Á`fæééãceõ©ÖÿnÜ4ô?³Ä‚’Ý"‘X,;889•/Ÿ˜˜õ÷ßáá/_–õú·Aï*€¯z@|mŠ’‹ n(ææVV…÷}&Š“{)ƒ1 E"‘èSÃ\E½zõéÓ¡CË–ÍšmÙ²kמ=®®nnåÊEEEF~ø@RÏ£G?qbɯ„@`eÕ¢ÅâÅÓ¦ýúkp°››››µµ\Î燄<}*‘4n À·Å``–øüÏ9¶KûV”S­P( ………¥¥……••ͧÇO‚¢yüøáÃ[·´ZF­Æ—[€¯AíÚõê5oN®ËÜÏeÝ.€ÿ.±X,–HjÖôõmÚ´(õÉ•»( hâŸïøex‘‘ïÞ½~­Ñææ%488(èÁƒ©S'L;vÅŠµk7l /,ë•€/!étJ¥¥¥¥eî_6ÀYFFzºJõþýÛ·¯_{zz{×­‹¯¸„Á@†Ó i½^.—ËвnQY⥦¦¤ÄÇÇÇÇÅEG››[ZÚÚ’Wÿ}noGø7ÉÊÒjuºìl&=]&“ÉLL¤R©ÔĤ¬Û_—øø˜˜„B‘H$’ËMMŠ’úU À·E¯×ëu:µ:33==..&æÃoïZµ6,ëv•½ÿ% ÉÒj5š¬,š¦i½že¦h½à߇¼²O*•Éär¡P(ÄK5¡`¡¡!!juffF†^¯×gg—u‹þi¤KéžåèèââÏÄÿÐeÝ €¯WDDhèóçz½N§Ñ˜˜˜šš›—+W¾¼‡GY· àk',ë|íd2¹\.¯XÑãF –eŒzP4è ð ,KQ<žP( … Ã0 ò c0”u»¾vü²nÀ×N¥R*iš¦išÏçóù¸‹(ô€€Rñ¿1 %©T.‹%‰„Ïçó‚²n|K†a †ÌÌôôÔT–eY–å©Õiib±D"•–uóàß@§ËÎÖj…H$’ר”u“à߀dž…äÞ,‹4À¿Á߇†>ž™™™©R©Õ™™ééöönn––66vvVVÖÖööE–’’”§R)•ÉÉ ññ‘‘r¹©©BajjjjaQ±¢‡‡·wAóòÔêÌÌ´´Ó§·l™6í?V®=z8°mÛÍ›..<^t´JEÓ cnÎç ));v„…9:*ff,[«–BÁã‘e½‘¹ ­6+‹e%¡0¿ðïð÷ßaaÏŸ;889•+çììêZ±"ÉÙÞ¸qãÆµkyë7oÞ¼yË–¯^…„ …îîU«Êd2Yîw’˜Õ«{{׫gL\³,ËææêZ®\åÊd‰qqQQÿmfV­ZÍšd*gôg†¡(‰Äݽ_¿1c$’ãÇ££µÚ!C\]Åbã";uªB…~¨]ûùóÙ³ƒƒ¹#GëtÑÑ.¬_êTxxFFhèë×|~»vóæýúk‡––ÇŽ-_¾~}Hˆ\.‘DG¿|©PŒÿ石fÕª%Mžètjµ…ÅàÁË—Ï›wÿþÒ¥K–…nnææ¤U3g®[·y³X̲Z-iÕ¥K &&d¹¤U³g×®mfVÖ‡ À§étZ­FãèX­š»;à CáõIìl­V­V©RS“’„B‘ÈÁA ‚ÔÔ””¤$“Ô¼uëöí›7ɼß}×´i³fä3)'%$ñòøñíÛz=Mëõ$šÐ` iš¦(š6HþÚÆ¦mÛçÌiÞ|À‘èìÙ={úöurbÙÓ§6\¼xôh™lÏžS§X–eɼ4pêTïÞ]»®[×¼ùÀÝ»›™98ˆÅÇÏ™3räŒuêŒ9oÞҥǎÅÅ5l8bĉ›6mÚ$•òx<ž^Ÿàï’š*·hѱc‡ >~<ÃдÁ`iY«Ö AüÑ©“£ã›7Ž3f̺uK—>>`Àž=¿ÿþÛotâÄÁƒ=z88…-[úùÍœ¹fÍÙ³sçV«–‘qòäÉ“–– …››^ϲ¤Uûö½{§Ñ (“]¹BZÕ»÷† 'O’å’V· À×ÎÍ­B…ªUiÚ`ÐëIɽ{÷îݻǭӰaÆ ’r½ž¦uºrå*V¬VíÝ»ˆˆW¯È˜Î2™L&“ÅÄDEED¸»W¬X½:©É—›Œ&Hò™ÄÔh²²²²H4!E‘׿&6o.“½y³yó¶m¯^uì8~|ffß¾•+7jÄãEGsë³,Ãhµ‰‰Z­@àä4aÂøñcÇ’)'ΘalÂêÕkÖÄÅ-_¾~ýáà ¶n4dÈܹ˖MœØ¢…Ÿ_:ÉÉ;ÏûÃë×ëtööõê=yrýú–-•˜xûöæÍûöEEy{׫W¾¼™™@ðü9YîìÙ}ú(3gNžüë¯ïÞ5nlkÛ©Óœ9S¦T­jb² “””˜ØµëˆcÇ6mja‘w·øù‘VµnýÃ:å’VMÚ¢…MY6Ÿ&•ŠÅR)ËÖ÷™›’&5¥R±X&#ý ÉˆÏ$–V«Ñ¨Õyc6hP¯^½z÷ïqK¸uHÌÌ̬,µšüÿÿðœ“T&#yŒ׿¿‹‹Ryîܲe;wîØ±g½½P˜_Ógg¹œaT*n9ÃètJ¥Á™“šêé9hÐÒ¥ûö]¼8o^ýúQQ{÷Λ·råË—‰‰11¤üþýÀÀƒÉÔ—/##¯]›>+«FQ£¦N>®®,[¿þ¸q+WNZ½ºX6jÔœ9'Nx{;;K$*Ë֯ߣ‡³sݺ?þئÍ_Íš5`À Aiiƒ÷­-˾yóë¯ îÞ=dˆÁ‘qåʨQMšxx eiY®\½z;Ž¿xñ/¿téÒ¡CLLÿþ;vìHQnn¤UkÖ¬^½x1EÑ´±UBaõêõê‘å’V•õPTïß¿{Z¹²‡G<Çã=~üôiH·NíÚ5kÖ¨‘{®·oCCíìÜÜÄb±Øø.@''—òåIÌ*UªVõñáFãÆ!å¤÷4yE!‰Y­š——¯/©ÃKMMI‰/ëMô%V®0 gOî§ŸÖ¯Ÿ4©Q#;»àà-[œ2åàA‡mÛ.]Z½ºfM¹¼¬Û PzÈ8ÎB¡P(ÙÙÙÛ;;e®èèèè·oÝÜ*W–J%‰$oL''ggw÷¢DKHˆŽ&ãAW¬X¹²—)çeæ¯Ó­[oß U«zxØÙÉdB¡@P«Vƒ*XXXY•/ofF†âø7sttq©PA¥R©’“â㣢¸Ãbpÿ5 šŽ‹‹Œ´·wppsË›zæÆ$ÑÈ\Å$ÑÒÒÒÒ”J“çî #;;;;;;..:úí[F£ÉÌÌÎÖh4 kk;;¹\.77W(,-­­ J=siµZ­V›žžžžšªV§§§¦ªTJeR’D"“Éd2™‰‰™IU h€•ìììlŽôP¦iš¦i±X,–H„B¡Pð?Efì9MÓƒN§Óeg“× òù|¾@ ‘H$Æñ£ó–õ¦€’TxRøs 8>7ò7<4|Íþ×:##=]¥Šýð!+K­ÎÈÐëõz®¬›%ÏÜÜÂÂÚÚÁÁÉÉÍÍÌL¡°´,¥ü/ýáûwoÞØÙÙÛ;;ÛÚÚÚ::òxý£þ…4š¬,µúíÛððW¯,,¬¬llÊ•+_Þãd— ºsçÒ%;»J•êÖÍ=)=ýξ}[¶\¶lòäk×Μñõ¥¨Ë—÷íûãyóV­zófܸñã½¼6n\³&8Ø×wúô?þX¿~Ô¨(Še32?^°ÀÏO¯Ÿ2%(È8ï޽˖ݻ'•öêÕ®]·n;6jdm-—¨×'$ܸ±aÃo¿EDÈåÙÙññaaQQ E§NK—NœØª·U‡Ÿ9Ãm±Ážn\ʼy+Vqâ¬YµjuéÒ¬Ùùó[·=Z©Ò”)‹‡†®\ùë¯ÞÞóçïÙÓ¯ŸPxâÄîÝii͛ϛ7`@:±±çέZµm[ZZ³f ôéãî~ñâ”)ÌŸþüÛ·b±•UÕªmÚL™²cÇúõÇ{xPM«TOžœ8±|ù¦MIIuëþôS¿~Íš™˜\¿¾jÕ¦MZm·nd)³fÍž}òä¡C¯^=.­X1cÆ¢EW®ØÚÖ¬éëëäÔ¶í”)#Gzyݹóæ\Þ­›§§Z}êÔ!½{_¹²kב#­Z‘ÏÓ¦?¿~}ryYúðO‹i:#C&“J%’’Ì»qãòåcÇÜÝ}|Z¶Ì=‰¤z›4™4©zõ3~ÿ}îÜZµ*«MÀ0juXØ­[§OïÞ½`Áҥϟ_¿’;ýíÈÊzñbõêAƒ¦L?þÀ^½:pà§Ÿ†ýóOSÓGž=Û½»¬[ÿ¦¦|~v¶@Àçóx%YXðXÏ EãÆ‡…„<|XÖ«OQÅçËåUª4oÞ¿ÿ’%Í›÷ï_Öí)šV©BB®_ˆàñ&O–Hll*WnÐÀÓÓÊJ¡`˜²nü·|Yê¹rå*UªW {õª :¼€€óç¨\Ù×·]»²^Mø§™› …ùwSþI:ç-/( × Àgã& JL#ý…BCœ1£[·FÚµÛ³'2R¯ÏÈHLÌÈ é’^’N7eÊ’%¿þ:b„Ÿ_Ïžk׆†¦§Ó4Ãdd¼|yðà/¿tëÖ¨QÛ¶e½=à¿¢ða7¸ I@“—úúvéòàAzº±T¯ÿðaÓ¦ví||ºt¡¨´´ÀÀ¾}k×nØpáÂþý}|RS †œ*Õ*Uîy¹Ñ(Ša²³)Š¢´Ú°°+ZµjÛvÖ¬»ws¦¦¥ÍšÕ¨‘Vûq« jwî–Ž»t‘JÕjµš¦)ŠeÍÌììÌÌ„Â/ɲ4m\Ïœ½ðð¡—× A¿þºmÛÕ«ÇO˜àá¡P…|¾™™§gÇŽ;K¥juVVé­)‘7õLJ JIAº”ÇËŽš|æómmýü–,7nÑ¢k×’“—/oÝÚÆF àñ„B‘ˆ;x5w^Š¢(–Õé”JÏ`ˆ‹Û²åèѬ¬víöí«SÇ8Ï77÷ñ:´sçׯ33)ªfÍÏmáÇ22?Þ°aþüM›bb*T¨SÇÆF$ª[wøðáÃëÔQ(ø|šNI6ì—_¶o¯SG& ˆ‹kÛöÔ©íÛGŽÌÎþðáØ±+–.}ðÀÌÌÌ,44,,+‹¢Ú´aÙ¬¬AƒÚ·8°S§­[7oöô¼ysÉ’{÷øüjÕhúÝ»çÏ<¸|ùÖ­U«®]{òÄÊŠÏÏÊ Ý±cÚ4ÿ°°¸¸‡ãâ¤R™L¡hÙrÛ¶ †§(½>!! `÷î£GoßNN¾{—¢4èÙ³aÃÌÌ¿þ iÔhîÜ>}ÌÌroM­öÝ»£GW®\»öÕ+ƒA­Ž‹³±1â?Fª[×Üœþîð*±”¤PhmíçÜ¿Ÿ¢ôú÷ï÷í=zÅŠ´´¡Cýuüø3F®PA&£(ŠâñLLôúØØ¸8µšeMM½¼:wîÞýÙ3[ÛnÝFŽœ={ÍšíÛ÷ï?þÆÄDƒa’“¯^;wãÆˆˆñã§N4H­~ù2=½{÷ùó‡ 3¶T$²·oÝzðà^½š6ýñlj‡ kß¾B…jÕÚ´iÛV­6X6÷šéõ‘‘Œ¿aƒ@0bÄŒS§Ž¯Pœ81cÆÖ­ïßmq€’SÌ4ËrÓ ÁW¯rëVçεjyòd\\Þy:wþñÇqãFŽ3f„I“–/?|X(´°ðòòðJUª'O’“s'KuºääààjÕÌÍ‹3¼E±¬Á ÕÞ½›‘acÓ¢…‹ IS”•UFÆíÛOŸ*•4ÍçK¥ööW®Ü½ûþ½VKQb1ŸOQ CÓ‰‰7ož<ciÙºuÅŠff<žPhf&ÔךÇãñj×öðP(Š¢(¡P¡ððP©ôzƒÏ·¶þS{÷61Y·nժÇ]\†]´è»ï¬­?ÝK9ÿ´>M'$\½zìXd¤‰IݺR©‰‰·÷òåW®\»6mZ… ¹“úŸ/#š6¸3çö hnÒ™eišaX–aôz†!Cf4l8}úŸvìñÛosç<ïÿÀ‹)J.¯^ý§Ÿ¾ÿ^&»xq÷î'OŒSIä]»Îžõð05ý’ —//\Ø ™YròÍ›ÑÑ ™’šjfÖ¸±••PHÓ©©5iÒ »»H” ÕÒ4Ã…VVµkûúÊdQQG>|˜œLÓzýçoA†IOþüôé7Ôꉗ.=thݺñãkÕ25ýòA2„BKËš5½½%’¨¨cÇ‚ƒSR(ŠeÕêððÓ§/\ˆ‹KOÿ^©$}ȵÚ÷ïÏÛ¿ÿæMîgãT€üi4Mfftôû÷oÞ„…½zœ™™–¦R±l~YÙÏJ@ éé!!W®œ?çŽR©VÇÆîÙ³{÷®]‘‘©©ïß:tèÐ… EQ|¾™Y½z³f­XѯŸ1ilœ÷ܹÀÀóç=uêîÝ”nòV*­ReâÄýûgδ±9xpûömÛ6nܰaÉ’¹sOœ°³[°ÀØ_¹(-ŸOÆ‚Èpþü•+ûú¶kWÖÿ¯ éØØzôhß~÷î3gž=»tI£yýzîÜ.]FŽd˜€€Û·/.ë6À…¹¹PX´·Èß¿횃ƒ““››X,I$‘‘>„‡×«×¨Q«V Ã0 í_¬Q•áË…ööíÚ͘ѧÏÙ³Û·oÛ¶fMJJh¨Á0tè¦M3g–uëJÐeB °²jÜxÖ¬ƒ7.ë¶”Ž/~éÝ¿^Ÿ‘‘˜˜‘QÜó•TœÒÂ0juhèÁƒ3ftëÖ¨†a€’SH:=ýξ}kÔðõ]°`ïÞ€ƒ!=ýÙ³óç×­0 nÝJ•|}÷îݺuÚ´fÍÊ•³²ª\¹víñãÉœ £V‡‡_¾¼iÓСcÇnÚäïwïÞÁƒ¿ýÖ½ûœ9ëÖmÛ¶{÷Ž[¶lÞ¼xñ„ Æ·#êõ‰‰·n­Y3y2y áúõ Nž9‡XìäÔ®]×®­[  EµiÓ¥K“&ëÖmßž‘1hPŸ>]»ž?¿ys` Ÿ_Õª·n¥¦ ei)—W®Ü¦M¿~ƒ›˜PTóæ®®õý÷´iS¡‚¥åˆõë+EQ “MQ¥Õ†…­YÓ¿ÿ’%JåÂ…—.ýö[£FÅ0iiAAsæ´o¯ÓÉåwï¶hѵk§N[¶¬Yóòeém>߯¦S§Ý»oÞìÔ© :,KÓZ-ÃR©@Àã}iœ¢0X–¢ ZJIàñJ/6üW}ÁÜd%ùÌçÛÚ¶m»yóãÇ]»Ö¯?bD@@r²Á@Q|¾H$ñù¹ç={vÇŽõë·nݸqíÚ?ÿœ6­o_šŽ‰9rdÊ”}û$’Y³¦MkØðÿ›Ç77¯[wÚ´… OžŒ‰ùÔ0 £T^»öóÏݺqíZJ ÃôîíãÓ¬ÙîÝQQz=Eed<g0°lzúë×ÇŽED¨Õ#Fԫ׺5·œ¢ÒÒûöõñiÚtçÎÈH®OŸÚµÛ¶=>1‘a&1ñäÉ‹SSÅb ==0°oßjÕªU3(Š¢h::zçμ¼üüòÆ!5Ç3n!Š"5Oœˆ‹3&)éìYîRºw¯]»S§¼©çÂãP”VûúõüùÏŸge‘úYYÏŸÏœªÕREéõïßïØÑ¡Cƒ¤ï9Ëêõéé4MþO¯ÿ4î>€IDATðaçÎNš5[ºôÕ+&+ëùóiÓZµjÙrùò·oSRòÛ†e}ÀרDÇ€~ÿ½E‹'OæÏŸ9óüù¤¤üÆ;ÿøã¸q#GŽ3fÌСýû7oþéÈEëŸËç[Yµl¹råñã«WW¨zêTbbv6à ,˲%•:9͙ӹsÏž¿ü²cÇë×ÕªÙÚJ¥-ZT¨ðá·?<<&&"ââÅåËCB†Ï/_þÁƒþý-,.\HHP«SRââÔj¥26öâÅ‹IÉçÎåĹ}ûùsRäïófûöÔ©Ã-騱Ow÷ˆˆ“'K‹­¬¢£5šqãe2’R¦i•êSq† éßÿôé1cfÍzþÜ××Ö6%%88,ì×_·ooՊϧ¨÷îݰ!:zðàqãfάYÓÝ],NNÖhRRRRììÞ·oãÆ¤¤3úõkÓæêÕš5}}œÚ¶2eÔ¨ÆÓÓOœøxÔ¼ù¸qÓ¦?¿~½§§Z}êÔË—ry·näó!½{_¹²wïHUü—ðΟ?p re_ßvírOJO¿s§oß&M&Mª^}ƌߟ;wÀ€V­Êª¡ £V‡…ݺuúôîÝ ,]úüùõë!!gÎü3K_½ºgÏ6møüÙ³;ÖÓ“¦ëׯWï矷m»sg÷îÚµMMKf9YY/^¬Yóæ‹ YÊ«WüôM÷êuüxÉ- ‡¹¹Pøñ¨ù ¾ÿÚ5''77±X$’H"#?|¯W¯Q£V­†a†[¿Ð EãÆ‡…„<|XÖ«OQÅçËåUª4oÞ¿ÿ’%Í›÷ïÿÏ.ýúõˆoÌ77…B(”Hø|++…ÂÕÕÄäÓÂM«T!!nnÕ«“¥T®Ü §ç‡%¹€›EræÌ³g—.qKnß^¼¸d—":9õïÏí‰.“U«¶paÕªe½þŸ¯˜/!ÈÐE ×ÓtIÇÔébbŽ1cÄ?¿ž=×® MOÏÈHLÌÈxùòàÁ_~éÖ­Q£¶m÷쉌ÔëËzýà¿+##=]¥  !%ññ±±‘‘dôgRòøñÇ·n……½yóô)wÞBÐä%„¾¾]º|8mÚ’%wïnÛvõêñã&xx(ffvvffžž;vî,•ªÕYY4MQÜùþ)/_†„9::;W¨P³f:ß}W¯^£FmÚÔ­Û°aëÖuë6lèçW§Nýú-ZÔ®]·n³f>>µk7múüù“'÷îeffd¤§Ab•Çãñræómmýü–,7nÑ¢k×’“—/oÝÚÆF àñ„B‘(§vîy)Š¢XV§S*y<ƒ!.nË–£G³²ÚµÛ·¯Nãt>ßÜÜÇgèÐÎ_¿Î̤¨š5 kËêt©©*UFFtôµk÷ïÇÆvêÔ¥K»vÓ§ÛÙñx|>M§¤ öË/۷ש#“Äŵm;t¨“Ó¾}³gïÝ«ÑôéóçŸgÏ:;Ÿ?ßµë™3NNãÇOZ¥JhhLLÓ¦“'{zÞ¼¹dÉÌ™6¼xÑ¡C§NU«>xpùò­[ééMš,_~âÄâÅ…†îØ1mÚŠÿíî®ÑDG?y"“)-[þúëêÕÇ»¹ñx »w=•™™”´sçÅ‹oß6l˜™ù×_¿ý¶sghèÞ½‡OœÈ]/­öÝ»#GV®\»öÕ++«ªUÍÍY¶víaÃFª[×Üœ^ìP *Vôð¨QƒeIGb­6+« š4MÓz½^Ÿ‘¡R9::;—+÷þ}‰%/…Bkk?¿àà™3gμv-9Ù`È›n&Ξݱcýú­[7n\»v͚ٳnj¡i•êÅ‹ÐÐìlKËÚµmlÄbn}±ØÆ¦nÝׯÓÒ>5†@`g×¾ý‚£GW­zçÎøñ ¬[wæÌ›7ÙÙÅã1Lzú³gΜ9mÚØ±?ÿÝBÀÒÒÇÇÛ;,lÉ’Y³.\½zåÊ-[ôúÁƒ×¯Ÿ4©J7·V­–.1b„ի wv–Ëãâž¼mÛÑ£Czºñsttv6Eq?üóxçÏ8P¹²¯o»veݘoMÇÆ8УGûö»wsõêŋ͚%%͟ߥËÈ‘ ³n]@ÀâÅU«Ñø:˜› …ùòlaaeeo¯Vgd¨T,˲,Ë0 Ã0ä3EQÃpKŒÆ`xúôÑ£À@áç6 "ÚÛ·k7cFŸ>gÏ®];þï¿?{&• C‡nÚ4sf•*H=À·$;[«Õhø|@ 0hºhÃýêõz½N'‰Å Ð%H °²jÜxÖ¬ƒ7.ë¶OjªR™`cckëäTôtffFFZš\.—›™óõxÿ^z}FFbbFFq_áWRqJ èա¡Θѭ[£F†ŒÒÓUª””û÷/^LIINŽ/¨&éõœšªT&%‘!8*Uòð¨Qƒ_Xð;wúö­QÃ×wÁ‚½{ †ôôgÏΟ_·nÀ€ºu+UòõÝ»wëÖiÓš5+WÎʪråÚµÇ's2ŒZ~ùò¦MC‡Ž»i“¿TT\ܽ{þö[÷îsæ¬[·mÛîÝ;vlÙ²yóâÅ&ÑB(J¯OL¼uk͚ɓÉKׯ_¸pòäY³Ö®½~aÔê°°ë×÷î9³yó5ºt)½ÍÊ0ÉÉ—.׫×Ï?¿|©V—uœÒÄçËå:tî,•ªÕ_g ,ØÙ98¸¸¸»W¬X½zrrbbllPÐÝ»—/?|xï^@ÀÇ÷î]½úèуׯ¿yóâÅ£G*Ujjb¢££›‰ðÉ!8Äb'§víºvmÝZ P((ªM›.]š4Y·nûöŒŒAƒúôéÚõüùÍ›ýüªV½u+5Õ` (KK¹¼rå6múõ<ØÄ„¢š7wuµ° ¨ï¿0 M› ,-GŒ¨__¡ (Šb˜ìlŠ¢(­6,lÍšþý—,Q*.¼té·ß5¢(†IK š3§}{N.¿{·E‹®];uÚ²eÍš—/Ko³òù66:íÞ}óf§NÕaYšÖjF JïKã…ÁÀ²UÐRJWz±à[fjjjªP˜šV©âåõ¹ó~ÁÜd%ùÌçÛÚ¶m»yóãÇ]»Ö¯?bD@@r²Á@Q|¾H$ñù¹ç={vÇŽõë·nݸqíÚ?ÿœ6­o_šŽ‰9rdÊ”}û$’Y³¦MkØðÿ›Ç77¯[wÚ´… OžŒ‰ùÔ0 £T^»öóÏݺqíZJ ÃôîíãÓ¬ÙîÝQQz=Eed<g0°lzúë×ÇŽED¨Õ#Fԫ׺5·œ¢ÒÒûöõñiÚtçÎÈH®OŸÚµÛ¶=>1‘a&1ñäÉ‹SSÅb ==0°oßjÕªU3(Š¢h::zçμ¼üüòÆ!5Ç3n!Š"5Oœˆ‹3&)éìYîRºw¯]»S§¼©çÂãP”VûúõüùÏŸge‘úYYÏŸÏœªÕREéõïßïØÑ¡Cƒ¤ï9Ëêõéé4MþO¯ÿðaçÎNš5[ºôÕ+&+ëùóiÓZµjÙrùò·oSRòÛ†¥uhÀ·¬DÇ€~ÿ½E‹'OæÏŸ9óüù¤¤üÆ;ÿøã¸q#GŽ3fÌСýû7oþéÈEëŸËç[Yµl¹råñã«WW¨zêTbbv6à ,˲%•:9͙ӹsÏž¿ü²cÇë×ÕªÙÚJ¥-ZT¨ðá·?<<&&"ââÅåËCB†Ï/_þÁƒþý-,.\HHP«SRââÔj¥26öâÅ‹IÉçÎåĹ}ûùsRäïófûöÔ©Ã-騱Ow÷ˆˆ“'K‹­¬¢£5šqãe2’R¦i•êSq† éßÿôé1cfÍzþÜ××Ö6%%88,ì×_·ooՊϧ¨÷îݰ!:zðàqãfάYÓÝ],NNÖhRRRRììÞ·oãÆ¤¤3úõkÓæêÕš5}}œÚ¶2eÔ¨ÆÓÓOœøxÔ¼ù¸qÓ¦?¿~½§§Z}êÔË—ry·näó!½{_¹²wïHUü[T®\¥Jõêááaa¯^T‡pþü•+ûú¶k—{Rzú;}û6i2iRõê3füþûܹ´jUV+Ã0juXØ­[§OïÞ½`Áҥϟ_¿ræÌ?³ôÕ«{ölӆϟ=ûÈ‘±c==iº~ýzõ~þyÛ¶;wvï®]ÛÔ´d–“•õâÅš5oÞ¸¸¥¼zuàÀO?Ñt¯^Ç—ÜRr˜› … Q’z&Ÿ O@ÒZ¡hÜøÐ¡‡Ëzõ)Š¢ø|¹¼J•æÍû÷_²¤yóþýÿÙ¥_¿Áããæ¦P… Ÿoe¥P¸ºš˜|zX¢£i•*$ÄÃÃÍ­zu²”Ê•4ðôüð¡$—ðe¸©gnIAièBz@À¿_Ñ{@çM7Þ=k Hò¦˜ ‚ƒ_Ö þZéõ‰‰4ýuÄ)- £V‡†<8cF·n¡<”œBÐä%„¾¾]ºßÜÜÇgèÐÎ_¿Î̤¨š5 oM§¤Ü¹³ví/¿ìØ[©’R©RYZþùç† #Gº»‹ÅjõôéË–íÜéêªR=y’™9`Àºu]»Þ»÷Ë/»v)•UªòöíëÔqv^°`çÎÐÐN¶oß¿¿fÍ‹'MZ±âï¿Ýݽ¼ †{÷^¼ÈÈhÚ´{w_ßèèM›¶oñ¢C‡NªV}ðàòå[·ÒÓ›4Y¾ü?jÖ¼yÓgëÖÍ›÷íëÝ»_¿.]ÆïÕ‹¦ß½{þ< +«sçíÛ.lÕÊÊŠÏÏÊ1bÖ¬ ÈR>Œ‹“JûmÇŽÜÜÄbŠ¢(†ÉÈèܹqãï¿/8Ž@À0?ÿíïÏãuíÚ¡ƒX|÷îž=+V\¸0räìÙ—.1xðÎ]º´k÷ûï•*MŸ¾`1ËššÊå*Udä³g¶¶Ýº­YÓ¿ÿðágÏzyùùݸ1n\‹ݺ …W¯vë6yòÏ?“¥ôìٮݎÆÔ3Áç›™§GK˰03³ æÌ;ÖÛÛÄ$+ëùó™3ÃõZŠòðÞ¿ß·oôè+&N¼páþ}ŠJIqw¿uËßÿ·ß(J¯ŒýÏ?;vŒˆøí·¹s ž÷ à‹Å%—W¯þÓOß/“]¼¸{÷“'Æ©¤Oó®]gÏzx˜š~ªe4šúèѵkïÞÉåMš4hàî®ÕÒ4ÃètddꌌjÕ:wž0aÑ¢õëGŽ´·ON^¾üìYµš[žšš;NQ§O߸¡Vwí:iÒ”)'.]zè©)¿Ä_àÈ0ééÏŸs—²nÝøñµj}n¡Ðʪví›7££5R¢ÑÄÄ\¿îãce%’©¾¾2YTÙ.4‘‘‘¡×S”PhiY³¦··DuìXppJ E±¬Z~úô… qqJe~ÛðܹýûoÞT*É«µÚ÷﹟ÉÔ’ÞZðµûŒ$ªÁžråÊùówî(•julìž=»wïÚ™šúþý¡C‡]¸@QdˆˆzõfÍZ±¢_?cÒØ8ï¹sçÏ=zêÔÝ»))z}Nt©´J•‰÷ïŸ9ÓÆæàÁíÛ·mÛ¸qÆ%KæÎ=qÂÎnÁc_ÞÂ…vv­Z Þ¤‰Z½téˆ&8;Ëåqq‡-_¾sç“'Z­\¾dɪUë×oÝú×_¯_ש3q⯿ÚÚ^½:o·œ¢îÞõ÷OHÈÊR*Ÿ>½{7*ªR%gg•jåÊfÍÝÝllÆÛ²åÁƒ»w/^¼p!!A­NI‰‹S«•ÊG.^¼x‘”ܸqî\NœÛ·Ÿ?'åAAþþ7o’úÜ’¤$ÏÞž»”*UªWoÒD£á¦íiZ¥*qâŠýú 6nÜÌ™ëÖ:ôî]v6M§¤$$ˆD>>3f¬^=hM¯\ٯ߬Y¿ü²xñ¥KffuëÚÚšš*y·ááÃÛ¶=MöõÓ§ÜÏdjYêP\GŽœ>}éRÞ’¼å/ àüù*Wöõm×®¬ÿõêÒÅǧmÛ1c®^½x±];>¿uë¦MçÌY·. `ñâªUIb·¸h:6öÀ+WÄâ¾}ÉR4š×¯çÎýð¡|ù… Kj)\ææBáÇ£B䯠DsïÞ]»¶m›·\ðÃôìimíäT©RY¯æ×ËÍ-5õÂ…-[Ξ KK‹‰yò¤^½Q£&LhÖÌÉ)ÿW-~ >ßÄÄÙyöì_~Y½š,寀€ÌÌ.]:tðó+©¥pI¥|>®÷S<=«V­TéåËÐпÿ&%¥ž ô€øO+zh.Òºð4ßÜÜÂÂÚº¬WÊFV–Vûù èÂSÏßÁÁÉÉÍ­¬WÊFv¶F“ž^‘…ff …¥e||\ÜÛ·ææ––¶¶b±X, |>Fø7"½žIêY&“ÉLLJc)¼ÔÔ””øø²^Yø·á—uàß h(H@@©@JÐP*€€R4” $  T  ¥ h(H@@©@JÐP*€€R4” á©SgÎ\¼XÖÍ€¯…¹¹¹¹¹yñ㤥¥¥¥¥•õÚF.—Ëår¡P( KoMù|>ŸÏ733333û²ø Ã0 “‘‘‘‘‘QÚÛ„´“´¹8qH›ÕjµZ­&ŸKª…@ ˜ššššš~YƒÁ`0233333Kvë‰D"‘HdbbbbbRühÙÙÙÙÙÙZ­V«Õ–l; /…B¡P(ŠA£Ñh4½^¯×ëËzmJ†X,‹ÅR©T*•?Ú¿oû@Ñ MMe2™¬ðJ4m0PÔë×ññ “–¦ÑP”V«×SÇãQ”T*Q”B!“ñxU«:8ðx"QñÒWPväòO…cY†aƒ¡¸qJ›L&‘H$"‘X,'ŽÁ ÓétM%É\¹üËoÜI”aò¿YgY–eÙÂKŠ^“¬‹Dbbbb’_Œœù /ðù|¾……™™™›Ë§ã”+MÓ4Mç·=Y–eÉ¿EÙz<9K}\"åŸd'SÉ­‚Npcòxd¼”—^x ð,Ë’}QÐù™d›–lŠþ­È‘JŽîgnIY·¾.äØàqpÏæ8f /îù„ W+òðøë¿Z‰D@Pœ4Mî ŠçëAî—Š¿er,ðx… ÜsKñ»‰|=Èß÷3®¿Pî±AΟ¤œû¹8ÈC •J¥R©š6ýî»ï¾KJJJJJÊû­¤(Jo.î·Ç/[Ê—Í[œe•T„¯mY Å—wR,(;Áž·ÔÒÒÊÊÊêìÙÓ§OŸ¶°°°°° ½Jv½Þ½{ÿþý{@( mmmmmmÉu'33###ÃÒÒ¢Ô6jðxvv66îî&&R©DBQ<ËFFFG‡‡3 Ë–þ=UjªJ¥R‘E"±X$*_¾|ùòåe2©T&>_­ÎÈÈÌ,ú£å/ê$é¥R±ì»wII,«Õæ—¢¨ìl𦍴4†e““32X¶B[[ÏÙÙÒ’Ç ÿ©?>øZüs'ÜoGþÛ¤(Éb’ŽÌûµ[çS§õO×'%䆘œÜIj•;•;wîòOGÎ[§ $÷F¶¹ 3¶-ç‚ËM‘|¼Ýs’Å$Â0 £Óå<6È;/w äJÚÉFþ/ï¾&éš¼íÉÝÎë¶q÷87õCÊÉö!Ç)ûÔß]QSöðoBŽrÌä³¹2•ÜxåGÎ9Vôú’s 9ï…… À‘ó_DRjäÊIÎ9ä>‚ü¦‡ÔáÞ]ä§,¡° _µUdMóþíüóJêNÜx)™hä—]y;pïs¸I7Ržó¨ÿÛü~ÁM7“Ïd Ïàú 9ÈqNŽÒ¡‡¤ÃJ# M£¬´S´Ÿ›nþ²¥pç"ÜÜÜÝÝÝß›r$&ÆÇÇÇ=‰æ/‹Ã0¥ÓÑ4Eiµ,KQ #P”LÆçS”XÌã•Ü•àS-,<ñ©µûø[vIµ¹pBaffbbpð£GefªÕju5jÔ¨acccccÃ04MÓe•€–ÉÄb‰ÄÞÞÑÑÊJ"15ut´´41‘HÄb‰D$*_¾rew÷—/_¼ ILLLŒ‹+Ù¥“«n||BBBB¥JžžµkW¯nffjJQ‰Lfaaf&—Ëå‰H$“‰DÁãÇ>x`bbfffF®rMXXh(MÛÛ;8ä³å ÚÍ÷ï¿ϲééäF¬¨‚F£×SÔË—±±,—–FQõë»»ÿÃ{ ÊXþý]¿6%ÕºÂ×Ô85ÿ:Üô¦±DÎ)š”pãsoÁs'd?ŽSœr£#‘H¥R)7½›»…¤„›N-¨äãeåÅLN[%¬I ·/Uîd}þ%Üä+ùŠh,˙˘X …Bîö'Ó Ožç^VÞ¥µ$##===],‰D"îƒî±X"‘HìíííííIºœ›çcÆ4zþ%ƛΜ½lü˜Sž÷¶!÷ÿ45oªýã#ŸÔ1¶wjÞ½À]JAS¹w,yÿR¸g*îß)·'rÞó÷(%ûÜ­äÝþä{îíCQÆ-i¡V›CÖÜãäÛê/ÌÝÚdÉý[¥J•+W®ÌÝ/yÜÇ?ËæþÝIÞkâ§~‰WÔëoîVå¿,îúq—•wÙ¥qý%ò^Oóž¿ì\Ê}ÔšßûãXE¹þý\š·$22222R§ã>Æ+êY¥ ó‰ñ;EÎ_zágž¢GþÜúŸÛþ¢¯õ¥KÕiÛ¶uëÖ­?w-¾¬…9WšÏ‰ó©åRÃÄÆJ$çÏ«Tbñ£GÙÙ<^r²VÛ¬™…Mש#Q”©)ÃP”ÁÀç“3EI$ ËZ[î¾àþz²à-–ÿÕÓxõÉYÓ‚þ&sß’«|ÎYôËŽ¢üÖ%==>ÞÍ-+kÛ6“ºuÉÚÑ´^¯×'$ÄÇÇÇ“ÁZ•J¥R©$÷¤¤øK/œ\.Éd*ØÛS”X̲j5ŸÏ0B¡X,ŠÅ‰PhjjnnbÒ AãÆ Þ¿xï^BBbbllñ—.•ÊåryVVVVV–››»{¹r™™jµ½½…ÅåË©©4íîn0èt¶¶‰^ïà`jªT6iÒ¼y“&11>ÄÆ\¾|႗שS'OªTmÛvìHÓåÊ•+Gâ“ý(äö4LKÓjy¼çÏcc‚‚ú;‰X,®Z5}z·nR©X,†aÙ³gïߌ¼zõÑ£÷ïoÞ ‰ññqr2äò¢vœLÓIv¶N§×“ ŸOnsâü~öþñ“²1ºäOÏÁÁÌL$¢(†)x-##cbbbœœœœœœŠ~*¾˜˜˜˜˜77ggggnù½{gYÅ‹ßÕ¡d—Qòñ {”Uô5ÿ¸„û«‚J•*UªTéÝ»wïÞ½#ýiH?Vr}åεyóµk±±ÑÑ*MËd&&&&™™YYåÊYY …mÚx{[YU¨`kk\èŸþÅOáÛœûȘ[N®“QQÑÑÑÑNNÎÎÎÎ ÅÇoà(|øpnÍìlKË[·Äb•ªqceëXP|__gç™3¥R[[oï°°·oÉ÷YoêÔ©Sÿø£ öߺ5~¼““½½™É*YYét½y£Óýþû—­#ñáEUªÔ¶míÚŸÏãÝ»ªTZY™šŠD®®¶¶&&áá11™™µj¹¸ðxS§NŸ>c†V«Vgf’ Ï,_¾|ùóçÏž={–w‰¤×s|¼Tzñb‹ÞÞÇgeÑt·nÙÙ4ž®ÕÒtjªZMÓÉÉ˦¤h44­Tfdèõ‰‰ii:]ddVVF†^og§×7onee0Ô©#±ì§ÞÀV« ýK®€aaáááádÐ n6€\Òÿ'---­jÕªU«V-è\¤ç(þõÔÝ=!aÿ~7· ®^mÑÂĤOŸ¬,¡Ð`Ðë †×¯•J­V¥R«uº¬,±X$âóÛµ‹0€äŽŠ³ô¢¨^ÝÑÑÓS$Òjù|ÒÅL­Öëcc> Q©H†°re©´re½^§£éjÕªVõòŠŽŽ‰ùð¡øKþœyÏž‘m¾jÕªU«V‘»£ôôÇ׬¹t)...N¯×ë32z÷îÑÃÌìþý÷ï_¼Ðë5šôô´´¬¬Ê•_¿îÖÍÏÏÒÒÊÊÙ™es²ÍÿK@ÐÍ0š žz&;¾k×æÍ«W—É$‘ˆ$t23ÕêììÌL­Ö`ˆMK£i™ÌÒÒÚ:99))6öõëøx>ßÇÇɉ¦‚O?¹¾rE©äþôPîÿ7žôs'—hÚøtÑ8r.yêLFI1Þ½‹ŒlÞ¼B©´^½êÕóëNÔ3¹Ùù'Ðd¹yŸ/‘W£¸¸[êâ¾&¥ ¦¦߬“ÞOyŸ3“Tx¹råÊ•+gnžóó²ýÉ%­4ZXø«íÈ–qwÏyÒRÒ÷øc ÉdR©Tʽäç­SøíwÊüù.¬_ïîî뛜lkKÓÆÓœ@ ‹Åöö S¹²\βÖÖ¦¦,keek˲•*êJQ9}È|9)ÝÜýyóŽ:÷ñ0z½N§Óqd]P–û¬2ïšrŸ®ç,ɸ¬Ü=/(*÷so¥œ¹¸ëÂ]bQú)sS½ÜrîÎmaáëž»¤ Þ…9µro¥£i4YYYY¹ÿÖÈ—jòSMš¦iriÏÎ&Cˆä¤?H±X"‹ÝÜÜÜ*UzóæÍ›—/¥R±˜¢,-ÍÍ--E"‰äãŸyöE:ÿ£5¿'Õ+üf”*¦Âot?µ&E‰ÿé›éü’Ÿç´$¾”høx Èc‹¬,­V«%gúœ­Y´¤pÞû¼uЧð6´”‚—\رQÐZr÷`îm˜³—ÉgrçCŽ"ÜôÖ¯“q-´Z­–ÿ$éRPýÌL±ØÌìÊ…ÂË«R%{{++ooòCzŠ¢¨7T*''šÎÌLKkÕ*=ýÅ SÓììôôÂ÷NA{ž{–Èo—Öý[ñ¯¿¥ù Û²¿þæÝòäüif¦P(äX2˜÷AÇãU©âáááñáCdddä­[·nݺEÆz&¯pws+W®\9ŸZµjÕ:{öÔ©S§²²4†«ù%µóoAWÉ‚¦ž>}öìÙ³vvvvvv¤$ï/N(ŠÏÏÎÎʲ³;qâÍsócÇjÔx÷nÍnüü²jõ£G¡¡ññzy5onŒöæÍ›7oÞ´'*Vôö^¸ÐÅÅÅÅÅ…lÏØX€eÅâÏßÓÙÙ¢TZZvèШ‘•ÕþýW¯†…‰Å4–æáae•”Äç¿|ùò¥PèæV¡B•*EQAJJv¶L&—STff~W“šæñ´Ú´4‰äñã¬,šNI!©g½žaÔj­Ö`HKc’ôË]BÓ‰@`nž™)•†…EEñùÇkµÙÙÉÉåÊÑt¯^…¯#96 ç—\CŸ>}úôéSòðƒäÐRSSSSSóÖ433333#>|øðáÃ777777ã^ænæ#Ÿ»wrކqqqw¿rE¯×éLLÞ¿—H\\4ŠJIÑëy<½>;›¢t:†e³² @¯gYò„î=J¥^¯ÑÈdŸ/ët<Þ£Gáá¯_¿zõêÕ«W$6iÒ„ ?ÿ¬Ñ¨ÕZ-ù—{g^œ¥7hРAÆäœòìÙ³gäqy4Bºx’ßdã >>114”ÇÓj•Ê”¦bÅŠíìbb<<š4Y¸ðõëçÏCBòÞÝ IsccÓÒ„ÂôtãO; V¡‚³³•U³fõêU©¢Ñdgëõwî¼~ýôé›7±±ƒHIJffÖÖB¡P( …R©©©J¥ÑdfÆÇ§§“ÞÇù=9áâñhZ¯wt”JY6-Í`àó33IZ}ú”)wïÞ¹óøñ•+ïÞ]¸ðì™Jõð¡Á‘AÓ66vvíÛW­Ú¾ýçõ…÷€(n„ÏoÍ—ÌU”sTÞapòKdå ü§Úò¥gÌ¢ÌgìHŽò òx)çñ*M3 ·lÙ¹s11mÚ´lÙ°a… ..ööJ¥ZMÓËR”F£Ó1L¹rÎÎvvÇ÷îݺõâÅÛ¶80kV§N®®$ ÍÝJÜm’³¯ŠväpÏŠ¹ãäD(<=]Åy™q”Ûü“5Ü-`üüq}îYâK÷rq¯µÍÍý½…ñÅÂ9ç’däž z¤7oÞõëqqOŸÆÄdfº¸(ŽŽ¹‡ÉI$æÞVÜíS”äZî}óùÇ^Þy‰‚~pʽ^å IÞí\й%w{¸×YîOóß﹯°_¿ :k}®Âç3ö~ÖëõzÒÛÎx†Ñëõz‘H( ón±òåÝÝÃõå¾ßøx͸{6ï«Y³fÍš5¹c§æ £ =žókÉœ{˜¼-án=¸­úø¨(ø˜,ªÂ[žwk|êšUøþÍ{N#ß­>~0_xŒüJ)ªà÷šä7/é;¬Õjµ¤ïsÞ_Ú}ýÈ߃ñÎíã3WLŒ‰‰¿¿¥e:¾¾VV"‘PÈçSTZM·I¥J¦¦|¾F#“YZ<(6hðãÑÑ/´tîÙ ÷¾Ë9 >K䯤¶Léݹ}^¼²¾þÚÙÙÛÛÛW¨P±bÅŠ¤wsRRbbbbA[É8ŠºL&“åZÊËËÛÛÛ[¥JKKK#É#r§G¾³“û^½zùòåK2µU«Ö­[·&éi2ÄGQ~c]ÐY¥ ³If 8pàÀ$íHÊI:÷Ù€aD"…âÕ«+¬¬llŽÕjY6+K,fY©´ å’ކÜ}—œœ’’’B:÷Ïð9[•t¡#,´8Ë’ïŸBaîs]ÞGey·Éóç*•µõ?´kçéyìØ¥KAA5kZYåÈÖÂB$2,--,h:11:úÕ+Š*WÎÛ»R%''…"*êǤ¤ü¾Sp·0Y_–¥i2à7õ¬×3LVùW§cµZ§3Ôj½Þ`P«sJ23ù|Š F HM‹‰.^trÒé:u(*w¨ ý›wk„‡GDDDT¯îééé™_gÁ·9ÞÈ1LŽ@rçI^pÇí¶EöñßüÏŸEak›™ùèŸonn0deeg»¸dfJ$‰NG›3 Mggç|&ƒœrÇa/ÎÒ R±b•*Uª$'''''“-üöí³g9]ôŒwÝä,Aæºy30ðúun.ÔÊÊÚÚÊŠ´ÓÚÚÚÚÚúíÛððððÏm¥¥¥¥…EŸ>½{÷îÝ¥KçÎ]ºDEEEEE‘ßL¿—œ‡ÁÛ·¯_kµ-[¶lùý÷Rizz¥J..nnîîdô nG?×J%ïõS?¬hß¾qcÒ÷yöì5kΟ‹KNÎý,—H®®*ÈdVV66z}LLffhhr²Xlm-•üì—HÀÍÍ‚Ç{ñ")É``YræŽ5Ëç …ä¿<žñô£V“?Kƒ¦uºä䈈°°^¿~óF§Óéôzr“©=Ã!§é3gNŸ>}º~ýúõë×/wnæEvO``````¯^={öìÉm!94íííìììH K£ däYî>'‡ZÞ?9òD‹¤Ì¸?Í#7—Ü‘ªJÇã‘ñÉyk­T”¥so½ŠÓ&ra+¨UÆTï§¿ æœÖíñó³¶ž=»cÇzõš5[¿þÊ•U«llìíYöêÕ{÷Þ¼™7¯oß3V¯ ?žû³”¼ÄâÜ Gšñ 0Ùk C^\`œJN$2yîGåÈ=Gμ¯Eî-{Msb¨Tii*•©©\njJæ%=¯£æàöã6®‰ÏãåNOs¿¨sK¸qŒ}ŠIMnB„ûE®°[ó¼—Õ¼7 ùõ‰þ8}šªT*•Üy¹uòÕükL öžY77gg{ûE‹îÞ;W,61‘J7nÙ²Q#ÎËK(äñD"¹\$25]°àðá™3ûö•J "¿iÈ›ÊÉ»OsÀ[Ø—^îgãQG>ô‘ÿ×›ÜIüçÊïksaíÉ2ûx­óŽok¼mÍ©OŽòŘüS½:N÷ù)€Â¦~ªdaó/ÿ9m6þÓ4M“¶ýþûÍ›:ݰaƒõêåååâ"—׬Y®œ©éµk¯^¥¦ªTYY4Ý£‡¯¯­-yÀû×_·oÇÇ7hЪUçÎ3fœ?ëÖØ±õë …îî66 Ù&Æä]ÎÍǧ^>–ƒ<6ËÌT«33MMMLärî—öÜ£Æs¿T||ä3š» ‹’šáþ-¥“«¹)Ì}þÉY ŸÏç ÷î=xpá¹s'O.\8þÂ…¹€}|îøüUQœ¢ÏKŽ ã¿ Ã0Æ×e‘/9GŽñw6¿RlðàcÇþþ[(¤(–½|yð`‚ŽLîñɃaîƒÂ¢§<ò& ¸gî_bþI½œëŸ?{ö¯¿Îž=wî´iÓ¦)¶¶ööÇ=zôèÇOŸ>~™B®N¹{‹|¬rïèòÖ4öüÊ9rò¶0ïz¿5ä]S6_gäüCîEù|>¿ ïn_'î¨èd¿ô‚Êk×llêÖ•Ëù|Šúð!995õ¯¿7¶·çž+ž<‰ˆøðáÏ?ããÅb¹\*U(¶o·´lÜxȤ¤›7óÆ$ÉãwØœ}xï^PйsgÏž8AÎ0ù%>ÆýÍbî:Ÿ>Kç=óßçD*ÎU²´"“ïòÇ?~üx`à;wî´nݪU«V Ô«W¯ž± ÚÇSÆï9gQRâííãããséÒ¥K—.‘¿òò4WW7777_ßzõêÕ3¾j^,‹> ºzõÊ•+W 4hР'O?~ü8ï  RÐyŒ ¯/#½°§N:uêTRÿöíÛ·oß®V­ZµjÕÈú¹†jÔøá½þÝ»Aƒ*UJHèÙsåJ{ûûöMNþýwƒÁÍ-ï² ò?çìK:Æ‘¥}ººzõj§“¢¬Öêjš>t("Âé8¢XV,æc/^ €Ã~–=qâĉ'ÂÂÂÃÃÃÕêúúúzþS:uêÔ©´œ;wþüùóø=p.&€Ï~ïÞ½{÷î»aV?¨áJ `»½}{‰dÆààèè[· ½¾ž¦GŒ¯ªR©"#ëê’“qÞ w¬™N$’ÉD¢'qú\ºtéÒ¥KçÎåå·`ÁÚµ!!\æàžÐ_4çx×Àçž:¥Ñ¸\%%6ÌÛ¿ëÖ‰‰ ÅÃ'ì  Ù )ø¶¿þú”)o¼4¢EmÚH¥IeeUUM È ð;~^ühu¿%[¬Læç‡–D­Öj}¥Yà‡¨!hŽ2Î`hl¬­½u‹ ¤R­V¯_œYñ”É Cò­çÒÒâbµšeiZ¥¢iÈV(J¥%+¾GB’$ îåññññññ0éݼ,ØPǼìv.¿Þ“møˆ`ãñ=7}G¥VpvæÿI|E}­ÌRsÞv,`Ðe<°"¾GÅ©H¸9õ;ã-Ï>Û¥ËSO]»VS“““—§×ïÛ7qbLÌÇwíúì³cÆÄÆúûÇÄ UÃÕµ\oœ‚€¢Ž?sæìY‡ÃbŠR*ýüÄâÞ½{÷îßYc£Ng0Èdb1M B!2*àþ/EÓBá—_~ÿýŽ/¿¼C‡áÃñÑ¢ƒØ»*™/Nã£æ+|Ñ5˜=<è+|‰åÜHÁçÙ'J#ƒß‰Ï?Þ3PW謁ÌÎþý‡çäØl&“^¯R©TK3pàÀC†À :”“óë¯{÷îÙ³cÇØ±£FÝ¡CçÎ]»âë‚«ê&x÷ËsŸan>ݱ¨i¾…kATšSÆ¡½»Ìår¹Ú¶mÕ*=]¯·XÆd²Ùмiµ&“Ó¢T"jpèÐo¿54ܹSSc±˜Í6›ËÛ¢EJÊ‘#yyW¯¾òJïÞ!!ÁÓРÕ þþ …oÈ%4™Ìf»}Íš?þè£ùóßyç½÷@}+ m6‹Ål Åb”É·8„c)Ì7Ígg7l6»af̘={òä‰Ç?¾k×=zõúðÃ+–.íׯ_¿þýÓÒÒÓÛµ“Ëe2¡°k×λtÙ¹óÇ¿ÿžï‰†›ù%X}­osGìùìýïáükåq÷ÀŒâ0ÇÝ3—›k£Ñb±ÙúôiÑÂ=]¾F8B‹Á Õ ~~`ĉ¼yâàtÀ½ì-A`ŽTJÓ,KMûºõ†{"s«”×€ARÕeggeõïß²eÛ¶íÛ‹Å 2y΀·Ù†1p DwÚèr9ËSO 4t(à²Õj·ÛíHÑÉŒq|÷H&Š¢¨®];uêÜy×®]»~øÑFø._ #|E¼Ÿ›ÍÇtf¹W`qh_¿_=~üøñ””””””#GrrrrÆ7nܸ7rsss!ƒ3d®¯©©®®®ˆˆˆ€@T8C@ÄŽe;µÙl6P:ãé­jkkkkk!œ4""222Ç@˜±íÛúiÏ›Í`ÐjƒƒCBÆn7›‡î¹^€RÍçÎ]¾|íÚíÛ¹¹W®„††††‡·k—‘‘–‰ö²çÎÅ©»:îá8|nÝUÏh¥) RÜ?~úô©S{öìܹmÛ¿þõñÇŸ~*‰ÅÉž=ûö<¸}û÷ßýõøñcÆŒõÔSC† väȯ¿?^SS^^RR_¯Vk4f³Ñ¨Ó½üò„ ¯¼âž”ŒÛ|Ü€Q56jµ:È/F£^ßØØ£G½záfuàbµZ­VŒ ‡Ï2€!¿DDy†þ€ûî!ü÷CƒD¨Ñ8 Lp¹>þ8.Ž$ü±ºøÄ-ôé3mM×ÕÍœYZÊ0õõ$©TÖ׋Å‹Fƒ÷,Ó4MïØ±sçöíÁÁÁÁ¡¡wï–”””Lœ8aÂk¯Á©9sxâÿlõÍÅy~;Ž)¾xrÔCSsøäÄÓ×ã‹:jÙ2###céÒeË–-ƒÈÉÉÉÉÉ™8qâĉ¯\¹|ùòewX‚pÇ(ü...***ÙTÛ:têÔ©xM"‰bSl6ˆì¶ÛAñ§Õ6666Bä ?î„¿^î³øsêÔ3ÏÈå A8ÑÑ›6ÍŸ?þüù Ì‚ê#yyyyyy 0`ß:"âöíU«vš3G¥2Û¶ÍȰXúô¹}›¢~û-2’a䋃Ë;„ÛW¸𻼼¢¢²Òý+ÜÁ[jHÓBÒ|+²9AFˆÎ3ïY  i?¿îÝ{öìÕ+(H. œ5ëçŸ'M92&æå—_z)1ñ•WÄbš‰nß®®¾u뫯jj>ùäΣ1?_, E"§Óáxúi|Vá•|„N±‹¯8úRNE…0lfÖ=ˆ W'áb¹ûá øSp÷‰zªvW_{÷•ÂÅ{’¤(«µ±±ªêùçGzé%X¥¯¾úá‡ÌÉ9p`Ïž6¬sç.]ºu;|øðá½{»téÒ¥kW› ’VpbŸç²¶»3ÊÀFÝEwrtÕwîQ¾Ê®a]¸ùÁYð“J • |øðÊʪªª*(ÆqrðFPµ°¬B¡P Ù (ÀlÖh**&Nœ4iêTÀëO?Ý´iË–Ý»wîüöÛ#F?~Ӧ׭۴é“OÖ­“Jår¥òÖ­ë×/_ u76À© Þ¨øÎB” h‡oø~A”Ÿã‘`Õ ¾­oß^½úô¹|ùòåË—·nݺuÓ¦I“¦L™1#;;33+kÿþýûwï0 33;{Û¶;víb®ºú¥—&L˜<8 Àû={Ø¿a,®øà0ðß:±,˪Tþþ‰X,•^ºtéÒÙ³îTˆ;Ùëë4…B*•H ÂÁét8ìvðÖöf¶ʃ»57’æ¿И¹ó—/)äçÓtppuµÅ²))ÙÜ©S||xøªU/šÍø))r9EÁ¯JeQQMͽ{N§L–Ÿ/wëÆ0uuø5Íf»}ĈaÆ ‹ýüŠ¡Ìµ»ËŸAxË­ÐîÎqA|.ŽS–¹Ÿ¹÷7²> Ã0PV¤Èó‹ÇOƒo>ŒÊdR©.]’Ëuº.]’“µÚÁƒ‹wíJJ²ÛccoÞ¤¨ÒR_Ñ“ˆvrãÂ1ÖwœÄÏnOÚ‹Ü<¥xüþà`¥R,¶ÛF† T*—kðàŽ##¿úêÈ‘[·Ú¶U*kkÁ;X£Ñh4šðp™¬±1"" @*%‚0›áz½Ùìp€:þvOÕ3þ2™ËŲT=s:].›M& ƒ‚´Z›íÞ=’„ˆB’‹Û· 0!5U¥zúé[·ú‰aX\ Æá é{÷"È}íQÄ ¡QA’”®–KËÇPUãRÿNP£è%nH ~úŸ”qð Þ è†9t(5Õé,*ª«3›õzHÙër‰Åë@’àN#Ò´/êýè€($ø\f³Í†иЧOT”PX^n0¸\P@£1›]®Š £Ñå²Û].Xgd âs×7*\õŒé8/m‚4ðîš>ÍÿkõåL®TFFÆÅµk×±cÛ¶«WÏûÜs6,X0rdZZ‹¨p߯ ޹eË’%cƬ_?þÈ‘¡¡©©mÚÈå\[“I£©­Å{v44šêêÚÚE‹þýo³ùâÅÜ\½Þá°XÌf‡Ãb1™ìv“É`°ÛÍf½Þn·XŒFƒA­Öh~ûíÒ¥›7KK ïݳۭV‹”N¬X7`þ`Ò|½gÊAÀ¸í ½}AAAAAÁP€Áí&|:Pð2w$ Q–a¼ýU«ÕjF­V«!uøÃ_Íï÷zöÕHñ¿³á´Ãšâ÷<®ñðÿÂ<øZ;øõ~ý¨Õj5”1 ƒÁèp\rµY›þ‹+V|Šñ\H ònåïD¡P ‹aK;,k³9PŠeív‘H ɬV­V£Uall×®™™ößÁf³Ù®\¹páäɾ}ûöÍÊB~ô6›ÕúÔS™™™™¿þzæÌùóv»ÓÉ0ÕÕå娂*Œðú†eûö]»ÀÓsäÈÏ>[¿þ“Oðücï¿¿páüù6›Ñ¨×Ûlv»Ó ã7oÁ‚÷ß·ZÍf£±¡¡®®¶Öb±ZŽÙ³ßzkölðìï½÷ßï=‹ÅhÔë5šººÚZ(¶WYYVVZ $L¯7Ìæ>Z³fõj‹Åfs:çÎ}ç¹sÍf®±qÖ¬·Þš3§¨èöíß~ƒ]§`¥(£±¡¡¾h¦ZÝÐ`0Û ûø»ï¶oÿþ{°)ïßðàþý$É0Ç©SgΜ>Í¥C@µ à/--+++ƒ7BaʆF­Úåp&Ã7sxcC_ÊáÒ½{ÕZRR_oµÖÔhµ¨æAÿþ-[ˆD4MQ[·ž:U[[\\Wgµ––Ö×[­ 6[U•Vk·76ÚlB!—¯œaÊËKK‹‹AŒ˜ X_º¬«ÓhŒÆ+–/_´è½÷æÏŸ7¢Æá Š‚‡$g̘={æL‹E«mh@–}–eYPñ“¤@ê"ÈÒ& j5ø6ÖÔÔ×ëõb±P(nÙs¼mÛ–-ååEEî©`X–eaœ  ýB!D~Q”{J À†aÙ>Z·nÝ:Àé4›$8&“Åâp ž+–¢¡péÒ5kÖ¬ÑVW«ÕÇ~øáâÅ0"Oú¼–üoÓt pÀó/?íÂøvx’Ã+÷¤A¯¿Þ½{TÔÆ/¼‘{èÜ“”‚Â-ñQ!œáÔ©ˆ&44¨Õ€9€3à ˜8c2iµ.Œ$­V­¶¡/çp0 IN:{öÌ™EE·nåæÒ´P(áôgéÒÕ«W¯®­-++)ÁÓÅà"((µ!£:ì2h‡1{ÃPþr*hËС#FÀ‰Œh˳Ï>ûì¾}ÇŽ<©×76j4 ¤9 ò›7ùå–-@ýû®‚BÙ¬YsçΙüW¯^³fõj´¿ ÆÇj5›I’¢D¢éÓgÍš9³¨¨¸¸¨Èår8YîAq†?p^AoÈ·Èét:á,ƒœ0SÀ™£[SSSå¿ùæ»ï¾û®¸¸¤¤¤Ð={îܹsÐgxxxxxøðáÆ ¦R©T*¨6àí ŽA‚)X‘ˆˆðððpðûƒª ø×Õ×k4:Ý‹/¾øâ„  œ…_&N;vìØ;÷í;xP§S«ëê2ä¹çF;vܸ÷ÞûÇ?Þ~;#£}ûÎaï/^¼lÙ’%N§ËEQ¯¿þæ›ÿ»Íf6'NžüÚkùù¹¹W¯¦üôÓ¾}GŽüãï¼3s¦PHÓB¡Ñ¨V×Õ^UU[«Õ AQï¾»páÂ… ÕÕ·o–”üôÄU°¬Ë5oÞœ93gvîÜ»÷!S¦¼ñƤIHT)EQ'NääìÛ7f̘1/½<]EEUUM͹sçÏŸ=ìnðñ•3ðã~Ð8MFê-NÝÌ7b!>Jà’$2±gÃEx¹ây¼s_ÿ[€ÓRnÝr:e²¢"³ÙåºqÃb ›Žs‚_áΊ «•eoÝr:¥Rþ©o¼1cÆÌ™«W¯\¹|yUUiiA^éÔV.—Ýn³!å2ËR”Z]QQZ ŧvìØ»wï^†!šÆ¹8 w|.ÎdjhP«%©T*]±bÅŠ>n O¨ÒJÒô_oÀMÍÿë žôù{á¹sçÎåä:tèþÚÑ—Þ ë.쵌ŒÖ­[·ö”àP*œÂÊàó9.íHþüùóç÷îÝ»wï^H¾úˆDÁ/P”Å×ÉÉÍàÁ—/K$'N$']º\¼(:…Ï¡;pϵL(ñŒèÿƒD"‘€ã€XÌý_,©Á½ZÀ;wÚð.Åçå••ét‘‘b±Á`0ØlqøðÕ«UU­ZùùUUy2::>>)©C‡Ž;w ?räüyTÕI¯·ÙµZ§³ZƒƒýýA1”‰Þè"ØÁ½e¡P ËÁ\8`@tôÒ¥]»†…ýýïƒÝ^]=~|ZÚ¾}­Z>ÿ¼ÉäpÔ×ïÙS\9¹±±]»¸¸ÚÚŒŒ¦wßã:!BBD"’œ4©U+‰¤oßÈH¡ðùçÅb’t¹"0P$"ÉÒR­–a:u † ÇŽML ££…B¨¤õhãĵ@@CÀ ±¸¸´ôÞ=­V§Óëoß.,¼sç΢¢âbp«Ã+Ä ,õ´§{6IÊå¡¡b±B¡TÆÆ†…)• …ï”äଌ ‰É¤Ñ $ú84Ç!ù­p!·Ü5ò€[¼FSW§ÓéõƒÕ*“†…„ͦ×;f³Vk6×Õåå!gqŠE µ{‚ wà˜-dóÎ pÞKÍóì¾pÞx d³ó ÀôÝ ü½ÿ<{ËèiYñˆ@ãᬣøS¸ñÑÇÃäåŠûŽ¡'ÝYä¦ûq÷0㯯7¯Eß³íkT((ÉýMÍËõyï^]]EET”R™˜¨ÓétNgY™V[PÏ …%‘TTèõùùAAZmÇŽRiXXt´Ãa³yÖBåŽ <•ò±$.t‚ @ÜePÒ¢qº\.—Ñh2Y­ÕÕee¥¥'NœíЉÜhp„+J¥ŸßSO –™i2Y­:Ë’$Ã$''%%'Ùl.ÄÇËdry«V‘‘VWWW×Ö†‡GD„…AŸz½Ùlµ…‡GFÂZ€ÂÞ –ÐÐÈȸ¸'Ž;t(33++;[  i¡ðîÝ’’ÒR „5ÚJب¨˜˜ØXøžîÝ»téÒå×_Ù³ÇáÐé*+ÏŸ¿víúuŠúí·›7u:½ÞhÔju:ƒÁdÒj5À„-bc#"’’Z´xöÙC‡Ž?u*,,""* Ö”¢šF‚´H„èøÊ#ÑvG ðÝêžn…³ñV T\ü½O»F¥R(üýaýý•J¹Ün‡T0…*€ãÞ¸îẀ“ð/$ä£B‚PjϯJQPrÇ®O¼ˆ:_\.— RmØl‡Ë~ÍðüçŸ=ZY9kÖSOEGϘ1p`TÔ”)[·66šÍN§Ng6;F£ÍÆ0þþB¡Õêtº\2Œí&–eY½Þb±ÙÔêêꪪýû}23 rOÁí2˜wól±Øl—.æÜ¼™—§Õêt&SDijÏ2~ü¨Q£G¿óμyï¼3vìË/OšŒÊtÏ01wî¼yo¿m·›Íî‰Åüüd2‘héÒeËV­BØBÈ¿F&“ËUª­[·nݼùÕW§L™>áx*zž 0N˜‡ ®^½v ’Á<›«l|Ÿ„£yOzÃïøI*’’RRRR6oÞ¼yóf0A¹¡\ (ÔŽ(TQcwjëñ¹‚•…¹‚ùEôçèу 0`à@»%•ãp†ûz>ýéÖ­sçÎþ„Ù\W…ToÜxàdpÏæJ†‹e›ÆŸåËW¬øè#àž¸,~î*<|¬\¨5ËnÙ²mÛ¶mãÆ½ðˆȼ…èŽÞÒe@Ïï¿ÿÞ{óçß¾}çÎ;%%EEEE}útéÒ±#ôjÊøøøø-@Þý”yÌA”–Ãh¸ I’$ ÈÊÊʺzõúõë×Û¶mÓ¦Mpé˜<ùµ×^{ <4hР«W¯^½zµKX©'NœÈÈHOOOÇÏJph¿iX¯áÇ>”× íÛ·oß¾}ÓãçÖU à›U` e̘çŸ><;»ÿ¾}<|øðá/¾X¿þ_ÿ ³lÙ’%Ë—ïÞýóÏ?ÿ fhà‘cbbcãâ@ ëÙ³{÷îÝÞ¿çN­V«ÕëOŸ¾téòeŠº~ýÆ ­V«5ÌÊ0ÀhllT«ýýƒ‚BB„B‘(%%116Ô·à½Ú¦Mzzrr«VíÛ÷èÁßû0[ˆ rþ††††ÿóŸk×._¾jÕÊ•}„$0`¬]»v­@@’ T¾öÚäÉo¼Ï 2{pT §cܸ_qéÉ}G¹ã0ž– ?³„îý™à‹Šâ÷DG»\à•LUUN'MÿóŸwïZ­Ï?åžq5,L,&ÉO?-*²ÙàN¼>-3ôÊ•+W~ôÑÉ“§OŸ>ýÉ'6lÚ´qãúõÿþ7ŒeË–o¾ùæ›™3§OŸ>ž°òÈ‘_=räÅcc“’hšeÁ‹Ö鎌Œ‰‰ÅŸ‹ŠM’‡Î ‚pO€ög¬Éãyï“>…ùÀÇ"ˆkP¢Â 9räÈ‘#/¿üòË/¿ŒÇ†ºk-8š ²Åb0 <Ä÷©¯ñàÜNçp(•Ngcã±cЉL!-(ÇÁÔ ¼+ÊpÍñ¸0RàÅñ_¹k|&?D=çÃÏaÂ#tq.ë£+®Å×<àØ¤PˆÅ7o:AHˆDâtŠÅ4 µÆJJ2ŒÃ¸‹Ål6™Äb.µ,HV­[>wnuõ¯¿nØ€Þâ*"ÞÒå"IP‹ÅR©×ÛíeepJÅÆ*={¾ðBrò·ßÂóà}êTuõÊ•üÕ‰X60ÐåbY.ã¿w ô<¹8B85¸u{À0ŒÓ\»ë¸XüyzzË–-[ò¥˜æ¤àP(L¦šŠ’Éìv“Éf ‹E"³™¦)ÊbAñÕäç——wëÆ0Cß¾±±&Eá™à¤fY•ŠKL÷8‹` oݪ­u8’’T*`Û¶7 ø;˪T EµiNÓÛ¶åæZ­2’ÇM&pËå-Á݃ß× P©üý•J³Ùl¶XŒF³Ùd‚U D=pk‡ï—ß56¸ÚT"  ”JUª  @õk×îÞ­«S((Êjˆ òóKLŒ……¤é›7 !ŸËšÍV«Ó©ÕVU•—ƒŸ2xRxû¤û+jY–¢p•7¨;iü\຺º´p`QQ]ÝÙ³pÐpã0SÀè ÓÜ;o½5mÚ›o.Y²|ùŠPFá­·æÎ]°Àn×ë²²23 Ø¿ÿàÁ}ûÜw%¨sp»:MÓÃ0YYýúõëGQB¡H”•5`@]F£×»¢ñpó ~·0çÜ|ªTr¹Túå—ÿùÏ¿ÿMÓ‰BñÌ3O=•‡‡£k˜–eY±X(¤i“I¯×j%ÿÀ@ z½Éd6K$à“-‘H¥ (2=w7Î.¢ÑâÆ†a©T&‰RSÓÓÛ´ÉͽqãÚµ–-“’ጋˆˆŽŽ-,,,,,D"±866*** á¶ËÅ0~~2J€Ã²‰Db6›Íf3NpÖW©à†–ÚÚº:F©T©ŒFNŸ_]m±¬\¹o_yùŒ?sæSOEGOŸþõ×wz}cc×®ÁÁîåh?‚›ÍAÖ$™™Ù¯_ÿþðëˆÇ?ó `ðõë7oæåíÝûË/¿üÒ·o¿~ÙÙ|Zh( ¾ ùTÚíYY}ûöíK’"‘XŒ³¹æššœœšj³™LF#¢N§Ó f¦Õ«—/_¾÷ Ãwìn”Tƒã &L=zÔ¨ùóW¬X¶Œ¦a¶á¨dšiø|Ï¡Œå°aC‡ k‡Ö÷ÑÅó‡y/DÆaÂüv3ˆ¸°â!!!!!! j®_¿~ýúõ0OcÇŽ;v,ä—„gU½}ûæÍ›7qšƒã —Î…$33ûöíÛ—¢Äb‰$+«ÿÌL8gçÌ™:õ7–,ùðÕ+/]ºxñìÙ·Þzûí… ΰ,JàN1€Òpøôyº\ ƒ+¹àÜŸƒeiÅ@ÿ«W/[¶l.âââ6ü*‘д@`4êõ:Læï³ Y‰P±! `›J¥R}òɆ Ÿ}¶`Á‚K—z[YœîxЬ‹-_¾|ùsÏ ˜™™•Õ¿V–Ýn044àHéÌýu?õš‹9î©6ð3¨=¨B„B¡pàÀììììóç/\¸paÍšµk×®}õÕ‰'NT( …¢U«ŒŒŒ è955%%%fuôè‘#GŽÄ÷&´'%%&&&>œ“““Ó»wÏž={*•r¹\îï¯P( ˜nNâ5??™L"1t:µÚß?$$<((ѤR‘ˆ¦Åb™ÌÏO¯×éPuбcG9rüøñãÇŒ6ì¹çF^¼xõêÕ«.|ï½÷ßÿùç½{wïv?Q< šÀ@à! ÊÎÎÎl‡Ñj4@µÀœk·C9¨€;@q%¼ôÒèÑ£F]ºtæÌñãè} Ã0r¹JtçNAÁ­[éé:tí ;ÃÏO*•É R÷m„yž3gÆŒ3À?zƒýŽÏ.¬rJfÏìðÀSp˜Xà›à¼ò†Wø¹ïïòßî3ÃíüžÄD³¹²’ D¢ôth™3çæM›M¯æ…¥#ˆ nß¶Z—,ÉÏGåé€þ$'[,UUîüA@ê<‹¤<ûì!ƒ%&&%¥¥ p( Àß?0âŒY–¢E¿uëîÝ’’êꪪšš®]Û¶íÐÁ7ÅÅAYÙ>}zöìÕ ’Îöò“ÈýwÂãQS߯—‚‚œœ; „˜˜ÐP‡ãÞ½6m²²FޔɏĨ/¸sY&óóóó3›F£¼w¿ýöÛo¿ývèСC‡…2bx]¼7ðl5™ ƒ—zÐIêko’sáL—˹ ͵µUUµµð&ˆ^‚(cõBÓ4ªL1 èՉ‰6„‡ß¸±d‰N'‘”—‡‡;ÑÑjµ@PVétr4Üs œD…Úñ1ûR@ã…d½ÕOÂçwêò„¸¸‰äÙg èÚU" Ì£DbµZ­4MQ,›Ÿ_Ppû6pGõ “¡Œb1I"š`2Y­Hräê´qÀ9–±,AÐt]Ùœ—'Ó´R  µZ›­´T¥‹ããår¡04´±Ñf+-Õóµkõõ_~éIÒá`Y½^$b˜~}8<>Z ÊV_ø;pE,`­ñD h†o¬@r wîðåbç›ÞS:Dzþ¼Á0z´@ Ó9år9C†¤¤üë_ E56â÷ñEX˜ÃÁ011û÷–H¥œ’¦!º\ hÓ&/oøð'‘‚fC¯7ŒÆªªÆF†ùì³³g!ÎɵµNgc£Éär½þz‡Ri¯^qq"QE…^Ï0sç9b0ÀÈñˆ‡G-î㲉F£Vk4~~R)òÐ  µZš.*Òh4•ÐÞáøy/ hP‘…2™B¡P„„DDÀ««+(ÈÍ…[¿ù¦° D"¡P ˜9süø>} Ǻuß}wæ ýÍÿ$w¥Œwp¹À'‰C|È6 ᪾Ç^`Ähše…B°O0ŒËe³Y, ö{ Ë2 Âã}$(Y‡g­Ï?P®RPe:ø ¡ÄÅà'ñv¾È äO— …¿;Òcs=ðÙÓÇH!Î¥¼€v|–šóöÇe‡ñ5*\ãÏ3ŸÈâ Ó)•99ûÛæÍû÷›‘±pa]ÉT^.…†šLK—ž<9fŒLf6‡†*•QQJ¥Ý®ÑTUÕÖVT”•áèĉ/½4qâñãgÏž=+• …°˜$É06Û”)“&M™¹Úƒ‚BB""¾ÿ~ÇŽíÛŸ{nĈ^ÀÅØòòââ‚¡$Žðp’Ú´IOoÕj×®}û0ŒF³¹¬¬¶V­ŽŒ ‰ˆ ­­­¯×h~üq÷îŸ~ŠŠ mÛ¶mÛöíÏœ¹páüy j55µµuu»víÙ³{7ÜÓ±c‡;‚XžÑ·oÿöÛõ뉉ÉÉééJ¥R©R?~ôèáÃÒ¾sç®]?þAݳ§\^T4rd»v~~(ßn·Ù""¢£ããoÞ¼~ýÊ•””´´ŒŒ‰'Nœ2åßÿÞ´iãF`[Û·oÕ*=ýäÉK—®^‹‹ŒŒˆHHˆ‹‹=þÊ•«WaGß¼yûv^Þ/¿ää92gδi³fòýúÍ›¿ø";;333399--#céÒ>úè#Àá ‰ˆˆŽv:Íf½~ôèáßyfúô9sfÏ1bèЧŸnÛ¶}ûNÀkßõ¾(¼Ùl±Å´ZAéùÁï¾ûî»ï½·hÑÂ…}ûvëÖ¥‹Læï"¹\V«Ã!H¥ rH$4ír½òÊ«¯¾ñŒ6..:::ºM›–-SS££ãã}|ô³‰Íï“2 £Â±èÙÆ7nÜT~èiÓ¦M›6 ²þ}õÕW_}õôsJFÀJüĜٰaóæ/¾0 333pfÙ²5kÖ¬ š›”Ô²å¶mß}·y3àL||TTh(`Ž@`· ññ))mÚ|öÙ矯Yóî»ï¼³p!¢?ß|³m[d¤'ý).®®V«,X¾|ÅŠÄÄØØ˜à6Ï»xñÂ’”H »]¯×hàcYš a>šŽ—‚™‡{€w:qâÂ…+WÆj5™”J•Ša‹åý÷ÿñùóÁSþxüøñã'Lèܹ[·>}vïÞµëǃ‚ Pø\gÏž?îàÛÅ‹/^¸´oß¡C‡M®¨(++.ŽOHHK*d46664à_„+›cè´¶§Ñ0f«S§:t€¿ÕÕµµµµ0~FZ>þòç¼OŸ^½zõ‚6X;wU‚çh½­Ë:;w8“#—‹DWZZRRXøé§Ÿ|òÙgPe`ݺÏ?ß°!,L¥R*‚‚BB–,Y¸pÑ"Hà|àÀ¿üBÓ4-õÕ·ßnÛÉ$6nܲeóæ´´–-[µª¬¬¬,+[¾|Ñ¢¥KiZ*•ÉæÍ[¼xñâÈȰ°°0HÄ1nܸqãÇO:mÚܹ‹­X±rejjrrbbffŸ>ýúݸqûö;B¡ËeµvëÖ£GÏž£þæÍÒÒêjHS©æ–.?ÿý÷oÜÈËËÏÿç??ùäŸÿlÙ2%%-M­nlÔjÛµËÈhÝ(!®€æG^z¶’¤Ng0M}½Z ¼xùÛPIIIÉÝ»ÉÉII))*U@@@¤Ýa€»à€<°ÀÅçþ1€+ ‹ãß‚‚ìöÊJ¡Ðߟa’DÑ¥Jå/¿èõ0ß &&Ä’%ÅÅî±5 Ö×ïÛh±¨Õüù£i–¥¨]»vîܱÃß_¥ ¬¨¨®®¨hlÔhÚ´ ü¯mÚ´y³PÈ0Ë‹/Ž3vl¿~ ¶gÏO?}ýõ„ &L™Â™àœÎ­[·mûúkw*úöÛg¸¸Õ«W¯ŠÝ¹sûömÛÂéÔž/ý__x×¥KçÎVk~~U•Vk±®ÑHq¢Ü- c>ì/H Æò={vïÞ½Z^zi„ ******@I g1$Lõ(Ä*áæ=__„ÿÚ£G·nݺMœ¸n]u5´$'''çævîܹsçθ6¼Ò2Àá]ÁÁW®,\h·K$ÕÕgÏÆÅ}ôѨQ·n-]zãFPÐþý;šLݺù’î6qÕºøžÎ ågç竪ñžq퇯y0›­V‡cĈgŸ8ÐÏO.—ɺ”w‹Õúí·Û¶}÷ÝÎ;vìØÕ œN§J†&$€Ùõg± õhÓ¦Š"…Â`hl´XÌf…B£¡iŠ‹¿ü2?Р”•êé§32ÿö·mÛ †…§ 4¿7™L*•ËKKIòÓO“’jk-\.÷JiV Ÿè訨¨¨[·nß¾}(9r±àfO²p•Žà÷ã¦l( ¥¼ÍæpTU©Õ‡Íæt²¬Éd·£¸%ÐÚܸa21Lnny¹Íuº.SèAh죌V"¹!‰˜¨¹x;äfAÿ\FuØEøŒñÐäÒ¥‹/^\Y)“uíªP„…EFÂц+ @={öK/õë—’úúë|°}{óÐ4MG\œH„òÌú‚;®_wOÁQVVRR]Rp€0NÓ"švävÎeÉÄu8l6®„…ÓÉ0v»ÕšÝ©SxxçÎ-[óßž–Ö²eË–Ÿ¾~ýúõ`µûc”Ѱ<{xêÔ7ß|óÍ[·òòòò`áÁH6Ob ÑÑ11îf!|&55--- ¿øùÉåryAA~~~~ppppp0°Èp?ÌvUUUUUÕ“!´P3rJB;>K( ¹/€0XßGÏÝ»wîܹÖ?þ¨s Ò:þ_õ ׯ¿þóÏ Nœ8q¢ûýöØl …Xlµ* Ó³gHH›6ÙÙ°ŠŠ~ýõ§ŸðC|$9qŠúùçÝ»·o=zôèqã@‰Ì^„7<Áþ+ôŒ”þˆ5ؽ¤ÜÛ™ñÔ  ƒLš°¯q+4zúw8¸²=â6m˜ˆ‹†òÙq¾'ð^È>t|램ÿ ÷µóÎù¾Z÷€Æ{æ“f¼Oøå]µÛíö¨¨¨¨¨(¸‡Ï0•••—WT4444hµ­Zed¤¥HùÚk'¾ýöÙ³gÎ\¾|èPNζm*U@€Ri2™Í‘šš––žîr9èx†õ…=‚Š ’$MCn[Š’JýüøŠuäOøF¬C$‚sbÁ‚E‹æÍûàƒwÞy熡i”ç WРÕgYäㆲôöTÐCà!6*0n(Êf3BB¢£ãâŽ?}úÂ…ŒŒ¤¤„„5kþõ¯U«fÍzãiÓl6ÎX ýÖ~óÍŽ»v½úê¸q£FÁ©,;à6|/.jâl+Î|#ïH´vuâÄéÓ§N œ]\\ZZ^^TTX˜—ššš/I$2ÙÍ›·nݼ™”””³í®&ðÄF¸†Õ‡àú=zôèÑãÂ…óçÏŸ‡y¦Üå"`Æ3g,–¢"’LJ¢(…%cA+ëÉô%& gÎL™Ò³'˜¶P»X Êpn]›âY\fÜ>pø X‡r£qj,˜C˜sÜ_eŽãv*—ÇõÉÏ×ß|a§9»¨ *ÉÂQ6“¡è'®\ƒ_ñl†xžÜ9…¿:ϸסCÇŽ;B¦¿ØØøøøøëׯ]»v ò9B­ Hn°qã¦M›6¡Ýç ‡>|øðÙ³gÏž={ìØ±cÇŽÚ1))) á³Réïïï«,0{Ò”yÙS¤Äi&çC &‘hñâ¥K.\´èí·ß~Ûå !-›;ýÁO(”a™SÈâl=®Tm¾N1Ø| Œ™äïq ¾# C4òF¤w1ñ­Ìåhx!á"ßéùpÌsffVVVÖõëׯ_¿Žrd‹Åî0z#>6ï§°;•ãæ æO.÷Ä=~Z9þ~Á×.<<"""F«õÏ~þùƘ":œIDATsçN›6e ¼Ç»rõ<<'˜àä"I’œ9söì™3W­Z¸páBšöóS(ÀŽsÈ_Œ[#XtžpT Ç|\A8†‹ôxQV>fBO¨0#ÀáƒÑ ÿv¾ZÇ:NO÷“Ë;¾ååååååÁç½áó/ÀÚÁþêÝ»OŸ>} 5ÿÎÂB¹<.nÓ¦àà~ýœNPC7B!A¸\«W—”lÝêëä0$¼ìžv§!8muÐju:‹Ån×骫ÃÃãâI’¢„B_Tï)€xç·üy&‰Çõ-,Ë0Zm^Þ®]bqzú /H¥ž”+!!111ñÔ©“'Ožß °Ž €ùÇÍê° û@ xL†deeeeeUT”———#78~jM<Ï;¾—.h***+++ 4hÐ  'Nœ8qâÄÊ•+W®\9þüùóçwïÞµk×®ð¤VÛ»÷´izýíÛ/¼«ÑôíûÅÉÉo¼ñôÓ¥¥óæED8QQüÓ¶kW‚3Æhôó#ˆV­žy†“‚  @k»víÚµk‡;ðùræƒgA–?z4'''‡¯ÂÇлw¿~ÙÙÙÙôî-•J¥ÉùóçÎ!WžîÝ{ôèÚuïÞŸÞ·oÇŽ;vì ¼ÉÊ0 +kÊ”©SgÍjÑbøð **öìY°`ݺuëÖ­ûõ×cÇPJþ{ÑŒùù>ÝØpäˆT*•ŠÅP3 þ†„H¥-[ÖÔ˜Í7n@AB_ø ‘$$TV—.%'WV®^-0ŒR‰ßº ¨i-°Ç=vìØ1œªàt¤ÀÀÃýû8pQ ŽÂã5'AòùçŸ~úé§`ºx8\§N‡gdDFž> -F#ÃddlÜX\ܹ³Ùd2¡¿E’b±Hâ(Ébtt]]§NF£^¯×?èÛ›HdwèÐ… wï¾nÁ`³qÉä â‰@€ö$Œ) ¹š I²¶öÛoß|sÀ€d²‡Ñ2tèÐ¡Ö N^pyª®®®®©-\FFëÖmÚ嫨¨ªª®¶ÙÌf“©uë6mÚ´Ê)"Ïœùõ×£GùZ¯/Üô€¤R‘H( ð÷Gì݃!,˲*Ei4ÍqW(¤R¡ò˜hµju]]p°\žÎPŒÄ .<eƒÄC.á/°¹€@À¤QIÂÁík$ YüÇdÓ€¿!Rap›ôɼßó{‘ÍûÏdÇ ±ËOj„øÁ_A¤ô¹ÿÛ›ŒÙÀ•MüQºÉ[Ðw…Qÿþ-ZtéBÓ.W}}` Õš ÙíJ¥ÅRWçr‰ÅFcPÂxxcp0ç{M’P¼ ÒÄÅ `þ ,F¡ ŠŒüá‡~øþûvíÚ·oß>$$44<Ô›¸ÀcƒÞpU û—»p1†{ ÃÜslq_{á‰hpñ©¸Ò øŠóIÆ@uʼn7 ê[,Î4ó×¢é_*iÔÂáþ.háéAøI9ðyr/”çiæ³#QQ‘‘ðZÀ#‘””TVÞ¼ ¬*¼ A=<ï²Z9ódXìÀË­àãÁÍ06èG  itÂý6›Óiµâæ>æàó EFù+‚+(ñÕ1Ûl¶Ù\®ððÀÀ€x.99!!))?ÿÎüü ^|qìX–hÚé´ÙPÅyعpˆÂ®5ê¹ç† Û°aýúO?íÝ»gÏ^½¢¢bbâãáÍ àãcÀ¿‚L/Ëêt |k` JPZJÓe2 z=¨P X•EóܧîêI£",Òœ/*Ì(¤¸š4©[7‘h÷îß~»sçüy«U*%±Ø…* $©×—•MžÜ¯ŸH„ê.s´LJî9e+Ið)û„Þ¸uG‰#ðäžý»÷É©qkðñPðÇS}Éÿ"hÈ%¾¡ÿ:üúAN!nFü)~/áŸ•8.õíÛ»wïÞ™™ýû÷ï_TTTTTäKõ 0ƒE‹-Z´²Žâ'¦Åb2¡ÊHÁh| ŽÉžsfh‘H$‘…xÏp ø¢?×=³gºxð ëýñ¹üÑ»øÆQ§Zœ³ÅÛñµÆç ¿öÅ3ð)$ž@ –¿"Þf•ë õìyÃÿF>n減šš›>àø«Zøw&&êtÅųgÛíÃ?„„ôêuïžHäÍM*!ÁáÐhFV«OŸnZ¦Æ9Fþ9‹è·R-%ɺºúúšš„„¨¨ðp5Å­Ns¨(Ž“vºý÷Ããù.¹<>¾mÛª*«•abc=UÐx$’›<Ǿ¥°ŽÈqÄår¹ÀøŒãTe 0@;’ÙæÄŽðïßXpaùñÇüñÇ_|ñÅ_•7ž§-~~W¯¾õ–Ri0Äİ,Iº\)):]÷îáá6[DJ Å I„D"AŽ{½^"‘J•Jøüëø#Çg£®®®®®îûæ›mÛ¶m‹ŠŠŒŒŠò•ú@(¤(†Ñëu:½þÆë×ss·nݺuëÖ &L˜0¡±±¡©k}a‹ŸŸXÌÅ‘ã4œohôœg™ÌhLOw8HR§3› âÚ5•J¡ …Y±ZF§ HZ´€^|áž¿¿H£Ñ¸\.—Ó ³ïN[p®oo×®mÛ¶m/\¸xñâEÐẹ§ž4hÐ 98Žð± V °¼æ­À9/8‰œ ~ûí~o].‚°Û=ù‹šÿ[ wºúdáØõA¨ù'sbccbbbÖ®]½zõjÔÏýédæåÓœæõÁ0G«ýcèÏã‚û¥„¹?üQ˜ã)Zൠº !Ó“G‚ge2.ŠÎ—º¼éµÆÏÜæ$aó¥C ú¸$ p×äÉS¦L -À‰ûêNDi=á­·fΜ=[£1Íf‚€¿ÍÛ¦¡ù¼Vó€ë üg›e}‘?Ï\• »Ýýë<¹5ð½Â•θõñ}铤ü¥(Š‚XIœãßh·WVþýï:Ý?4‡Šz«µä9ßÍ'ÿ= …L¦ÕêõÀé!~>.xr´ôêÕƒúI£ ˆ°X*+Û·ïÛÒ"ÍȪp.ñ E8 iÝ3Ù nÀMM'šhš¶4ý+¤•sõ÷ßÿý÷ßC +h ð¨7ƒ!8˜$»w_¼¸¬Ìfs¹ºw¿tiþ|§“ |SõÜܲ2±X(”Ëm¶;wòòüýñ+,¬¨ ˆöíÛ·GÆl`6À;û»ïÖ­{óÍ€€ÄħŸ õ¬ÕSÞlÕªU«Ö­ÁWÚgÏž={ölˆæ”ŒðÞÌf®|1ž¼±yñy$)—ûû74dg+}û JåÙ³6›Ÿ_Q‘Ë%•ªÕ CÓz=E9 ñ ɶm#"FŒË…Âðp§Óå²Ù®]+*:p 8¸¶ö•W\.‡C"Z=ø›@ɬivvvvvöáÇ:2&ĦïÛ·oß¾}¸éå\.— $)˜·®]»uëÖ ÕÓâÜ›ðtpjÄR(XV« V(JK].–¥¨ÿüçêÕ3’“ÓÒär½>=½¨ÈåJKS«ÑØ´@>ÐB!ÔÙ³§ÿ'‘‚C" …Â^ÈÊêÐ âÀüWøÖÖ­[µjÛ¾â™îÜ)(((ð¶óúôi×Õ{ÐñÀ<ƒžÖœKpɺeËÔÔädpC‹ŽŽŠ ?þܹóçqîK­Öh o´F£TzFPÑ(!=E„ɤV×ÔдX,‘¼ôÒ°a­Z*îª_=>{öúõ’’¦?^ T2Ly9EWÖèþжmj*JAÀ²ii"t㦚Ÿ_*÷+üNPc•À;S[[[[[;cÆôéÓ§c€T_4MÓà9ˆÒ¬C ¤# ÿ?à™[q¿K¸†VÔÂÝ®·oß¾}û6ŒÈb«V­[·n’»sy¢a£B — |ÄQ™Ü/÷ØB~ œu),,<<<Ï` äÔÐÐ×à9‹§™ÇŒÈÈÈÈÈÈG»ïØÛív»æ_A|– ³ ¤àˆn…(ÄÞ3€÷sÂ…îÕ<ÕJ¥ÔÄüQáaˆüÝÁW@ó[|UE V9÷F<¸÷ó®¢Fkäþ_êM͵p¿àý4't«ù€BpqÅ]UÝÔÛÝ1n&ù+ÿæçqö¦zöþùªêæ(ôù=‡†††ÖÕÕÖÖÖÂQÄ·H»÷ó`öƒ‚/Ëü_À‡ež½gX桺4Ð=ägGÞNÃ?sÜßõ4$æàõõjµZ I6 ‘N‘PyRþ¢9ÿmðGbîCJ -À3ã>ËÞúÌñî…í›JpwÂ=|ñï çmø€+Ð}õï{l Îàf†?f_kÑôúàOùÃãYS÷¯†Îù@?z¿8oïþ âD) ’‡A;WN–+‰ü¿8çvï^YYYYrrrrrrYÙ½{÷îñ9FÏyò'ã_´´9ðä¨hÛ¶ÙÙÏ>Ëý»MD9¹,((8888?????¿éó·9ßWHºä0Ð2û¢xoÜY?YeY¶{÷nݺu»téòåË—A^Fµ%Ü¥fš&ˆ»w  «©éØÑwêù¦ÆÆ˜˜ <ßÍ•â´Z+*|Qc«Õnw8JKKKïÝS©Ÿ~UOáb‰šžIHJ^Ͼæö;$‘ðÎoDié?¾÷þF_T·)ª øùiµ]»J¥:]«V,KQË’$Ô†\.вXrs âdž¦u:šv:Tªêê_ìö  ¾§9¸ø>Á ‚ Ú¶m×®]»ÜÜÜÜÜ\P.=WEø:HÄ„ï)ð¡ÆµOø¯€¥î§@s!2ÒÏi,óóËËÛ·GéIP<"Ĥ"ý( Aõ yá/®iþÛ›PÃH2**:::â’AÅû#'%¥¤¤¤€û8#>®ñ€êÞÎ)éO`”è?’¤(„-)))*º{×ý'L L$Øv8ìv®¢¢´Ôáp8ÒÒÆå‚<ž$©×Ë‘#gÏæç:tîÜ;¾†]‹D,k2Ñ4à ꎅ÷ òhð+†“êí^5k9Œ<éw5dz¼ù¾€Q%%%%÷3Qü¹³ êãGyoYYYYY™¯_‘}Õ;㇮"Ç»(»1Ã0 Ì6ßð€‡%¢P OSÿäAìÙ‚‡Ÿ[Ó]‰ïù.÷î9<›<÷ƒûóºç¦ÃÁ@\ÌdY–Eþ8¸y€»÷Væ0pS€?‹?…‡¢à-xP*´¡ÜÓžý¸T<‹;á9dù#Až†\^M´¿Š‹‹‹cbbccc!½nDi>à3΄¥žak¾ZpœG-®úêÙýÎ× #ÿi\àçg´D3Ìí5|Î}„äžâçøöõ«{Ï\ožÆ*~ÏhÌø3ÞûÁÿ 8Ù¸®\¹|ùòåÔÔÔÔÔT`…aöð‘üUnþܼcNsúöÕsÓøË§±|ÌÁŸåÏ'7š^[#¼­šçšº÷ü(˜Ó>ûÂ<¿'ÜÈ&ù#G>|844,,, (\ž\ßëÇÇ„ûS¥ûõã‹’øZYoOátÃ7pšÃ7Äòq?›ø±/ü]é  Å“'åÓoëå W›Ó⋆x>åëN>^¡U»Ýn×éôz½2–¦§gddd€?¢¾W–;|á <…p3ÀVl·ÕY–e!Ó1r˜à(ÿlÚ‚§@AÉL¸ŒÞ0ŠûjšÚÔÞÇsÙãÒ¯JÑÔ9ůE÷Ï¿Ö ÏZßâ-”'6òÛëÆ©áoŽàK—.^¼xwXÁW„ø|Æ ô"ìŽÖ­[·nݰ ç·ñÑ4÷Õ ùpw6ÿ~_´=ÅÉ 8öòO>fzÛÞ©ð)-Z |ßùÚqÜSÒÒ\ZŠK(ÞÆÌµ}ƒáê<”#Þs< ü¤Fîf!ϳ߃7e´¯_¹{ <ä8F3éù^†©¨èØ‘ëdz|Ó#ñOXXXXXØÂ… ,XàëðÐÍ€ûÙ×ÀÌ\¹råÊ•+¾ïá®ádÁÓW––––––~þùçŸþ9þ´7/…uPA=þÌ@â•êÎÉ“Ii((Š$F&ã¾ÛÛ ð“.ò!88(((¨oß>}úô)))---…ª` Ä|†R™ T‹‹‹ó…Ï|—Äæ¬ ryiiQQUUzú™3={2 xûÙ¢VK¥$)€–a»PuH*>€ÖááÆð 0xð!C†€Œ´b`~¢£££££ÁÀ3ùÖØ·oß¾G;$ŸiÙ2===)µX AžÑØ ÂS³ gºÉd4¢l ¹¹×¯_»ÉçÈÙ³gΜ9Ód‰âã­Vš $I’D[ÓC$I—Ën§(–µÛ)ŠaL&™Ìᨨ (¼šç_ð¿ÉÉ))))ÍYý¦¡°°   àÏþš¦ !!!!!Á[6¢Çù¥0“0«Ú3ξ”––””” œž,>ÿ~~?èškóÕÿÚ÷³ž-¾ßè»Wïwz•ÊßßßùÅxŸmüšÉ Ê¯®æRÄð}·ÝeïL˜·=âÙÖœñ4}~¯/¿œKs‚Žÿ‚ÿ›€+epÓ®Úøã«üÿý€—,Ci=OÁ_à Cxª®pSÓU:þ\:ia…†r¯µµO* Ý @>:· JXÈ¡·Ã|Ã[pW®€¶7êønxtì_çï_à À8ÁEZãéqóÀÃà$DŽð /¼ðBaaaaaáÕôþ̃DÄ6ä£ùý<ü\ß_ÉÞÜ÷>ÜSÒß‘‘QQQQxKÓ&_³êë)~[|||||üǯ]»v-¸[=(æ …ö‹¢ÜÏ/p»ïuþ8qCPnHòǬ ^œ #§¥¥¥¥¥AwÈñP§w$ w‚‘0"xKTTTTTä$¥3¤Ö³DÙúJ_ «ÿ» M*µZ‹‹¥R‚(.~ôáþï„Fýž¨†çt~8h¾ýðÏd[~T¶¯9_úè³>#à•?5èÃ@Óªg_í¾TÉÍyöáüïð*ÏÍy ¿”¶à˃~mêþæ·<.¸Ÿ€e‘7 î·å-oæ_"Í_àé‘ÄÏ®Ž0ˆÿì_øó<)Ž9ˆòðŸú gþ¯_QˆÓ¡¢( Â^ÿì‘z”wøáÏwÈg‚V}WPøßGÄÁ`jï¹)A¸Åùœæp§ÿý€;àü(Sþ¢¥;p§¨|ÿëGy2Šxú@{S 7-yâ*´î½yÞû ÷ vpAgÀXD4º€IDATxÚìÝu\éÿðÙNv—¥[RAì.@1°»ÎóÌSÏ8»»»[ÏìNT,¤¤;–펙ùýñ|÷Çz¨‡JxÞó~½nggŸ}æ™™gw?óÌç!¤¤äçËå8Žã8Ž@AAAAAP !ëtz=†Õw5 ‚ ‚ ‚ ‚ ‚ Ÿ Y¥Òj ÓE:^o0<|˜“ãêêèÈç›››™1àY±X&S«³²ŠŠ„Âví]\h4 …L&I$ésoÊLHHI)*²²âóÙlP¦™‹E£åç—”H$ L.—Ţњ7÷ñqtür™AAÿÙÙ©©J¥L&cÁq 3 ƒ¡¸¸  7W&“H**† ùå—¹së»ÖAAôóxöìíÛ¼<…B¥Òé@¼ÔÙÙ֖Ǔ˕J­ÄK+*$…" ÀÓÓÖ¶úñÒšÁþ˜ÛNxô()I 0Ýìû÷ãã³²ºt õô$¡êƒ”wïÆÅed´háëkggfffÆfW]ß´LWW ggKËÏ•ùáC^ž@àà`iÉ`|®L‚ ‚ ÿŽüü¬¬ädgç† }|>·Nqq^^F†““›@$ÂKøPmÓëU*‘H«¥Ñø|6ûã#ÊyóFŒ7®mÛõëïÑÃÎŽB©N©ùù7n,_¾{÷É“ÉÉ_ûZ‚ ‚ Úb›99EE‰»»““…Åçb•éé¹¹ååùù¥¥ ˆ—r8Ž™ÙçʬÙì¼íd½Þ`0fNHHI).vq±³ãó1 ,ýRnhkk.7%%'G(ôõuw'“i4N7]Ç´L77GG ‹¤¤W¯^¼ø\™4ož˜˜œœ—÷¹2!‚ ‚þ;ôz½ÃL¿³} @"©ÕNG¡P©Õýîd0TT¼{wîܶm4š««NWQ‘“#p8ݺýòË A­Z!‚èt"QlìîÝ/^”–2bñ‡))drTÔÊ•zx°XuÓoÞ\½ºlÙáûv:%òxýú8qêÔÊ•8®Vgg'$\»¶m[l,‚ôê5|xddÇŽ$’TzèÐþýÇ[ZZZòx4 Ó½z•’¢×9{ö„ ööTê×ÖEUª®]›?ÅŠ+W&Lؽ{ÿ~oïO·ÂáÃK—.]Êáxy™™••eeQ(¿ý6þ”)ïß’’˜˜'öí{ý¬éé٣ǴiMšp¹_w!A©Œ_¶lôè œGŽœ?? Až<9rdïÞ›7ž={Ö¬Áƒ{õ2$’/^¼¸qãØ±ÌLgРðð.]Ú´±²¢R?ÿ3F§+)yü¸¤„ÍnÕÊÙE>ܰá?nÞŒŠÚ²eÝ:™ìéS𬋋™‹E"©Tr¹PX\\V&š›ÛÛs8dò?ýL²³ íÚ•DÚ¿ÿÅ ¡°¸¸°píÚèè¸8—Ö­›5óòJHزE¥27·µ=uêèÑôô >v¬Q£º: !‚ úï±Íà`'§/ÇKÝÝ­¬PÃpÄKƒ‚||ØìÏ•iƒMIyýúóñRkkW×/Ç`koÛY,½¾¸øýûŠŠÌL¹­º¦N'eg›ÖÓtÛÉjµVk0¤¦fg—•ñù“éädkËãétz=Š~¹`Ds~~I‰Xüþ}VVyyãÆ ÚÛ›®cZæÛ· ÏŸ7jäïRµ´ÔÔ·oããÁ:\®µµ‡(Œ˜¦P(”¯ÿAAôï•‘‘œœ˜˜““’÷òå³g÷ï››[ZÚÚ6lبQPH¾QZšŸŸžÎb±X,ƒÁáØØÄÇ?yÃãñxææR©D"¶nþqÙÍû÷Nž¼`÷Ç»w÷íëéigÆ3èõùù[·>{VTäçG$Þ¸±qãÆ.LŸ~òäýûlvDˆët‰‰GŽÌ˜qûvEEƒîîtú›7!!#FlÚ¤V?|¸eË‘#çÎ%'·oïï_\üáÃË—iiB¡Ýúõ;wnßn0””\½zñâ¹s¦R•—›™EFΟÞ¨›ý×_›7oÚÄá4h@¥Åƾz5fÌÒ¥¿ýfn~útzzŸ>3g6k¶~ýíÛ……'¶kçììëÛ¡ÃÀjµPذ!‘(‘‡C£‰‚ mÛ†‡ã¸^¯PˆD2“ÉáP(_7z„@pq #‘4š¿þ*++**/·³srâó©Tð‚ 8.—?nm5vl` ““ ‹UT´jÕË—EE*•¥¥1Ø»aÃÌ™G6m:þÖ­`Íuë¦LY²dèÐU«æÍ3]óŸhµ(ŠaŠ••››‡G£F^^––T*wôh\œ££—W` øæ F³fþþ-[¦¥¡¨ZíäTZzãÆ’%7^¸–Ö¬Y«Vîîéé/_ÆÅ©ÕMšÌŸß§Íýû‡Ÿ:uÿ¾­mûö½zõïߨŽ£(•*•fgWT”•mÝ:eʼyàY/¯AƒpAGQ Óét:ƒáȑ͛7of³œ8™,==3sР¹s׬1JK¯]»xñøñ7o &33³ @«%¼¼PÇQT©T(d²òòââ‚‚òr¥²U«°°Žy¼S§RR‚¢¢òò \\øüú>_!‚ úÙ˜ÆK«)Lã¥2™B¡R™F5?ƒÕë  û\Ôør ¶ö¶ÝÉÉÖ¶Y3ÓÈ-¨'XÖ7­yÕm'ƒÍ“HärµÚÁÁƆËqúêWˆÍf±èt0Ä”ö÷gi4P&†á8øú©òÁ³UËÔjµZ½A2¹öš‚ ‚ èG“”ôúõ‹-Z´iÓ±£@P^.P(4F&‰’Ÿ_P•¥Õj4Z-Çç[Z‚p³OppçÎD"@ ØÚ z}Õoh(*‘¤¥åçëtNãÆT*‰d0 ¨qg³‹ŠÊË¥RooW×ví èÙ3:zñâ¹sÿü³M›ðð‘#;vlÑÂÃ#6öõkoÙrÚ´Aƒ6ÄqOϧOóòP´[·æÍ;w¦R¾}»eËÞ½÷ï'QT¥*,¼xqܸ¬,±¸  3sãÆ£Gq|üø}ûºtÑé¶mÛ°aÛ¶ƒ½½W®ŒŒDÑ=FnÕÊÖ–HÔjœÔj¡P©4À÷HÍ ÍÉY·nÅŠØX/¯uëZ´`0ÀwI×ëe²ìl‘È``2i4BAQƒEÕê’’çÏß¾ÍÌ”J‰DÃÍ­qã¦MÙl© WŸqô ‚à¸Á`0`PYŠÊå¹¹ ‰äéI¡†¢TªJ¥Tj4 —K&ƒñÀ2ŠÒé ‰D¡€5I$&/¯êšÿÄ`·hkFÍWÖALƒEqljD&ÓÞ>4´K*õÈ‘»w[·ŽŠÚ»·eË6mÎÛ°aÁ‚-[ÜÝ÷ìùãsó ^¿vsk×nÐ ÏÚº @§;tèéS‘H,Æ0ssÍÜ<Ûª•“‡“’rô¨ñ}QT£)(ÀñnÝFjÕÊÆ†B1ÜÝ7nÌʉòò22Ö­Û»W.1âàÁîÝ­­_¾|óæÙ³½{1 AÈäÑ££¢‚ƒ_¼‰¬­FÞ²E¡P(Þ¾ýû–ÂiÕ!‚ ªiß/­Õ¬ZfZÚ»wÆ0nrò›7qq¦åx{ûù»_ŽÁÖö¶{z6i j[µž¦íSuÛÉàI•J£ÑjAŠhðó#==)éåË/WÅË«I“à`:J%“A Uw…i™ *¦?o>WQÓ2Áè åkv2AAпŸV«Ñh4<ž››P(‘(•ïÞÅÇ߿ߤI``óæ%%99¡¡:1,›-–•åç³X<ž•†´ ‰Tõ˜ÄИSÇß !YGQ½Ax<—¨¨Ý»»t‘˧Oð`Û¶¡CŸ?ûvûöeË–-›7///1ñþýøø‚‚ôtoÒÄÇG§Ãq"A( %ètƒÉd2]\:tèÞýíÛ‚‚—/ã⊊ ;»'ONŠÅñÂBµZ./-‰ íì<<8œŽ„Nçry<ÿY³”J¡Ðô¶D"qøðÀÀ´´cÇöì¹qÃÝ}Ò$;;ð @£ÙØP©¢P€1݆ã™lcÓ¼ytôìÙÆuë¶jÕÞ½S(d2‚¨T ›6?fLf&•Ú£ÇìÙ»v­]Û q"˜ÏmgÚ†àïÊ•ÏÃèà±qT® Bì¯YY·”J™;÷ôéwïªÖÍtOËÿ| ÿ2îq …ÏGQ"‘Ng±,,||Øl29&F«Å0‚ "‘FãÉ­kú<‘H&Óé,–iMPT.÷N&{ò$7÷Á‡É$¥ÒÂB;»ÐÐøø¸¸Š .·[7.AètËÒ’B!‰DÐd2‡ãåÕª‡ƒaz=މ F"}¼¥ð—AA5¯j¼´ú¯±MµZ¥ÒjM£šUËürhÛô}¿ƒ­›mww÷ñiÖÌ4n âÃUëiºíÿ¥acÃçs8EEåå2™N§×c˜««·wPЗÁš……eeR©µµ¹9‡Sµº¦e‚/øàïªàYðhZ&™L¥ÒhµÙ¤AA?¢=¢¢ÆŒ¹|ùèÑ_¿~úôúõ.]úö;ÖÚÚÅÅÇ'$¤}û^½¬¬ÜÜ0Ì`Ðë ‰JU(¤R¡ðË%“HVVááÆµi£P\½zófzºñW© ._Þ¸10ÐÒ’JEòòóç÷í;>-­C‡1c¶o_°`ÍšþýI¤ÔÔÇW®7nòä’{û¶mƒƒ[·öóÓëM¯¦Õ’É`Ä6‚ RiRÒÓ§öö\®ƒ¡ÓÉåÎÎ=ztï>rä–-¿ÿ>fLÿþÎÎÎÎ~~÷ï¿/Cœz}i)ŽS(ÆQ¯àëm£F“&]»¶hQïÞïßoÝ:iÒìÙà] .·}û‰§LiÔ(1±¼\§3n@"‘Éd2Æb‰(J$’É•÷Ø1™ÍšÍ˜qòä»w»v>\½Ð³©ÄÄ;w^¼P(PAH$KËŽ_¼ÈÍ•É0 Çõz©ôõë[·lm)”²²×¯+×ìÚÕÑQ(4]ÃüýÇŒ±µe2+G>WÖmϞ˗?zþ:½Aƒ¶m]\¤ÒøøçÏ +ŸÑé‚'O¢£­¬Œ©I*  —KÀÅ ÐîZíçn=ýÒ³D"ƒáì öu§N½{ö¸³³““«+…RTôìÙ‡2Š*99jµÁPùjch›D¢RÁÈþo;Ÿ ‚ ‚¾NÕxiõAl³jT³ú1تqÔ/Ç`k{Û““_¿Ž‹¦5K¾¼íÿûÂmaÁã±ÙÙÙEE––ææ,Vffrrbâ—«âîîãTRRQ!•º¸ØØ|jãÁ³ ÌªË?Ç´L‰D‚3¹CAôßÃ`°X\®——Ÿ_hh^^VVj*‹effnþ©u‰D"ÑÌŒÃáñØl.×Ò²:¥;9 ºys·nGŽlÚôüùÇÅÅ*U~þ«WÙÙØ1R© …B¥6nìâRX¸cǽ{11AAbqn®^ß¾ýÔ©ãÆÑh11¿þ³mÛºuÅÅÍ›»º&&ffyzŽ€ (*ܺ}â“©ÓVTtéÒ¯_«V~~ýúMšÔ§Ï‘#‡Ï{òdzz` Ÿ2~|çÎd2ƒA£Ý¸1|øîÝoßúøØÚòùVV™›çä2Yaa\ÜÓ§±±M›Á`4n{&•CßD"›¸`Áû÷Ë—ÏŸŸíææåeeÅå2VVM›¶kÇå~kr7U©²²#ãÀÀšQQƒ Ì`É4šqð·!--ÿ}ÕªŠŠC‡Ž¹ÿÚµÔT­¶¢âÇü|¹<,lÐ I§ËË‹ð@"Ñh$ð¨R½xñð!ø[*%ììš6usS«oÜ8rdÇÿ°0O"Ñh¤Ò¼¼ôô²2Ógéô¾}‡¯ÍÎ~ý:1±iÓ ºuC˜˜!CvïNHðò²²23c2 =zêÔ°°ß~ëÙóàÁ½{gͺ~½¼¼ukƒEÅâììW¯ÄÓ3,¬–O5‚ ‚ O0—J$ÅÅiiÕy•i¼ÔÞÞÚúãxiÕ,¸Ô^µGEQ w®áø—c°u¹í Vnned¼Ÿâ½ŸÛvÂùóOžGC¤¥eg—”P© ™lggmÍã}¹*EEeeb±Á × :9YXP(ëW-33399!áK;©Y³¼¼ÂBàseBAýw”–æå¥¦ …AI‰O³f;~jüülm=<Ätôjuà8Š&$lÜvæŒH4xðäɳg÷éãäÄår¹Æ(Ž J¥Z­Ó‘HÆÑ°Æ`°XL¦N§TJ$j5Š’É$Žkµ(ªÓ}øpàÀܹ›6·uëÑ£4…B"rÈdÍã¢qÜ`ÙŽA!‘¨T‹FCµZ©T©´Z!‘(*•Á`2 ½^¡P©T*½Þ̌Ϸ´¬¿‹a‰H$•²Ùææææ`ô0†ét*˜|H$‘ÈdÁ˜™Je2ÙlãÛ2@kµ*•TªVk4(J¡€– ÓD©”Ju:ƒËåpH$ ÓhÔj•J¯'Èd¤§ “D«U(¤RŽÍæñ8'¬ ²IÓh,]ݽ ÒtLš´x±Mdä”)C‡öîݽ»±¾8®×«Tjµ^F8#†¡(™Ì`°Ù ­ ­ì *•ɤÓÉdÐz•KH$½^¡H@j°uJ¥R©Ñp8|¾¹¹N'—K$ Žƒ}H €gI$ƒÃa±(½^©T*u:©‹N£i +‰D"ôzµZ£a³?ÞË’œ|çκugΜ:•šÚ¯ßÊ•›6ùûÛÛú AAÐ÷±M½^"ÉÍ­Îú †¥eÆ ^êíýé©Mã¥J¥@™ù¹Ò@¤´:1غÙvPŸªk‚xïç¶ý£4†aŠªT*•Z’’“SQÁçóxl6“I§çj@D"‰D©ôõus³²b0 ƒ@ ?õåݴ̼¼ÒR©”F£Ñh4P&N£Q("‘TªP€2Ùl&“JmÔÈÕÕÖöseBAýw¨Õr¹X,‘yyz½^¯×ƒ ΃N§ÕÊå‰@››‘‘œ9jÔœ9D"™üí_FqEu:•J.Çq*•áR)”¯…‹¢2Yvö£G»v>¼ÿÍ›ýúmÞ|ë–¿¿­-“'@AAÿ. ¶™šš]ZªTªÕz=ˆ—òù\.‹¥Ñhµz=ˆ—êt:^ß ­-—[ýxiMÅ`ämÿ( €AÝååb±X,—kµ`´ x–Íf2i4ͦRml¬¬øüêT”©×ëtZmvvQ‘X ÊT«5ÎÊŠÏ73e‚ €£ž!‚ ‚ª/55!áî]77>ßÎÎÍ­¾kÆ6kµ …Fƒa N£Ñhdò÷¥”€ ‚ ‚ ú ÓiµX,“©T ^ZQ!+ N¥‚x©››ƒƒ¹yõ£šµƒý1·ýhD¸ðXN$’þ‘H$~}vf½^¯×é@™†¢HJý=eBAý—ÉåIE‹ÅᘛÃoSAATLã¥à~Dä ÄK) Å8~ùÛʬÙì³íŸ|l˜qó(”š«®±B5Y&AAЙ™W‰!‚ ‚ úV¦ñÒo 7¹Ì9^ú=Û3,CAAAAAµ !‚ ‚ ‚ ‚ ‚ ZA‹…ÂÒÒú®AAAAAô³!ôss’*`z§òòââú®ÑφF£Ó ‡ËåóY,6›Ë%¡¾ëAAAA}/€†  PÈåR) =×­V£Q«¦¨,a³ÍÌx¼ú®AAAAP̓E"¡°¬,''33%åËë³Xff\®£#•J§³Ùl6›ÍbÕT9¦ë…¥¥å奥EEJ¥B!•V§L''oo‹Åb2«+üRp`˜D¿jÕ’%/_.X°aÃàÁOž=º~ýæÍ§Ogg_¼x÷î™3õ]Ç/¹tiãÆ víº~ÇW¯¾|yß¾›7.ܹsðàµk'MjØF«ï®X1}úTŸ‹œœÌÌääú®…)•Ë“’nÝ:{6%% `Ĉíí¿n–T•J¢£?räÚµ¢¢;\½º¾·«’««»»O}×Â`‰@/”’Ò¹óÒ¥&¸¸ÔÄü¶?ŽÿNŸ`úùò=Û‹a EjjtôÞ½[¶€ÞþÎ{÷öí«ïí« Ož<8oøDîÖíàÁãǾ3‚ ‚ ‚ ¨n¤¤¼ŸàããçJ"‘H$Ò—×'‘H$2„ƒ32ÒÒÞ¾mÔÈ×7(¨¦Ê1]‡@ Éd …B¡R1 ÃP´:e¾y“ðø±³³«+CÔ®£IµÚüüèèÝ».0`Μ-[öïß»wïÞýûwîܸqñâþýcbÊË ƒA$ÊËËÎ.*B2™ÏoÓ¦ÿ>}˜LµZ¥ª›z»w/\Ø¿P¿çγgoÙ²ÿöíë×ÏŸ?dHhh‹QQ11ååU_Þ¯_` ‰¤Ñhµ† ¶E¥ªÜQ EZÚ… Ožz}MÕEåò””fÍüü:vœ1ãÀ[·²³Õjá³/ΞݺuĈöí#"22²²>®Ï'{ö,Y2xp³f~~:ìܹyóªU3fŒ=fÌœ9GŽüX`AÛ·˜;·OŸÞ½'LX±â¯¿ž=Ëõú’’èè  š1,Á0µ:?ÿÁƒsçvïÞ²åòå—/E¢o;H$3³&MÚ¶mÑÃpüSkèt%%>½mÛܹ˗~®S 4 CQƒ¡úu¥a†¨èÇê(æì9vìØ±%%oÞXXŒbfžÃñ¤¤k×ÉÒ²{÷ýûcbºw7¾®~òÀŽ;vl§N11÷ï?5v,¨-† $•Κ¥T~î•×wÿþ˜˜U«LŸ¿}{ݺ ÊË-êÙ³M+«š¨-‰dfÖ¸qX˜•Ž—•yy5oîêÊ`€zðùÍšµmëêÊf¿};þ®]+W¶hQ÷íY}à83fÔ¨’’èè;wž?Ÿ4é÷ßÿüS¯/*ú믨¨¨¨Å‹dÔ¨óç뻦•ºt4hèÐ'O>ܽ›Á jÚAE%’÷ïããÅb¥R 0AÈdÃÙ¹M›víÜÝ›5³² 63ûžã›@ø|ˆJµ³k×.*ª_¿ŠŠÔT¯_??? ÇUªôô#GÞ¾•Ép<(蟮‹ý˜ˆD ‹Ö¯Ÿ>ý·ßBCuºÜ\ »råÊî·ß¦M›7O§‹ŒtrZ¸0=½fÞ¯®{¡E‹,¸s§U«cÇN4ÈÞžL^½úÁÄÍþ§}f0”—ƒ~¦oßC‡úõ3]žœ¬Tš››ö}rsçÎ>ýæÍŠ muîܺubñ,^Ü¢EÕú€–\³&%E­K@K>}*‘à8‚ètùù={ž8QTÆMj4;w¶o?ujB‚\ö¡Hôàñùšm®´tÏž­[W¯ž?ãÆŒŒ¨¨íÛ0®!“ÅÇÚªÕÇG‹N—“³{w|<¨X'88(¨rtŸÁPZ=jTå6oMÙìÆ§N6ÌÌ,.nË–‡q\¡HO?y2%eðàíÛׯ }üX$Â006õýûãÇß½3†ž †ŠŠ7æÌ™4©ò¸Ñj33þýw• )rùÛ·3g4fLLÌõë÷ï?y’“£VW^O2JKoÞܼyãÆ›7 >Õ’¦pÃX, åS$­¨xð`òä'Mï­Õæä92räðákÖ ˆB‘œ>ZíÛ·ÏŸ¿/—W±ª&47.¯ÜJ°…bgW9ºLæóýüBBŠÊã÷"‘x¼&Mš7çrÅâ'O4šÒÒ„½¾E gg++gçNnÞLMU(0L«-+{öL£ ¯Ã0™,5õÆ¢"3³Êã†FstlÛÖÛ»¸ÜÞO$’ÉD"‰ÄáôêÖ±c›6®® ØJƒA$zýúæM"qÀ€É“»usrªZ»«WÏ»téôé'ŽÙ±ãÒ%ÁÓ“ÁøôvXX´i³jÕÖ­K—"ˆ^/ge%'—•i4ƒZ ‚U…biÙ¶m§NžžÆm÷ôôõåptº¢"•ÉRSïÞ-,T(ÄâG¢£OЉIN–HŠŠŠü|Ó 4µ E%’„„Þ½›7·´$ÿÿ Š>~ñb^žFS½uª"H$mÆeËöí»z5!!?_£±¶îÞ½¦Îö)SŽÙ»wöì–-Š˜˜ † Û¶íùs±´èMÏYÐÏÙ¯SµOçK}úøûƒ³œ/<žF““εÚ`¨º4@Z†Ún ‹.]ÌÍ‚«W_½‹QT§ëÜÙÃÃÖÖÝ=*ªY3*5'ÃÔê‚‚;wTªŽÁv|êó¥²Û‹ •ýØ^ “H^¿6ííÁ+M{{p;—“Ããc E®®aaM›‚c ôf:téÂãô¥ŒÕ±#èQA_Š¢Ý»·iSÓ=jåg™‡‡§§ñÑǧk×­[33+Óˆ|ý',è…)[Û®]{ôpwGÅjÔ¨_¿aÜœTª7ojr; ‚ ‚ ‚~FøWúr9Ÿ{–Çãó­­«SNÕZ‰ÅB!ne–T¿´:JÁaêäÉÄÄ””33U(RSÏž­þk1L£)/×hH${û©S§L1ŽÉš6mΜš¯)‡|òäÍ›G6n\TtæÌÊ••ãK…Be2˜L²IÖçíÉTªƒCXXŸ>|þ‘#Çß½›—WRòáCçÎ þ¹`hÉÈÈñã'MjÓ†ÇCÓVX¬ÂÂ+W22¤ÒÀ@¹<##8ØßÇׯ¿~½°P*í×/6V*uwÁ›šÇb¹¹uî%6tttp`±H¤Œ ÓuH$ÓÚD"x%†iµ"‘NG$ZYuêÔ¿ÿ€Íš™™!ȈãÆÕl‹ÿU©JJlmÍÍ?n*U£)*R© †ê­S‰diÙ©SPPEEÏž‹±s§Ngcòúõƒ~àLæóƒ‚†_±âèÑAƒfÌxý:0°gÏåËCB®_߸±iS¦¼ÜôœýØßG>½Oí_Éôø›?à@.wÞ¼ß_´('§U++«ˆˆ fÎôöf2„Db2k³}¨T[Û¶m›7g2Oœ¸p!9¹¼¼ÿÆ­­I$ËÝ}àÀ€2¹¬¬¨(6¶¼¼U«=ø|ò?ç¾´½ƒ\ž™ùåÞEJ%‚0¶¶ †ñX"‘ *U£IHõ¶·ïÚµMëüù+WÒÒ22ú÷ ìÞÏ÷÷ÇñyóJJbc=<:tˆˆ°±©é z•Ÿe•ɯD§ËÍÝ»72rèPcæúú„•ËÁ8ñjC2™Årrb±H¤š»ÌAAAô³Âq¯‰»†Mˉ**Œ‰ø|KK;;°¤úïeº&(ÁôYss Ówù²:m'‘ØìF6þ`¯-ÿû*ÕÞ>,lèP‡ìlã ò(*?}ºe˦MµQOÃg³½½\½ºcGá޽ŋ÷ï8ÐÆ&3sñâ;_¾”J1 A‚„„/**¾të4‘ˆaZ­@`š@¡æP(..#GîÜ9iŽïØqâDóæsçvïnmýù`+hÉ+öïû´'hÉW¯d2c ¬Xá㓚:kÖ¬Y«Wçä Ò²åœ9sæXZFG·`ÁêÕdò´i5¿-¦{žÉts<ØßŸJÍÉ9~¼²-i4 "Q"1†80L¡HI¹víöíO•òùòkÖ Á°aãÇ;:®_ QQ-[ZX‰`<`ƒ™™›6MŸ¾nB1|x§N66Æ=fmݦMïÞööi Žüü»wccÝܘLP×O_ØÀq!8xÖ¬õëgͲ´¼pa̘¨¨)Sþ>ÂøKסþ^2Š–—ß¿?wîŠ7n Õ¡ƒ¯/™\V¦Têõ …Èç.±ßB±¶nÕ*"ÂÚº¨h÷îsç>|ã¼?y29¹úSé}O•I¥ÚÛGDìÝûèQy¹iz mß~òdoo6»zëT-]§ËÍ=qbáÂãÇoÞ|õ*%%))!aÏOÏŒŒšIê2fÌÒ¥±± †!…Â纻³X ¸´ú@Ósô¦ç,ègª–üí=ÏÇm°lÙ±c;mÚ”)“&ýþûŒ:XZ‚°im·‚Ðé^^S¦Ì›çæ–’2uêС]ºØØHB p8ÁÁK—.^<`ÀÌ™2Ù”)}ú89;TªóùRõ*Õή{wÓÞAD¯7ííÁQ4rdƒ%%àXBQ«³².^¼qK•õþí7У‚¾ÔÊŠÃñõ=*èKû÷wv®ûIŒŸe_nƒú„ý\‹ EVVE8êôú¢¢[·ví*-mÜxâÄÚØ‚ ‚ ‚ Ÿ Žc†UÿñË倿AÈØ4p\ýrª®–…ååEEàÑô]ªSZ€ÖéJJ<¸páÂ…çÏß¾53³±Q*##ÃÃ;t°±¡RD¯‰ž<‰‰¹zµ¨H©‹år­V xùòÒ¥˜˜¢"¥R$JI‘Ë1¬qc33‡¨¨gÏîÛwèЉ]]ml,,|| ˜9³uëš©-¨§P(“egïÝ»mÛί_s¹ZmQQRÒ½{wï Æ=|¸uëœ9YY³g/Xлw¿~ÎÎ}û†…98°Ù(sîÜ… `[>LK“ˇ÷óëÛ78˜H\µjúô™3ÉäQ£FúóÏÁƒ j…bcÓ©Ó€ööþþs8Æ€¡^/U­hÉôô¹sÿüsàÀ¡C#"¦LYµê—_*_éáÑ·¯““^¿b“Ù¢… •ÊãÑé={ÚØh4û÷»¹µmûñ5š8NΟ­¨ËKJÞ¿—ÉP´qcw÷áûwwp˜<9!A*EÑfÍ8I“Föóëß„ùóCB|}Ýݽ½=<:uzùòÌ™³g³³$)©°P¡ <(+ÓéZµBgÏÀþ}ÿÞÊÊËËÕuР¬¬ŒAªïA °Ù ¶jÕ¤‰­­……i©{wíàA‡-llh´ÊgÈdKË.]æÌ5j÷îcÇ.\àñôú²²¬,¥²K—Å‹ ±øÅ‹{÷=*-U©¤ÒØØ¢"­¶eKkk•*.îÞ½'OÞ¾U(70`Á‚Å‹éô;7mºv-'g„à`¡ðñãÛ·ß¾MKc±,,ôú®][·nÖŒÇ#“Az PrY™J%“ef*•8îîniÙ¼ù˜1íÛ?|¸lÙ®]§O{xØÚº¸¸¸ÉïÞ>ýà¨Ibâ;FEõìÉçß¾}çNR’H¤RUTˆD8nmÝ£ÇìÙ#FäænÚ´kײeëÖyyyxtï>tèÀlvÍÝ%õê¹sÉÉïß?}ZQ!——–^»–˜(‘tëÄã‘ÉŠ]“&÷ïϘ±bEf¦§§¥¥^_P°iÓ¼yË—spy½^ ¸ÿÒ¥˜˜çÏ¥Ò’’víFŽˆðòâñ|}§N]¸pÓ¦&Mh4‰$7W¡˜;wíښخví4šcÇæÎ]´(>¾I{{©wïuëæÌñ÷7¶žƒCóæ¯_ÿò 8gA¸uëæÍ+V ˆ^ïìlìgNŸ~ùr„¨¨à` :ÝÙùêÕÊžg„>}6ü¸O<ØÎœ/OŸ^¸pé’·÷°a}ú”–‚þP¡()‰Ž¾téÁƒÁƒÛµãpÖ¬™2¥CEss—ðð)SV¬˜=»m[_ß™3k«}AˆD§qã°0;;:ýÐ!Ó³—Här}} ++GÇÊ; L?_ÀöÞ¿O ÄĘnïØ±Ã†ÙØû…¢¤D @'§Aƒ¶l1ööÓ¦-Xй³»»‹‹±·pÜήOŸM›æÍ+,\³fÍš;RSŒÔT™làÀM›æÍ 0í#@Êd‚Ï>A¯I“ž=ÝÜœíìL{‡ïzT¡P¡(.¾téìÙ˜¡oß°0??…âÑ£K—.\xñB(T*KJÞ¼‘JQ4 €Ëýü'¬NwéÒ¦Màùù󘘛7'N=ôÿ2Ù«W6,Y²sgp0‡“‘!¶o¿fͺu]»Öäö@AAý,˜LËÌL"‹‚êJV©T*…‚Åb³w·V-§¢¢¬¬ê ah®ZŽ)P‰D"‘ɃÁ Ó2MK0}°”F$‰ŸJÁI‹…ÂÒÒúnvúqåädf‚ ÷ ºâêêîîãSßµ€>mãÆ¡CûõÓé&Lرcúô–-­­öî6lƌӧmm÷ï¿uk󿀀ê¤|þíäò—/‡ ëÞ}Ù²V­Nž¼paâÄ jârAAAÐÏM (++*’HÄ⊠W׆ 5úòú d\RRT”›Ëã™›[YÙØØÙ99ÕT9¦ëdd¤¥½}ëààääæF¥R©ÿ4T ”©V«TJ%—Ëç[[Óé4Úǯª£4˜òèËëdd|ø’RÛ5ùùjûï­ó·mEÝoKí »v ëßÿËëܾ}ýú¹su³¥?Ž/ Ž£ýÛ¶îGخׯ÷í›5kÆøx*Õß? ÀÕU£©¨0BCÇŽ;¶K''*µöòáW¿—øÑÚ­î}m[}m+Ý¿ôè‚Ë–mÚtÿ¾ÝðáS¦œ<9kÖàÁu7ý.AAAпH˜ªÕjµZ­^¯×)¡/‚ YL"‘Éd2F¥R©@ ÔT9¦ëh4Fc0 Cu&e2™L&“Yµ4Ž€† G@×=8‚ ‚ ‚ ‚ èçÇ)AAAAAAµ¢Ž&!„ /‘H" ë»ÿ-"QBÂãÇõ]‹EPP³fmÛÖw- ‚ ‚ ‚ ‚¾ @CPµ„„„†vêTßµ€þ‹PÔ`ø§,NAAAA?&€† ‚ ‚  V«Õj5Š¢(ŠVg–êÓ¹H$˜2†L¦P( ¥¾·‚ ‚ ‚þ @CAAÐ7Aç’’¢¢œÇ0¥R©T*Ì/^Sï‚a†¢:N§ÕÊå2™DÒ¼yëÖ=zhµRYßmAAA_'!„ ‚ ‚ ¯¦×ëõz½L&“‰Å2™DRQA£Ñht:@ ‰xeÒh4ƒaaaiik+“Éd" ]ß-AAA_RÃ# E"‘H,–Ëår¹\$‹ÅâÌÌÌÌŒ µZ¥R©JKKKËËÃÃÃÃÃÂ6twoØN§Ñh´ún„JB¡P(YXXXðùß_šÁ`0 eeeeååàfLgggg'§úÞÊ/ù÷îAðó¬´´´´¬,>>>þåK …J%“]\œ]\5jÔÈÛ›H$‰ð¢Ë7Â0‰$.nÅŠ… ã㇠Y¿~Êww:½&ËW(RR._Þ½{ãF'§_=x08ØÌ¬¾·úGr¹\®P€s3++33+K(‹…Bpn–— BaÝ»wëö£›°Å ï÷èÑãÇOž€¿Û´iݺU+ØŸC?ðMO(,//*2333ãñêæ}A:Žüüìì´´&M[¶4ôz8[AAô£"Í;gάYÕÁ•+W¯^»öðá½{W¯â¸Á Tå秤”——–æäP(d2‚P©d2†q8,‰¤PÈdÁë×oß¾ߨ‘··§gƒ,Ö™3gΜ=+ŠDr¹•••••N§_8+===ýǽ{÷í;p„#1 Ã0L«ÕjµZƒÁ`@Q5üpÕét:½~øðáÃGŒØ³gûö-[?¾{÷Æ …B«Å0kk++333³o ‚Í™3wî¼yÇ=zà@^^vvj*Ÿoiiooccccm ~<ÔÔŽT«Õj¥’J¥RA~>çàçö`YYIIv6…B¡õµ¿؃۷oÚ´ví»w¯_'&Þ½{÷îÝ»R©\®T¦¥¥¤¤¤äçge¥¤¤§'%%&¾~””šêééééé n­Î»””çå988:º¹Õþ6ÉdññC†´mµqcr²OTT×®NNtz层¢Bá½{ü1qâ¢E<^çÎ}û::~oØL­6pœB!?Ltº£c»vaaÍ›óùd2‚ ˆÁPVváÂèÑcÆ<|ЫWp°¹9ù/kTª•UÆööÅÅ%%Lfpð÷o×Ï!++=ýåK¡°¢¢´ô͛ׯ_¿...,ÌÊ27çph´ääÔÔôô FŽŠ"PT.禟Ÿ¿PB¡P(•µ}nVŽÎ«¹>­:@oVR’ŸŸœ,”•ÞL«Õh GQµÚØ›±Ù¢Ñ¨TR)èÍ~ù¥fZ ŒI­P—Ûþ_3uêÔ©3f<þüù‹¡¡-Z4onnnnnn^ßõ‚þ[ªžïF£Ñ”–åäp¹<ÞÇÃ@ßzN§Óé¨T*µæF+ …ee®®¾¾z½N§ÑÔw AAAЧ}u¨ÈÌŒÍf³ù|ssÏÝÝÝÝÅÅ`Ðé4½^§S«Éd ÃH$ „~QÔÍ­AGǧOcc_¾|þüùó§Oß½{ûöÕ+__OO¥R&+*ÊËËÏÏÏçr¹\_߯ aˆÅb±D¢ÕjµM\\\\\ܽ{·nݸñàÁ­[W¯"2ð‰ d:Ng±h4ƒN“·¨Tb±@àááâbggkkeenþêÕ«W¯^õèѽ{×®ßÓ¸ÅÅ…… ­|}=<Ü¿çN__ÿàà°°=zôprrrrtüþÀN§Õj4`ôÁ`0`Xuö ››««““Á`0hµjµJ%—Óhu½¿GLLtôåËd2‘ˆã%%ýû4l›mfÆá€ ·oß¾}óf:µjuçΣGññÙÙÙÙ99~~~~MšÔM=¿€ãB£¹ºjµ¬[wéRQÑ™3£F99p¹N—“sáBLLÆ#F}üZW«ûmìØ%K4°±‘Hž=ûóÏ#GΟg³‰D.?ÿòåµk/^ÌÏg2‹‹Þ¼‘Ëy~üøC‡ââ¦N½qãðá JJ.]5ªW¯M›vï^·îòå6nܱcýzGGµÃ&M?¾ÿ³gÏžMNnÕê—_¦O·²¢Ói´ví0`ϞÇ—,u#“ùüV­†=ú͛ׯÁ2 ‹cc,˜:uñâM›nÝGBѦL–œ ÖÑé NŸž9sïÞ3Μ‰ŽÖ닊Nê×oÈ¥K$<|ÏžúÞOuáôé³g¯\±¶¶±qqáóù|>ŸFc±ll=zö,%%4´Y³€gg>¿¤¤¬L,½ë“'OžT*…B" Åb¹ü{Z¬:½®©‚‚‚‚ÂB­V«Õé¼½½½==k¶MªW‡Â¢"[[kkp!¶îëðµLÃz`Ti}×ú/úòùþ¹ã2<<""2\¿zõæÍGø|.—É´····µÉ‚BB‚ƒ›6­ïíƒ ‚ ‚ ÚòÕhkkkkkë‡ïÝ+( ‘@ˆApœNg29­V­–ËU*…B$¢PÀ4)VVffl¶BA"‘ÉTª¯oãÆ®®~~¾¾îî …B£åæ–”¿Êƒ\É`ŒIuêcccccc¶ÿöí›6ÙÚZY9;ã8†á8HÅ`0 (ŠVTˆÅR)›Íd2*•Z­Ñ`†áxiiE…Xœ’’™YPàããééâÒ¿ÿˆ¿þ ÒJ|[³R( ™Ìår8ff`1F¡H‚ã~røûûù5n, …Báo¿ýöÛĉööNNË–-]ºxñ×¾£R)—K¥ =ÁhèêìÁ²2@,¾}ûþý¸8??ÿààçÏ23ß¼y÷.%¤ª`±˜L6["‘J%@ ‘ôz­V&37çr¹Ü1cFŽŒŠ2ãm§_»¿R©R©TÙÙ99ùù}û†…µk÷î]ZZr2Çãq8d2‰D$¾yóúõ«Wz½J%5iÒ¨‘»û±cýuåÊÔ©Ó¦MŸ^{u«)‹ÅÄìÝ+wï>vlxø’%'N´k'‰Å“'oÞiaQPðqšL¶µŒäpܲeÛ¶çÏ]\7vs£P8!‘,-Û´™9³ÿóç7lضmÑ(9Y¡èÕkñâE‹„@ÈÊ"h4‡ˆˆ~ý@‰­Zñù:ÝÓ§…A¡T'ë*þ«ºÜøj.?ÿÌ™•+Ÿ=³²ºy³r *ÕÜÜÙÙ¸Nqñµk§Oçæ²Ù#G"‚P(C†ÄĹÀ‘ Zµ¾·õßD ¨¨¨¨ÈÈøð!3,iÑ¢E‹æÍë>-86ž?þ<.,ñððôtw·²²´´´üþòÿù|ÿøÈÌÎÎÎÎÍ•H$‰ÄÓÓÓÓËËÒÒÊÊÊJ¯W«…‡?Ž‹4hÈáß?OHHL|ö,6öÉ6›É¤Ñ8.×Ü™,“I¡ôé^—í AAA5å«Ðà†Aðó$·@Q 3@0šFc08‰D"“ÁÏ~2™Ba0Èd2™F£P¨TC&3t:  1 ‡Ëår™Ìï§× (jüiJ N§S©$‘H$¢(†aƒA£Q©‚à8È –‹ÅR©BaiinÎáðù|¾¹9»÷m51¦¯0t:xÖé4…‚Éd0¨Ôû÷ïßø°K—Î;vär9ÇÞÞÎÎÆÃôz•ÊZúºpŒN§Ñ¨ÕD"‰ôOxM÷`ƒ..NNÖÖVV66-Z´hÑ¢EBBBBB½{÷îݹckkcceõìÙ‹¯_;8ØÛÛÚzxxx¸»{xøø8:òx›mmmkëè(+•JÝŒ}Øl‹Å¢Ó 33{{;;{{‡Åb0JJŠ‹srÀd»»z½TºcÇ¡C.øû4m ~ŽÖM=¿Ž®\nPÐÔ©C‡:9õìyðàªUdòþýØÚ’ÉRuôŠVTÜ»gk;rä´iC†8:R(:]Nή]•#ŽõúŠŠÒR•jÆŒµkgÍúøø’˳²jckþþoã]$ncC£a˜Lö÷uŒ·6“HL¦£#‹…ab±é¦Õ …D"ö5A·¯¼¼¼¼¼¼;wnÝŠ‰Q«µZíܹsçnÝž={ò$=\¢R©TK­V©$л*• …R ĵ}n2™,‹Åçóù\®µµ¹9‘H"Q©:Ngn¦ÆÊÍ-+÷…8:ªT*•Z .ò}ÏTr 73 ¥²I_ßFþúëÌ™+W¢£¯]{ôÈǧQ#‰D"Éd29#C«Õétº¼¼üü¢¢23 7öövu‰;¾­ÅªÓëVÒ•Œ?nܘ17nܼyëxìÞ½[·®]?©NÉd …LnÞ¼yó¯}w//OO† ÝÜ\]?~òäéÓãÇOœ8u*<<<¼Gš Õý»€v8yòÔ©¿þš2eòäß~Ÿ#`. pW†á8†¡&ÀÑ ö…B&S(àxËx<˵µµ±±±Aíº È‚é7AT¯7ôúfÍ‚‚jzŒ-H)³hÑ¢EË–;±(*•J•Je2©´K—Î;usoÔöö‚šÜ½{÷îýûgÏž;wþ<¨‰Z­R©Õ‡<¸wï÷×äËç{ÕK#|¾…ŸO"effgŸ;wæÌÉ“ÅÅ¥¥ååöëúI0OI@@@@@@zzZZJŠV«V+ݺõèQRRRRR÷ìÙ£Gpì?AAôïõ¿¯Ñ™™ééIIàG8“Éfs¹..®®^^U_@£Ñhtº19ȰL$’É`Ê?Ng±Èd*•Á·<ƒŸZào2Çét–7Mƒüx FÍLBÉà :¨•J¡€@2‰„ã‚ã …J¥VƒÊŠ $ \,ƒA£q8‡ó=aDV©”J™ÌÖÖÆÆÒ2&æÆÀ˜b0ÍÁƒ<د_TT¿~àFòƽ¼\\**„B¡ÐÚúëÆ_kµ:F~ö~yMÓ=XZZZ*ØÙ988;WTTTTT( …BÖ½{§Nùù¥¥‘‘={vëÿêU|||ü«Wt:‰äííàмy³fà‡wuö V«Ñ¨Õyy™™àHóððö “)”¯ÛüÇ?~üø]»vìØºÕÉÉÎÎÂÂÅÅÉÉÑŒµõêÝ»ÔÔÒÓSS}|üý›6íׯ_¿¾}œœ¾ïX«-8Ž¢ Šbø‘I¥º¸ 4mZHÈáÃÓ¦ãçgfV¾øø‡(Žët"‘J…¢ €‹aJe~~jª\Îåâ¸^/•Þ¼¹sçÍ›……:­Yƒ àBLå«?©|—O¯C$b˜V[Q¡ÑT®I$ÒéD¢Dz 2Ê””k×îÞEQ£¦L!‘øü  >}ììÖ¬‘J1 A¸\"Q§^¼@=&M"‘ÌÍz÷vr‰ G6ÃD¢gÏvî<|¸uë3¾fÕ¯¼¼¼¼ÜÜæÍCBpÈÄgÏž<¹y“J¥Ri4kk&“Í67W(d²òrл‚ãàkÏM²qppttu­þ¹ifÆåòùCe@|"ÄÆ>ž˜XXXTTR¢Óá8ž‘ñáÇ …R)—[ZòùØÙÙÙÙÚ~[`ôf:Љ(Š¢8îèèà`oŸŸ_XXRÒ¶m‡^^ ,Â… ‡C&?zôèQb¢µµŽc˜Á@¡€4Õm1SÕéu¿ôZ"±GîÝ»u›3gîÜùóAæúaÆ 2ÄôS@—-[±bÕªæÍCBš5¡êïùômÞ±c‡íÛïßàÀ¡C ,\¸dÉ Aöïß¡CûöíÚ}[ɵ„uÁç;™ü-Aÿ/èK—.]ŠŽæpÌÌÌÌ ¥R©Ôëu:N.W(ŒƒË`\?8_h4*•Je³ÍÌØlð7XîááîÞ°aPPPHk.o×M‹]¿~óæ;.... €£4%%%%5µQ£F¼½¿?Ω˗/_މ™6mêÔI“ÀÝ à[ÁâÅK—._®PÈå Eß¾}ûöî]{ãëMkòìÙóç/^Ìš5sæï¿c&Àžýþš|íùnfÆf³XàRDŸ>½zùø$%½Ÿ’Rååþýû :4+++++ËÒ’Ïg³ 8°O¡P (/W( ¹<<¼GÎ ƒÉ‚²²ì쬬lmmmmlìì4 ýòûfggd$%y{7iÒ¼98ÒŒ“qU'ûÏÞ¿ÿ>9ùöí7®]µÊÎ.(¼½ýýCC]\\\œƒƒ¹\.wèÐ#F?Œëþvà¯E ˜›·m{æÌÓ§mÛ‚%$’¥e·n‡'&¦¥™®I¥ººþö[óæ•KÈd{ûÁƒÇ«\bnÞ®Ýöí;ƒ6¦ÑÚ·oÔÈÊ ü\×jŠÂÂøøãÇgÍb³ÇŒ9wîÔ©/nܨú.·n½xñÛo`Éß×iÞüĉøøû÷?ÞËßûögÏ^¼0.!Ù쀀)S¢£+×rv5*:Úx£4x?‡Žwp0.qt>üâÅÊrH$>ÿ¿züü5rphÔ¨qcŸ'Nºp@ i´ Æ6 ô3,‚`˜iïj0 (†\Ì_.ßôÜ!Qð)€ Õ=7Á¸fÄÕÕÕÕÕuûö;÷ïïÕ+,¬];3333ÇÌÌÜÜή]»víÚ¶ïòýç#èÍJK%.%%--9ùÍ›wïÞ¾ˆ ëØ‘@@Q™,55%%;»¨¨ àǦMüülmíìÌÍ“’Þ¿OOïÛ·oß®]U*…B(¬~‹™úþ­­±~ýºu«WƒÜÐ`Œóôé¿ÿ>k¨OŸ>½{÷êµiÓ† k×~Ï{}‹ ÁeÈÁƒ‡1ÂÎÎÎÎÎnÞ¼¹sÿø£~GFÓht:Âp`ä{͖ߣG·n]»þõ×_;·iÓÆëÖÕ×–‚³ì…òr@ —%„B¡P$ d ¢|’²X,“éììääädeemmeZéÔ©S§þúëñãÇ?%9räÈáÃà›X£FÞÞŸdPÕ½{÷î=x˜øêÕ«W`n pñþõëW¯Þ¼ñòòòòô|ýúÍ›·oÁ¥ ðª¥K/^¸páÂÅ‹—-;qâäÉÓ§›5kÖ,(í`iÎ`0 Fuj¢V«Õjõöí;vìÚjÚ*111ñÕ+Pp1r䨱` øÔ©S¦Lšôüy\\|<¨IÓ¦AAà2¨IPPÓ¦M›vêÔ©S‡_®Ã—Ï÷ªab°>‰D¥r¹vvÎÎÞÞÎÎ 6i²oßîÝ[·º»»»»º:9¹¸xxìÚµsçŽ N Ñh4gÎüõ׉`«ÁÈz†† ‚ ‚þ½þ7ÂdL_å „Ê<­UUÎnL»¾`W¦œÐh4µZ&7ƒƒQÒz½N§R`´N§Õ*•`ŒžZ­Ñh4ß?÷·F£Õjµ66ÖÖ66 ˆ–ƒà¸V«Óéõàk=:ƒ±ÒÆå:^FW$`tí÷Ô§¼\ ¨¨ÀqD²°°²¡O¡RÉdÅb2©T{{[[KËß~ûõ×_~ ïÙ³W¯W¯Þ¿/,”Éd²¿'%¨I`‚r£¢ú÷4ìMp¨½½­­…ƒA¥"ˆƒƒ—Ÿ_PP\Ìåš™›ÒI¤À@??OOOO/¯êÏÞFÖ›iß6æñÍ›7oÞ¼¹téüù3gÚµkÕ*(äÑîÔ©sçλvíÚµsç–-[´ õõõõõñqppp°·ÿñCϵÍ`HÞ½{ô(;›Db0Èd‰Fãñœ[´hØÐ̬öo†¾UB«WII7nܼy÷naaqqYYQQIIyùùó—.]¿~þü… ÑÑà’R©PH¥t:‹en‚+_{n‚þÿkÏMPB&S(Ôj‰D(,.6„FKNNMÍÊjÒÄ××ÛûåËøøgÏ¢£££££+Üßôfùù(ŠaÂøñcÇîÛ ô÷oÔ„çÌÍy<.·S§Ž[·îÛ72²K&“ɤRu:F¥b2Y,v©z-V{D"‘H(üð!###›PÔ`0ê2ø BÞìÛ·{·¿¿Ÿ_“&ãÆ÷믥¥¥¥¥¥õÕ2ÆËÆd2‰D¡|Ë}3_f'o¼,úc0 7šŽƒýÔ_¿ªæÂ”Ÿ[¹$*iÕªU«-6lظqË0š¤8û\}¾§†Ÿ+ Ô„n-,,,ø|;;{{;»øø—/>~me u3¾ØÆÆÆÆÚºrjV2900  I½^¯Ç°öíÛ·ïСW¯ÈÈÈH??ÿÀÀòr@(\¾|åʵk{÷îÛwÀ€¯½0AAA?šÿ…¤R‰D àñø|kk2™Lþ§Ôà 4˜rÐ8†„Je2Õj•J*# AÆg5´Z5„6PT¯×jÁOF£ìï D‰\^TTV&yx¸¸ØÙ” °åÆÿ”B¬V(T*†J¥Ñh´ï©OYYiii)˜¬†Éd±¸\.—dz´4Ž.GQmF&S(8îîîææâܬYPH$ŠD ž_6­þ¨’’âb„ÚÅb±X,hkk.—D"1ŒJe08@ @Mlmmm--QT¯W*ÁFF«­Þ7õ›i•mÿ5®^޾|¹C‡Ö­CB ¼ÜÞÞÁÁѱuëÖ­[·¶°àóù|ÓlÁÅ :ý{÷iÝpsssóðø¶×fggggd|îY ÅÎ."béÒ±c_¾\³fÛ¶={¸\"Q¡(//+srZ´¨Y³úÞvèsìí6lÚ´iÓààNºvíÝ[&“ɤR¸¤¤¸¸¨ÈÞÞÞÞÞà • AÇAàõkÏMKKkk{{pA±ú5äñ¸\.W"‘ÉÔêÂÂ’‘¨iÓ¦Msssrrr òó[¶ ñó{÷.))-mß¾}ûöïŸ8qâÄ_ýþöár¹\ LîJ&S(Æ{_Ôj•J&£P( ô` áHú1qâ/¿ŒI à¸N>˜Ì궘©š ]=zôøñ“'û÷ïßè¸lvèÐ{÷^»víÚÛ¶mß¾k×áÇíÛW7S‚œÅ#GŽ1lH!1þ‚‹äšã­ªNpö1Fc00 à 7Àèg½Þ˜y™Fc±„ÊLy`d47‚åd2™L§ B¡BnüžÍ_Í—.]ºtñbh÷nÞ¼yóöíøø¸¸/‚ââ‚&“F3†tÁ8h0ö™Åb0ètµZ¯'AÇo« øá÷þýû÷IIT*™Œãr¹TZQnAãë@ºÐ& - ½^§óòòööòº}ûîÝû÷õz½¾M›êO„efÆá€É¾´Úê¬ß°¡»{ÆgΜ8±cGNN^^q±L&—«Õ H„ ÆV ÓÇ3fð`pÙ€D!|"‘D"¾n‚m7=ÒŒ¾ü˜#ïòòrsóò¦L™>}Ö¬ß~›4iÒ$"Ç †Õ«×®]·ÎÑÑѱ2qC¥%K–,Y¾|ÍšÕ«W¬øžc¬n|9ˆü}ˆD§iÓ 6o®éi¨ Úåççïß´)’ŠD"‘HFÃÅÆÆÆ^½Šãz½DÒ¶m‹^^`Š,pnÚÙÙÙ98|í¹Yþ¿* 0ò:4´]»^½„ŠŠÒÒ®]»téÒåÕ«W¯^½rwwrârAXóîÝGöìÙ·ïС–-[´ uƒƒƒƒ¿þRˆN§Ó ææ @"Ufµ.**-½sçÖ­›7]\\\ììT*F§33#‘oo/¯† ÁÝ9 åTõ[ÌTõ{]Sb±X,‘œlºfTTTTß¾àñܹsç.\xñ">þå˾}{÷ŽŒ#O¿öÝ¿¸›äàÁöî—ôîܹ{÷Þ½ÜÜÜܼ¼¡C‡ 4„Jkö}ABpäƒIS x¶¦&Ø V­Z¹rÙ²ÚnÏÚ¾õë×§ODD` ¿¿¯omLB&%Þ½{çÎmÛ@º0'Ø_©©iiiiG9rà@m_¨0­É­[·oß¹søðѣǃ øz½N§××TM¾|¾W ƒ‹â>dddf*•RiIIE…P(‡`˜V{êÔñãBáÇ=}Ú§OddxøÆ6¬YS9vå$ÛAAôïó_ÄétØQ§S« &ÓÌÌÂÃPT¯ù4A ™Á`2y< …Íf2A Ñë5Á`³e2…B§«©ô Ï/¨ø1<`À€QQݺuëÖ¥K~~~~AÁþý{öìÞ-WT”•‘ÉD"ŽÓhT*#G"¡(‚ÐhßS0ÆY,‰**ètB)I˜L&ÓÚÚ8*EõzÓ¹ÔÁ˜;6›Íf±är©T*·#‚Tï§5…B£Ñh ü]õ™L&“Noß¾mÛ  ™L"AQ £R-,,,¸\ÃT*•J©ÔjÁ¤Ñèt6»¶÷`U¹¹yyyy;wîܹgÏêÕ«V­\ûìYl¬—————WRÒ»woßZ[[[ƒñÔF.\¸péÈS ÆF={öìùó`ò¥&Mš4ñõ­ÚBPmÈÌÌÌÌÌlРA0å‚ Ž7iÒ¤‰¿ÿÝ»wîܺe³Œã8ÎMp®n’Ï€{)t:­V«-(((((°°0773ãr¹\ÇÛÛÛÛÛûüù3gŽEQ¡RÇŒ7nâDF­V«×¯ß°aݺû÷Šú¶w²ÀàóˆÃáó,,ÌÍ kk++.d¡æñÌÍ©TÁ¡çÊ33û¶«~¯ ¨T*•Jµté²e+V€€ûŸþùçœ9ffffff_~m¿~ýúõéré³Ù6m>Aê&y¸›LxíÚõë7n>|äÈñã={FD„…œÑß“£L8wî¼y €q»`yEEE…P>ß[¶lݺ}{°§ÀÅW× 48yòĉ#G¾í}Aû‡‡‡…õèQÛmX7Àùûûû7iR{ï‚Ý .\øçŸ™™YY`y‹-Z4o^—ɯ@MÀ”ž<—Ëãåžžîî5ÿÚóŒÖðàáÃØX'§ Ap$#“I$"Ñ××ÏÏߟÍ6337ww÷ððòSUóù––ÖÖAy¹@€ _wW AAýh¾ñë8 þ&ANa­V¥b0X,@ ÓÍÌ@@ÌqèõZ­RI"Q(4È-•Êd EMýD?DMGˆÐM€0¥½ý²eË—ggggggÇÇÇÅÅÅÝ¿ûö ‰„ VV66`|î·Òét:LÃãYY±Ù*•R©Pðùl¶••N§ÕªT`Û™1 EÁ …L&U*µZ¥ªœ ¯zÀhe0&½ú{„ÞAØL Äd²Ù<H–R÷{°*kk+++«þýû÷ïÛwÖ¬?þøãŸÆ7f0˜L#"""""¢jØ%99%%5U©T*•J0‰SvvNNn®……¥¥…EmÔ‚jn¼LF¥VTÁÅ‹/ž=;vì¸q¿þ:`ÀÀj4jµJÅd2™ ‰…F#ÖMŒB}Ø£GÜ¿?lذaƒƒw·¶¶¶¶²’H ƒ¡k×nݺv—üžþåË—/§OŸ6mÊpQ¡úïî1ruuumÐ`öì?þ˜9óöí;wîÝ£’û÷ïׯwïZÞÕÿZ)""<<, „‰ß¿ÿ>%äÐvrúôý(Õ¦†ëС}ûvíÔÿO£‘H¤R‰¬‚àææææææ -ƒ•••Õ÷}vu“Þäç>©ÁcýÖ™-[¶lùO#›>ß«NBˆ ÞÞÞÞ>>~~ÁÁ,‹Åfƒ{Y´Z­V£ ïÕ ÔÜÍ-))))6öÉ“{÷fÌ;vâĤ¤¤¤wïÞ¼IL|þ¼jùAAôoñh.—ÇãñÀ˜+0ªܬ×ët`¶n ‚µZƒA«år-,œÁ:Æñ¿D"‰TRRZ*|[¾ãª&>÷,È­ Û´iÓ¦uëéÓÿ}út0Ëü±cÇŸ<ùm7ö–•••••]¿~ýúÍ›oÞ$%¥¤Ü¾]ZZ^挷´´°07?zôèÑ#Gœœ¬­mlllüü|}5[YY[ÛÚJ$‰X nmvssssu­Îä3ff§×ët:Ý¿wVåãããÓ¸1H¯Ñ¸q£FiŽ@>Ê>}z÷îÕ«ê«-Z¸ðÏ?Áß{÷îÛwàÀ„ ¿ü2n\ÍÖ ‚ê†\.çæŠDTªRI¡ÉTêäÉ¿ü2`€R©R™™1™|¾ñÁqpn‚¬Ðµwnš‰5&Ož4iâD¢ ð,{8uê”)S¦¼x7wîìÙ³g/[¶|ù¢E––ßSC­V§Ã0‰L¦ÑÀl|>‚(ü1cÆøñ`j]æÔŠÁ`³­­õzµº¬ŒB¡Réôïi±êôº }@ØtàÀú÷ÿþ6ŸP={FDÔ÷ˆ]ð òý¥Ð¡ŸŸŸŸ¯ïêÕkÖ¬_õêիׯ `°ýu„ñãçÎ3g֬ꌇ ï÷åóýs)2”J•J­3j€ìØ`°¸×M( +*À+u:N«—ó*ƒÔZ­qF˜‚‚ ‚ ú·úæqœ@Ðë³Ækµd2•ÊbI$‰D¢T*2Šâ8…RRRRRXˆa8þîHL!”——–ªTjµVûæÍ»wR©T*“q¸uß`ĻӫWÏžŸQ[ jhhhhóæ Q\\RRR¦[0W.—Ëåò·oß½KI¹yóöí{÷PÔ`@QÏÜÜÜäc-))))-õôôô¬Þ”tàÆ|WùçÛƒ Àòþùç¼y³gƒ0xuBócÆŒ=rdmÔ ‚êFãÆûúâ8Ž£¨J¥TÊdÙÙjµJ¥V V\œ““–f0èõ( ÎÍ-Ú··²²´´´¬›ÞõË7¹ƒ1ÎàœmÛ¶]»Ö­¿?ô …"‘X¬× ŽŽ(j0h4† †X,‘( 7‰$¹¤¿À0§P²³³²RS¿¿ÅªÓëZXðùææµÝþ?0–„˜ûôéÓ'2277''7ßÞä>®ß†ŰX~~ßÁ‡ÚÝÝݽaC°†ÿ‡¢ õ4­Öø˜Š ܆ ¦f¥yyyzzx€ä!Õywôg݃¦·Eƒ©¢ªŸ¢Üì_{uƒ Ú¶k×þý§N‰ÎM‡Ëår™LƒÁ禽½“S£F lÎÍ  ¦M„Þc÷BC›7 iÑ"4´&òÂÞìÀ#GλqãÖ­'OŒ½™L¡üÛ[ì¿ ŒqvrrrrtwÀ?~üøÉ“à(³;€g뻦ÐèÇÀw°ÊÄeÆû?€Þ½{õêÞ¬ ²B+r¹Ri¼'ƒÁ ÓÁ´Ø`¼³éÅ<°„B!“Á7™CÐ`ÈÂ× >€ ‚ ‚ úA‹…ÂÒÒú®ý¸? íÔ©¾ëRŸ0L"‰‹[±báÂøø!CÖ¯Ÿ2ÅÝý['ûtù EJÊåË»woÜèäôë¯ÿ(7Õ›ÖmÇŽ«WqüþýGª›wGQƒA¯¯ï6€ ‚þN¯×ëõz¡P(,++.ÎÏÏÌ)Ñjû}ÁŘ ÜÝ}| ƒÍFQƒ¡zIØ ‚ ‚ ¨î¿¿‚¾ŠÊdÉÉW®ìÛ7gN›6yxìÚ•“£Õ~zmµ:9yÅŠÎÿøcïÞèèׯ%ÿ·6á¸^/æåeeªÕÆÑV8®P¤¥;÷äIyù÷I‰D6»q㈈¨¨  oË…aJerò±cK–,_~üø‹5µí¦u#“µÚOí—#úôÙ¼93ósû AäÙ³cÇV¬X¼øØ±”¥ŽXƒ úwwYYYYYÙÛÛÚÚÛ»¸èõz½N&š®Ù÷e‚òAr!‡Ãáñ`è‚ ‚ úñÁ4ýH$ÇǧgÏAƒúõsrâp,-OœØºõÕ+©ôï?aQT(|öìСŒ [Û¨¨!C"#yw.)©æªßš–A©|ûvÆyóž> ýõ×!CBCk¦>×íÓµÃ0©4$$,ÌÑ‘Fûü«[¶:ô×_›7òäÏ?7lxûV©¬ùBAu‹D"‘ˆDWWww__2™L¦RU*•J©”J%‘¨¦•J•J©)†|}[¶Ôj5µº¾·‚ ‚ ‚þÙÿrÌÑht:‹E¥Òh4‘H$~_0 ‚ oE à8‚Ðhnnݺ½~=aBxø¼y\¿¾fMH›-?~¼hѺuÂÌ™ ¶jUPPùJƒ¡´ôÂ…+ÊË»w_¼ØÏÅÒjÓÒV®LNvtœ?? @¥ºzuèÐÞ½üë¯gÏ.]R©Þ¾ýóÏ=¦NEG®\‰Œ<¸]»ñã%’¡C÷ï¿qcÖ¬  ’’K—FêÕkófW×øøË—;t0 {÷õëÛ·?sæòåI“,-ss/\HO—Ë[µ2Ý ™,.nðà®]—,9}úÅ‹7ÀR.;{çÎׯ­¬&MjޜŋŸ<™5kРæÍ7mºu‹JëˆÅùùbi þUPpôèðá“'yæLt´^_TtêT¿~C†<~óèÑž=¦ïº{÷üùoßöî½wï¼yVV “Hž>4¨S§30,"bܸѣ2¤S'ïÖ­þýÃÂvî¼|ùÕ«û÷A[uï>zt^ÞDZ±kׂºmÝêç·ÿùó£F9;ƒº)•Ï>ŽãRé‹Ë—O›Ö²%HJb0”–^¾|÷.…Ò«W÷îD¢^_\|õ*‰doѹóÂ…½zíÝ;qâž=ríÚÌ™_>&^¼¸¿¾ÌŸ…B¡P©L&‹efæááííï_ß5‚ èç¡Õj4J¥§g£FuóŽ G}o7AAý32˜L9aXÍß6AÐ×7nÂOÏ‹׮ݰáÚµiÓNž ½q㯿,-GڸтDJO7 @“É66={ΙcmM¥"ˆN'¤¤$$ ‚ã(ªV«T¦©:Œ—š´Z0ê˜@ Ríí{ôèÛüx&“-,üýCCÍ͵ÚçÏ  %"‚B!Vã¾ PÚ§–_aÉ«W{ö¼xÁd¶iS¹•jnîäþ6D¢„„‹33¥R‰dëÖmÛp\¥Êʉd²â⪥ø VÓ郳X•ÓN’H ‘H&››·h1bĨQ=z4lH¥"Ž÷ìyäHtt‹¦m¥RéõJ¥iÝ øã{{Óº±Xdr~~å»â¸B‘ž~þ¼›[HHË–Æí$‘¨Ôuë–,Ù³G¯1""¢}ûÀÀ°0ÓšBa³4 ÓUªøøê ;‡… \‡ÜOŒ‹E¢²²²²’’ü|;;gçú®AAAýÌÈ …B§×F®:‚¾‡½}xøÌ™:lßþË/»víÝ›’’œ,uë6iÒÈ‘ `|"q÷îU«6l ‘,-]\7vsssãp„§»v]¸pРk×6lضmÑ(9Y*íÕkñâE‹A²²@‚ É4t þý­I1>Ï`É22„B c±ªnø?†i4eeZ-™ìà0mÚ´iS§‚åÓ§Ï›÷©2•J%èt2ùïõ%ˆD2™H¬)BáeeOžlÛvý:‘ÚÊÌŒL~ûÖ´nL&™\µn¦ïš‘qî\vv``Hˆq‰deÕ¥K³fÝ»/X0tè¶mz½Móæoß>yrô(…B&³X$Š*Õi+•J©”Ëkzüû{,-­­23ÓÓß¾e³ÍÌx<‹Íç ‚Èå2™DRZZ\œ—'•J$Ba}×ú{q¹<ž……ƒCƒl¶™—[uÓ­ÇÈ3[ßuÿ^¦cÞ¿ÜAAAPí!“Hd2™Œ¢(ú÷ÛÊ!ªk8n0hµ(Ša8N p¹-ZlÜxåʆ ãÆuë6pà/¿<ž–fgG&#ˆN‡ ßxk0Ÿ;Çá 6eʸq..ŠXüèÑ´i‰‰z=ŽëõÅÅW®,]zäȇ/¾ysä•jL•ɲ³?W§Ê¿>ˆ&1L«­¨Ðh*×$ét "Q,ý ™Œa EJÊÕ«7o"ȨQ'R©ööaaƒÙØ> ò\s¹D¢N'¼|ùì‚ôè1q"•êà1t¨ƒÃ‘# Ž#›a"ÑÓ§[·:ÔºõŒ³f™Ö$ €ÍV©’“%®E ŒtþTA[ñë¯'O^¹’ÚJ¡ÐéPÔ´n nßÿþ‚ nAeXN­NMÝ´iéR©túôèèÊòuºœœcÇ/>uêÞ½uëÑhÒÒV­úðA­F‰$)I©d³«wTÀ›¬kø¤Íšµhѹs\ÜÓ§·nùû7mÚªÕ»w¯^={æììââînmmcãàë»Ö5C¯×é´Úwï^½ŠõókÚÔ˜4G.—ÉÄbÕëõúŸi{?×`ê6ÓKAAAPm#ÍŸ?>Mu÷h0ˆDqq§N­\mfÖªUp0nϯëšÀGøø¥Ç‚‚üüÌLGG77¤Ö`˜\žœ}èÐîÝ11±±>8;‡… êááààââî.>Þ°aûöýú©Õ™™wîœ?áÂÕ«feQ(VVîîîîöö|¾£ã”)£G'&æå–—£¨Í.¤¤øû·oߦ]~þ½{}ûNš´té¶mÛ·ïÝ{ìØåËÏŸ;9Q(%%×®=|˜œ,‘P©<^¯^  çÏÿõWL̽{ññ%%––ŽJuçÎãÇÉÉ]‹½{9:II—.íßüx||TÔàÁL&Æå6lˆ oߎ·k×Ó§ÙÙ¹¹%%d²‡‡³ó½{ññr¹ŸŸŸ_``³fmÛZ[÷è1bÄÚµ¯^%%ed”–Òh4Zbâ‡B“&Mšµnmeկ߄ ›6={öôéë×Ö½ûäÉ!!NN †i’H±±GŽ\ºäàЫWddƒ Æýû§NíØóðar²XL&s8ýúµníçG"1™ŽŽÁÍ›k×Þ»gl+•êÍ›»w]]‡ ™9³cÇŽmlrrŽ[µêÒ¥7oÊËAݲ²âãÓÒÂÃÇŽ4¨¬ìðá;:wþå—Þ½6¬¬`0L™²lÙéÓ¹¹éé ÷ï?x õéÖ±£BñúõîݧOõé3|xx¸£ã— (©ö޽ÿ&&“É43ËÌLK{óÆÞÞÑÑÕE Î4!ÕÏEd2™L&s8\.Ÿ–çççä|øÀf›™ýìYÐååeeEE|¾……M}ׂ ‚ ‚ è¿‚ T*Ré¹s+VDF.]züxyyÛ¶“'ÏŸ¿k×”):]^ÞÞ½‘‘/Þ¾ýæÍ­[¦T¦§_¹rìØáÃ/^P©:ýþûðá]º€¼³_O&‹‹Û±C( ˜<ÙÕ•F«ï ¿{þ<6öÖ­ÐÐNê».ßÇ•Ê÷ï7n;vþüI“Nœ¸x‘HT( ããŸ5‹Í3æÜ¹ÀÀªé0þMŠ×¯—,xp«V EAVk0ØÛÓé®®-Z4h ‡‡wíÚ¡€ ƒZ]\|ÿþŠǧ¦ZXèõùùéér¹Ÿß®]K–tìxùòºuK–:«Ñ4j„ iiII;Ÿ:uéÒ/¿ n‹V©òó5jÄ2yÑ¢›7GŽôö&‘²²ÎŸ_¿þÖ­²2&3??11%…Ù8qÑ¢çÏçÌùã~ýfÏî×O¡xõêÍ›'îß/+0`éÒ ¦MkÝšÏÏɹxqժ͛¯^•J4°±ÉÊ";wÞ¸ñ·ßüüØl"A¶oŸ={þ|•ÊÑÑÂB"yñâÑ£)Sމ޶·S¹^¿¾cÇåËryzzj*‘ؽûâÅ †‡ÀCÐ@`0œ;vìÐÁÍmëÖ]»öïçr‰D…¢¼¼¼¼}ûE‹þÝ¡g€Í \²äÊ•C‡ê»&ŸG&[[÷êuèÐå˽zU÷5øÿH¥±±ãÆuí:oÞÁƒqq#‚ %%çÏ4v¬R¹ystôÈ‘NN` Æ‘#ÿýÙ³mÛ6mjÙ’Ëý¶Ô$Çdjµj5ŠbØ·$!‘øü6m ŠŠz÷®¢âÇN'B$’H$’i µÚ¢¢Û·OŸ>uêòå'®_4¨mÛÜÜ””œ ¥E‹ -4¨.B·rùëׇK$¾¾£G÷1Ž¿x!¢hh¨…Eõ‚æ$‰ôñÅ ëÙt«QT.ÿð¡o߈ˆ_~)/§Ó~ÿýàÁõë pt¤Pôz 66&æÜ¹K—="“»výí·!C:wööŸ¨Ÿ‚ãJeFÆõëII|~·nÆÚÊå¯_Oœ8xðÖ­»w_½zäŠ …Ìš5}z\ÜæÍÇÏûåmQ*32®]û¸ÌqÔþþ‚ ‚ ‚ ‚*‘+§43ó÷Œ´±‘HŽŰ1c¼¼nߦÑz÷ž4iÀyù²¢B¯ïÕËÊJ¡øðáÖ- íÜÃp\¯/)¹xqÚ´åË.3³qã³gçÎíß¿];«gÏ#þüsË–®]oÜX²dÁ‚+îÜ “'Ñ¿ÿæÍ))½z >kVÇŽM›ÚØ=zö,¨ƒ^_XxéÒ–-W®:´u+ƒˆ..nØpì›}îÜŸÈd"ˆRéïß®ÝڵݺݺµlY“&Ug(-½vÍÆfúôE‹fÏöóc±4š´4µ:%E«µ°èÐaذÁƒ÷îÝ¿üø¦M;uŠÇ#‘ †’’K—FÊÈP©ÄLJD*(gÎ|031bêÔ¤¤#G22Ú·ÿã‘#œ¨T•H¢¢ÆŽ=wnñâ£G×® øø}ÊÊnÜ8|øàÁgÏ„B>_­vvö÷0`àÀ-ª;øŸ‘É––=z,X0a‚^?yòš5J%ŽÆbB ‰4•Z™üsÛîí}àÀ¾}ïÞÚÚž8qèPÏžüñ믦Ribâ¥KgÏÞ¼ùþ½B1þ’%¿ÿŽ 8®Õ‚v{øP  Ó “’23Í̆ ›0áþýÊ2A Lœ8th‹5¹ß!‚ ‚ ‚ šðѤTjƒƒ/[T\|ìØáî®S§¶nmnN"±Ù™™‹Ï{îÜÉ“ÚÚΜ٭›ñµßRmj0>o|ÎøcõãuòóoÜ8~üÔ©%K† ?þøñœã³tº·÷¢Ewï¾xѵ«››Tzóæ‚ݺ5k֡üy 4"Ñ`Áqð£˜H¤PX,&“Hüý÷aÃ&O¾|¹¸X§#¨TKKÏ8J Ç1L¯W©µÚ`0­•^‚ßD"…B"LæÔ©S¦Lš4mÚœ97>|{àÀß·>þÜT*{YÉÎ.2råʹsŸ<)*JO?qâìÙ–-§M Þ°¡yóüüåËçÌyô¨¨(#ãÔ©¬¬ˆDðZ­¶¨èòå‰;t°¶&‘Œ¥Ñédòýû›7''+8Žã$™Ü®Ý¨Q#F 6dHTT·nÞÞ,‚ ¨XüèÑôé: øôi·nt:JÀq'¤Gðpww,'˜ÌFtº—/Ÿ<)+Óh*ëo|$‘lm##ÍÌ®\ÙµkëÖ½{Ïž}ò¤ €LÖëA*â¤Ñ¸\$óhÙR.7p\«-.¾zõôéÜ\6”I&;8 ýèÑž=Uß±êã§ÚùóŒ¯P*ssoß^´hòä³g6œ1cÎð¼ÁP^~ëÖ¸qcÆìÙC$¢(Àf[[S(÷ï¯[÷矃HôìÙúõ;vܸ‘’"•R©Ó§¯[·jÕ¤I¾¾`:Ïðp­|7"‘Ë ¢RµZ­¶rye ÉdkëîÝ :tôè_2$4”Ï7&ù'ÕÛvAÉܼuëåË/_>{¶gÏ^½–-»wO(4Lkóåmõ´·g2y~ÇŽ+WìíÛµ³³3N:H"™›EE5h ‘€@.‚ ˆZ›{ãÆ«W..t:‚|>Œ‡ãÒ°á°a›7oÝ:l˜­mRÒ† '‚rÀ»›69’–F¥òù¾¾={ŽÝ©“­-F§#ˆÁ PdgWThµ ô²²'O._–J½½‡ är‰D±X«5T* 3Þ.•êõ(*—ëõ8N&óùM›ž>}þ|zºRiü!¬RݸQV¦×“H<ž¿ïÞNN"‘BžEQ±øÙ³]»Ž©ïAЇéÅÍÉ)=ýøñÇïÝËÈàóI$/¯}|„””'?~ð 5•J­|‰Ä`ØÛ—•©T(jZšNG£980™à²Üç.¿‰L¦ƒƒ¿¿‹‹Juç΢EÆ·òÑØ«|T©.×ÍͦPª–‰¢Á½{¶¶#FL›6mÚ/¿ôïß®]÷lÑ€IDAT†lö§.û|ºV$ƒáèÈba˜XlºÃ4¡°ö.+1™..­[êç§Õ>yrøp|AD&{õjÆ%KV­Ú¾}ïÞõëß¼iß~Íšuëºvµ²"‘dÖ¬ž=Œ#G†1bòä¥K·msw'“32Ö­[½úر7o4{ûàà—/çÎ4høðß~›:õ?V¯îÞÝÎŽBA ÅÁ!*jãÆÙ³:tâÄÉ“gÍÚ¸1)©yóÑ£ë{ÇAô_ñ÷Ñ»L¦ÁðâÅ®]7n¸»[YQ(8Îáøø èá¢qqÛ¶EGÛÙ™¾ŠH47 ºx1.®¢B¯7.W©ˆÄ-úõsv¦Ó?úñ;4ZÆÇoÛ¶}ûðá¶¶Ë—?x V–ƒ ÙÙB¡Vkœ¦At:©´Q£¡Cx<ãhiÓ’1L§‰”JQT¡ÈÏOM•ÉÀý'¦cc?Þv°>Ø"pP(”ËAíQT(ŒÝµëСš]yOŽ“É<ž¯/‡aBá›7Æ1Ûtº­-“‰ãR©é«PT«‹ …¢¤D,öôìÛwÁ‚;Ž›5«iÓ’’sç֯߻÷ÕêKïúñ8ì¿?_½1Ï_?Ú¸ìÇñ/;ÖÓ3-mß¾… ÏËË3_Úö¿YŸkÕO-1m·7¢£wì0m·êí·Þv‚ ‚ ‚ ¨¶Äb¡°´´¾«ñ-† kÕªgÏV­Nž¼paâÄ LƒåTs? íÔ©¾ëýUNû#’Ëããwíª¨øí7W×O?Ìáðx––wï^¿~út³f¡¡; …Aq±é:z}YÙóçW®\¼xæÌÞ½çÎ [·FG?îé‰ ÉÉ›7Ož¼xq§N;vœ?`fF$êtEEwråÇÎÎVV<ž—WÏžãÇîé™›{èÐڵǎ}øÀá4jäà ×K¥––ãÇìïO¥>r$›íãÓ¬Y``£F ÄÅ;íã3|øàÁ>>’–v÷®Zíï?uêÀ;zzÒé"Q·nÇoÝÚ£ÇÀQQ#GFDøû››ÿsh ++{{ðwB‹÷ﻺ6lèí –`˜B‘‘Þ«×¼yžžŽÙ¿߾ݻ·nmeE¡€|ÍÏŸ¯[7q">eÊ©Sl6‚|nÛG ÐëoÜX²dÆŒ-[²²\\þúëðáßONމ9|xãÆ}ûž=[»öüùÄâ{÷ŽY³f÷îØØãÇoÝ:žÁP*ß¾íF"yzúûËdh7 ‹óç'Oe‚˜>½woÿ/o{NNVVZØãõ} BAAýWüKÐ:@о}ppd¤ÝðáS¦ŒÕ³g¯^ݺyy±Xõ]7ègÐPýú±§<•Éâãwí ÿmh.÷ï芊òòÐ?+KKkëÐ ¸¹Ð?·ÜÜìl€† ‚ ‚ ª[ÿ8RêÇD¥ZY=|øöí³gõ]ªKƒH{ìØºukÖ=úáÕ+]¼Xßµ‚jÛ™:¤QºpáòåÇ‚ŒŒ† {õŠŒìÒÅË‹Å"¿¿üúð#¶3Üv‚ ‚ ‚ èßí_€† Ÿ™N—“³k×ë×––¿ýÖ¼¹™Ž+•oß®Xñꕳó‚mÚôïß§™Ù¾}K–ÔwM¡ºò#©TKËŽGZ±âïcIÄÚþ³ÿrŽàÿò¶CAAAµ  !è‡D ˜þÍb¹¸tèš*•êõmÚðù`¹ÁpàÀÆË–¥¦&%%&>{–žŽ =M¥â¸Z‘qéÒæÍ—.ÒéIB³gBaHÈ¢E{÷Nšäé™™yþüúõ;v¼{ÇbÑh……ÉÉΔ)[¶üùgÓ¦ffë×Ïž½l™ììÌåÊåéé©©óæmß¾gÏ¿'ÅÂφ!‚ ‚ ‚ ú÷‚húáá¸B‘“sï^Hˆ§gëÖòëtÁ€Ó§/ZÄáHCIÉ¥K£Fed¨Õâå%•^¿>kÖŠwï^¾üêÕýûZmZšZݽûèÑ;v QQaasælÞüþýøñW®œ>Ý©“V{ýúÊ•>èt8®Ó £FýñÇìÙ3z}QÑ©Sqq Ž·nÍã™Ç¡ºCÐAAAý;Á4ýð6;0pñâ€ðo¹A„Jµ³ãpH$°ŒL¶°hÕ*?ß`@2ÙÖ62òÈ‘}û †mÛöî=w®qc77 …DÂq¥’L¶µ ß·oãF¡píÚÉ“»t™1£°ÐÑqÔ¨¥KCC5šââk×Ú´±·ÿõWP6…âà0dHëÖõÝTÓ:w <üÍãñù66õ]£úlÿF‚‚ê»AAA?¿ÄÄ/îÝãñÌÍ--a‚~B(ZQqïÞ´iÓ¦>}ìXlìåË ¯ô† àY…¢¨H$òõ9rݺӧnjiÖlöìN–-[°`íÚ®]Oj×îý{‰D«mӆǣÑ@™jµÁ€ öÐO@"‰ÊÊê»AAAôsrw÷òò÷OIIJŠ‹#Öwe ú”/M †ãŸK‚a|Žët"‘X¬Õ ‚ ¦Tæç§¦J$:Š¢¨@pïÞÆ‡¥¦*•8N ôê5fLçÎvvt:ƒA¡ðù.œ9“šªP€QT$JIQ©`"‚ ‚ ‚ ‚ èŸp¹ææ––J¥B!“Äb¡°´´¾«A?®ÄÄ„„ÇCBBC;uªïº@ÿE(j0èõõ] ‚ ‚ ‚ ‚ ê‰.ïÞ½~ýôi8‚ ‚ ‚ ‚ ‚ ªÕÊæ*—ËdIvvFÆû÷z½^¯ÓÕwµ!¨îdr]å=vsssóðøò:ÙÙÙÙõÝ*AAAAôÏ>V“Ëe2±8//'çÃ;;''_ß6m‰B©ïjCPÝÉÌ|óæîݺy/\† 迬¤¤¨(7—D"‘H$*•B¡Ñ‰ïւꆡ(ŠjµZ­F]\\]½¼¾ü*µZ¥R( &“Í®ï-€j苄ŠŠÒRGGGG77ØAuÉ´/*++)),ô÷ jÕê˯‚}ÑÁû÷oß¾xammcãà¿)AuôNùù¹¹™™<ŸoiYoJ|6]ZZ\œŸÏç[[;:R(4ƒã0ô AAPÍ—½…ÂŠŠ²²† =<||´ZÉÌ Aàw¨î(ª×S©4šZãr¹@îü£P(*õs¯Òé´Z}~¦}‘““‹‹»;Ž3VV°/‚ê’i_äädnîèû"ôN _¢R©T:~S‚ê蜜7¶´Ôj%’ââêôN|öZ™J¥TÊåà0Â02™É¬ïªBAôs—½­­mlìíu:*•χw\Auu$Îá°X<žF£V«T_~•N§Õjµõ]w¨f˜öE Äû"¨î™öE$…Â`À¾½è—à7%¨¾{' …Á¨þ7%>;\Ç ‰D ÃD¢Û·ÓÒX¬ðpŸïEËdqq&ôì¹xqóæGFGÓ ö¹µQ´¢âúõü|',ÌÕõG¹ª2aB»vÝ»®þ?fõÑ>_wÔ}¾©T$’JÅ⊠­V£]í„@ ‰DAÿ,1ý7@$þ}¿/ùxâÿ€÷}£qIå«>^búª¿¯ó©V¾Îô½ +½¾´ôÚµõëׯ?p 1Q«íßÛ¶M›† qp€Ÿ UI¥‰PhmmkëàPßu~~Íš5nìînº$!!%%3Ót ŽS(L¦Á T …_.M&“ËÅb+«ú9z1L¡HMŽÞ»wË'§_~Ù»·Y333Ó5Œ}Ñš5¯_S(ƒ›Û!°/úÓ¾„xê»FÐÏÏ´GªÚz½N÷OÁåú틾…^?}úŠ[¶H‰‰/^€oJ;v òo©Ý2öNîîÁÁõ]èçW~©úß” ¨V¶ ÉʪfBÏÀׄU0L&{ûöÂ{ûÏ—äckŠj4•ÿªŸö©™`^yyII~> =CÐÈ`‹_¼Ø¿çÎÝ»·m[²dÊ”éÓ·ly÷N¡@Áq…"-íÂ…'O½þ{ßËXÚç×Ðh²³÷ïß±#>~ÕªmÛ&M kÜØÌŒDª¯ÖÁ0¥29ùĉåËÅbƒAtº’’NÚ°aĈ9sö‰ °u'O®_?bDHˆ¿çÎsæìßåÊ—Ûýùó'V¯V*1¬vjo0TTÜ»·}ûôé3gnÞ¼mÛªUOž… ¶ŸgºþÂ…Ó§¯_oZ¢D’pòä AÝ»÷ëwäH^ÞÇ?ìMß¼Öô«SŸ/½;ôs©Î¨C­6??:z÷î… û÷Ÿ={Ë–ýû÷îÝ»wß¾íÛׯŸ??**&¦¼E¿å݉D6»Q£ðð~ý?uVöE®®C†LúãôE+Wž<gÚ>Ç´/ÒhòóïÞ5í‹Þ¼‘H>ÝR•}Ñ’%'N¤¦ÖÞ¬\9gÎòå{öìÚµaÃòåÓ¦-\ˆã•Ï*IIGŽ˜>{éRv¶é7á¿×»v{P‚鳟+¿ê³Pm«z1¬ê’ê«îhã÷¥ùó,ظÑôû8’kòûÒ—h4ÙÙ _2ý¦T›ïøe¦T‚~Éô›’±ÿ©ü¦ú%ÓoJŸï—*[ôKuóM©:çò÷ö-µÿ= ª/5Û/A©j Žùã»W«gÏþõ×9svìØµkÓ¦•+Çë×Ï´K5D¢'O¶oßµkÓ¦+FŠŒœ4iõêkת–âÄÈ‘­[GEM˜°dÉéÓiiJeå»H$))/ŠDƱª8®Ñää\¼¸|ù¡C{ölذlÙ„ cÆlÞœ›;dH÷îýûŸ>}ëÖ™3¬];wn·naa£GïÚõì™ñ«¬^_^~ÿþîÝ3gNºfÍ–-;vÌž½xñ‰ii …±îÕYçóªÖÙØ^ëÖmÙ²sçáÃ;w®^½dɯ¿Žûúµ\þ¥ízóF.ÏÎŽŽ^¹Ò´µgÎܳçÝ;¥R¯ Ÿ=Û¿ÿ÷ßM·zÖ¬!C:u2Ýj`ÇŽùó—-Û½{Ïž­[7l˜9ó×_M¿T|nÅÆîÛ7mÚ A=z {õêâÅ&ôêÕ£G»v‘‘K–\¹R\Œ ¢Ó^¹²|ùÌšµbÅ񴋮 þÇ3gN™2}úäÉ+W~ª}PT&KJ:yrÖ¬ˆˆ€ã×…"1qÞ¼öí›7Çq•Jß¿?~ÍšQ£Ú´i×®¤¤¨èK{G¯/)><2rĈë×ß½»|yÙ²ÈÈæÍuº>ê@û/X°lÙ¦M`/€ãªÎC‚¾ŽK¥ ‹-XpçΤI'Nº`ÁÂ…={ªÕB¡Z CyùíÛëÖ]¸œ¬TV† ¾MeiŸ_G¯—É>|ÉP”FsrêØ1,, €Ã©Ÿ Ž+•ïÞmÞ¼`Allóæææd2‚P©vv:DEEEµlÙ·ïàÁ‘‘!!|>™Œ B ôï߿˖ÿÇÞ}‡Eqµ}žÙF[ÚR–. ØÅDFì]ì•Ø[ì c/Ø»±TÄB4AÔØì ‚Þa Ûf¾?æÛ—Åe‹ú»¯ëåÅ™9gÎ̲O†‡³Ïáóûô8°{wݽs8––?ý4hИ1þÝ-ÍÝ»K—®\ùø±·÷ìÙ~~~~³fmذtéÍ›yyºþ«LQ¹¹šÇOžÜ¶íƒÅÇs8Mš bj*‘ˆÅ¥9jŠÊÍÕ<#ÓVóŒχÎú£kFÏç%}är©´ìc \\zö5jÔ(oï¾}G3fܸqãÆŽ{&“™›W«V³fa¡™Ù„ GŽÌ;xpY¯ŽRioolœ››–öîŸß¥Ë¢EaawîhεÖõSÇÜÿØØü|æU`~®ôý&Õ¤R~üúõ¼<š&ŠÊÏ¿~}öì®]‹ÿFÓ……÷îÍšu÷î‡F@!—'&îܹhÑãÇ=zÌ›÷ë¯Ú÷®ô‚/ïo+,|øpþü]»âã™?FÓ¢E›6&œ?Ÿ‘¡T²ÙÖÖ.^¼gÏË—Å# ^µjÇŽ >[>´¶öõmÙÒÆ†Íf~•{ð`ݺÿMK+m~–R™šzþ¼æñ66­Z­}& ¯‹”Êôô3g4c‘·÷¼yݺiÆ"‚ËSR>?Q”L–‘ñúujª:UÇbZYýóOjªLÆìMIÉÏÏÏ×ÜKQIIÚ½}íh£Ù¿æ^¦‡òœýsî”M_±Hóyiùò¡C§LÑ|^bÞ“ÚÏKÌT#&>0O,šñyb:´iÓ&Mzôؾ=6V"¡i‚xòdË–ž=7nÛöÏ?Ÿ>ýPjœ ˜èÄÄ%Í'%Íó2Çiž—‰NL\Ò|RbâÒÇ>)½—ŠïÛÇ=)1qIóI‰‰K%Ÿ”äò””ÏRú´÷ò—z’ùÏQŸvàKùÑ €ÁùÔ†$Éb8°fÍÚµl¶µµ«k­ZU«V«Æ|hF¥‰^½‰Tª’5vKn•*7÷Þ½µkÿüÓÇçØ±®] 9%F#'&†„$%9;ûøT¯Îlc³­­Û·_±bÆÔÔÞ½GŒèÐA¡°µõò4háÂõë™3°ÙÅgápŒÙl¥R*U*)J*%cc¡ÐÈHýÇÈÈÎŽÇ“ÉîÝ“J•J‚(Ï1¥+mÌ*Uaa||NŽRÉ$ÖKÞ‘ò\×С¦¦×®8pôè›7ÌÝæó9ï½ršWÍмjšV*32ºt=Úϯyssó’G*¯_øõzÿÞ2è™c8[Û¦Oï×ïܹ¥KÿøcþüG,,$’ŽçÏ_¼¸fMuñ–ÒîAgg×¾}ëÖOžäæŠDññ^^:XY=šœœ—×½ûÍ›yy-[ví*ïÜùáW‡$Y,‡ÅzÿïËeýÔ­X±aÔ)›7oß~ìØÊ•#FlÞ¿eË:½Ǿ¹<5õêÕàà  ¿ÿNH01iÒ¤jU6;'çåËçÏ æÏ_¹ò?6l×®M“S§ö쩨q•¢¤Ò„„óçµµíÒeôè/5³ŠÅ26®ZµM›öíÝݵ?JKQ¹¹7oΟÿçŸoÞüþûš5V©¢]Õ[¥*(¸ÿܹ“'¯]#IoïéÓ{÷vsÓ÷ƒ¯ÁаfÍÉ“ص«]»Ö­‡Ý·oÆŸ;våÊU«üüêÕ+­ ‡#vë¶woppóæ!—gf>{ýö­D¢TJ$Áfóx,›miÙ¼ù°aÆuìX­GåùeF[qoC† ¤Nñ(•éé—.ee?ÿîÝæÍ—.MK$/_ZX ܧÏÏ?SÔƒ»wß¾mdÔ²¥º'’40°±©V­|ç•Ë âã%CÃML8¥üwÈÆëÔ)­­™YqA>¿^½yóFŒ`± ”ÊŒŒ˜OÏ™3OŸîØÑÖ–éÕÀ@,NH(,d~­âñ¢OŸ9s~ÿýó_]¥’ Øl#£âÿ q8!—‹D Ei¿°Ñ´RYX¨yuJø|‡ÏRú´÷ò×{’ùüÈö9w*³OL@«TÙÙ—. …C‡NêããèÈå*¯^mÛöä A¨G Tªüü÷Ûÿ]’Å26¶·÷ð°±Y° 00)ióæaʤ“H’’΋wtìÙÓÍM] J¥‰’“ssëÔñõý÷ß+Wš5 ðó X²dõêÚµ ¢ä,¥R*MI)*b±ÌÍ«T15årŒB"ÉÈJU*‚03c³•Ê¢¢´4…ÂÀÀÁIG–ç˜Ò”>f’äñ¬¬ (êý”M«ÃkÙ×õìIÆÇ{{:ÄÜ툈C‡NŸ.Ù×û£Ñ¼jK¥rrŠ‹Ë˓ɚ777W§é˜t-—[ž×«l¥Pä䤧K$uëŽ;kÖüù¿übeUžûÃ04trêÞ=<üþý˜3³ºukÕjÕÊÔÔÔô֭Çcb\\Þ¼iÖ¬ys;;/<üÓ^ÿÔ1÷ñâƒGŽœ7/'çéSoï¾}W¯îÔiýúŽ?éòÑx<{ûÖ­ûöíÓ'+ëÙ3 ‹>}<=MLhZ"yþüÀG hºqc6ûë~ îcдDòâűc6Ü¿_¯Þ¶me}PÿÓ•ök[AA\Ü•+……uëjg§ëa–Í63kÔ¨G~ý /^²„¦{÷Þ¼Ëû}¯8 qãÿ½zõС£GçÏŸ:uݺ?þXºÔÏïÂ…AƒJkÁ<gd\¿¾eË… ,V:ÕªU­jjÊf3ÿ=cŽa±¸\V¹>1ôaÌ—Å(ª¨(#£gÏ1c&NlÕÊ¢äÑrù›7 YYeý óChZ©‹)Š$ KO‚=Û¬Yq\–Ë_½Úµ«gÏ!CnÞ,>‡cbÂã1 Ÿ%KæÌñ÷ß´I|&‚`³)J$R(¾|„âpB¥’JU*¦o’T* ‚ÇãóKeH’Ã15Õ<ž¦U*‰D×ñÚm5ÏHÓ!‘hž±ìñ$MêÙáGPüŽS©D¢¸¸S§JîמiG’ê¢RYX˜­Ri¯Ìòqÿm{?²1±¨¨ˆÍvpðó›å¼eÇ"&•ãÆÁƒš[;wnÑ¢ä k¢˜X´råÓ§uëÞ¼Y<&’äpŒ¿F,"‚àñöî½páÂõ}ËÉùçŸÿU©˜×ˆÍvpèÞ}éÒ={ºwWï}ø00ÐȨ´×àëFf/ÓsFf/ÓCyÎþ5îTÌóÒ°aË–<¨Rýþ{ëÖÌóó;¨öñšñAó‰…‰ŒÿÕž fbâìlbÂf+•‰ú§ôC´ò´Ï«£˜'%ggsó6m>õ~?)•¶×̬iÓ£G/\8x°üOJL\š3'$¤øÏôޱñ×xRú´÷ò×{’ùüÈöåî T.å|{¿"Ùl ‹¦M÷î>|àÀY³–. 8räÊŠZ±bÙ²ýûŸ=36îÙsÏž£GGŒ4È×wìØ9sfÍš;wûöK—23ÿûïôé3gRS%‰$;[ 2däÈüü?ÿìß¿eËÎýý‰IHضmÑ¢ÔÔñãÿü³iSsóâÿ¨Tééÿþ»p¡¯ïÁƒAA—/'$Ðtóæ£G¯Y3>óaÁ3gæÏŸ5+ `Û¶íÛ.ܶ-/oÚ´ÐУGýU `±öì9yrÒ¤W¯Ö¬™6mõêM›¶m[´(0°fÍ+BBV¬¨]ÛȈ >t ‡“™™š*çäÜ»wîÜß?^XHQºÆÌáØÙõé³gÏ‘#¾¾Ý»÷éãë;oÞ’%ëÖ<øï¿¯_—纆m׎ÃѼÛVV4ËÜí'O )JóªÿúkÆ… 5¯šÍ¶±éÖ-5uÁ‚îÝ6l̘Y³f̘3‡Çãp˜úø”õz>’"egß¾}útHˆB‘žyöìéÓ7nääˆD))YYEE"Q~~QQaáÕ«'zy5mZ¯^:íÚuîÞÛ{ܸ&MÔÛ =š1càÀ‘#Ïœ Œ¼v-)I*U(²²._Þ¶íÅ ©TsT11Ì’ŽUX½nÝÔ©š½R( J›Wµys` •ÕäÉC‡º¸0Bðó:tÞ¼kטãAlÙr÷n^E±X-ZL˜Ð¦Íë×åÿ˜4|KäòW¯öî9rÉ’7¸\ aÃÁƒçÎ1¢F õ¯ý,EÉd™™êN„R™’üÛo'=êç7fLïÞs¹ïÞ‰D …JUÚŸöŠ1½éޯݶôÞx<‡.]–-Û³çÑ#õò?*Unîýû4ÍãÙÙuèЧMB‚ú#Ý¡PdeEGߺU|õ©©!!kÖìÚUÚ ‚úõù|‰$&&/Oûƒ4Íüjð¡ñ2‰çñãÛ¶íÑ#8¸mÛ=„BG,~òdӦŋ?‰$>¿A ø³̨>,,ü¼ù,“&5h•uèÐÍ›™™*s‡4˜1£}{õŸŸäò®]ûíС”…‚ 8{û.]4ÏʺqcïÞâãu_+ÓVóŒL[Í3–=ž=;T$] ?§²!—Ëã•f­æ;ŽÍæóÝÝ ¸t‰ùP¶î…êÔ-x<{ûN  KÆ„Į̀¨Û·ËjYÖ¦g‡.]† qtLLÔŒEׯoܸ~½f,Z¼xÇŽ{÷˜ó2±H½†Gq,Òõ®/;•ÿžkÆ¢S§®\Ù¾]3ÉåyyOŸjÆ"flŸ‹”ÊÔÔãÇ/]ÊÊbRºryZZxøîÝ¿übcÃf3{‡ óö>\s¯TÚ¹3SŒN.õjÛ¶ž=™xõµ£fÿš{™ÊsöϹWP6&æ|ٞʋ4Ÿ—˜z»šÏKlviÏKšñybÑŒÌ A(•"ÑË—YY2ónNN¾xqûö´´:u~ÿÝÇÇÉéý±•7:iž—‰Nšçe¢—JFEÍ(Sv(~RÒuß>öI‰‰KšOJL\*ù¤ôá˜Yåy/kFæIéË>É|Ùç¨O»ð¥èŠK¨ Ÿ¯\3 ™¿w™›óxÅb³‚óç/]*¹Óˆšÿ23ëÓ'0ðàAõ‹-_þË/Æ/LG={ž>=i’æ1¡¡[¶¼ßŽÍ67÷ò7nãÆ£GµÇyã—ëèØ³çòåkÖŒéêªýq|‚àr…Bo½u]±9s&*êîÝ’[gÎ,mÌÁÌ ¯R¥OŸ³gƒƒ‹+ë½zµ};3Ç®ìë"ˆ&MN:~îÜâ- Θ¡þ¾°ðβ¯š1wîáÃÿüSú>õK½V®üå—aÃV®ÔÜæã3ujÛ¶>>S§2Ë6>]º4k&°ÙÁÁÁÁ·ogg‹Å©©§O?_­š“Ó… +V\¿.—;9õ¾}{@ÀâÅwïž?玽ý–-cÆH$Uª´hak[ü+&3*’ôõ5ªASÓOÕÒ¬Ù‚sæDE-]ºzõ–-‰‰ÖÖS¦,\øÇê9¥21ñƬ,™løp>_ ¨WïâÅ3˜ã³³ãã==—.íÖ9^©ÌË»w/,ìíÛ‚‚ŒŒ¢¢Ã‡ÿúËÔÔË«{÷þý;tpqÑ<ãæÍáé9eÊ¢E?ÿÌœñÃã)ûì oÌ/QL5ÃÏÿ…ŠÇãñJ›ßªIó÷ï¿R©Jõà GryaáÁƒ÷ïs¹&œ9£Ž—/§§Ëå-ZÄÍ›L«§OmljÕªZuàÀ_8pãÆÙ³;uêÓgÌOϺukÖ¬Q£JGÇôôÐÐË—™c˜Þ5cÑõëÁÁÁÁ5kZ[ÇĔٸ\GǾ}fÍòñ2ä÷ß™XT·nÿþ3f´lÉãYX0±(1qæÌyó¦N]¼¸K&ñùlvJŠf,Òõ®×ŒE#Gº¸XX(Åw&;[$JI¹{7'G©dbQQÑ›7‘‘š±ˆÇëÓ§CÍXtöì¾}{öܺuâÄß3±H,NJºsÇÖÖÅeäHõ™Uª¼¼¤$‰ÄÆæsb‡ccÓ¾ýÑ£S¦,[_»6‡“––•Õ«—¿?³ßƦ}û ºwŒÜ¹sëÖµk™½K–Ìœ©þœ¦……‡‡ƒƒRyâÄÁb þu£@Àô°eË–-kÖ0{™þ ‚ÅârË>;T¤Š‰EšÏKsæ,Zt÷®ƒƒL–ŸÏ>Uª0OJ|¾æËŽÅOJêù¸Ì(SS/_fâRhèÉ“gÎ0OJžž"ÑÕ«¡¡ÅOJæç+NNwî,]ÊD§ß~Û·oÏ•J$z÷ŽyRÚ°añâ*U$’*UFV?)I¥Š™åÃb©ßéºßËÅ‘‡yRúÜØòµŸ£@ß4Ÿ”ô=ø~¹¹ÙÙiiÚ;¢¢nߎŒ¬ZµfÍ Šwïþú+9¹zõ jÔ¨¼‰›qãZ·îÔÉËëàÁ°°²S±•ºh‰•Õĉ•,Hñq îÜÙ·/'§A}]µR™’r옯ï€AAƒ:uêT·nB!‹%ß¿?wî°aK— …!!¡¡Ó¦UüØ>_BÂÇÍš5oîí÷õÓÑ ErrHȳg>>žžÚ¼‹cbfÎ7֮=rdÆÒ[©T11—/‡…={ÆbU¯îä”’ò×_[·ÆÇïÛwäÈÂ…yyýý÷_;öÏ?W®¤§ÛØôî=a‚ŸßàÁNN—/ÇĘšöîݤIÙ?™bqL̬Y“&<9xð–-K–4hÀçë!A„JuàÀž=dzٖ–öǫ̈ø|¡Ck×ÎÏ 8qÖ¬Gvï>rDýË\éwC*]±âéSŠš;·^=æ11?ÿñãsçþúëèÑ‹¯_ÍÈèÑcÉ’ýûGŽlÞÜÒ’Ë‹Ÿ>}ü˜Åª_¿A>Ÿü,‹Åb©+o2[˜" %`±4—jc±X,¦¦I2G2­JnÑlõþ1š½«¿/n§y.•J©ÄrPóÁχ­¬ÆÓü@héhZ$zøpÙ²!C¶mkÔ(,lÏž’  JeFÆ’%OŸš˜,ZÔ ú]Y~ÌS‡››»»§'SñcG0jÔâÅ·nmذxñO?™™á(‹v¢GׯX*U^ÞÛ·µµP¨«·—/ããŸ>­^ÝÍ­ôjóß3Í¡ÿý÷û¥3´‰D.]ÊÄ¢={vìèÚU³ŒÏ—ÀÌ@üý÷ ºuÛ³çÔ©ŠEe“Hž>õ÷Ÿ<9(¨cǽ{—,ùé§/Û?|[t%µ#RåEC‡¶hѽ{‹Gÿþ»«ëçV\ÿ\Léž%KÞ/Q:õ“’DR¯ÞÂ…_:.Aœ=;fLß¾÷ïOœxðàç=)5iÒ©ÓÇž]3òàI ÊVþ¸Ä(Ot‚™……@ FD„‡ê ;ææVVEEEEb1W­šŸ_eN=3víºzõÂ…ÊŸzfp¹®®Ÿ›zf˜™yyé÷ª9‡Áƒ½v-4´[7¡ù{3Iš˜4j´jÕ·›zÖ']Šgöéz`Q·P©22"#çÌY¶ìᅦ ëÛ÷×_ëÕãpÒÓÅb…‚¢Šää¿ÿÞ´ééÓ:u&LXµjË–à`ÿ*UnÞܽûäÉäd3³-vì zñ‚YÚ (ª  &Fý‘Üb<ž¹¹»»±±L–À,6QÖ™Qñùݺõï_rTJ%Ms¹66?ÿܹ³•ÕÛ·ÅBS*srbbŠ«ñA%&NšT·nÉG·Ÿ>­SgâÄ5k¶o?s&<<8øÆ;“’ŠŠ˜RññøX|Ûäò¬¬«WCB‚ƒoÜ8}:$äòåÌ̯yÏç7h°pá×I=38[ÛÅ‹?å*—Ëåòx¥R©k•~,&•ƒ_¨ <´×v×>†¦)Š¢˜?7–Ý›™™©iiËv}ß4cQv¶H”šúáXDš±èk¤x˜XÔ½û§¤žš±ˆ¦Uª/ý`cãzõüý‘z†v,Ò‘*w,’Ë33™ÏUü÷ß©SÁÁ/>Î|bS?£Éʺz•‰Kû¤ôuâA—>ÿIéÓâ’fäÁ“”M;}þ“Cg€µ³sppqILLHˆuv¶°øÒÿmLÇ‹ÿùçÑ£¸8++…¢C‡–-›4±°`ÊVäåݹqåJZšD’—wçNNŽRÙ¨M?|xñâÅ‹ÅÅ ..NN]ºxy٦͕+þ¹}{` ››]•*Uªp8¿xÁf÷ï_µê«W‡­^½eKÍšvvJ¥DÒ±ãԩÆU«Æçóùõë?{¶bÅÔ©³fÙÙ99YY™›/X ½F3‡ciÙ¸±ƒCQÑÉ“ÉÉRiß¾ÖÖJåíÛ—.]½š–&‘äç߸‘œ,“ýü³££›mmíå:bÄâű±^^õê1£Šˆ¸råüy ‹ñã»téÖmÎ_ßQ£¦N]¶¬fÍ5\\ªTqp°µÍÎŽˆˆŠrrêÒÅÓ³  2òÅ —Ñ£Kކ¹¢U«6mªU«V-;;.·sç3†­^ÝЦE¢·o?¶¶vtìÛW߯3À§ãñ¬­[·8pƌ֭Ô÷h¾ccSS™L&“É>ôb€/£ì–*•J¥LfhÈå~(Áã| S¾¬’±¨¸0Ü·N3ñxR)›Ífã×ð5•çCîNeŽE<žÍ•+/ǧOLtº{÷Ñ£Ö­õ=–/‰‰N¥P .AEùROJ %8¯_'%=n``hhbbhheåêÊ|<\ßè8_‚ã[BÓI\ÜÞ½üèî¾}û’%-[êk,êâ%Ëi°X$IQ¹¹—.-Z´tiûö+WnÞü~ ”àз‚‚Ü\æÏÞ®®žž¿þªïÁN,ÎËËȰµµ°01áp8Ý¿êK¥‰HdddlÌ”¡‚o™f,rrrwoÞœÃùp]]€¯‡¦iš¢ø|’”J‹~dLt’Ë933Ä%Ð/&.I$ùùYYåyR‚™f Ž$  ::*ê¿ÿ€®üt' u'—‘€¨| òò”J¥R¡`>ܧïÁ‚‰Û—Ëåòù¦¦úè“B¡PÈå"Qaa~>bT$ÍXdhhd„ä¨1q©¨H*•Hð¤‰N|¾™™…┇fSå 1553Câô©¸ji)ØØè{,¡ŽKÌW}àã ˜|˜ ðjÔpwoÐ@ߣø6`4|H@ÀWQ®Ìzô‰‰ññOŸ2ë®ê{؇$9ŠÕ€ÞÈå2YQM3ÿ¢iõwA’¥mUÓÞR¼­øø÷¢éâÿ©ÏB’4]ÚÔ=1{H²<½Ñ4I–l­}ôûý—~>挥_mÙ×Wz¿Åß«ûÕ¾êÒïÄû}¿.e½:¥°¬û¬î»¬;¨«W]#Õ}W™×S×xJßWÖ]}¿I꺟ꖺî³öÏTiW¨y5e]CÙ}—Üö~¯%[•~Åï¿ZÚc)îM×ÝcÎ]üj•uÊz¿~øz?tÝ#Ôu¾’‘äCWPžHVòæjµü” }õê3hÞŸÒ^õ²îRéqðýén­ûU,ßñ $Yµ÷ÄûOGêíêÿi©¹O¦K?GñqÌÚOÚ½©£œæÓ@Yÿ_|…šq³dÄ/mŒ¥µ×¾Ê’#Ô|VÑuGKn/û®ªïJÉëzÿúK;Ïûã¥iõ–âÿk_…æ½×}J{º-펖u'Þÿ Ѿ^]?]ï÷¦û>—Þ£®×óC??¥½b%{/ûjË«îWQóIX{OÉg˜½sJÛÎ<•i¶R¿Êþ9Óýn×ÜöþŠ®^Þÿ)Õ¾å¹k¡v/ºß¯e_¯öÙÞ¿^]çTß]]gQ¿®ï÷SÖ~x¬¥ßÏ÷cmyÞ«åù)(GJ*ºîbÙw¯ôÈ]öÏÁ‡Ïö¾¤ÕRS““_½ÊÎÎÊJK«RÅÕµfM’d³Y˜7 ?„„„„ØX}~\<ž¡¡¾Gß³K* è‚‚ÜÜì쬬ôôzõê×oÞ\ß7>Eååݹ“˜hhèåU£R˜PÑtÎeNLŒ‰qttrruÕ÷ ~$*Unîµk‹ݽ›Ÿ¯Riî¹woåÊ1cvïNJ’ÉÊÓ‹eaÔ3èÎÐL­g‹Íf³õ=H€‡Löúõ¡CË—_¿îçwáBÉw_Æ&LŸnkËáp¹Ì–øø+6l8w.?ßÕµA¡ðåK«]»€€±cŸ>=~|ïÞŒŒ¦LéÑÃʪ°ðÊ•={þü33Óã]»¼¼»wïß‹{ú4:šÅêÙsÇŽåË{õrpàñô}à{jΕˆR™›ûàAdd~¾µµvÅÇܼví*ULLÔuØÿøcÙ²ˆ[Û©S-š9ÓÏoúôçÏݺõùs¹ÜÒÒË«[·FÞ¾•J)Š ¸\ M›¡C Ú·ïΛ~ý¦N]´( `ÿþàà+W֯߱#>^*Õ÷€ï‰žÐ*UAAll›6õêÕ©ãîÞ´©¯ïáÃoÞÈåÌ^¹<=ýòåcÇÖ­=zäÈÃÂbb K%€¯M,‹ ÙìâY·Å”ÊÜÜÛ·÷ìÙ¶mÇŽÍ›ýý'Ož:uãÆÇE"•*+ëÂ…1czô˜7ïɉDßWñ­`±ØlCCG¥z?LÓåãÓ¸qÛ¶K–DEåæ2ïƒvï7ÎÌììÙ;6oÞµ+(ˆÍ¦i±X©dÖ€årMLJöC’Ñ­[Ÿ> XX¨çWs8\ž˜()•ú¾ð=á|~ŸƒÍ63«SÇÉÉÒÒÅ¥Y3‡—/7nœ:uÿþaÃBBÆãñ„Â_4hÔ(.×Ù™$[´¨[×Ôô˯Äe‘H @(T©”J…‚ÙNÓùùQQ‹-Xðï¿[¶DDœ<©Tfd\º´vmLŒTÊf{zvê´gÏ™3:éû ¾%,–¹y½z]ºØØde1wZö'IËÐË50°¶¶²26f’ÇS¦L™ةӉAAƒ;9q¹ááû÷Ÿ>­ïë ½' Õ¸\¡°gÏU«fÌP(†Ÿ?_$¢éqãø|’$’d³ H’$ ‚¦¥Ò„„°°Í›OŸ~÷ÎÐ0//:úÖ­ìì¦MçÏ4ˆÍ>|xýúS§’“»wŸ;wÀ€øø“'½yóáúuGZºÔÙùÅ‹­[¯\¹y3+«víÉ“·mÛ´ià@¹üÝ» 6oÞº5:Z*-*JMe±:tX°`æÌ.]ìì~䪸"‘XœŸÏfs8A/~§PäçÇÆ&&ªSÒŽ•U‹#G6lÈfß¹säÈúõgÎ<|(5oþÇsçvïnbòð¡¯o·nË—››wêÔ¾½­í“'G¾zÕ¬Ù¦MçÎ<|¸fͪUl¶‹‹¹¹HôâE\ÜìÙ7nÝú#ÝÏÙ¹OŸ¹s½½ÏœyýZ.÷ñ©R…ÇcþìBÓ4]òèÜ\™L©”HT*Š"‚ ¨¼<¹\¥*,T(hš 8œ÷ÿ`CÓøT”JTšËµ¶nß~Æÿþ»|ù—_Zµš1ãÂ…¬,¥’)PŒÃ±²jÜxøð3ÆŽ<¸OŸví¬¬>_"ÉÏ/*ªZµS§U«vî]·nÚ´C‡^¾d¶«TÙÙ‘‘Ó¦MŸ~℟ߘ1}úüòKõê|¾z1µOÁf;:š˜PT^^ll~¾z DŠ’Ësr¤ÒïgY6íDó礞Ь¬Û·##ÓÒär.W hØpذ%KfÎtwW©Ô¯—6¥2#ãâÅE‹V­zò¤sg¡Ã!¥R,ÎÍe±ìí5ï?ã{ºÿåQ­ZµjnnåÿªïñÀ§°³ëÝ{×®ÿý矀€úõù|¦ÛС'OFF^ºtíÚçÏ'&^¿~êÔÚµ& <~ddNNãÆ½z ж­ §N$(ž\(ª°066!!3óåË]»öì9~\,:Ôǧm[gçþý÷ï¿q£}ûÿþ[¸°o_‚ ˆÙl ‹¦MGêÐaÿþI“–,Ù¸±^=ggÏÆ†¦ãâ }÷N$ÊξvíÔ©ß~ëß߯æôéàà7²³E¢´´¬¬¼¼øøÛ·Ïž½};;[,NMÍÉ17ïÒåÈ‘“'•ÊåËçÌéÝ{Ò$¡°aúuû÷Ÿ1cìØŸ~Ò÷‹ôe}lÒÙÊÊÆÆÎN.—ɤRÍíl¶¡¡¹ùÛ·Ë—Ož¼m›³sݺÙÙII99ݺíÜyøðµkaaÉÉbqnnTÔ•+qqYY{ötï>}ú½{ŽŽýû¾gO@ÀâÅwïž?玽ý–-¡¡\îòå½{wíJ..U« …VV›6mذl™¾ïYÅILLLŒ×÷( "°X\®¹9Çb1ŸÐ44d>¥I’<ž½ýСÎÎ\îÞ½oÞ¤¥……Í;wîڵ׮͞]ò³ž•™››–¦½#*êöíÈH77wwOOss kk}ô#33--9ÙÉ©J77™L&“Hô=¢ŠõßÍš5oîí­ï±ÀH¥R*´Jè?ŠÂÂ{÷†ýõW_߇­¬Æ ;{Öϯzu þüÓÛ»~ýÇ߾U(Øl+«víââ®^:uÆîÝ}|¶oOJ’Ë÷ïÿçŸ#GÞ¾=|x׮Çϟ¿{W&«QÃÇgòä+fÍêÙÓÅÅÀ@½œuQÑ«W‡8àï¿oßÕ«$©Tæå°ÙÖÖ+Wž:uþ|—.ÎÎê5H—,3æÈ‘þyò$= 8fÌX¾|îÜÞ½x<‚È̼ysß¾€€;BBþûïÅ‹ÂBŠ27wvnÞ¼{÷#fÎ7®m[GÇ’«šÀÁÂB  #"ÂÃ+Q ¨œŒMMÍÌ”J• )0€ŠÍ,Éά’SµjûöÚÇ,ZäçwèЫWÖÖMš´mÛ¼¹½ý›7wï?îï?}zHHJ ó/—§¤?>nÜ A“'¯[wò¤ŸßÉ“/FF†„L›æâ"•&'/\8{ö?ÿde©TÁ>üóÏ£GoÜHJâpÚµû믋/]Љ ?}úÝ;™Œ97E 4vl@@HÈÇ1hÐÁƒ.T­š“óðáùó[·NŸ>lØŠèû.€þ¡v|€‰‰‰‰©)æ`|=2YRÒÎ:Õ«·kI²Ù<ÞO?uë6aÂÆcÆüö[çÎ5kš˜„\ž˜¨ÙjåÊ#G6nôò23#‚˽½wí ïÖM,~õêÂ…ä䢢AƒMMüë¯ððfÍbcß¾-*zñâĉ5k‚‚‚‚Þ½S(B©ÌÎNL,(P©ÂƆ¦³³Õ+±¤¦†„ôïß¼ù•+ëן:uáBãÆ¦¦A"Ñãǯ_ËåÌ:>‰‰›7÷èѸqñÈh:#ãæÍóç ‚ 5Ò÷Ý}*WZ.—ËÕç€/ËÀ jÕ’%8ʃ$Ë[ÞB©ÌÏþüêÕ  ;ÊÍmÞ|áÂߟ1#&&:z„'OJŽ¥zõ ÌÌØìG T*š–Ësr¦OïׯÿÛ··n=ztÉ’FÔ)jÏÅeÔ¨Ó§ÏŸŸ1ÃÍÍÀ@ßw*›r& ß_€¾rù›7Ž=iÒš5±±ɉ÷ï8а!Mß»·iÇgfîßñâ‘#‡ïß¿{÷Áƒ—.ÅNjů_Ÿ=»aÿÿN˜p䈧's´R)%&ææÊåAê´J%“)•,–‡ƒÐ?¶r% ãâbbîß×÷Pôƒ$9Î7Y¬†¢òòîÜIL44ôòªQÃÐPßã)m„"Qll»v]»®[·zõ¹sûö5mÊ|¨àG RÉåEAÓÌ÷LI ]hš¢Tªâ£T*¦uñ~Í)•Ì^’ärù|‹IÏŸ¿xñ† ÞÞÎÕ«11b1IÊåEEAAË—¯]Ëç÷éÓ¯_­ZK–,]³mÛ¦MëÖ93hPxxíÚ¿üâïïääíݸ±•Ÿ_½zãÆfflvttNΕ+¾¾íÚ 2eJïÞ66çÎ>˜øóÏÛ·;6o^£F|¾¾ï3èS¹ÒjnnMštê¤ï¡èGBÂÇ}V…bùòyóV®äñìì„B>ŸÍ–Én܈‰Q(Æ[¶lêÔV­6»ì>hZ¡ÈΖJËûNÝ(J,^ºôèÑ'O&M4¨ysKË/“’g±øü:u8™L&+ùËA„J•™>bÄØ±ÏŸ::mZi}(•997o;¶}{ýúC‡.X`bÂÂâªPÉeg_½ºjÕ¢EÛ·ÿóÏãÇ"AÈåbñÉ“~~£G¿~ݸq§N³f-[6dˆ³³f«U«&Oþã  äduù‹¹s§N ؽ{óf_ߤ¤åËçÎU+=y2þĉóç_¾|äÈòå>>6,[–”4oÞúõÇ?xðè‘Dâç·xñæÍ«Výþ{hhnnnnRÒÛ·99N×® ˆÅK–LšÔ¡Ã¡C\.‡#—wë6eʦMsæŒ]½:3ÏyÏžýû,X¿þèÑ‹££Ÿ< ŒŽîÐaРµk÷î9©g ‚ ss³³ÓÒ´wDEݾéææîîéI|¾ƒCÅ hÅŠðð’·çñØl‚øãŽñÑ-Ð&ݬYóæÞÞq>•*7÷Úµ%Kâã==/nÖÌÜ\h¾woåÊ1c<8pëÖ±c«V­˜ {4-?xð矉§çâÅ66J{¼Ž›72äÏ?ÿý÷èQ//õ hŠÊÎþ矱cGŽŒŽž93,lîÜZµÊºkYYK–<~ld´hQÆ&&ßS´À ðm±°„ˆˆððÀÀJ:S°~}''…‚ùZ»¶½½BqþüãÇryÙ_õ=êO§Ree…‡OÚ»÷ìÙÅ[iZ,Ž‹ Ò÷è â(•ii§OÿöÛ¬Yqqš©gFÓ¦sçîÙ£™zîÙ³Q£¶mýý?‹™?Ü´ióÓOcÇFG‹DAÓ99‘‘Û¶%%/"ZPpçNçÎëÖݹ“—§R©ÏÚ´é/¿,\£]ë]&{ùrÇŽùó=*™zÎË»~½ÿÅ‹wï>|øØ±  ¿ÿŽ‹‰ÊAPTnnß¾¼y£ù~‹ÕsxÔh:?ÿöí… ·nµ³[ºtÊ”Zµ˜;Ó§ÏÏ?páBv6E)))çÎùû_¹’MQl¶µõýû ìÜ™€%S*‹/ð1ú&MêÔ©Qƒù>**66!áÓú6lÛ¶W¯$™L¥ŠŠŠ‹+»úYiŽ¿vÃ9|xâDWׯxϾ6ÛÚºK—CC»tQoS*32._8y²[·={úõÓ÷¡"PTQQf¦LFÓ\®æv¹<-íòåÐÐ+W23 ‚˵´lܸsgoïÂÂŽ14tt41a–‹‘H ±X©¤i¦ÚŸ‰IÉ3$AtîìãÓ ……:¡ÌáXZÊd‰‰"Ñû‰`‚P( ^¼J߯ Ífs¹-Z þÛoƯÓÞ¼yY㡨¼¼û÷û÷ïØ±ukͲ &&ïô‰ž??uêÝ»Zµ† «VÍØ˜ HR,æñŒŒd²¸¸5küýwîlÑbÆñãçÏ I’)ºah(‘ÄÇ2³…±;€þU¢¥Õ¸\‡Ë]¼¸W¯ZµX¬O©âº~ý™3‰‰º÷+©©Ã†õí;{ö AK—úøDE-\¸råœ9aawîdrrxø®]Û·GE¥¤d»v‹ûùµkÇãùúvï>~|÷îÓ¦õí+?|øàAPÐÕ«éé={.X0vìÏ? 4‘ù×_«WŸ>Ÿïì\³fNNn®…ÅÈ‘3gìîÎç³XII!!K—îÝûô©‰Iµj¶¶•Ÿß´iÿþ­ZÅÅ8qá£G…… ,_>~|xøŽ;w>xðúõ›7ûöEF0lXÛ¶VV\.AìØ1c†Ÿs@¡xûö—_~ÿ}åJwwƒôôðð€€Å‹ ¢K—.]˜kŒmÕjƬ¬Ã‡'Ovq7nóæõëÇŒ©Woûö^½ºv}ó¦S§ùó—.?¾sg›’‰O¨Xމ‰³³‰ Ehnçñ„ÂÖ­OœX»¶]»úõwí îÛר˜Å*(ˆ½vmÇŽC‡Þ¾e³­­«T15ýpuf6ûý$©«dM+b±JUÚ~‡ÅzÿEééºÇ£TÄÇ;:ZZ~¨˜I||PPbbÕªýúU¯Î¤ÐIÒÆ¦}ûM›¶nMM]½zóæcǼ¼~ýõÎß~[²$ `Ú´¶m­­Ùl•J$R(>þWðu|̬gæ+3ZsNtù9; …ææ·o¿zEÓQQoßÄÇ~ezÐ}.×ÞÞØ877-íÝ;>¿K—E‹ÂÂîÜa±ÒÓCBFêßõêŒ ÀÂÂÔÔÎŽÇ‹ŒüóϱcOJO7335•H D¢š5{õ=zöìU«ÎŸß»·S§›7gÍòõ NNV(ÆŒé×oËgçY³6l˜3gêÔI“–,0àٳٳ}|æÏ‹“J bÍšuë‚‚bcóó ›6í×oòä œ›4éÑã—_Þ¾½sçî]‚àrºt1¢GG`„‘#Õ©g•*3óÌͳŒ;sæêÕê³(•öö]ºLœ8j”æ5?þÇ?ÿ¼s§¯¯¥åÛ·7oææ*•,–¹yvö€GnÙ2y2RÏ•‹ecÓ¹óÞ½ë×ׯüúµ\®N¦’$‹e`ÀáX[[Y3³—‡?þða3³¡C'Ož2eܸ>}D"¹\¥*,dÒ°4ý~âX{KÙx<+« ø|‰¤<ý”=ÏÁ¡K—… ·l¹{7?_½è \ž™ù~%Kòó§Nõ÷oÚÔÌŒ9\ž”tèÐüùwï6k¶xñ±c—.Ý¿¿gO­Zÿþ»lÙæÍ/^H¥!óù  Ÿ¿è"|_lôçâ0336ær IÒȈÇûøEĘ>tI²Xš37iº¨(#C&c³»t=Úϯysss‚7næLu›+WH’$5çr8ÆÆÎÎÆÆl¶R)•*•%•„±±PhdT\ØÀÈÈÎŽÇ“ÉîÝ“J•J‚X±bÆ)S6oÞ¾ýر•+GŒØ¼9>~Ë–7ÆoÔ¨|×HQIJŠPhiY²:0'“%'3gQŸýýÙ©..½{÷ìiiyæÌÉ“11ùù­[·háííà€ÄsåÂbYX´l¹hѽ{cÆLzû¶³sõêNNÖÖ|¾…E›6=z4nla¡žU>-[ÄYY……©©§O_ºTµêàÁÞÞ¶¶L—dzµmÕÊÕU*e~šHR.Ï̼t)884ôÚµŒŒøø5ú÷÷ñéСjU##ÝãY¶ìÀ++ÿáÃþùÑ£#ºwïÕËÅ¥~ýzõjÕâóUªÔÔ°0õÙ[¶´´ìÛ×ÓÓܼøÇf[Zzx¸»?¾jÕ´ióæ5lèì¬TŠDýú­Z5k–»»‘MK¥®®-[ …(¾PYT¢Ð&&<ž‘‘‹Åç~|šéác[±XÆÆNNÆÆ•›——'“5onnn`@Qryv¶LÆbYY1Gj¦s•J©4%¥¨ˆÅ27¯RÅÔ”Ë52"‰$#C*U©ÂÌŒÍV*‹ŠÒÒ CC‡ rsëÔñõ]¼øàÁ‘#çÍËÉyúÔÛ»oßÕ«Û¶ ìÛ·|£52rpÐ< ³]ó,¡]É— ‚ÇsrêÑ£[7KË  ààÛ·¯]›?¿C‡âªÓP™ðx«VíÙ³}{ÙGýòËÂ…AA7n,\X¼íÏ?gÌÐu¼·÷ˆ+V¼_£mÛè蘘¶mKkA’¦¦õêÓ¼yF†RIB!gcãí=bÄʕڅ4Ê3ž† ƒ‚.]*ÙnÅŠ9s4ÿ}à@‡%ÓÈl¶…E³fS§nß~ôhiãT*32~þy̘zõLM¿Ökë $ ?'é¬ÉÒÒÌÌȨ°P¥b³‹ŠÞÿH~ù{ ‚(**m¿B‘™™’"egߺrêTÕª>>>>¿þêêÚ­Û®]Je@À¼yݻϚekÛ¨‘»{¿~³fùú6oδMN>sfþüY³òò~þ¹V­¬¬´4oÚ´ÐУG6´°`±Z¶ßÐÐÕµGFŠõëOœ¸sgÄ//KK[Û=^½š1ÃÏ9 SzÅŠ+j׿p23ÿûïÔ©ÐÐ[·23˜klÓÆÕÕȈ$¹Ü*UÞºu̘ † 9|X(ìÒ h(Iòù úûóùúIY8[[ÿ† õ=ޝ¡°°  //--%åõk‰D,.,T(ŠO‰‘Ÿ‚ËåryvìÈ‘ƒ¥R©ôã“È£F;~z´·wÌ‹Åb±Øl‹Å"µ°Xl6›]PPPPXxüø£GIÙgìÞÝËK ¸s'**''#CÿÉE’|óF&û”e¡"Ô©£Rݾ /Ú%80[tA|mˆ   ‘>_NNVVzº@`m-jï­D‹*JeÉ$°R©RQ‡Ãf³ÙLJ–I;³Ùl6“„V§¡™ãY´{ÓrãFf¦~¯Z$Ùlkk‚P©^¾T*‘€®¼ÊS âà1tA|mˆ   ‘*’ÞÐï—8Ë•J¥2''77'§    ?ßÌÌÔÔ̌٫RQ”JE4M<Çã …B¡:]vÁ’d³;uª__ xó&..++6V&c±FŽüå¡0**&¦ ÀÐP 04lÚÔÙÙÐ0))..-íâÅÔT‚˜<¹Cg猌ÄÄôôÓ§ŠŠ¼½ùÅÙÙÀ %%;ûâÅ„‘¨Q£zõ¬­)J"¡(SSïòåG²²ÜÝÝÝmlš4±²"ÉŒ ‚àñìí3332¢£)ÊÔ´J¥’Å‹¥Òèè¤$‰¤¨ÈÐÏoÙÒÍÍÐéÇ‹ ®\IO'¦7‚HI‰\\<<¬¬ìíÓÓSRöí{ñB.×ï«ùýâèù}ðmÒsbM")**ùÑr¹\.W*ù|>ŸÏgÒÊ&&ÆÆÆÆêý$I’L‰k•Š¢(ŠY ‘Ãáp8íÞÞ§P˜› ÆÆJ¥B!‘H¥4-³Ùl¶¡a~~^Þ•+ïÞÑôõëIIÖÖãÇ·jecceõæÍ›7‡½}«R `l¬PˆD‰L&=x”tòdzºJE’FFææFF‰B‘›«R„\.QTݺ$YTtûö“'YYõêµoog¯ —«Pp¹Réÿ‰DêÐãÆy{ ™™¯^åç3½Õ­[¯ž]ffFÆ«WLo¿þjh(•ÿûoNŽ~_ÁŸ_±ç“Ë“’¶oðÀÚzÂ//SS}_?À§Ñû èÒKp0ßREQ”R©T*•LÅgu)&=Íçóù…………bqyJp0}S³ÄœRIÓE4­T*•ê-4­TRMoOIIH‹U*//SSSS‚‹ïßÏÈ`’åÁáÐ4‹uÿ~llzz|¼öü왕•BñæÍóç……žžÛ·¯X1dAÐtQQB©Sk×^¼˜žnlüæMttl¬™ÙäÉ7ðòåÆ[·>~lbâæ&Òt^ÞÏ?;o^£F¦¦(8_J%H@«ÓÍ ¥R©¤(fFóëׯ^%%™šššš™)•J¥BaddlllL’A’Åå8hšÃár µ{ÓFÓ4Í,êŤqiº´-ÅÛ™ñˆD99ÙÙIIáäT§Ÿoh™•%1ó­U*™L. 9šŽ-N óx$Ir9IRÓ[É’$Eiž—ÙZTD,–PÈf«{#I6›Ãár)J©dzÓn?…"554têÔeË- ŒŒäpB*‰Y½ÚÇG$¢é!C ÓÓ/\˜={ƧOƒƒoÞ—ËáÔ¯ïâbd$‘ˆDyyÇŽ]»&‘Ô¯ïåed”›[ܳH”——‘ajÚ¬YÓ¦y{»¸ òÓOöör9MW¯îâbfÆœÅÍÍÀ@©”J™¶‰HÔªÕ/¿89uî\µª›­PÈå6œ;—–¦Ù[«Væær¹fo5j¸ºš™iöÖ«W§N®®l¶BÁŒJ{KQ›mj:ztçÎööVV*•\.‘¨TNïÞ;—<_5¿êûMú>¹<99,lÿþ¤$‡âêÔFFnnýúuí+‡cg×µëîÝ:Ô¯_³¦»{ýúSM3Û##'MjßžÙËlÿÐç ²Àc"è‚øÚ@"T$277;;-M{GTÔíÛ‘‘nnîîžž2—+|Ó¯[wáÂÛ·š[hZ"ÉÉÙ±câÄví˜*ÏLÁ ¦ô†B¡P( AA—.EE=~\X(°Ù\.§ï[ ß›ªTyýºY³æÍ½½+æŒryRÒŽX[ÿþ»f èׯ_½‹ííŒ.]8°gÏBBnß aöJ¥±± ¼|Yµê²eµk«T¯^%&Ò´“S•*rù³g§O¯^=eÊŸ^¿Þ¸qhèÅ‹+Wº¹™š²ÙryvöÓ§uï~èP``DÄÚµÅ5ס2P©”Ê’Õí1[tA|mˆ   ‘>_NNVVzº@`m-jïµ°„ˆˆððÀ@=—à`³I’ ŠŠ ua ¦´›Íáp8l6MÓ4I’¤º(ó=“˜ ŠˆˆŽ¾w/;›Ïçr 9Šúp €oM3uÈ5mÝ‘‘±l™¯o“&ýû»ºnܨTA0%8’’Î‹Ž®ReæL‚P©^½ºt) àÌ™fÍvîœ2ÅãG‘#ÛµÛ³'*ª¨( `ß¾gÏüü<—Ëb„“S»vH=À·¢ÒÍ€fª9çääææääç›™™šš™1{U*ŠR©˜ey<Ç …B;»âtYs Š””;51©VÍÖ–¢òó7îÞ½fÍ[·vïfú|ófß¾ÈȆ kÛÖÊJsfµR™›}âÄ_efz{OÚ©“•UAÁû÷ÿùgvvݺíÛççGEÝ¿ŸE’ݺíÜ9~ûöEEgÎüõ׉·nåæ^¾,—»¹uì8xð! =:s¦Ÿ_~¾³sÍšBñöí/¿üþûÊ•îî|~ùñðí‚!  âhCdmˆ P‘*]šÁçóù|>“V6116.ž7L’$IÓEQ*EQ³d!3'š d²²Ð\®ƒƒ££‰‰@àå5rä´i#Gºº(•éé!!£Fõï¿i“««OŸ>ŽŽ••uæÌŸŽëààáòßëÖ¥§ÿôÓ¸q­ZuíÚ­Ûðá ¸¸p8îîýûŸ9Ã$²K½ÉKËÆ{ôøå—}û²³)Š ¸\+«- Ÿ™7ýig¡é¢¢Œ ™ŒÍvtìÒeôh?¿qãfÎܼùüù[·Îž4ÈɉË]±bÆ)Sê×ÏÊ Y¹rĈvî¼~=;[=–OÇf3‹)S/¯X:Š’HRR„B##uê™ÁãÉdÉÉRéç*;f¶‚¾G•âhCdmˆ P‘*iš™Ñœ’’’’œ\ø?r¹\.“I$‰Xœ•••EÓ4ý©5Y,cc''ccŠÊÍ‹Ë˓ɘí%—gg3)ÝÜÜ:u|}/>x0"â߯\9uêäÉ%KV¯~ñB"©Ø;Ãb98ddH¥%çz+††œJ:§¾ÌV]@"hCd€ŠTéÐ$I’$É盘ðùõ뻺ººV­êæææV«–££ƒƒ““­­R©P¨Tùùùù·nÝ»]žþ{ôhÔH¡8vlâD?¿õëOœ¸s‡Í¶±éÖm×®ÀÀqãRS,èÞ}Ö¬3æÌ9pàþ}’äñ8‚ø÷ß… }}gÌX´hݺƒƒ‚._=zÍšùókÕ\]™>™Þrs ‚ ©4&æÜ¹ôt¥’ ŠììÛ·Ïœ9sæáÃÿþ‹‹‰d²ÌÌÿþ;}úôéÛ·OŸ ¹v-=]&S(ÒÓ##srD¢””ððS§Ž :}úöíÐÐS§._~õJ*e±lm{ôxõjÍšiÓV¯Þ´iÛ¶={Ö­›3gÅŠ+j×Fñ ø6P”H²ví¨Q÷îê{<ßÌV]@"hCd€ŠDææfg§¥iº};2ÒÍÍÝÝÓ“ ø|‡ŠPzzZZjj£FuêÔ¬Éß`Jm°Ùl6›­P( …DÃÓ§ÏžÅŹºÖ¬Y§Ž¾o)|o>ŒˆhÖ¬ysoï¯}.¹<5õÒ¥“'Ú·ïÑ#3³>}zöìß¿{÷–-K.lYq(J,މ9rdíZ‡Áƒýý--¿ä,{¹<)iûö¬­'Lðò25UoW©23ÃÃGŒ;öùóE‹ŽŸ6­F í÷¶R™“sóæ±cÛ·_¼H>>K– ^§Ž>îÒ×¥R)•̶*‡œœ¬¬ôtÀÚZ(ÔÞka!…áá•p4A›Íáp8\.—Ëå2å8H Lb:&&.îùs'§ªUÝÜz†ïgoïíÝ¿ÿþ-Zôí;t¨þRÏAÓbñ£GëÖÍ{ýzóæ_6õ\¬´šçyy„„äç7kÖ¥‹““®÷6‡#üüó!ãÇ{y]»6oÞ§Ö€¯¥Ò% ÍÍ--‚{÷=нwïñãgÏîÞ}ô(6–ùúàAll||B»wii5kÖ«× ³¡¾G 𥕵¥B‘šzâÄ AmÛ/:)•ÆÄ¬^ݹ³HDÓ¡T¦¥>ݧÏÏ? n“’rÿ•+ÙÙÌö ²³Õ•Ó™í%ë¨Ëd/_îØ1þ£G½z-\ض­z{^Þõë6nܬÙáÃÇŽýýw\œH$—§¥ûû?~,3‰à¢¢¸¸åË££E"‚ ŠÊͽvmúôŽåòâsÈå¹¹oÞh_áÂ…[·ÚÙ-]:eJ­Z††AºÇÌf[[·k·pa ê îP9”kF£L&“UÌ€d2™L&c³Ùl’dÒXºqYYêâ!EÓ4mnnaaiY1ãЕ*7÷Þ½'’’,,Ôée‚02ªV­[·Æ‹ŠÂÝÍæñŒŒd²¸¸³gïÝ{ó¦M›† »t™?_($É#d²¸¸5küýwîT(†ïÖmþüV­œY%þ ¥P¼x!•dbR< ›ÍærY,ÇÒrذÁƒûõSo§éîÝg϶µåñB.ÏÌŒŠzûV©tt$ŠÊË»çÎÛ·[µ*>giéìüþÒô»wµjõéS­š±qñõ•5f.—Ïwu-,d UàÓ•E¥›]X˜ŸŸ—gooeeiéèhmmiéädc#¸¸…ÖÖUªØÙÙØT©bookëêjook[µª££½½½½@`n®ï±T•J"II‘H¢8=KÁfÙÙ‰ÅJ%A°Ù66íÛoÚ´u«Ÿß‚C†tèàåõë¯#FlØpõjv6³½I“¬¬à`f/³½dašV(Äb•Š$ 9œ÷ÿD’,–ö–;V®\·nóæýû¯\ÉÎ «Ucö)•ññÙÙebòþõhÿ‰I,®Zµ_¿êÕ5-{Ì$Éᘘ(?J,º >€6DІÈ©Ò% iš¦ ÂÈÈÈÈðŒÞclÌ|5666611116fŽ.Oÿbñ‹!!wïfe}ì¢^4ýém?J•}áÂÌ™,X'‘”·]QÑ‹7úøøøüõ׫W2YdäãÇ*UEŽ>MSÔûéÔ™3ÿú+)‰¦{ôøí7W×”Í §N?_»6ŸÏ,îwèÐüùwï6köèÑ‹qq÷ïïÙS«Ö¿ÿ.[¶y3³}ñâcÇ.]bö2Û_¼J‹ÏÆãYY5hÀçK$11yyÅ…3hº´O%(•))AAffC‡NžÞÑqìX6›Ëµ·÷ñÙ¸qÁ‚¥K¶o·²R(Þ¼yö¬ `Р;H’ T*KKw÷çÏW­Ú²eÛ6/¯¼¼W¯D¢~ýV­š5K"9p`âÄiÓæÍkØÐÃÃɉÇë×oÕªéÓÝÝŒŠÇÂãÙÚ¶jåê*•îÚ•”$mg—ŸéRpphèÛ·……ÙÙ/&%I¥:T­jdÄá…;îßÿË/C†Ü¿ïíýÓOõ깸Ԫvà€••¿ÿðáƒmÙ2o^ûö½zQ¿~½zµjÕ¨Q¥Š“Szzpð¥KU«ܲenîéÓ¸¹Í[òÎ0×Rú˜iº  1ñöm¡ÐÅeôh}¿†™­€GFІøÚ@"T$277;[]IYSTÔíÛ‘‘nnîîžž2—+TÌ€22ÒÒÒÒœ…B     ?ßÌÌÔT6U©(J¥"š&Çãñ„B¡ÐÎN"‘H$’ôô‚‚²æ+©©}ú´iÓ¿¿PØ©S¯^ ¸¸4n}ú€¯^<8oÞîÝGÞ¸Á´]¶lîÜ3‡YÞíÂ…ΟùR,NHˆ‹#Ioïùó½¼’“7lؽûôéääöí§O0 ))$䨱¨¨§O kÖ6ìÏ?¶m»yóά,7·ñã·lYº´OÍq?xpüø† />y"5jäç7gŽ©é¹ssçîØqæLVÖ€sæ pÿþÑ£{÷FE=N’ÍšMºysݺ/_nÜxøð‰7o2c^½zþü3 ³³u_i­Z&&åKåÿ8Þ¾}öìúõfÍš7÷öÖ÷X*M‹D,Y2hЖ-Ÿ=»o_÷îú“6¥2#ãÌ™±cÇŽíÞ}ß¾Ó§ËZ¾ñÛ¤R)•û© €²åäde¥§ ÖÖB¡ö^ @(Œˆ ¬¤©F>ŸÏçó-,,,,-M50[ÌÍÍÍÍÍy<fD‡Ãá|p67—kooool,xy îçǤžUª¬¬óç'N}4Û2©g•*##,lüø¡Cׯg±(Š$ù|;;ƒ«W—/Ÿ8±yó~ýúö56–H d²*U:uš7oÓ¦ÀÀ'öîíÖííÛ#G¶lñó[¶lïÞÇ÷ìéÔ)1qçÎÅ‹µÇݰa·n-[¾{w÷nTTjjQAüôÓ€˜™‰Å99ööíÚ-\¸uë©S§NíÙÓ¶mlì† óæõê5rdß¾šc66ÎÉùЕêû•‡Ê„$ùü† ýý+kê™ÁáØÚöèñ}¦žuA½6Ðñ´!2€6D¨H•´ƒ©ìLQEQJ¥R©T²Xš¥8X,ËÄ„ÏçóÅb‘H,þ´³P”D’š*•„‘‘­­‘›Ílg³ …BO&‹ŠÒݶ¨(3S.g±F7nÂfûèÑÓ¦AˆD÷îAh aþÍÑÜÂf|úŒ$™žÞï§ôž>çJ òÀå@ÄІÈÚ "UÒ43£ùõëW¯’’LMMMÍÌ”J¥R¡`–$I‚ Éâr4m```P¾Eµ±XFFööFF!•ffJ¥*A˜š²Ù*•L–ž®P88ènklìèhlLÓyyšÛ)J.ÏÉ©l¥,>çJ>V¥K@3s…ù|>ßÃÃã~}Íí4MÓ4­P( Å»wïÞ½{—Ÿ/—¼x‘˜øøqõêîîuê”Ý·n (›7O:mZ~þ!¾¾~~}ûvíºmÛÑ£&&ûö­_?{öþývv††ññ……µkÿù牃„AV–fÛ=‚‚¶nµ´´¶îÜyË–ƒ•ÊaÃFŽœ8ÑÅÅÖV ¨YÓÇgúôêÕΞMM‹³³ïÞ=}:$dÀ› ÂÂnÞÌÉ‹ÓÒrròóã㣣ÿþûΜ‰$55;» àÙ³¿þ3fÝ:OÏ-[ví"#ÏŸOK“Hrs?¾~ýÙ³ë×IRÝó½{g΄†<`€­íùógÎܺ•“#§¦†…<|¸ŸßÀºR€/£Ò-B˜™™žž–æåÕ ‡S|ƒ)µÁ”Þ`RÏ =}ëäT­Zú¾¥ð½ùq!„Ê‹@eó/BH’l6‡Ãáp¹\.—Ë”ã 50‰éÇcbž=³³sv®R©gøq`ÁÐñ´!2€6D¨H•®‡™™………Å÷î=x û(’$ÉjÕ>\pàûƒC@ÄІÈÚ "•+ý9Kü},æ\ffffææú¼1•3[Œ íGˆ––VVvvºŠÈ€¶!2ÀÇBd€ŠT)KpÀE©ÌξvmÏžY³zöüõ×>}ô=žÊ‰ Ë˜4´¾Gðmøq"”"T$$ *•ÂÂû÷gÎ\³&&F½…¢òò®_Ÿ7ï×_¯_ÏË£(} (*;ûŸF.**Þ&—'%mß~çNa!óoš‹=ZºôÚµÜ\šþPŽ•U«Vöécb"•J$ú¾ÂÊE»:›æ–ò|_vŸh…Vhõ=µÒüZ9Gø¥Z13 5ÓЕm„h…V•§žÐ ­Ð ­Ð ­Ðê˶úX¤®0FEݾéææîîéI|¾ƒÃ§à[—ððaDD³fÍ›{{ý³)•bñ›7ùùŽ‹‹•‡““séÒìÙÝ»O›öôéõë_¸@’Arù»wáá[·ž>_Xøüù³g,V§N‹{xsæêÕ; ‚ÍærY,.×ʪuëß~óõíÜÙÝÏW*““ÃÂöïOJrpàüïOFFnnýúuí+‡cg×µëîÝ:Ô¯_³¦»{ýúS“Љ{i÷ ¬+Õmdä¤IíÛkŽV¥Ò÷+_ZÙuŸµçDë{¼@H@T:4]T·wo£F ¬^ݯŸ³3Çì‘Jß½{ñB,60pr21¡¨Ü\Ív%“egëê•Í62rp06&ˆ’–Uª¢¢´4cc‡ T*‘(99'§^=_ß{÷nÝ ò÷ÿé§·oZ°`õj‚H’’‚ƒŸ?wtìׯfM¦ÌFù”ç쥵26Ö}¥š£]³&00"Bs´qq¨$ ð}*Ïgí Ñ /H@T"4-=z´iÓ”)»w¯XÑ­›—[¼÷æÍmÛ‚‚’“4èÕËÙ9'G$bf&«T997onÛ¶?AÐti…'Øl I“þý]]óò”JõV©4)éܹèè*U B¥Ê̼t) `ß¾gÏx<++=FŽl×ÎÞÞÐÐÈH*}ý:4ôéS;»~ýêÖ57×> MÓté –çìÚ#g³--u_©æhÅbš&IÍѲXßsùÏ)üß7ÄІÈÚ "aB€¨ØEÞ‡EŸV嵡¾†ò/BˆÐßÌV]´i–ã@Qø1!2€6D¨HœÏï¾”jÕªUss+û˜ÄÄÄÄøx}ô©gÏîÝÛµÓ÷( 2B|ÐU¡áG†ÈÚ "a4@%Â$—Ëþªï1‚þa¶è‚øP6ÍB˜ ?DІÈ h€o f+€.ˆ凪Ððã@dmˆ P‘€€Js|mH@ÀM»4‡¾Gðý@àÿaN4À—ÅÑ÷¾U4MÓE—‰ ´aZªTÌv‚ i‚ ¨’Ç©{/Þ¦>®ôVÌ÷Œ’[˜P”ºO†JEÓA’$õýÞgòX,²,IM³X$ÉfogZ²XL+‚ I‚`±Jö¢¹…ùž$ ‚ ˜V%Ï­½¥d+’d³ß?F½§ô‘¿å¿'Ì‚!¨ÚÚ¾Í44ªE÷‘´!2@EBài&!*@—ï;>T|"©gø>|ß‘> "T$”àøÆ0³ô= ¨Œ¾f64JsÀ·‘´!2@EBàƒÙ   âÃ׃… áÛ…ÈÚ "! ðÁlÐñákcÒК¢‘Œ†Ê‘´!2@EB@(Š¢(Jߣ€of+€.ˆ s¢á[ÈÚ "aB€OTT$•ŠÅß¿ãMÓ4M—§I’$IÖ¬Y§NãÆ|¾©©¹9‡ÃápðNø&i§¡±t!€&¤½>“znÞ¼eËN>¶ííÛׯ_¸P»¶§çO?™šššššVüøUªÌÌðð±c}}¯^Ý»7<|õêi]PpçζmÙÙ LœXµªAÅÿSܹ3xp‡þþ-Zž>ý­*/$£´! ð‰h eéëûÛo#F†„Ÿ:UþÓ_›mcÓ¥ËÞ½áá]º||k’ü’cQ©ŠŠ¤Rš6002âp¾lß_wä¥Ó¬­¹Eßã¨hH@|–²SÉÉÉÉÉÉÉoß¾}ûöí¥Kÿþ«ûx¹<#ãÂ…¿þZ²déÒ-[nÞ Ž¾páÎ͛njY¼8$ÄÒòÂ…ë×´µåñ4Ï/•ÆÇ‡†nذaùsùùJåË—ÙÙÍš-Z0fŒ]ÇŽ tìhi9bĪUûöMšÔ A§N­Zçèhi)•ÚÚº»7o¾wïÖ­K–M%$œ:µvíÅ‹é鯯oÞDGÇÆš™Mž¼qãüù}h¦öúõ~~S¦ä幸Ԭie¥P¼yÓ®ÝäÉ+WÖ­Ëç³XÌUþþû”)kÖÔªU½º‘QJJTÔÇÙÙ\nÕª¾¾k×.^üË/›­9’­[?6110x÷.&†ɼy™šnÝ:kÖüù‰““•U^ÞíÛW¯Nž|à@X˜ƒ—«¾'¡¡ïÞæåEEݼÉÜ“]»|}K¿ûïÞ…-A¿_€IDAT‡oܸysT”T*•¦¤°X:-^<{v×®ööšw¼2` AÕ6ІøPÙ`N4Tˆ   ‘*П…YN°Y3/¯Ÿ~‰D"‘(66&æÉ“ƒ8thÅŠU«V­zþ<..6öC òx¶¶:M˜°m[ÇŽ¿ýöôiëÖ~~‹ÿúk¿~{÷Þ½;gŽMé•¢Ùlkë¦Mû-  W/‡gÏŽ?~üøW¯Ž‰ñõ=zôúõèèÇ׮íÝ{äȾ}_¼hÔèîÝèèÓ§9œÂÂ;wnßÞߟéI¥ÊÊŠŒô÷_µêÔ©vî<{vøðñ㜠IòCó†UªŒŒ3g\]çÍ[¿ÞÇÇÎŽÍf¶·nݺõ¼yÛ·_¸°bE­ZyyaaíÚÍ;gNŸ>vvŽDòäÉÂ…/_V¯þçŸÆÆÅ½$%åçŸÇ Û³gÏf$4•uáBµj3g.]Úµ« ‹E~~Ó§«[Ó´úžÌœÙ­—ûàÁÉ“/^0÷„ |}ýü4G®T¦¥…†öë׳ç¦MÕ«÷ïïããâBQÙÙ§N-X0nœ³³§gpðo¿9;s¹úþY+†ÇDÐå{ßGêV×¢…ßúuAå÷½Føˆ P‘XúÀ·¢&Ož|ذ¡C,X´Èߟ™ ííííý믴–õªTfeMžÜ«M=:wî‘#II2A;öða||bbbb||bâÇGªTYY—.M™2eJ` ¯ï”)­[רÁç—Lµ*•YYÑÑxx0}2½iS©D¢ä䜜zõ|}ïÝ»u+(Èßÿ§ŸÞ¾=thÁ‚-QÈf98¤§K$*•æv¹ÜÀÀÑÑØX†W(êן0aÖ¬éÓýüþøcÅŠ]»6oÖNðjŽdÍšÀÀˆÍ‘<®RÙÚÆÇÈåš­ ŠbfO«ïÉ”)ãÆõëWÚ=ѹ±±““‰ Eåæ>}š—§¾7%“egK¥JeEÿL}f+€.ˆß"]3£¾DІÈ h€ÏBi˜5kÖ¬3X,‹ÅªQ£FêÕ7lX¿~Ý:JKi=Éå™™ÿü³oߊÓ§¯[Ú§Ï´i‹MšäáqêTM›vë–‘Q2áJl¶¥eÓ¦£GwêÄånÛ6`À AýuéEÙØÐô³g Ì›·f Ó[nnÓ¦}û2}öèѰaóæ-[vë6eʃyy99……LÚX©ÌÈ8~öl_ß]»Ž¿|ùùsšnÞÜÏoãÆùó5ÇyéÒ©Saa·n……ýýwLLa!E±ÙBa/_®X1}úâÅÛ·oÞ¼jÕœ9[¶œ?¿|y½zFFA*•Xüï¿cÆ4o^£FµjnnիרQ·®¿XØÛ·%“âÅ#;vî܀͑xzV¯Þ»w|üôèѵë AãÆMš4mÚ¼y4Íb•¼'&,Z yOÖ­Û·/$äÝ;‘('‡?›mkÛ­Û±cÁÁãÆ¥¤ÌžÝ£Ç„ ~~sçîØM’<§*ÂlÐñáÛ¥9'šÙ‚™Ñð¥ 2€6D¨H¤®ªsQQ·oGFº¹¹»{zŸïà ï¡èGBÂÇÍš5oîí­¹ýÎë×/^lذiÓÖ­5·[Z ––íÚy{·m«Ýçƒ÷î]½Z§Nýú?ÿljjjú¡Åý¾4-?}ºbET”@0}z‹B!‹%½{÷ÓO;ìݱysÆ&&úge£R)• …¾G OßG hÜøžääde¥§ ÖÖB¡ö^ @(Œˆ ¬„sû¾ $É,ÍGÓ%g4÷ë×·oïÞ꽿·dÛ‹R™—÷øqíÚµj `dÄá°ÙaaáâbaaiYµª®Í Y-Zs‹¾ÇðaHø|4¦Œ†›[íÚ=|}ýzù*;„:õÌ´5666~ù½ï—ëè8x°Ïûw$22<|Ú4} ²+»Z4RÒP9! ðј*Ϧ¦ffµk{zþôÓÇöÀ¤žÙl6›ÍÖ÷ÕÀ·G;ÝŒ”4TNX„àq8‡cúIz†ÏC@ć™®e õ=.Ð?DІÈ 3 ¾1={vïÞ®¾G•â0tÍ}Æ,é"hCd€Š„ÐßÌV] lºfIk~Õ÷áËCdmˆ P‘0àƒÙ  Ë÷ýztU‘Æ,éïÏ÷àó!2@EBàI¥bñãÇ÷ï߸AÓ4MÓåiE’$I’5kÖ©Ó¸1ŸojjnÎÔ’Ö÷ÕÀ·„™­€GFÐö½Æ$@+FÙ÷Y31WäÛò½Føˆ P‘öøDoß¾zõâEÛ¶: À¤•ËÓŠIUß¿÷nd¤¡¡»»~Е—wçNb¢¡¡—W††åm§Tfg÷ìÙ¾ýر;ïßìØøñ®®úºŠ¡Tfg_»¶ÿêÕëÖ;öòeXØåËÁÁúÕÇÁc"è‚ø_®å ‘Œ®ü@"T$Ô€øD¹¹99™™‰H”Ÿ/æå•ç+s|^^NNf¦R©T*•ú½ šV(²³¥RŠú¸vŽ••‰‰T*‘¨Tå›û]Yp8VV­Z Ч3~}çÃʮΦ¹W×÷h…Vh…Vßn«òlÿ¯ë[oUvéòÔ•®œ×…Vh…Vh…Vh…Vh…Våiõ±H]s¢¢nߎŒtssw÷ô$>ßÁáÓNð­KHxø0"¢Y³æÍ½½5·ß¹sýúÅ‹^^-Ztìø±}Þ¹sãÆÅ‹uêÔ¯ÿóϦ¦¦¦¦¦!—gdœ?¿eËÔ©‹íÙóâEDÄãÇ—.½y~âÄÉ“[·>ìç~íšPÈã½ßMK¥ññ¡¡6„†¾{gh˜—uófvv³f‹õîÍbíÚµté–-7oZZޱjÕ¸qµmÛâÅAA,–££¥¥T:fÌ‘#çÎõèagÇåMMºhÑöínnB!M¿y»jÕþý{÷jÎó<¸yóÎ[´ <}zâĪU äòôôÈÈ­[—/ ËËsq©Y3++'ÇÂbâÄyó ª[—Ïg±Þ¼9}zéÒ•+/_&ÉZµªW72zþääde¥§ ÖÖB¡ö^ @(Œˆ D €ÏRþêÏÂãÙÚví:a‚÷î9ãëkjÊ㙛ׯߩӯ¿^¹rö¬LVZê™ B©LOÿãeË""NŸ¾?2R&‹‹“J;u1bëÖNnÞ\¿Þή  _¿±cïÞ}ó†¦ííÆŽ=|xýú±cíìnßÞ±#?_=Z©LO¿p¡S§©S§NíÔÉÊŠÅR(RRÎc®²ìB#¡¡S§.[öàÁÀû÷÷ì)>¾zuçΓ'¯XQ»ö™3Ë—7j4kÖš5÷ï÷íÔ·¯‡ÓºuëÖóæmß~áŸÖ­kd¤y].Ìž½aÃÓ§ÁÁ7ož8ÁŒdùò/äòóçgÌX¶ìéÓaÃŽÛ±ÃÛÛʪÿ–-‡½ysìØŽ{õ"ˆðp[Û©S-š9ÓÓÓÄ„¹'11 A4n¬=v¹üíÛÀÀ3víš>ýĉ°0…"9ùر>}^²„ ºvݹSO?bß]³§uß:”àø,ô'ÑÝŸ‘Qõêƒuéba‘“£RDQÑ«WçÎÅÆ¶hѳ§®6ŽPؽûaaGŽ„\ž™õö­D¢PˆÅA’|~ýú~~k×öí[X¸gOtt·nK—Ž]§Ž±1‹Å嚘höF’l6·f¿ÿÎgÏÞ»÷æMQ‘­m—.¬rD‹'’’,,z÷öò²¶fêZW«Ö­[ãÆ*Õ§N½~]TD‰J¥ÈV*)êýûÂŒÄÈH&‹‹ÓÉüù­Z G޼xafÖ£‡§§¥%3¶  k׎a’ÚÌ=™=»^=Í{¢T–~÷•Êœœ¨¨„„üüM›6mÚ¼yÛ¶C‡îÜÉÉ)(HIÑçOXi>çc/ð}C|€o “hÖüÊl/O(?DІÈ h€ÏBÓ4­R}ìײz40¨UkÚ´½{gÏ_¸pýzW×Å‹‡wqÑÕB¥Êξ|yÊ”'L IÏÆ¦^½-<=--‹7$IO(lÒ¤GÑ£ÿþ{çΰ°·oe²Òû32ªS'2rË–ßïØ±Zµüü¿ÿž7¯]»'OÊ[/¹dr™$™ÿ©ï¿ÿÞ¦ —{ýz\œzÖõÕ«W¯®Yãáal\ÚH/¾r%:Zs$ ¶j5k–\®Pef©ëh“$EÉå E©ïIhhJŠB¡yOt™Åâr9ËØxÊ”)Süü¦N;wÓ¦ÿþ»}{ÿþ¯û3ôñ°`è‚øß:í”tyfC#a]6DІÈ h€Ïò¥g@3x<{ûÇ—/_¿>5µ[·-„B§¬1Èå99¹¹2“Š¥(±øÍ›gÏòòär&Ù­Råç¿x‘˜èè8|ø¨Q¿ýFΙsüø›7r9M—L«T™™—.‰Å4M’<ž••‡G#G¶kÇb•]~ƒ ¢W×¼¼Ðлw³³™±$%;Íbýüsß¾UªĶm.¼{§PÈå …®ùÈš# Ø·ïÙ3Í‘ØÛuíjk›‘qìØÉ“ÏŸ‹Å4M±±‡¯Xžž®P0÷D"Q©˜$·úž*4Mï_5›miÙ A¯^ÎÎ99"3*•*'çæÍmÛ*_³@Äø1i'¬?miÄï"hCd€Š„ПåËÕ€.‰Ëµ·'I[Ûš7·²b³Ë:–à ;vœ9³gÏ -Ú°¡^=—ZµÜܸÜ7Ö¬Ù´iÅŠ´4©T(lÑ¢m[77>ßÃÃÄ$6võêþýÛ¶Ý· ÜÜ|}wí*,tq©_ߨØÒÒÃcÒ¤yóÖ­óðprâñòò^½‰æÍ[»¶øœryfæ»w"QNέ[aaÿݦͨQ=zøølܸ`Á»w+V,_¾ti||­ZyyƒmÚ4~Ʀ¦$Iƒ·icn¾bÅĉ­Z¹»«TaiéêêåÕ½û”)+WÎÛ³§³³A0Iaw÷çÏW­Ú²eÛ6//f$ýú­Z5kÖðá¶¶ ¼~={öÌ™ýû\¥JÛ¶¾¾‹MžloÏår8*UÇŽû÷ÿòË!÷ï{{ÿôsOBCOZ»öáÃ5²³™ñÇÄRTݺ¦¦NNýûoÜ8wn¯^Ž[µªPheU·îÀ3g¶l©ïŸ³’0[tA|`”Þôç÷Sù!2€6D¨H¤®‡ª¨¨Û·##ÝÜÜÝ== ‚ÏwpÐ÷Pô#!ááȈfÍš7÷öÖÜ~÷îÿüÓ AãÆŸž|ø0:úúõÚµ==úÉÔÔÔÔÔT½G.OO¿qãêÕôôðp.×ÑqéÒ6m¬¬ÊSù[ѽ{³f>>#Fœ9äãcgÇf‹DQQsæôè±h‘P¸{whè´i5j0)h ‚P©”J…Bs 3[Œ íû‹LŠðûHÂ÷ç[Ia‘>"|¾œœ¬¬ôtÀÚZ(ÔÞka!…áᘠð‰ÌÍ--­­I’Åb³)J¥RW".3cšiËáp8\®æÞjÕÜÝK¦³‹¿OLLLŒ×÷u®%KFªReíÚ¹sçÍ{ñ¢aêUe²ÌLgçÙ³wí3¦zu¤ž? ‰  â@E*;¹üiå>¾F‘´!2@EBà£QEQ”­­‹Ëƒ÷î]½ZþB$I’$éæV»v£F<W2ý}¤˜Ë֨Ѹq6ާï‘|=›J.º2̪(?$ >‹Åb±X––µu³f-Ztè ïÀ·­"ÓÊŸ¶ #ßði€ø|½ÙÙ_ö¼ð}@àƒC@ÄÐöù‘áóÇ_*…ý5ÆðcÂ3T$$ ¾1xL]@[eˆ ßnšøk$Í?Í·{¡rª ‘~H@|"š¦iŠ¢ËDÚÇ0-U*f;AÐ4APTÉãÔ½oSWz+æ{FÉ-Ì(JÝ'C¥¢i‚ É÷Ï[’z~ï3ù?,Y ‹$ ‚¦Y,’d³‹·3-Y,¦A$A°X%{ÑÜÂ|O’ÁTùV÷ >‹ö–’­H’Í~ÿõžÒGþþu”ÿž`¶è‚øÚ>GeHû~½ùã£2ÜCІÈ h€O¤™„¨HxL]@"÷î[Oà~»©óÊãkü 2@EBàƒÙ   âhCdýúÖèß+D¨Hñ¡o¨ 𘺠>€6DІÈ hø*€€¯ hø*€ø)•ÙÙ×®íÙ3kVÏž¿þÚ§¾Ç‡Y0Dߣ€Êñ´!2€6D¨HH@T:ryRÒöíw(ÉÉÇŽ8‘šªT~‰3p8VV­Z ا‰‰T*‘|L[¥2==8Ø×·}ß§ ]@"hCd€Š„4@¥D’Ú[Uâ=»fͬYþ¹~ýÖ­›6-Y2yòøñr¹B‘“sõêÎÓ§wëöë¯ýûoÙ²|ùܹãÇ÷íÛ®——·÷È‘e'±åòôôÈÈE‹Ö­Û¶mÓ¦•+gÏž0aÞ¼£G B.OI9}zóæµk7lˆŽ~ý: `÷îÈÈÌL…BßwëGƒÙ   âhCdmˆ P‘8ú”îÌ™}ûv¦¨¬¬ÄÄW¯”ÊU«6m*N@Ëåoß*•¿ý6sæ¬Yuê1³¤ïÜ‹--[·>"—;dH¯^cÆôëwòäÉ“113fŒÛ¶­¾ïÓ³@ÄІÈÚ "a4@%Õ£ÇÈ‘ãÇO˜0mÚôéÇs8—.eeÏ]–ËSRΟoÕÊÁÁȈÙÂå::ܲ¥…IªgP883ß“¤‰‰‡Ço¿-XpíZzºL¦}F¹<99,lÿþ¤$Îÿþ8edäæÖ¯_×®±±"‘¾ï 00[tA|mˆ   ‘*Е—keÕ¨‘•UVVq± 6ÛØØÉééÓ¼¼’©d©´¬J¥D’œ\­š©)—«½—Í62rp06&ˆ’U¡Uª¢¢´4cc>1QI`¶è‚øÚ@"T$$ *%š¦išf¾çrÍÍÝÝœââòóÕée6ÛÒ²Aƒàà'ž=‰˜#UªœœØX‰DÝŽ ŠÂBÍ¥§_½Ú°¡…‹E4]²Ò4›-4iÒ¿¿«k^^q[*MJ:w.:ºJCCõ6‹¢J›C  ‰ÌÍÍÎNKÓÞuûvd¤››»»§'Aðùú*€~$$<|ѬYóæÞÞúKùÞ¹3xpûöþþǎݾý÷ßú|:•J©ÄB𣲴´²²³Óõ¼ ú’““••ž.X[ …Ú{-,¡0""<<03 ¾KïÏn¨xH@T"ÕªU«ææVž¯ºûË33/]  }û¶°0;ûï¿ãâÄbŠÒ÷µÁ—ƒC@ÄІÈÚ "¡À|›%8àûð#C €Ê %8¾[˜­º >€6DІÈ h€oLϞݻ·k§ïQ@e„øÚ@"T$޾PÙըѠA»v99EEúÉ·ÅܜÑË?§¦P»v]º ”——““ž®ïk*–›{ï^`à_8qñâ•+?qüø—= sš4iÞ¼m[ÍíÌl<2€¶ï)> øÀ—ò=EøR "a4ÀG³´lÚtР™3,3ÆÜ\"‹+òìxL]@"hCd€Š„4À'c³y<‹$õ=€Ê h€ âæV³f:eÕnUöò š{u}Vh…Vh…Vh…Vh…Vh…Vh…Vh…Vhõ¥Z},RWe=¦ö¨››»»§'AðùŸvø1}ß5 Õ ïÝ:´S§?ÿ€6DІÈ‰õù]@EÂc"è‚øÚ@"T¤rÍ€þ|"QAA^^ZZjê›7yy¹¹YYú¾pø’¸\.×ÀÀؘÏ75uppttu51áóÍÌô=.€ÊÎÍ­fÍ:u4·ÄÇ¿x«ïq|_=óøñÝ»^^-Ztê$::ººÊåEER©¾/¾$‹Íf³™44MAdd¤¥½ycbbbbjªïÑT^H7À÷í«' «W¯YÓÓ“¦iš¢d²¢"‰Dß— _žJ¥T*•ÌW’$I’LKKIyýºzu7·zõô=:ÐÏJ@Ÿ<vñ"ó}ÿþ={vì¨}Œ¥¥¥¥B!—Ëd4MÓÌüXø~1¯2St¥°°°°°Pß#ú±s8l6›]þVÌ{Y×»XS8³wõ †€.ˆ  ‘´!2@EúÄtyRÏ ##cãüüï¿îó½{·nýûoÓ¦?ýÔ¾ýÇîýþ( …\žŸŸ››ž®ï±üX’“ß¼Éϯ]»^½¦M™Oè:²üïbmLêY³~1’Ñ ‰  âhCdmˆ P‘>:ýéI+݉°ïMÙWúãÜ‚àñ¸\}âÇ"‘ˆÅ……$I’ÌlôÒŽÑ|)˜]‘0[tA|mˆ   ‘*ÒG' ™¤3“À*ÿÇöœâe_és\.Çãé{?šæóÍÌ,,Êþ9Ó|©3#õ\‘𘺠>€6DІÈéKp”? ]T$•ŠÅ,‹Åf+•J¥B¡ïKþZ5jÖ¬MŠ¢¨Òæ8—½÷ûÃãñxVV66ööúËÅÒÒÊÊÞ¾ìâ Í÷,j@ë‹fFyî*f+€.ˆ  ‘´!2@E"ss³³ÓÒ¾Þ $‰D,¶²²¶¶³‰ óòô}ÉP’’^¾Œ‰©Q£fMOO}¾UQQ·oGF¶kץˠAyy99?^=qæ4iÒ¼yÛ¶ú @E³´´²²³ûÚOªðirr²²ÒÓkk¡P{¯……@ FD„‡~â èò{ùòŋǭ­mlÔUi¬2?•J¥R*íí]]õ=Ч¯ž€öðhÐà§ŸÒÓÓÒÞ¼IOOIyý://77+Kß_—Ëåòx&&|¾™™½½““««‰‰‰‰™™¾ÇúôÕÐ SSSSssSÓZµPàÇÀÒ÷àã0 †è{P!>€6DІÈ hгääwïiš H’¢(Jßã©ü°V5è‚øÚ@"T$$ @ÏœœªWçp8‡ÍæpØì/Õ3E‰D±±GŽÌ;dH›6ׯÿô©DBQyywï®_¿páöí×®éûê?f+€.ˆ  ‘´!2@Eª кÐ4EÑ4EQE‘$I²X4M*Õç÷½|ù¤I+V§¥)A‰JÅbYX4i2fLïÞ‘‘ÆD«V††ú¹v7·š5ëÔÑÜÿâEllÙ­0[tA|mˆ   ‘*f@ÃGKHxþüÉ“gÏž<¹{÷õ뤤çÏõ="ø¶±X,“†V©(J¥bRÅ_¾}))&DDÄÆÆÆÆÇGG>3göí{ø°öò†$i`°}»¾Êo|ÿ€†–——““‘aa!ØÚ2ih¦p‚¾Çð¾jÕÆ;uêáÃqã‚ T*©4))9¹ @ °³³µ57çñHR;- _ JpÀG³´llH’ hZ¥R*¿\Å^€¯‰Í62ªZÕÅE(dRÏAQ¹¹ÑÑú¬ ð}à è ÷è‘D"* …\®ïý¸ÌÍ-,¬¬ìí]]ù|SSss}¾¼)SZ´ððÏÌÔ=CÿèÑèèò-ýWy0 † jhC|mˆ   ‘*R‰taaAA^^ZZJÊë×ùùyyÙÙúÞ·DWB³°°  7÷Í›W¯^¼ðòjÑ¢sg¥R©T(( e+ô‰Ç3004$I’$É[·þûïüùzõê×oÞ\ßã‚/©oß:uêÔqt2Äß¿o_uµg¥²°0!áܹիwîlÔˆÏ×ßÝÜjÖ¬SGsK|ü‹Jˆã1tA|mˆ   ‘*Òÿ' SS““_½ÊÌLOON¶¶¶±±··µ õ=¼o‰H$åç'&ÆÇ?}*ÚÛ;; …öö..ii))oÞT¯^ëÿØ»ë°(Ö·à³½Kw*& ŠŠØÅBlÝ}ìÎc7vw+vŠÝ˜(J()°Ä.°lÎîÎûÇÈËêŠ?TdÁóý\×™³<óÔÌâ}-7ϸר¡R©Tr¹¡g A*•R)—s¹<ž@P©’›[õꆞ½jÕþùgÜ8W×êÕ«VupàruÏ•/?dȘ1gÎ$ƒAlý5HaÒÍú°Z ‚øú@"§ÏI—ôt¡09ÙÅ¥\9WWƒÉdboèfbbbbnnddddjš˜M' é 7,---íìèµÏ†ž)ä£7B±´´¶¶³S(d²Ü\CÏŠ’••OÆß>Ç`0,–F“œ¬RD¥J_¦§K6|L€‚ >€>DЇÈÅés¢ÙÙ¹L™ è” ¿€ÞÒÁÉ©L™Šé{K§8y<>_ ‚ (KÎQ«ÕhÔj>ŸÏ766Ä?@ø½¦OoÒ¤zuz› ýcíÚýúݽ+“©Õ†žç¢W+zP!>€>DЇÈÅéó h‹Íf±"/1÷'Òjsr^¼ˆçñjÖ¬PÇûc±Ùy÷ók¥‡µÚÜÜ·oÏŸß¶-(èÙ3ÀÙÙÖV&KK‹‰yþ<&†Á8|øðáõë CßÁ’!7÷Ý»ãÇŸ?·¶îܹI;;ÇÐ3‚’«V-++.÷ôéÔÔ¯“Ì ‹ÅçÛÙyy¹»zž? «  ˆ ‘ô!2@qúœ€ÖO‹*•Ÿ>]»vøðÁƒ§O]½š™Ù«W÷îõëGE½}›•U¾|ãÇÕ¸±µµ¡/á[(J*Ž66vumÛ–.ÓjUª¬,¹œÍþv¸xæõu‰T¾n]¿~“' …Æíß¿hQ›6ŽŽôf$™’rîܤIô£ ¿Ðþï¹|yÙ²ãÇÓÒ,èÔ©qcCÏJ¶*UªWoÔhåÊM›V®ìÔ©L™¢ûuÅÊ•cÇNŸ®VWªdm‘ñ᛽zõÆ“&úŠJ½ž¿Üš€ÇsvnÙ²oß>}6´µ56vr:täȉW¬Xº´}ûW¯–/Ÿ2åòåõëgÎìß¿oßÉ“/_~ûöÚµÞ½·o‹S©‚¢H2#ãÁƒåË·m;p`çΧO z”÷Î>ݧOãÆ³f„R™°o_÷îíÛ/]úö­LF’II‡uèФÉðáwïŠÅZ­nYYj5Eéöðö­LFQ§NEFJ$EQZ-}¯Ôê””Ó§»t©_¿[·+W224’üôéÂ…ùóoÞÌÈÐj¿¾çß:Ÿ 55!!.îãÇcc飩éÀãÇW¯®R%%é–çcb^¼xúT"ù±q$’°0KË©S/ž9s„iÓ–-›:ÕÂ",ìGûøó鬀þV./E—÷Z«•JããïßÏ̪Uó÷8°I“³g/_^²äôéË—k×:´cÇ X,’ /\˜;wãÆÉ“7o>tˆÅ"…"*jË–‘#ss™ÌŽë×ïÔ©mÛ‚‚fÍêÕk̘‚ÉÞ½Û³gìØ¨(¹œ¢ªTa±RRNŸ^°àСþÙºuǵ:5õüù!CÆŒY¿~„={:wÖý¯¿8œË—ÏŸŠ1¢wïzõèk±´lÞ¼Zµ}û$†¢(ŠÅ¢×«Õݺ 6j”›ŸO÷ÿìYv¶Vëã£TÞºµxñΑ‘»v=»q£Zšºn]l¬RIQõ㸟7óH¥alìäddÄb韥i4bñ“'GÆÆZXôí[·®µ5E‹U¡B»vµkk4£F8AQ FÇŽ —ëàвeûöEL¦©©«kÍšÖÖ¦¦r9AƒabR¹rÍšææ$ùð!EÑ{p¹ŽŽ­ZT®LQ Wµj·nýû—-tèZý#£;9µiÓ¥Kt+«5êÖµ´T*>$I‘èéÓÓ§cb²³+UºpaÇŽM›´Ú23sr’“cb$’ÔíÁܜŢ( ¿‰D­Î»?º d‚`±¸\@©|ÿ~ùòùó·nmÐ`íÚ#þý×ÞžÁ`0dþ¯X³¦oßΜÑßpã{zö,"¢ðõI2;;:ºre“ÚµéÇĤbÅÈÈœ’ôñ15Ŷ0y˜…«¦R¥¤ìÝ»sç–-«V=Ê`ôí»téˆÁdr8 ‹en^§N×®]º4kV¹²‘Eeg‡‡Ÿ?Ÿ`f–¿qŸ_¶lóæžžIIJ%AÐ<$ÇÖV  Ó  †‘‘›[Û¶]º¼~-«ÕMVVxxpp|¼D²sçîÝû÷ïÙsòäË—b±D"4:³€kb0Øì/SÆtÿ"QHȱcºýÇÅåæj4tZ“ÇS*?~¼víÕ«äd…ÂÖ¶iÓ |}-,Šê àñ(J*MI‘Ë N™i42Yr²LFFFFFy÷”Åx<¥2)I÷:™LÝý¢é¯¿,a±¾ÜQšÁø²ŒÍ66vq11a±Ôêýë~òÆb0B«U(„B¥’ÍvvîÜùŸÆ›0aæÌõëïÝ{ñâüùË–åp¾ßCAX,[Û–-ׯߴiÜ8ŸŒŒS§êÖmÖlРµkoßÎ̤׻÷·•ÕïOþR”F#‘lvÞw%[tAR‚‡¨{Ôo¥ÿxݒ¼þ~Ÿh…Vhõ'µÒ=–Ì¢Z¡Uñ·Â'´B+´B+´B+´*ÚV?Š!gf¦¦ff¦§§¤èŸ&ÉÄÄC‡ú÷=úÙ³#GΟ_³æË󹹯^Õ»÷úõ¾¾›7oÛ6p`Ù²\®F“‘qãÆðჟ:µ{÷ùó[¶ÐµЍ¨5kââ\\&MªRE­Îk»eËùó{öÐu4¡ðòå»w¹ÜÖ­7Öjoßþ矂‚víºxq÷nº½›3“©RÅÇë®;+Ýžéò}ûÄâªUóæ™™yófP\Þ°á€eÊÐ;/„B¡Ñ‡£P$%%$P”£c™2$såÊ–-‹­Yæéyóæ™33f|ÿæZ[ÛÚ::†…=zÚ¢E@@¯^99ÙÙ™™ºu22®]›4éï¿‚Y³Ž?¿U«¼ë‘djê… Ó§[ZúûO™röl¿~ýú]ºÔ»÷‘#tè`júîÝÊ•ÿ=fŒH´hÑ3gj4½{·n=~ƇŸ=;zt… \®J»eK‡½{?xpåÊÇAA_–\»6n\ïÞÍšMžìè¸m[pðêÕ>>|þ§OÇŽ Ø·ïµk½{ß¼¹m[͚ǎvôF>{vÔ(ýÑïÜ êÙ³k×ýû}}·m ™2ÅÅåÞ½ öì† ™Ý¿ÿäÉïÏŒÉÔjUªïÏ–î?8øüùtûŠ’É(J«‰>Ü¶íØ±˜ÇÒÒݽeËž=6´·çr$Yõ­9ämlZ´ ŸÃa³œ:w^·nÖ¬êÕoÜXºtãÆÀÀ… 7n‹{ö\·îßkÖ¼qãÔ©sç’’$’ÌÌ{÷Nœ8uJ.‹»~ýäÉ'îßÏÈHRRÒÓÅ⨨«WÏŸô(##77%%--ïåä<{¶|ùܹ›6­X±hÑòå/^øù-_¾r¥¿?Aüèè'Ož>­R¥¦Þ¼yêÔÉ“У§¥iµeÊtë¶fÍÌ™õê=>cƨQ'®Zõúµ¯ïàÁÞÞ<^F†n¡¡©©*•nçÎ:ú÷ßuê0.Œ7aÂ’%‡?yÂbYXxzº»GE-_>iÒ¬Y«V­ZµkWnn׮˖MšäîN¿[?¶W7ü94¹<==116666÷ç""îß?thÕªÔÔ¯#Åÿbl\©Rhè«Wb±FCÿ%ÅË—·oW®ll\\×ô+¿u€?âèCd}ˆ PœtV@''ëž I¡ðáà NŸ>~|ûö“'ÓÒ,8yrÿþzõ,-ÙŸw޾wïøñU«V¯Þ¾ýÁ{û®]ܺuäÈè?L'ÉôôÖ­;s&6ÖÊŠ$““££ss+W œ>½sç¼uÊݻϚåæÖµkïÞff*UZÚÇb±“ÓâÅ3gvïN¢R}útýú AK–ܺåâbkkaáîÞ¾ý°a•+ü¸sç·FW«32._ž?Ò¤ÈHŸÉ“ hÓ¦\¹¨¨‹÷î=zT­nÓfÑ¢®]«T11a±bÅŠQ£ zõŠ œéþ/^°`Ê‚ÈÉyõjÏžåË`±ÜÜjÔÈÉILLO·±i×nذ¾}½½Í̾s­­mmœ¾\••‘aè7]—DòäIïÞ­Z-XШÑáÃgÎÐëŽ =«âfffaacƒÐ%ͯ¯€ŽŒÜ¸±W¯^½¶lyõJ"Éÿu˜®£GŸ?ˆ¨]ÛÄäGz^±bôèéÓµZ77›ôô¨(cõêÍ›§Lùw+ à¿ + J²Â¯€þœ€ÎÈHKûô©x'™›ûúõèÑ}úlذyó¹s»vú¦=;;ggÝ$Zv¶Xœžnèyå Ý·oÖ¬ Ö¬¹qÃѱ_¿qãž:µwof!÷ÿS˜›[ZÚÚ"]ÒüzzÈ.]V®üçŸ]»&L¨YS­ Éζ¶°±a2•ÊØØS§ÆwrêÚuÛ6Ý¿Ë(9 J@Ó«:vlß¾E CÏJ–?)>  PTþ¤ÈE‘~ÝoÁAQU|G•J$º{788$$9Y*‹CCcbär¦8çPÇ’ÏÏoàÀ%Knß~ýúÑ££Gÿ‹©gø³YXä‡ïßú$—3™¶¶mÚtëÖ§O IJ¥™™ÉÉ))ÑÑr¹¡çù£ð1 ‚øú@"'vþËâK™r8––uë6i}4Ä ç¿p%ƒŸŸ™ÙË—“&uïÞ¬ÙÁƒ­ZÍ«P„„ÌœyèZWçäÉ!C =O€?û×»€Â£¨Ò²6 4’Hž>9ròäÜÜ%K¶ooÖ¬mÛC‡>lÙR,NK“HŒí쬭Ùì6m23?}JM%I ''‡â{x >WW77Ý’è訨ˆCßI€¢Á¦÷5ô4þLññ±±QQ†žVIû·À`0 ý&“Á`2™L&“Åb0˜L‚`0‚Éd2Ùl+ïkƒÉd±˜L&“>ÇdÒ}°Xtºúÿt?t ƒA·¢ûÔ=¯[‡MwNyóÉ;otÆgLfþ<ò^Ñÿ§¯ðwÜ·ÜÜׯçÎ=zΜAƒöï_´hð`.×ÒÒÞÞÚ:¯—km]¶¬‹‹¡ßa‚@ºþtlú_†žÆŸ¸+ùJâ¿…/×ÌçEï4®û_~½¼×ßú/ÿ|þWù=Üç×#Õ过caááQ®œZýôi“&:={бcÇŽ;¶mÛ´iöö\®¡ß×_…†@A@"èCd€âÄ £&&ffVV†ž üù´ZF­–ɤҜœï'£é5éô/~ýW8E’"ѪUÓ¦séÒƒöö ¶i³wïªU'•ÄpÒwÀǧ^=??CÏ ¸YZZ[;8ˆÅ™™©©†ž |M$ÊÈ ­¬llìíõÏZXXYÙÛ_¿|ä“Ãápø|ŠÒjµZqÄÇß}¤·ã #Oq†EƒÍ61)[¶B…Š+T03ËÌ|õêâÅ;ß¼‘J ²½ZÁг€’ñô!2€>D(Nl‹Ãa³éÔ¡'ÿtä!•ª({U*ãã=sF£éÔ©gÏŠÓÓŸ=»r%$$$$$äÚµ;wž=KLÔM83\nI\ûü}øC9(âèCd}ˆ PœØy+  h€?—Z­V“äÇÑÑoÞXZZ[ÛÛ›˜˜šZZ›˜¤¥¥¤$&&''%}ü(WªäæV½:‹Åb±XõõîÝ‹ …B!—;::;—/ogçàP¶¬L&•æææææäˆÅb±H$–+W¡B•*l6‡Ãå~¿Ï_£R¥¥]¼¸jÕ€sæÌKôºgcã2ejÔhÚ´eËÑ£_¾œ:uà@cãß5ƒâýÚ  ˆ ‘ô!2@qbkµZ­nêY«ÍÍ}ûöܹuë®\IJ²´ärµZ©T(ŒŽºw 3¦zuÃÐ/ (*7÷Ý»ãÇŸ?·¶îÒ¥I;;ÇÐsøzñâÁ:Mloïèèâ¢[ÇÞÞÉÉÅÅÎÎѱlÙÄĸ¸¨(‰D"ÉÉ155553c0Œ/ÿÍÓ}š˜˜šZX¸»W«æã£[ÇØØÄÄÔ”>*•J¥\þæÍ«WWªäî^£†™™™™¹ùï¼bƒÃ±´tuõõ]±båÊeË4¨ZÕÆ†Ëýsâ>&@A@"èCd€âôy4AEI¥áák×öë7y²PxúôµkË—çW$É/\‹5OO#£Ò½z°h¨ÕBáåËK–;&.XбcãÆ66¸/Pò|øîààäT®œ³sÙ²•*Ñÿêoݺu+4T¿~Ó¦M›úùED¼~ýä ›]¾|•*@ðå~ÍtŸ^^¾¾Aý?ýÞÊ–-WÎÕ•1%%1ñÃSÓªU½½ßõ{y-YrñâÎíÚÙÙ•ô“®®nnº%ÑÑQQ†ž@Ñ`j4ZM’BáÅ‹}ûrëV÷î{ö,X@—çŒÝ»¬¬B¡HL<|¸G¿þR*óÎJ$áá­[gg«ÕjµF#߿ߣGÍšÕ«‹Å*]G© ƒƒ š?ÿɱX­ÖhTª´´+W|õ*77¿•··——DB÷£Vgg¿|¹vm›6yu ?º··§gffÞè ŧO§NõîN÷#—ÇÅíÙÓ­[»vô5* ¶kפɰaº=´n½bŃº=Ԯݸñ¿ÿj4¹¹>œ8ñþ½D¢Õæß+¥29ùäÉÎë×ïÚ5¯çÄÄsçæÎ  ¿¾«8âøûææÖÖôªg’$I•Š>Ò! aÆ 5¢t }ÖÌÌÂÂÊêÓ§ÄĨ(™L&“ÉèÞ>|ˆŽ§û¤kÒ‰lúXP‰£c™2*Ð}êöVÔÍÔ´NíÛ÷ì) ©gnÖ=zFEéó*•DŸ›KÆÆNN|>“ùõÖy4‘èéÓãÇcc-,ºuË«Åã•+צMÍš?ÊdZmµjôZHÇÞÞÄ„Á k1&&•+{{·hammlL?ôÐØ¸bEoïÜ\•Šî‡nåàÀçç­ÌÜÝ»téÛ÷È‘ôt¥ÒÝÇ+ü莎ffy£3™^^¾¾qq*•V«RÉdOžœ9óáCv¶X¼~ý† %“}ü˜™™““œ¬Õæ÷àïß©Sõêº=XX(åßzå§ö3Šb08>_©ŒŒ<þÉ“¸¸¿þòönÝzÆ [Û¼¹úM‡ÿÀÈÈÄD«Õj5ºäáÇ>¤_ß¿ÿþ½{õëׯ_¿>]Bפ÷† SRè 78‡Í–JsssrlmííË”¡kÒmé>éÞtG×—îS·7Cßø½˜AÅbñùvv|>EI¥))r9IÒåúGF&KN–J B Ð-g±{{™L­Öý3|zÏÕüŸé–0™ùuè6_¶¢!&“i4ZíŒþu?ºciµ EZšBÁb997vìèÑãÇOŸ¾zõ;OŸž>­Û‹õõl¿Þ —–?›æÍ×®]¿~ôè¹sû÷¨_¿eË¡Cׯ¿s'#£ »Š#Ž¿ïÈçs¹|>Ei4 }ÔÿþÕMIÓuø|.W P* ©”NÓç ¹\*Õï³^=____Ý>éÝ:tŸº½ðSè†zP!>€>DЇÈʼnIÿŲ·o×nÇŽ ʗ߸±oß ¾®H’½z­_ÿáE99µk7`@ùò))ù@/—øpúôåËUª˜˜Ä÷Kúg¾.Q«ssóËHòÓ§«W·léÒ¥L.—Ë-šÑ¹\'§€€>}œ?~ÌM£‹ïÝ[·nÍšÂÏŸÉÔj•Êôt¹€>DЇÈÅIçOàY,›-–,9xÉܳgÁ‚Õ«7o¶³36f2e²´´ØX?¿ŽçÌáp8SÓÎ׬™9sñâµk·m³±!ÉÄÄwïrrzôؼ™$ÓÓCCÏœ9>))773óúõÄD¹¼aCŠzðàìÙS§<ˆˆppðòªX±m[;»G.\xüøáCssw÷ Úµ£È99K—nܸ}»……J•š™Ù´éºuݻӳtt,üè7o …*UÆñàÁ©S§N=|øæ­­»{… ={6kÖµëêÕÓ¦uéÒ§ÏÈ‘*ØÛ[[W«Ö½ûäÉ*Õ™3kÖÐ=Ü»wêÔ™3C†ôíkoO÷™™››’’žÎf»¸téR§“¹té„ “'}ñâæÍžžîîQQ+WnÞ¼u«¯oVV\\nn×®K—N™bè·þ‹22ÒÒRR,---mmé¿@xþüåËׯuëÔªåí]½ú—­ÒÓSSíì\\Øl6;oGe KK[Û¤¤„„¬¬¬¬ììt[Ñ›ÑнѣÐ%ôF5tŸôö†¾+¥½Z@âèCd}ˆ Pœbqffjª¡§A“Hž>íÛ×ßá  û÷/\0ô|þ±±11l6›ÍáØÙÙÛ;;¦URRRÒÇÎÎ..®®|>÷åšeºO''gçòå Ó›P˜šš”D¯ƒ®TÉÕÕÓ³0­ÂÂ= mÑ"  W¯¬,‘H(4ô½,nôðñ©WÏÏÏÐs(n––ÖÖ%é“*ä‰22„BúoåõÏZXXYÙÛ_¿|äÓÐS¥©Téé¡¡§OŸ;G¯;¾z52R*Åãú~‹K… îîÖÖöö‰‰ >¤¥¥¥}ú$‘H$YYJ¥J¥PÐ%QQ‘‘¯^Ñ©ç *UòðÐO=ëöI÷ùú5ÝÝ›D"‘ˆÅt Ý›••ƒݧ¡ïGÉâêêææá¡{,L+ì×ù“âRÏEåOŠ PT 8•¨Ðð»Ð›`(•J¥R™’’”ôñ£\.—çæ*•r¹\naammggllllnnffiim]PêY—B¡P(9999b±Tš“#ge‰Déé<ž@ FF¦¦ŽŽeÊT¬X˜Þôa4V@@ÉTøÐìïJz÷g>ŸÏçóœÊ–­\Y«Õj5µZ­V«éÒ{=Ó Ó'݇ÃáØÙ™›››[[ÛØØÛ—-Ëf³Ùl6“Éd²X<ÇåúêÀ0€øÏ)Ú¤0KÒÍ «„ì šÏ+ %’œœ¬¬ÔÔääøx™L*•HH’$U*CO ÃÜÜÂÂÚÚÁÁÉÉÅÅÔÔÌÌÒÒÐ3‚|ôC:vlß¾E CÏJÄЇÈú 8±%’œ±X«52²··³«\ÙÎÎÐS€’B«%‚HMMI‰‰qppttq1ôŒ€   ˆ ‘ô!2@qb¦¦&''$zPr™›[Z~ëy¦`(ôjCÏJ"ÄЇÈú 8±é 7 = (¹¸\.ü=\]ÝÜ<‹Éd0 _ÿøñsç®^¥†ž{IG§›u…i…Õ PÄЇÈú 81 =øsè'‘†þ°Z ‚øú@"'$ à·èÞ½cÇÖ­é×HCü7± =øsè& *ù3ˆÅOŸ9²k×±cW¯Þºõò¥BqéÒõëGz^% V@ü0KË:uzõš:uöìaÃÌÍe2©ÔÐ3(‰€.”Õ«'OÞ°!6V©4ôL $a±¸Ü{DcQÀC  ˆ ‘ô!2@qú¥4EQEé—“$IªTúåj5I’äï¸ ’Œ‹Û¼ùùs‰$¬ääÇϞMMU«½ÿÉ“W¯7®Bï×U«…‹‡ ëÖíw\)”^®®nnß?ê·Òÿh¨ûÀݳ½þ~Ÿh…Vhõ'µ¢ãCIž!Z¡Z+|r@+´B«ïŸ-™3D+´B«’ÜêG1BB.]:|ØÕÕÇÇßÿGwëÖ¡C@@`àêÕë×WªäêêêJ§¤ èÕ«[·iÓþýwÎOÏêÕkÔ ëO:aÂØ±+W®[·qãÏM· $·eKx¸µõ¨Qµj™šÒ è#Gîßçó{ôøë/++æçTû¦M³f-\Èb•-kn.•FG¿{7~üêÕÛ¶q8¥PÄÆž9³råÍ›iiARÒ‹¦¦Ã‡ÏŸ/•;¶k—ϤIsæøû;8p8±±§O/Z´{÷›7ÆÆ+ÚÙiµÙÙµk·oïæöðáŽ[·8p÷n@À¨Q=zôëççgmÍáÄÖ­“'—]¶¬››•I&&6i2rä²eUªðxBapðêÕóæD@@@@XØœ9Ë–EDøù>|ôèøñ•*í(ÞÁÁÙ¹\9C_Aa˜šÖ©aè™äÃÇD(âèCd}ˆ Pœ Ü‚ƒN./^ŸÍæp8œ˜˜¨¨×¯ }?O,~òäìÙÝ»wì8x0..''==(èêÕÄD¥ò[Û5ì×A|}ˆ  ‘ŠS+ ëÔ©[·^=úøý.¦L™1cÖ¬+W.]ºpaÙ²U«Ö­333777Ÿ8qêÔéÓ]]Ë”qpX´(0påJ—råÊ—÷ññõ­[÷üù3gNrw¯R¥jÕ ®] -ÊËâp¬¬¼½­­33I’ ììØl‚`2ŒÊ”yÿ>+K©¬WÏÜŸNJÅ~ÕÅÅÒÒÒÒÎN­þöžï166113ûô)116ÖÐWð+×îëÛ©Ó!ôqòäâ«  ˆ ‘ô!2@qú¥‡ÒèÍ4–.]¹ríÚfÍZ´Èû|‡Ãár›4iÖÌϯoߦËé$5Ú>~üܹK—ŠæRt‰Èᘙ¹»—)“—Ôe±,,¼½/\8yòÝ;©”®©ÑˆDQQ2Eiµ7nlÙràÀ»wŽ••—WëÖ´hagÇãñùú£Ñ5e2Šb0èútM‹Á &S«U*uë³X––>>ÁÁaa™™ùif¹œÉ¬[·[·²eé1Šcí$@Qáñø|@«Õh4šÂ·¢#I’ä—ÿFàÏóK!€ÿ‚‚BHo'/•J$YYô/€´Z­V«ÍÿeV«[’G«Õh^¾|öìÞ=ýÇëé*!4¤‚B`X…a¬€Ї4€Á¸ºº¹yxè Ó  €‚ >€>DЇÈʼnýë]ÀÏ‰ŽŽŠŠˆøÑVx`ñô!2€>D(NX PÊ`µñô!2€>D(NH@”2X­A|}ˆ  ‘ŠÐ¥ V+@A@"èCd€â„4@)ƒÕ PÄЇÈú 8! ¿›þŸR©T*†ž ”Ll6¿¬ú-\]ÝÜ<D(NH@”2x`ñô!2€>D(NH@”2X­A|}ˆ  ‘ŠÐ¥ V+@A@"èCd€â„4@)ƒÕ PÄЇÈú 8! PÊ`µñô!2€>D(NH@­V*}ÿ¾GvíþùçÕ«Ü\CÏJ WW77Ý£¡gP”ؿҘ¢(Š¢ ƒÁÐ-'I’$I‡ÃáptËÕjµš$Ùl6ûËò_EQ2YDĦMOžX[Ñ´©½}^ÿiiÁÁ“'/_ÎdΘ±b…¿¿­-‹Uô7‘É46®R…ÃQ*U*­¶¨zU«ÓÒ‚ƒÇ›81 `Ë–C‡Š~Þ`hÑÑQQ?ÚÊÒÒÚÚÁ¡8ç)gf¦¦çˆðgø¥tŸ>]»vî¼xñŠ«VU¬X©RåÊtJzĈÁƒ ˜4iúô™3«Uóôôò¢ëÏ;cÆ´iK—®ZµvmÑ]‚Z’råJ`àùó;80v¬î9[[?¿I“z÷ÎÈ06f2 ‚ vîœ1cÊ”ìì2e*W¶²"ɤ¤† ‡_¸ÐÝÇËÊzøpÿþ¥KE"æÍ³³Ÿ?ñâÇwïž?g2Û´Ù¸qÚ´¶méäö¥K«V͘ñö-‡S®œ½=ŸŸ››’¢VA¤HôèѾ}Ë—ÇÄøù-^Ü·¯‹ ‡£ÑˆÅöêÕ¯ßþý³f=ºm[&&±oß¼yóæÉdNNÖÖ99Ϟݽ;pàÚµ6¼zµÿúõ»w¿z•”´ÿ­[]»öéÓ´©•‹%—Ïš5nÜ’%eÊxzÚÙåä¼|ùèј16lÚôúõK—nÝzþ|F†¿«VnnôüÃÂ"#Œ“'CBNœ ç¯ÑˆÅ÷ïoß~üø³gô¸©©•+²nÝ´iþþ$™œ|åÊ®]Û·?®T*)) Fóæ³fÕª•ƒCÑþú~Tñ§ƒ‹'å47ÀŸç'ÐññqqqqÏž=}úäÉœ9Ó§OtâÄéÓGŽ<¸ÿ½{·oߺ%¦¦¦¦^¼zûvhè§N?~ìØ¿ÿΟ¿p¡‰‰‰‰©é¯_€V›ýúõÕ«))––]º|}–Áàók×.S† B­NM}ó¦I“iÓÖ¬ °³c±B.ïÑcѢׯ÷ì™=ÛÛ»~ýîÝ»wï×oÿ~cóæ‘#ÿý×ÌŒÅR«ÛµkÛvÉ’ØX?¿yóÜÜx¼¬¬óçGÞ´©W¯²eé„ì¹sÇŽ DŽ•U½zÿý÷ß‘‘"QÞLX,KËúõ9¥rÇŽ¼UÒjuzúû÷Í›¿ti“&VVZmr²­íÕ«¹¹¶¶mÛöïÿ÷ß.œ9óîÝðá4mJ·Ñh„«WmlFŒ˜9sĈjÕŒ•ʨ(¹<:Z¥²²¢çèУG·k7bľ}ôüÓÒ.]><6V.'77'=ýÆÙ³GŒØ¼ùÂzÜ1c†=~œ &Nôô<{vöì]»4šéÓ3ÆÌìüùáÇ [¼øÅ‹ºu7nôõ57ÿrÍ;'ú!Źk[ñ¤†_š©møï(þø%"èCd€âT`šN.‡„\¹rùò»woßV­êáQ­½¢¹ZµêÕ«WŒLHHN^¼xÞ¼Ù³kÕòðps311111yúôÍ›÷ïwíÚºuóæ~ýºwÿûïððׯ_½º~ýÞ½‡ëÔñô¬Z5  }ûnß uq)_¾|y.—Ëåpè :<=«W¯QÃϯeËV­|}ëÕ«_¿ yR”F£TªÕõ¿R¢$™œ|ñbÿþš¿‡@Àfß¹³qct´Tº{··7ƒÁ`´hѾ½··™Y^-6ÛÂB¥Š‹“J5‚ ɤ¤“'‡ kÛvèPݵÀFFºÛ{|½-I^é—ó9w®kWoï¡CéÕÙL¦“S¯^mÛÒ翽—4‹eoß®‰IPÐÆ{ö<}Z®œ›[ùòމ‰“Sþ¸\®““îü--==ëÕûô‰žzú¹sFEÙØ´j•?î¶mÁÁ½z‘dB®]çÏ'$˜˜Œãà °Ùææ=zìÙsñbÅõm ßó§~L,™iâŸK‹—Ìkÿ‚?5>À¯@d}ˆ Pœ L@×®]§Ž¯/}ü~&L:}úµk—//Z¸r¥™™™™™Ùر“&M™âéY©R¹róæ-^¼tiÙ²..åÊÕªåãS§ÎÅ‹çÎ=ëêêî^¥ÊéÓ—.]¹òsÀbYXT¯^¿¾™Ùºu ]¢{ž$?}ºq#$„¢6¬SÇÑ1=].×hÂÔ4¯IòxNNý5ÝÇ÷0™|¾­ml¬DB’>>ffyIhŠúº¦~‰V›_Ædòx66úý¨ÕZ-A° xg4‘èæM[Û^½ÆŒéÔÉɉÃ!ÉøøíÛß¼)ì£ÇårµÚìì¯ûV©˜L##gg##ŠÊÊŠŠÊÎ&ɺuÍÍ9­V¥‰T*&ÓÊŠÏgÿÒÖ-ðk°Z¡8ýh*™NXÿhÚ k(*ˆ ‘ô!2@qbþzôf ®Xñ×_~~Í›ÓåôC5ú믦M{õê×oÀº|Ñ¢åËW®¤SÛ‡Ÿ^©d2--kÕºråÙ3‘(?Í,—3¾¾]º8;óùñ­¤ñ×X,KËZµNž~|Å :¡ßºµ³³H|æLD½_tXØ®]û÷GGËåÿûÀï…‰%JþÑ£nÚºðGC_+”Dˆ ‘ô!2@qb„„\ºtø°‹‹—WÞ.úììòâù% ++{{©T"ÉÊ¢@ªÕjµZ-ýš B«Õ-É£Õj4/_>{vïžO½z~~öèQhh‹½zee‰DB¡¡ïDÑsuusóðÐ-‰ŽŽŠŠˆÐ½úw «àç&mµØ¥âèCd}ˆ ðëD¢Œ ¡ÐÊÊÆÆÞ^ÿ,5º~=8øÈl¥`0ºéæÂÃÇDø9ßO.~m5’Ô%âèCd}ˆ Pœ€€"óäɃ×®é—תåë‹¿±(Ù “V.L’éiÐ…4_ß Zµ*h CÏ~ÕÏ=’±hû€Ò h(2X º ¿ªúG[@i4™ÿÎ èÔÔ76lX¶ìØ1¡°lY//>¿nÝÁƒGŽôõ57g±~ïèx`üIôÓÍX7ý+@"èCd€â„4À‹Œ”HjÕš3góæFll8‚hݺQ£¡CëÖ½|y×®:uLMçèø˜¶ŸK.c%5 ñô!2€>D(NLCO ôùë¯NòRÏATjmÝ ÷ûG§W+ú”,tºY7é¬ûÈĬªþ3 >€>DЇÈÅ h€_B’BaHÈС+VôêåâÂå\ÓÕÕÍÍÃãûGýVú uW+èž-èõ÷ûD+´úóZé&£¿Ÿ’.]×U˜Vt|(É3D+´B«âo…Oh…Vhõý³%s†h…VhU’[ý(FHÈ¥K‡»ºúøøûÿ\ðg37g³U*ýr ++{{©T"ÉÊ¢wyþzÇç/÷€Î£Õj4/_>{vïžO½z~~öèQhh‹½zee‰DB¡¡ïD>¥2.îäÉE‹víb0ž=»K—Šù|£hG¡ï€þ]Â~m¿ÃŸ±‰âèCd}ˆ ðëD¢Œ ¡ÐÊÊÆÆÞ^ÿ,5º~=8øÈ¬€øaë×ÏžýìYóæ&tèàâÂfk4¹¹‰‰ÏŸgf~+U_Ôð1àwø36ñ@|}ˆ  ‘ŠBðƒ´ÚãÇÃÂÎÛ¹³Aƒsçè2ËÆ¦uë£GCBjÕ²¶þÞFPòé¯}.( ]WI'$ ~“öþ}D„¡çŧ0‰fÝô4Ó4$ Š€þöúåÿ5Ø ”ù•'Ï@ñ(h/éß=.âèCd}ˆ Pœ°À`\]ÝÜ<D(NH@A«Í͈èÒ¥U«Aƒ^¼H =}X­ð'¡ÓÐôQw³ŽŸKI#>€>DЇÈÅéI@“d\ÜæÍÏŸÿjʘÉ41ñð`³•J•Š¢ŠjvjµPxñâ°aݺú>ÀŸ«þTºÉèŸKIÿñ¡xöËøïø3"-D(N¿”€ SSSS,˜={æÌcÇ ¢ËI’$UªµkW¬ Ô­/effd<¸wïîÝEQE—â%‚`0ò^‘dfæýû;vŒþüýû/<¸~ýÂ…óæýóO‡óç_¸œL’ùíΟ œ2eéÒÕ«7nܳgóæ¥KSRèójuf惻vMš´o_|¼RI×W«Åâû÷;ujÕjð`ÝUÒ»vÍšõï¿7nÙ²fÍâÅv옚*•&'oÙ²bŶm/^ÄÇoÙ²gOhhffþø[·Nžõ·”&X­ðß¡›Œ¦K¾ŸœE|}ˆ  ‘ŠÓ/% -š;wÖ,?¿-ZµŠ‹‹ýø1-M( ÇŽýçŸaÃjÔ¨Y³V­-[Ö¯_»6+++K,ž0aôè# …B¡Ø»wçÎmÛ~ÏEq8ÖÖ öìÙ«×áÃOŸÚÚvè0fÌܹ lß~úôýû6lÙòñ£\N¡ÕŠÅgÏ:;;uêäÉcÇ|êÔùóÿýwÅŠ—/¥R6ÛÑ1 `äÈþýOŸ>>-­jÕÞ½§L6¬uk{ûâøÖ€’D? •ÂPò±¿Z­&I’ÌÍ•JssÅb‘H$"I’$É+W.]ºpaÓ¦;vï¦k6nÜ´i³fýU·níÚ·n=zÆ`0 †­­­móæ Ö«÷øñ«Woß²Ùl6›W»vµjîî'Nœ;wéÇçóx\.—Ëã @Àd2™ÌŸH”3 F«V:y{››³XŸ/—mi©RÅÆJ¥j5AdZÚ±c#Ftè0b¦³Ù_öó­Þó_“ä§O§O÷èQ³æˆôL™Lgç¾}Û·§Ï{c’LN>wnР&MFŒÈO `±nß^·.**7÷Àš5™L§Aƒ¾} èÖ­|y¯¸¾1 $ÒMCÓtÓÐúg «ÀôÔ©&Œ[®\ùòå˯ZµlÙ’%ºgéäò¸q“&Mª[Þ½{ïÞ}úÐgé’êÕ½½kÖ0`È¡CéÔ3]îâR®\ùò:tîÜ¥‹Ÿ_ƾ¾ºý´léïбc—.]»¶k×±c§N¿ãâ™L>ßÎîãG‰„$}}ÍÍó’Ðú[ƒè—讉f0x<[Û$•Ê××ܜ˥ËÕj­– Øì‚FœœÒÒär† ÌÌò’ä$Éã99ñùt;µúw\9ü)ôWF# %G+‹›5kÞ¼eK¥R¡P*6lĈõë·nݱãܹ+W®_ó&&&>^¿Õðá£F£_>r䨱ãÇë—Ïž½`ÁâÅû÷9râÄÒ¥+W®Y3kÖüù‹U«æåååõckŸ¿Nÿï¦Y,++Ÿãǃ‚ž?ÏÉÑjéR•J$R©tn“Ïõêýûœœ¼d°V›››––¿3›mmíãsúô©S‘‘2=.EÉd!!ùµ˜L­6oé¼Ñ--}|‚ƒÃÂ23óÓÌr9“Y·n·neËòù…» (½\]ÝÜ<ìêêããïoèÉ@IdnÎfëþR&……••½½T*‘deÑÕjµZ­6ÿ£Z­nI­V£yùòÙ³{÷||êÕóó+hܰ°GBC[´èÕ++K$ }'Š}¾—¾¯4®‰.sø¯‰22„B++›o=¯ŽÎ]¿|äÈ/=„ŠV+@AôãÆÅC þËðÉô!2@qB ”騱}û- = (‰ ŠúûDz¦P|ðÉô!2@qB ”Áj(È÷ã†ÖOF#% ðgÃ'ЇÈÅ h€R«  ?°Ï2À>9€>D(NH@ü§éîmè¹ÀŸ†mè @i•ššœgcckëä¤PÈåRiaZ‰Å"Qzº……¥¥¡¯Àð\]ÝÜ<è?®ÐÐ×?Ÿ@"§Ï+ •J¥R¡0ôd db³™ßøe•ƒC™2ô‘.yòäÁƒkלœ\\¸\‡ÇKHˆŽöõmРE Çãó }-<0 ò;âCAih¬‰(-ðÉô!2@q h€R«  ¿;>`M4@i„O ‘Šö€(e°Z R<ñkŸJ|r}ˆ Pœ° ”Áj(ˆ¡âVC”døäú 8! PÊ`µÄPñ^44@É„O ‘жà0WW77Ý’è訨ˆCÏ àg`kЇ4€Á Ý *z54RÒ€-8 ˆaS qúÒ¥óçÏËÍÍÍ•Hè‰D"ÉÉ¡Ë }±†·nÝôé[¶ÄÅ)•†ž ”^x`¤¤Å¬€( JZd€’‘ŠS' wîܺuӦÇØ¿Ÿ.9räàÁèòßu%“EDlÜxë–PH’ºgÒÒ‚ƒ'Ož<ùÊ•ôtæw_x&,_>jTùò<^^Ipð¨Q}ú8ÿåÌ äÒhfÎ>|Ú´¥K7nܼyéÒ‰‡ÍÍÕj‹k|<0 R’ãVCJIŽ `(ˆ PœŠ8­P( …\.“Édt ýš.ÿ=— V§¤\¹xþ|ãÆööŽî9[[?¿I“z÷öô46f2)J.Ÿ5kìØÙ³·nݾ}ÆåËGŽìÝ[*%I‘èÑ£½{§M8°C‡>}öí[½zΜ™3 hß¾S§þÉK^S”\{ñ⊺=̘±sgx8]C£‹ïßß·oÞ¼yó‡ïÖm„+®\IMU(²²gÍZ´èÚ5:QN’))»w¿z•ðèÑ6ìØ±ÿ­[t?$™ž~ëÖÎ3fL™²gÏÚµ³gÏšµhÑ‘#‘‘R©V{õêªUcÆ Ü­ÛСW¯†‡_¸Ð¿ÿæÍ?ªT¿ç@>µ:-M¡èßÖ¬3ÆŽ=zúô™3;t¸z5-M­.ž`µ¤$ÇlÊ`(%92€¡ 2@qú-{@Ëdù h©T*•JßhµÙÙ¯__½š’biÉb}}–Áàók×.SÆÈH«MK»zÕÆfĈ™3GŒøçŸqãÆŸ8±FU*+«zõºvíÚÕÄ$;;:ºGI“-Z¶lïÞ'V®lÓ&--&F.'&-íêÕÅ‹W­ ý²‡'¶m#µ:=ýÆÙ³ß¿oÞ|üø)SæÏïÒE¡¸uëøñgϲ³MLââ= KI¡“ñŽ££££‘‘•Uݺýû7|ø€M›„ZšzåÊÌ™oÞ4i2mÚàÁ'Κ5`€™ÙÑ£sç®YóúuëÖÆõî-dd¼öì¥Ké郷ligÇÆC%~;6ÛÑqåʆ ÍÍ™L‚ ŠÒjµZ>ŸÍf0ŠgX­)ùñih€âWò#?D(N& oÞ¼q#$¤cGÿ-ÚµkÙÒÏ/ ÀÏﯿڴiÖ¬I“Z·nÞ¼_¿=ºv:´ÿ>}ÆŒ>|Èôt¡0-M&“Éò’Îr¹\.“ÑåS¦Œ?f̈ƒ 0hPïÞ=zôéÓµkçÎ:µiÓ²eçÎmÚ´jÕ¥KÛ¶þþÝ»wìØ®Ý;7o††>|xÿþ½{Í“¢4¥R­¦¨ÿ•úa±ìíÛµ31¹reÇŽ={öí;}úéÓädG­¦(‚ ƒÁ .×ÑQ  ûb0Œ«TéÕkÆŒ'OÒÓI’îaÍšuë†Õíɤ(™Œ$““Ï;x0*ÊÆ¦kWoo++6ÛÉ©W¯mÛ‚ƒ÷ìiÛÖÞžÍf³™ÿ3åO’ÉÉ/?ïèØ¿ãÆvvAA… ;úû³ÙwîlÜH,‡Ã`°ÙÖÖõêõêÕ¯_Ó¦nn&&ÿ»w( yÉf­V¥ÊÊÊÌ$ˆ§O_¼‰¾¿•Ž««››‡Ç÷ú­ô×&è–æõ÷ûD+´B«?©•î±dÎ~½oß¾}AAôëï'£KËG+´*É­ðÉ­Ð ­Ð ­Ð ­Š¶Õb„„\ºtø°‹‹—WÓ¦?×….ÿfÍ7nÒ¤iS?¿ÿ7oÁ‚eË.œ?ÿöí›7oܸråæÍ»w}”/©T±±»võì9xð A§Oß¼ùå:h’üôéÆŠjذ^½wï®\Q(š6íÔÉɉÃ!ÉøøíÛß¼±¶þ矚5 âéÓ1c:w^¼xÓ¦¼G&j4©©gÎÜ»ÇãuìØ¨Eݸ1yrŸ>;w®[wùòñãtƒ úèÑþýAA;Þ»÷þþ;Ö­›³3‡CJ¥V3\î„ ­[wìX§Î®]'OP®‡3fLË–_–h4éé—.Ù»÷Áƒ]º:tè¿¿‹¥PDFΟ߿ÿäÉÍñãGvè@ÏV·mQß[‚ ;;cãÂýr#,ìÑ£ÐP''.—Ãáñâ㣣}}4hÑB«ÕjdŸdº·-zõÊʉ„BC\½Dòô©«kíÚ„™Y:‡ݼ¹¿¯¯©©n-Šúë¯-/Þ¶íâÅ9sªVåó‹blúøøÔ«ççgˆk0 :%”d"QF†Pheecco¯ÖÂÂÊÊÞþúõàà#G~ËŠYccccccúµ‘‘‘‘‘Ñï¼X.×Å¥K—1cêÔ¹?=ýë‡Þ¸±~ý©SññJ%E)•b±\ž·Ÿ³V+“%%EFJ¥$I¯&‚Ðh$’ü¯H2=ýÁƒsç<=Í̘L‚P*Åâìl¥’Þé5¯‡ìl’T«Y,+«ÚµýülmÓÓÏž={62’~cgçï¿bÅ–-y_WªÔ«WþYsó† ׬iÔˆþ*7—îËÔ43ÇÁ¡K—}ûò¾vtìÞ}ïÞÐÐîÝu{¸p!ïÑѧÏÑ£wïöé“?Š«k¯^³g»ºA´j•¿¶š¶aÃW®|õ¦°;tؽûÊ•tû7îܹcÇòKtWj@qa2¹Üqãœ>ÝÍÍ×·R%¹<9yÅŠ‹7n¬QÃÄÄÐó(°ÞàOUÄ èví:uêÒ¥I“fÍš5£Kè×EQ%}ÍnIŸ” L¦±ñž=,_nè™ü™Œø“ñmÛvèб£©©©©™]bbbbbjJ—úb B’éé÷î]¸pþ|JŠTš™yëVt´Tú#{ÕŸ_Ùøþlˆ ‘ô!2@q*âÐ¥‡ckÛ¨QïÞ‹5jÔ»·¡gð};¶oߢ…¡g%âèCd}ˆ Pœ~ËCà÷Áj(âèCd}ˆ Pœ°À`\]ÝÜ<€>DЇÈÅ +  †N7ë Ó «  ˆ ‘ô!2@qB ”Áj(âèCd}ˆ Pœ€(e°Z ‚øú@"§ß’€V©T*¥òñãîß§_ú2þX­A|}ˆ  ‘ŠS' ·lY¿~íÚš5«T©\¹ÿž=»v¥_Óå$I’*•¡/YŸZ™ùèÑÞ½Ó¦õïïïߥ‹¡çð'(‚tJJrrrr£F>>ÞÞ£F?qâÛ·?&&FF&$¤¤Ð¯éò… çÌ™5‹®_t— “…‡/[ÖªUÆõõ¹)SæÌyð ;[ÿŒ.6ÛÚº^½®]ÿþ[ Ëe²¼rµZ(¼xqذnÝŠj®r¹Zýý¹|‰¢²³<8}:%E­Î›SZZHˆFSt÷à÷`ÿzsçΘ1uª½½ƒƒƒÃ÷kΛ·hÑÒ¥#G2pàÎ:T—`däêÚ­[‹Av¶VKÌÏiuµºbÅ>}jÖ47g0‚$ÓÒBCW¯>|8"ÂÊŠ$cbrs½¼V¬X° oß/û$Éääàà­[W¯Þ¶íÅ‹øø„„={BC{ôè×ÏÏÏښ͖˧M9rþ|—êÕíí³³Ÿ?¿„;N26f2Uª¤¤ –/¿t)1Q HM}þüÕ«Ü\ss ‹.]fÏ^·ÎÇG&»zuûö-[ …"9™ÁhÑbÞ¼qãÚ´qtäpòç¡VçäDD(•áãóù c[[7n¬›Ä.øºfÏnÓæÁƒýû—,Ù²åäɸ¸  +WNŸV«Åâû÷OœØ¸qË–*UÆŽ]µ*%eûöyóŽyøP¡pu%ˆÈȈ?¿Ã‡?¾R¥fÍú÷_¹ÜÙÙÆ&;ûɓ۷‡ݹóÜ9‡ HòÓ§àà]».\ˆŽ–J££ß½£¯eòä6m‹âý€Òê—V@ß»wçÎíÛ!!W¯^¾›Íáp8t}ºmÑ\ŸïâÒµkÛ¶aa"QþÚ`’LIi×®R%€~}éÒÔ©‹M™2a˜1ÇO:þ!ææAAR©þšdÇÉ) `РîÝ­¬F<ØÏÏښá×E_ºdk;fÌܹ£G5iÒäÉS§Öª#“„F“ž~íÚ‚k×>þÏ?£FM™2uêøñeÊDE…‡›˜Ô¯ob’œ|êԌ۶©Õ}ûN:aÂäÉMš¼|¹víüùÏž}½V›Ã±µmÜxóæÁƒÇŽÝ²åÂ…—/ÓÓµZÁȿƂ¯‹Í¶¶nР{÷îÝŒòWv³Ù–– víÚ¯_ýúÅf;:ŒÙ¿?ŸŸžþî]Õª½{O™2lXëÖööl¶Z–öî]Ë–“'ÓW:cÆ’%ݺ=}š™©VI&&Ò×2räˆãÇë^KѼ³:WW77ÝcaZá!PÄЇÈú 8¸úíÛððׯϞ=uêĉwïÞ¾}ó†$Õjµš¢´ÿïÕ«/^¼ ë{{תåãsÿþÝ»·o׫נA£F,‹ÅbeggeeeùøxzV©âéY½zõêtýAƒz÷îÑ£Z5////.—Ëår &“Éd2 &“®Ù©ÓßwëV­š—W^«‚p¹+Žø÷߇U«vôh÷îRéΛ6U®¯Õ’¤H$Êd#G.^+K©¬WÏÜœÇÓjUªÌL¥’É´¶ØìüfdAè'h?ß ¦V«Tê–P”J%ÉdVK¡ÕJ¥‰‰ïÞI$j5E©ÕBá•+»w‡„$%i4_÷ÉbYXx{”)#]¸pòä»w¡ÑˆDOžlÛ¶gOT”Löe ŠÊÍ}ó†ÞÛš¦Õ*•ÞÞVVNᮋÉä󭬘Ìü:Zmnndä•+7näó­kg³­­}|NŸ>u*22of%“…„¤¥‘¤îµämc’-Eû΀.|L€‚ >€>DЇÈʼnréÒáî®>>þþ¿Ò‘X,‹D£G:xðĉӦ͘Q½º·wÍš¯_¿|ùâÅÚµ+VŠD™™W®Üºuïž¡/üw¡(©4<|Ë–‘#gÏ>:Ú×·Aƒ-è­{ ?.Ý[‹½zee‰DB¡¡ïDq£ï€O½z~~ºåX­A|}ˆ  ‘~H”‘!ZYÙØØÛ럵°°²²·¿~=8øÈ‘_Z­ËÒÒÒÒÊÊÇÇ×·nÝþý{ôøûïjÕ*Urq8°W¯nÝèõÎ.„„„†úæü^Mvvxøƒ±±L¦@Àf³X\®¹y¹r^^uëV®lbÂáz†PÚác"ñô!2€>D(Nì_ïBפIÓ§Ïœ9fÌĉ“&½xV³¦—Ëåòx†¾ØâÀf;8´k7}ú€Ožlذe˶mffLfnnzzZZ™2S¦Ôªeè"N@Óètsݺ 4lhè ,~L¦™YõêC‡®[Wðã‚ \]ÝÜ<D(NH@”2x`ñô!2€>D(NH@”2X­A|}ˆ  ‘ŠÐ?I¥JH êÞ½AƒŠs\¬V€‚ >€>DЇÈÅéóCår¥R¡HHÈÉa±23e2C­¦(ÃÐÓð·76Öj]\ÌÌ4ss6›‰_V}!=ýêÕ%KŽáóë×g³ Š*ÎÑéÕ øÈú@"èCd€âô9Ÿ•Åd¦¦J¥ô×t2¥xS*Pr¤¤H$AQÅ`88z>%ÍîÝ/^4múÏ?#Fp¹Ož÷èø˜A|}ˆ  ‘ŠÓçUB¡TJQV‹#Ž8â˜w %ü%Ä×(*7·Zµ}}--Y¬iéêêææáñý£~«ïïΦ{¶ ×h…Vh…Vh…Vh…Vh…Vh…Vh…Vh…VEÕêG1BB.]:|øãG“¦M® ø³uïîéY¸-8ÂÂ= upprrqár9/!!>>:Ú×·Aƒ-´Z­V«-ü¸to-Zôê••% …†¾‘“óøñÈ‘}ûÞ¸!éž)WnÈsç.]š>ÝÕ•Ç+šÑ^½zöìÞ½5j×nÔÈÐW@A’$I’R©D’maaeec£_ÇÂÂÊÊÞþúõàà#G>oÁ¡ÑüXbþ[°4Í̬nÝ­[ïÝ‹Ž¦¿–Hž>íÛ×ßá  éÓ]]‹v4##ccSSC_3@¾œœ¬¬ÌLÏçó SÿsRI«Õj) GqÄQÿhè°V‘¤Hôôé¥K§O_¹’’"“‰ÅQQRiQÿ^K®_þ+ö6ÄЇÈúàW$$ÄÅEEñùAážöy4Ij4¡'%‡cè”,Ž•U:mÛ@çÌù£˜šš™YZ’$IªT …\.“©Õj5I6n\¿¾——H”‘Q¶%€’ñô!2€>DøQL&“Éd²Ù‡S³f:Mš¾­ÎE·ÎQ£Q«ÕêÔÔÄʇ²e+Wf±Øl6ÛÐ7  ôáp8.—>z.?æsR¸¨þÐþùó[·.^ »uëüy­V«Õjéì¸OÓ¦:x{7nìïÏd²XHFüé>ïMoÁñsG±X$ÊÈ8p`ùòI“¼¼7nÓfР9s¶n2dÞ¼íÛé×tùíÛçÏ:D×ÿ•õ †‰‰¹y¥JŽV«[Îç;8ØÚvéâàÀ`¨ÕE9bQ«Tññqt¬S‡ÏÿræºÇöíÿúËÉÉÓ“ËͫӤ‰MI½"ÿ¼£¡Ã|ÍÕÕÍÍÃÃг(­p÷~Eé½{¥wæ¸Òâûö+JïÝ+ 3/ž9”„+-½p÷~Né½o¥wæ¸Òâ„»÷+p÷~Ni¿oE°úþý 4225µ´ü~?õêôìyãÆÑ£[¶´lÙ»÷رEq L&›íéééiföìÙÝ»™™ºãgg''gd<|(D… +ÚÛÛÙ¥¤…H¥Ådr¹FF#G6ibiyáÂ;B¡¹¹››A|ú$‘”+çímkëä$¦¦j4öö––Ož¼|™“C—_¹róæÇeddbò×_îî‡Ãbq8•œœ–vãFj*E Ò¬™£ã“'¯_ggóùÖÖ|~ݺ..ÁÇÉÉÁÁÉÉѤ‰¥%‡“]±¢•›-•Êå·n €IDATÅÄH¥ºWheÅfDBAä=îÑ£ÌLµZw㔦Mk×vtd2¥R*e29œ¨¨ÈH¡05U«e±*UªXÑÖÖÞþG¯=%%)i×®ØX6»aC.W&Óh8•êâň‰$;[«%?¿š5mmµZ©T«åñÌÌx¼ë×ÃÂ’“‘ºø/û¼Z£ÑjµÚ=&&ÆÄ¼yÿþýË—Õª5hЪ•~—/ïÞ –J%’¬,Š"ƒ®O·ý¹quZ-›Íãyz jµZ­_‡$•Êrr”ÊÈÈØØ¬,:‰KŸ%I…"7W£a2 B«ÕhTª—/ß¿‹kÖtvf±’“?~LO¿u+1Q&S©x<O·\¥"«fÍš5­¬Œ˜˜ôô+WÞ¼ÉÍ-[ÖÃÃÖ¶L&“$år.—Çóõµ¶&ÉçÏß½ wízûV£©\¹JKK++ŠR©ÄbµZ£‰‰‰ŽNO¿q#*J"Ñ¿Æ÷ï §Y³úõþúËÙ™ÇËÊR(4š¼:Ád:;§¦ …ÁÁoßfdܼ.véR­Çf«Õ$õs×þé“JU¥JÍš¶¶Ÿ>¥§‡„¼{—žÎá8:𙹏p8¥Ñ‹Eß7Þ¿Ï»eʰٿöÎâXrކSPZ}^M'ouOˆD©©‰‰±±oÞ<~, …IIZmÞãkµEQ‘‘‘œG×·´tppq‰Œ|öìÞ=‘H(LJÊÍÍÊÊÈHJŠŠzõ*.."âùóÖ­ ˜6®rèÐÆVVe˲X,‹EÁd2L&ƒaeåààâR¡‚§gݺt‚.€ÉÔh‚ÁøöU|‰Á ÖZ­Z­Vç­¦[h4jµV«V„F™ùð¡D’W§N­V­þð!¿œÍ61±¶®UËØX£¹|Y"Q«U*•J$Ú²%8X$¢[5j¤Ñäë×±±R©DB’ÅfgdH¥R)“ilÌfç­ÏK ëÎJWHȵk‘‘!!A,'ÌšåïïèxðàµkŸ>%&r¹¦¦·n%%efªTjuÞUi4ööNN¶¶ FBB\œÿ™k;ÖÌL­¾t)-$IR­&ˆíÛ/]Šÿü Ä61±°ˆŠ’H23Õjzôœ‘(*ÊÐßÚßaèY”V¥÷î•Þ™CñÀwȯ(½w¯$̼$̾ïÑÏ)½÷­ôΊ¾O~îÞÏ)í÷ísZ£¹¹³³··Ÿ_—.5NM‹{÷.4ôðá £¢^¿®\¹fÍÆË—÷òÊ«ñèѵk•*yyÕ¯¯›\mÚ´GQ£Ê—¯ZõûSüþLF¡É"#U*;;zƒŠ/ë2™NõêeË2ÉÉE×Ñݼ‚ÁÈÛÚ‚^Mü­:ôÿuË)J¥R©”JƒÅrp`³)*2R¡ (ƒÅb³9­6/ͫۊÁÈë3oDý:ú×X¥Š@À`¼/—S”F#—K¥B!ƒáèèèÈfSÔÇ$©R™˜0™¥Û‹¥Ñ¨T …F£Õj4 ÆÏ^;I2L¦­-‹EQÑÑt9ƒÁ`°XAQ$©R©Tºw€nÅå2¡RÅ£- tú¼ ýÑ£‹K•*îîuê4köæÍ½{ÁÁúuªTñõmÙ’ÃLLèd¥³³«kõêtÛŸ÷Ë#I*•¼~-•º»óx_^‹©©³³½}ݺ&&ôš`ÆÅÅÌŒÞv‚¢è”0ý5ýZÎ{¤SкåjµB!“=ž›ËbÕªU¡Ÿ¯ÕR“Y±b•*VVöö,Ö·Zé÷F§sé9}ûëÕ«RÅȈÏÏKSƒ¡RÉdqqr¹V«VËåRiÍš66ù×¥Õ2Z­P(§§«Tô 럽öW¯d2Ç×·BÃÑj)ÊÁ¡R%OO èû@ßú,}è;Pï/ކ?:L@iÅ ¹téðáË—Åâ_{–¢J¥PÈdŸ;·{wÕª ЛrˆÅ©© ïÞÝ¿¬TÊå¹¹-Z 8s¦¡/ kΜ6m S3,ìÑ£ÐP''.—Ãáñâ㣣}}4hÑ‚^k_øqéÞZ´èÕ++K$ }'à³°°²²·¿~=8øÈ-8~m#‹Åå ––NN*Ü»wâÄ–-ôV,›Íf»¹ùú¶jU¹²O³f¿>”|ŸÐEõ‡öîîõ븺úú¶j%§¤ÄÅYZ::–/Ïd²Xì" J²ÏIa’Ôh4š¢ì˜Á03st¬PîU£)êþ dêdS«32nÞ\»vÁ‚+WRS ÂÞ¾]»ùóÇkÖÌÚ:ïoG ª¯VWªdm]¯^¿~“&å×W«W®œ2eèÐ[·^¾T(:tؽûÀþ)WŽË5ôµÀÏ£ÿí¯\ôôiFƇlö÷b…Z-?}zâÄ®]ÇŽ]½jf6v쎈ÿ-yq oß™3ÏÃç€ÿ¢ÿõsÁ}º€Òèý\ð¿3 ±r娱ӧÓgéX±zõÆ“&~:{@ÿÈÃÁ (hµYYÌŸ¿rå‹-[îÛ·v-AL™Ò¯ßüùy{¯_ߨ‘¥%“ùeÝúvìheÕ¦ÍØ±ºõÙì©SgÏ6ìÅ‹€€À@ü‚ ôËÓ¦mÚtþ|FƹsƒÓ±¢Y³5úº›miY§N¯^S§ººº¸lÝš•eèk€â–ÌÍe²Ã‡ñyà¿è{?üø§ (þ×Ïÿ+Ã@YY/^´h1y2}–Žb±VKúùŠgAÿO­V«‘€(^$™œ|ùòªU/^X[Oš´p¡­­A li¹bÅÚµÁÁ))uëöéãìÌáè¶Ò­Ïbƒaiùüù×õY,.—Éd0 }ðëtcE“&ÁfÛÙ5nœ+‚ ¾÷#"‹…ÕŽÿmø<ðßöíŸ ~íÓ”Fßþ¹àû†îÝ)êòåáÃ7îÙ“>KNJÇSRHR?_QÏ h‡Å"…‚$‘†€<|>‡SØßfA0 Æ—lôK@Ei4 I“)°ÙôÝ22âpB¥’HÔêo­UÒ­O—|¿>”vº±‚.a0Øì¼XaèÙ@éƒO@û~†¢B"Ñ=KÇŠÍ?|N@{y•)cbòøñ‡ÙÙ†¾p()èÈPøú@`l,—Ëd¹¹Ž™—kffnneE‡,ÐÇ`°X¦¦Ahµry^p—ÉH’ ¸\SÓü¯K·>ÝË÷ë@i§+èŠR«ób…¡g¥>]íûƒ¢LMuÏÒ±âGóŸÐ;Ö©S¦ }4ô…@ÉS¸ßW­êåU§“Éd²XôZ^{{­¶\9Š¢(üuÅ·p8NNþþS¦Ô¬yðàöí÷ï§§{xPÔÞ½bqÍš&8:r8?nÜØµë€Ožtî|äÈîÝ}úL™R³ff&]¿qãöí­­uëçõŸôGú ´Ó Ah4™™÷îåÅ ‚ •êãÇ{÷¦cÅÝ»öé“ך¢qà¿ëÛ?üïOð§ùöÏßÏ0p8áï¿sç¥KygéXЮ]Ó¦…›Õ¿Ÿ>ÿmmíäT¹²¡o”D|>“©Ñ¦fþ†Ôg¿2nrrRRllÅŠ®®^^ …\.•úNü †@àäT§Ž£clì®]^½úáC… ƒ-X嫇‡±1½=ÒÝ»AA'N$$4mÚ»wÛ¶µk7l˜Wÿþý˜˜W¯ºw7.¿>A¨Õ»woÚ´rå­[GG§¥‘$Euêô×_>>X# P:åÇŠU«ví:}úÚµ'OìíéXQ±¢‘›M Ž{t¬2dÈÖ­Åâ'OΟ?|øÌ™sç®]{ú4)‰$•J{{w÷J•ÌÍ þ|j5¶n=qâÚ5úóªW¯\ÙÜÜÐó€ßï{?0™ßÿtAÿd¥]Þç‚~.pqñõý^†Á>|ذaáBú,+:vl×®AƒïÌç &&?FG¿yà ¹téðaWWCß(‰ÌÍÙlCìöèQhh‹½zee‰DB¡¡ï„aÈdoÞ,Z4hбc­ZíØ±`Aݺææ?²37ü7èÆŠcÇ-ª[×Ð3€ÿ. ++{ûë׃ƒaz2ð=FFžžsæ;æéiè™@I†X%VÑÀo4ü¿e ŽÕ«—.}ýúÕ«/ªW¯Q£fÍÉ“gÌø÷_C_,‡ãÇÏ»z•~ݽ{ÇŽ­[zFEC$º}{þüñã—-»|9,,6V"qp¨^½N##K«%I‰äñã¨(#£  ›7÷ï÷õ555ôœ «ˆW@¯\¹téâÅoÞ„‡¿zµsçþýAAôkºÜÐ ¿—nê¹ €ÒËÊ꯿æÏßµkË–þý]\8‚X¶l÷îýû÷ï߿Ϟƒ>qbÁ‚Æ--Y,CÏ d(âôû÷oßîØ±oßÁƒ\.—ËãѯéòåË—,Y¸ÐЗ ÅAwí3ÒÐð'a0˜L6›Éd0‚>êêÒeöì~ýÊ•ãñ =O€’ Ð Ι3kÖ!}ûöêµ{wPБ#‡ÃåÒgé×tù¤IӦ͘A×/ºKÉÂ×-kÕªaCŠúúÜ”)sæ}jÕªRÅÛ["Ñj B¥JLݶ(.ÁÈÈÕµ[·-‚ìl­V÷ŒZ]±bŸ>5kš›«ÕÉÉ—.-^|æLÓ¦yÉqš]‹Ó§÷ëçåebÂd¹º¾{wðàó纽ef>~|ó&Ý›±qNND„R©Vçg³­­7fâŽÿ1}úÔ®íááêJ'U«TñöþðA¡ (‚`08 GGgg­–Ë-[vÒ¤'BC¯_߿ٲ¾}--?|غõðáèh™ŒÏ/_žÍ&ËĤbŪUÍÍÙl’Œ‹ËȈŒÜ¶mß¾ðp‰„Ãqq15e2 ‚Ë57ws37çptçÁ`ðx––ÎÎú3´°pt,SÆÈHw¥¶TúîÝÿ]©är­­Ë”)[–n;yòŒ}û¶jÕ°aӦݺѾ=Ifg¿y“•E§ºss#"är¯lÙ.]š4±·çr¹\'§.]ºté×ïŸ8ËÊÊɉþyL©LI¹zõÁƒôôääk×Þ¾ZµêÛ·jU“¯×”@éVàCÞ¬»êYEQEÍž=}ú”)ÕªyyU¯¾}ûÞ½ Ò¯_ïÞýû÷ìÙµ+‹Åb±XINNNŽ\.—Ëå¾¾õêկ߶m‡:ùøøúÖ­û½‹àó]\ºvmÛöΑH£iÑÂÆ†Å"’LIi×®R¥²eµÚììW¯‚ƒSR¬¬ºuûº5ƒÁç—)S§NÙ²y%ÆÆïßïÝ&5mJ÷vÿþÝ»ÞÞíÚŽFÓ¸ñæÍíÛ+7rd·nþþ5jØÚbŸ7€ÿ–C‡ž=‹ˆ 6HQ\îïߤÉÈ‘_Öb2¹\kk>ŸÏwt¬[·cG’LL ŠŠ’HÔj‚ËŸ?§SØù- ‚ÈÊzý:"";[­&ÏÂB÷ܯ I‘èÍ›ïÎf½ÀÆÒ’ËÍ+c0X,>ŸþY.Q©Äâ·o ‚Í61)WÎØ˜ýù'ÍÀÀÀÀI“tû4ÈÕÕÈhÑ¢·oåò„„3gž<¹{— 8œöíW­ªPÏ7ô; E­À4öý~ò÷Ì™“'ïÜ9  uëC‡NžŸÉ|ÿ>77))¯µFC’_þí§.ŠR*ÓÓм¥Tfg«Tù[fôœœû©†Ã13su%™l×®cÇÞ½ËÉ©W¯^=33­V,~öìäÉ/Ê–íÒÅÏÏή_¿  ½{££ÛµëÛ÷È‘ððeËîÜY¶ìÂ…;Ë—ÿÖ’&(í~iÛ:}`@Ϟݺ-\¸rå︵úÒ¥uë‚‚ž?wtìÛwРƜx<‚`±ÌÌ*V´³‹ˆxúÔĤyóòåóÊBáÕ«óæmÜøñc­ZmÛÖ­keÅå 66jõ•+{öн Ú©S§Nô&-íòåÜ\3³Úµù|ƒ 4‘èþ}6Ûʪvm{{.+ áÏÂç3™†xÈfrrRRllÅŠ®®^^ …\.•úNÀ]vvXØæÍ ž<ùìYB‚TöæÍÇoß¾y“žîæV¯^õê,A¨TBapðÊ•‹íÝûòå‡ÉÉQQ11Ÿ>eeU¨P§Ž‰‰ƒC½z~~®®‘’²|ùÊ•[¶ß½£Õz{Ú©SýúUª”)S¯^õêNlì«WkÖ=úâ›íéÙ´©Bñúõ£G®®={ŽQ§=&›mn~óæ¡C;w~ú”˜øîÝë×ááññýúMšÔ¥Ktôõëff*•¹¹Í›4rdõêMšßÁÁÙ¹LCß"(,z3€Ö_ ¿‚˵·oÓfƌ۴™1Ãгù,–…Å“'oÞ¼xaè™@ñù+ éð¦žE¹r+V®ŒÔ3@é…¤3И‡SzXÅO£ÉÛeðG ÌŠ]]«U3ô4 äÊÉÉÎÎÌ,þqMLÌÌrr²²22 } °Äb‘(=Îí0ÄâÌÌÔÔÔÔ””¤$ssKK[[.—ËårY,&“Á0ôTÀ0d2…B¥R*åòœ@ 02âóù|#£âœCffzzJJV–Xœ™Y»v½zÍ›ú®Àÿöôéƒ×®Y[ÛÚ:8|N@“$IªT …\.“©Õj5IR”V«Õzª`\.ý(PÀؘÍf³9œâŸEQE‰D™™BallL 6ô( *V¬\¹Z5KKkk;»Ï hCO  äЉ‰Œ 'I•J.722117/W®BwwCÏ  ¤cz%@`lll\©’»{õêõ3çøo h€ÿ¢‚Á`³Ùl6[«ÕjµZŠÒj5CÏ  ¤cz%]V–H”–¦V«Õj5“Éd2ñ) P°~‹Ï{@óx|¾±1—ËãñxL&“ÉbzbPšhµZ­F“››“#SEQC*•H²³¹\Ï7ôôàO R)• ›ÅâpØlú1*†žü èÌ3›~¦7E! ð'øð!22<<7777+K*ÍÍÍɱ·wppq±´´±±³³²²¶¶·/|o™™éé))YY"QF†P˜šš`llbbffbbbbaQ©’»»—WAmRinnvö¹sÛ·OºbÅêÕ'O~úÄdº»ÇŽåÊ×Õåò7o.lÓ¦sç  µúر'Onß®UËÂ{F‚Z­V“dxø‹8::;—/_¦L¹r®®ú5é}™ã⢢LLÌ̬¬LMMMÍÌ ƒÁÐï3##--9ÙÙÙÅ¥reý:´„„ØØÈH¡0%%1±R%w÷5ÌÌÌÌÌÍé³lŠÒjµÚzôèÒåðá;oß.S†ÁHJÊÊR«µZss&3¯#&3ó޽ݻ£¢ÍÌLM)ªfM33ƒîÁÐ7Y—F£PÈdÅã±Ùߺ)†¢¢Âܜʕsv.[¶R%:g{ëÖ­[¡¡úõ›6mÚÔÏ/"âõë'OØìòå«T‚/ŸH÷éááååë›—¸¦(ŠÒï­lÙrå\]éSR?|05­ZÕÛ›>«³û³VK<^ùò½zÅã:•”¤P X¶,—›7äÉ“gÏV¬Ø¿­Záá³f……éî­R%%oÚtölt´Dùî“éï?oÞœ9––11'O®\¹iÓëׯÆ<^RÒÛ·ffcÇ®[÷ï¿5kr8'λe‹««½=E%$<{¸gϦM11gά]»víÅ‹ÙÙjõ‡™™¾¾sç®^=jTõê"Ñùó‹-[vó&ƒáî^©’@¯RI¥¬\9oÞ£GK–°Ù..ææô¬fÎܸqÛ6.—¢ zVW¯ …FFô¸ô¬fͪUËÔÔÐß6ÿ›J¥PÈ厎U«–/¯Õj4Í÷ëÓu”J…B*ÍÊ‹ÓÓÙlÇÁÅb±X,±833=î“®yçÎÝ»·oÓm›4iÜø¯¿è×t9]B'¾_¿~þüî]’T«I’î­Ñ¨Õj5A¨Õ ¿¶±iÝzË–Ù³›6íӇùpáÀž=œ(êܹúõ/9R 8pàìYŠ¢(º­Z-ž=Û½{ÇŽ76mÚ·oçΦ¦\î©S³g>}zíÚÇϛxòdJJýúÆ>½uëÖ­|>ƒÁ`¤PxåÊë×b1—Û¬YÛ¶}ú :v¬V«Vk4––5köë·bE»vŽŽïß92jÔ¨Q7†‡÷ésàÀ²eK—>Þ¯ßéÓGŽtéâàÀfûù5o>sæúõ.Ì[µªDræÌ™3––ff..$IQô¬‚‚bcåò¾}‚ë×éYuï¾yó™3ô¸ô¬òî @IçâR±b•*jµFC’tÉÇ>|¨[§~ýúõë×§ËIR­V©Ê•«T©jÕØØ˜˜ˆzOg@ >}JLŒ‰)_¾R%º¦n[Ýd4®C¿¦û”Ëe2™ŒîMôc¿Äf7m*¼¿mÛÎmÛŽ››Û³§«kƒ FR’n}ŠÒjŠ´4…‚Årr7nìØÑ£é3ãÇOŸž7…µkׯOIY¹rÓ¦cÇê×oÙòÉ“çÎ]¾|üøfÍš7¯];#£}û¹sû÷ß´I¥²·÷õ}ñâæÍíÛ "-íîÝmÛ‚‚½¼|}+T05e±ÂÃéqgÍêÑÃÌlæÌ‰ç̉mØÐÖ¶]»Ù³'MªRÅȈ¢´Úôô´´Ž‡ =ºqc ý·¥yszV-[öï@KÏjÊ”fÍll ýmð¿ñù\.ŸOQß[û¬›’¦kòù\®@@¯ƒ¦w|¦ûR(är©T¿Ïzõ|}}}=zòäÉÝÝ:tŸ¹¹2™TJýÿ;<ç'•é<ÆŒéÝ»L‘èâÅåË÷ìÙ½ûÀ{{6û[Sg±ŒŒœµÚ¬,Ýr­V¥‰4šÜÜOŸÄâjÕúõ º|yÞ¼ºuœ7oõê·oÓÒ>}¢Ë=ºwïÈúìÛ· ¡¡'Nšt옃C¿~cÇ6iR©’‰‰îÃ33SSe²êÕGŒ˜2eâÄ1c&Nœ4©Y3'VÙÙyÙwš\®V„î¬tÇ¥geèo€Â’Éd2‰D«Õj5úèëëãS»vAGºŽT*“åäðx|¾±1›Ífçeù|ÀØX¿OÝÔ3.Ñ­C÷©ÛÛçÿ=»wïÎ11éé>lÞ¼}û‘#û÷OzìØáÃ99C†ìÞíë»l™\þáCHÈÙ³gÏ>x™™››œüòev¶Fãímktü¸ZݶmïÞ#GV¨`oom]­Z÷î“'^µjzú¥KsæÌ›÷î¹yeËRTݺcƬ^=eЇ—5bÄìÙ§O{y9;óxYYU·n—.ÎÎuê ÒªÕÞ½ÿþÛ§O¿~ÙÙ4ibkKQïßÏ™³páþýj4Éõë#F4jäî®Ñ„¥e¹r¾¾mÛŽ»xñŒ:|úÔ»wÛ¶mÛ„‹ =«õë×®]¼˜ Ôê¼Y±Ù¾¾ô¸ô¬ ý PXqq±±‘‘®®îîÕ«3 ƒñüùË—¯_ëÖ©UËÛ»zõ/[}üigçààâÂår¹yÏtr*S¦BºO7·*UjÔÐíM·ºœ^=M?¢î³jUOOºC,ÎÌLM5ô-ú«W÷éó÷ß*Õ?ÿlÚ4aBƒvvaaÛ·÷í;iÒ‘#;w^½ºv­··±±¡ç ðûÐû8³Ùl6‡cggoïì\˜VIIII?:;»¸¸ºòù<§ß§““³sùò…éM(LMMJ¢÷ƒ®TÉÕÕÓ“.g¦qÉtçÎÇ,V•*îîvv›ÍbÕ¬Y¯^ÅŠVV*˜šÒ[qüÉË”©X1++++#C(LMMLÔÝC÷¨Ñh4jujjJJB‚½½ƒƒ‹‹~êY·Oº7ºUA}Ò½eggg‹DtŸºý”âÐ@£7ÁP*•J¥2%%)éãG¹\.ÏÍU*år¹ÜÂÂÚÚÎÎØØØØÜÜÌÌÒÒÚº Ô³.…B¡P(rrrrÄb©4'G,ÎʉÒÓy<@ ŒŒLMéTuA½! ðGQ*•J•Š^¡¬V«Õj5—Ëåòxl6›Íú¬ð½å­œV«5•J¥R*éÇ 2™L&‹ÅãñxyûGëcúV@Qú~RøG±tühÏ¥xh(É>¯€–Hrr²²RS““ããe2©T"!I’T© ==(zææÖÖNN..¦¦ff––¿c”Ï èøøØØ÷ïíììímmmm ‹‰õÑ ¹\&“J?~ŒŽŽˆ°°°²²±)W®Bw÷¢…ñäÉýûW¯ÚÙU®\§Î—§rrîßïÙÓÏoùò‰CCÏŸ÷ñ!ˆ×¯¯] Z±bÞ¼5kÞ¿3fìXOÏ-[Ö¯ óñ™6mÅŠM›FŒ Š’Hž?_° ys’œ4éÉ“¼¶._þð!Ÿß­›¿§NmÛ6h`mÍáäH’Bá­[›7/]clìî®T¦¦FE%&š™µk8~|‹º³:z4,ìüyÝGE­YÓ¬YçÎ7J$þþãÇV½º©)E)"QL̽{§N=z´~ýªUíÛOŸ¾hÑõë$Y¡B•*>>ÿ=n\ݺ"Ѿ}S§ÎšuúôêÕaaááµk[X°ÙAZí¤IC‡ÎšU±¢­mffXXTÔœ9»vmÛ¦›¢ñâøñY³&Mú÷ßÓ§]]'N\¶lÇŽÑ£;tÈÉyölÓ¦ùó·nMI17'±ØÎnĈåËÿùÇÇÇÜüéÓ üý'L¸x‘ÃiР}ûfÍß½ÛÒrÔ¨ùó;w63{ùòìY™¬iÓyóúô©];9ùâÅ5kvîÌÎþë¯ ôóãrŸ< œ0áèÑÜ\oïòå¹ÜK—vì8qâС7o""ìíéYÔꬬfͪTiÐÀÝ}Ú´õëéÞz÷®Q£Q#º„îmöìöíýýé;ãädnnb²páâÅcÇ^¼8~|÷îkÖ$'{{{y%'¿}ëíýÏ?ýûש#?|¨TÖ«7bDß¾íÚåß·|$™P¯^÷îë×6fÌ„ }ûúù9;Ïœ9lØÿº«t뤤ݻ;w=Z,^½úܹ)SÜÝ•Êøø£G/^¸0,L&c±¬¬:u œ6ÍÛ;2rèЗ/«Vݳ§qc ‹/û*¨UãÆVVju{ö¤¥:4x°‹ »£À—«VK$ŸÏãmÏŒ[·®];y²|ù5üü¾ðùR©L¦VEn&PÜôSÏtIA)éŸH—2ùOB¤_3™¶¶Í›/Y2fÌ¢E¡¡+W¶licÃb1l6‡£ûÜDݶA¥R‰D †F“’²}û‰2™¿PPíÚyç™Lsó5 jßþÝ»Ü\‚ðöþÑ~M"yþ|óæùó·nýô©bÅÚµml8œ:u†:´vm33&“ ´ÚÉ“‡ ›=›>›™ùìYLÌìÙ;wnÙ¢ûP;¹<*jóæþ=úÞ=W×=z÷ŽŠ:uêàÁvívìØ¶­ZµÛ·—,yøÉ¬ZU­Ž üøÚµ;wÖ¬ }ñÂÊŠÉ”É"#wïž:õÊ•¨¨””§OSRø|ÀÌÌÏoçÎÍ›‡%’ CBöï?qâîÝŒŒ¢~ýþýûõó÷·µ1C†Û¶-^üøñ¦MÓ¦-[vêTf¦‘QNNbb¹rû÷ß¾½|yÆÆôúå7oŽY°`æÌ_¾lÛ¶sg_ßèè/îÝ{ü8%¥L™;wnß ’JŸ?ߺ•¾Kææ‘•åà0bD` }—¾¾§µdÉĉ XYU©bnžžþìÙû÷³goß¾fÍû÷;wΘ±oŸHäæfiÙ¶íàÁ3gzyáw<”XEöB6ÛÚºyó°°nÝFŒ ­YsÛ¶–-¹Üo%‚/\ؽ{Ó¦W¯x<­V&ûðáæÍ1c&MêÜ92R©´´ìÐÁƆËÕ­ÏåÚØÔ©óî]v¶ZíímjúkóÜ´iüøLM·l¹ysôh//#£æÍ7ž7ﯿBB,pw'ˆÈHSÓqãfϦÏÊdáá3gFG+áîžßÏΛ6)£GŸ8T·®…‹Õ³çÆ+VH¥ebâéÙ¾}çÎÛ¶=yR¥Êúõ½{:lØ€{öœ?Ÿ–¦ÑtêÄf߸1wî–-11GŽ\¹2bÄßûûïÞÝ»÷Õ«ƒçÀáØÛ·l9`@·n‰‰YYuê ìâÂå„BñîÝ·fH’VVõë8`€‘ÑöíÆ½sgPPùònnù+¦™LSSOÏví:u26^¼øâÅaæO¿~Å¢(¹üýûõë[¶ŒÏÎŽŒ?+ëÅ‹Œ •J·¾J•‘Vµª¹ù¯loA¥Ñ(H$66Íš•)“—–µ²’HîÞ}ùR$R«Õj‘èÙ3ݳA™2Í›Ógó{’J÷í{ñB$"‚øöjkƒÁ¨UËÝÝÌŒÅ"‚`³ÍÌÜݳ²HR£a2­­›4™2¥{w#£׬9v¬L™Aƒ-jÒÄÚšù?Þ‘ÿ5CƒÉ$ÇÖ¶qㆠ}|Ê–¾î“^!ÎåÚÚÒs#C ¨X±]»öí32„ÂgÏtïÝ¿î]úr>Báuê88ðùt‰‘‘—×Ê•+ZYÕ®½qã;‡Wª¶yó‚£FíÚûå» ¥‡DZ­ÑènÌü¥ŸH@ë&)J­Öj)J«%I­–Þ2£~ýiÓÖ­kÛ6&féÒ¹s nûyL.— Œ=<þù§kWàòåýû_¼È;«Õæä¼zµoß… îî&&?3Ã<PxíÚÂ…õꙚfdܾ””÷(?±ØÔ´aÃ5¬¬Øl6ÛʪV-ݳrù§O7oÒgóúú?öÎ: ªm{ügº˜  ±»Ûk_ãW½vcw``wa]ãÚ…XˆŠ‚JwÎ ÃtÏïõÎwÎ0 b=ßï½ýùÇ}ÎÙuÖÙ±öÚk“HNXXµj/N›6eÊ‘#ééjõ×xC6¥Ò÷ï¯\yð@¡˜1cýúþÙ¹sÚ´† í쾤~ưªå°j¹ Ú#ëtÅű±÷îÕ¨áåÕ¨±– ~b-YæÇÞ¾Aƒóç_¾‰p13™Š‚±8!!"âÚ5…¢V­Þ½§Owu _¾,--+Ë̼~ýäɇ¿&·@ @ â×£R©Trynnfæ§OÉÉII/_Êåee‰ÉT‘Vö«\p RiBBtôOžˆÅ E~þñãÇŽ=š]Zš™ùÏ?ÿüÕªÕĉ=zp¹¡¡‹mÚôûï÷îétÄg¯_}ú”Étw7úõëÙ³E GG Ã0ŒÉ œ1ãäÉ… wï?tèàÁׯ5šÂÂä䜗•+CC«žÃë×ccÅb©45õèÑÈÈýûµZ¡ðÇ[·.^,,|xãÆùù7oÞ¼ !={âëëïïé)‘øúº¹99Ñé5kvé2{vdä®]ãÆa˜^/‘¼ysëVTÔ³g%%%%õëÞ«WãÆAe9¼r%*ª°P¡ _½’HôúÆ‚ŠÓ:]aáŽûöíÛÇb)YYIIùù}ûnÝ:ztÍšÓ¦mÛ†×RD†•–°uë† TªD5ëÖÇ={ŽÝ¡ƒ^¿ys·nþyñbÍš|¾ÝªU«Vçì|ïÞòåk׿ä4iÒ¸ñŒK—oßnÝzð`tt¯^Ç·mû«?@ @ QU„œNg0¼¼¼½kÔ(..*Êɱ·wttv6™L&£‘x?éîÝ7N  éÖíWgþ½>?ÿÔ©þý»w?vìêÕwïnßV©>~\¶¬OŸ ŒÆ»w?^³æg¦_V;th›6 þóÏ»wÿêú@ @ @ ¿>ŸJ­šëÜ—/Ÿ=‹‰qsóððñ¡Ói4#;;++%%4´E‹NŒF£ÑRý> ß•êêÚ­ÛüùC†88:tðàöí;vDF cÆìÝ»`ÁÏL¬ªoÞ¼q£°P./.~ü8'çë܇ @ @ DUù®cýß …âàвå¢E§O·lùïL—J6:tݺ†]·îW×@ @ øoY@ÿF£L–˜xúô‚ÇggƒïꪣÕΞ½víÒ¥ãÇwì8`ÀŽŸ?ã‡þ;r®Pôë×¢E·nß’s@ @ ø9Tb-•>y2th«V3fÔª¶nÝ’%}ûº¸ÜºuìØÆ+VlßþùóôéóæµoèÐÚµ‘‘ùùŽŽÃ‡§¤¼~½s§Ñ¨P¤¤DG?~å † ²`A¿~|~lì‘#7&&r¹=z°ÙF£JUP˜ø×_K–ìØA"étÅÅíÙ³n]r2› V¤¤äç }ú¬Yó矞ž^¼xäÈÊ•‰‰$$\½J̱^_Zúôé¹s{÷nÚ´iÓ¡Cii“&͘ѧObâ³g®®#Gnܸ`Aîî•—LærëÔéÑ£W¯çÏËʾÎ-…J•œ\³æðá‹ ÔµkLLJŠ“®øï€Læp˜L…B¡Ðë1ì?É¡†J•‘Áãµo_»¶@@¡|m W¯®Z5o^qq«VÓ¦Ù¾½·7ƒA"YÞ£ÑdgŸ9³víÊ•/^8:6hÀç7n<|ø¢E­Z98SÔéòòŽëÚµgÏðð¼<*•F£Ñ<=‡ ;þÌ™E‹jÖÄ¡,1~…‚Bqrúí·õëÃÂ,ã7™ÔêÌÌóçW­º}[,vr*)yóæãG6{РððY³š5+*:yrÕªƒóò<=}|(”ÆÇŽ5«eK{{2Y¡øðaãÆÈÈÛ·•Êøø7o¸ÜI“vîœ6ÍÛûÎër5kf4>z´{÷²eÇc˜F“•åï¿hÑêÕãÇK$Çwè`.#†yzþþû™3[¶4owìXl¬«ëªUË– ð«¥@ @ ñßÏ]pÐéݺõíÛ¹3…ÂãaX—.}ú´jµsç¡C2ÙÈ‘C†ôí{ãÆ¾}±±;Ö¬ùèQi©Á€aööN@@—.¿ÿ>j›aíÚy{ 6pàðá]ºøùÙÛß´)‡af4j4†ajuròöíÆ­]+¯Zuûvxx‹f4–•ÅÇ/YÒ½»VËáÄŵoß·o¯^û÷oßž˜XAa¨ööÍ›8bDçÎÇŽ9£Ó7cƪU EÛ¶aa={Ž·bÅ‚=zìßo»¼$RyõfUÐéÊʨT2™B±· éÙ34ôW¿Ø_^_XxçÎâÅ;v”–®]ۦͷ( uºÃ‡¹ÜñãÏœéÐÁÛ›Á¨ø®[·fÏÞ¼¹°pêÔÛ·W®l×ÎήS§Y³Þ¼¹zuëÖ¿ÏhÔhär_ß°°;wnÝ>¼Z5:ýK90 ‰ñ/[–ž>pà¨Q«WwêDŒßh ïÞ??<<>þÌ™7o¢£Uª—,éÙsôèU«ºvíÖ-!áÊ•:uNœ8}ú?¼½—,Ùµ+5U¯oÙ’ÁHMݸqÊ”9sV®|øP«MJÚ¸qÕª˜‘èÖ­­[­ËõôéæÍÎÎK—FEyxìßóæ„ ))vë¶pallÿþW®Ø.c­Züñöm¯^z=† @Ex@ @ ?™opÁATÑÂo2ÙÙ¹k×}û^¿îÛ·iÓñãïÞ  #“i4L¶|öÚµÈÈ]»سgÇŽmÛ†ÕëóòΞ=ûÄ cÑ¢°°æÍÿ/{d>¿I“°°U«.]ÊËÓë¿&Ÿjunî‘#»w‡‡‡‡ïÛg2sèPDĺu­[7mºbÅû÷J%Ü×±cëÖË—þ¬V—A§ËÊ:|¸W¯¶máÿJåû÷aa:uèñåÔ?~$¦¢T¾¿p!žJYYlìСõë·nßO ßµjÕª5uêÝ»B¡^Ÿ›{øpÁÁ;^¼XP`0DFöèѬټyññR)X<ëõ¶,ŸÍ± p§96bׯOJR©ˆeLM-(ˆ‰‰‰‰ŒF “Hîß<¸~ý¶m1¬¬ìñã¡Ck×®Ysüø½{¯_ÏÉQ©,O·Ä0¥2-íôé„„ÒRüŠZýñ#±þ¡Nl׿\þîÝäÉ#GÖ¨aKõ ìߟšêêúÇ ØÛ“HF£Ñh¬[—˜(•Z¾O¹¾]»Õ«—-[¼øêU­ e×®AƒêÔñð¨V­eKWW ¥¸øöm¸ á¡¡cǾ} W+.×Ö­ZíÔ©±±·o/YR§NNεk‡•–6l8ztƒ™L,cóæ¾¾îîæ22~~ü1cÆû÷rù×|K@ @ Ä·ñC}@S(ëÖµoÿæÍŠ Þ¸QRR±Â¸wï?ÿœ:u„ɓ'O3fذví¾ó·X%3™^^cÆL™²hÑÚµûömÚ4jTƒ<^\œLæäÔ®—‹÷98Èd¿}+[æ×`‹_¾¼z5=]&;p`Ïž]»Ž»x15U" ß¼©¼n]³f ;wΘqìØðœ­×>|xþüóç£F?nÜ AM›Êå11—.½y£Ñ(OŸbØÈ‘GŽÄÇ¿x±ÿ¬YGŽdfJ¥%%pÂwíêÜ9%®~9M­vëÖÜܱcÙ½»WW*Èe|ðàÇ'Oˆe$“i4O«-¿\€@ @ @ü ¾Sm2YÚŽ6o¾dÉöí:|ø°dÉâÅ×®Tö4•Êç7l8i•*1™É›7B¡VK¼K« _¼¨U‹Ïÿq.ª¢Ð6™tº²2­–Juu0aòä©S'MZ¾üÒ¥—/NúQ©ØªIË8Ê+¬ “Éd2¾Íß³96b;u3fÊbCB(”ÄÄD¢ 9²O77k[äoY¨Ú3d2ƒ!•êtfe)ײeffQ‘Xœ––pèPýúvvæà@&+•ùùJ%®ÂÖj9œš5y‰äòÜÜW¯$½¾qcW^Ÿ<ÙµëŠaa‹½âìܡáC—. äâ"—¿ysñbTT|¼D¢Töì9zô¨Q'NìÙSR2zôĉӦyxðùvv]»Îž=uj‡ÎΦ×K$oÞܺõìYIIIIýúÇ÷êÕ¸±‡Ç°aW®Œ‡§"½|™œ¼té¡C:a˜ÑX§Î¬Yýûs8sæ¬ZµeKp°·7ƒa4 bñ­[W¯FE)"Q|ü­[Ö¯Ïç?|H ùûïÝ»[µš1ã·ßÚ·?q¢^½æÍ…B• ¿Ú³çèÑ;»º’ÉxÞàÙ‚…B,ÎÏ¿yóæM‰\\ð2Οÿûï]ºÜ»× AH”qâÄÖ­íícc##ÃÃwíÊÌôövtd0òò>sæÚµÂB…B(|úôêÕ¨¨±c§Ní×Ïòm°XÞÞ=zÔ©#•îÙ3cÆÂ…Ç_¼qòdd¤X õÿà†•–âõïáQ~Áή~ý={öíKIiÛvîÜ  [‡FF^º4~üš5K—.XPPР@°råÕ«+WÈd—/Ù½{tôßß¹3oÞ•+«VÍŸù²Z]¿~µj2YaáðáÇŽ=”˜8zôãǵj>ܺµ@€«gI$ ]»ÈÈK— !þçÏ)‡•+¯^7âOH0ûõ«WÏÃcðà½{—/OJÚ»wß¾-[JJ^½JNîÝ{÷î}ûÆŒa³OZ¾|þü%KÞ¿oØÐÁaàÀC‡Ž àrOžÏŸK¥x¨N—•µwo·nõë÷éƒaee±±C‡6jÔ¼ùªUÆկ_Zj0˜cH<ˆ•H,Ÿ%ƆaF£Fƒa¦V''oÚÔ©S×®‹ÅÅ™¯–•ÅÇ/ZÔ¢…Z]>W¶ò­ÓegïÛ‡çÃ0L¡xû6,¬]»¿þ²]^2™Ë­S§gÏÞ½õz 3™¾æH¥/^¹téÁƒ÷î]¸0}zP‹õã_µ­œs8L¦B¡P|}Îz}aá•+#GöésôhvvÕ<È”G§ë×oëÖ”[\¹2p`hè„ ”–šL¦Óuì8kÖË— …å}MzúîÝcÇž<™•õmù1c0BºbnîáÃ;BºÄûŒÆ’’k×.\((À¿ •êãÇ%KÞ¿W*•ÊÄÄåËÛ¶4èøñœ¥2)iãÆ víJMÕh0L©„p½Ã0 ®j4æt¡¼ætccß¾ oÕ >àXÅþý5êÝûËe×h~ÿýÈ‘ìlH @ @ âãÝÝ==ýü4hܸM›ÐÐ-ºtiÒ¤yóΛ4iÞ¼cÇÆ›6mß¾Q£&MÚ¶­_¿Q£Ö­ß¿óæéS¹\&“J¿ÁšD"‘,“ÉÎÎ;®]±zuLŒPˆ«ÚH$*•F#êF|Ã0ÌdÒjÅb S(’’öï?wN©ìÖm̘Æñëd2Ÿ_¿þ˜1½{ú$—OU™L$.Èd¯_ïÞ=gÎøñ‹íÞ½oß–-¼z%•ZºÆ6?¥Vgdœ=»wïþý[·®Z5aÂ_íÙóâEY~‡NWTt÷î±cçÎ=~¹}ûá÷nétf4SYµjüøÉ“F£Q&KJ:}zÁ‚¾}›5ëÚà ©4!áÔ©yó äÇ'æÌéÝ»yó®]Aº¢£cÓ¦!!®õýZ­Ñˆ/ ˜Lz½N‡aJejê©S÷îaX‡­[»º²ÙµkÏ›·~ýÔ©þþ †R™š áT*†a\¥ÓÍéByÍéÞ¼ÉdN›vë–yáƒD2™ ‹ÊËÎ`”•={çNa!²ŸG @ @˜©Q#(¨^=“ ôKjµµG¯×ëu:¹\&“HÜÝ==«U+,,(ÈÌüa.8¨TGÇŽ_¾\¸páB\ ]^Ý \»¹k×{öìØ±}ûâÅ“'ëõɇŸ?k4öö99ÑéÄûét'§&M>~,+û:ûLµ:7÷ȑݻÃÃÃÃ÷íðѣ÷ìY¼x×®3Žçr§O_²dÊ”‰gÏ>sfæÌÍ›SR,••¶Ô§NM›¶{÷¤Iý5kÖܹӦñx/Οà~æêÚ¹ó¨QƒµnýçŸ3fŒÛ­›«+¦VþLLeîÜéÓùü”­–Ë­]»G^½X,•J©Ä0 …Ç«W¯gÏ>} $8¸wïß~ãp$’ììwïœûõ;tèäÉiÓÔê+WÖ­{ð ¸Ø`8qbÒ¤M›ÊÊÆŒYºtÆŒI“&Mò󳶸&“¹\bl&,^¼};16b)”ñãçÏ'–1=½¤äÝ»#. ›2eΜ©Séô/NžlÞ|ôèQ£Øl¡ðãǨ¨ŒŒ:u¦N ´L¿eËaÃôôäpœ[·þóÏY³ µúógbýCØ®¦¸¸A‡/)‹Åb£‘Íöð`³©T\fŠOŸ¤RK[_ƒA§“˩Ԅ„M›ú÷oذmÛ1c"#ß¿—Ë¿ÖjÜ`ËÓÓ!]\þ9ooH×ò89uérâÄÔ©sçnÛ¶}ûªUóçÏûæMPј––˜¨PÐhA\ÜÒ¥ÁÁÍš ¶wï›72™^/—§¥Aøo¿Õ©ãáWu:sºP^bºR©Édg5—“síÚÁƒIHÈäÉU);‡SVöäIIIå¶æ@ @ ˆÿ-ìííí]\ôzîk< p8vv<žB!“ÉdÔïË€ÉDTÝQ(Ü»7zôòåݺ5lxîÜĉ˖ýùço¿Y>Ó»÷ŸNÚ´)‡af4Nœˆa*Õ‡AALæþýoÞ…ZmÛ¶öö¸Õ«V+¾|Y«–»{§NV±¥rE0™^^cÆL™²h‘eê2™“Óܹ^^¸ÂÔÁA&{üøí[±X¯ †a˜^_TtïÞùóÙÙlöر†alvݺÑÑ11_J[¯‹_½jßÞË«fMa±¼¼:v4§R‘j÷tº“S£FAA<•ÊãñxŠV+‘ètÃ¥Kyyöö3fÔ¨¸F¥ÚŠÑ…!æØˆeœ3ÇÍÉd³ÌeT*¾w/3³E‹Ö­ét2Þ‰D&cæìܼyÏž]ºx{³Xä/,f@ÄÅ™ëŸÅ°Žd²ðp¼f<<¨2YÕ°ƒ™¬Tæç+•z=† TªVËáÔ¬YÞÖ×ή^½ðð;ëÕÃ0 ûóÏÔÔˆˆž=5ªnÝG.\ ™ü2ŠŸ¤‹—N¡ÈÍ…t-K]PpöììÙ‘‘[·vìèà@"iµ½zmÚôæTj0˜L §={nØðúu³f›6õì9`À¨Q ž;7l„_º4|ø† ZmZÚ¦MoßxºP^bº<¦Ñ¬^ýÏ?YYsæŒ{ýúýûþ‰ç¤ò²W­Ü@ @ ˆÿ- &“ÅR(d2³£å/C£ÑhtºN§Ói4ß`MT:›Lz½Ñh2:Ñ.3š7Ÿ7oÛ¶ž=SSÃ×-³ý,@&ÓéÆáÔ®ý×_²X7o;öæ ~Õh”Jß½;zôÚ5¢jøkrXžf͸\¡ðáÃÜ\üÀÒR.·eËúõ,UŸTª½}ƒuë299¸S“I¡HI¹r%*ªòP©SQ©òòîßÇS!‘(&Ãpõ¥Z]Pðü¹HTUûÓ+'çܹ/p‡'2Ù·8O –ñüù—/E"bss‹Š^½jÕªY3__M£)*R«õúª/@éõJ¥Ng2AëêÄVýcƒáìüö­Hô¥Õ•Aƒüüd²{÷RRd2ðÈL"5iÒ¯Ÿ—‰”™yýúÉ“ ¥¥mÚ´hѱcYY †ét2Yn®^Ïã5jäàP¹“òH\nÍš.¤(ÇÇ¿xéBŠb±^a ‹åî^XÊq Uua!ŸïìÜ AûöŽŽ2Ù‹%%N'—ççëõ|~ãÆNN®® @8<Wœœðt¡¼ætûôáñÞ¾ Ÿ={ÈÀ@6›DÂ0“I£))©JÙår¯E g篫@ @ ¢r¾B ¾Š££oÜxòD,V(òó?vìèÑììÒÒÌÌþùçPË’É\nhè¢E›6ýþ;®4ÆŸ½~=6öÆsç._Ž‹‰ˆ*S&30pÆŒ“'.tr:}úСƒ÷ìÙ½{íÚeË.^tqY¹²*GúA*wï^½úè‘H$—çæ¾z%‘X:î˜6mÛ¶áÃ%’íÛW¯Þµkß¾-[ غuîÜÀ@*U"yóæÖ­¨¨øø[·>,*¢Ñêן?ëÖ‘#ÿüsâÄiÓ-Z°`ÍšÛ·¹Ü&Mðøôzü©gÏ®]‹ŠÂSd2kÖ$¦±m›HÈdb†q85kNšÔ¿¿³óœ9«VmÙrúôÓ§L¦½=•*ߺuõjTTQ‘B!AN^½ºyóæMbÈŒ›6ýþ»Z>hÐØ±S§.\¨ÑèõøÕ¢"PÙšóÏ(b116bõúÍ›ÿXF77/¯NÖ¯?~úô­[ÏžMIñôäp >sæÚµÂB…B(|úôêÕŠÕñ,–·wÁÁJå‰sç.Z¤Ñ05këꯨ"4š‡G\ܵkYYÖî9ˆtë¶yóìÙ..ǯ]»cÇÎ6¬X±tiÆ,–Túöí™3ž;G¡p8¾¾dò­[+V,^¼~}Dľ}$Ò¨Q;wNŸîìüúõèÑK$UU¯S(nn.¤¸eËÓ§;Bºbn®Fƒa$’½}ëÖ†‡¯]»wï¾}[¶lÚ´s§TÀçûù·iÓàÁyy›6­^½yóîÝÍС›7OêçÇãùùAøž=ûömÙWýüØl<](/žî‚..11+V;Ö¶mݺAA!!ÁÁAA7köÇ•—ÝÏÁP«y¼Áƒ»vusû>ߨ@ @ „%¤»woÜ8u* $¤[·_âW ÓÞ¸±s§‹KÏž³gÉ•@ @ ñߟO¥Vä‡@ pppu&“Éd2F£Ñ¿1 ÃŒFbŽÑh0¼}ûêUl,R¶!þç¡ÑÜÜê@ @ (F£V«Td2…‚Ÿ/Wt:N«¥Ñèt©Ü@ @ Q¥¥bqQF£}ÍÙar¹LVVÆáp8\.R@ÿF£L–˜xúô‚ÇggË‘~?6žï+‹TÚ·oóæ]»þº< @ @ ˆÿ¿‘J%‘èÙ³ØØ›7E"¡°°ÐÖ`õ\Z*—”€ ÿ  zõ¨•EþäÉС­Z͘Q«VXغuK–ôíëârëÖ±c7®X±}ûçÏÓ§Ï›×¾ý¡Ck×FFæç;:ž’òúõÎF£B‘’}üxxø•+6dÈ‚ýúñù±±GŽlܘ˜ÈåöèÀf*UAAbâ_-Y²c‰¤Ó?z´gϺuÉÉlv@€Z]P’’Ÿ/ôé³fÍŸzz>|xñâ‘#+WFD$&>xpõjE97ŠääK—¶o¿_,vt¤R•ʼ¼ž>ÍÎÞºõŸŽ­è)2™Ë­S§G^½ž?/+&ßÂ×Å£RegGGgdðxíÛ×®-|){eyàñX,¥R©Ôë1ìÛË‚@ @ @ þwqqqsóòb³íìx¼¢¢üüìì””OŸÞ¾µ¾¬¤9.—Ëõ÷ ¬W©_J‚N÷ðèÖ­oßÎ)útéÓ§U«;’ÉFŽ2¤oß7öí‹íرfÍGJK  ³·çpºtùý÷Q£Øl k×ÎÛ[ À°‡ïÒÅÏÏÞ~üø¦My< Ã0£Q£Á0 S«““·o6líZ±xÕªÛ·ÃÃ[´À0£±¬,>~É’îݵZ'.®}û¾}{õÚ¿ûöÄÄŠó«Óœ93~ü”)wîüöÛÝ»GŽ WŠví""@K"Ù*/‰dûÚ×PÕxîÜY¼xÇŽÒÒµkÛ´ùq h@ @ ø1ØÙÙÙñxvvÁÁ_ûì7¸à ªVá7™ììܵë¾}¯_÷íÛ´éøñwï …†‘É4F<ÚD"‘®]‹ŒÜµëÀ={vìØ¶-,lèP½>/ïìÙÙ³Oœ`0- kÞüÿ²Gæó›4 [µêÒ¥¼<½¾òœéõùùgÏN˜°aƒD²páæÍ¯r8õ뇅™LbqLÌœ9ýú#ƒׯ߶í±c99å]Uhµii{ötíÚ²%†[‹øøÕ«,غõÝ»¡Cë×oÝúðáìlütHëÀh4§ˆaÉýûÄOŸNH(-5Í÷>Ü«WÛ¶ë×'%©TÒ©S‡ééÄxËÊbc‡­U«f͉£¢Š‹1ÌdR©>}Ú¶­U«† [·Þ¼Ãt:±øýûÔT™ âïÑ#8¸cÇ‹ ÈÔ1W&“ÅÇÚ¹ó¥KÃùó©© †étYY7ÈRùþ}Xäí[Ä@ @ @ü·óE è¯BY·®}û7oæÍ[¸ðÆ 6lptÄ0j¹4z÷þóÏ©S›6åñôú²²W¯ªâ ¢ªVÉ&“^o2™L¶Ÿ “:tؼùÂ…ÐÐÌÌçÏ/_..ÖhŒFƒž3c0ˆDññ·nÛÛOž n-BC—.]¿>4Æ­Ø‘Gå)ž8±gÏêÕ¶R®^MO—ÉjÕºy32òÀ0L" ß¼‹5 óó£Ó¡FH$ £ÓCCëÔ0ŒD¢ÓýüzõêÓÇÑñÈ‘'O0ŒFsp¨[×ߟ˅EBÑj%Î` “ÝÝ;tðó‹‹»xñĉW¯ž?‡\a“éáѾ½Ÿ_VÖ’%½{pöì½{. bñË—7½~Ïž]» †’’ÔT‰D(ÌËû‘R„@ @ @ þ[øÎCË«P›7_²dûö>|X²dñâk× *{šJåó6œ4‰J‚ƒƒ‚˜L‰äÍ¡ÐÒ‚X« _¼¨U‹Ï§~A]N¥òùÁÁtzIÉ£GjµåuƒA&3”ÊÄÄ-[ú÷ïÖíÀ‘¨A7·ŠOp4™ŒFÎh4¾÷?sŠŽÙ§­ñòR©®®:3eÊ„ “'OúòeB©S!!\nÅOX*ÛM&2™F³u¯e® ,sE¥º»÷ïôè“'§O/_Þ¡ÃСƒíÚ•ž.——•AÞ W“&-_~éäíûê@ @ @üwòЃTš}ýzl¬X¬Päç?~ôè¡C™™bqzúߟ:Õ´éĉ=z¬^÷äÉë×+Wvì¨ÓaØÀø³×®=~üô)“éæf0ôë׳g‹ŽŽt:†q8mÞüøñÅ‹ìÞ=oÞ¡CNPFSX˜œœ“Ããõêµ~ýŒ†aRiey´³kÜxëÖ¸¸ë×>ܳgÞ¼½{ccƒƒét¦°ðãÇ/òó#"^¾ÜÏÏÓÃ._ŽŒÜ²¥n]#/ïøñ5k¶nŰ&M$’øx“I©ìÙsôèáÃOž^©T*{ö>¼NHq×®¿ÿŽut„ׯ?|xìØ:u¤Ò={fÌX¸Ðdš:uæÌ'öìi×nþüßïÒåï¿«W¯Y3$dðàeË&NìÐÁÙÙR ¯Ñdfž8±páÒ¥C£FdrRR~¾—ך5·ooÝ:o^Ó¦-[>{vëÖÇ={ŽRX¨P…xÈðáuêÄÆFF†‡ïÚ•™éí ¹zó¦¤$-íùóeËÖ®-, lÒ¤Gáûtñòòó«Qãĉ={JJFž8qÚ4>ßÎÎãk×Ù³Ÿ?_µjåʰ°7víªWÃùÕb@ @ @ ~6µk§¤$''%Ùº‡t÷î§N„„tëfyI*}òdèÐV­fά]{þüuë–->¼S§_U£Q¡HN~ôèÊ•cÇV®\¿þýûû÷®^ýUùùÕÀÛiÝzÁ‚.]®]»woìXpÎ@ @ @ _ŸO¥Zú¥¨P=ÃïÊЕX@óx-[þóOB‹¿ºø†ad2‡خݰak×¶k7lدÎϯ¦bÿÑ@ @ ñó ªž‰!¶ÔÐ?ôBÄ¿>¿U«þy÷îñã_@ @ ñ¿QÝ h[jh¤€F @ @ D•°V1Wü«3üŸƒÑ(“%&ž>½`ÁñãÙÙ:ݯŽçûÊ"•öíÛ¼y×®¿.@ @ âJÐpÌ]HHŸ>ÏŸK¥x¨N—•µwo·nõë÷éƒaee±±C‡6jÔ¼ùªUÆկ_Zj0˜cH<ˆ•H,Ÿ%ƆaF£Fƒa¦V''oÚÔ©S×®‹ÅÅ™¯–•ÅÇ/ZÔ¢…Z]>WçZ§+(8}zذÎÇŒ9wŽxE¡x÷."¶çd2™Ë­S§gÏÞ½õz ûvË_Ï•+#Göésôhvö×8ùþrx<K©T*¿¯,@ @ ñí|ƒ ‰D²üM&;;wì¸víÔ©«WÇÄ…;;9Q($•J£™ï¶|Ã0ÌdÒjÅbÉ`((Ø¿ÿÜ9¥²[·'7Ư“É|~ýúcÆôîýñ£\Ža Tž7•*9ùàÁÝ»SS[µÚ¿¿W/â5§nÝiÓ0L¯‰ž<Ù±cÁ‚ÈÈü|±X"±·ß¶m÷î |}-ã3™TªÔÔÓ§½{73óóçëן=c³ÿøcýúÄÄ­[gÍ0àìÙë×ÿøÃÓS¥êÛ·eËAƒðÀ‹9Å·oKKÅâ»w ºvݶmûöþý7mzú49Ùß?2rëV­68ø÷ßÿø#$äٳ͛wìHJrp¨Y“Ï7™5;vâÄ&Mø|2Ã0ìÇ“'çÎ]¸pçηo»wŸ:uÈ´´ë×ÿþûùó‚/¯!C""öî…ÜgfÞ¾¹gOQÑÇÑÑjuŸ>‡­\Ù©“ƒƒÉ$»`Á¡C³Xññ«Ë—><)éàÁ Ž‹íí{ö;váºuÙlµ:#ãܹ#GîÜÉË+)yõêÓ''§ñã7nœ<¹I>ÿ—H0@ @ øå‡¹à R;v|ùráÂ… cb„BƒÁZÝ \»¹k×{öìØ±}ûâÅ“'ëõɇŸ?k4öö99ÑéÄûét'§&M>~,+Óë+σ^_Zúöí‹r¹“SëÖîîLf¹Â’™L£Q*}÷îâÅG0lĈ… ÃÂèô/Nž|ø°¸¸¼« ­6=ýÈ‘)Svïž4iÒ¤ V­Z¾¼I£1?_§c±T*³}1…ÂãY†˜!¦8eÊœ9S§â)ŠÅ|¾§'‡ãìܺõŸΚ5a A>>§NM›¶{7…2~üüù“&ýõ׬Y/Οà@f¦ÙF:8¸W¯~ý8œ²²ÜÜ„‡¾}7o>}úöíC‡~û-;ûðá9sÂ0½^¥’ÉjÔLÐhT«E"µžÕ銋ccïÝÓh‚ƒ‡ «¼¦ WPÄ\a˜L–qíšBQ«VïÞÓ§»º …/_ÊdNƒ7¼¦L&…òvý:XtÉF@ @ @ü/Aùãáà ptôðð÷·¼¤Ñääœ?ìØ“'Í›õûïîîMBÂÝ».üóÏÍ›ed0 F~~tôƒIIb1ŸïëÛ£GHH` ƒáéÙ´iݺ"Ñ?ÿÍ›?{þüéÓ11ÉÉ ƒQ­ZÞÞl6…‚aà£I“®]½½÷îŽ~ÿ>#ãéÓ›7ÏŸþÜÁ᯿ºwoÖÌϘ«'Løý÷ò¢ÑœœBC»w¯Q#7÷øñ›7ß½ËÉIHˆ‹»qãìÙ3gÒÓ{ô6lìX')éÔ©ˆˆS§Þ¼ñ÷×hÞ¼¹?5U§3KKâãSSÉä&M5 mÕªA­ö¯¿V­:}úÕ«—/SSìׯCîÚµ]»"".^üø±°°°P«ýø1.N$âóÝÝi´ÌÌÇïÝûø‘DjÚ44´Y3—ÏŸOŠŠ*.vr2>~|ðàþýÌL6{ð`ïéÓÈȨ¨Œ ÉÙ¹víqãzö$“ïÜY¿>"âÒ¥'O^¼P©56¬m[‡L&¾ýû}÷.9Y(Ôj33<¸z5--4töì5kºv½tiÏž]»T*W×ÚµCCkÕrp8ztÇŽ;!¤Y³ÐÐfÍfÌ=zÑ¢ÒR•J¯‡\yx xpß¾]»Z‡ÿ°CÿNÞ¼¹yóÆÂB¹¼¸86öҥ˗+ò&@ @ @ ?kE³-Õ3€, @ @ ⚪[@kèÊÐd>_ ptüÕD @ @ įA©T«¿^]¹ê »¹yxøøüê"@ @ âנѨTRéψ™Êåòxöö……éé|¾½½³3N§Óé ™L"ýê‚#@ @ âÇVÏ zf±X,6ûg¤B*-‰ ua@ @ ñßùWg@ @ @ ÿ 4@ @ @ ~ ߥ€Ž‹;ztñâ~ý:v}þú‹N÷óc0ââ.\8{vÚ´¹swìHNvrjݺmÛš5¹\“I,ŽÝ»wåÊC‡>üô)!áàÁ;wJKCC7¶³‹‰Ù³gÍš#Gîßÿ>;;=]« ¨SG xÿþÝ»W¯ìì7nÑ"(ÈÎŽBÑj‹‹<رcÉ’;nÝJJJO¿p!**5µZµÐÐ:u\\H¤ÒÒ^½ºuûR~þ}Šu@ @ øV¾Ò‡É$—gfÞ¿/²X â¡:]II\\r²—WDDdä™3.„…q¹÷ïoÛ¶oŸ^_TtëÖ¼yáá÷LŸ¾xñ’%óç7hœ|êÔž=ÉÉJ%†-X°}{bb×®Ó§O›6iÒäɳfétR©Vk2iµ¹¹ÿü3oÞÁƒ³fMž“£TêõJ¥^o2a‹¥Ñ|þ¼iÓªUèt#Fôè±pa«VÞÞF£PxõêåËiieeÉλw›LJeZšH$•T%ß$REad21œD¢ÑÜÝ»wÿí·úõ ôZsþår½ÃNžLIáñFªWO “1 ÃΜ¹ÿèQ b’É*JF#—SðŸ;—‘! Ö´©“•ŠaV½z Ó¦]¼˜•¥V7lX•ü @ @ Ä>UT@3ÞÞ“&͘±p¡e8®xµVêR( œ5Äâû÷gÍ1âÀ®]Ož<}zÀ€–-ëÖöìyúî^¶,:úÙ3.—BÑjÅâÄÄöí-:vìï¿[·¦PH$6{úôiÓ¦Lû§M›5K,®jM&KïÔ&“^o鱚D‚üV”@§ÓjÕê’• ü9“É$’ѨÕêt$N£}]¥[«ÅI$b>¿œ@ @ øÏ§ .8*;\Ðö5üŠÉ¤Ñ”–––j4z=8ÃP(²³?}*+Óé ™L§3™¶l9zôÓ'…Âd"‘èt‡à`77ƒÉ¤Óííë×ï×ÏÛ[,–Ë!Fƒ¡´4.nÏž£G«R^$‚dfÞ¼ùú5™Ü¬YÿþÕª1™ßò@ @ â?›‡jµ÷ï_¸pæÌµk11/_æç׬9xðï¿W«ÆfãGàÝ¿úôž=×®=z”˜(S©|~Ÿ>þþ%%.œ>}íÚ½{/_ 0cÆ‚"Ñ;›7oÚté™ìãÓ¨‘BñömLÌ;YYtzóæEE'Ož<—‘‘•õùóë×uëŽ9aBçÎ~~ÎÎ5k6kæä4hÐäÉÛ¶=}÷ö­ÉÔµëäÉMšx{³Xæü–”ìØ±{÷áà Îår¹þþ]ºïÞ:µyóîÝW®¼|™’R­Z‹õ매ܿÿâ…DÂd2™‰‰±±÷ïK$t:ŸïàP£F`à‹gÎìÙóâEANgoïå5}ú¤I§¥?¾qã®]—/ÇÆêõ-ZÌœ9lXƒ…B&S©aaü±xqI •êâR»v@‹¹wï‘#*•›[Ó¦:Ô­ëêܺµ—Wfæß>ýñcFƃbq£F‹/\ع³·7‰$šKa;?;Ö¯_½ú¯@ @ ¨ Ri©HTXø«³@ @ @ ˆÿ6ªà‚@ @ @ ˆ¯) @ @ ñS@ h@ @ @ü@ @ @ ?êåËW¯Þ¼ù«³øOÏçóùü溺¬¬¬¬ìW—¦28‡Ã¡R©T*õç•”L&“Éd.—Ëår¿-~£Ñh4e2™L&ûÙuù„<O@XÃãñx<Þ÷Ä R©T*•N§Óét¿º4?:N§Ó™L&“ÉüþØþûê@ DÕ¡ÚÙ±X,Vå7i4Z­Ápûö³gÙÙùù%% …TªTêtd2‰„a\.‡C§{z:;ÛÙuîÜ´©—ƒA£Q(¿ºhˆoÃù²>¾¾¾¾0'2(..,,,üÏQ4[-M,3¦W¯  ÿkCü:*¶wýOãGå®ò’âW+¾‡¨ÞÄ­$ÌM4„ã'y-²åãùž 1L&“ITïZæBˆêT[!åÓ²†34[¶Öƒ3@X*ë+!ÆÓpp‡™Ÿ ˆõOA+S[¦ezUCd2©T*…‰41fë´ˆ%… 1œNg0 wwwwww\¥n­þ†÷ ï¨â|`j–|Jo·ZXþßÖÕŠóCü:à\=j~Ú2ÿæ[ŠúªÍ…ÚúÒÍaÄ<àe«5(ß2À³–2fû‰òñY‡šó@ ·eO ÕLaaaaa!L¢‰Ë-Ä 6H—¿@@@ñ-X¿Mâ× y&Z„An‰ïúKK-åß;Q®,sUqZ½÷Š¥ëûäª2éªH½E|ëÄrY·…ÖÒE”I¢”XËPù¸lI-é"¦b-]Ö!ÙÙÙÙÙÙZ­F£ÑX¿Kkéúš¶Ë\?¶Û®ŠÃmKWÅ!Ä¥Yké,%üÿ—¶ëë¤ËZJ«Þvcû6é"Ê ü†¶+;;+++˲æÍ=Ü/ØÛÛÛ²Xæ=FøHÄ,'–ýTy)²%+Äz´ì[­ß5Qª¡6¬åܱD¶%ªbù!æÍ:~[Re]Ä–Ü–¼Y¿ubêÄwgýŽ*’+âÛ,/Õ–ßWeOY·´Ö1XÆl47pòùó§OŸ>••I$‰µ|£žÑÖ_õŒ÷Œ¶ê÷k©¸^ÌvúDù¯øN[9ùQ÷mþ«R3ðÔíÛwïÞ½këž®];wîÜùkKñm94·ï_Ï—ÒÅ0£1?ŸÁ¸qC"¡Ó_½ÒhH$¡ÐÉI­nÛV Ðë7¦Ñ0ÌÎÎhÄ0ƒL†Và ÃdrtüÚwm”­Ù²/3‡±n½+ª=¼tx DS¼o“¢ŠÊ"•úø(•²Ùlv“&P:0z(**,,,g­b±X,ƒ+*ùþÔ+‡Ã¡ÑX¬  ??WW £ÓM&…‚L6©T:J¥Ó *ÕÎŽÏg³›5kÙ²yógÏbcŸ>-**.ÎÏÿþÔ™L‡ÃQ*•J¥ÒÇÇ×·Z5™L.W(\]œ‚;wJKõz__ƒA«uvf0t:77;;±¸U«víZµÊËËÊÊÏ¿{÷Ψ¨ààË—/]’HºvíÙS¯¯V­Z5ˆÞ#•hiXP ©TçÏÇÄdd”•Ulï Ðét:öðá¹sË—óxvvL&ˆ4e«W=úâÅõëÑÑ/_îØqæLBÂàÁ;V¯îèÈçWÍP¨×3V Ž>H$|Ú,Äm{//Ðæui\táÓssãri4 3m¯À§¥edddxxxzzzþ˜N jäååææåÕ¨Q½zõêÄð§OŸ?þ|4ÿ(?³Ö‡ãx~òòòò:vlß¾}{bø½{÷ïß¿/ðù|>‡cöÉ 5ÿó|×4oÞ´iÓ¦ÖW¡–`âZy<Д|ÿ:³H$‰Dà Ú:WxsfÞšg{‚k0 Z­^¯Ó%% …ÉÉ®®L¦†99*•¥¢™ø,1Œ8= ŒÄ>Q)ŒÇS~ZE|§Ä²§ ¶”æÄ¼Ù!æÙ Ñ–„˜±Ë±é›€¸ÁŸd‡§&“É*PîÛê&+ê8­ï„ŽÊB¼ƒx¿ù·-ß¶ì߉σÚsøíååååå%‹D"ñÙœœœœÜ\ƒÅ²³svvtäó‰’P•nýK­ál/fË[qòcÓøññU¶ÜUõ’WvÕÎŽÃáprsssss‰‹1 â©QÃßßßü“ÃÍV<éé%%jõáóXl6› #gg&S§ëÒ¥n]??gg|Tðª¥ø­±þh¹²üBÔð»ª9ü±rÅ`8:::¦¥¥¦¦¦ÇÐvU«æëëë ÒeÝvpºl™¬zýü|}}}¿4yø•mWåÓ]bŸb}åG䶼аj}AyÉ´•÷Êãùý†a˜»»‡‡‡H•H—F£ÕjµuêkÇS02´îs+V¾™Ç'æ©1q¤ûùsrrrr~~~~ŽŽ•/ET^ÏUyw_z¶¼‚²ò§¬|Dç`ßÛ×Rõt‰cf ¬Y³fÍ»woß¾}›Á Óét¨xËUïÄD>ßß?'ÇdÂgs-ZètÙÙ\®J%‘ïüÚž±j_eå1þŒºG#®Š±Õ3~ÛGljÖ¬U«V-GG''''XQ«U*•ª¸¸¨¨¨(%%%%%úS|Ç$Ñ‘­ü{Ky»uëÎ;w""""""†:tèÐ Æ7Žx§Fcoÿè.‘´lI"™Lx=ØŠ?$ÄÓsáB&ÓÙ¹nÝääôt˜Ï’Hsçλq£­ü¼|ùèÑ´i®®\.h•´ÚW¯>}Òj×­û¶2YYæïßµk£Fnn ™L"=}úù³Xìà`gG£y{;;³Ù))yyryÆ^^$ÒܹóæÍŸ¯V+r9hx6nŒˆˆˆxÿþÝ»wï¬S«çÂB&óæÍöíëÖ7N©ÔëûõÓhôz©T­ÖëKK ½^(4L&‘H¥ÒëÅb™L§+..+Ój³³•J™L§sqÑéÚµsp07¦ÑL¦/-ž-9!ê’“SRRRÀi†›››››Q=¯ô_”•••Õ¬Y³fÍš¶Ú+ï_˜ñõ-*:yÒÇÇÏïîÝ{÷òóÛ·g³‡ Q*©TƒA§+*2>~‹Õj‰D¡Ðj•J:F#“»uËÏ>Fß“zU¨]ÛݽNM­&“ÁM¡Ðéòó_¼HHH||<===˜Ì€N«ÕëkÕªY38877/_€ÿRRÞ¿É{÷ê|Ë–-[¶lñ³TzæÌöí·oèt:L6xpÿþ\î³g™™>èt*•TZV¦T|üد_ÇŽööžž&“YÛü/4ü£VkµÃÍ›qq99•«žáÅÿþûo¿µiÃçs¹,lÌ*.‰d²âb©T«ÍÈ(.V«™L''±811==**..'ÔÐ4Ú—rDG‹ÅÄÏÔC–ÿÇ;Kå’^¯@âžsÁª6¡ EEÙÙíÚùù1™¡¡µkWd€êÙìßõߥ‚†t­‡¿p4Š——§§§ç÷“b ;»òÇåÁqmÖkÑ  ¯V­ZµjÕø|óö¨èÒ~F+?ÚjÆ××¼Òb °ðý~_B,“Éd»|ë{*¯¬Xµk—¯oHˆPèì¬×ãÍ…B§Óé®®Fc@‡c29:ÚÙ™LÎÎ&“¿?‰dvAü ß+t–ö¼ÖžéÊ»hÐé´Z­–J5×-%¬µ}ùf>IDATå±tÄÕusJxZÖ–DÖ[bñ´ÌOËBL±*vÊDU/1œ(áÄV^vËsž-­PÍwYÖRùØT*¥R©´üÖÊË•-ûV=•J­V«a²m½îN§3tº¿ÿ§OŸ>%&2™t:†ÙÛóùöö4ƒQ~»¨õJ~åßDyøÅâ÷O'* ©$U‰ÿËnë{¬ßàÏ({UìÔ¬ë( EоÁ=Â`0  ­cÖjõz“)2òÁƒü|£‘Ívt¼{w×®I“ £ÃÊÊT*½>**>>3óŸîÜyùR À0¡pÒ¤N<=´\Á=å÷‘ü¨þ¹²Uó•Åh¶4‡T½®~T©+¿*rÅåòx<ȱÿ…¶ËRº*V¹‚qÀ¼yóçÏŸOü²ôz£ÑdZ¸ðÞ½‚‚éÓCCœ||®®_¿nݺuÁÁuêÔ©Sõrý{Ú®ŠÚ“Éd²6³¨J»azÕ'l¶,Xm×q¼|Oú}”Ç–r•ø˜Z¶]†O_‰=¬e”_ÔýúÍ›7o,kÀ\:bNtr…;]0;¬ÈÉÉÎÎΆŒ.]ºtéÒ¥U«–-[¶üZu³­~Ä:çUyã_’[©X+:+zgå­ž+NÝv‰¾—ÊÛÆÊë°"Ù.3HÑJ­Öh4šÊ{F@.§Ó¹Üèh/8ØßßÕÕÁ¡n]Ø$aöàDâá¡×Ëåee:I¥>ØÙi4Riåß“-KSâWYQü¬q×÷÷Œ?saâÿ§žñk¿ü-“H$R``PPPPVVvvvö£G=z¾žáwŸjÕªU«_¿aÆ ¯]»|ùòe¥R¥R© ¶V|Û:¿ÇVKeëê•+×®]»æâââââ!Ðb[Ê'™¬Ñ(•../~úÄçŸ?_¯^FÆöíÄø+RÈ*¯^}þ\XøâEpp»vxlŸ>}úôé“­«Q£nÝU«ÀXê|(,üü¹IggK nƒDÒjóó)”ÄDb8•j21íÚi4S¦-rÌSBÜMñ ×0I€JÚdÂ×0Y¬òÓK¢ ØzÂIàÊe¢º™›9'ʉ®$ˆõC´‰¶¥€¶t}PqÞˆ1„¨Ö!šê¹âë¡¿­M…0*W@ãñT¦€¢Ô ¬wï^¾œ7oÞ¼Ù³ãâžIþÚöÙVÌ+m«e+J×d2™p!ޫޫÒ3æå±Ù..·nÙÛ7nâà€›b••éõx*þþvvd²JÅbÙÛŸ>M¥6kö矹¹7o~©¤Ä¿åßƒí¯²âøª^Ï_z ßòÔ¿Ó~ùK)þ˜žÑÅÅÕÕÕÕϯF5Àº¹¤¤¸¸¸ØV-{FK#¡ª•Öd ®[·n]‰¤¬¬¬ ”G „9»«««««kRRbbb"\íÔ©sçÎA= n@ª²ÇÚV»a«OeÖˆ#FŒjG¯hljÑH£ñxII›69889;§V›LJ%n2á»í­ÓCCâûÌÏ/((( E"‘ðÅBs̓ 8Xµ¸Ém7•ji„d½e]'ïßK$ŽŽüÑ­[:çÏ߾ߠƒô8øýf0ØÛ z}qqnnR†U«V·®¿¿‡—““•URRÑ|XÃP^“I¯‡DÕ³Ng4*•ðW«5 ­Ö`P(t:ƒA¡0‡Èåd2†Q©F#…RZZP@£Ý¼éá¡ÕöêE¡`XEý”õûµ®””ÔÔÔÔÚµëÔ©S§"cÁòõòrªm8àŽh¶ïÿ[Ùø°rœåòW¯Èd>ß`P*5//¹œÁ`0´ZƒA«ÕéŒF½^£1ÿ'§D_íß“º-jÔ  …B¡jàåËôôwïÌ&zËÛÐ’ÀSÆÆÞ¿OÔ…:88::8@>ÓÓSRRR¾6?ööööÁ!ƒܧOïÞ}úääääääÀž ø^Ì‹JzúÇju‡: ÈdJ¥þþ^^>>¾¾à½ÂzÏ“… Žû÷_¿.,ür×D"=`Ø>3™íÚ ºvmqqq±XL¼“L‹KJx¼êÕ6;h¹<;ûýûÛ·Ÿ?/(¨U«Z5Ë­ýÖ0 …âã#H>”” &tÒx7 GŽP©ð/‰„7? |–ƒ^¯Õ …©©ÉÉYY?~ú¤Õjµ:ˆ1\µµ†ÍôÅ‹/^¸Ð´ihhh¨­S,ðzž<‰‹‹‹ûã#FŽ$æDÓÕÕÅÅÅrø3ò@<ÂjDÍú“ƒ-P™úÂñá¾Ù›ÕƒD"‘à”^Šl@-U%uâðì{ò›­\áªÞ/OÍÍ:žŸŽ/îÙ34´mÛ]»¢£·lqrru5™îÝ{úôÓ§åˇ?ëÖØØiÓˆÛR¬m‚ÖÃ|R oÍh„ƒ ÌþìL&X=Õé`ÝœrX:â0?[¾–5`YRsIY™DbgÇáØÙÁ³`y 5F,ÑŽ/Ä_^=Mœ<[+¯-ˆ1Û.k¦*“jënÕz P‘Mtù)}i©X,Ÿ%ÞCT¯X»ì þŸ¨€†ðÊùñññôtu]½:.nÙ2:Íf2[¶ìСE‹úõµÚà`*•D¢Ñ8ÍÎnåÊ3g.:”É9ö=X«`*šòU<‘¶¥!+áÚ¶õ³5½4§eKA`=p¬>ÞÞóç_»–’2eJÓ¦Tª¯¯“ƒ5†·QæA§µ‹¡ÊÊC")J¥BagÇfs8ø7kný 6|麼 XdžËXù®ºŠ„(3ø‘Vfµ#.uæTd2…B.ÿþÇOŸ¢¢®_¿tiáÂÙ³gÏf0ììxfb¿/^ºtñâeËÂÂÂÂxH¯âú¶nÏÏž=wîܹ=ºwïÞ8€«?~üøñ#ØÁ’?(©ýüªW¯^(EøAvæú²^†ÇO1çŒ8r°®+ÛJdëȃuOWþ)¢Ovâ‚ ±g‡:¨Ê4žèE×Ræ±/b7[K;Ö2†#KHÌ2ˆî*o»bbœœš4ápÈd ËÊ KKiÙÒÕ•øm¾y“šš•µm[a!Îá0™<Þ¡Cöö-[Ž]Ròð¡uœ Qø>³´ÄÆ>}ýúµk/Â]ÑWYqmW4ùr«hý¥?_Ó÷÷_?>f˜§_¸páÂ… ±±Ož|äÈ‘#ß¼yýúõkëCmQyáø2°Âž;wîܹsáþÇ?~ü¸V­ZµjÕ‚MýÄÖ +«^½?þÐé22FŽô÷/*0`ófW×#† ×­óò2||¬Ó2`Îoþ¡-…T^½zõêÕ«nݺvíÚµòyzöêe2yzšCvíÚ±cÇpaëíÐéµjõíÛª•³óùó·n=ÎçÓé:]zºÑèç×§OÓ¦ÞÞïÞef–•ÙÛs¹4ZµjNNlöùówîÄÇã1äççç³X|¾››T*—ã»(¬´ÌãÃÞ^¥jÝn€3¨˜år®¨ˆ¨Œ–ËuºÂBµZ¯/+£Ñ(«AgçQ£bc ""ôz2Y­.( Roßvw×ë»t!“M&ÃZ­µa {>|øð¡««››››PXRRRbýqY÷éÓgÏž=#Þ¶ù `³ßºuëÖ­[C øìtUù&ÌP(ƒVÛ°!“¹oŸ““—WR„—”P©ýû»¹åç ÅÅÄñqÁÆt:›M§ÛÒ~/^¼xñâÅÓ§‰‰ii#F,[¶e‹³³Ùó,šàñ:Ç0 ø cÏÇE"£1#cß¾°°öíëÖ­QƒËýv‡½Ðx{{{{yw{{{{{{°mÿ믉'OÖéÌ®?A.ëÕc±˜Ì¼¼üüÂBжÂubŸòÐx×þ¥¬@ƒdooo«Åb±¸¬¬â»‰ëæ–ÖUQÆÉd¥¥EEIIÆbI$R)Øi‡>(“Áâ¨ÿr*öΙ™ééB¡ÉD¥ T*F¡É4‹E&3\®íœH$RffFFF†······ƒƒ½ý—¬¶¿x=YYàÙ”eD µZ­ÖjÍj¦Ÿ‘èþˆ9ÂýÙ•—P=㧈‡nPÿ?+‡`+jëÝA-U%uXÇ‚!û÷äÞˆí\™ÕXæ:­È&Å:¤OŸÐЮ]ß¼),ŒŽNL”JoÜ3ÆÛ{ëÖ¦Mûôùýw>ßÛkDu­96óĉL~ðàÉ“¸8N¥‚ >d2Çá0­[·nݾ=4d¥¥ee2›Í`P© †/*À·†{Q§Ri´cÇþùçܹQ£† 8ÐzPKR[+Ž¡ñ)+S(4šÍ›7oÞ¸qÅŠåËW­Â­GÌCyxJ$‹%€Ïçr‰C4Úâq1&àò£Rá›pñÊOo !‰¬•ûZ´õSx£mV~Y«•‰[)Ko&ªTˆùÁ'®TªB¡PhµwïGEµjåéÙ¹sRRqñ‡..,–‹KV–JõáƒTª×Ëd<^ÆÁ½{W¯Þ»×¯_£FýúãÄ;ëŠUÉDiÇÃÍy±Vøâ¿ÍjGë8m+ ÍwZo²Æ—åã´¬%bÌЗ—"¢òºs':Z£Q(¤R@ °·‡ý6]ºtéÒ£ÔÐíÛÑÑ÷ï_»våʹsÇ2th£FMš4mj­° æÁ–µ¦e ›ëÓRÒ*Ÿ8AYʇÿO”(H‘ø¥XKWttb¢DÒ²¥——Á Ph4øU‰D¡Ðëy<:ÝÃÃÞžÁˆŠz÷N$JI),T©ärµÚ`ðñ©^=0ðîÝÄÄׯǎmÝÚÙ™F#“Éd±X"‘É8X’6·HDˆoÜòT ð͛·nÝ´iéÒùó-‚Ý DOø?ŸÏãq8¶ZfËtÌ5O<¿«bíj4Z­ÁûàÁãÇÎÎ<‹Õ´i‹­Z]¾u÷®››½=›]³fíÚ lܸiÓ† +V,]ºvíùó.üóч>ñmâ} ±ÕªXl…W¯·K-¯Ü!Ú³@8QÝY¹¯õW#—«TM›6Õ«[º&#¾M¼1Ç,“™¥ ŽuùZéR(”J­–Å¢RM& £Pp{[ë;ñ؈–ÈæïZ¥R­V«AÕ¨ÓÖ¹sÇŽíÛתU¿~Æ LÏÊ÷V½¼ÇóaÙFÙÛ;8:JÕµk·n½zÔ«ÕZ­V‹+Í‹Óf“|ù/™L&7mÒ¤ÉÅ‹/ž9ƒ·±P.bË·«ø©¸þQÒã;|¤jk™D"‘Þ¿ÿþòåË—/_nذAƒ Μ9sæÌ™E‹-Z´&ذ¨Q£Æ7ÎÈÈÈÈȨ^Ý×××÷Ù³øøøx¹\&“ÉêÖ­W¯^=¨Ipù›ëaÌ ›háxÈ,º3™,‹3bY ž£GÿþûäI•ª¬L,vrrqquÕëµZ¥røð#F†©âýûÇÅ%$¼zõì™»»»»§ghhÆõêU¯X«ÑîXÃør¯Y&‰ý „ãKe¶¤Ú Œi._¾zõÚµ#GرãÒ¥‹¯]c³y<>ÿðá£Gÿþ{Ïž]»¶n1cÊ”I“†1b̘ ._¾r%;;==9ÙÍÍÍÍÃ#/¯  °P¡JKK—.]¾|åJËeŒ/KˆP(‰Åééiiii¥¥¥¥Ba·nݺõèa=vc‰D")-e¨È‡Yºˆ²TyÏ(3™"‘NŠ£qëÖjÕH¤   ­Æ[ì6m¼¼¼½§M£R‹‹gÎÌÌ4JJH$¯¤„Á°·wpP©,}â3T*•zîÜùógÏ:999¹¸¤¦fdddŒ3zô¸qÐ_€üà†åßu¯g{ôU¾†‰_­­ñvUÞ×ÏSK\?®g¬U«N:uÖ¬Y»víZ¨èèèèèè1cÆŒ3æÕ«—/_¾¬¼g„囪¤ RÒí ¨¿5 «I|Æ¡Óét0c…Ù=(þ$’ÒÒÒRðmé^©<ÖKnøäñãÞ½íì˜L Óë½¼XºtéÒ¥K¡ 6311111±S§N:u²¶€vwÿøqãÆË—==çÌäòúõëÔQ©Ú´ùø‘L~ÿÞÃÃ`À[HË€¯È\_D:|99¹¹yy–¥°¤"×f%`Å{zH$©eËZµœ£¢âã³²ù|¹¼¸˜Á¨]»sçºu]]Ozð 9¹F &³¸øóçÌL »_©´³kÑ¢aÃZµ >ƒJ5™8‹J--•É,Múˆ¹5×9Æã©T ˜}=k4jµ^/•‚Õ³^o4ªÕF#îžL¯§Ó);»† G‚>œÉ¤Px<“‰BárÅbæåKGG“©ys:Ýdªh¼M4\à\.èmAi‹ÏÍ9‡e98 B*Z€„¾ö\š¥‹hèöµßàë«×GG;9 ¸êÙh4™èt©”F«U+-M ˆŽÎËãr32 Ÿ†éõ N¡À>y:F#‘Ú·/(1¢òÑé·AŸ(•Z-˜•ËF£‘É$ŸO§“HAA™“Ÿ&g–›«Tâ&;UѸVž+#¢‹1ëûq¸òú ëQë¿Еouü6èt.×Ñ‘L¦Ñ ƒA,. Ö—Säpìì‚ñã»u“Ë£¢ž?§ÑÞ¼IM…§ˆþ˜aÕ—FÃ…Õ`Ðéd2±X*ÍËËÊ**b³íí]\ ­V¡0Ôj¹\¥*-MO×éT*6Ûh4*²Å&¿`Ë ƒQ»víÚ?¶–¬±Z* 0 Ã4•J¥ú1ÄÿmЬá+ï¥jE¿ ëš©èê—S'úçýžüÀ±•+¼“¶V ï©xxÇdÒé †TªÑˆÅp Eppõê5j:tûö?ÿ Ü®]çÎ..Ž—K£¹¸À@S")*ÊÏ'v¬11ÇÅryII·n={öëgª_¾|ãÆÍ›Ož14®×ët={k~ãÇBBˆY±K” <·fU>ÑÊ`€Ú·ÜèDTáS&³dâ÷˜-ˆOÁobœx вÁÚ¬ùâàT–µm¦‚­Z]ZšŸ?pà!üoòøñ3g.\ˆŽ¾yóÊ•NºwïÛ·I“ÐÐfÍîܹsçÚµÐÐÐЦM5pKažþYõÍžÝ-Ó 5 mÆï4·½ÖÓfk¹µ=¤./QÄö —ÌòÒ•š* uê(•z½B¡Ñ˜¯’HÖ´iø¦Ë˜˜¤$‰î‘ÉÔjƒBa±øüOŸŠŠp¹…óÉ“gÏž>=aÂï¿B&3L&Qýj)øSx-Aøºu«W¯[‡/êt:yÉ„Bùûï³gOŸž9ó¯¿þú _*#¾ßòrNü*a"gÙB”—;ëå(g2ét-444´Y377€Í–H µZ­–Ë…Â΄7n ߸Q©T*ñ==´ö*®4·%Ö[Þ¾•ªÄPñÕ¶uaÅm±Åø’ ŽòJ“=‚‚^¿ÎÍÅï"^MM-)‘ˉm#„¥‹Je³ñEK*ü®Xºx<.—ÅÂú`c~#°ŸŒ8À[9sÌB´-ÅÇðuc†ùûW¯^­XÌA‹dm¯j¹eÎ?XÚ«ÕIAÞF™L&Óߟ={ñâíÛ7n\¼Ø£GïÞs{ŒFsy!‡Ä…a°ÓhÊ÷ï­>þ¾Ìjk˜^âßNy~´t•o»ðòêxïp(ÖÚµk×®] G'Á1JÞÒée` ™ Wy¼´´Â¬,½žÍþô‰BqrjÖÌ`(.&~r¹R©Õöïß·oß¾ ‡Ãå6jTZ 3nKsëñÔ´\ÄöÇr¤T¾Õ"¾w¼¼°Øc.ûèw¾ü~¿æ™_“˜Y\ºtùòåËÄp™L*•Jñ¯²žÚÚªäÞWqqqqq1¼qËår}}«W¯^h.†§J$sË ³0h… ‡¸ƒJâWS¾õ "—ÇÅM˜ðûï6à×Ú´1 8Vf=àç—¸ì÷!W …@ðâ…]YYhh@€DÒ½ûÝ» ÆÅ‹þþZ­Ï‡drf¦­‘&nЇ¥š¸$ŒÜa±,ߎYÏa­gñÄûœx<C«•ËE" ŒÆîÝ7öð8~üîݤ¤úõy¼¢"°‰D"‘ÈÍÍ.-uw··dJ%¤!•*•:اS/¯z&–‘Í6M&™ N=ÓëF†Í¦Ñ%&+‹D‚¹‰Ä`4lèâ2ztP@гgRRié¥KƒÉ&†ƒNG¥fe °ƒÜÖwŒOð\“&“Á`0ÀŒå{1ÿU5qg}'¨€a ˜دý.w÷[·ˆ! €vv6nß ÒëÓÒŠ‹•J©\ö ™ ïDc wEø3´¦x+j0J¥Fƒ+ ‰jÛ6m<=i´œ™ÌhçO"‘Ri4ææÊåF£Vk4Â{Ʊ¬G¼ß–+¢ê×™˜­´1 Ð0®+oBW¾_ø×HÒ–1¹·w:õë·nÝ©Óõë'O._þîÝíÛ6tîܲ%®ŠMH¸sgãÆ¤¤˜˜Í›Ÿ?¿~}ýzGǺu;tàp<<À±ºÉ¤R•”XžÉ¨«"QAAQÑŠ*•ññ R)¢Ó©T …V«PÈdZ­R)•jµ*•\.“ …"Ñû÷/^|ø™™œœ•¥ÕªÕ*(ÀY Ú`»Tš­Ôñ2™L&«TjµJõÎïß¿ÿþý‡>|øðñãÇIIÖa­îy÷Þ½#®Ws¡ðòaƒCE…B¡P$ …Bpüá/ úpoùà4Râ_ð£g°Âáï~T~¬ÿB=ØzwpõKñ…B!+r  »4ŸÍZù_¢…¯­\l`ÞRnEVÛ4…Â`À'­×›LNg0ètz½É¤ÕÒé ›­VK$"¨}|š6íÐAû/4æÕ«çÏ=jÛ¶mÛŽq;zF­îÚµC‡îßòäÙ3­V¯7 rrð¯ò“^|ûª^o0œ={ñ"Xq¼{÷Þ½;v§$K–,_¾t©F#—K¥V«×C~/^¶lɵZ©”ËÅâââ¢"•J­ÖéfÏž;wöl°ì_´hÉ’E‹T*¹\*‰Š‹‹Šà ½¼¼ììÌLh¤R™L©Ü´ióæˆ•J£ÑëÃÂæÏ S*ËÊJKgÍš;wΜ´´ß¿‡¯8,lþü¹s!NÜ OùVì4ˆW­ß1Ä:ÜP”•I$Iaaaaa!|#¦åßò9!þx~[Kše¾ÊóéÓ§O [¶lÞ¼qãŽ;vìÙ3eJݺC‡ÚÙ½~íè8a¸qþ9}ú̙Ӧ‘H >uª¯ïÒ¥d2‹•‘áà@&S(Öe…Vµ¤$''3\ñ¨Õ:ɤ×+•`kO¡,\¸téâÅF"Q( EYYi©N§×ÃWè©ÔÙ³çÍ›;×d"‘h´)SfÍš1Þ#X&Þ¸ýèÑš5«W/Y²nÝÖ­[·*•¥¥" —ÃÃÃÃW¬ Ñ(mÕª7n„ITjjff^ÞÝ»·n]»6eÊ̙ӧgf&''&B>gÍš3gæL“I«U«ñü€k ½ÃÂÂ, #ªÅ­%A(‹¥Ò^½z÷0@¥Òh`1J¥0 wïÞ½¯]»wïÁ™L, aPƒw½DU>Õ'“år±¸¤ÚU¡P,–É`h ßúéÓgÏþó¬;GEݺE" :ÝãÇOžÄÆâÃ3óùÐÕgffgggCŠp0¥X, …оét íË’¥D™Ë9·¾S*ÕjŒŒŒ’µº°P"Á2nß¾V-{{:J%“U*­ÖhLO/.V«33KJÔêìl‘H£ÉÏ—H´ÚÒR†FÃëY¯7rr23ÓÓA»2ð·/ …ÅÅ"‘\¾n]xøŠ¸Õ¦Á ÓaØøK$bñŒ³gÏœ©RI$b1n¡c2™L°››™™žŽo]§Ph´ðð­[·n…Mñ……%%Réš5kÖ,[vø0¼'>uêܹ ˆŽbð… l%`A§ÃoÈ?¾oË<ñ%ã¦M;wîÜI¡èõJå A  µ­P¨T:Ý”)3fL›eƒú„‘Ìš5›7oÞ,—‹ÅB!ØN®_¿~ýªU¸êTäf™ýÖ¿•·lÈOåÍØ’¢RRW)–N30 Ãþú«ysOÏýû ªS¾)hcágg|k'1ÿ奋B!Jl &J×¢EÐŽ™¥ ¦ïjµYºðI”Á@"M:{öÌ™iiII T*F§Û±5k""""ŠŠ²³32ˆŽeˆÓ]Pjkµ zÖh4‡½~ýömbâ¡Cû÷ïÚË»woÙÑ¡CÏžC‡véÒµk‡ £ ÚV÷êÕ‹OŸž1cÖ¬yó`q";;77?ÿÎ;wnݪ^ÝËËÓ/ iD_œ8å­³+^εܗ‹K;ŒÎµZ­–F£Ó ç”W¤š›ÇÖ²j«íJJÒëÙì´4¥Òh|÷N¥¢Ñ*ߟWáÎÜ\µÚdJJÒëY,ëöv+Nž¶ùy=ãóçOŸ>}}ûöíÛÄ¿^õž±ê€û Û:uêÖ­[·ü wÐGluá­ÌXÎLá_1‡ãcóH(,äñ†‰nÞìØþ‚ºùÙ³gÏž=»víÚµk×ÀùÆçÏŸ?þ\TTTTTDt¼@&«TÎÎð; @$êÞýåK&óáÀ¹<44>žNü˜XÏ–óiK_ˆ;§¡ÿ°<ªRó¿ Ì,C!¬³aäVÙ,>11;»¬ÌÃÁÉd2ÃîÜyý:??8˜ÃÉÏg±ììx?Ãrokyt:ƒA«5L&ŽF£Pìì mëÔÉËkÍš¦M]]'M’É´Ú‚‚‘#kÖ¼q#8ØÁaà@…B§+)¹r%=}üx©T«ÍË †•”èõ¾Üò]ëõz=>Æ0/>Á®}¨a5o@ß ®ÚÐXOÁo¢]<®œ-?ï®8 )8˜D:q‚J¥Pðù.d²\îáÁ`œ81`€«ëÓ§›7óùŸ>µi#“yzúû+•Õ¬)•6lPZÚ AµjEEuê|ÿúeŒFgg:D?>8˜ÉlÛÖÃF8°F ƒD21ÌÁN'‘23%ƒ!$ÄÁBé×ÏLJF>¼F ÍË‹Fƒ“´¾/ŸD-qìfˆéé™™YYIY™Túñ#,Ó§¥¥§ƒYå®YÜ4£"¨åͳI$6ÛÍ­F :Ïwq ðõuu­^ÝÍ ·]²—ËfÙ­f0hµRYT”žn}gU Âq[|• w#A¥ Ö"QqqY™T*“©Õl¶ƒƒ«+†i4R©N§TJ$Jeqqb"n,N&ƒ"ÄÚÒÁ…%ÄU²Ší/ð‚9¨hì»Á}Z›mšðÜ”ßi+ÜráËõ\‘_Âò+K0L$ZCàù1¯ŽŸ²ö÷=ù±·r­ØêÌz{²íwG|Úz8XñÖVmÛÊQåaN©jž:³²Š‹ss==y¼5ÊÊÊÊôúìl‰äógxŽF#“™ÌÜ\©ôÓ'GG‰¤qcËÕÕËK§ÓhÊŸ…jî*ˆ®$pûI 3oÀ0˜‚ 08Çói4r¹B¡Vdggf>|øèÑãǹ¹ùùEE%%……ùùŽ@àààääêêé¹ví† ë׃ÿ¦Ž;uêÞ_»vÙ²eËV¬ ~+p¾,ܳaCDÄÆóçÏ›·` œ¡–`0Äd2™4ÚìÙ³fÍ}ï^L x‚ÒQ© ™ìääììê %‚/ †zæuv£Q¯‡a²¹#·\k5/*Øz_¶ý;›ï…¥ èV-eÃd…ù)üMCÊ?e-™–G4˜ÿïñññññöÿiÐÍs¹<‡Óµkß¾:(juY™ÉD" þþiiÍóç¾¾l¶]p°‡G—.EEnnîî®®§TªTªÕŽŽnnð¾ÀV Rň‹‹‡GµjÆÄܾݡCÇŽ;S(T*–šš‘‘™ Ûá=BûJXOOooâ5ozÿþÝ»W®èteeyyÏž½yóö-™üþý‡eeR©\.‘”•Éd …D"´T¯îããîîï_½zŸ>·o?xðø±««»»§'¼w2™B¡Rñuu:oëÀžW+—bn1ˆ_´¥K¢RÃüõãoTSÖí†a|Y—ËçCòù<žV îbÈdü”p¢+Ëm¿ ð?P?™L¸çS8ŽÿÒñ²—·ç(Ÿ+b*ø`¢2éb±À\¡ÐéÀ®Â÷ì¹w//oÖ¬®]½¼ØlƒBQ©t:ƒ¡´T©Ôë•JÆh”JU*½žÏ§ÑÔj½Þhd³!ŸxNL&“I¥R©4¡°  ?ÿùóׯ߼‘ÉT*Þ>ôš‹/_¾lY§N:tìØ©S§N]ºXºÎ°ü¦ÌKðÌñß¼yëÖÍ›IY™Bñ/\8dÈСóç/^<~çÎÍ›7jo Wõ“H$ÒÌ™óæÍ›§Õ*• ±f86›N_³fåʵkaZD¬96ÛÎN 8zôèÑÈÈI“¦N=ï¿ðý õLÄz ~0P‡á²WY/ó­Öa•ÅY9¶¤¨réÂz½^ïï KPp´QØ€ ÇÚàÛBñ–ß2fxƒðײV?|HL$JÞŽÝ»wëH—V ¶D‹Qs Y·cÍš5iÒ¤ ´c¦T»¸¸»{zG¸DÁĉÔƒ^o2……-^l[ÒÂÃ×­Û´ z ³Ç@³ÓüÝYoý6™>qâĉ# êß_&3)æû+r—1/Y²hÑÒ¥?¦¤¤¤dd¤¥¥¥µiÚ¸1Ä C___ßêÕa² “JË7þ#¥ êÁ\¼ˆ[ÈAQÑ¿ÿþýû߻Ӷm›6mÚÄÇ¿xñâÅš5kÖ¬Y>+ÿøã?þøNjéÞ½{÷îÝÏŸ?þüyðnIìÑA½R§Nppp0„Lžàü|½žJݶ-5U­8ÐÓÓÒ›ª«+ƒA"íÚ•–¦ÑÀĬÛ.X>Þ°aÆM›=ŠÝ±cß¾öïß»÷àAÈËáÃ'Ož<9sæôéÓ§ƒÂœQÞ½{ÿþݻÆùøøûS©&XÈêõÐjyxx{ûø€ÒÉzô-$‰dîwpëZ ³t\öm_ñ÷ñcÒýOè«îjî%*¼å»wïÞ½{wÔ¨Q£F"î %¾¢$ÃèW¥’ÉpY%J»­t‰#”²2ŽÇÓëKKcb $;;;;;Ž/å8,B_Ž{Á6ç„øÂ(œ˜O[®0 ýÄGëf;ë}EÖ®„ˆŽª,o˜ClÕQ¹\ãÃŽBqvf2õzƒJ…³Æ hí 1¨TJ¥BÁ`˜]ˬ©nÝ~ý îßß·O¥üLÓ\÷pú‰êcƒBáñ¤R­6;¬g}|¸Ü–- 8u ž›èÇ 6l°~›tºÉäà`4šLŠ­÷níà‘øÖ@åhíblÞ‰-*qfïd¤µkתU«nºñuß—«P’Él¶V«Ph4ÎÎ ®T‚! ¾¿Ú̧O99Íš 2YÛ¶>> ™ Jp¸ S“I ¨šá¯Å¼«ŒFKJ**Òéüý åĉwïÀlÇd˜L2¹^=77*õĉ„µÚÁÍÆçÚ ˜f€ÆÇh¬ÈéÜ×b½¿aŽ/ðù<žR©TªTr¹R©PÀ[¶·wpppÀc¨¬çµpÁÁ`88¸»3™ŽŽ^^ðÊãâ^¿NMݾB‘É‚‚ªUsphÕªI“À@.—Íf0®_‰yû"-+“Ë5©4++1Q¯W*%£Q§«è ¸ª„›Ld2Ѩ;©T°=ß™™`é¬PÀÆz¥R,–HL& …Í&‘¨T‹Jµ·÷÷'“ óz€B!‘àÃЊsŸ ¾IãßYí[ÞÁà˜ØDVM™û-XOx‰Ù¸O=˜D€=ByUØÏÏ!¾8kûæ…̵T•Ôapÿýg>;-ë\ÙrÁAü X«wï¾}{ïÞ FŒX³fêÔfͶnŽNK;|8#C*Õhh4ið`¸ÓÉÉÇÇÏÏÉ©ZµÀÀÌÌW¯ðUb>!áýû„„wï^¿nÐ 4´e˱cGŒ6ìóç””´´»wïÝ‹Žnß¾]»¦Mûë¯ñã>|HJÚ²eË– ¦N6mÞ<\d0ètS§Žÿ矯_¿{÷þý®]»vmÝ:~ü„ 3fXv?:Á°wï›7Ϙ1uêŒÑÑ÷îݾmž<˜-Í*ubClV8ãöeă‰ðòÓét:qÓ±»%¾CâÄm“¡1[7Ÿ²>N˜s¸Ïr˜X^Zˆ_QZð2š­k+_[oo½¾qã´4:ýêÕ‰§L7.;;9Y$b³y<*5;["‰ŽnÚÔ`èÑ£Z5;».]ÒÒŠ‹ãâ 32oô†Ú„Á~µù=ètsçN›6eÊêÕááëÖÁQ s熅-[¦ÕJ¥bqÇŽ:têuëÖ–_.¨aˆkïT* Œ †ŽÛµk׎L¦ÑèôÎ;vìÔ©¸X$’J-70âù1×9Ø6Á{1×§@`gÇb;väÈÁƒT*“ÉåöîݵkçÎø¤×ü]àµm2™L F¥*R©DÂdòùЪH¥ …RÉd‚M6“Éb©TJ%¾¡Õrbfþ…çÖüá7‹ÅfÓéAAµk׫—ðîÝ›7µjùûרý »»——Orrrrr2…B§3>>žžžž¸ü‡ÃfãNrL&&“É„ÞÄVÂÖÔ¸cVGU$]þþŽŽ&“P(—ëõàÙÂ?}*(P©6l¸q#'gåÊþý}}gÎìÚÕËkúô¿ÿNM…“ºËÊJKÅâ¦MœH$|¨c¶ÖÔà”j˜@tèжmÛ¶$Î`ôï߯_ïÞÐê3Ë nCYÜi†^o4Ž=tè!K—®[·vííÛ7n\ºÔ¾}çÎ={⇎À» Êô ‰_‰D£ÑémÚ´jÕºµùÍêtÄ6ðûø–Iµ-Ÿ³Dûeb»jn—+’.°â‚é4Ȇ³³³³³3Lk÷îÝ»wï^¨óáÇ>|YB<0,þøñLjmQºˆµ Ò._:vlß¾C®9s¦NŸËÅÝ~aزe?ªÕ«Wú„Oß{@€J•Ÿo9îÂ0p‹§R98|~Ÿ>=ztëV£†¿Íš°t ê5{{>ßÁöƒƒø’’RS32 òó ›6­_¿Q#ËÑ”§²ÑãÚ¦MË–­ZC9ëCbÿ3ù÷ôŒŸ?GGŸ?ÿù3æííâ¢ÓeeÕ«×±ãàÁl¶Ù¿0—ÑŠªšµÁ³l6‡Ãá(•r¹\Ö»§N:uêT¯^½zõêLjácKâlÉhó E¡Éd2¢Tã½[ÅÆXÄvúY;;³‡æ¢¢üü¢"H vÁ.cPíÁß•b0 Baûö¹¹½{·zuY“™“ãæ¦Óyy …Jv¶‡‡^ïãc=»7«-ß*1϶и’º¼šø,q—›­z¨VÍÙ™ÉìÓ§S§¦M™L Žyd2ÕjµÚÁJ%“M¦OŸ>þøF,°ÉÞžÍÆûƒDÂßµB¡Vã­®¨%¦f6,3™0ŒJ-.V* *•ǃ %&3S `0|}íìh4—ÒR&3TÏoÞ””;V±$‘H:É$•Ò郳3Ñå-žóˆB`'¼}Ú¿0b À»&:rE3”¤Wqš[{ëyqÕ¿‹²2&ÓÅåÙ3™lèP ¥¬L¯'“F®GÀÀíÛ™L2¹´”xÿ¡C®®:ÁàíRÂbãI*öÜP(õê%&öë÷3\p@mH¥2™\žŸ_Zj0ìÞ{ˆñ™ÀçÏEEz}i©Ba4þõW£F,V«VÕªÑé¹¹R©Áv÷®L9'îxøžÜmüaf! …"‡g$`†¹¸8;;9Ñh •š–&‰D  Á¿ó»ô¿ ¡©޽=‡ãî–Hôþ=¾Šuà@b"(ø¨ÔM›–-5 q,Z´~ý©SÐAU¥0D·•ßi4êt°æo~= …\.…° Bð·G&S©&ëƒÑ¨Ñ¨T`‹ ƒP˜LƒåÆ=ëÔñU1 å×( Í>‰ ‡`¿ %¼Z¢/¶‹µš¢ó†O —³;|8ø³† ¸BÜìò‰µT•ÔÔ*=¼[¹²¥ 4YasY=`@ddTÔðáuê,_^\¬PääÐé.. Åš5ýþ;›­Tº¸ðxžž<žV+åçåæfg;Ð1cþøc̘ââââX,Ba(‰d0h4'Ž?q¢F£V«TŽŽÎÎîîÿüsîÜÙ³¿ýÖ¿ÿ AÄ©eNNzúçÏ4‰¤Ó¹¹‘HJ½zµk_¼xãÆÍ›2™\®Tfg …..ÎÎîî....EE%%"Ñ… —/_ºäééêêâR¿~ýú >yòüù³gШ_¼xåÊåËpOãÆ5n S°Œþøñýû·okÔ¨]›Çãñ‚îÝ»s‡L¦Ph´óç/^¼p6ñ¼~ýúõ«W…†6oN ¤qãÐÐ-Ž;qâï¿CB7nÜØÝÝÃÃÛZâ{Uzbˆõô˜RÑÛ$ª›ÍwY?õ%Ë芕ÎÖ¿‰¦@âpo¡Ö’o0 ..îî>>HäçwöìîÝ/>y´e‹—WÛ¶……Ož<ÎåŠÅ>88x{“HC†ôêÕ¯_Û¶ññññööiiÉÉøÙÍ\.—Ë`¬Zµ~ý† Õ«ûúººº»{yµnÚ¸±Z­ÑètÇŽEFFFúùùúV«æëëééì õpýú­[·nåä–”P(T*ƒ¡ÕªT*(‰ýûïãÇÝݽ½«W—J%¡péÒùó/ÎÈ(( W¯Þ¸qãF77gggçæÍ›4iÜØß?(¨víñãÇŸ6íȑDz³ãr¹ÜvíZµjÝ:øøø—/_¼hܸiÓ-ð/âã›7oݺC‡bcãâà-ðx\®««OíÚÇ>¼sçìÙÓ§Ïšý±Ý»uëÁƒ'O`››»»§g~~^^fæ²e‹/[¦Õ Fc|ü‹Ïž©TJ¥Z}ëÖíÛ·nétF¡¼zõêÕóç‹Í™væÌÅ‹—.U¯îãS½znnQQAAïÞ=zôì ù,-‰„Âââ‚‚¼<;;‡ÃÍÂr9œl  …°.ÍáÐéT*—+€ÎÙ¹°°¨¨°î‡Mˆ°ð‚{‰­ØÃ&ÑC:(IˆÃGké4¨~}cöì'O²²ø|6›J=zôñã·o³²äò›7ß½‰~ô¨°pÅŠß~óõ5«[7/¯… ÏžÍÈ ¡PÞ¿<¸AêÂîî^^¾¾ûöEF:4yòäÉÓ¦3fÌĉk×nÞ¼y³¯¯···wÆÁÁµkûøøûת•››‘‘šêçW­š¯¯§§‹Ë©SçÏ_¼øáÃlj‰¾¾uëÂa/°4Ò•˜øöí«W5kÖ©3fÌØ±“&þê•Á V+<Ÿ/ :JµdÉÂ…K—‚í?ÏëëëîîèØ¿ÿo¿-Y²gÏÎ[·Ž9räèÑMš4kÖ¦ÍåË/^¸àèè䥯¸¸gÏž>ÉŒþÜÞÞÞÞÑñÆÛ·o߆¶=77;;=Ý××ϯfMøFäòÒR±˜X"â²ë’.|Æ<ÂýÓépW{ðQ•Ù·oïÞ½{÷èÑ£Géééé°±T©ëBü~óS–é›ûb(ÑØ±cÆŒCÏ—¿ÛvŸ¿¡—ùûï ®^µ³c0(__?¿ÔÔ””¤¤Ó§Ožüçð­½fͺu6¸»;:ÚÛ;::;»ºîرuë¶mt:“Éb¹¸¸ºº»Ÿ=ûÏ?'OR©4“¹}û®];vÀ¢ùêÕëÖ…‡7nܤI³f™™©©§N;vò$‹Ååòx£G;fLõê>>>>Ы.X°pá¢E6DDìÜ9vìĉ“'7jÔ A½zþöÛ€±±ññ¯_ÓéF£ZÝ·oÿþ0l6‡óî]zz^žB!•–•ýû™3Ç;öøñÓ§ññ3gΚ5cFHH£F!!ÅÅ%%-[6mÚ¼9´¶FD¶dF(‹KK ¡ç=¸Zúüùó礤ààààzõœœ\\\\ ŠŠŠŠ =ýð=Zî§4/óÇõ•÷ŒŽŽZm^Æç :‰„ïåñ®_—J!ÎåËkÔÀ°Õ«ÓÓ-"^¾¼¤äÆ •J(´ž­R©&™|ñâùóçÎñùƒCnnAAnni©HT¯|ÑÕªyx89mß~à@d$f0¨TÆýþûðáíÚuêÔ·ï•+—.ýý÷èÑ£GOœh^òÒë=qâï¿-[­yó-ÂG_ÿÎ~ç?[rX­Zhh“&jõ§Oùù‰JE¡˜LÐ;•o;*ê¿®=„–J °···‘ K¸råòåË—!ä?F=:77777”ÔÐ?‚ÃP‚ü—Xl¥H¼Ú¢E³fÍš³sgA„$$4iÒ¤I“&D#HÜ2@Š–“Ó«WË—kµLfAA\\µj›6 ’”´fÍ»wŽŽQQ+ÍšÙšÝãg>8¨J†ÔA1jiõ\^Ýl]^¢öÃV=(•jµN׿Ÿ>]ºp8vvl6®îåJ¥VŸ:uâÄéÓçÏŸ;w›«+ìÓ…cEýü`iÇü&qõhåË9d2†q¹2Yi©J¥Tr¹"•J&3ÇŽ}úÔ­[` @гg:œ8ñùs¯^ðøƒ¶ŽÍf±ìì23I¤]»üý‹ŠV¬ PŒFË“ÒÀ$±6Ày8ínÈa®y¢“ h%@V­ÛsâýÄQ¢{›¯ý. åtu%“srÊ«žI¤{÷„ÂzõL&£q—| \Ân6|Ö_æ×‚+å5.?_(Ôé4½ÞdR(´ZÐà~¼ß½S( †„„œÎéÂe™L†Ñ( ñvø{r ovrƒ 2 …JøÒ¼A³;,˸‰5f­€&­Y³jÕªUçÏ¿}Ëfs8žžAAð Q €zëÖ•+ÇŒéСY³š5ëÕëÒeÞ¼ª+ ¹\‹LîÓ§Y3˓ʭ9wîí[KÙÙ¸ƒ ˜hS©t:^í¸Ù¹Ù&®N§ÑàŠjXÑÖjÕêÎCBÜÜš4©UËÉÉ:uðã¶qãÆ6°X,؆Xàð3€—ªT*Jå‚ ,\¤áŃ4ÙÐ=üŒ{vèСCGŒ ˆˆÇAÀà›è`„xbÆ•þ …±kÇåÁhÄý‹ö‚ò‚ò ¼[ÂwMœÚáÏBü`9H¡P(p@qMߘÓ?ó0÷yg¶OtÁ8صY¯ÎY[HU¤n.?a¶V[«•‰ÐĘ­›fbœ•’ˆêhè¡Ûðôôôôô´%·ÙÙ99¹¹b±X,‘שS³&¨ÝÇ3fÞ¼¸¸'O^¾¼};:úÄ ÀÞžÇS(”J ªY³vm£Q¯Ç»pøŽðÂH$*U§“ËKKÉd‹Ã±V¾ã6 “Î:ètèK–-[±bñâ•+çÏŸ?ß` Rq_`ÖµAôΩà‹a啸 > n÷†©¦ù-‘ÉL&;;{yU«öàAlìóçuêøûûùmÞ¼}ûƳfMžŽAêˆC[âŸZãï—L~ø06öñãîÝ;wîÜ9==33''--991ÑÞÞÉÉÅ%(ÈÏÏ×—Ng2Ùì’’>|ð÷÷óó÷‡Ú&ZYK¬- ϧð~!o !­[·iÓ¦ 8N±~jçÎGTª´4ÉߟDâr]]­C´LU./*ŠˆhÑ"/F3÷² ¨Ê ÷, vXæÝ øðÔü=B ‡@ÄEAâp®‚Ô‡G±†û‰Î¸@Ή~Ø«¢>#Ê Ä©ã ðu˜½Eˆ ü†4­ÛIܯZÅmÚ—ø^Å_Õñó«Q£FÇ=zôü?B8ä>4´iÓ¦M­¥ #€ïȆ 6lØlKñ¯¸yòàÁƒù|77Ë ³fÉ;6ââ:1ë7Hl ­™=ÌZ÷éÄxЏ¦ê’@1YçÄÚ© ¥+*¢j»|º‘‘‡:Ö¦øQœFSyϘœlgW­ÚNNíÚéõ †®  ÃŒÿ¯½+êºþïÍâñ2^Æ3ÞÆ fÀ`Œí„ÖNdœ²$-Mkµ¥_PÔV ¨Š-åK„è(M¥J±Ú´!·M[ãBI#$hˆXc‚XŒñØØ6¶Çƒ=cÏòÿðëýßóæ¾7~ƒm ©z¾s÷{î¹÷ž5¼o_ggS“V¦ ”€·°Ò¥Ý³W1šáá‘‘ññ‰‰‘‘¾¾ÜÜyó,eƒÁlÖ¢Zìäõ3ÆÐtνðdœy å™i; …†‡¯^ýóŸ-–²²ÆÆ¤¤h%2ñdT£¥±k þÖˆ*Ó`ðöA pXT_____ßÓsçÎ;,·èZ“B45µtÁ=èééííí]·nݺuë[éÔ©S§NÚ»wïÞ½{wíÚµk×®ÚÚššš”^½ú'?ñz¯]kl,*¬«ûíoKJ~ô£ÝîŸý,/or2?_¤¥55’ô­où|))’T^þòËü] I’tþüùóçÏWUUUUUQª¥¥Ì‡²xËðÁÉ“'OR5;>BÖ‡Õ«Ÿ¾¡¡¡aíÚÕ«Á5:{ö£˜šNmíÊ•55ÿûßþÖÒrôèÑ£Gfggeee·êë×®­¯ÿÁ~üãmÛæÏß´i÷îžž÷ßß½ûÀøðÃÿ[É‹Ç><œ’rúôÐÍö¯%%%%Y,ˆ…ÿ³²’’–,¹wolì“OàÚM l¶ÄD—«·×ç;w®¤¤·wß>£1RòëÀ BL#¤€à†F)¥¸Ë€‡Ç޵¶¶¶2JÂï6T| œÿäСƒ„èB\ =°|¹ÍvâÄÒ¥NçéÓHñùB¡¥Kó›Û·¿ð…±1»ýáCæâ×`e‹%!âÌbAdz|¹Ïçõz½ñ¶ÆÆü~¿ÿøñ?¾uËáØ´éÀÑÑ@€;xC£‘íIô1 yŠÉd6Ërÿÿ¸uëÚµÏ<ãrAœo6lx饗^Bœ6ð÷ ÎÔ×××wï¸pK—VT,[êØÓs÷n__ 06öðaEŲeË–òÀýã™3~øÁ"—ÃÄ™³à‘G{ã˜h±$$äåÙíHÑÌàIµdIAÙ¬G!<55)Él†“ááÇá°Z¡él42-a0«hH f.‚ †ÿ!çáRa0È2w­žD_­'°vù“†¦SÍŽÙi?zM™ÌÎ OK+f¯‡t]Äd ©[§¡Óée$‰½£CÍhHô óçñ‹&S8|ÿ~f¦ßïr%$LL¤¥{<á°ÅâóÙíôi!I×½S†j÷Ȳ,C; D\—SSív§óÈ‘#G®ªª®®®ÎÊÊÎÎÍ…î[A> ÊâT2Oé³'úÙ@Ÿ¢‰ËÃ×+šéÆÊRÌLjjŠžšéƒ–¶â °§!‹¥kq-b§h±¤Y Ç1ZŽ>i¨{Ñ)‡ò!}åPc@sÇXÇØûü|§3/ÿ#‚ŠÜÜÂÂÄÄÎÎÞÞO?-....(Àuýëëëé¹v Æï(…¶ü~.¢€6` ÛBûCE è?ê1M&vX"  úýT„ b] "W2 éŠãYOĹ¹™™6Ê•”¸\ ^¿ÞÞ~ýú–-›7ûÛ‘ˆÑh2ƒ‹\݃;ëßøêW¿ò•wÞùõ¯\½zÕªçžËÏ/,,.FËëÓ>ˆOn‘yæèÈÈÐÐà Æš™™‘a³¹Ý&“ÁÀ¼gšÍ ,˜ $ϸÆEïe%s þòèÊ2†_#zYñê»ß]±"!᯽r¥½ýã=žû÷Ãᬬòre®@Àë•e¯·»»¦Æn6%Éba^üÐ:æŠSr_YÙä¤,ŒŒIÒ¥K©©ÙÙ˜¿?±ÙçÏG-ZØ“žžPX88÷ô„ÃÁ f_Ih°hš^UUYYY [=p‡(oîK_Z·nÝ:ô\©äÁG†•V@k^ù^æ”7Žx÷Fv¶ÕÚÓÃF‰$'_½êómÝš00pûvBÂÀ€ÃA•WØ{–Óüp8;›Ýùãm=6`„Áàäd 04Ô××Õ…7 ÃY°žÍf°šÁÇ”¤p¼Bƒ9Á … DÑ è½.Þþ0áb0 *™ÂŸD$#!z7666æ÷''s…!¬*{‡FŸ8•LÌ_©×;: ÷÷[,¹¹ååµµuu99‰‰~¿Ùl0D"o½µmÛ¦MVkr²Å2>î÷ƒ¡0µ#ð¤$Y^¹rñâ„|ëQONöùÜîP(6-–Ë—Õ̦ H0¦ $)- ‡üädv¶X Z˜,x¶»{f.v¯± )Ó„ºðW2gDÒÀfC’¸ˆ$IÔòÑzEÃe…ÆûžY`Ú%ü"‹t:K¢?8­z¦¯íñÜ¿ÿ>½ŠÑ^i‘ñ*Œï¯}ñâ†Iêï§>kƒÁÞÞÄçÇ'äÕwïöö65©y¯Â5”†Ë²,—–.\èrI’$¹\È y&?ÈÕDjµk?œb§ÇÎ) ÂØ(:î9Cñ±!æÛØKsŠ+C{"êD‹Ï3qUÅU¦˜ þªgnµ¾©¦Ž-ÌՀг{÷¾ýöÛoão\_©‹’ôôŒŒŒ š‚oÐIõZÙ<³6¦îÇ÷¿ÿê«ßùN¿xi›Iãì'ÀíÛ^/ â86[z:ÖghèÁƒÄz à¡)ëׯ_ÿòËø¦öz@뙳jÕŠ+WÂp)%% ––âÛãd}³ÛíöìlŸolŒ1ÊÕÛ‰9È™5 ŠL{—>Ib×!X{ÄÆ®M›ÊÊdyÓ&I‘$Yf¾˜ÕÁ` SôÀô}ú¾áq18v‰x…ç.p‰2¡€iz°«¨¨°°°pÿþ}ûöíciSŸ2EEEEEE"íÒ?ªø°kxøñб™½§„6 Vp ¨ VÛè¨Ã!˵µo½ÕÝ„õµçÎíÚ J’¶Èª­­»Ûb1›­Ö@ ½ýêÕôtºª7oöôHRuuu50SÀl€úýéOlÝj³-X°qcvvVVv¶¶³Öè÷fyyyyEtE‘¾}ûöíÛ·Ã6š3ÐÚÆÆxHaÑòfªÕ–e«5=ýÁƒ††ÔÔ¡¡ººÑÑ´´ÿü'HIé臓’B!“Éë5‚ApµZù|êÇÌ4Ìì³\OÍ 0¶²Û‡£½½½½½éOñ½ÖÕÕÝÝÝ]RRRRRÒÝÝÕÕÕ%â¼²æGßïúa»ôÀ“Â+|¯®_¿~ýúuJñ+¾)vv•3vÍÑ®§'ŽQìír»9Ebn"èÚɲ,ÃG*Š`†*íЊÈ昦¼uðt¦ÌﮨW´'SŽB¼_E[ù+uüW»›ÑüôoõR¨€Ö^o¹ZµQûÙÀ“Ø ?1j8¸€6SXá5w2~>`ö¨VeeC׿Ìÿ^¶ ˜–/Ò´OF½<“xÇŠ/öºäXª|#¨‹Ä´âMõÖ‹D"‘ÚÚ+V¬8wîüùóçñ^Ž~5›L’tëÖÚµ99÷î=û¬È«Û*,|çè¶y¸N¿¿§GÜqµß?119év»Ý]] lÜæ) ¨µOùœÀ)´žµæ4N$ÔF$Ë’äv77ïÜI[ÔâSÅ¢FcJÊðpMMRÒÈHyy$b0LNF"²Œ¸/Fc8l0Œ·µIRss(d2Œ˜LÁ Í–‘Ñ×·y³Ñ81a·‹šæˆíµÞ’€Êʪªªª¶¶¶¶¶60—á ªŠÏ7:::J÷t¨)÷‰þ ,e³åt:SR:;ñ}ýú;ÕÕÌ= s « Ƭgø5Æÿ”£¿u= © Šòó `s ?ÕG^¸pÑ¢E‹p“2âLõ¬g´f7WŠeüô’ý“e¦HDí÷:;;:nÝbö¦Ñ6d&¥Yôäd 0:êv·µùýãã Á Sv—å»wûû‡‡õ«ßÿþäÉüãÄ æÝF#»=-Í`°ÙRR”&Àz€—Syè1Š7.…jyÌÔrN|f»-ÑÌDhü‰z¬uggg'ÛðOç,!"9ØÇÓi·»»»»»[ëW&_U¿Üà£,rÊØeþòB¡P³- ¨WJfª-Šó0 âèÚÑߥ’‰Ý–2…—£ÞÄPšÖCuu•þë¨!žsÀÌH$Á“@)ày¨¶²(À ¢fÎ]––¢¦(4… Kx)f’]R p ¥¨Àƒö„µ.æ¡m¡^3fäçÏw¹\.ès1ŸËñ]&G›¶i¥Ð}ÁR8>kÕ¬ÌÃM§iÅÒôaO3tEOßTH@¯Yb)Ѹ֯ʚymñC´@K¬™õ™–Q¯‡þyõù|¾O?½råÊF»Âa¥çÇÁAøOŸ˜˜˜¨¨¨¨¨¨À SŠ!®²n(1®i,lÔ“S~e9¦±RÔx“Òöèq(ŸŽ|MbÏ|¬5Vwøƒ”h×bã†vжˆ{â¹Øgž‚Ñ ‹ŠÎëÄ7Å.F»œN§“#zW96Õz4lQ£l”.©ƒ’þðšh›ì‹búÞ¡ç vE㘸ÊèmD¤]ÊRÑØ¥†±Sôb—VN‘²Qÿé ]›‰Ø…«ÐÚzìØ±cµµ+W®\™››———GWÊ%ÊýNW‡®`4M`ª¼‡JÜѽ'¬7D œúÌk¦ßZgM)’Š.ESÄÛ‹íRsŽ…óbëÊ:)FEÓ.µ(¼ŸðÆ ºÍ>¬ Ã(~gž;çNÆ™=ifèN¤/ ¾’S[¸*ÿÒ§~„ ððqÌf;ºÝP¨§çÙgy=ÑÔ&vO¢û““““““ó‹_ìÞ½{·Vhh‚3 Ò7-ÀÌ\¸páÂ… Úyø7¨u^äv»Ýn÷¡C‡:DK!]Ÿ quX@½ôtqfà¸!#£½ý{ß“eÆ¡0d9JNæãV›Ñ¡¢‡Ýn·×Õ­Y³fMg§Ûív#*S&‡ÃaˆÁT-.ž7oÞ<-œUõ¬ …¼<«Õíîè¸{·¬ìÌ™žžU«B!Pp¼—’’dÙh´ÙÀ¥`Øn6#¦‘,#d(¸Gtº~ý† 6žÂVóSPPPPP(fþÖ[[[ZZZ¦ß:œÏ,YRVVVÆ‚”ŽÃiÏç÷ê^¹R`Ž?|èó1o mm—/_º”Ÿït:tÞþ{;Ú¾ýõ×_ýÊ•înIºwÏë•åÉÉ`PŸl61ÑlŽD,³Y’ÒÓ“’$iñb§“éÏÁgJJ-Z´HÏêdž›7oܸqãI&¸\.—Ë¥æh&GЙĬÆ[3½â¸ÝÌ£ú“@¼f©åáiZ5ˆßÚe£S´[Ô®U=§:dd¤§§§gfÚí̽8Ûô[Äd°òûú¸‹Qw;¶·eñ[-¯ÞþÄÎïN¤8 †…Ñãuqþ72øÀÖa~Ü8(Ô0‹Ù},ÍÁgÀ‚á¶bÔe‚Ðç:õ¯ :6‡]s »€QTÇJ<=]L玳_˜´$IžvÚ1¦h Ý¿ïñx&»Þv­T<5<p:£ƒÛÇ“hͪV)1­¸¸¸¸¸ø—¿Ü¿ÿ~D*Šww˜Ípj0(¹=PeƒöºØO*lûNBϺP^8KKKKKKž¾`3 €”ŽÌlOp;‚ûGô­äçççççÃ'˜Îpè ±¼ h…QÅêÿWζtiA$-]:3ÝÕ+9šƒ§€jÔ§ó£~ùá“&žîÕPÏH§?ÐÔ†Vþt”Z›õ¬•®ÅJÖSöÑ ;;'''‡FyÖSŠæSAì×Xùõ§ÌèY =5 ‡, RÄc{îi4\³‰ê:i ·DìÂuP‹f<éÑÍÁ“N#)CPÔ2£eDìb¥Äúç°ëd¦ÀG"‘Å+œÔ>¯Ó9ÛSS­V«šbñÄ`xzOÊ™ª s2¡œfD*ÄNºh½WÀÜÉ8úàQNÆÙ¦R­=•‡zå$IËHãgm«ç‰§¶Ø/5QêÉ2”åUû8!^ÌŒ÷=«e[C±4Þ>’d4мI°q33m6›MßX¸}Ãlµ5‡mÍ™3§OŸ>-ædÁÕgoúv3Äj­›L&“Õª\«?À„ÿã^ëÆDaˆ›%tEXtdate:create2010-11-10T14:11:44+01:00ô]%tEXtdate:modify2010-11-10T14:11:44+01:00…Då¼'tEXtpdf:HiResBoundingBox959.88x599.925+0+0×eRa tEXtpdf:VersionPDF-1.3 1 0 obj << ‡XܽIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/screenshots/ss-2.png000644 001750 001750 00000446365 11617757645 023755 0ustar00simonesimone000000 000000 ‰PNG  IHDRÀXrfÄ pHYsHHFÉk> vpAgÀXD4º€IDATxÚìuxTÇ÷ðïºk²»q7ÄH‚»œ×¥8m)R\ w×"-Ü=hˆ×M²»Y×»{÷ýc~ûfù†¤ÒÒù<û„+sÏœ;gî½gΜÁ¥¤äç«ÕV«Õjµ"@ @ ÔD“ E1¬¾Å€@ @ @ È·Q§3ÍfûM&ŠšÍwï&%åäx{»¹ñù<‹E£½r¹J¥×geÉdmÛ†‡{zR($‘ˆÇBU—e&%¥¤ |>“ Êd± %?_,V(@™ƒA¡4mìæV}™@ ÿ ²³SSµZ•J.Ç>ÀjÅ0³Ùl6›‹‹ rsU*…B*:ôûïçÌ©o©!@ o‡G^¿ÎËÓht:“ øK=<œœ¸\µZ«5¿T*U(4š°°€'§šûKk×ûϬ;îÞ½äd‰Ä¾Ú·o'&feuîܬY@‡Ãáp•/ RvܼùôiFFóæ9;³X,“Yùxû2½½]]üý=<«*óýû¼<‰ÄÕÕÑ‘F«ªL@ ÿùùYYïÞyxøúWuLqq^^F†³³»»‡ÇÃ!|H]ƒ¢:]y¹ÑH¡ðùLæ‡-Ã4š¹sGŽ7®M›5kîÞÝÙ™DªI©ùùW®,[¶cÇÑ£ïÞ}ê¹@ uðmæä)~~îîUù*ÓÓssËÊòóKJ à/e³Ùl«ª2k×ûO®;EÍf[ö礤””âbOOgg>ÃÀÖêrC»º …NJJNŽLÖ¨‘Ÿ‘H¡P(Tªý1öeúø¸¹98$'¿xñäIUe6lÖ´éóçïÞååUU&@ ÈEQ ³gû8 × &‰D&×ôÝÉl–Jß¼9yróæ‚ ÅÛÛd’Jsr$6»k×ï¿<¸eKA“©¼üáÃ;ž<))¡Ñäò÷ïSRˆÄØØß~4ÈߟÁø:zxõêâÅ¥KؾýØ1™ŒË0àÈ‘cÇ~ûÍjÕë³³“’.]Ú¼ùáCéÝ{Ĉ>}:tpp ”Êýû÷ì9|ØÑÑё˥Pp8“éÅ‹”5jÖ¬ \\ÈäO•ÃbÑéÞ¿¿tiÞ¼åË/\˜0aÇŽ={‚‚>®…–,Y²„Í d±JK³²H¤I“æÍ›:õÃû+Ÿ?äÈîÝ/_‚#ºwŸ>½qcçÓ´ÚÄÄ¥KÇŒ™?ßÃcÔ¨yóÂÂ$!áàÁ]»®^us2dÖ¬™3‡ éÝÛlV(žÒd*/Ïζ—Ó¾îD½Þh4›SS³³KKù|6›NwwwrârM&µXªD4çç‹ÅrùÛ·YYee úúº¸Øc_æë×II7h]¹´ÔÔׯÁ1ŽPèïÊÓ$‰ôé@ ÿ^22Þ½{þ<''%åéÓgÏ=º}›ÇsttròõmРI|£¤$??=Á`0 ͉Οçr¹\O©T(ÊËÃÃ[µŠ‰ù°lƒáíÛ}û¦L™?ŸËýå—;ú÷pvñ (šŸ¿iÓ£GEEMš„„àñW®¬[·nÝéÓ3f=zû6“Ù³'pˆ›LÏŸ<øÓOׯK¥^^~~Tê«WÑÑ#G®_¯×ß½»qãÁƒ'O¾{Õ®]hhqñû÷Ïž¥¥ÉdÎÎkÖlÛ¶e‹Ù,_¼xæÌÉ“¦Ó••±X}ứӠ“ù×_6¬_Ïf{y‘ÉEE¾xñÝwK–LšÄãýùgzz¿~?ÿ¹fÍõë……'¶mëáѨQûöƒéõ2™¯/¯P$$¬\9}úúõÇoÚtäŸÏfS(x<‚ H›611V+Šj4åå*Îf“HŸ=‚ÃyzöèA  ýUZZTTVæììîÎç“Éà ‚ V«Zýø±P;vlx¸»»HÄ`­XñìYQ‘Nìèhsö®]ûóχEDÌ›·i8rõê©S/6lÅŠ¹síü;ŒF‹ÃH$ÀÇÇß¿AƒÀ@GG2™Ë=tèéS7·ÀÀðpðæ 4Zddhh‹ii‹^ïî^RråÊâÅëÖ>–Ù²¥Ÿ_zú³gOŸêõϛׯŸHtûöǎݾíäÔ®]ïÞqq X­ ™¬TfgK¥¥¥›6M:w.Øëï8x°ÕŠ 8œÕj±`˜Éd2™Ínذa“éîÎf«Téé™™ƒÏ™³j•Ù\RréÒ™3‡¿zE£Ñé™™F#h±X­‹V«Ñ¨TeeÅÅeeZmË–=ztèÀå;–’"‘••yyyzòùõm¯@¾5ìý¥5ñ”ìý¥*•F£ÓÙ{5«òÁ¢¨ÙŒaUyMÕû`ë®îîîNN‘‘öž[ 'ØŽ·—¼r݉ z …Z­×»ºŠDðÓ×\ &“Á RAˆ5(í÷R( L ³ZÁKèÇÊ{+—i4(Š 8‘Xwj…@ ù§‘œüòå“'Í›·nÝ¡ƒDRV&‘H …B$âñ’Ÿ_P•e4 F#—Ëç;:wsppTT§Nx<‡Ã99™Í(Zù ÍbQ(ÒÒòóM&6»aC2™@0›-Û1V+“^TTV¦Ty{·m;p`¯^çÎ-Z4gί¿¶n3jT‡Í›ûû?|øò¥ÕÚ¢ÅôéƒûúZ­äåY,]»6mÚ©™|àÀõë-Zôí»go±èt……gÎŒ—•%—df®[wèÕ:~üîÝ;›L›7¯]»yó¾}AA¿ýÖ§ÅÒ½û˜1-[:9áñF£»»^/“iµf3xÄá˜ÌfÍrrV¯^¾üáÃÀÀÕ«›7§ÑÀ»¤ÕŠ¢*Uvvy¹ÙL§S( ‰d±˜Í‹^/?~üúuf¦R‰ÇÓh>> FD0™Rá8®9¶è±ZÍf³Ãp¸Šr,µ:7—F#H$Ã,2ÙÙY§Ój ƒÃ!A<°Je±P©4@"# ƒ!/¯ò‘‡Ù ¦hÚ¤Qór"ˆ}K0›-«ÕjÅãét—fÍ:w&“¼y³U«ØØ]»Z´hÝúäɵkçÏ߸ÑÏoçÎ_~áñNŸ~ùÒǧmÛÁƒ¹\¡° ÀdÚ¿ÿÁƒòr¹Ãx< …Ç{[¶twg³SR²]×b1 ¬Ö®]GnÙR$"‘Ìf?¿uë²²ÊËóò22V¯ÞµK­9rß¾nÝ„ÂgÏ^½zôh×. C"qÌ˜ØØ¨¨'OÊ˅°°1c6nÔh4š×¯ÿ·¦pYu@ µÍ—ûK+{5+—™–öæÍûîÝ«WOŸÚ—bsìVëº4n¤­,§½~*×vêtƒÑRDƒÏôôäägϪ%0°qã¨(*•L&A •o…}™@ûÏ›ªµ/D÷HŸr“!@þýƒÁÀåŠD>>2™B¡Õ¾y“˜xûvãÆááM›ŠÅ99ááÍšuìH£1L¦LVZšŸÏ`p¹†´$Pù ,bhË)gµÚÞ V+pÉZ­ Š"—ëé»cGçÎjõŒwîlÞ›]TTV¦R™L(ŠaÞÞAAMšTÿ Ž,,,-U*…BÍ®,®}™àü]ùì¿öe‰d2…R—*…@ ù'Ò½{lìwß={èкu/_>xpùrçÎýû+zzGG·k×»·@àêêãƒaf3Šâp™¬Ñ(•2Yõ%ALÌðá­[k4/^½šžnÛcµêtgÏ®[îèH&#HYÙ©S»wŸ:•–Ö¾ýwßmÙ2þªUqqBjêýû¿ý6nÜ”)b±‹K›6QQ­Z…„ ¨½ãÃŒF"Dl#ˆÙ¬T&'?xàâÂá8;;;Óh&“Zíáѽ{·n£FmÜøãß}çááárûöÛ·åå6'Š–”X­$’-ê¼Þ6h0yò¥K öíûöí¦M“'Ïš®ŠÃq8íÚMœ8ujƒÏŸ—•™L¶Úáp‘H$R( o±àñDbÅ;:=2ò§ŸŽ}ófûöjæz¶çùó7ž<Ñh,!;txò$7W¥Â0«E•Ê—/¯]sr"‘JK_¾¬8²K77™ÌþH ýî;'':½"ò¹B¶;Ïžý˜ëùcP©^^mÚxz*•‰‰Vì1™$’„„sç[j’жA ç²m Ìz7«šzZÝ^<žFóð÷ºcǾ}GwÜÃÃÝ=8ØÛ›D**zôèý{•ÊbÑhrrôz³¹âl›k›@ “AdÿçÙ@ ȧQÙ_Zó_àÛ¬ìÕ¬¹¶²µzl]×ýÝ»—/Ÿ>¿ö‚-Õ×ýÿ^¸¸\&3;»¨H*utäñŒÌÌwïž?¯^?¿àà&MÄb©T©ôô‰>Vy°”Y9°¼*ìË$¸’;@ ÿ4ƒÁᆄ4k–——••šÊ`°X<ÞÇŽÅãñx‹Íær™LÇѱ&¥»»¶aC×®®_ÿøñÝ»ÅÅ:]~þ‹ÙÙfówß D&Óh$™Ü°¡§gaáÖ­·n?ߤ‰\ž›‹¢íÚM›6n…rþü?œ?¿yóêÕÅÅM›z{?ž™YT0jTX‚X,ɵkçÎ9B§›L…………Riçδl2`ÀäÉýú>‡C£ mÛr8Ÿ›ÜÍbÑé²²îÜQ*u:±øùó»w¯^Åá:tèßÿáË/^äp¢£#"|}9€Ë½woÁ‚Ë—Åb@¥ÊÏoÙ²OŸ¬¬G.]zôˆÇkÚ4"""bòäñã32öîÝ»;xð!4‘H¡Øâ€?<ÞÑ1<üÇW¬J÷ï?xðöíK—RSF©ôýûü|µºGÁƒ “)//1ñÎ…Â`P(À¯N÷äÉÝ»ào¥‡svŽˆðñÑë¯\9xpëÖÐÐ=¸\…Â`P*óòÒÓKKí÷R©ýûÎÍÎ~ùòùóˆ/¯®]äüù¡CwìHJ X,:}àÀ1c¦MëÑcÒ¤^½öíÛµkæÌË—ËÊZµ2›-¹<;ûÅ‹çÏ$  G:65@ `ï/U(Š‹ÓÒjr–½¿ÔÅE(üÐ_ZÙ †Ú+—ü¨ †™kVkõ>دYw •OÆMšdd¼}›”ü½UÕwêTB‚-"--;[,&“I$"ÑÙY(är«¥¨¨´T.7›QÔlöõuwwp ‘þׯ_¹ÌÌÌwï’’ª»I‘‘yy……IUeB üw()ÉËKM•É$±8882²C‡“Ÿÿþ½““‡‡¿?‚ØG¯Ö«ÕbIJZ·®GãÇˡ ™2eÖ¬~ýÜÝ9ÇæµZÍf­V¯7™[4,†Ñh n2iµ …^o±‰‚Õj4Z,&Óû÷{÷Ι³~ý¸q›6:D¡H(‡H¤P˜LmµšÍ Û1H〠™Ì`P(¢×kµ:ш ‰D&Óht:‡¢N§Ó¡(‹Åç;:VÄïb˜BQ^®T2™<¢‡1ÌdÒéÀâ{x<@$âp¶ìÈd2ÎdÒhŸ—ÚhÔé”J½Þ`°XH$  *A´Z¥Òd¢Ñ86›@À0ƒA¯×éP‡#q8ž‚HD£Q£Q*M&&“Ëe³Aždp$È&M¡0 º¦w¤é˜>0@ ò¥ß&Š*¹¹59žFstôõþÒ  /hï/Õj%’Ì̪JžÒšø`¿NÝ<•þÞªêþÃ0ÌbÑét:½>%%'G*åó¹\&“N§Rmk5‚ åå …VÛ¨‘@@£Ñh4‡Çìåݾ̼¼’¥’B¡P(P&•J¡HååJ¥FÊd2ét2¹Aoo'§ªÊ„@ ùï ×«Õr¹B!‘äå¡(Š¢(Èàl6›LF£Z­PH$¹¹ïÞõé3zôìÙx<‘øù/£V«Åb2étjµÕJ&³Ùd2‰ôiQ¸‹J•}ïÞöíìÙsõê€6\»êäD¡Àä @ À·™šš]R¢Õêõ( ü¥|>‡Ã` F#Š©Éd2¡¨——“‡Ssimù`ÿÉuÿÀ AÝeeR©\.—«ÕF#ˆv{™L:Bár™L2Y$øüšˆ ÊDQ“ÉhÌÎ.*’ËA™z½Á`2 |>‹Ê€QÏ@ 5'55)éæM‘ÈÕÕLJÏwvöñ©o‰@l³Ñ¨Ñ F"Q© …B$~YJ @ ¤>0™ŒFƒA.W©t:à/•Jår†F£RÉdà/õñquåñjîÕ¬ ì?³îq@€‡þÛñxÂÿÇã?=;3Š¢¨ÉÊÄ0‹ÅlI©¿¤L@ ÿ2jµB!•2l6ߦ @ ºÀÞ_ æ#‚$oÀ_J"‘H¶øåÏ+³v}°ÿœºW¹ø ¨˜­z$Rí‰k¨6Ë„@ ù/Ãbq¹5Yx@ |.öþÒÏs7W_æ?Ù_ú%u‡–!@ @ R'@4@ @ @êœ\.“•”Ô·@ @ ùÖ€Ð@ @ ©ˆ_^@ @ @j‚ÕjµZ­åå2YiiNNffJJõÇ3,‡#‰Dnnd2•Êd2™L&ƒQ[åØ#“I¥%%ee%%EEZ­F£TÖ¤LwwOÏ  ƒÁ Óq8‡³?攂ÊÄÄ+/~ölþüµk‡ IH8thÍš þü3;ûÌ™›7¯o«#>~ݺ ¶o¿|Ùj]¹òìÙÝ»¯^]°`Û¶!C~ÿ}òd__ ¥¾%\¾|ÆŒ’<ÏÅlV(ž=;yrË–/Z´˜={ÂOÏO[wÕl./ÿwÙW}P¡¥””N–,ùt=ÿÓùïô öÏ—/©/†i4©©çÎíÚµq#èíoܸuk÷îú®ß× !aß¾¹sAѵë¾}‡{@ @ _‡””·o“’‚ƒCBš5#¡úã HîàŒŒ´´×¯4hÔ¨I“Ú*Çþ'I$‰LÆ0 ³XjRæ«WII÷ï{xx{7ô‡Ní¯”‚ÃhÌÏ?wnÇŽ œ={ãÆ={víÚµkÏžmÛÖ­[´(.îüù²2³Ùl./ÏËËÎ.*B"‘ÏoÝ:.®_?:]¯×龎œ€;,ˆ‹kÒ$4´S§Y³6nܳgË–5kæÍ:´Y³æÍccÏŸ/+«|VLÌ€áá‚Á`4b‚ ¨‹NWq£4š´´Ó§$­-i-µ:%%22$¤C‡Ÿ~Ú»÷Úµìl½Þjî³'ONœØ´iäÈvízöÌÈÈÊúPž ìܹxñ!‘‘!!íÛoÛ¶aÊ?ý4fÌwßÍž}ðà»wõ-ãÿrúôªUFD4nܾý´i;v\¹¶›Lùùû÷ÇÄ4mÚ»7Ø‚aZmFÆÅ‹»w/X°`ÁÁƒ·oK$&Óç\“Här£¢bbºuÃ0«µjM‹›:uõê;¶n]·nÉ’I“FŽœ>EëÓ¾¾ µúÙ³#š5kÝzãÆíÛ÷ìÙ¾}Õªñã›5 ïÚuûöM›V®œ6­wïöíA¯òeתÐRUz® äò'Oöì™7oþüuë¶mÛ±cóæß¼Ñhj*Õ ú™ÊÛ+÷<•û¨2 ¯³·µ¼<ƒÁjµ·µ]»òòL&{[ëܹY³¾}ËÊt:ÛóåKê‹Ç3™ Ø÷öõ­•ê0™Äâ;w¢£CC;uš={×®sçËËÍfƒ!?ÿæÍ£G׬9ì}õJ¡ø;­Ø÷_Ó" @ äÛC§ÓhT*‡ËupñÐÕÿZ,f3ŠR©T*n•\}9,›ÍãÙÿVUŽ= 4 ³XÌæšËJÃ0 ^ÑùJ)8(>}ÆŽ;V,~õÊÁaüøèh ì³Z““/]’HGÇnÝöì9¾[7Ûyÿ°ýu;vìØŽÏŸ¿}ûñãØØ±c´6lX“&JåÌ™ZmUg~(ïž=çϯXa¿ÿúõÕ«OŸ.+[¸°W¯Ö­‚Ú–@`±6ìÑC °ZKK›6õö¦Ñ€|~dd›6ÞÞLæë×óæmßþÛoÍ›}}ÖÐN¾ûnôh±øÜ¹7?ž<ùÇýE‹Šþú+666vÑ"=úÔ©ú–´‚þý'NüñÇk×.\X°€Áhݺm[Îÿ¤¤›7e2µº¸8ýH$Ãß¿kט˜FZ·vqéÐÃù’ö]ݹÿkq?üÍbY­Zí›7+W>y"—[­­[‰õa__ ïàоýš53fLšÔ¬™É”›‹a.\¸`2Mš4}úܹ&SŸ>îî ¤§×Îõ¾v/´páüù7n´lùÇÇŽ ìâB$®\yçŽD‚aÂdþÝX¦Ù\Vú™þý÷ï0À~û»wZ-gßóT ‹Å`Ðë­V …F«ýÖúºÈH6›@¶æéI¥âp%%¶vñâýûee&Œa³µ3g22bbœœ\\š5ûðùòeÔÏÓéÓ “Û·wp`2ìßÈ>}¢£ÙlA>¿S§¸¸¸¸ÌÌ#GΞ}ü8,ŒËý»¶õï¨3@ üÛi4¾N95¿–ý‘l6—ëà R)2™ýð·ýöªøê‹Ú¾b˜N—–vüø¶m11B!_^~÷î AÍ›÷êUõù&Saá js¬×d¿~;Nž\Wr"ˆV›–vüøêÕfóÂ…{öôê%&$üòKLÌÀü‘Ÿ¢XM&¹¼ @«­ˆ"uÙ±#7×çzæLzºZ]‘cóæíÞݯ_nîœ93f\½*•Z,@W'O®^-—ÿòË¢EÍ›W–hrÕª”½lš|ð@¡°ZAo¯^GŽªÁ‘±m[»vÓ¦%%©Õà–—ß¹cÛ_»ú7™JJvîÜ´iåÊyóÖ­ËȈݲeï^Û*Ubâ°a-[~ØZL¦œœ;tà˜¨¨&M*¢ûÌæ’’sçF®¨ó—JÊáDE-Y2}:—{çί¿ž=kµªT¯^mÝúüùôé§O;Ö¥ËÕ«ee ‚X­*Õóç›6=~ls=£hIɉÇwéb6ÛJÔëSRÖ®íÕËóªP<|8thÓ¦-Z=ú矧O_»––¦ÑTŒ'™L……'Nüüóܹ'Ndf~L“X­†a,™ü1G’Ù\Rß¿tt—.àÚCZÚªU;¶j5q¢½>cbÖ¯öÌ^ŸÍšuè°x±½…‚veo¡¶võ%°XMšlܸre³fUA&{y þûï:`بQçÏ—–Úë¶sçùó_¾´éEKJþî˜ÊZ*-=wîÚµòrÛ=@ÑââË—?6Â÷9øøÐéÙÙ¿ý6|øôéëן;÷úõܹíÛ 6÷ ÉTXho³@Ã6Ýêõùù Ÿù°T½>?¿r}*÷ ö÷XýýW:´M›¸¸Ó§KJlZëСcÇ Þ½3™¨TI&;¾îôcok ç±·5¥rëÖ9sìmmРٳ£¢¬ÖŠç‹­¾5iϦPØ÷ö¶{`ßÛWX1hK@ßÀŠA[}é¾}½zµl zTЗN:qbÇŽ G}é÷ßñ矵ߣVå<þßmŸú„U©‡ŠŠŒìÝ{ûö”±ZµÚää-[úôiÒ¤C‡¥Kk»@ ò­Ò\Ôü·úr€kØÞA P(ÊËËÊjRNe©À–Ê%Û—Y}i_Ý Æ5iÒ°¡¿@@£F¡¡½{¯[¶ãp$ƒA"á«‘Él–ËŸ??{6+K©Ü¼yË–mÛ¶o?r$1Q&S©ÄâÚ–T¥zö HÖ»÷úõ™™ƒmßîÝOŸÒéqq;»¸€˜d2çæÆ`TD‘U_—Ú…BqwïÝ»o_.7+kÿþ{÷¤R£±¨èæÍ¤¤-:urs#“?&ФTzéÒþý@Ÿ@“YYjµÙŒ d²““Tzùrr²Ri±˜Lee/_êtdrJʹs¹¹:‚èõwï …$Rí׉Lvr1¢W¯à`£ñõëÇß¾U«+œX•šÛ¶WÔC"9;WD÷‰|~HHt´FSárüRˆD‡èèÎy<‰äâE½¾ àΓ©S'''?¿ØØ'^½R*1L¯/(¸qC§ëМg±(II'Oæäp¹Äÿ?FóöîÑ#""/´7LÆã oذ!C èÚ5(ˆÉµDѲ²„„“'ñøÉ“-Š‹óó«,ݱc»wïÞ½cǦM«V-Yràòa&žŠzˆD={îÛwúô¡Cb2I$©©ÏŸètf³Ng¯ÏîÝûõ µ×'—k0ääØ[(hWöjkW_ Û¾}›6ut´×­Åòøñ™3@·59¦28@¡¬]»téîÝ/&%åç Ba·nµeíS§<¸k׬Y-Zh4çÏÏŸ?|øæÍËå 3¶·Y áÏÓmå>Áþþ«±¿¿Àjôz³¹²ëÒliêZ?ö¶öâ…\n±ØÛZd$™œ“cok {¾ü}{Æ0…âåKûÞœißÛÛ[1hK +m ôfíÛwîÌå‚ô¥ŽÝ¡èQA_j±tëÖºum÷¨Ï2ÿ€Ûopp—.›6efV¤ùô',è…I$'§.]ºw÷óCŽÁhÐ`À€áÃÝÝuºW¯j³@ ò-býDª/§ª½\.Ÿ/Ö¤œÊRÉå2·²¶Ô¼´¯”‚Þ£GŸ?OI‰Žf±,&5õĉšŸ‹aCY™Á@ ¸¸L›6uª-&kúôÙ³k_R6;*êèÑ«Wjذ¨èøñß~+(°í“É,:ÝÕ•N'Úé°>§'“É®®=zôëÇç}ÆŸ<¹uk.Aìµ `0 /\ÈÈP*ÃÃÕꌌ¨¨ÐP«u͚˗ •Ê>T*ýü€ó¦öa0||:u;6"bÆï¾Û¶-!AÚ·ïÓçSÊ¨ì¨Æáþ~²ù§jßÉ©M›¦Méô#G <<Ú¶í×Ã! ?¿ŒŒãÇ_¾,-õöNO/+kÙ²{wp–Å¢Ó‰ÅZ-‚Ðhö¥4šH¤ÓÙ;íë<~¼jÕŠEEóçÞ·¯•Jü«:ôûï¿ÿ¾"éÍß몬ìÁƒ-[®^Åã6ôññöf±„ädûc{‚ÿãpZ¨}»ª ­ [''ïÃ{M& EE@·59¦2‚£cÇŽMšH¥½z-\8rä¶m&“Hýòå;ûö}¹ãHäó›41bùòC‡þé§—/ÃÃ{õZ¶,:úòåuë"" †²2{Ý~ÈÿF>:ÕÝ_À¼yƒq8sçþøãÂ…99-[ ={ΟÿóÏAAt:‚tz]êÇÞÖNŸ~÷®¬,.®aC¡ØÚ AaaDbiiQÑÇÀÖø|bµÏ¹êêk6«Õ™™Õ÷ööVìäD£ÙÚ°b2Ù`HJr»¸téÒº5ƒqêÔ… iiqqááݺñù¡¡VëܹbñÇþþíÛ÷ì)Õö€^ų̾0™rswíêÓgذGÀ–¿{ÂªÕ NüïtH$2îî 𵜠@ äß‹ÕjµÖƬaûrÊË¥R[ Ÿïèèì ¶ÔüZöG‚ì÷òx"‘ýUªç«G@Û{Ä &³Aƒ!Cl약åÿ»…LvqéÑcØ0W×ìlÛy‹E.ð`ãÆõëëBNàÃg2ƒ‚ Z¹²CîÖ­E‹öì4H$ÊÌ\´hÛ¶gÏ”J C‰$)éÉ©´º©Óx<†‰^_[ÓÑí!‘<=GÚ¶mòd«uëÖ#Gš63§[7¡°jg+Ðäòå{ö¼~ ô 4ùâ…JeÓÀòåÁÁ©©3gΜ¹reNÎС-ZÌž={¶£ã¹sãÆÍŸ¿r%‘8}zí×ÅþÎÓé>>C†„†’É99‡Wè’BqpÀã ›‹Ã4š””K—®_ÿX)U—_;P©S§Îëã3k‚üðCçÎ"€ 8›ðöíŒþü³J5uj¿~îîà2ÙÅ¥gÏQ£¼¼ÄbûYYgÎ\¹ÄdV'«ÕŠ mÚ¬YsúôªUNN;wvîѽûÿ:|ª‡úßífsqñéÓ£GOž|ôè´iãÇ÷ëפ ‰TX¨Ñ (H!òwú´·PЮì-Ô¾]Õ&+èv×®{÷ÊÊìuk±´k7e ÐmMŽ©\ºÉ”›{äÈ‚‡_½úâEJJrrRÒε“Ôå»ï–,yøP¡À0!‘øüðp??ƒF£P›†ímhØ^· Ÿ©\òç÷<ê`éÒ?þÈÈhÐ`ìØéÓ§N<ùÇú©}{GGà6­kýØÛZJÊ´iÆÙÛZTÔ’%‹ÙÛ˜¡R“çKå=d²³s·nö½=‚ ŠÚ÷ööV Ú‚TX1hKrOšzTЗ lv£F G}i\œ‡G]Ì'±=˪×Áß=a«Ò˜Ù¬ÑdeI¥ Õ¡hQѵkÛ·—”4l8qb]Ô@ @¾%@ºÔšÿV_ø¸ŒíÇ5/§òñ`‹LVVVT~í¯R“Ò¾R´É$ß¹súôéÓ¿~Íb‰DZmŸ>11íÛ‹Dd2‚ hyyBÂùó/iµr¹Zm4J$ÏžÅÇŸ?_T¤Õ–—§¤¨ÕÖ°!‹åê»nݬYýû6q¢··HäàüîÝM›fÏÎÊš5kþü¾} ððèß¿GWW&ÓbIL<þäÉÓ§A]’’îÞMKS«GŒ éß?* _±bÆŒŸ&G=ú×_‡ ‰Šª=M“H"QÇŽº¸„†6lÈfÛbÒP´¼¼²<@“éésæüúë AÆyxôì9uêŠß_q¦¿ÿþîî(º|9Þ¼¹HD&s¹Tj¯^"‘Á°gO›6ŽÔF;9uêáC©T­‹ß¾U©,–† ýüFŒèÖÍÕuÊ”¤$¥Òb‰Œd³ýý'O3&$$.n„yó¢£5òó ò÷ïØñÙ³ãÇOœÈÎFääÂBF&»s§´ÔdjÙA=÷÷í[ 0ÐÛ{ðàö훓êKÀãÙì† {ôˆŠrssr²/1.ÎÛ›F[³ÆÛ»kW77*Õþ~9;÷ë·~ýܹ˗oذs§£#Ф¦ªTƒmÛ†¢ÉíÛññçÎZ\¿ž›«×wîìâ¢ÑܹsöìÅ‹OŸ*•‘‘mÛN˜°gÏöítú¯¿þúë±c))sç¶m[Zzõê©S½zÅb99™L±±11­[;8H ½ÆíÛ•íK$êÒeæÌ^½Îž2eÉ’Í›5rwðó#?^·îСøx Ƀ§OÇÇ;|¸Hd³F,–H¬V›…‚v5eÊÌ™ááÀBíÛÕ—“˜xñâÉ“ïÞ½}ûàTªV—”\ºôü¹Bѵk“&\.‘H"9;7n|ûöO?-_ž™t»~ýܹ˖±X@Žê±éÿüùÇ•J±¸mÛ1czö är5š6mÁ‚õë7vu¥PŠÜ\fΜ߯zµmk0üñÇœ9 &&6nìâB ôí»zõìÙ¡¡L&ÚÕµiÓ—/¿ÿØ,è7mÚ°aùrAQ[?óçŸÏžM˜åà@¥zx\¼XÑóL˜Ð¯Ÿ¯ï‡}Â!ÎÎö÷7(høð~ýJJ*îï¹sññwî Ò¶-›½jÕÔ©íÛ[,ÂãyzFGÇÄLº|ù¬YmÚ4jôóÏu¥{[sv¦R÷ï··5<žÃiÔ‡ ìmÍþùê{û6wþüßµgqwþĉóçq¸þý{ô ÑhîÝ‹?}úÉ™L«‹_½R*-–°0§ê'¬É¿~=è1?>þêՉnjý¿JõâÅÚµ‹oÛÅfgdÈdíÚ­Zµzu—.µY@ ùV Ó K¡Ë%’šG%ët:FÃ`0™¶Ù­•Ë‘JKK+28T`•ÊåØJ#"Ñl6›M&P¦} öWÛAix<ÿ±ü8¹\&+)©oµC äßÁºuÆ `2M˜°uëŒ-Z…II»v þÓOþéä´gϵk6„…}<Ï8äÛB­~öløðnÝ–.mÙòèÑÓ§'Nôòªá<@ ù¶‘HJK‹Š ¹\*õööõmРúãËX,.*ÊÍåry<@$rvvw¯­rìÉÈHK{ýÚÕÕÝÝLJL&“ÿ.T ”©×ëtZ-‡Ãç …T*…òáY_É –<ªþ˜ŒŒ÷ïSRêZ’oOگ̟W‹K]j«¾ßFMk—o[oÕ×îŸP¯—/wïž9síÚÄD2944,ÌÛÛ`JÍæfÍÆŽ;¶sgww2¹îòá×¼—ø§éíëó©ºúT-ݾ}èÐüùK—®_û¶³óˆS§=:sæ!_où]@ ùw¦F£Ñˆ¢(Z]B_AYL ‰D"…B&“É8‡ÃÕV9öÇ ƒÁ`6›ÍfsMeÒét:^¹4Œ€†@ @ @ Hã” @ @ R'@4@ @ @ê耆@ @ @ H@¬o @ o½^¯×ë-‹Åb©É‚-5,çB `É"‘D"‘H¤ú®1@ ò÷@4@ ò™§³X\T”“cµb˜ÅB&“Éd2X_¼¶®‚af±˜L&“ѨV«T EÓ¦­Zuïn4 Zm}ë@ ©˜‚@ ùdPEQT¥R©är•J¡J) …JÅáp8<ÞZ«€2) …FsppttrR©Tªòr ]ßš€@ @ª£–# ËËËËårµZ­V«ËËår¹<3333#C¯×étº’’’’²²˜˜˜˜=|}ýü|}©T …B©o%T “Édåå|þ——f6›ÍfsiiiiY˜Œéááááî^ßµ¬ŽïŸg%%%%¥¥‰‰‰‰Ïž‘Hd2‘èééááéÙ AƒAAx<¯óA{IÒÒÒÓÓÓõz½^§’xyyyyz2 ƒñu4#‹Å%%@•J©T©üüüü|}$4F£}ÍT…\.—+©©©©ii-Z´hѬY}Ibp+¨ÕjµF“——ŸŸŸ/—Ëdåå2™\.“åädgçæâñн{·n]»7lX×’ÛÌÊÊÌÌÊ’Û,+“Hd2 É?Í6¿>Pcß÷îÝ¿ŸþnݺU«–-ë·×‚@àMO&+++*b±X,.÷ë\¤ãÈÏÏÎNKkÜ8<¼E ³EQ´¾õ@ |œOv@_¸pñâ¥KÅÅééaa!!V+† ££PèêJ¡‰$’‹‹@@¡Èåee8ܽ{ÉÉéé!!‡„0™d²F³oßîÝ›7ûøøù5nܼyóæÍ›s¹\.‡ó%•IOOOÿþÔ©Ó§ãã[µjÕªE wwww77:F£Ñ¨T*•Fc2™LäÎ3™L&=zôèÑ£%’ââü|¡ÏçpºtéÛwðà.]:wîØÑÙÙÙÙÙùóä™;÷×_çÍËÈHKKNnØ0(È×7.nȱcCCCCCBj÷ãY¯×ëµZ:Ng±¬V«Ã>õ"‘›[}ÝÁOÜÁíÛ7mZ³8R ŠŠJJ ÇÁA.—ɤRÅ"“=âñØlŽFãó|Eõz¥HB&S© †F£Ñh4@’ÈÈÀÀ¼<©Ôh¬kITªòò’©´¼\©’H •š’òúõÓ§@’ÜÜ‚±xÈ1c&Mª‰$5oi58ëß¾}ùòÁ____oï‹ÏŸïÙ³wï~ýjK'Õ³k׎ë×úû{{ãpx<‘Èf3™d2“Éfóù ß¶Àç3™,‚X,åå8œ··«k»v­ZEDhµRyåÊ•+W¯¶oß¾}»vƒÁ`4~ªEÛ$0L©d±Øl‡B!‘¬V>ßÁA$Òéôz“)55--+K¡Ë%gg¡ðíÛ¬¬ôô©SøaäH °Í±cÇŸ:õó$ù¼û"_ç®ÙkŒÅ¢RM&ƒÁ`±@oÆã98ˆDàÞÞÌ××ÓÓvï@o6eÊ?Œ©Ó}©Æ*â¿Ì Õ³nݺu7‚¿Á“ÝÇÇÛÛÛ»¾å‚ü·¨lïÀ­Óiµj5‹Åbq8öyŸÁßZ­V«Ó-à-´¶äQ* ™Œ@ a4@ äŸ aΜٳgάù bqq±XlµZ,z}ddddH‡Ãb1™4•J$’Éd2X¸V-&“N§Ñ’“““SR²²²³³²Þ½KIÉÌôööòrsCQ“I­&Èd&S$ …ÂOua€ØI¥R©T(îß¿ÿþýøø“'OœHH¸sçæÍ Î;wîìÙøø3gN:yòøñ3gN:s&>>>>>þÂ… Ο×éär‰ÄËËÕU ðòrs ³³‹Šd²¶mÛ¶mÓæK"U:pàÀ‹Á R[µjÖ,4ôìÙóç/^,((**- …B¡Íf³Ùì/wÜ€ƒÉd³1 êv…ØßÁˆˆððFØl6›É$‘ˆD¡Ñ¨T2ùkÞÁ/!>þÌ™3gt:•J&+.–H”ʸ¸Aƒ† ˆhÒ„Åb³¹Ü7oÞ½KK‹‰éرyówïRRÒÒgg‘H$‰jW­V./))(())/’ÄÆÆÅ l±`˜Õ $Q* …Âd2t: ‰@ µ¥7{I¬V 3›»wïÝ;.Hâêêêêêzûö½{IÚµkÕ**J¡Ðé0¬&’Ô¼¥Õ„¬¬ì윅B&‹u:N«%ñx‹ÅÉÉÕÕLJH$k/{fUääde¥¦FD„…5h T*•Z­»»››£#ƒA§S©$€  d2…B&‹Ø³gÿþ£GïßOHxú4##337—ÇãpÈäãÇOž9šN§ÓétƒÁhDQ<'Éd …Á0 Ã,³™L&“ét<ž@ ‘7™ èß¿gO&“Á ÑÒÒÒÓ32ÒÒÞ¿ÏÉÉÎÎÎÎË“ËÕj.((000B¡PÈäšËcIJzþüÅ‹íÛ·nݺla0¨T28#8&“NÓéTª­|à P0ŒÁptäñ8*•B!“1ÌdÂ0EQ³ùóÔ >'\]]]œ0ÌbÁ°† CB"#‹Š$½¾I“ððÐÐk×®]»~½]»víÚ¶õôôôôô$“ÉäÏa1Fƒ$@³¹êi˜öwÐdBQ‹%//?_,¦R‰D³ùáÃ'OÞ¼‰ˆ  >ßd2›$&&&¦sg‡Åb02223³³ß¿ÏÌÌÍÍÊÊÎÎÏÿ’;øyèt:N—œüúuRRiiYYyy»v;vëæééååãC£Ñét:ƒ"˜L:EQT.wwwu Ó3$$$¤qãÚ•¤cÇV­š6e³…B«HV«ˆhÒ$"Hrüø±c‡·iÓ¬Yh($0°6õf/ɱcgÎ\¹2|ø¸q6IÜÜÜÝ=<úõëß¿ Š¢¨ÅRXXSIjÞÒªD…ÛzƒwïÒÓ½½ÝÝ‚âb‰D£!‘˜ÌW¯š7oÖ,:úËuR=r¹B¡Vgeåä”–ÆÇŸ?ýz` ¿¿‡GÅâQx<‘H"Q©‹Ùl4êõƒÉäîîêêìܬYTT£FV+G \¿~ãFBÂË—¯_§¤xyy{ûú††~Z¶™““Ÿ_VvãÆíÛ 4dȈþyâÄ… B¡HäéÉçóù|>…Â`ˆD÷î=z”’Ò¬YddX˜‡‡«+Ÿ/—–Êå wMHHHHH’Ôm*•J¥RyóæÍ›7o¶lÙ²eË–T*•J¥‚hzàÆÙQ»W£Ñ ”n±``±˜LJ%¸kàyd±X,(Š x<‰žG:F£PÈdr¹Zý%ûT[(((((,C AAAAµ«“šÉPXXTää$ …`öÒ×—áS±E”‚¿+"L!¯Iõö^U»Œ‰éÙ³O&“Åb³/^¼zõÞ=>ŸÃ¡Ó]\\\œœ@² è訨ˆˆú®@ RW|²ÄíÞ½{ëVA\ÌbµR©t:›m4êõjµN§Ñ”—“H`™€Åb25H$“5jØÐÛ;$¤Q#??‰D¢PrsÅbÛ«<È• œe5‘ıöìӣǞ=[¶¬_ïä$xxX­fµ*•jµVk6[,‹T*—+• zQ§Óë  Ã0«µ¤D*•ËSR23 ‚ƒ<=ãâFŽüá úyjQ-›ÍbUË)Iiµbøä iØP&“Éd²I“&Mš8ÑÅÅÕÕÝ}éÒ%K-úÔ+jµjµR ôi2UGÁØßÁÒR‰D.¿~ýöí§OCBBC£¢?NJÊÌ|õêÍ›””€€€€€ƒNg2 ¥R¡Àáp8EF•ŠÇãp8œï¾5*6ÖlÆálY³?õ~Z­N§Óegçääç÷ïߣGÛ¶oÞ¤¥½{"ŒˆDõêåË/PT§+/oܸA?¿?þøë¯ ¦M›>}ÆŒº¤mÛèèFÒÓÓÒrr€$‡Ãå>|˜p÷.dÀ€nÝZµZ·nçÎcÇ€$Ÿ÷Tö’tíÚ¶m“&Ož¼yHRZZVVZJ£±Ùîî5‘¤æ-­zÀÜ‚N:vl×ÎdÒé ‘ÈÑ‘Éôõ Šˆ®-THgØ£G@@@€¿ÿ¸qãÆ 2w“Éd2‘ú:2™Ba21 ÃPô¯¿Ž=t¨qãà`“ EÍæ¦M##'O>tèØ±K—ÂÃÃÃÃÂ>Õ€m^»výúëד'OúóÏÀÑÖ³gß¾#Gæççççççääää䀸;<AL&gg''ÀÁÁÁÉtpppàrAïj6[,8¤î´Çáp8λwÉɯ^q84Šr8<ž@€¢f3†©ÕJey¹Ñh0 ‚°ÙááááááoÞ¼yóæMóæM›FFº¸¸¸8;^,0ИÅb±˜L¯_''§§ß»—ðøqïÞÝ»·l) …|>xñù"‘‚àpÊÿãêÕ74 òñ4hÀ€.], Ãã?UcŸj ÞÞÞÞ^^`îˆêÕjµZ­vÆŒéÓ§N­¹rsóòòó ŽŽ5— ›Ý¹s÷î½{ /|¿~ýúõéS×ýö—c¿ [í– ¬´Ô¯™£ÿÛ@"‘J¥ÒŒŒ÷ï33Á–æÍ›7oÚôë§åmãñãÇŸ>[üýüüGGGÇ//ÿïíýÖ™›«P( E@@@@` ££@  ¨^/“ݽ{ÿþÓ§ƒ:bÄãÇIIÏŸ?zôðaB“I§S(l6‡Ãã–É`Ðé$R¿~}úÄÄ|M}B @ µÅ'; Á$kðù "- 3›ƒ†B¡ÑØl@ Ág?‘H"ÑhD"‘H¡Hd2¦R™Í&†áp8•J£'þåÑy(j6[,¶OSA¨T*•L&ðx<ÞbÁ0 £Ñ(2‡C«•L&“Éd°].W*5GGÍæóù|ïK¦ÿ÷Åb6›LÀñl2  N£‘É·oß¾}÷nçÎ:uèÀá°Ùl¶‹‹³³H„a(ªÓÙ\KŸæŽ1™ ½'ˆsOíï ——§§»»P(ˆD sRRRRRÒ­[·nݸáä$ =yòò¥««‹‹““¿¿¿¿ŸŸ¿p°›—Ëf3™B¡““››\®Õ’H_'öÀd2 •J£±X..ÎÎ..l6ƒA£‰ÅÅÅ99` ²°°† ýüp8U*·nÝ¿ÿôéÐа°ˆð9Z’\¿~ï^RRçέ[GDIÞ¿ON–JÃÂ6lÐH’žþþ}F†½$`JomÉc/I¿~11;fdäåÙ$™…££CC$7n$$¼x±víÆ›6ÕD’š·´Ê;;;;;9–}S«µZ£‘B¡Ñ˜L<žJµå”“”333333ýýýýýýëÂAlDÈVä÷i%4gggg¡Ã,5›Ífƒ‡CŽD"“©TðWZZZZJJ‹-[¶n­Õj4Z-pË~ª´À6_¿~õ*)éõëׯ_¾ŒŒŒŠjÞ\$‰œœnܸvíüy½Þh´X:uêÔ©k×GÒÓÁ°™L&3z½N§P€ÞÕ^’º¶M:Á`0ø|>ŸÃ‰„B'Èd“ÉdâñÀÒX¹¹¥¥`^ˆ››N§Óéõ`ïKÒP™Íf³VÛ¸q£F üõ×ñã.œ;wéÒ½{ÁÁ €6ƒÇ‰DbF†Ñh2™LyyùùEEïßgf6läí¢&“^ÿyû<[àñx<.wüøqã¾ûîÊ•«W¯]¿ÝºuíÚ¥KU-¤:IJJJzþœH$‘ˆÄ¦M›6ýôYþþ¾¾>>ÞÞ÷ï'$¿ˆD°$ …B¥2D"™L£Ù:b‹P”H´ZÁ4v“ LšùñÀ_^àJ/è@.2™DŽdÁjE«U£Ñéôz¡l6[,f3pIËå‚ F¡€¼Ì_âNdN«U©œœD"GÇóç¯\¹sÄk4V»oß¾}ûö ;`˜HÞ°a` §§T*“ÉdBá§Å_&“ÁP‘4 jìï`III‰Dâììêêá!•J¥R)HŒÐ£G·n;æç””ôéÓ«W×®OŸ&&¾x‘˜˜˜øâ•J ¹º6m >¼krFƒA¯/(ÈËËÌ-Íß?((,ŒH$‘>Ý5¦ù7~üøñÛ·oݺi“»»³³ƒƒ§§»»›ˆµñâÍ›ÔÔ÷ïÓÓSSƒƒCC#" 0 ww77w÷/kk—dÉ’¥K—.@GGÏ^©T&“Ë-Z¶ì·ßjW€½$bqY™LÖªUtth(Ä`0L¦?ÿ<{öÖ- I£FaaMšÔ\’š·4°…'Ož>}ú'(‘H$ }ke2Y,ÏÓÓÓÓϯ°°°0/Ͼ„Üܼ¼ÂÂüüüüÂÂ6mÚ¶mݸ­«–°¢¥„««››·wU-­"ÕŽÍÞsrrs 23³²rs KJ€;¸žA¯wíÚõëw¤¦¾Ÿ››“óþ½Ÿ_@@p0û¼> Øæwß5hÁ`2™Í?}úæ ˆÊlÚ4::,ÌjÅ0<þÑ£„„«WÉd2™Bquuu ét&“ÇÓhTª²2лZ,²ºŠmÖDc•a±8>ßl®pÈ'ÂÇ?^XXT$›LV+•š‘ñþýû÷V«V;:òù‚‰Ïs ™L o±X,V«››««‹K~~a¡XܦMûöÀ-Ü…4›M$Þ»wïÞóç"‘Pèì ò¤“H MGM5fOÍmáãçâñÝ»wëÖµëìÙsæÌ›–Ò>|øð¡CíŸÀºtéòå+V4m \Õ_òô:ïС}ûvíöìÙ»wÿþùó,X¼xðàAƒââÚ·o×®mÛÏ+¹.n]Ðc‰Ÿãô¯à€Ž?wŽÍf±X,F«ÕjQÔd2™ÔjÆö7ÆqýÀ^(2™Lf2Y,&ü ¶ûûûùùú6iÒ¤ Hk†·¿ŽÆ._¾zõÆ OOOO//ÐJSRRRRS4hÐ (èË]áÀ¦Îž={öüùéÓ§M›<Ìfo‹-Y²l™F£Vk4ýû÷ïß·oÝÅ×ÛKòèÑãÇOžÌœùóÏ?þˆÙîì—Kò©öÎb1™ Šèׯwïààää·oÁŠ99ÅÅEEyyG=zøðäÉ“'OªT*åå~~¾¾žž`è®î¢þ!@ ¯Éÿ}Âùú†„Ø/®â|*ŸÀb±XL&ˆk6™ŒF8e€ËD¢P <‡Ãã©TÃ1›QÔ`¹8ãÆÑÑÙ9 @")*JMU©”Êòr¡ÐÝ=*êË+Ãfs¹|¾^o04•J¡àñx<&Ñ[,À½€ \Òàä-..++/ÏÉ),,+ûòODàÌ5M& x¼âb‰D§ëÒ¥[·^½ÀTeeee¥¥ÇŸŸÉßÍ HB¡P©J×®½{ÇÅI€½.ZZ~~~~AÁ Ñ”–juiéû÷™™yyYYii/^èõ&‚¸»{xøúп¯^à,/¯Ó§OŸ>}šF#‘l³+h4HÌË{ÿþù󤤗/SS‡ 9rìØÊ×µoiÀÁW±`ÔÇZ°EQ£D:»ººº:;K¥R©\îîîææê ÎÅ0³Eq8<ž@ps3x<.—D"‘4Àá0L£ N‚ ÈŸzï€m …ŽŽ\®Z­Ñèt-[6m zä 6 >r䨱ӧq8<žB™0aܸáÃA?Ã` †Ù÷®f³Å‚a5‘äS5V× Òƒx{{{{{oÙ²mÛž=½{÷èѶ-‹Åb±Ù,çì wWùr{+)Q(L¦””´´wï^½zóæõëž={ôèЇ³XTªÔÔ””ì좢‚‚÷ï#"ÂÂBBœœœy¼ää·oÓÓû÷ïß¿KN£‘Éj®1{¾¼@kÖ¬^½r%È bœgÌøñÇ™3<ýúõíÛ»÷úõk×þþû—\«*@,6øÃC† 6r¤³³³³³óܹsæüòKýFFS(T*• Üpu±Üe÷î]»véò×_ýuòäúõëÖ­^]_5ÖîBY™D"‘€a ™L&+/ d$‰D*ORƒÁ Ó=<ÜÝÝÝ¡P Z:vìØ±¿þ‹3ƒ’m!»W¯^½zõêüùøøÓ§ÛµkÕ*:zË–;““»uëÑ#&¦K—.]:urpàóùüÚrrUO|ü©SÇI?~üøÉ“Ž;uêÔ HÂçóx<Ðy]K4Ó¶mË–MšI@†q{IlÃ_#Ó+p”Éb2‰D"O§Óé ŸÏå²Ù:Š |TÙ´Z­V§r 2Ùje±ØlL&‘0 ‡#€ýT™kßÒp8[ú<¾ª–²xß¿ÿþ£G>z”˜¨R©Õ:]VVVV^ž££ƒŸúHA«‡Ãã‰Ä÷ïÓÒÒÒ¼½½¼ÜÜ.W¯7 "Ä NŸî‹Éd2étnnnn®®L¦B¡P€¥ssóóÅâÂÂââÒÒ¢"±¸¬ìÔ©øøË—Á2;vèкµH$:8P© œ+Ÿj›5ÑXe@B ±¸  =]¡ÉŠ‹Íf¡PÞ½KMÍÊNç“'ãã¯\Q( ¹¼OŸ>}j#ã0(¡    ?ßbÁ0nüø±c‡ŽŽŒ m=++7·¤„Çãr9œŽ;thÕ*$¤qc‰D šLƒNG§3®®_rïj‹òòòr™ìýûŒŒŒ `‹Ùl6Mç/pyïÝ»{÷ާN>?nܸq?ü°k×Î[·:99999}}ÍØÏd"‘>gÞLõØâämâÿ ìÝöq°ûëójÏMù±ÜŠ- QIÛ¶mÛ¶n½víºu7r8›½n]Å`IíJXUi@àºupppàóALzbâ³gIIž[QÂ׉/O:`Y ^;<<,¬qãôôŒŒÜÜvíÚµkßÞÍÍÍÍÍ <Çss³³ÓÓ—-ûí·ßðàÁƒîܹuëêÕº“@ ©kþÏ­T* —Ëç …Àõð7§‰D",9h‹!!“ét½^§S*A4Èøl±˜ÍF#Èš\Û ŠàÀ`0€#û˦ӂDR©B¡V•––—ûû{z:;ƒJàX‘(¶~J!pCk4:Á@&W7Á¿&”––”””€Åjèt,çèh‹.·X, 3"‘D²Zýü||<=£¢"#›4)/—ÉÊËí]r5¿nÍ?¢Äââb‰¸Úår¹\.h‘H(äp<ÃÈdÍ–H$‰Hâääääèh± ¨V œ»ƒÑX³;&õÛ·´ Ý /ž;wölûö­ZEGK$IY™‹‹««›[«V­Zµj\ÏöŽ-08Q}Ò†ÏD]ÙKòî]JJjê¼y±±ƒW–¤î’\¹rñâùó úû»»I€fêB’š´´Æ7nÔèÒ¥‹/\ ‘ðx“I©ÔhL¦Ž»tiݺ´´¬¬¬¬°°  /O©”Ëe2ÀÁä‰1bĈáÃÌR©T*“=yòàÁõëKqqyyŸ>ýû\Õuí[š££Pè↛ª:$1pqqv""ÂÂ4ðõMK{÷.%ÅÁÍvq®I R!ˆŸŸ·7ˆÀ%‘H$<ôft:ƒA§IŸ†¢( 2m«T`ª¿‹‹››¯oDDDDTTÇŽ]ºôí«R©TJ%È,¹¸¸¸¸¸`˜Ùlêq‘Ÿj›5ÑXe¸\‡ÃQ(T*½¾°P,./ˆˆˆÏÍÍÉÉÉ),,(ÈÏoÑ"::$äÍ›ää´´Ý»wïÞ³gâĉøáKÛ"X‘Á‹»‰$’mî‹^¯Ó©T Ÿ8èÁ@;Hú1qâ÷ß…ÃY­&x}Þ½«-×Õ½{÷ï'$ìÙ³gÏþý®®®®..û÷ïÝ»k×¥K—.]¹²yó–-Û·8°ÿîÝ_§W9‹G9røpBbÞ¼ùó-2dðàAƒÚµk×®M›¯“Û®eKÁñù+4T…-qÆ×[É *ÀÐ)ÛÊ£æ%g~~AX žï ž8ñµÖ¼´N:uêÐüÚoÏÈÈÈÈÌ\³fݺ Z¶lÑ¢yó3gâãÏ£P( ô䥥%%¥¥«WÿþûŠAA5¹® +={ö¬Y3gV%INNNNnîÊ•+V,[ö¾{÷î]JʦM›7oÛöå’Toï•÷ŠÅ%%¥¥† ö Rs€Žd2™LK¥R*•J‘H(ttT«U*¥ ù€³`4@ äßËÿ}:òx|>È5 â­þ.êB¡Ph4élµšÍ`Á=µe^¦P - Ž‘ÑÀݶ‰D"•*‘Èd ˜ù%Õ¯æK–,Y²hp4€Œ{W¯^½zýzbâÓ§OžH$ÅÅt:…bsé‚8hûÌ`ÐhTª^¢x<ˆ°üO àpŸvAÝí[šm` :ÀÇdIIIIII^^nn^ÞÔ©3fÌœ9iÒäÉ“'ãñV«Ù¼rå￯^ "F+—°xñâÅË–­Zµråòå_ÒÆ@µ¥ÅÄôìÙ«° oïì육P(@R”ðð°°ÐÐÍ›7oÞ²¤sáp¸\¸0À€ ˜zÜ·olìˆ5¹¢}K«IoF£ù<‡3hЀÝ»—””••—ƒ8>WW‘ˆL¦PètPô``YΜœ¼¼ÂBàжàììììêú%}˜X¾oß¡C§O:bÄ„ !!¡¡B!p’–—————ƒHº‡>¼xÑjEQ…¢M›æÍÁYÀ6k.ɧj¬2¶ÈëfÍÚ¶íÝ[&“JKJºtéܹsç/^¼xñÂÏÏÝÃnÍ›7ïÝKJÚ¹s÷îýû[´hÞ<:dÔŠŠŠŠŒüÔ«›L&“ÙìàÀã‘H8P‘Õº¨¨¤äÆk×®^õôôôtvÖé “‰Å"p¸  À@__0;¤œú¼{Ws[°Äø=zìØŸfffffe-[¶té¢EGŽ>|à€ý‘±±±±ýûƒß“'Ož<}úÉ“ÄÄgÏú÷ïÛ·OŸ–-[¶lÞüS¯þ©4jÔ¨Qpð¾}{÷îÚ†ônܸyóÖ­ÜÜÜܼ¼aÆ<¸Jk÷º ! hù`ÑEÛÃ8öÖÖ› ß^±â·ß–.­k}Ö5 Ï0 _¿ž=ÃÃCC5ª‹EÁ¢Ä;vlÛ¶y3Hð÷+55---íСƒ÷î­ë {I®]»~ýÆ:| ࣨɄ¢µ%Iõö^ÙA €ß¿ÏÈÈÌÔj•J±X*•ÉÊËmáf4;vøðÞ½‰T*“ݽ{ïÞƒýúõé³nÝÚµ«VU,£]±È6@ òïã3_Ä©TÍ–ÑdÒë5:Årp‚ Ÿ&pÓÐht:—K"1™6÷ ‚ ¨Á@¡ÐhL¦J¥Ñ˜Lµ•š¸´€TàcxàÀcc»víÚµsg‘vÏž;wìË¥ÒÒR"·Z)2ÄÈ ‚P(_"p™ÉåååR)•J¡HƒÁ ×ÓétºPh‹ ·XPÔ~-usÇd2™ †Z­T*•`*0‚ HÍ>­I$ …Bn¾šO§ÓéTj»vmÚDG7i¢R) †‘ɇa:N§ÕàR(T*“Y×w°2¹¹yyyyÛ¶mÛ¶sçÊ•+VüöÛÇ=|˜œüæÍë×B¡Pâ©mœ>}út|<ÈS b£Nœ8qâÔ)°øˆÌýTIÀ§õºuë×oÚ$±áö’´jÕ²e«VögÕk×®_¿~Ý~¢o£FÁÁ ~‰$/^¼|ùêU“&‘‘QQ@’/^¾|ù,^$©¬™/çS[8D€›l‹ª„ÀeH$"ˆ^ïááî¢R©T*°bàÓäüT@oC€³Û¶¸jÅ¢g&“ѨÕâñ‰d[dAðx0mä“¶Àår¹Bá—XH äïïëëî¾eËÆ«W·oß©SLŒ————§'Xò AÄjmܸqãÐЛ7oܸvͳlµZ­À6Á \]'~±éJ¥RM&£Ñh,(((((ppàñX,àÄ :uêøñC‡,!“¿ûnܸ‰ ½^¯_³fíÚÕ« Š‹‹ý¼«ƒ{þç›Í绺:8ðxH$ ÈBÍåòxd2…B£ÙCÙ4Æb}žÆ>Õt:N§[²déÒåËÃý×_ýuöl‹Åb±ª?wÀ€úõ¹tmÙl#"ÂÂÀäë$³IÀˆ—.]¾|åÊ>Ü«WÏž=z€œÑ_’£,8gÎܹó烸]°Ì„öØ¢E«VíÚ;c¼½½¼¼¼Ž=räàÁÏ».ÐLLÝ»×µ¿ F¡¡¡¡×ÝU@ß¾`Á‚¿þš™™‘‘•¶7oÞ¼yÓ¦_§ÿ±—,éÉår8\.ØîïàçW[NðOµw­çÎÝ»ººº»{y!‚X­ Õ‘H àñ…„„†‚ÅxýüüýÁRÕ|¾££P(‘”•I$òi³R @ Ÿù:" Áßx<È)l4êt4ƒÁåâpT*‹"ÀYq ¨Ñ¨Õ$…òG+•*•FS[Ÿ(àCÔ>B„jpƹ¸,]ºlYvvvvvvbâÓ§OŸÞ¾}ýú•+$€ Hôe®.“Éd2™À¢1\®@ÀdêtZ­FÃç3™Éd4êt î¶LÈf±€-$‘ˆÇëtz½NW±@_ÍÑÊ &½æw¸ÞÛ, D§3™\.H–òõï`e„B@ ˆ‹‹‹ëßæÌ_~ùå—àà† 6¤Ñèt­gÏž={ö¬ìv (´Z­V«‹8egçääæ:88::8|ž$ ³¤½$"‘Häääîîîîê $ºög•–––––¾xñâÅ«WöMü%’ÍØK²ÛKR©OmiUñöíÛ·oßÞ¾}÷nB‚HÄçóù` 80ä† z÷îÝ»gÏÚ•¿2ÀÀÒ `KÅŒ m,Òˆ òXŠ¢¨NÒe€e0¥R™L­vuõðð÷ÿ‹’4oêì,ñù†[%“¥R‰D"9sæÌ™'ÆŽ7î‡4hÐ ƒA¯×éèt:$‘ ‘À@Å×q(TЇݻwçÎíÛÇ>d¸:hí …Fc6wéÒµk—.`È/!áþý»w»uëÚµsg6›Íþ;÷kõC[†n<¤þøã£GÏœ±Z1 ‡{÷.%%+ëöí»w?ŽŠjÒ¤Q#ƒN'“í{³ÏÓXMl!?¿  °äNL|öìÙ³3¦OŸ: *ÔüZ ñööööòš5ë—_~þùúõ7nÝQÉqqôí[Ç·úÿZêÙ3&¦Gà&~ûöíÛ”C»béÎO, ×¾}»vmÛêÿ?ƒB¡T*ààçñx<Û‚®µ5LõuÒ›|{€çø­_I@ËlÑ¢E‹¿[ùóø{{¯¼!‚ùû‡„DE1 “ æ²F£ÁÓ»7ÜÇ'999ùáÄ„[·~úiìØ‰““““ß¼yõêùóÇ+—@ ü[øL4‡Ãår¹ æ Dõ‚)Ì(j2ÕºI$àh3Íf£‘ÃqpððÇØâñxA,.)‘H>/ßqepvTµäÖ¿­[·nݪՌ?þ8cXeþ?>zôó&öWãåË—/_½úêUrrJÊõë%%ee`ùCGGïСC‡tuuuuw E"‘($¤Q£ ÀßPèäéS›}|||¼½c½ú«³Xl6—‹¢&“Éôc• nؤ×hذAƒ À2G e¿~}ûöî]ù¬… ,øõWð÷®]»wïÝ;aÂ÷ß÷%’€a ÷$)...‹ƒHRùNiÝ¿ÿ¾jÕo¿Õ–N€$@3Ë—/[¶d 䨱?ÿ<~DSÖ¤Í|ŸÚÒªäV©ÔjµÃôz©”H$‘ðxµZ­–ÉzôèÙsàÀº¿2ÀŒF“ Ã@Œ³F£ÕB!—Ë`°ÙTªÅ‚aV+Xf ̉4†Ç“H8ˆs/,,**+ëÔ©K—/± •J£1ÁÁÁÁݽ{ÿþãÇååd²VK"‰dò”)ß?p V«Ó±Xt:Ÿo›Á V+°MºîlÓXcʔɓ'NÄÛö‚ØÃiÓ¦N:õÉ“§OŸ>3gÖ¬Y³–.]¶láBGG‡/‘hŒ@ )°Ÿ Í/¿üôÓøñ`i]æHE£1™B!Šêõ¥¥$™L¥~‰Æjb @?Àm:hÐÀqq_®sð„êÕ«gÏúŽØ½M³fÍšEGyiÀuÒ¨ÑÊ•«V­YsñâÅ‹—/K$R©T Ž÷ñ‡&L?~ΜٳgάIü8òåToïU¥ÈÐju:½ÌUÙ±A°˜ë&“ÉdR)8äýÃyNj£Ñ¶¢ LÁ@ ù·òÙ­VEm«ÆD"™Ì`( …B¡Õj4*•Åbµ’Hb±X\XˆaVë›7 1…DRVVR¢ÓéõFã«WoÞdd(•J¥Jâp¿¾ @ĈÝéÝ»W¯EÔÖµY³fÍš6ŽŒâb±X,ËÎÇ-pVªÕjµZýúõ›7))W¯^¿~ë–Åb6[,\.Çã|¬b±X\Ràï_“«ƒ‰ù ¯ò·wƒä!ýõ×¹sgÍnðš¸Y¿ûn̘Q£êBwwwww÷ââââââºsøV½$ š²®%ùô–VmÚ´nݪUFFjê‹f6 ùùbqNÎ×\Ü Ø‚LV^.—›Í‹››‡‡§§—G P("‘@àà Ri4:R©PÈå …‚T*“)jµZ­Ñètz½Áðî]jjnîû÷ïß¿/8:::~žEIPÔlvs3 £±aÆ 5²Z­V‹E§ÓjUªŒŒì삽^§ÓëÍf +.ÎÉÉÎNK3›QÔb¶ݼy»v_"ɧRý]1Π}¶iÓ¶m«V_îz®¬1‹Ål60 Ah4¹\¡Ðh@oV^®P¨ÕàÞa˜ÕJ"egge¥¦~¹Æjb |>W×úÿ–±üÀÅܯ_¿~}úäææääæ‚½ŽŽ££¯¯pî×·¼ÿ ÕÛ{Uîa‰D"‘J oÝËÞ–••••”p8l6›}þüÙ³'O‚ù5`¼è?ܳG«Õju:°<8t?C @þ½|²‹¤51ÂK–üöÛöíÉ#ˆD<ž@Ë×Q( ³*ÈÄG§3t:‰D"1™AAEG"‡Ã绸€ÜÇõ«°P ƒòyà|y¨ýüüü|}AÍÿ‹hÏ`0mÿÀRT`&Xš”àïb]kruô[½ƒöÓ¢ALqÍS”€Éþu! ¨uÍ ꂊ,¨ —ËåÖå⇨=×0ˆd|òäÙ³—/5•J­Ž‹2¤f‹ ÖÀŽ?yòܹ+W®]KHI9¬VAÀP 9p¾Óé4Æáp¹NXX“&­Zg™@ eg7iþylsïÞƒOž’ØlD‡ãp8°M6›Ãáp€$À6]\ÜÝ4’ÛüIê»×¬YÓ¦ÑÑÍ›7kVùa¿mý—=ƒ»»»»›˜søðáÃG‚VVw{ë[RÈÐ'cEâ2Ûü@ß¾½{wëŽY¡5µZ«µÍÉ ÑÀ< ñÎöƒy` ‰D$‚7™]Ð d¡¶†„!@ º'—Ëd%%õ-@ òoEQEe2™¬´´¸8??3$ªªëë‚Á//?¿à`Fc2-³ùËRcA @ uÇW›ä@ |;€YV@àâ‚af3Š*r¹D–ÓË¢ÖÖµÀâÕf3Hœf0èõl6›Íå‚Ehë[@ HuÀh@ ä‹ P¨T#9ùåˇu:­V­6›Íf­­ò "‘Db0 &ÓÛÛß¿Q#°Œ4\œ@ òÏçÿÐख़L¦P(<·e¹…@ ÚäÇÔhT*¹~0WZ­R)%%ÅÅyyJ¥B!“Õ·Dß$‰D&Óé ‹åïZßA @ òíƒS(ÊËKK™L6›Ï¯oa È·†Y,f³N§ÕªTÐ ]±¸¨(7·¼\*--õõ urrvöô¬o¹¾À¤u¹¼¼¼´T©”Ë%‘ÈÙÙã¾å‚@ @ ä[†H"‘HT*È+WßÂ@ o‡ÃãAÏc2™Lz}MβS›QEÿ .U‡[^.“•–6mÚºu÷îbµ"¨o}Ký-æ÷8: …®®™™éé¯_3™,—Ë`0™l68æÛ‹=çp¸\ggWW//&“Åâp*ó-Ù—=ö¶V½ @ Rwà ½^«­o1 È×#++==9Y£Ñh ­V£Q©D"''ÏÑQ(äóD¢š—&“I$b±BbvKJòó;Éd2¹\_ßÀÀÆ«:W¯×éþεªV«Tr¹Å‚¢(Z» :ýÈËËÉIO÷õ hÜèF£ÓÙlìÿc±Ô·Œß&‘H <}úàÁµk¡¡-[¾yóâÅ£Gžž~~ß^K­©  //##$$"¢eK°ýÛ¶¯Ê “AʱŠ!@ Ô5D«Õj­ŸØg³Y.úô¯¿Ö¯þ¼eË &Mòö&“ë[!È· X );;#ãí[ÏÁA$rvvw÷ñ¡Ó &³¬L,.(ÈÏÏÉIO—HJK }}BB¡êŒðïß§¦¾|i0 z=ˆ.ôõ Ñé´ZäzNOOIyþÜÓÓÛ;(ˆH$‘ÈäêˬLIIqq~¾P(¹¸ ˆ þvpppt‰@ä)pCS(T*¦Õj4Je}K÷-C¥R© ŠšLF#Øâè(ˆD8Ã!È·ÖÒðx<‡íÍ~û·m_•5`okõ-@ üWÀƒ˜ ãÇ—.íÕ«aCÿ¦MøaÓ¦óçÁvƒ!'gÇŽNBB:w[Ìfµ:55>~Û¶Y³fÏÞ³çÚµ’ƒû ðx'*ªgÏ=Ìf ³X>§ òw˜L&“Ñøúõó瀄 ï-ƒÁd²X8‡Ã‰D..aaQQmÛÒé ›­V«Õ*•Åb±|Ì6A™ ´ÐÐ&MZ·e‚Ò@É LPÚÛ·¯_?} Ê´/§&HrE{¿ ¸ëëûqP³Y.ïÝ»uë>}vìÈ͵9j?­™ìþýÝ»gÎüܾ …B§ÿZE]·7ûZÛöUù÷Ÿjk@ ò-C´X,³¹ÿÙ³wï¦Ñ^¿îÙsýzƒÁßßbAÑÒÒû÷×­KO2¤eK¦ Àh4›]\¨ToïæÍ½¼äò˜˜.]Ú·ÇáÄlÖë‹‹oß^¾üðáÔTÍÏOOW«CB¶o_¼¸C‡³gW¯^¼xÿþ‡ † $--9¹S§cÇâã¿ÿ¸ŸÍf‹E§ËÏß»wôè‘#‰Ä… ¯^5*(ˆ@ÈÊ:ujÍšk×JKéôüüçÏSRØì‰.|üxöì_~0`Ö¬4š/^½:räöíÒÒ—,Y»vúôV­øüœœ3gV¬Ø°áâE¥ÒË+,L$ÊÊÂã;uZ·nÒ¤&G-[fÍš7O§ssspP(ž<¹woêÔƒÏsq!“Äd*,¼|yëÖ³g32ÔêôôÔT<¾[·E‹,ˆ‰qv®ïÛü=©©oÞ$&†‡GF¶m Ä`ºýýû ÷îU>¾M›Ö­Û¶}ýúùóû÷E"GG¡ÐÉ D.Ëå åFaavvHHDD«VwïÞ¹së–ý¹àoP>ØâââêêíýæÍ‹ AAGG×<䢭¼\á«VM˜päȵkJe›6C†ôêåâ‚¢……II—.=|h2MŸ~àÀ]»:8|XZAÁáÃÇOœøüùìÙýµqãáÃ'®Zõý÷»wϙӠ† ZmFÆ¥KÉÉ|~׮͚98‰uww€ìãp•ëkµ*•Ž×¥Ëܹûö=}zÿ>‚ ˆÙ,Ÿ:5xðرZí† çÎåîN"!‚ŒõãmÞ¼~}‹ˆéýté¸\:ÝhÔë- û˜T_ŸßºõàÁ±±oÞH¥ŸSÂ×'{ Æ¢¢ë×ÿü󨱳g¹|Y"2dðà6mrsSRrrH¤æÍ'LX¸pðàÀÀº—N­~ùòÀ…¢Q£1cl÷Øj}òD&³XjÞJ+Û]eû²XÔê÷ïû÷ïÙóûïËʨ԰°Ü·oÍšÝÜH$•H><þäÉøø{÷ˆÄ.]&M:´S§  ðDýV«V›‘qùò‡6¥V¿|9qâ!›6íØqñâÁƒ‹LvçÎÌ™3f<}ºaÃáÃsæT_—ϳÓʶ@ @ º†X±ü ‹Ú§H¤P>üð!†}÷]`àõëJß¾“'ˆ ÏžI¥(Ú»·@ Ñ¼í‚4kÖ©†Y­(*Ÿ93}ú²e ;v둈 z}JÊš5±±j50dHŸ>“& ö×_ññ3g6jôÓO3g¶k.‰&‘ †gÎlܘ‘Ñ»÷Þ½«VÒhfsIÉÙ³³goØœ|êÔƒý…¢ÅÅ—.­X‘‘A§³X Ezú©S™™ ž81gN\\Û¶ F¯^#GþúëÆ]º\¹²xñüù˗߸¾ÿùó3g†„0:´h1aBZÚÈ‘»v5iB¥–•½}Û¥Ë?nßÞ¡Ÿo±ôí+œ;'•šL±±|~Iɱc?ý´sç?þõ×Ù³(ZTô矱±Ã‡/^lµvï¾cG}ß>äÜÜ0 $Ûù_ç_Ë–-[¶jþ~øðáÃ, ³X''wwF­–ËÁ"fx<…‚Ã)ryY(i_ØʱßR!‰»;ŠšL( Jû´š|(ûðáÆµlyíڃϟ÷ê5tèСL&†ÅÅ…„¨T êõàø¹;q8Ûv«uÆÇg϶?òÎmÛ._–Jþ¹S§fÍ>%aHmò¡ä8‹çåe4bµR(¦P¤¥=xàí]\œ“óø±D2l˜››‹ ‘ˆaN¿~AAl6g+gݺiÓ¦MS(<<M¦‚‚ާM[¹²Q#2¹´4>þ÷ß-B^½zôxüxΜ•+““;w>vŒËµI€ab4fgwê4a¡CÆýôÓ˜1^^nܘ“ãéÙ¬™VûâÅË—oß¾|ù왿ÿ?ž<9cF«V|>‘h« xÖ€hT½~âÄï¾[¼ *IIΛ·oßîÝÏžíÙ³téêÕ§NI$ýúõ씞žœœ”ôðaj*wÿþÓ§çÎtM`€pË–øøŒ æýûÔT<¾k×E‹,èÙóó?Ô9…âêÚ¹ó°aƒ—”\½zïÞóçcÇN˜0eŠÙ,Ÿ??f̸qëÖ!ÈàÁ»vÕ}k°YK…-©4-M§c³k§•ÚêN °Xþþ..Ž«kD„“Snî®] üõ×À N" -Zôï?l‘èêŠÃEE1™Õ%-±X¤ÒÙ”­F6K$ÚµÛ°áðávíª.­‚ŠB @ äï VL„Çãy¼¨¨Îy¼õë/\Ðjóò M¦ŽÇ }|bcôH.ïÑ£U«ââk×´ÚŽ££1 Ã,–òògÏNœÈÉárãâlåQ(žžÝ»‡‡ggëtŒÃ‰8Àã :hPÿþ6Ôj 3™JKïÝ;~‡›+ëúu*µ_?£ `ãÆgϤÒþýûô 5š=ìÝÏ(*¿|١üyöé#aÂöíýõÕ« ~û-"¢_¿)SFŽŒ‹Û°!%¥wï#fÎìÐ!"B$:tèÄ ŠÆÇoÜxáÂþý›6Ñh@ûžžƒ­]ûÇLæÉ“¿þ:hŽ ZmhhÛ¶¿ÿÞµëµkK—6nl?`µ"ˆÙ\Rré’H4cÆÂ…³f…„0CZš^Ÿ’b4:8´o?|ø!»víÙ3~üÀÓ§;Æåf³X?ztF†N‡ ÁÁBA üùçãÇÏŸGÑ¢¢cÇ :tñb‰‰©]§påÁ‡£Px<ûm(*ß½»oßÕ«99ZmvvVß¶í´i?þر#‡““séÒîÝû÷§¦Òéd²Xüþ=‹5rä´iÑÑÉÉfd´k÷Ë/£F¹»“É‹B‘”;vìÉ“‹:ôûïaa^§´ôÊ•öí{ôH&ãóA+8pРæÍk/bŸHttìÞ}þü PtÊ”U«´Z«uøp‡C§PÈdΦ™ªê”½w¯½MõêõË/?üðáÌ‹E©|þ<>þĉ«Wß¾ÕhæÍ[¼øÇÄj5ÞîÞ•H¨ÔÂÂääÌLkøð nßþ¸Öæ}‡@ @ Hm€G ·™ìå5dÈÒ¥MšÿñÇÞÞÓ¦µjÅãLfXXfæ¢EsæœV?<&?ÿʕÇ[¼xèÐñãÎɱí¥Rƒ‚.¼yóÉ“.]||”Ê«WçÏïÚ52²}û¹sAix¼ÍÁbµ‚b<žDb0D":ÿñÇáçL9{¶¸ØdÂáÈdGG.×%eµbŠêt‰^o6ÛK…¢ÀùÇ“HG§O›6uêäÉÓ§Ïž½nÝÝ»îÝû¿µ€¿ð÷Ÿú‹af3ŠZ,(j2ßèèÈÈ&Mìí·ÛŽ4›Qùÿ|h³•ËDªÀþ˜Š2«ŽM® ëGA«U£yýú‡:wnß>:ºE‹Þ½'O¾ßdb2)nòäÁƒÿà š={ΜI“FŒ˜7oîÜ®]œ@T.Ïf$%½~]Td0X,V+‘(º¸Ðé\n³fÆóÃC‡6kf6K¥7oN˜0zô¡CîîS§ÎŸ?nÜ”)³f-ZÔ·ofæœ9#G®[×­Ûwß H§ËåIAƒÑ¦ÍÑ£ßïáA"Yÿ–Õ÷cùk gç>}~ûmΜ„„¢¢ôô#GNœhÑbúô¨¨µk›6ÍÏ_¶löì{÷ŠŠ22Žkß^ ÀãÁ¹FcQÑÙ³'¶o/¶Ò¨T"ñöí Þ½Óh¬V«•@ Û¶=zäÈáÇíÚ5(ˆÁ@‹E.¿woÆŒŽ zð kW*‡« ‡CîÝcbüüh4°‡£Ó40™ž=KH(-5*×…@prêӇźpaûöM›ví:q"!¡ €HDQ àâ¤P\]9$ó kÑB­6›­V£±¸øâÅ?ÿÌÍe2A™D¢«ë!çÎÝ»·sgMò×´U´4A­67÷úõ… §L9qÂ×÷§ŸfÏûÍæ²²kׯûî»;ñx‹‡c2…BéöíÕ«ýÕl./ôhÍš­[¯\IIQ*Éä3V¯^±bòäFœ›7ïÛ7&Æb©¸Ïá4iB&FcÅö ‰D¡°[·!Czô°o¥|¾-Èç´·E ðx­Z-[vö쉽zõî½té­[2™Ùl/MõurÚÛT…œ=ÏfGDtíìÑVr…Þ\\ÂÃ{ô°é-$ÄË«²~^Ý!@ R×TÊØÈ`øøôíëéyõªŸ_d¤P2M"çïa‰‰[·^¸àâÒ¶­³³-¢@àñš4‰õòR(€#AD¯ÏͽråÅ OO*Aªv5Y­âë;|ø† ›6 î䔜¼víĉ 0qwýúƒÓÒÈd>¿Q£^½ÆŒéØÑɉB¡RÄlÖh²³¥R£”^Zšpö¬R4thx8‡ƒÇËåF£Ù¬Óa˜m¸R‰¢‹Z¢V+‘ÈçGDüùç©SééZ­íCX§»r¥´E .74´o_w÷òrìµXäòG¶o?x°¾oRS4­V¥©0jþ«Ñ¨ÕJ%Æ`°Xx<o¸QÌöe&&&%=ö6iña¬få2íK« ˜ÌÐÐ;®_¿}ûöí?þ˜0ÁLJB±í“Ë-ÍÙ™N·¿â§çCÆ0½¾´T§C*U(¤Rm¹n‰DM  PŒÆ’’ŠÒq8"±ªl¸5§ª! ÅÝ==ýðáû÷oÝÊÈˆŠ ãó „ÀÀAƒ‚ƒq¸””#Gîß¿s'5•L®8‹@ Ñ\\JKu:‹Å¾4“‰Bquµi§ª+âñtº«kh¨§§NwãÆÂ…¶·â×æØ«øÕép8ÇLJÉ$‘*—i±H$·n999}úôéß×¶­¯/“ù±¡‰KE Ðhnn †ÉåöÛ1Ì`Éj68ó9Ðéžž­Z b4&$8˜hk!F£Tj4âñNNãÇ;jÔ÷ßO™²páùó×®íÙC ðù­Z-_¾|ù¨Q¡¡ååW¯öè7kÖ®]OžÈåÏÍ.8>fŒ“Óóç«W/_~íšX\1þܹÂBF&»~=7W¯·ZM&‰äöí³g/^|úôòå§O¹Ü öìÙ¾}Ü8w÷_=v,%Å``³5 |ÿ~ÍšmÛvìØ¶mݺýû5šØØ+fÌ@Q©^¼X»vñâ+¶lÙµkÍšW¯Úµ[µjõê.]AfÎìÕ‹F;xpĈ‘#§LY²dóf??"1#cõê•+ÿøãÕ+ƒÁÅ%*êÙ³9s1bÒ¤iÓ~ùeåÊnÝœI$!‘\]cc×­›5kРaÃ&Nœ2eæÌuë’“›63¦¾oRS¤Ò²2±¸AÎ÷çÏ_¼xõÊþl·ÿ•J%’’ƒÁàpˆD"ÑæÀåry<”Y‘AÞØb¿\”i_ZÍù»xF«Õj¥Ó}}{öœ;·uk>‡CQ¥P0L£ÉÎV©l±µ¶:VœUù •·àpŠPH£!ˆÁPV¦×Û¢RÍ-Y €IDATf½^"1™(‘¨ªs?7"µêè]:Ýl~òdûö+Wüü¢¢Éje³ƒƒ ò÷·Xž>ݼùÜ9ggû³ðx¯I“3gž>•JQÔ¶]§Ãã›70ÀÃJý_éí¯ˆÃQ(¾¾#FlÞ¼eˈNN˖ݹ#“U”ƒ ÙÙ2™Ñh[¦AL&¥²Aƒaø\[´´}Éf2•—kµ ¸‹F“ŸŸšªRù'ö±±Öje2µHo±Èdnß¾íG@Û·"‘ËmÔˆËÅ0™ìÕ+[ ¡Rœèt«U©´?Ëb1år³Y£‹åò€€þýçÏߺõ?fÎŒˆ‹Ož\³f×®÷ïuºê®jÿ¿Êû?­¥UÝÞªª/¸V«Õ:pà¢EcǤ¥íÞ½`ÁÉ“yy¶öQ]Ýÿ·eU¥Õm±×Û•+çÎmÝj¯·Ú²5@ Ô58¹\&«ˆÝû71|xË–½zµlyôèéÓ'zy}zŽUä¿€Á`0 ii/_r8Ÿ/…..•‰¤¬¬¸ØÁA pqa2Y,6»ª2ËÊÄâ¼}d²K—Ö¯_·n×®GD¢ØØÑ£wì˜8±wïšÄ[çäde¥¥EF6kÖ¡—Ëç‹D*•B!•ÖwÛ© jubâöíRiXؤIÞÞÿž~˜ÍæroÞ¼|ùÏ?æe2‰¤¸Øþ--}üøÂ…3gŽßµëäI‰dÓ¦sç@wï6l˜2eÑ¢Ž·n=u*,ŒÅÂãM¦¢¢›7ÇŒùí·»w=<.70°W¯ñãGŒÈÍÝ¿ÿ÷ßÿøãý{6»AWWU*{ö?~ÈÐP2yР˜˜Q£˜ÌààÈÈðð ¼¼ž>=yòܹàà#† F´´›7õúÐÐiÓ êÐ! €J-/ïÚuĈM›@+5ªgÏÐPïïs@ëW¶/ Óh22bbz÷ž;7 `РQ£ââú÷ïÖ­U+€Dùš?^½zâD*uêÔcÇÂÙL©ªî£G‡…¡è•+‹ÿô°©¿þ:pàÇß½;þÀuëvï~ôè÷ßOÚ»W.¿uëàÁU«vìxøððák×N¢Ñ´ÚׯÞ„€€ÐP•ª @"zsp8ujÊ”ÊvZ}Ýím­¾Û @ üWø—: M&‰¤]»¨¨>}œGŒ˜:uôè^½z÷îÚ50Á¨oÙ ‹Åb±èt:V[ZZ\œ—G¡P©T*F£1d2…B¥*• …L¦PÈåR)Î`°XÀYŒÇãñK&ÊÌÉÉÌLIÑëõz­–Ëåñ8.×ÁÁd2õz½^¯×éL&“Éh‰œœ<<@úŽªÊ¬ à óòòñùÐý-‘››ý¡Z©ü·8 UªÄÄíÛe²›šÃù_´TZVö¡ú[Åѱbê¿`_öØÛZ}Ë@ @ ÿþ6RêŸ ™,ܽûúõ£Gõ- òO‡@ &“Éd±H$OO±¸°0;»¬L¥*,®b.×ÁA(‰œœ<=ÙlÏÁ¡z71(ÓÍÍÓÓß_¥R©är­V¥’˳²ÒÓ““)F£ÑètËÕÕÃÃߟJ¥P*23.ÿ­éóÿüt ÒéÓgÏÞ¿/‘ddøúöîݧOçÎ Æ—çÀ®þé:‡u‡@ @ È¿©| E•J¥R©ÞÞ~~ ~y™Ôÿ³3‚…ÎÎu'ÿ1ë?½¾d²£c‡£G/_þ¿±¤ÿtÉ?αÁºC @ ¤îhùÇÝ@ @¾  @þ‘@4@ @ ?ÿÒE!È·T*‘ˆÅ¹¹YY©©:õè1dH}Kô5P(ÊËKKë[Šo°Øc}K@ @ È·ÉóçOžÜºÅåòxŽŽÐ @þ¡¤¦¾}›”Ô°aãÆM›Z­V«ÅRßA @ @þ‡#RR’“Ÿ>Å×·0òq´ZF¥âpxxpõª³³››ƒƒƒƒ@Pß:ƒ@ ÿÄ⢢Ü\0|E&“H G àál-ÈWÃ,‹Åh4 ðëééíXýYz½N§ÑÐht:“Yß5€Ô /’ɤҒ7777ØA¾&ö}Qi©X\XÚ¤IË–ÕŸû¢ÿoß¾~ýä‰P(¹ºÂ7%È×ôNùù¹¹™™\.ŸïèX“7%P¥º¤¤¸8?ŸÏ ÝÜH$ …F³Z¡ë©À @ H @$ z½FS½º¤D,ÎËóõ  1™ ½¾v¥Â0³ÙlFQ‹Åbñððò (++)),„hRÀ°·L&•––úúúû‹… ðÝòõÀá,%“)½ÞjU«%0ó¯ú'¬Éd4 Ðéóm`ß¹»{zúùY­4š@û"È׾/rwçñÜÜ`_½è—Èd2™J…oJ¯èÜÝ6tt4ŠââšôN Ê±2N«U«A3Â0"‘N¯oQ!Èÿ‚ÇT*pýV$Xu”Çãó«A¬ÖºøÅ0«ØL6›ÇÓjµZ•ª¾5@þ€ao¡P$rq1™Èd>θ‚|}lC¼T*›Í`p¹Î΃^¯ÓU–Éd4ÖF2+È?û¾¸x`_ùúØ÷E‰D£Á¾z'Ð/Á7%H}aëH$­æoJ J4ÇÀãñxÃÊ˯_÷®¶š•Jõôé„ mÛvë¶nîß=&-©ôò圜VæéêåÿgÊüÏ¡>ôói­î߇ÇãñV+†aXõG‹Ù™­Và*®«_‰D"‘PÔdúVô |(ZRréÒŠ?ÿܯ߀S¦;VTŸ U¡T*2…B¥Òhõ- äÛ'2²aC??ûßÊÇX­$^“g™J¥VËåõU ÓhRSãã×­›0!)I­®|„­/š1cùò5k`_T=ö}pñÔ·DoŸêû"À?¿/úPôKöoJõ-Ó?Ð;Á~ òu¨I¿Tó7%P£lA‚@\[QП²$†©T¯_Ÿ>íâòï èÿ7Ê\·X,CÅÿêG?p!<{¬Ö¯ñ |]Ìf¹üÉ“={¶mÛ±cóæÅ‹§N1cãÆ7o4A«U£IK;}:!A"ù»­´ª0²³÷ìÙº51qÅŠÍ›'OîÑ£aC‹@¨/í`˜VûîÝ‘#Ë–Éåf3‚˜Lbñ;ÇŽ­];räìÙ»v;—˜X^n6ƒÚ=ºfÍÈ‘ÑÑ¡¡:Íž½gÏ… Õëýñã#GV®Ôjÿn(ìs1›¥Ò[·¶l™1ãçŸ7lؼyÅŠ„™ H[5öÇ/X0cÆš5ö%*IIGÜ­Û€æå}øêlEp®ýk"OuW‡|[Ô$êÐhÌÏ?wnÇŽ ââfÍÚ¸qÏž]»víÚ½{Ë–5kæÍ‹=¾¬ìóVdÀã™Ì bb ÿ˜VôEÞÞC‡N›öÏé‹~ûíèѧOíû"ÐçØ÷EC~þÍ›ö}Ñ«W ÅÇ5UÑ-^|äHjjÝÕà·ßfÏ^¶lçÎíÛ×®]¶lúô *Þ{0L£IN>xÐ~o||v¶ý›ðÿÊ]·½ (Á~oUåWÞ ©k*;wªw÷TOM# mïKóæÍŸ¿nýûhɵù¾TCv6è—ìß”êòŠÕƒaZ-è—ìß”lýOÅ›è—ìß”ªî—*4ú¥¯ó¦T[þÒ¾¥îߣ õEíöKˆ=Äš””tðà/¿¼}Û¾ýòå£G{zR(bµêõ³fMœ¸x±‡GHˆH¤T¾xñðጻwŸ>Í`àñb6——'$ìØñ×_Ïž)•‰‰÷î‰Åß¿mÛ”)ŽŽöå92jT«VgÏR©: ðã¿ü2dHPƒ V«B‘’ræLyyË–;"xÍɉ_³æÎ²2­°ðåË”küø… Ÿ=›?ÿ—_zõúñÇØX­öÕ«—/Ož¼w¯´´OŸùó×­ûþû-ø|«µ¬ìöí½{ÿýìY¥ÒÝ=  ¼\.çr¿ûî—_† b2ñxýûcªÖVe™ÁV½>#cÍš]»®_H$•*//993³OŸ5köí g2?^¯‰7mêÓ'/oóæ;¯\Q©€¶srðøN–.;ÖÕõõ냗/ÏËóðhÖ Ô:-íõëgÏ||¦L9yÔšHDÙºuÞ¼¥K wwG«ÍÈHM>}ݺ;ÁĪî×СׯoÙ/‘ :þСϟÿñÇî݉‰ii8\Ó¦3gîØ±xq¯^ŽŽ…….üþû¦M÷îápL¦B‘ž®Ñp8\.Šêt\îÆ;v,[ö¡~ÚµS©’“ÿúkéÒ¹s׬¹qãÀgÏ^¿ŒÆçÏçÎíÙsÒ¤+nݺ~ýÝ»øø;֮ݴéÊ••+ÿúkÑ¢³gׯÿøÝ¡PJKGŒˆ={ÈeËú÷OJZ°`åÊ9sŽÙ¼¹úV׬YJÊúõûö½}Ë`øø…¦TFFÆÆFG¿|¹iÓ¶m§Ovèо½¯/Ðpr²BááqéÒåˉV«^Ÿ}þüúõ—/ÑhÀ"ÊË##-Z·î‡BB€†\·îÊ•’’¢¢w,˜93&ÆÁ¡¬ìòå]»¶oOJ÷H§óô8pÚ´îÝkwr•Õ Rf@ ßV«R™”´páüù7nlÙróæ‰fsYÙ­[kÖ¼{§×#ˆÙ¬Õ^¿¾zõéÓee öêÕºõ—ä&7›ËÊ@iýûïß?`ÀÇŽAQ•êý{•Êb¡PÜÝ;tèÑÃݽþ´£Õ¾y³aÃüù6m?|8‚ ˆ³sûö±±±±éé¾¾|~Ÿ>ÑÑl¶íŒ¸¸¸¸-Ž9{öñãîÕ«êÒ‰D¯yó!CÆ_ºôÍ­vÁ‚°0£vý—-[¹òÍ›NŽÛ¹³W/>?.nÆŒG7^¿¾M.·òSÃäò7o:vœ=/“??r¤BaÂåâñD"—9l‹¥Ó>Œaö}"†ÉåöWüí7«uÆŒ~X¶ÌvÅ””êåAê¯^_-òáGTRRJJf¦}ŒØò©ešL&Óß­¬@¡xxôé3vìØ±bñ«WãÇGGÛ-öòå… Ré—ÖíãVWѵhÇãp=z„…UØúׯ¾/Ú³gëÖ¦MÉdA@_tøp|üãÇÑѶ7W¡R=<:urp`2}QXXUªŠ¾H¡˜<ù‡¬ÖáÃOªíîÝ;—‰gÍ3ÆË‹BÑéÞ¼Y´H,FQqqAÑwï6ož;÷ôé_½xñ°w̘ùóOœè×ïØ±‘#?,­®{±•?mÚ¦MW¯‚½ ü֭ׯoܸú«Ãþªî¨ª/ú’2kÒÙ¿/µlùÇÇŽÅÆ‰÷î÷% C&³öÞ—ªEU*2Çáþ9oJ& <>éœÛ·wp`2ìßÈŠ7%>¿S§¸¸¸¸ÌLð¦ÆåV7¬G$òxM›>x0~üºu:TÛoJß“T¶å¿{³ú»7™º}‚=Ï?…ÚzS‚@52íÈÈbc?ìV„@X²dûöߟ.nËw÷Y³6l˜3gÆŒ)S–,4(5õÿ±wßqM$ïÀw³)$„JèØÀÞ{ïõÄÞûÙ{×ó”³{vÏvž½T,g/wö®("(¢"½'„”Mòûc¾üˆ0ŠÏûõºn™Ý Ó'³3gúùÍš™IQ¦l“³œê¬Ó¥¤\¾ÿèѨ(&ïëÕ°aŸ>}ûÚØdd$%ÅŹº¶níï¿ukPPPЮ]­Z=þûïÓ§³ll쉳gÿþûÇM›N›6kÖôé“&yy…… …?ÿ¼jÕÂ…9µÃX[W®Ü¯ß’%ü1|¸TÊáp8*UTÔÙ³çÏwî¼bEÇŽ/^¨T66¥JùøÈdÖÖcÆìÛ7{vß¾y]–uq‰RRbc£¢Äâ~ýõĉ;w s­s»ëHû‡„¤¥ ä*ûªaÃÞ½{÷&w—a “»‹´0yG+eøŽ Wʰ…½¼&O^´È°…y<Š6¬gÏåË ¯ÑåË¿ýöóÏä}Û·ý÷ž‚ƒ¼~ûî w4-H$¥J‰D«WŸ8ñäIr²­m‹³g7oîèHQ™™ïÞ¾|)“þ&cÙØØcÇüüêÔiÓ†,W*CC—-kÙ²Q£Ñ£)*5õƾ}ëÖmРwoÿíÛÏ •ËuºìÒò®ÕÇ¿5³KÛ¿ÿàÁ€€¬ÒÔꨨeËBB²~·h4>üý÷õë©©z=EétiiׯϜٱcöWæõz™ìÞ½3îÞý\ (Š¢Ôꈈ-[~ýõéÓÎçÌiÞܸíh:§?‚>]&“=~îÙÔꨨ={úöÍúPôE]»¶l9v¬a_Ô³çîÝïÞ‘rI_Ô°aݺƒ™rö†}‘ƒÃÇ›/ ÆöE,dصl9gޝ¯a_DQjuttþû"N¥Šû6&†„ê(ŠÃ±°°·?>&F¥"k££ÓÒÒÒ ×êtoÞY!–‹»t)1ñô騨õë/]¢(½^¡xýÚÖ¶oßnÝ4Ðé=úóÏÛ·…ÂF²J¢iÀѱT)ÓŽ«V§§‡‡+½{[Zrsø½ß¯_Íš*ä´¯µuíÚY?‹Å•*Í™3d‡#°l|üóçUªLŸ~üxÛ¶NN¤T #ãÕ+™ŒüYÅçST·n³fÿ«Ë²Å0Baöo!.—¢Ôj¹\£Éé6½žee2ÃíišaD¢Ü¶7Þ×ðˆ4MQ"‘áó®^OQ_{t(>}ÇYZ†††…õé“õqçâ’MÇåJ$UªÔ©óîËR”N—™ùèÑŸÞ¹#5nœ]ŸogçînÚñsîÙH_tüøë×ii©©6lÜHú¢¤¤ôô˜.55«/êÞ}Ò$WWŠÊ­¹Ü¸8SŽw_DQéé÷îy{ûø|Ú#öEEQsæ Rº4é‹Nžüõ×U«,ظñÚ5Rª^/—(aØQŸïêZ½z~'ãpìì7~ÿÞß¿sç‘#Ë”©V­rå*UJ•²µm׎¦ÉÚ9sfÌhÚtäÈqãfÍ"ky<.7§àÕ÷îmÈZR‚áZR‚)GÏ_kAá”=^rpX½zýú-Ú´5ŠŒ—ÆŽ­_ßÎÎx–MIyð€ô¥J>½cǦM:]Vÿðú5¹“x>3S«¥(kk†aY¥26V£\]I8Ò”mr’sišÏ··tºOCÙY¢yŸ×‹4Þ²åž=GŽÖ¾xqÏžãÇ?.ëÓÚž5‡£Õº»‡†¦¦ªTõêÙØdšI¸–Ç3åzåM§Óh’“ã⊊þyÆŒ¹s›4±·7¥} w÷NΜyøðùskëŠË–mÜØÊÊÊêÖ­½{Ÿ?÷ô|÷®Nzõœùü3g¾îê|þ®#í?þîÝC‡Î™“œüìYË–Ý»/_Þ¢ÅÁƒÝ»—Eî.//+«zõ´Ú¤¤ æÎ>ýàÁ/]:~œ¼#6nüôñúµL¦VשccÃç“fYšæóE".%ÅðétjuR’JÅáØÛ …¦¡>SpÀŠË•HjÖ¼páÚµ={öïŸ;wÒ¤•+§M[¸p„³gûôÉi2(Ž¿~}Ƴg9œ J•*YÒÊŠaÈï3² ‡“ýÁQ~ÑôÇ%étJe||—.#FŒÛ¸±­íÇ[«ÕïÞ½z•˜˜×G˜Ÿ£×³lF†NGÓ9Aöïð $${BŠR«##·níÒ¥_¿›7³ÇåZZòù$àãï?kÖ‚ëÖeŸ)Š¢F§“Ë5šoß¿p¹¥Õffjµ¤lšfYŠâóÅ✯ Ms¹VV†ÛëõZ­B‘ÛöÆûQ¯§(…Âðˆyׇ¦õú¯=:Ùï8­V. =zôãõÆ™väCnŠ¢(–•É^½JJÒjŸÌòe_çþ´g#}‘RÉ0®®&Œ?v,Y>qâÌ™¤/úë/Òyx@Â×7ネ„rÂÃoÜØ½Ûpiûö ~œamiÉçët¤/ZºôÙ³ŠoÞÌ®Ms¹"Ñ÷è‹(Š¢øüíÛÏž={6«Ý’“ÏŸ¿pA«%׈a\];uZ¸pÛ¶N²Ö>~|ð`NWýÞ½ YKJ G$kI ¦ý{´d¼4`À¢E»wkµ£G7mJÆKäoPãí ûÃ éˆ ŒSÁ,-=<,-†eЬ»ôsŒï<ããöQd¤äáacÓ¬Ù×¶GöH)§µÖÖµkïßöìîݦ”H¿4kV``öÇô\®Hô=FJ_÷^þ~#™ü÷lß®m p1ñíýiÉ0¶¶µkoß>p`ïÞ3f,\¸jÕ¾}W¯êtK–,Z´sç‹"Q—.Û¶íß?dHŸ>ƒýüó¬Y3fÌž½iÓ¥K ÿþ{üxPPLŒB¡P$%I$ýú š–öÛo={6jÔ¾ý‚ÿýüù«W7þúkL̨Q¿ýV»¶Mö/­6.îÂ…yó Ú½ûÈ‘+W^½ÒëëÕ>|ÅŠ¹sÉ—ƒ‚æÎ1cÕª7mš7oãÆÔÔɓۿ¿ys‰„ÃÙ¶íðáqã"#W¬˜· —›“‘‘œ|ïÞ©Sÿüóò¥L¦ÓåVg.×Ù¹[·mÛöí4¨S§nÝ š3ÇßåÊÝ»/\xûÖ”óêß¿U+.×°µííõúÒÚÁÁ2™NgxÖýµfͼy†gÍ0ŽŽ¾¾11¿üÒ©SïÞŒ1cÆÔ©³fñù\.©¡Ÿ_^×ëøñèh¹<)éöíãÇ5š¸¸Ë—Ož<~üÆäd¹<::1Q©”ËÓÒ”J™ìÚµ±cëÖ­]»R¥ Zµjß¾ÿ+Nzÿ>÷kJXZVªôß œ?ߦM«Vîî\.MÛØðxûöýòKDÄС½zyzòx¦]RÛ[·½r%223Ó”»Ž´ÿÔ©¿þºr%¹ ¤ýË–%äi4>¶0¹»²ZØÖ¶vmr¥ ßäJ¾#Þ¼™=»S'ÃÖë9ŠÚºõàÁ‘# ¯Ñ®]Ò4¹FßVN“f(ÏŸÏÛ¹ó!±±jµiK0judäöíC‡úû߸ÁãI$Õ«÷í;{ö!eÊXZfýÙÏáèt*UBBÖ§)Še££;vÿþ FŒèÚµfM/*J.×h´Ú¼§IJË}½ñ¾9—Æç»ºvè°hѶmOžd=þG«MIyø0=]¯çóÛ´éÖÍÑñÕ«¬¯tS”F“˜øàÁ­[Ùg¸bÅÖ­9A HªV‹ŠçÏSS¿Ø˜ÛGRŸ.#çQ£Z´èÜ9  E‹Î¥R.7##8xݺùóŸ>•Ë ±¸Z5‰$ûÛ4¤VËdùëÆ«V-1qÏž›7´ZÒBÕªMÚº5™Äˆ¢ÔêŽÞ³':Z£¡(.×Å¥CÃíoÜØ¾={ûÜÏ•ìkxD²¯áó®Ï— Rn³¬ægöUÏ7=³ÖðÇ0bq¹r½z]ºD¾”ûƒê²öàó]\ÚµëÕK*ý¸OHH¸ÿöí¼öÌk )ÙÕµC‡~ýÜÜ"" û¢ë××®]½Ú°/š?óæ{÷ÈqI_”õ¨²ì¾(·w}Þ}‘émnØ=zõê¦M†}‘Zšúì™a_Dê–ÿ¾ˆecbþþûÒ¥ÄDÒU«ccÏœùóÏ&M†¬0 eK2×sÖÚÌÌöíÉdtjudäÆ]ºþê{÷6†å®%%˜rôü´äÍpNUãå_W¦)}‘áx‰|‹Óp¼$0LNã%ÃþŒX û2b¡(–•Ë_¿NLT©È»ùÇsç6mŠ­Paôh??w÷Oëfjïdx\Ò;—ôN¤_ú¸W4ìeòî²GJ¹µÛ—Ž”H¿d8R"ýÒÇ#¥Ï÷™¦0å½lØó‘Ò·É|ÛqÔ×µ|+¹õKx!äŸI¡-òy— ŸŸýyÃH$§O_º`¸å!†ÿ²¶îÖíàÁÝ»дxq“&,^œ½¤K—ãÇÇ3ÜæØ± >ÝallêÖ9ríÚýûëyãçæÖ¥ËâÅ+V Z¢ÄÇJ<žTÚ²åØ±«Ve? ðË·qt ºÿîÝ—NŸžS)ŠdÀzyuëvòd@@öÌz‘‘›6‘»¼Ï‹¢jÕ:zôôéÙ³³—Ì›7ujÖÏ2Ù;yŸ51{öÞ½çÏç¼.«†9_¯¥K›40`éRÃe~~“&µháç7iylCppLL|¼@еë¦Mÿþ;vl•*jõÇL›6wîÊ•+V̘qõjníCp8/^º´|¹á²½{oݺ|ùK¯ÎÉ“?²•(ñù»®wïœÛŸä®óxnnS§Ž;fLNÛ0ŒDR¿þìÙGÖ¯Ÿ½tÈÁƒÇÏú—µu·nsæìÝ›ó#Ë<<~úiöì½{ú‰úPåË/ZtüøöíÙË>¿yÔPXp¹ 4mªT®]»qã¦M$%½y“œüÓO+VÌœIQ™™~~µks8K–Lš4uêØ±§NmÜho/•¶i3mZ§NÇçï¿~}¥J>>eÊp¹·n­Zµ{w``T”\ž”ôßGŒ5mZŸ>4maáé™UÚÁƒ÷îÙ½{íÚööY¡Ð„„Ë— "ûž?öîÃܺuâDÖ’ÈÈÌÌÖ­K” išÇss«[÷Ñ£ŸîÕ«_?OÏ’%¥R{ûuëÖ¬Y´ˆ¢(Êãÿuë¦OoÛÖÏoøðjÕªV­XÑÛÛÕÕÅ%ëKŸZmjêÇׯ߹ãç7cÆÈ‘· çèØ¸±§gfæŸFFfd æéikKžípëÖ“'66®®4íçסC: Ãܾ””‘süø‘#§O—*åî~öì’%ׯ«Õîî={ÆÅmÚ´jÕüùwïž>}王ˆ #F(^^ :9eÿ‰IjEÓƒ V­š•Õ×fµÔ©óË/³fÝ¿¿páòå6DD88Lœ8oÞ´iÙ©árY6"âÆÄD•jà@WW±X"©Téܹ©SÉöIIááUª,\èëK¶gÙÔÔ{÷Nœxÿ>==>^©Ü»÷¯¿¬¬êÖíÔ©gÏ6m<= ¸~=EU©2q⯿6h@Žøùúä}t07Ãéäÿ*>ŸÏÏ)¿Õá;îÂ…ÌL­öÑ#GG>Ÿ¢Ôj™l÷î‡y¼1c‚‚²ú+WââÔê† )êæM²×³gŽŽeË–,Ù»wóæ½{¯];sf»vݺQ¥JÅŠ>>eÊxy¹¹ÅÅ;vå Ù†”nØ]¿àããàðüyN=çæÖ½ûªU3føùõë7z4é‹*VìÙsêÔFø|[[ÒEDLŸ>gΤIóçwè@ú"±˜a¢£ û¢ÜÞõ†}ÑСžž¶¶MvË$%ÉåÑÑwï&'³,é‹”Êwï._6ì‹øünÝÚ´1ì‹NžÜ±cÛ¶[·úçÒed¼ys玓“§çСYGÖjSSß¼Q(óÓq¹ŽŽ­[ïß?qâ¢EááåËs¹±±‰‰?ý´`YïèØºõ˜1:]¾¼eËüþ;Yëï?}zÖ÷4mm+WvueÙC‡nÜ (gàÀïÛÛH$¤„ 6lX±‚¬%åS‡Ããå}t(HÓŽ—fÍúõ×»w]]Uª´42^ªZU,¦iÃñ—;xðàÁsæôéS»6é^¾œ5kΜqã¦M«^ô?ÿlmMR‹ÒÓ>\¹rÁ‚%K6ôñIHˆ‰iÖlÙ²+Ú´Éš_šÈ)]¿ž˜øêUéÒ:5lHFJÿý—ðêUéÒÝ»ÿô)—Œ”|}Ç_²$û¸µk?|8lX—.~~^^d¤$1ï {¤”•Kjså é—Ž;|8(ˆŒ”ªT‘˯];v,{¤ôøqZšFãî~çÎÂ…¤wÓ4NÖ;=÷÷rvÏCFJùí[¾÷8 Ì „ïNIIJŠ5^qÿþíÛ—/—,éãS­šFõ×_>”.ýË/eÊäà4·‘#›6m×®nÝÝ»OœÈ;[dMZbo?vl¹=ÑÛééwîìØ‘œ\­š¹Îše££4¨W¯#Gúô9zôèQ__©”ÃÉÈxøpöì.”J›<¹àëö-¤§ß¹3rd§NóçoÝzíZÖ—. ­65õý{‰ÄÁA*ÍmòŽnÕªC‡>}’“cb¾w­>¼{÷êÕZµêÕkÑâëJ0¬sjjr²ióK䋟ÛÛiø…МéõrùãÇ‹õë·qc'NlÛöñ¿–÷÷öÌÒò×_¿æÙîäýîí]®\•*dVÄ/­Á°aóçߺµfÍüùõë[[ãÈ‹q '·?±Lù ûúuxø³g¥K{{ç<ÛüÌðKèÿüóéÔÆäòÇ.$}Ѷm›7wìh8Ï·@2G3Æ×wÛ¶£G ¾/Ê›BñìÙ‚ãÇ9Ò¶íöíþþ†i Püät6î‘ _Ô¿Æ:5l¸@ÀèÑ%JäwÆõü"S÷øû:uFβFJ E¥Jóæ}ë~‰¢(êäÉ#ºwøpìØÝ»ó7RªU«]»/=ºaσ‘äÍô~‰0¥w‚âÌÖV"‘J/^?6ÛãÇ\¿^¯^£FíÚedÈå©©ß³VZýòeHÈ£GU«Ö¨Ñ°áוƒ4€1µ:1ñÚµÀÀÝ»·oúÔÁaÈÉ“ûôÉÊv,ºž8::;»¹™ûœ Ža_´zõž=±±§Oß»wþüÔÑ´XììLÓ ƒ¯„Ã÷dJ¦¡^Ÿž]Xû"µ:!¡Y³Úµ»tqq0`üøÁƒ;uêܹmÛ²eŸ`QµIL¼v­Q£–-/nÕjʔٳ¤‘’—W¥J£_‚‚ñ­FJPœ sýlÏÙÙÕÕÓ3"âÕ«[Ûoýù?äèT))VV66yoiiiiie•œœ˜+ß3S^.OOOM‰,-Åbs·À†ÏwphÚ´wï©S›6íÝÛܵùvD"KK++•J¥R©>÷b€o#ïp˲¬JeaÁã}.ŽÏÿ¾¿U §û¢ì‰áŠ:þˆÏ23ø¾Lù’;—[˜û">ßÑñêÕ'O²ÇgN¤wº{÷É“¦MÍ]—o‰ôN:Fƒ~ Ê·)¹~ñÂÊÊÚÚÎÎÖÖÎÎÁA­NK‹‰Éú|̉¼µZ&3S( E".—ËýÜÄÙÙÕÕËëõëðp2ï8M“‡i|ÛW–eY–‰ùðáí[{{|p¦!{ÇÅÅÆ¾oîºPE©Õ …Lfa!~.ƒÏ,,Ì]_ø6 û"½žÃAˆÌ<Ü}Þ ý¤_2}¤@ä:üHôz½^¯W*•J¥òýû·o_¾ÌÌÌÈËÉtù/ŸÇãñø|ww//KK±ØÚšäYÓ4Mé gY0@ñ$“¥§§¦²,Ëj4øð ‡Ãáp8\.Çãå=±dŒ$—Ëdiiè‹  öE$¸cJº ¤_R*33 Œ” à‘ÞI,¶¶¶µE¿¦0i ø‘@°P( …^^eËjµZ­VKÓߪ|tæñx<ü*€¯eeemÀ˜ùpÝÎN"qt4w](*«_"¯æ® À—A Ø!ahs×~|œü` hø.€€ï¤9 Éóè#"Âß=#Ï]5wµ 0²±±µµ·wvvuõô´²²¶¶³+èd=PñÓG+êõ¥×ÓôÇKiZ¯§iÃ-²KøxÏœ—çô“á¿ §×S9Ö§[åv¹ý?{ìòsz”dN—4ÞþóçKÓ4ûÃ*³×д)¥e·¸q½snçO¯dö’KÊy¯ÜÛ×øÉ>cãce·¸qK|Zæ§÷YÎW'çæÕÎYeçÕ‚¹•š[MsoUr=sHiÎ-‘{«~ºMçÖžY{æýžËù_Ÿþ?û=—W«æ^öÇË>-Õø}l|ÆŸ^-ãºd—–[ëeõ_9׿ãíóz¿~þ|?w”Ük˜Ûñ>îI>w¦ôdoCÎÖx˯éŒÏ>ë†í“ÓUÏ«•rîsÿ-ð¹ÇîhPøGuç¶Ž¢>e-ÏúÏpKÃuYÈÓøÙÛeB?E—–ÕËŽòúöö›÷ø9Õ1§ýÏòãŽUrkÑ—çݪÙcsÃÿzþ9çÓúêõYK²Ÿ…aÛçÞ9nsjѼZâÓ;Äø|s»»>--÷vιÄÜ®çç®ØÇ¥ç}¶y×5÷«h86^óñæs–“Q™á^Yï³Üßí†Ë>¡äVʧw©q;˜ÒjŸ«¡q)¹¿_ó>_ã£}z¾¹3«us;JÖuý´œ¼Îðóu͹=?íkMy¯šr|ÜäÜ«äÖŠy·^Î=wÞ÷Áçö©Ï cb>|ˆŒLJJLŒõò*QÂLJ¦†ƒ¼iÈAf¦B‘‘bk+‘88xy•,Y¶lÁÕ ¯_¹ýÿx €âçË‚Ê_"×´L–žž’’””˜W©RÕªõê™» °³±±µuppvvuõòЉy÷ÎÜ5sÊ5—9""<üùs77w÷%Ì]I(z¥Rs×Ì)×4™ë™Ãa†1w% èaSZo˜Í¾ 3 µÚôôfÍ*UªP¡\¹Úµ Ú»÷Ý;µš¬U«ãâ®\9p`åÊáÇ]»öĉçÏe2­ÖÜV¼ddddÈd ÃåòxŸ®cÙ””Û··mÛ¸qóæõë,?~Ò¤µkŸ>•˵ÚÄijgGŒèÜyΜà`…ÂÜgQœåte²{÷ ¨W¯qã>}¦O_±bÓ¦eËFŒ¨W¯zõ¶mçÍÛ°aÛ¶ :wnÞ¼G  øx¼çàëpó_D~0Œµu… îîvvžžu긺¾~½ví¤I;w8r$Ÿ/•6oާϰa<ž‡M7lX±¢•¾Ô_° ™,=]"‘H¤R­–e5²\¯OK»ÿ×_ùåÂ… .^<|˜eãã/]úý÷çÏ33¦J•ví¶m j×ÎÜgPÜå|9{ûæÍÿÝßÉ’zõ„·o·n=yòäIµºS§ÁƒGŒ¨V­S'¡pÞ¼—/Í](ºÌ€ÎÂãI¥]º,[6uªF3pàܹr¹^?r¤XLÓEÓ #4MÓ¥×gf¾zuâÄúõÇGEYX¤¦>xpëVRRíÚsçöéÃ0{÷®^}ôè‡:͞ݫWxøáÃû÷ß¼ùø±LV±â°a zx„…ýñÇÕ«7o&&–/?~üÆëÖõîíé©VGE=»~ýßÅ¥Q£råöî8±~ý©Sß¼9wîáÃóçß½ûçŸ#GŽÝ´iß¾*U:uªUkïÞãÇ?|ðó›6­k×»wwîܾýñã”OÏ›7ÏŸÿóOsŸ=˜S!ššÇsphÝzÍšÿ½r¥I“ƧN={61‘e)êãœg.×Þ¾fͧNýùç¾}»ukÕÊÞþñã={V®lÒ¤oß=Äb…"-M©,Y²]»e˶l9tèâŃ;uzófçÎõëçÌùý÷;OÚ·¯}û—/7l˜7eãâNœèÝ»[·•+ccíímm­­]\øüsçæÏ3æàÁ÷ïƒsE“··O… ä5·%Æ’’bcù|@(4\Îç{zzâÄ?ÿüòK³f•+W®\©RË–':ôâ…\^·n—.¿}{ëÖ½{QQJ¥^OQbqõê›6]¸¸~ýôé=zœ9cc3wî•+ÿþ»vm³fÍ©S¤ýF«¥ir~¤ö7—œ® ÃXX8;K$|~îß(J”2dÞ¼]»öí}vïîÑcРž=­­Šôt¹¼lÙ.]6m:tèìÙÿݵ«uksŸ7˜_!É€6DÓ––£G»ºÞ¼¹`Á¬Y'NT®¼b…§'E‘ùkIt|üõë6œ=ËáT¨PªTÉ’VV lX‡cX#ÿþx ÃëtJe|¼RÉ0®®]ºŒ1vlãÆ¶¶5qâÌ™æn‹ïÇ0èòuåp¹IÍš.\»¶gÏþýsçNš´rå´i N˜pölŸ>oKÓ\®¥%ŸÏ²ññ'OúûÏšµ`ÁºuNN\.E©ÕJe|¼aûCa!xyuëæëûßii2™£c``XXÓ¦º¸PEÅÅ‘weÖû‰¢(ŠËµ´ôð0w½жÄÄË—.œ1cýúóçïÜyñ")I­æp„BOÏÊ•kÕª[·Oÿ%Kºvuv6wMòRˆ2 õz½>ëçAƒV­š<¹|ùgÏV®œþܹ_]¶,8¸}{©”Ë¥(–ÍÈHIáp\\ ÛŸø‘Ú¿èÜÜ|}¼yóÆÞ¿oݺiSgçJ™ýî¥(–U(¢£Í]k€¢ÍÁ¡E‹yó¶oß¹sÉ’*UÄbŠâóÝÜz÷Þ¼yïÞ­[z€¢ÂÌÐ:LòêUBÂë×[·nÛö÷ßýûûùµhááѳçÎ7n´nýï¿óæuïNQÕ»7ÃØÚÖ®=lX›6;wŽçï¿vm¥J|¾££^ºjÕ®]ÇŽEEÉåIIÿýwôh`ààÁ={::?pãFR’\›˜˜š~ûöÉ“·o'%edÄÄ$'ÛØtè°oßáÃ,»xñ¬Y]»Ž'•V¯^±bÏžS§þüsýúæ¾HßÖ—ííÕj•*3Óp9ÃXXØØ¼¿xñøñ7zxT¬˜”ôæMr²¯ï–-{÷þ÷߉«V}ø‘‘’rÿþÕ«¡¡‰‰®®Û¶uê4eʽ{nn={¸mÛªUóçß½{úô;..6;Æã-^ܵkÇŽåéY²¤Tjo¿nÝš5‹™»Íжܮ`–MIÙ¿ÿï¿ÿû/1Q&‹=zôÀÇkÔ9²gOîÿz>ßÓ3!aÙ²_~ñó;vlçN.×°„èè£GgÍš=[¯¯]ÛÚ:<<)ÉÃcíÚ%KÌ}îEMs¹äÛfäé8†ß<(üè””¤¤ØXã÷ïß¾}ù²·w¹rUªØØØÚ:8˜»ª` ±±>¸»{yy{«T*•BaîÁ—ùVWpܸ1cÎ[°`ƶmÈ·d²{÷ú÷o×î·ß6Ü¿? `ôè%¾Ý##I/ÔªU‡}ú¤¦&'ÇÅ™»- q5o>hÐãÇöö£F8qòä„ ¥Kç>êÒé22BCOÚ¼yÓ¦C‡?~ÿ^­V«E¢%jÖlÕêðá§Mã|öàAÿ#öí;>88.Ž¢¸Üʕ۴™:uñâÙ³»vuuåóMÛ€°µ•H¤Ò‹Ïœ9x°MÁ…“HdeemͲZ-X4åï ªÕqq7o^ºlg׫WíÚ‰á„7†o€ù)•aaÛ·ܯߜ9[·ž?ÿêÕ•+W¯^¼xøðرöö—.íØ±iShhffÖHN«MJúí·ýûoÜxó†ËmÕ꯿λtéùó3gŽŠR©LÝ g…ð!„P¸XZZZZYiµ,‹tÑ”¿+ÈçK¥ ´l)•6h`¼ÖÚºví}ûnÜ8yÒÜg EQóç¾aÃãÇ2™NÇç»»ûú Ÿ_ªTóæué²kW¯^7ŽáïߤɹsË–U©Â0IIYÏ]‰‰ ìÙ³^½«WW¯>zôìÙš5­¬(Š¢TªÏo3“ÐjµZOµàKðù|¾@`îZ/qqJ¥VK~¦i.W,ÎZÃáðxb1ÃдV«TÆÇ«Td;‘¨téjÕ¬­æÉ“ôt­V¯W«““§LéÑ£gÏÛ·ÿøcÿ~ÿ¦MMÙÆÎ.?‡€•‰èÜ_3  FffhèÆ‹=xй³½½@@ÂÀ,«×³¬\žµ•N§ÑÈåZ­^Ï0NNYÛ©Õ ;wž;·oßÅ‹{÷îÜù矻w_ºž‘ñöíÉ“kÖ\¸0fL:Mš|n›† {ötuåâ;¶ð “†¡¡ÏŸ?|hîª@QR«V½z-Z˜»E›^ϲ™™,«×S˦¥…†¾~ž®Õ–.íàÀ011W¯.[6tèĉ"‘¿÷îûöýùçÈ‘oÞôí»yspptô©S*•N7sftt@ÀâÅAA>h4£G;6~åÊ"EQ”Löþ}‹“&=z´qãºu+WõésæLùòMš,XàîÞ²eÍšöö,ûþ}ãÆyoƒÐ3ä̤A‚·w­ZíÚ™»ªPÔ¨Õæ®@Q•˜xùòÂ…3g®_þ|p°\NQZ­^íÚøñÍš5n,•J¥bqBBTTTËêõVVµjÙÙ Baùò£FíÚµw¯‹ËÆ7<Ø´iÓ¦-[ªÕjµ…E‰Í›>ÕªedÌ;n\›6{öðx\®Zíë;qâºu³f ^º´@À0ŸÛÆÜí…’’”k¼âþýÛ·/_öö.W®JŠ‹]] ¦BK–œ9“õ}RS““ãâÌ}Nðy¶¶‰Tzñâ™3Ò¯IU­êî®Ñ.9}úéÓÏíÕ±c•*|¾¹ëþ5´ÚÄÄ3g¦N1âÚµµk[¾œ¢(J¯ÏÈ =zÔÒ²\¹=Ì]GøÑ¨Tïß;¶ÿ_íÙóî½}Û¶%J…Ųrùû÷ׯ{{Oœ¸}»¯¯“Óç&“ž~ûöÈ‘:-X°uëµkgÏšûÌ °øèZµ*T(S†ü|ÿ~HÈ«W_W΀7FF**•V{ÿ~hèÇyЦøûïÿþãr÷î;¶D‰ïØfßÃ88tè°ví±c:d-cÙøø+WV­:|Ø×wÛ6 á[<<ºv0`Èèèà`{ûQ£jÔ°²"ëôú/þù'!Á´’hßN€œ¢ hËåñæÏÿé§²e9çËKX½:((""÷õMLÌ€ݻϜ٧ÏÂ…~~÷ïÏ›·té¬Y'NܹCÓ>œ9³uë¦M÷ï+•Jet4M·j5þ„ ­Zñùƒuê4jT§N“'wïž‘ñøñ£GGŽ\»×¥Ë/¿¬ZõóÏ H$z}|üåËýµ|ùñãii>>ÉÉ))¶¶C‡NŸÞ·o¹rb1‡óæM`àÂ…Û·?{fiYª”““N—–V»vÏž‡†:töì“'2Ù/¿,^fÌС-ZsÐj‚‚<|„zõll(jäÈéÓ³ö¹z•¦iša²ëÄåŠD"ðlf&Ëêt™™%I¥BaVP˜Ë ù|•êÞ½ÌL–¥¨%KÖ¬™8qýúM›XºtÈõëÃÃ7l¸qcÔ¨5L;GN¡ˆŽ–Jíì>ž——ÏW©>| GÉ:zö9žž]»vébgtøðóçiiM›6lز¥«+BÏðçŸwî¼zU£†••V›‘zð YNî7ronOîmÃûÍV›žŽ4|ÅDŸúVs@ÛÚZZòùB¡@ÀáˆÅBá—¿’¾¸ 8"‘»»H¤Ó¥¤„†¦¦ªTd¹N§V'%†Ø ù,›™­Tr866^^VV<žPHQ E||f¦V›µR«Ñ®®\.E¥¤T¨0hÐüù»w_¼xáÂÕ«G>ìï¿|yX˜Bajm…BWWã†GÉ ŸïîÞ¹³¯¯]dd@ÀíÛÿý×°¡TŠð3bK˲e{÷&pûÜÛ†[‘{;·ûñ°Èš¾гo<G~ØÙY[ …2™VË0J¥Zýµ%PE)•9­×h¢£åò¤¤[·-YÒÏÏϯyó%|}·n=xeW­š3§S§3œœjÔ(W®G3 ªWìûáCPÐܹ3f¤¦6hP¶lbbl,Ÿ?yò±cû÷W¯nkËá4jtøð¸qþ¹bÅäÉË—{z–-›˜˜”äã³dI`à€åË …µuë¤Iƒ……Y[W«V¾¼››@0|ø’%£G§¦^¼¸}{LLFFJŠ\®ÕR”XlaQ¢DçÎ5jh4«W:tçÎ!~~uëÚÙ99uî9uê„ ä(dNÞ%K—,)_žËMHø÷ߣG»u+!áÕ+rŽÍš•(!Ò4çåÕ·ïŒqöl¿~{÷J¥:d?öŠ&6öÒ¥“'¿q#8X,vrÊÈèÔ©S§Æ¥R€lÃ0NN;oÛvø°¥åòåëÖmÜHî·°°ôôòåÿ}Þ}RS““ãâÌ}NæóáCddRRbbl¬»»»{©R4Í0_ó¸V€/£ÓiµZ­J¥R)•äÕË«dɲesÛÞÖV"‘J/^årkÖ6lÅŠU«Fvq ŽV«--Ë”‹¹\¢J•²´T«OŸ~ù2=]£©UËÊê[<ä“ÌõÌá0 y4ädz¦À˜Œ¡g€¯S²d©ReË&''&š–,hæùCß¼IM¥éÌLF§Óh´Z­6##==)©uëòå­­Û´)_ÞÚºmÛ llÚ·¯TÉήC‡Ê•%’ªT±·ïرJ{ûNªWwrjÙÒÇG,&%à¯x- ¯æí[òO«U*ãâ2332>|X½úܹ³gÿø£]»˜˜Ý»gÏÞ¼Y¯×je2†¢8¡Ë¥išærE"¢Ôj™ŒesŸÇÞÛÛǧBS^÷%DßÉ`Ñp¹){ÿŒ½°öÂ^Ø {a¯/ÝË” Ïy™²¼¨´<öÂ^Øë[íez.l5Ä^Ø {þ½LaÒ*÷}2‹Ï cYÃ%Jejj\Üðá-[–)C–p8‡Ã0‡C!Yéééé2Ùß?y¢Pä}ÄNêÖ•Hîܹ?99>ÞüA2OO€¦ß½S©¾æ±‹PXXXØÚŠÅ5kº¹‰DJå›7 dåðS”XìèhcÓ¨‘«+¹WµZ–MM•ÉîÝKI!ßÈÂ0Ba… îîVVR©Z-“Ý¿ÿáƒR©RÙÚZ[wïîæFÓÏŸ'%©T¯_§¦r8½zÕ®mcóî]T”\ž”¤Óq8vv,«P\½úþ½Z­VçuWÑ4Ÿ/ùúV¯naqòä;Éɦ+ÃðxMšÔ®moóæ“'ii%Kòù*Õ«WiiŸË€Õ«n ¼™w ½>%å¿ÿ òóÛ²eÏž+Wö裡ÔÔ7úöõõ]¹òÀþ™;—LÁQ»öî݇ 5ÇÇóçýñGíÚ_? @‡‡‡……„öÆ66¶¶†["gÀ\ŠÖ3€1ô $Z"qpÈi²ÐBôB†e?³¬V«Óq¹ Ã0$˜EÂÎ Ã0$†&Ûs —f,0ðÆ„óžušfŠÒj_¿Î+_ ?&11-íêÕ´4µºn]>_«Õh²¯i›6åÊ …ÑÑ÷ïGGÿ÷ŸL¦×Ö°¡­í‹·n¥¦&'ëtÙåÈårù“'ïßs¹®®*•\ž Õ2L‰vv|þ¾}ÅÆ†•år–‰=zõ*%%*Še)ªÿæÍ]]K•ŠŽŽŽÎ{ê–•ÉoÜɾìly<‰„Ë¥¨ÌL™L. 1wë4mm]¶l%J¤§“W©bcoÞLI±²ªS‡¢,-K—îÛ·bE¥rëÖ'ORR:uÒë¯]S«+V>¼LKË‚ª'‹` ŒÀz(f@úU}µšeY699%%99====-ÍÚÚÊÊÚš¬Õju:­–¢ôzŠâóù|>_*•J³ÐyñŸ¦¦]»ªU%’wïBCCBT*gèÐ&M¤Òû÷Ÿ?OO·°H,,j×öð°°xó&446öܹ˜Š?¾Møøˆˆ¸¸ãÇ_½R*[¶lÒÄÃC ˆŽNJ:wîÕ+¹¼FJ•t:…B§¬¬øü+Wžž¢ø|—„„øøt:++//€e9œŒŒÌÌÞ¼Q(”J ±¸Q#oo RŸŸ‘‘ž~õj\E‘Ò(*:Z.÷ô¬\ÙÞÞÅ%..:zÇŽ°°ü=𠾚ÖjµZ†!ÓPdŠoÝzñ"1166-e5½ž¢X–Ëø|½žlùq):V«Ói4:Ngcãæfoïå•’þéG,z=Eéõ,›5ñEéõZ-ËÊdMN%gדa<===mm+T°³ãpΞ}ò$9¹téR¥š6uwg˜gÏbbÔj'' //kkŠÚ²åêÕ¸¸*UJ”‹ml¸\§^=ïÞ½·o•JF ‰Z¶ôò22hšÌ}ü¹o$n ãäÔ¶í¢E#Gþþû† ëÖÉåaaÉÉÝ»/[6gEq8VVõëÏŸ?mÚíÛ ¬Zµ|9EU®#ƒaÆÂ"--5õêÕ¨(½þúõ7oFjÜØÑÑÞþÝ»wïöìyÿ^«íÕK$Òhär…B¥’Ë=zóæðá¸8­–¦…B¡P¡ÐhRR´ZŠR«år®bEšV*oßNL¬T©ukg瀀3gÂójÃãi4<ž@™ùï¿ryV°räÈ–-%’„„ÈÈ´4RZÅŠ•*9;'$ÄÇGF’Òš7·°ÈÌ ¸pÁÔi `ðx<žFCQB¡Tf]ÓààׯÓÒÈÏ #ZYÝ»wýúû÷aarùÇÓV\.—«Õ֫׸±——•UTÔ‡ýfXb½^¯×ëU*•J£Q©ôz.7%…eiÚÍM$Ò邃ÓÓµÚìüjCMhhDDzzýú­[K¥ Ef¦R–œ\«–——³óÕ«OŸÆÄdÕÇÊÊÁÁÝ]­V(nÜ ¡(77©ôܹÐP™ŒÃ±°°¶6¬A;»mÛΜ‰Œ${UªÔ¬™¹¯H~ñùnn¾¾3fŒŸÓZÏѱE‹36nlÑÂÜ5(ŒÌžóäg¡ÐÂÂÂB§Óét:–eY–%3>gMÅAÂÓb±X,“Éd¦LÁAÊÖéHÆ(Ëêõ:É!eÙ¬%z=Ë’°`ÖòèèW¯22´Úºu­¬¬¬(*#ãáÃøx,§(.W¯çp> ‰‹ 7ÎCæñt:r”kHÓ:NÇå~<]ÃètaiçÏgÏ~Ëãét¤ý pÈùš\®XlcÓ¢E¹r<Þ™3÷îåþa‰^¯Õêõׯ߽›œÜ¦Mƒ®®;§¤DDìßùñ^†w©R©ÑhµG>~̲&T¯.‘ܹ›{4¹3³ß‰YK>¾WÉ;"ë=BQïÅå’y¡)ŠœµùgV€Â¢ ?ÎÏdY–ÕéHFóÛ·‘‘oÞXYYYY[³,Ëj4B¡H$Ñ4™ê k:½žËåñ,,ŒK3¦×ëõ¥Õ², ã’ ÒO—d/'õ‘Ë“““’Þ¼¡(w÷ Äb ‹Ë—år ÔjU*µZ*årõúì°#ŸOÓ¥VÓ´NGJû¸†4­Ó—,U*)ŠÃ‘J&«4šf.—ÇÓéX–”f¼9_ÏÊJ"éØÑÇG¯ÿ÷ß{÷ââ4š¾ù1rfd$$ÄÇïÞýø±P8n\õê^^Zí«Waa†÷¸á]JÊÌÈHKËÌT*9¡ËÕé²–çVÛïÌœïURŸ¬£PÔÇÛû_¥ÒëÉ<ìŸ{·…dž€)0fcè `˜} •êãŒa’y)[ZŠÅ•+W®\µ*YN,L&[³æÔ©ØØnÝ7.S†”öàÁ£G‘‘çÏÇÅÑ4)­L‘ˆË}÷.,,)‰”Ö§O—.>>¯__¸~çŽB¡×÷íûéG$²·7®M±øØ±S§Þ¾}ÿž¢D¢~ý|}ÝÝ_½:>kKóÞEM‹ÅÎÎIݺnn¶¶åËóùéé11ÉÉ7oFFªTþþ}ú¸¹‘NêÖ-SÆÝ]§ËÌLIYµ* "Â0«™Ëµ´´±©YÓËËÒÒËK©”ËÏŸ }ùrÆŒï—_ºw÷öŽŠzþ<*êøñwïhZ,æó‚víªVup–Ë)ªti–=zôäÉððçÏs»š—[¾<¹3¹\†!!æ2eJ—κWK•b&4”¢¬­kÔðò‰¼¼T*kk[[š¶´üø~NM_µ*(H­îÖ­bE{{™ŒÃ(Š¢ò ³Ã·Á"˜c0†ž ’’”k¼âþýÛ·/_öö.W®J•ŠÇ“H¾ÇáW®<{öý{Ã%z½B‘œ¼y󨱭Z‘YžÉ„dê zV8räÒ¥û÷Ÿ>•É$†áñø|s7)PE­XÑ­›—W~J ½P«V:ô铚šœœ=ÍÏÛÛǧB…ðð°°ÃÞØÆÆÖÖÁÁpKä,˜‹½½³snO63€1ô Éɉ‰qq‰ƒƒTj¼ÖÖV"‘J/^žá¾ À3€1ô P0Ìœm,--55%ÅÍÍÑÑÎŽ¦)Ц9š¦i‡Ã!?‘¥YÓrÐ4Ãp8 EFFF†VkîÚ@޹+`L¯×ë…B‹ÿ,,„B ¡0ûU$"¯"‘PhiIþoa!šRzFFhè‘#·o'$h4ߪ¾¤Ì¼·ÒjÏœ Q(¾¬t¥24tëÖˆ•J¥ŠŠºxñÂ…'OÒÒ¾G»Ã÷sóæ A5jÔ®]¡B™2µjU¨P¦Lóæž=›œüéœåMlì¥KG®ZÕ§¿ÿ®]çν{§Tj4©©×¯¯Zåç7~üÒ¥»w=zé҇ǎµhQ£F£F³g¯^½qãöí6,^ü믻vË域 Ü““&uí:sæ—œRºr¥¯oÇŽ†÷$>þc….úÕâ2 Ã)8HÞ3Ã0 Ã|œMÖf£(­–ì“»+WV­:|8!aîÜÎëÕstÌoMY6>ž”éë»m[¹mÇ0:T¨ð¥åk4ii<‡CQ»{«V­[»»ß¶‡o/%E(lÑbóæ›7—-«VM,&™ý\.Ãp>ùˆÇsvnÙ²K—nÝBCK–”HÚ¶õôäñ’“oßþï¿öî]·îÀKË콬¬ŽíÑcĈ±ckÔ°²¢¨~ý7îÒåÂ…¶mºvuqáæú'÷äڵǎuèð%g£Ñ¤¥½z%“iµ¸' o….MfsNNNIINNOOOOK³¶¶²²¶&kµZN«%!äóù|>_*•J³Ð•W¦F½eË£Goߺ¸ìرfMff‰uêŒ3th‹͇gÎlݺiÓýûJ¥RMÓ­ZÍŸ?aBûö..QQ nßþ왥e©RNN:]ZZÍš:ùøÜºõ矤Ìwïvì¸|¹W¯Z´°·çñ²Ë²)):ô×_ -[NšÔ®½}zú;wþö[RRÅŠ­[§¥Ý¿ÿðá«W!!÷ïÓ´¯ï–-sç¶n­TýõסC·n¥¤\¹¢V{{·mÛ·o¿~Õ«ïß?}ú„ ii>>‰Fóþ}“&£G/]Z®œXÌ)„YíÅL&úøTªdiÉår¹\“Þu4MÓz½RùúõáÃ+Vü÷_åÊË–Õ«÷ù«KÓƒƒD"äµmö=ùÏ?OžÈd¿ü²xñĉäžÜ°áر„„ŽÛµ+WŽÜ“wÒtPйskÖ{2**##9yË–½{="÷¤P˜˜xùòªU„„{rúôÙ³.4wÛÿøðØ0Æ ` =ŒB€&Äb±X,&ae2ÉFÖ–Óét:­V§ÓéÈ# ³Âz*U^hÏÕÕÍÍÒR"©[wèÐÉ“‡-QB `Ù¸¸ÀÀaÃzö\·®D ?¿nÝÜÜtºÄÄ  ß~ûùgW×Ê•ÿýwåÊ#Gââê×9²qãŽ}}¬VÍÓ“Ë-W®gÏ  €€çÏI ;ÇFæÚÙÕ¬Ù¹s“&;v$%étÅãÙÛ7lاOß¾Û¶%&V«6bÄĉ¾¾dë=š4é×/8¸Y³ýû»u>¼W¯´´¤¤jÕHmµÚ„„  3Ö¬=Z*e²W—.mÚÌž½|ù‰K—–+gÚt$PP23­¬tº÷ÓÓ]\$’„„6mz÷>~|ûöÀÀ©SK—&ãüÔöí~~ÇÇ·m»iÓŽÓ¦yzæ~½^¯gY…"!A*µ°HO¿{788%¥aæMíís xgß“þùçŸóçÞ“{öìÛ÷ë¯Lœøë¯dkæÍ› ‚ƒ5šR¥È=yþüñã!!£F P½:¹'‡ ëÑcçÎ]»®];v,û8xá÷‡Á"˜c0†ž F¡Î–%3Aët:N§V«Õj5˲,Ëþ¯êÿ O‹Åb1É›þº£èõJe|¼JÅ0nn: >aÂȑӧ¯_úô­['OöéãîÎã-Y²fÍĉU«&&.]:dH›6[¶\¿ž””U—¯Ç0Y“‰dÉž^$':B-• …Y¡g‚ÏW©>|ÈÌÌàÛ2ä·ßFjÔÈËËښϷ²*]ÚÝ=-íÚµG’’rŸ‹¼W¯… {÷f˜€€ ~ûíĉ¨¨Ü@Ó4ÍåŠDNNóæÍ˜!‘\¹²lÙ–-‘‘Jå×Ô×ø¤éï7CäžÌ̤¨ìŠ àœs× ;ŒÀz(…4M2𣣣£?|ý¿ôtµZ­V©”J¥R©T(ŠŒŒ¤¤ÄÄÄD½^¯ÿüC×riŽHäî.ét))¡¡©©*Y®Ó©ÕII$¤›’R¡Â AóçïÞ}ñâ… W¯=zø°¿ÿòåaa_úPÁüâp„BW×øøÌÌs½5ÀÕÕ´é `¥§+•_/¡at:F§Ëýƒ±¸R¥ñãÿ}Ò¤²e=Z²dØ0Sô'¹»—+')•¯^ÉdßêQ›y!÷¤PHQýnŠBΘc0†ž F¡ W’ ŠÅ––bqåÊ•+W­j¸œd:k4F•–¦V§§¿~ýöíóçeËVª”µ}n:w®QC£Y³fìØ RS:tÊ”^½|}·n=xeW­š3§S§3œœjÔ(W®G3 ªW¢.\˜7oР°0këjÕÊ—ws†_±bîܲe%•Š”¹zõ¡Cwî âçW·®Ë>~êTzzÙ²¾¾IZÚíÛAAAAkµr¹‹‹«ëÇÇ?~ûvRRD„·wŸ>~~õêQÔÉÉrytô™3Gþýwd¤^ÿäÉíÛii¯^•,Ùµ«Ÿ_³f%Jtî9uê„ Ë—{z–-KæÛ]²$0pÉ’òå1ùFatúôo¿ rýº^_±bõêžž4ݱãöíGŽtéâîÎçn©ÑÄÆ^ºtìØõëÏŸK$¥KÜ«×Î/vܳg‹;–-;hÐܹãÇ·l™™™””šúòåüþûš5»¹1Ìãǯ_óx“'>üçŸÕ«[Yå\#&)‰Ü“11))r¹J•@îÉèh¹<)é¿ÿââT*rOžæ ¸)øÐ3QèÂC2YZZjª‹‹½½››ƒƒ»»££Dâé)•:8xy9;;:zy¹¸89•(áââäT²¤››‹‹‹‹Dbccîº4òØs× ;ŒÀz€âÃp~ç‚‚E¡ @ëõz=E …B¡Åÿ~B$"¯"‘Hdiii)‘­M)?##,,0ðîÝÄDæKköõûæV›”töìôé½zýòKh¨Baê~JeXØÚµ~~~~ý©R]¾üôizºV[uŠÒj—,?~æÌõë·nÝ´iýúY³FŒÈÈÐérÚV£‰½zõرuë Z²dïÞ ¢¢”J&-íæÍuëz÷ž2eåÊýû¯^Ž~ó&(¨]»úõ[¶œ7oݺ­[wíÚ¼yùòß~Û»÷Ù3¹<çò?®Wö}õ%ç“}_©T>\¹‚ûʼðÄj0Æ ` =ÀÊ0Ó™0ïc“ ]šàr‡C~â0\K˜Ròµkkׄ†fd|YX6!ák÷Í/†±·o×î÷ßZ´¨\9‘Èô:§¥½~-“iµ<Ms8-ZT©bmÍ0[ûâŽeããÕê¾}çÌ7näÈ1cÆŽ:µsç«WXÖxkÏÙ¹Y3_ߟ~jР}ûŸ~jÝÚÝÇ“Ë_¾¼qãÑ£íÛW®œ6­_??¿fÍ\]K–ìÜÙÁA,öôôó6läÈÁƒGž9óÍ›]»üý/_Ž‹Ë©|C†÷Õ—QÖ}%¸¹5oŽûʼ³¦À˜Œ¡gø‘ ³qè¹0(t!Ôëõz½>99%%99====-ÍÚÚÊÊÚš¬Õju:­–¢ôzŠâóù|>_*•JM @k411Û·?yòîTºgÏúõJ¥§gÍš?ÿ>¯_¿xñð!¹¯Ž=yrÅŠÓ§wìȺ¯¶m;xðɓ޽{õªZ•ÜWëÖ:*‘h4QQ³fýòË’%ænÿrÀ3€1ô ?sÍìlºBj‹Åb±ØÖÖÖÖÎÎÊYbcccccÃç y@"ɉþ\©<ž‹‹‹‹H$‘Ô­;pà„ $ô¬Õ&&ž>=vlß¾[¶¸»O™²|ùС“'/Z4o^/_þòK¯^ ´m;p`·n†û’гVâĨQýû¯^Íáèt4-;; ×®-^-—kkkx_Q—+‘ÞW}ûŽ;gŽá}õìË–,ix_ѧOÕª†÷Õ´iãÆEî+s·zqœ0Æ ` =@Ñet.œ¡g¢  2³³N§ÓétjµZ­V³,ËfíHÖ³¥¥X,“¼é¯;ŠN§PÄÄdfR”Pèä$fM%À0R)Ÿ¯R}øû¾JeB‚ZÍḺ6rä˜1ÇOž¼re`àµkÙÛÑ4Mæ»Ò4‡óé’¬ å— iRÒ§åä\R~ξ‡Ï—HÊ—ïÒåæÍ5k¶n}óF©Ì}ëîÝçÏïуÃ9vlÚ´¥KOÊëêÐ4Ms¹"‘£ãìÙS¦ØÙ]»¶rå¶moßæU~Þ¥}º$÷)6 ï+ó¶oñ„œ0Æ ` =@Ñb8ÉFa7+tSpü¯Z\.—Ë}û62òÍ++++kk–eY†5Õp¹N§V''¶©,òs¦ðµX6%%#ƒÃ±³ËžÜ„¦&6V©ÌëÑ}––+޽téøñÏŸ¹bÅèÑZmçÎAAy϶,º¹•-+)•ÏžÉdŸ›ú[0¼¯ ²e$ÞÞ>>*˜»PÅ ³¡B€&¹Âb±¥¥X\¹råÊU«.'™ÎF£ÑDEEEEE¥¥©ÕééaaOŸ–.]®Üç‚8¾¾Õªi4ë×Oš4yrZZ¿~ƒM˜Ð½{ÇŽ7îßoi¹cÇêÕ3gîÜéìla.“•/ÿÛo‡õéCQAb¢á¾;9òÇvvíÛoذ{7Ë0tèØ±žžNN‰Ÿß”)¥K¿zuòdLLFFRÒÝ»Çöêåççèxöì‰7o&'gdÄÆ&'§¥…‡?xðÏ?wî$'+11IIéé/^üõ׈+WV©²aÃÖ­Éå˧OÇÆ*))OŸ^¿þâÅõë4Uò½{AAÇŽõíÛ«—“ÓéÓAA·n%'gdÄÄœ8½Í‰N˜Ð»÷çξ-‡ÏŸ7oôèY³J•ªQ£tiKK¥2:ú—_ŽY·®BKË·Öhbc¯^=}úĉ›7CB$’R¥ìÞ}ëÖÓ§ýü’“û÷o×ÎÏÏÛ»ÿ3ÆŒiÞ\©LJJK ÛºuÍš 4pqa˜§Oß¼áñÆß¿ÿ?ªV‹s®Ë&'ß¹sêTÖ}%—«T eÝ37nÄÇk4uêPÔä¾ µ±±³{÷N¯&Û\»öömff“&^^Yï U«6nܺU"ÑhÞ¿Ÿ9sî\Ìmšðð°°Ã%IOEkz SйÀýû·o_¾ìí]®\•**'‘L…ââbcëÖ­V­re2ù™jƒa†aHèYaàÉ“gÏBBÜÝK•*SF s7)PE99å÷–¤jÕªC‡>}RS““ãâÌ}N‡ I`Ú°7¶±±µup0w퀢Š~.6Ekt‘œœ˜'‘88H¥Ækmm%©ôâÅ3g,d“D4Í0\.—Ëãñx<™Žƒ6@ÓOŸ>þâ…³³‡‡—BÏP<á±!` ŒÀz€ÂÃ0ëùÇSè¦à°¶¶µµµ½qãÞ½Grߊ¦iºT©ÏO¸ðcÃcCÀ3€1ô æòãM²‘7“ÐùyÄß—"Dz¶¶¶¶±1gÃ@þ©Õæ®Áä,`àyØŒ¡g(xÆ¡gsר º h0‹` ŒÀz€‚T´æwþ¶ åÐ`ÌÚ¦À˜Œ¡gø~H¸¹xæ;C4@†œ0Æ ` =À·eü Áât6„4ÀWB¦sÞ€0‰q¸Aç¼ah€Ï@¦ó×A ÃcCÀ3€1ô ¦#¡gä; Š0<6L1CÏnF¾ó·‚4@†œ0Æ ` =@ÞtþVðB€" 9 ` ŒÀzCÈwþ~ P„!gL1CÏÅYn“l ôü= #½>5õßû÷¯WÏÛÛǧBooŸŠkÖì×ïüy²Ë&&^¹òûïãÇÏœ9uêøñ«W_¹’”IJYKä,€)0fcè xB¦sÁÃ9ÒjUªäd¡°Y³/BB-¢(Š¢išæp†¢tºÔÔ›7,øý÷GZ·ÞµkÍŠš6mÀ€ nß®VmݺFìì8øˆ  ¡g Â#9ÒjÓÓß½ãóË”iܸZµZµ4èÚuúô½{CC324šèèþY¹òÑ#{ûŸnÜØÑÑÉ©qã¡Cíì>\³æÌ™˜ÆÜõ(¾ 3 „žÍh€\0 Ÿog§×_½zëV`௿V©¼~ýäÉÛ¶éõZ­L¦ÑP‡#r¹4MÓ\®HÄãQ”Z-“±¬^Ÿ[©ÙzäþšÛ¾†s´åö3öÂ^Ø {a/ì…½ f/SJ(Šç…½°öÂ^Ø {ݽŒgv.l5üñö2[ìÿþýÛ·/_öö.W®JŠ‹]]ós(nll¸\µ:?%^¨U«úôIMMNŽ‹3ï±lLÌѣݻwízðà‘#GvïÞ­[¯^gÎL™ròäž=M›RÔµk½{wê´aCç·ÿýw¿~nn<Þ׋„¡ÃÃÃÂBB {c[[Ã-ɯÌÝPðŠÖ×x1fcèàG‚™ ^rrbb\œDâà •¯µµ•H¤Ò‹Ïœ9xÐFX6.îøñ~ý5êÑãàAŠ¢(½^©Œ}þ\¡°·oЀÇsum×nÚ´êÕ“’¶m»q#!!!áúõ;SRªWŸ4©C—¯ =) À3€1ô Ptg:“ 3BÏ…ÐF¸\GÇ-fÌ>¼T© 6nܸqõê%Kvíâp†_»vÌŠâpììêן?Ú´ªUÏž]µjùòsç*Wž9sÁ‚zõ òñƒùÿ" 3€1ô P´ät6w½à󏿮@aÄáX[W­:xðòå;vä¶ GÂÔ7¶ha®z"gL1CÏE‚ÎE2 Š0ä,€)0fcè ðC¾óh€" 9 ` ŒÀz(ÌŠÖÃ~!o˜‚Ì ùÎ?*  @‡›tþQa ( Èt.n€03ooŸ  _Mß S`ÌÆÐ3@A"AgÙz.>0€™…‡‡……„.1= dž€)0fcèà{C¸d@aÈYS`ÌÆÐ3À÷`œélîù! P„!gL1CÏßfv†Ü P„!gL1CÏùa˜éL–`ª È ÐErÀ3€1ô ðué _ !€ÏÀÌÎðu 9@¾3äÐðä;÷‚4@†Ç†€)0fcèÀ˜á£z†os@axl˜c0†žŒ§×@оd@aÈYS`ÌÆÐ3g˜Ù 2 Š0ä,€)0fcèŠÁ\ P„!gL1CÏP`’ (  P„!gL1CÏð£B¦36@y$ôŒ 36˜‚ HB¾3~È€(2t†¢ÐE¦À˜Œ¡g(Šz†¢ÐE¦À˜Œ¡g(ü ÃÍ‚ÎP!À̼½}|*T0|5}_ä,€)0fcèŠ tFèŠ.d@˜YxxXXHˆáÓÃÐÈYS`ÌÆÐ3N˜d~<È€(³¦À˜Œ¡g( H¸Ù8èŒÐ3üH€(³¦À˜Œ¡g0/d:Cñ)8¾;¡xB4Àwé5 ðÍ ÓÀ2 Š0<6L1CÏð= ô ` ÐE¦À˜Œ¡gÈ?L¯` d@aÈYS`ÌÆÐ3ä2L‡ h3óööñ©PáëöEΘc0†žáëÐ3‚ΦC4€™…‡‡……„¾š¾/rÀ3€1ô ¦C¾3@~ P„!gL1CÏ` ä;ä¦àøä;|[@@1enFÐàÛÂPì Ó ` P„á±!` ŒÀXñìHÐÙpfg„ž¾7 >ãĉéÓÇŽmРV­N6oŽŒT«)J§KMý÷ßqã:tèÛ÷ĉøø¸¸'lÓfüøë×SRtº‚ª¦À˜ŒŸž“l˜ÐybÙ·o}}»u+QB È^š‘ñêÕÏŸ[X´hQ½º]õêÍšñùÏž:ôúuFFAÕ®xæ,À—˜ŒýØ=ƒq¦³¹kP|! +­69ùΪVµ²âô—MZZxxt´ZmiY¦ŒXÌåòxbq©R––jutôË—ééMÁÔ°øä,@~`ÌÆ~ÔžÓk6@ä@¥zýz×®3Žwq±³cs×'7?vÎ|+3€±©gÀã 3 Œ¤§?~¼rå_>½l™¯¯·wÍšƒݹ“ðúõêÕmÚÔ®­ÓÙØx{»ºòù¯_Ëå,«ÑÈå|¾‹‹µ5W05ýQsàÛ˜Œõž“l@±¶®[wóæë×CCÃÂBBÂÃ<ؽ»n]GÇÒ¥§L9þÞ=ÀÒ²té¾}+VT*/_~ò$%%5õñãk×ÔêŠ{õ*SÆÒÒÜgð£B¾3@ÑÂ5w ?+«Úµ÷í»qãäÉìe|~“&üqæL“&YKvï>¾sgs×àGbn&t(Z€€B Ag€¢ Spa?ÒcCàûÁ˜Œæžó;üH P„õdž@ÁÀ˜ŒžžÁxNg~$È€( sÎ3€±ÂÐ3àq‚Å2 Š°Â“³…Æ `Ì\=‚ÎÅ 2 Š°Â³…Æ `¬`zÃÙœÉL²PÜ À̼½}|*Tøº}‘ͦÀ˜Œ}ïž™Î@ `fááaa!!†Kò’0/zFÐLÁù‚|gÈ Ðð•ï yË5Íãñx|¾N§Õjµæ®$=Z­N§×›»?>ß»wëÖ… µkׯߺõ—®ýñh4Z––’gîº/>¼{—–V¾|¥Jµk“oä¶¥éïbc$ôl8M‚Ñæ‚Á"˜c€âÀ0èlJ¾3z(_€þú Uî°MÞgZ|Ú¢ø|O 0w-Š…"#C&£iš&Ùè9mcø.þVm.ÈYS`Ìðc3%ßÙz(_€&AgÀ2ýkûÅgò¼Ï´ø´Áãñù|¾¹kQœèõb±µµ­mÞ÷™á»ø[¡gsÁ`L1ÀÇp~篃ž ÆWNÁazZ©ÌÌÌÈàp8†aY–ÕhÌ}ÊßKuê4k¦Óét9å8ç½öÇÃçóù½½££‹‹¹ëR¼ØÙÙÛ»¸ä=ùaøžÅÐErÀ3uÆáæü?T=Œ|=„ДpUrrRR\œ½½ƒƒ³³F#“¥¦šû”¡ ˆDb±•Uñ ¸u_7´¹k …œ0 Æ E—aè9ÿAgCè `ä+mŠ×¯Ãž>uppttuÍš•¶xMCQÜhµZ-˺¸¸¹•(aîº=ß#ßÀ\¾{ºråjÕê׋‹}÷...:úíÛÔÔ””ÄDsŸ8|K<Çç[ZŠÅÖÖ..îî%JXZZZZ[›»^EÃ÷Ët0¯ï€&¬¬¬¬ll¬¬Ê–­RÅܧ PXÐ3‚Îð£â˜»ðõÈcCÌ] (ì0f(lHÐÙ¼¡gô P0€3ûð!**"B¯§(šÆc+¿¦À˜À¼ ÃÍd :›7ë=  ÀÌ\]ÝÝK—ær¹\.—a¸\†1wŠä,€)0f0—Â<³3z(44@nôzN¯×ét:ަišÃÑë)J«5w½Šä,€)0f(x…fgô P0 _ìÕ«—/ƒƒ_¼¾{÷íÛ7o^¾4w hãp8†Öju:­V£1wŠä,€)0f(…9ßÙz(È€†/&ZZZZ–.]¶l•*$wÕÜ5(¾³¦À˜à{+üùÎÆÐ3@Á@¾˜áŒ½dÚ’»jîzœ¢•ï `.@ÃKMMNŽ·µ•HœœHšLœ`îz|/†áfAgS _ÌÎN"qt¤(ŠÒëµZ–ÅŒ½ùãííãS¡‚¹k9C¦3@~ ] ÂÃCCŸ @Ëdéé©©±±ÑÑoߦ¥¥¦&%™»zEInM™,==%åÝ»ÈȰ°ºu6lßžeYV£Ñé0m…9ñù…MÓ4Mߺõï¿§OWªTµj½zæ®|+Zmf懩©z½³³½½HÄ0,›œÜ±c£F-[FDÈå"Q©RÍš zúô fîÚ~= À3˜Â8Üüã ¡g€‚ñ¿tL̇‘‘ qq>888:º¸89I¥nnæ®^Q"—ËåiiááÏžI¥..R©‹‹§glltô»w¥K—-[µªZ­Vgfš»¦@Q¥V«T™™|¾@ –.íãS¥Š¹kß‚^¯REDüý÷Ô©#F¬Xqî\T”NçèX³f¿~³fùùED„…%'«TEQ*UXØùóë×+•5l˜……¹kþµ³¦À˜ o?v¦snÐ3@Áø_:!!..:ÚÓÓËËÛ›¦9ÇÜ+zÄb±ØÆF$‰¬¬Þ¿û6<œ É„vvvvNN$÷ÙÜ5…ld";;{{''¥R¡ËÍ]#È­69ùêUÿõë/\xÿžš)*!áþýÝ»gÌxú”Ù8qÆZµrwW(=:p`ñâÔjŠ*]šÏ7wí¿‹` ŒŒÏ ³!ô P0þhvssw/Y’¢hš¦õdJWWw÷R¥HÛ’§@`a!REéõx-<¯:V˲––æx·¥PDD=ªÑŒqþü³g!!dnå/®]ó÷/_ÞÆ¦råqãÚ¶­V­\¹Š4èÓÇßÇŽ¤¤¬@uÑDrÌ] (ì0f ŠÛ$yCÏãÐ Ãå2 Eeæ~D:]zú£Goß Õ«—,)|Ïcq¹Yíù)½Þ¸…u:¹üùó  -[öí{ð@(tsstT(âã_½zøðÕ+š>pàÀuëhÚÜ-X8Èå/^>üð¡½}×®Mš89ñxæ®.z=E}üîãr--½¼,-‚ï.33&†¢(J*5w­¿rÀ3@q†LçÜ g€‚ñ¿´qXT¥úðáüùöî Ü·ïܹ¤¤>}zö¬_?,ìùóÔÔ%zõš8q̘ÆííÍ} 9Ñë32ÂÃÏœ±´ôöîØ‘,ÓéÔêÔÔÌL.7ç0pÁÔëÓ%ÁÁk×0uj\܈»w/\ؾ½‹ ™ @£‰‰9qbÊò¨ÂœÚÅÏ?ÿ,]zøp|¼¿ÿO?5nlîÚ@á£T†…-_ÞªU¥JË—¯õööñ©PÁpÉþý„„|ºV›žþèѾ}K—nÞüü¹••¥errRRåÊS¦øû\¡‚XÌáPË&&^¹²f¿ÿÙ³±±%•úú.X0aBóæöö\.…BÏæb0×óÇSnn­[÷ï߯_Ã†ŽŽ––®®Ã‡=yòŠK–têôäÉòåÓ¦ýóϺu³gØ¿ÿÔ©ÿüóüùùó}ûnÝ©VS”^¯Ñ$&Þ¼¹|ù–-{ölÛ¶aòe3g.[vìE±lJÊÍ›{ö,\Ø¿cÇnß¾~ýòå3füüs¿~íÛ÷ì9}ºV›]&&æÊ•-[vîܱcÕªyóæÎ]³æâŸ¸œŽ¾aÃÝ»'Nüùç’%}úŒù矛7ïßófR’J•šúøñ•+ááïÞÉddæ¬ò7n\´hÝ:Ãò5²V¯W*ß¼9ujýú;wîüóÏ… §L™1cíÚà`2S°)“<|Š„¾³_ >üÚµ>}víZ´¨}{gg/{-—ëâÒ¹óúõ £VGG:Ô»w³fýû?KQz½Bñüù²emÛ6o>{öƒ•–vëVïÞÕ«W©Ò©ÓÚµP”^ϲ‰‰gÏZ£FùòÍ›ëõz½V›”tîÜ!uê4j4s&Ù«OŸjÕ*WîØqÆà`’ýôéÚµíÛW­Ú¸ñ¼yeúÑ«U«T©]»ß¿};ëÊöëW«VãÆsçR”JõîÝ®]={vê´dÉóç …FµçÎMšüüóÿ¥¤èt†%¤¦²¬^oXÂóç …^ðò¥L¦×ëõ:i+–‰ ôó«_¿G³gµZæÃ‡“',¸r%1Q§û´Ísz…ŸïîÞ·ï–-ÇŸ>}îÜÙ³y½ž>½gOÎ¥0Œ•U¥J½{/\¸uëŠ3fÌœéë¹{÷Š×®%'kµ%“Ý¿?n\6ØÙMŸ¾hÑÒ¥Ó§ÛÚ®ZÕ½ûäÉ÷ïËdæn€â‰ä;#ë ð0È€Î) —¢ËúY§ËÈxûöƤ$¡°bÅvínÒäøñþY¼80ðŸjÖ>¼K— F£‰‹;yò×_7l˜:uãÆýû†ä%nÚ4z´\ÎátéR¿þO?uì¸gϾ}sçöé3n܆ B!E)/^ìØ1~|XXf¦^_®ÃÄÄúûïß?räæÍþɲ±±AAÆ·nݤI;vtíj|ô¦My¼þ 5ªoßzõȹØÙµlY±â®]2™V«×ëõ CrŒY¶G#ÆŒññ±° å?x–¦ÓÕª¥R]½ºhѶm/_þõ×ñã6°llìåËk×¾y£Réõz½Hô¥ÍÝšY22(ÊÒÒÕU$b㵄V›’r÷îß¿yckÛ¿ݺööd’’%}}kÖÔjÇŒ9rD¯§é.]hšÏwvnݺS§ ôzŠâp¬¬¼½«W···²Ê̤(Š¢i±¸L™êÕml4š[·ôz2±ŸïâÒ¦M‡eÊèõ4-”/ߣÇÀûöíßϲ_rtW×öíýüªV%ÛH$U«Ö­kg§Rݺ¥Ñ$'ß»øêUZZéÒ'Oþùçèt¯_'%¥§GG¿z%“i4†%ØØ0Œ^/f— “±lVû)Šaø|¡P¥ ]¾|Á‚Í›4X³fÔ¨9s¤Rš¦i™‹ÀÓsàÀ ú÷¯[·|ù%„ÂÏM]ãîne¥Vç´†¦F­ =rdß¾C‡®\yø°Nùóÿ½M†Ñh¢¢Âã£ÕjKË2eÄb.—Ç£¨R¥,-ÕêÓ§_¾LO×hjÕ²²Â1…n(l8¦m¦VÇÄìܹmÛ¦M+Wþý7M÷ï¿dɨQÅáðx4Í066µkwïîç×¼y™2"‘^Ÿ–ôîµuöÄ-[VªEùEBƒ<ž£cVˆ¦E"ŸŽýüž>MIaY­6558øÌ™·oe²mÛ¶oß½{ÇŽ£G?NI‘Éââr;:'—s¢i.÷ã1)?9ùÂ…C‡ ËŒ”˵ZÖTªˆˆóçŸ<‰ŽV*›5›4©N[Ûou½>##&&3“esÛF«U(¢£ ЉœE¢¬6e¡ÐÙY P©¢¢ Ï“Ã1 º‘¼„a>ËÑôÇ˸\KKOO±˜aXöKŽþi9YÇ¢iŠÒé”ʸ8•ŠËusëÚuäÈ &Mš={ݺë×= <ØÃƒÇË»„Ü0Œ£cëÖëÖýñÇ„ µj%&Ô­Û¼ù!kÖ\»–”DòÝ¡xàó¥ÒfÍZ´0%ôL0Œ¥enÓÛp8VV•*õì9lØÄ‰ãƵn-—oÜ8yòâÅ.$$èõZ-ù6‡#r¹4Mz¢ÔjÃKŒ‘i@ò~Ím_Ç„Ÿ _MßËøgì…½°öÂ^Ø {}é^¦”PÏ {a¯¢µ—q¾sa«aaÞ˸„ÂVCì…½°WáßË4ùl0))!<ŒëcÍû÷û÷8v샭^ýñz¹üÉ“1cúö]·®N·l<ØÃƒÏ×j/]úùç¡C¶o Ú´‰l­T†…­^éé9eJ¹r,›µï¦MAA;vm´Ú¸¸þùï?>¿mÛÆuºk×FŽ4hß¾¿þ:ujûv² ™Í™ÃQ«ß¾5>ºa­ K&ËwíJI)_>«žIIW®ìÛ—™Ù°á AîîdæeŠR*µZŠâñ”ʨ¨wïôzwwæÕ«³g7mZ¸põêû÷+Uºr娱Y³òn\{{GG—û÷oß¾|¹U«úôIOOKKJ2Ü&1ñüù)Sºu[¶L(œ;÷ï¿,hÓ&ëÁzMlìÉ“3gÚÙµk7mÚñã pútß¾îÙÓ¹³•Õ‹¿ÿÞ­Û¸qÉÉ ^º4{¶VÛ·oÛ¶ 4lxàÀñãcÇ–,Éç«ÕoÞlÚÔ¹sß¾7ož={ëÖ¾}/9~„¾}›7Ÿ:ÕÅeË–3gV­ªUËÂâÇC‡îßÿüù¾}¯\Ù²¥zõC‡L=z£F?>fŒñÑÿýwÙ²}ûz÷îÞ}÷î:u¶l¹paÚ4OÏë×ׯ߱C(6lêÔU«Ú¶íØ1·üýÏŸß·oÆV­Z¶ôöÞµëôéùóË—·°P«ß¼Ù±câÄ  ÚµW®œ0¡re† [º´sç1c23×®=uê·ß*T s¿RÖÖ66öö©©ÉÉqqùy;Á·eøÞ1åê̜٤I•*±±¹œcŒÌ]§Ž•Uö2–MIyúôîÝÄÄR¥êÕóö&3>«T¯^­]Û¹óСaaçÎ>=tè¨Q;/YR»öî݇ @Q{÷úù ôðáüùAAüQ»¶a™_†„¡ÃÃÃÂBBH;x{—+W¥Š­­ƒƒ¹¯ Pr-ÌÁ8ÐŒ÷ €¹$''&ÆÅI$R©ñZ[[‰D*½xñÌ™ƒMÈ€Îkò‚œ×1Œ­måÊ;{x¤§“èQE)•ïß_¾üì™»»@½­V›‘‘] ËÆÇß¹sþ|¥JÖÖÃØØ”/ß¾½«kjjÖVZmZÚ½{»w=šwÍ8îÓ/Öº=)ÿÌ™  ×¯ Ë S(ôz.9ùÖ­-[zõŠÇ³³+[¶uëÞ½6”Jù| ‹¯½4ŸÎíàЪղeû÷ÏžíævéÒ‚³goÚ´iÓÆ+W.X0kÖœ9Ç[Xðx\®«k×®k×Î[¥Ê¥KK–lذlÙo¿mØ’Ò»÷ÚµsæT¯~éR@À‰QQ2YRÒõëGŽdfFF^¼xôè‘#7n$&Êd11 ))aaçÎݾ˜(—ÇÄÄÇgµQzúƒË—ÿúë¬X±páòåµh±|ùï¿·kGQ_zô£GÕêØØ+W޽y“=>^§swïÑcõêÙ³ëÕ{øpÖ¬1c&O^¹òéÓ:u†­VM HL4,áòåØXµÚ°„'._îÖ­vmš>yr„I“/>pàî]†±µ­T©lÙ°°å˧L™;wåÊ•+ÿúK.ïÞ}éÒ)SÊ–%WëËæê†¢¨zu‰$ëc¤üP«cbNš;wÊ”™3 ³Ú“¥7nܺ¥ÑT¬Ø­EYZ–.Ý·oÅŠJååËOž¤¤¤¦>~|íšZ]±b¯^eÊXZÔYçÿsH(0f€¢ÎxNg„žó= ƒ èèhÃM\Ü­['O>¼uëÑ£ññþþGîÞ]¯ž÷3G_¿~øðÊ•«VmÝzó¦TÚ½ûàÁ›7ݹ3ùê»F“póæÚµÇ޽y#‘h4ÑÑááry™2˖͜ٵkVžrÏžsçúøtïÞ·¯µµZ‘’âêºhÑìÙ={’£¨Õ>\¼8dÈâÅW¯zz::ÚÚ–-Û©ÓˆeÊDDlÛ–ÓÑY61ñŸ,˜2ååËZµ¦N4¨}{/¯°°S§vîüûo–mß~áÂîÝË•‹†¢V¬3fÈ'O(ÊÍ”¿h‘¿ÿ´i•žþäÉŽË—ïÙÃ0>>U«¦§¿Ÿàààë;bDÿþÕªY[çݸööŽŽ®®g@§¦&&šû¢’ÉîÞíÛ·MÿF8vŒä›»VÍÚÚÖÖÁÐ…Í—f@?~>Báœ9ݺ͘ѸñÚµ¿ýÖ®‡‡…EÖ=ZmfæÛ·—.­[çæÖ¦Í¬YY½¡Óed„†9²jÕŠ§OgdÔ¨Q¹²PøæBQ¶ìÀ“'÷ìYµªµ5Ãh4 —/¯Y³`Á¹sqqåèØ¡ƒ¿ÿĉ-[:8äoögd@~È€øÞï P˜™žý¿tbb|ü‡[I¹üéÓ±cûõ[¿~ãÆ'þúËÜöí9889¹¹ÑÒÒRRÌ]¯l—/ïÚ5w®¿ÿêÕ—.¹¸ 0aÂÓ§÷íË1qnð…£#Ð…Í— ­^Ý¡CÓ¦÷î5i2eÊÔ©}ú4n\£†‹ —vûv@Àºu 6h°fÍÿÕ¬)›û| ™€&9 ]ºtêÔª•¹k P¼­4Æ PTg:›»F?2ô ¦ ÿ—õ§×äDMròõëgÎ\¸‘‘’rùò«W™™M›–.-·Ð§yµh1xðâÅäÕÜuøözõêß¿dÉ.œ=»OŸìùà³1L¯^_?¥Na€Á"˜c(üŠÖ‡:?ô P0 ¾v^p!hÏήQ£=¦L!¯æ¨ƒù‡s(ÜÜzõZ¿þ¯¿XvéÒÅ‹·n=sæñㄆ¦ù|;»²e[µ2ÄÉéãé7   ß 8@à¥@éõ›kPÜ1Œµuµj.]zäÈÀK—š»>Åa¦3‚ÎÅ—Ì.jîjü˜Þ¾}ó&,ÌܵS¶÷MÓ4M“ÿs84Íáp8ÃÐ4‡CQ4MQ‡Ãå2LÖ¿išÃa‡Ã!ë8RÃmH)äÿ¤²„¦É^¤LÃõ†Û£Ö)«>ÙÇÎ::ý?Nv=²~"ÿ'ghî6€‚cüPA(¸ä_æ®Æ¸+ü ã{áãœùìéõŸþ—½]ÖÏ9ý—½>û_Ù%ä^æ§GøVG‡üÃcCÀ3€ya~ç = nZZJJ|¼Xlm-‘˜»2?2++{{s×r¦Õjµ,kîZäGV¶ô§?F:V˲ EFFz:‚Ñù‡Á"˜c(HÆ3;#ô\8¡g€‚Áåñx< ½^§ÓéÌ]øñ‘é8HÏ£V«Õ™™æ®Qцœ0Æ P0é\´ g€‚ÁeËÕéôz   ž‡¢Ôjsפ¨Ã`L1|?ÆùÎæ®˜ = .É}Öë) h€˲¬Fþ왽½T*[YÙÙ‰D––bq||LÌû÷ÑÑQQB¡HdiYº´O•* Ã0 “[™aa/^_§ËȈ‹  {ö\¶lܸ*UÄâÂ<ÃlÁÑëåò/~øÐÞÞϯI''ÏÜuø =?ztó& K¥..žž†ÛH¥®®žžNN..ïßGF†…Éd2Yzº••••µµñ¬Ò¤L±ØÊÊÖ¶lÙŠkÕ2ÜÆÒR,¶²"¯*•J•™ùìÙ“'wî”.]¶lÕªÖÖÖÖ66æn•‹` Œ ÿéüãAσ›=û³^Ÿ‘¼fÍ€S§ÆÅž?¿|yö†ÍàÁ'O¦¤hµ•*‰DÈ_¤(–‹ûçŸÅ‹Š‹ó÷ïÒ¥qc´ >¯_‡…;;»ºzy¹¹yx”.MÞõW¯^½zù²ñöÍš5kÖ¢EHÈÓ§wïr¹%J”+' …ÆeV¨P¹r:¥ÿÆ¥yxxyy{“#ÆÄ¼ÿúµ•UùòÕª™»Uàóï ùÇÑjµZ–ÕhââNêßذ«W{öܱÃߟ,Ï~¥éíÛ;tH(J©|ÿþÀ^½š6U©²ÖÊdÁÁË–µm›–Ʋ,«Õ¦¤Ü¸Ñ«WõêUª¤¤¨Õd•*.îÌ™!C,¸{7%…eµZµ:>þìÙÁƒŸ<‘˳÷ªV­re™Œ”òii¯YÓ¾}Ö6¦½ZµJ•’’²Ž®T~øзop0)'332rÇŽ=|}É9*•ïÞíÝëëۤɈ†%´m»bÅÍ›†%Ô¬Ù¸ñœ9Z­\þúõ‘#¡¡2™N—ÝV*UtôÑ£]»Ö¯ß½{VÉïߟ8ñ믗/ÇÅ}ÚªxÅë÷µ±±µµ·'YÏF£V“WÒ4lذa£Fä•,!k­­mm%’Þ¿ S( …‚”öúuxxp0)“lIÙä5·%..îî%K’2 K3wŸ"AgÃÇ ¾š»vPôüo µZ&{ûV.§(KKWW çÓ©9²hµÉÉ÷î>üæ­mY[ ^^íÛW¯¡Pèt+’\HO*‹išlEÓbq™2ÕªµjeooiIzhiYªTµjr¹ZMÊ!{9;[Xdef …eËúùõïð`B‚JU¶¬@`úÑ]\¬­³ŽÎáØÚV®\§Nd¤Z­Ó©Õ Åݻǎ½~––’²nÝúõz½B‘””ž­Óe—ЮÝO?U©bX‚­­RyûvvûÌOÝÿèõ4ÍãYX¨T/_ݽÙ´iµjmÛΚåè˜Us_t(^„B‘H,Öét:­–,¹uëÖ­[·ÈÏ7nܸqýzýúõëׯO–-ÉÜÐqq11ïÞ‘ 7x<ËÍÈËÓÓ¥Rww²%Ù—”IJ3<ºáqI™†¥™»m ›aÐÙÜu€‡¢(J¯g '' ½>##&&3S£!Ë_µZ…"::#ƒ¢„BÃå #J¥ Ë~ ŸÌ ›]ý?†K8œìmÈ>ïÅåZZº»+Z­N÷%Gÿ´ÃcétJe|¼RÉ0®®&Œ?vìĉ3g®Zõï¿÷î–À0ŸÖöÓÙp‰ìš88´l¹fͺucÇþúëÀ:ԯߺõðáëÖýûobbn­ŠW¼~¿W >ßÂB¯×jµZòj|ÿ†¤É6|¾P¨R)•$dLÖ)•™™ÆeÖ«W§N:†e’%†Û2 K£ ßÈcCÌ] (ì0f€¼!ô\<¡g€‚Á!ÿc©Ô×÷Ï?ýýK”ذ¡ÿO7ÔhúôY·îõk½ÞÕÕ×wР%bb²¿@Ÿ™ùúu`à?ÿ”+'ST^%ã5Ÿ.aY¹<{™Fóáùs›6ùù¹»óù|þ·9:ŸïêÚ¡C¿~nnYGÓjSR®__»võjÓëÏáèt*UBBffV^³Z¹oß¼y÷îÕ®ýðaHHpðýû[¶øø\¸°dÉÆwa²ÄÇ'$|ø Ñ°¬ZM^kÖ¬Q£ZµÜ^É6qqqqïßÛÚÚÛ;;óù|¾@@J“H¤RÃ2oß¾{÷î]òJJ [’%†Ç%e–ù‡Ç†€)0fcx¨  g€‚aðx†qphÕjñâ½{9œ;üýW­Ú¸ÑÉÉÒ’ÃQ(âãß¼iÑ¢K—yóx<Ïʪk×Õ«gÏ^´hÍš-[4š÷ï_¼HOïÕkãF&!áòåcÇ‚‚¢¢äò¤¤‹ß¿ÏÌlØP¯¿yóøñ€€›7CBœ+W.UªcG'§Û·Ož¼sçÖ-›²eK–ôõ%äôô%K6lغÕÖV­Ž OJjÖlíÚž=I-]\L?ú•+qqjuÆuóf@@@À­[Ïž9:–-[²dïÞÍ›wï¾jÕŒ~~ýú]²¤Tjo_±bÏžS§ªÕÇŽ­^MJ¸~= àØ±aÃú÷—JI IIryLLB—ëééçW»6‡³dɤIS§Ž{êÔÆ¶¶¶¶•*•-öûï7nÞ\§Njjd¤\Þ½û’%Ó¦™ûrCq”˜cgggçèH¾ððáãÇOŸnS£FµjUª|¼WBBl¬““³³§'—Ëåf=`ÓÖÖÎÎÑ1*êݻׯ%‰ÄÉÉp/2 )…,!Õ2Éôæn•ÂÅÛÛǧB…¯Û—ä,`àyØÁz(taú•#“ݻ׿»v¿ý¶oß'Oš»>?‚7o^½ ár¹\ÏÉI*us3e¯¨¨¨¨ˆ77OOoo àãœeR¦««›[‰¦”Eò K—öö®TÉ”½îß¿}ûòåV­:tèÓ'5599.ÎÜmYpHH:<<,,$„´ƒ·w¹rUªØØØÚ:8˜»v@Q˜²Š„žàÛJNNLŒ‹#ß•7^kk+‘H¥/ž9sð ÇÜU%Ôê„„Ë—Oœ yÇçν|™‘Çõ䟧gÉ’eËÚÚÚÛK¥ïß¿{÷úu|||ü‡2™L–šªR©ÕJ%Yöòå“'$ô\²déÒ*‡ž Ë$¥……½|ùô))”&“Éd))d )M"qppv&eš»=~4˜µ L1CqCÂÍÆAg„žÁz(Üüñ-ðùŽŽ-Z ´hQ‹ƒ™»6?†a†‹Åb++ÏËËÛ;&&**"">>==*J¥ÊÌÌÌ´µµ·wr’J½¼¬­íììí9‡ÃÉ»Lww//oïôôôô””ŒŒôô””ׯ_¾ „B¡P(‰¬¬rË¡†o_—S`ÌP| 7L‡ž F! @À÷Ef¶°°°°°puõð(SF§Óé´Z–eY–%$s=¦”IJãñx<''{{©ÔÃËår¹\‡Ãa@ àóÍ}ö?2L¯…ÐÅη 3nøÞ ÃÍ‚ÎP˜! P ÓŠ¢ÿ e²ôôÔÔØØèè·oŠŒ ™L£ÑhÔjsWÌÃÆÆÖÖÞÞÙÙÕÕÓÓÊÊÚÚÎÎÜ5‚œ‘dž`î6ÈÆ EòáûAσ+“¥§§¤èt"‘TêäT¦Œ““¹«……NGQóꕳ³‹‹§§¹kŸÂ`L1CQp3$ô P08±±ÑÑïÞ™»PxÙØØÙI¥æ®äŒä,˜»PØaÌP´ 3BÏð½¡g€‚ñìÝu\[ðÙf‰–1 Ql1/6v·¢b€Ý­ØÝ]Ø-ˆ¢ØqQÂi–%–esÞ?æò²º¢¨Èþ¾ŸÏݻ̜9sÎ,fŸ=û&•pCÓÍ€²‹Íf³±´àŸdkkgçèøkÇíÙÞ«×€^^FF,AlÝ:iÒøñYY•*ÙÙñù2Y||Ó¦£G/[æàÀᤤ„„¬^=oAx{{{GDÌ™³lYT”—WPÐÑ£&T¯þ' ~]NNv¶P˜œœ”ôéSVVffzºz&“Åb³µµuttuíì\\4Ýꊃš³PR7ŽªKâí@ER²÷ 3Ìt†Š#”Ž_ @øðþý»wýûïƒ3fLž´´ÌÏW*©º¨’œ|ãÆ¨¨¶mûö<¹Q£:uÌÌJÿ× 8’“ãã32ÒÓ“’ªW·³sv®_ßÓ³ukõ’ùùùù"‘@žž’’œüùóÇææVV•+kºÁŸ¸YD âA€éw`1g¨¨02@é(2M—/_ ¹x1**222ÒѱvíÚµ©ÍNNÎÎ..>¤¤óçÏš5}zíÚÕ«ÛØPaå/bbÞ¿ß¶móæ zõêÚµcÇ—/Ÿ={úôÖ­‡Ÿ}„B %EÓW¢ôØÚÚÙ9:ÆÆÆÄDEQ×ÁÖÖÁÁÙY_ßÀÀØXÓ­û6ÌŒ€¿ ‚•^G€_C­õÅçk;*jtõjHÈ‘#¿¸!€*õ™Ñx#e>8(M%‚4…Z6DÓ­øõFŽzk‡4eAÙ¼g(}=¨ÂÈ¥3 ʱ²¼l–.(;Êò=ߣ~‚ûUçÈ¥3 Š “%'_»¶aêU7®];kÖÈ‘þþ›6=|˜•Eí—ËÓÓ¯__¹rܸiÓ&M7nÍšë×U—- åeΖ.ЬòrÏPRT‚!è P”¿mdMAàŠÔÔK—üýgÏ '!i€?§üÞ3Eõþó~MÅ lBàd²””°°U«víâñ†_±¢O’T(rrd2‚ Ó¹\&“F£Ñ˜Lmm‹ ¤Òœ¹œ$‹ªÍÖÖÎÎÑñûE«zƒH=§æ,|ÿÆQý(õçš=jß¾}û¢ž«¾,;-ÄQ8 Gá(…£¾¯l¶°¨½e³…¿vuAËf qŽ*ËG©Ï€.k-ÄQ8 G•ý£ŠƒdkëæÖ®ÝïT•¾>“)•ªo70àóÍÌD¢œ¡$I’$•J¥R©¤žA(•ª[ (• ųgß¹ãææááåUÔy#"<oÕÊÛ»O¡P HIÑLÿIrÙ²™3·mkÔh„áÛ653c±d²„„#GºuëÕ+$$ àÂ…š5#ˆ›7{÷îØqãÆNŽ?z´_?++ë×ÎI…¡cccb¢¢¨ë`këàà쬯o``l¬™ëPºðåY(ûðתôaYc€²C HOOIáóÍÌÔ÷RQ£«WCBŽaR›$‰$?_ÓÍ€²‰É¤ÿuß– ÉÜÜçÏW®ôõ=ztÊ”}û-*Øÿ䉮®•U»v“'»º<¸}ûÝ»iiŽŽ$¹wof¦«ëĉÞÞ¿zŠú[J¼Éø;!½@yÇÔtÊ¥2#ãÎ5kŽˆxôhçNGÇsç¨= †±qÛ¶oÞÜ»·v­§ç¼y“'?x0þêÕË—„“Ó´i xxþ}û?O}éB¼¨¨°2@E‚4€:ÝØ¸]»ýû#"Þ¼)º‹ebâå5uêæÍE'ùÓT3Akª ¥I5 9ÑÅWïðWàO+#”G˜¥PŽý7‹ê_ÂU IkºueQY¾gPÿ ŽÐ3@é(Ë#T$@”c¿¿mÅ ’F@]Y»gÀ÷™Ê‚²62@E…4@9†9 EA@UÙ¹gÀŠeGÙ bC ÜuE%èÐt»4IS÷ êi²ÔÿR€¦àÝ”,BPŽaÎBq¨§æÀ›^øÛ”æ=þæ”x7¥3 K€R)½yÓ«W‡£F=ž›«éö@ùbkkgçè¨ú¨éUL˜ ð§!ô ê~+M’$I’êÛe2™L&Sß.—ËåßÚþ»H2//*jãÆ7RR¾¬?55$dÒ¤I“BCÓÒŠ’?3…N×Ñqp`±$©T©,©ZåòÔÔ1cúõûS퀲!66&&*JõQÓ-ªÈŠJÐ4ÀïP]N¡gPõ[)8úõëÞ½k×Å‹W¬XµªZµêÕkÔ BÒ¾¾C‡0mÚŒµjÕ®íäD•Ÿ;wúô©S—.]µjíÚ’ë‚\ž”xþ|çÎŒ§ºÏÄÄË+  oßôt: bçÎéÓ'OÎʲ¶®QƒÏ—É59ráB{{G(¼ÿþ¥KGÇ–-³²žýÕ+«re33-­Üܤ$¹œ B&<Ø·oùò¸8/¯Å‹û÷·±a±ŠÌÌû÷ûô0`ÿþY³Žݶ­N]]‚Ø·oÞ¼yóòò,-Œ²³?¾}{ðàµk7lxþ|ÿþõëwï~þüÓ§„„ýûoÜèÞ½_¿æÍù|C,ž5küø%K¬­k×65ÍÎ~öìÁ?¿ 6mzñâÀ¥K·n=>=½]»6mìì¨öGDDGÓh'O†…8Aµ_¡È̼{wûöãÇ?¦Î›œ\£Æ°aëÖMÚ®L–˜ºk×öíOžH$ùùII4ZË–³fÓ¦¹9U@Å š ó¶Š7 8~qôÇ>|øðøñ£GΙ3mÚ”)TèùÈ‘ƒ÷ï¿sçæÍ7¦Mó÷Ÿ0*ófxøµk§N?~ìXnnnnNNIu@©ÌÊzñâòå¤$CCãë½4š––•U½zÖÖÚÚ4š\žœÙ´éÔ©þþ~~¾¾C‡úûÏš5wîš5/^ˆD ŸïéÙ³gÏžG>~llÜ¡ƒ¯ïÌ™sælÚtôèýû[¶ìØñþ½XLS(<ÞÊjìXÿ F4hÔ¨)Sôõi4‚ ‹Ï÷ðèÖ­[7…¢p~8ƒahèéÉbI$IÁ,i¹<-íÍ›–-'Lðõ5jüøÉ“çÏ÷ñyü87×ĤmÛ»u³°ÐÖæóGŽ4¨ys>ŸÉ$…"5õòecc_ß3¨£&Lð÷¯SçÝ;©´ ý<žPøê•jûwîœ8QO¯ ýryZÚµk³gªž7?ÿÆãÇ B&KH8{vöì]»о}ýýýü&NlÜøùó /~ú4+ë[sÞ@S°lHIÁÒ…P±•ì=BÏÞM@é(r4\ ½téõ먨W¯jÖtt¬U‹šÑ\«–³³³stô§O‰‰‹Ï›7{vÝºŽŽvvººººººEF¾y³k×Ö­›7гg·n/_¾xñüùÕ«wîÜ¿_¿~íÚ5kz{wìØ©ÓÍ›áááá66UªT©Âf³Ù,“Éd²Xµk;;שãåÕºu›6îîžžEµ“$ ‰D.'I*ü[4™,1ñâÅ›4>¼0TÍå2™·nmÜ+íÞíâB£Ñh­ZuìèâÂã”b2 ¤ÒD"…‚ О<9bDûöÇ«ÎÖÖV €Óhßjê6™,1ñܹîÝ]\†§fgÓé––}ú´oOíÿv.iÃ̬C]ÝC‡6nܳçѣʕíìªTa±tu-- ÏËf[Zª¶ßаvmÏŸ©ö§¥;wð`LŒ±q›6…çݶ-$¤O™ìÓ§]»ÎŸÿôIW×ÏÏÜœËe2õõ{õÚ³çâÅ^½Jë׊ ˆü êo¤U¿V¬éÖüŠß¹gP7ão"@Å€wP:Š @׫W¿¾»;õøý*&Nœ2eÚ´+W.] Y´(0påJÇãñÆ ˜<¹víêÕ+Wž7oñâ¥K+U²±©\¹n]7·úõ/^3X}‹RY¸NçpŒÕë‘Ë•J‚`ñÊ(Áõë&&}úøùuébiÉbÉd?nßYÜ+F—ÍV*³²¾®[*¥Óµµ­¬´µIR(Œ‰ÉÊ’É4Ð×g±”J©T Jét>_K‹ù[©[ äPspãø§©¦éÀ[n(~öžAý›@ø PñàÝ”ŽßZ„¢««««§·pa`àŠÍšyyµlImg±X,«qãfÍš7ïÓgÀ€Aƒ¨í‹-_¾r%Ú :yòÌ™ß;?›mcãããçW¿þÝ»ii_/BxíÚúõ§N}ü(‘Ð醆u놆>~,†™ÅbÍÝÝÇÇÊJK‹ ¾4þƒahX·îÉ“GŽ<{–“SNC&TÏM£q8/_ÆÄ…çR*ssÓÒ¨<ÑT=|~½zgÏž=—G—$óòÂÃSS j¢Ó•J‰äËóK$™™Tª5//!!:Z$’ÉHò{í/ØC×ËËÄ$-Mõ¼±±Ç¯XAôÛ¶µ²BBΜ‰Š¢òEGDìÚµl¬XŒe nKSQÙ¢ʾ_ =c¾3@ņwP:haaÁÁAA66NNÍ›kº1P™š,âù%>ßÌL$ÊÉ ©,ðJ¥R©TRÏ ‚ ”JÕ-”J…âÙ³ÇïÜqsóððò*꼄‡·jåíݧP(¤¤húJ”[[;;GÇØØ˜˜¨(ê:ØÚ:88;ëë«–ÄœÍBL€¿YùúfÌ÷ïÊW_ ¤àÝü ==%…Ï7663SßKE®^ 9r¤f@€¦àfQ³°h!”=€:¼›€Ò\¾Pb>¼wïÊõíu뺻ã;Pq†Æ›y(›ð× JÐPbÜÝ6lÓ¦¨šn@iP™eP è š‚4”Ì€P§ºt¡êM· þøš…4”Ì€.}X6¤¼POÓü9êAgêžAÓ퀲ï& t`B€r 7‹å–.¨è”ÊÜÜçÏwíš1cæÌÝ»ïÜQ/!—§¦^¹2þàÁcÇΞ½téüù—/§¥Éå߯÷СéÓýü¦N]²dÅŠ)SúõëÙS"¡ö¤XLýM \µjÙ²!CÚ·ïÜyêÔãÇ##³²=Ú¾ýêÕ  Ó§gÍZ¾|Õª‘#7o~ñ"'G©,~Ÿäòùó}}»ukØÐÍÍÛ{ݺwï¤Ò½2Ybâ¥KË—/X°bÅÒ¥&ôé3bÄŠwï …Å©»mÛš5›5[½úíÛ‚:©Ú†íÓgâDªNª6…‚  ªGT_fÍ1¢W/ªGª­îÝÛ·ïÛ­ý²ÜäÉ»v½|™›ûý«‘}ÿ~ÇŽ5kº»Oœ¸uë™3$)ÇÆª¾"þþÇ'$¼"Jez:ŸoddnN½.Ô£™Y½z3gÞ»wëÖöíãÆõé3fŒjû©WD.ÏȸÿÔ©-[&Mrq©YÓǧ~%Š€wP:€(Ç0›©¼SMÐ`4@Å›ûäÉÒ¥'޸ѨÑĉƒ7n¬^æÆ)S,xôÈÛ{Μ fΜ={öì)SnߊƒŠÅ{÷ZYùû/Z4kÖÔ©K–,]Ú¡ƒ¹9õÄØ¸jÕúõÍÍ]\¦OŸrdêÔ;~T¯LöùóÇÉ—ß–£j³±™9séRªNª¶·oE¢ädªGT_.\´¨GªGª­åó6¹<%%4tË–êÕ¿³Rµãà ­]P§PøøqzºBaeEõ¨ /J¥BAõHý ê­U׬ٰa¦¦·nmÞüòevvq¯ÅîÝÁÁ …ê+²uëŠ-[S¯¸–Võꦦóÿh4¡päÈ¡C›51âÂ…k×¶mkÞÜÀ@µý_¾"4ÚϽ:¿ï& tü—šÃápðÙ*åÛ_ZÍCÖ¶ŠäûahäŒ(/¶l‰Œ44:ÔÙY_¿¨â»wR©¾þ˜1|>‹Em14”Jß¾½?=]*õôäñØlÕòIròË–5hкõ AŸ>={vꔟŸ­í«Wb1AÔªelܨш®®))"Qròë×ÁÁ/_²XnnS¦Ðh,––Vp0uÏо}“&ÎΦ¦2Ù½{¥§wìØ¾½™YA+~ ‡ceÕºu¯^VV2YRÒùó£F½~=dȉ{÷~«þ‡ÒéѲ¥j‰Ö­{õjÑ‚zNÕIÕæéÉãFZZ¡TJ$AZAP=’É‚ ~¶/uê ÄçOº}{ttNާ§»»žÞŽºw/99-­råàà§OSR†¯\¹AƒfͶn ¾}{Á‚Zµ¸Ü‚’J¥PxçάYcǾzµlÙáãFAhi1™A©©…í§^ŸöíÍÌ~çõ(>¼›€ÒÐån+**ÜŒ 3@y”›«PÐéߟ_Ìf„B‘—'—$}É‚ÍÖ×g±¾<ŠúHÒܼ~ý%K‚‚¢£“’ÌÌttÌÍ›65ÊÏïÞ½´4™L¡HK»ukË–'Oø|joãÆ#FŒ¡§wûö† T=÷ t:‡3þ‚ææ—/Ï›·ví›7bqIõœ$,X¶,.ÎÇçðá;Fvt,˜¿¬*??6öðá;ôô|};t°´,*`L’ùùïߟ9CÕIÕö嵡Ó9SÓ:uzö¤zôk}¡Ñ˜LmmC¡ÈɑɊ»p6ÎåV­:hP¿~îîÔ5¯V-7÷î]ê),'¿y³yó’%¯^uîÜ©“z=ªí§^‘’z5Šï& t P¦!O4@ù¢£Ã`(•ªÁeuÖÖlvnnLLvvAæÜ\6ÛÚºfM}ýÂ9Ñ…c¾@$“‘dAL&—kfFe7V(òóÓÓÅb‚(˜wËdr¹ææ\.AˆÅOžÜ¼ùæê’ƒޱqÕª\®Dòùs^^ñó@$óóß¾ 4hùrÿV­,,Šž‡±pá¦M§OÏÛ¤‰……‘‘¹ù;))11‹»»×¨Q¯Þ¼yoÞPµMŸ¾aƒXLÕYp´\.P=*¬‘F£zôk}!I™L$R( =½¯ÃÿE36æpHRõár *FaÍYYOž¬\yêT~~óæõê©¶¿ð)h?õŠüþ«PÖ05Ýø1õÙЪ Ì•(;ÆŽ­U+#cýúgÏ„Â6mZ¶44Tjîßùò”)‹O™2qâœ95kšš¾zÚ¾}ÕªcûÖ­‘‘ ½{[X0ÿ{×vç΀ãÇ?~ìädi™“•˜¸jÕ¾}Í›Óé1jÔÅ‹;väç/^¼rå¢EÉÉOž$$´h±sçéÓlv\\`à!k׿æÖ¬Ù¨‘]JJZš…ÅÖ­wîLZ¯žžAdd„… 񬄿ñ Å8ðu ¹|Ó¦õëwî|û6++%%/oûö͛ǎ]¾|„ìì ºwoÐ`ذ{÷„B¥rÒ$êÃÔ´cÇôôÇÇŸ8ñŸ.ôð8zôȑ޽ŠŒLO'‚ÉÒÓïÝkР^½‘#«U›0aÙ²E‹FެQ£fͪU›7 •J‚Ø¿ÿÀ€ª¶ÐÐÿ]»VKëǽ{çÌyøÐÒRO///!!.N$ªUkÇŽ+ Z›‘q÷î©Sª­Õ×oÒÄÇgøðŽ+WVíYfæ³gûöedÔ®=nœ½ý“oPŽ¿paÈ9s&N¤^‘þ9pàìÙ‘#+W.¾çæFGïÙóàA~¾ÍÈ‘&&l6AÐél6›ýáÃÞ½Ô+âîîꪭMµŸzE4ýû PòhaaÁÁAA¶¶nníÚiº1Péë3™ßÊm`Àç›™‰D99B!I’$I*•J¥RI='‚P*U·P*ŠgÏ?¾sÇÍÍÃÃË«¨óFDB¡@’¢é+ñ§ØÚÚÙ9:ªo‰‰Š¢®ƒ­­ƒƒ³³¾¾±±¦Û e ÂКBÀêcoNNDÄŒ:¬\éî~ìØáÃ]»š›38ñ§¨ÚJ‡HôìÙôéݺ8СÃÑ£«V5nl`@ÿK¾-{òd¯^­[ÿûï”)gάXáæ¦«û­YÐÙÙ÷ïwìØ¬Ùʕӧ߼yút£F<ÞŸmWVÖ½{;6o¾jÕ… OŸž>­éëð5 ==%…Ï76þÖêTÔèêÕ#Gþ’› €²‹ 4«>ÿXjÙM÷4I5[4Òt”zzuëΜ¹n—×½{«WïÞ}ëVQ%UÇí?zþþ=ÃÇׯ;8.Xаáßz¦bܽëåµjÕܹuë~;ô¬*??!áĉ  sçþd›22<8}úÈ‘3gâãóó5} bû (HÁPŽaÙPUTšÌŒ(]tºžž«ë¨Q+WººnUÿÎJiŽÏß¿ghÑÂßð` ^2 a2ùüµkGâóT’Çóô¼páõë‡ÿ|›ŒŒ<<|||}©GM_#¨ØðnJÇ_óÙ6@E„9 P˜  Ye!]î@F(@A©ÌÍŠòñiÓfȧOsr4Ý€ïÜø>õšnÀßB=½†f¿‚{P‡‘JG @Ëd>lÞüäÉét]]GG&S"‘J©EÔJ‚\ž’rñâˆ=zhú:@Eƒ9 P|ªd‹ø4›dãûpÏê02@éø­tJJrrrò‚³gϘqìXPСCÔv™L&“J×®]±"0Pµ¼@‘‘ž~ðàÞ½»w“$I–\ˆ— ¢pÁ™,#ãîÝ;&L8þîÝ‹\¿~áÂyóFêÔiþü e²ÂãΟ œ“©ú¡L>ßÌL$ÊÉ ©eE•J¥R©,\bT©TÝR@©T(ž={üøÎ77/¯¢ÎñàAxx«VÞÞ}ú…AJЦ¯Dé¡Âб±11QQÔu°µuppvÖ×7006Ötëàï…Ôð7(þX‡ïˆÀßL HOOIáó¿µ^5ºz5$äÈ‘ßZ„4 s 4©Îûâ…PñTìåqÏê02@é@ ëܹcÇV­4Ý ø©ç‰Öt‹~Ýß0—÷  #” Ê1ÌYÍRŸ'ˆ™ÑP^ümi…pÏê02@é`jºðë0gÊõ`ôßÖ€òâo :«Â=¨ÃÈ¥3 àPÍ­é¶Àßîo=hÐð‹’“?|àp´´´µ‹Tf¦@–f``hhl¬éWß¾ vì¸uë‡RiÁ6¥R(¼uËÏÏÛ»oßsçRSSRÎ8°M›qãîÜÉÌT*5Ýf€²Ù¢ ô©§ª¨K ”}@À/Š‹‹Ž~ñ‚$I’ h4F+ÎQÉɉ‰?ZXX[W©¢é®Þ7‘(..(èÕ+--//WWCCCCW׿ÍÙìÈÈcÇÞ¾‰4Ýf€² y¢ t Ü P ¿ÈÔÔÌÌÊêßïÞ½t)==--)©¨’2™L&•RsŸÍÌÌÍ­­utttx{vó¦TZ«V¯^5jèè”V«0g*$è€ïÃ|ç_ƒ{P‡‘JÐ?pèÐÝ».ŒS¥ ›]°N74lÚtӦÇ;v4555íÔiÿþ+W6mjÒÄÐ^jc+æ,@E¥`œh€¿F€’‚{P‡‘JSÓ €_‡9 ð7PŸ™ü{/Y¸gu t å†êœhÕ-šn” Ìt¨x€€rF=茙’å>R¨Ø*Ì(_T?:Bè ¢*átpðùóçÎåææææäP[rrrr²³©íšî¬æ­[7mÚ–->H$šn T X6€¢¾h¡¦[߃o-”>Ü3€:Œ P:J8½sçÖ­›68°?µåÈ‘ƒ ¶ÿ©Nd^^TÔÆ7n¤¤Èdª{RSCB&Mš4)44-M¡øSç/¾‰—/3¦J§`KHȘ1ýú8ðñã—-(, N}ÑB„¤Ê¤ÚÐ,Ü3€:Œ P:J8t~~~~~¾Xœ———Gm¡žSÛÿLäò¤¤ÐÐÀÀóç;w>p`Ü8Õ}&&^^}û¦§ëèÐé$)Ïš5~ü’%ÖÖµk›šfg?{öàŸß† ›6½|yèP`à¶mgÎ|þܼy³fÕªEG¿|ùøqd¤PX©ÒÙ³gÏnßÎ`¤Xüþ}pðÆ¡¡Ÿ?kiQ5dfÖ­;cF`àˆNN EfæÝ»®[wåJrrRRTTrrÆMŸ>~¼‡Ç¾}‹mÜX·îøñÓ§·iÃç§§ïÞýüù§OfflØŸocS¯ÞÈ‘ƒ5o.“¥¥Ý¸±oßêÕ/2ffZZoßææÖª5p`@@¯^>lÝ:~ü±cÿþ›Ÿß«×ܹ;>|ëV­Z»v[­›ýg®4ü¶¶vvŽŽ¿v,5g7ŽEQF#ìPšt.;pÏê02@éø#‹æå E"‘H$úsP*³²^¼¸|9)ÉÐÐÇçë½4š––•U½zÖÖ¡P¤¤œ=klìë;c†¯o­Z::ILŒX+•òùÝ»wï~èо}~~½z>Ìå„HôæÍŽýûÇʼnÅQ£FvöåË‹¯Z¾kס¡T úùmÛFC†ÌŸíÚìÙoÞôêµÿâÅ5j\¾ìç7|øñãÔªÕ‡DDXXŒIÁbYXXXhkóùõë8~ü A•+³X!—''‡†Î˜éãsàÀúõÞÞzz11ë×÷î=gΚ55k;6~|ß¾çÏOzölppÆC‡úø˜š2±¨$@9¥º¥ø!iÜ,Ÿj‚Âþ4„žËÜ3€:Œ P:Š X^¿~íZXغu+W._®P(J¥R©P($I’$Éb±Ù,–¾¾¡!‡Ãáp8ZZZZZZii))©©yyyyAg±X,ÎË£¶OžÓ§<˜–&“ÙÛÛØtè°fͺurùž=ûö>MÕ@§“d^žL–˜xîÜÁƒ11ÆÆ&¸¸ðùL&ק϶m!!}úPõ]ºDÿaÒ™,1ñâÅãÇ?~´°˜8±ISSj{Õª;·kÇdޱq#AøûûúÒhL¦‘‘‡GŸ>4oN¯àï‚9 ? s¢þõp3þe•5¸gu t€nÑ¢eËÖ­©ÇâW×®]‹Mšp¹\®¶6µE[[[[GÇÄÄÌÌÔtÕªõëK:4ƒa`àììéÉã­[Geyf0T÷ËdŸ?_»F’yx¼~mbÒ§Ÿ_—.––,–Löñãöí‘‘ß«_¡ÈËKL´±ÑÓ«__¡®]›7oÆŒãÇ×­»téøqª†íÛ ‚ ètÇØ˜ÍV*³²Þ¿ÏÉ‘ÉÜÜx<‹  ©T.§ÑŠ—ƒNçr-,¸\‚‹ÓÒÄb…‚ ôô …B"II‘É8*`€9 ¿G}ÑB„Ì~ þí”}¸gu t”ð"„ê¹¶¶¶vA0úÏ`³ml||üüê׿{7-íëE¯][¿þÔ©%’”H23©€.A„R™——-Éd$Yp„B‘“Sø“L––vïÞ¹sµkóxt:AH$™™YY‰\®ZCV–L&—3|~½z^^&&iigÏž=M-{üøŠáá©©ßZfNW*% ?¿ ] †¡aݺ:ØØ…¡¡ Abq|üåËOŸÒhîî>>QØFøês¢5Ý"€òÿjàûJ8gpÕªU«V«V½º­­µÅÖÖÞÞÁáÍ›¨¨W¯þT' >ßËkÅŠ¦M¿Þcjڮ݊[¶ü\½zA2 ‚ }ýFÖ¬)Hì‘›KÕ¥§W˜ÌƒÅ27÷ñÙ·¯àg ‹ž=÷î ïÙSµ† nÜ((ѯßÑ£·o÷ëWx[Û>}f϶µ%‚hÓ&,ìÜ9ÕnØpíZhèW/ Ó¢S§Ý»CC;uR­güøsçŽ+ܲiÓ×µÀ¯QŸ¿‰êj~V  ;tèÒÅǧiÓ-Z´ ¶PÏ©ÌÑšîì÷•õö@i¢…ª¬~M §àhß¾S§Îõôôôx,BðÇ©§æ@(þ|àeRp”cX6 |AžhøsTS¾ ô êpÏê02@é@ ò!å—z‚M·Ê+Õ 3BÏPÜ3€:Œ P:€(Ç0g bÀ¢…ð³0ß~î@F(@”c˜³P‘`N4æ;ÃÏÂ=¨ÃÈ¥h€r s*õ<ј ø€ß‡{P‡‘JÇ @K¥R©Dòï¿÷îݽK=×t7*&ÌY¨Ø0ËßJ î@F(%€Þ²eýúµk]]jÔ8°wïîÝ©çÔv™L&“J5ÝeuryFƃ{÷N:p`»v>>šnÀ×TçDkº-ðga¾3T$%€NJJLLLlÜØÍÍÅe̘ üý_½z÷.>>:úÓ§¤$ê9µ}áÂ9sf͢ʗ\òò^¾\¶¬M›FHòë}“'Ï™sï^V–úUL¦‘‘‡G÷îݺq¹bq^^Áv¹<%åâÅ#zô(©¶ŠÅrù÷Ûò%’Ìʺwïôé¤$¹¼ M©©aa EÉ]?(?'º¢R_T³ž b`þ~sçNŸ>eŠ™™¹ùÞÍ›·hÑÒ¥£G6xðÎ>\]ÐÖ¶µíÑ£U+.7+K©$úau¹¼Zµ~ý\]õõi4‚ÉRSÃÃW¯ ŠŠâóe²øø¸¸Ü\'§+,èßÿË:e²ÄÄ­[W¯Þ¶íéÓ?}Ú³'<¼W¯¼¼ŒŒ˜L±xêÔÑ£çÏ·±qv63ËÊzòäî݉wì8uJG‡N—J.\X¾<88>žËMN~òäùóÜ\}}ŸÙ³×­ssËË»|yûö-[""òóóói´V­æÍ?þŸ,,X¬ÂvÈåÙÙQQ A¸¹ý÷‚1Œš4Q bݯٳÿùçÞ½ýû—,Ù²åäÉ =}Z.Ï̼{÷ĉ·lqp7nÕª¤¤íÛçÍ;räþýü|[[‚ˆŽŽŠòò :p`„êÕ˜5kæL±ØÊÊØ8+ëáÛ7‡ß¹óÜ9ss‹ d²ÏŸCBvíºp!6V$Š}ýšêˤIÿücaQ¯/|›úœh+Ë#¼‚P±ýÖ è;wnݺy3,ìòåK—FŒ=zìØï—g2Y,‹*O[2ÐÒ²±éÞ½}ûˆ pn°L–”Ô¡Cõê\.õ<8xÊ”E‹&Ož8ÑÏoäÈ)SæÏ6L_ÿÐ!‘H}N2‹eiéí=dHÏžVV::|þ˜1C‡zy±XÔ¼èà`?¿¹sÇŽ3& `Ò¤)SêÖ‹ËË#…"-íÊ• Ö®}òdÔ¨1c&Ož2eÂk똘—/uu==uuOš>}Û6¹¼ÿ)S&Nœ4©iÓgÏÖ®?ÿñã¯çj³X&&MšlÞ}J•wq©[×ÍíîÝÛ·oÞôðhذqcƒÁ`0²²„B¡ÐÍ­vm‡Úµ©òC†ôíÛ«W­ZNNNNl6›ÍfÓht:N§Óht:U²K—nÝzô¨UËɩਢ°ÙժحÛáõj=Ú³§H´sç¦M5jŒ³|¹Löñã¹sGŽ|ø`iÙ¥KÁ1\nµj]»¶o™›K®®Å¾dLsó.]tu÷ï_»vçÎÿ­RÅÞ¾jU&SOÏÒ’  #£&MÆŒéÚõĉ͛·lYµJ(ŒŠÊÍmÛvÖ¬yód²ÄÄ“'ÏœùøQW×ßßÒ’Ëe2õõûö=xðÊ•¾}¿u6--{û;w¶o—Ë33Ÿ<9qÂß¿aC[Û%KîÝ«SG(üq¿h4­ `­ŠF£ÿÿã:Å¢ÓY,#£=zõ*H9"“}üxèP¯^®®¾¾TY:ÝʪÿŽ öS}éÝ›º2––ßë ”<,”¢ÂÐk–5ªI64Ýø»àžÔad€ÒQdš û~?øKÍbîß¿G®]ÃÃÃÂ._îÛwàÀÁƒUËèë\¸påʵk&&¦¦¦¦õêÕªeo¿woPбc7mÚ¬YÉt…Í66NJ:r$446ÖÑQ$JIißÞÏ ‚Nçr--¹\‚(ÌïL!—çç''ki1™ÔOÅ;B‘‘qíš™Yÿþ'úøXY±X2Ù‡›7¿|IíW*e2 %%/oôèÅ‹'O¦ÓUMK³¶ÖÖV*33ß¼ %}}G©”J32$:ÝȈËe2 [˜ž~ï“ilܰ!“ihX·nÏžsçΘqøpV–Læêú3ýúzž7Iþ¨Ç4‡cbòömNŽTêÏfÔ¯T®­]ÐÕ£¨¾Ðél¶‘Qɼ²P4jÎn@•z0áNÍÂGPàžÔad€Òñ[)8¨ðñС#FøúnذfÍÊ•E•tppt¬UKWWOÇkݺmÛþ)ÉÐs.]ÌÍÓÒŽ]µjóæììŽ]\¨í †¡¡›[çΕ+ ……AW±8>>4ôñãJ•´´B=@ûߢ+•‰ê’”J‚¼<…B©$‚P*E¢øø×¯srär’”ËSRBCwï KHP(¾®“Á00pqñö¶¶.\8yòõk‚P(‚‡·mÛ³'&&/ïË#H2772’ÊmMQ*%’ôt>ŸÅ*^¿èt-->ŸN/,£TææFG‡†^»VxžoõÉ42rs;}úÔ©èè‚–‘d^^XXjªL¦Ú—‚4&…})ÙWŠ‚›Eø>Õ<ÑHÐQúz†²÷  #”ZXXppP­­›[»v¿SQfff¦@0vìðáC‡úûO:}º³³‹‹«ë‹Ïž=}ºvíŠAFFzzhèwîhºã IŠD/_nÙ2zôìÙC‡îÙsú4ƒ!ÅÇ?y4y²ŽÎÀ'O:9éèhºÅ§¯ÏdJ¥Å)ñàAx¸¹¹¥¥ ›Íbq8Ÿ>}üëîÞ°a«VTêžâŸ—ª­U+oï>}„B %EÓW¢ôØÚÚÙ9:ÆÆÆÄDEQ×ÁÖÖÁÁÙY_ßÀÀØXµ$æ,À¯ÁÌè?Aç¿Gùúw„{P‡‘~‡@žž’Âç›™©ï50àóÍÌ®^ 9r„ùó•›¡¡¡!ŸïææîÞ ÁÀ½zuëFåŒæpØl6{ìØ FŒ3æG –w EVÖË—÷î½O§Ëd2¡¯_¹²“Sƒ5j¤¦²Xšn!”5T¸ù׎ÅÍ"üՙѪ[4Ý®ò­|…#áoƒ{P‡‘JG‰ )Ӧ͘áççïðôiDDD„««››››Ífs8šîli`2ÍÍ;t˜6mР‡7lزeÛ6NÏÍMKKMµ¶ž<¹n]M·Êj¦³ê–ß IŸz‚O‚øßWÂh nnРaÃF4ÝÁÒG§óxÎÎǯ[Wôòe…zØAÕïS Öãú|ßo-BjP ª_Šh€rŒZ6DÓ­€ŠI}†ï߆Æ|p¨pÏê02@éø#)8 t`Ù(E¥é¨xYõpsÅë#üpÏê02@éÀ h€r s@SÔ0,¿ó£ÕÛ 3T<¸gu t`4À/’ËÓÓ¯__»vÁ‚ÐÐäd‚03ëÐaþüñã[´02b–ÒèŠ9  YßÏ]6øêò²ÙN€’…{P‡‘JÇ!±X"ÉÏÿô);›ÁÈÈÈË£Ñär’¤Ñ4Ý<Ð 33¥ÒƆÇS(ôõ™L:¾-ñ•œœˆ?¿=6ntsÛ¿ÿر âàAŸîÝýýõôΟ߸ÑÍMOïÏ·ƒš³€G( Š ãj6$”Ü3€:Œ P:þ @ü(ÒéÉÉ"õ3I>Àß'))'‡ H’$i4ssM·§¬‘ɲ²bc¥R5tu™L‹ ªUÓÑ‘Jƒƒ££³³e277==ëO·7‹Pöýì2†Å—lmî@F(ÿÍjLI‰HR¡P*ñˆG<â±à1%%'ß„ø’T(rrd2‚ Ó¹\&“F£Ñ˜Lmm‹ ¤Òœ¹¼èðlmíì¿ÿXÔ±ª9ÚŠzŽ£pŽÂQeù(Õ9ÈÔã¾}ûö:TT*ï?RåUkP}®z.kWG•÷£ŠSCyìŽÂQ8 Gá(…£pԯ݅ôî®nóæ¿STT={Ö®]¼„‡››[ZÚØ°Ù,‡óéÓDZ±îî ¶j¥T*•JeñÏKÕÖª•·wŸ>B¡@’¢é+¡*''"Â×·S§¥Kë×ß¿ÿر¨ƒ=y2oÞùó›6Õ¯_2)8ž?üøÎ›*Ulm ŒÌÌ4Ýw ˆ‚K0Ëþ6ïß¿{mhh``dd`Àç«—10àóÍÌ®^ 9rä¿ Åφàï‚Ð_ÓÑ©^½oßZµòó·oþ<3³cG’¼yS*­Ukøð5J2i‰¶¶ŽŽžžD"‘H$šî5üí„ÂŒŒ”“âM’û/­T*•Èø P\tº¡¡§ç¼y“'?x0þêÕË—„“Ó´i xx–dÀžšQþî]\\Tõ\u/– €âÀ=¨ÃÈ¿F¡P* --.·xðþ @Ëd …B¡éÆ@YõçÓ+X,/¯©S7oöòúsgÑÓãñ ëÔ©[·Q#™L&“Jsssr²²HR©T*›4ñôtrÒÓËVŠ€ŠïíÛèèçÏËË_aÜ3€:Œ P|t:N§3™,‹åæÖ A‹Å?V%GÉÍ€V(är¹<99>>.ÎܼR¥5 &“ÉÔô…(ßX,‹Í64äóML4Ý€+áOžÜ¸qñbDÄçÏS ŽQÑq7·æÍ;urqiÒ¤];:Á@0 ¢+¹¹YY™™.ìܹtiŸ>“'¯\éäÔ¤É?ÿ¨—¼yóüùC‡\\š5kß^WW_ßа¤ºÁfëëóùÕªI$™™oÞäçÓõô¬¬Ìͽ½ "=ýøñÏŸåò²–éÚÉ©Akk=½ÈÈÏŸï݉¾Õ>/¯J•Þ¿¿?!áéS±˜$[¶43c2ÃÃSRÊ^ 4ÙÚÚÙ9:ÆÆÆÄDEiº-å ®Ûï(¿W¯,´¼,´Š‚Wçw”ß«WZ^:m( =…¿Mùý­+¿-GOK®ÛïÀÕû5åýº•À è»w/\8xP[[OÏÐðûõxxx{÷î}íÚÑ£[¶´nÝ·ï¸q%Ñ:ɬ]»vmïñãÛ·32TÏŸ••˜˜ž~ÿ>—KU«V«fffjš””’B…zét6[[{ôè¦M /\¸u+%E_ßÎÎÔ” >ÎÉ©\ÙÅÅÄÄÒ2%%9Y¡0334|øðÙ³ìlj{hèõëïÞ‘¤¶¶®n³föö\.‹Å`°X$™˜˜šzíZr2IÖ¢……ÅÇ/^deiiii5h`cÃå¾{•˜’˜HM›²XYYÕªñùL¦H$߸'©öÏg2 âÓ'‚ r¾’äƒr¹jâ”æÍëÕ³°àróò$‘ˆNg±bb¢£SR’“•J£zõjÕLLÌÌ~¶ïII »v½Ïd6jä訫Ëfçå)ææ,–TzñbTTNNV–RI^^®®&&J¥H¤Tr8<‡sõjDDb"òŠüÍèÔÿ ¥R©üÙÇøø¸¸ÈÈß¼yö¬V­† Û´Q/óìÙíÛ!!"QNŽPH’A£Qå©cí¼ªJ%“ÉáÔ®ÍåÊår¹z™L"yû6;["‰Ž~ÿ^(¤‚¸Ô^™,??7W¡ Ó B©T(¤ÒgÏÞ¼ÉÌtuµ²b0ß½KK»q#>>/O*åp8ÕíR)A0®®®®|>—–™›[©’££‰‰µ5.“‰Ål6‡ãînd$“=yòúuJÊ®]¯^)5j88òù$)•ffÊå E\\llZÚµk1199ê}|ó&?ŸÅjÑÂÓÓܼY3++G(ÌÏW( Êne•œœ’òêUzúõë/_¦¤øøÔªÅá0™r¹Lók}ÿüY*uppu5117ÿü9--,ìõë´4Ë‚dz±a±HR¡ ƒº×®½ySp¬­™Ìß{eñXv5=L@yõß h*x«ºC HNŽÿ>2òß33SR”Ê‚4J%I’$A¤§'&~ø@•7447·±‰Ž~üøÎ %%!!7W(LOOHˆ‰yþüǨ¨'OÚ¶4hêTª|XØáÃ7òùææ•*1 ƒAA§Óht:Æç››ÛØT­Z»vƒT™¢:@§+A£}»_¢Ñ¨€µR)—¦® ŽP(är¥R.'…"&&66#ãþýœœ‚2õë+•rùÛ·…Û™L]]#£ºuutŠK—rrär©T*¶l ¨£7V(d²/Þ¿‰rrd2’d2ÓÓE"‘ˆN×Ña2 æ‹„…U[¥*,ìÊ•èè°0‚ ƒÃárgÍj×ÎÂâàÁ+W>Žg³õônÜHHÈÈJåò‚^)ff––&&4Ú§O>PÁù_éû¸q<ž\œš*“Édr9Alßüñã¿@L]]ƒ˜˜œœŒ ¹œ:{v¶@£é_m€¢•ß/.•å÷ê•…–—…6@QðêüŽò{õÊBËËBþ„òû»]~[¥¿!¿Wï×”÷ëö_Z}ž£¾¾©©••‹‹——OQ''øðúuxxPІ ññ11/^Ô¨áêÚ¤I•*NNe¢¢<¸r¥zu''OOÕàjóæ½zcn^¥JÍšßoâ÷ç`*ùùyyÑÑR©©)• â˲t:‹åì\©•˜H’TÕä4ZAj j6ñ·ÊPÿWÝN’R©T*‘Ðh †¹9“I’ÑÑùù$I£1L&‹¥T„yU¢Ñ ê,8£zõ>:8p¹4Ú›7b1I*b±H”’B£YXXX0™$ùîL&•êêÒé$©Zƒ¡PH¥ùù …R©PÐh¿Úw™ŒF£ÓML ’Œ¥¶Óh4ƒA$)“I¥R©ê Žb³i4‚J‘¡àïõ_ *ú³¦¦66ööõë·hyçNHˆzw÷Ö­Y,.WW— VZYÙÚ:;SÇþÚy¿|”É$’{÷^¼‰ìí9œ/û¢§geefÖ ®.5'X¡°±áñ¨´$I…„©Ÿ©Ÿ¨ÐrÁóÂG*­º].ÏÏÏË{ò$7—Á¨[·jU--¥’$éôjÕø|33ã[G©×F…sut¨6}»ÚÚZZáa’¤Ñ¤Ò¼¼Äb¥R.‹E"WWcãÂ~)•4šR™’’™™–&•R3¬µïÏŸçå±XîîU«r8,–RI’ææÕ«››×®Íáu¨+@í¥®uJâõÅ£æ5=L@yE  ºt)3ÓÑñw*’Jóóóòþý÷ܹݻkÖlÔÈÛ›JÊ‘™™œüéÓë×wH$bqnn«VƒϘ¡éŽ@qÍ™óÏ?ææÅ)ñàAx¸¹¹¥¥ ›Íbq8Ÿ>}üëîÞ°a«VÔ\û⟗ª­U+oï>}„B %EÓW~ÌÀ€Ï73»z5$äÈ•¿7Ï‘Á`³¹\CCK˪UïÜ9qbË*•ƒÁd2™vvîîmÚÔ¨áæÖ¢ÅïŸ Ê¾ÿÐ%õE{{{OOoo[[w÷6m23“’>|04´°¨R…Ng0˜%|.(Ëþ Ëd …BQ’Óh<ž…EÕªT­ EI×ef%”!+WŽ7mš\^½º‘QzúÛ·LæêÕ7U^.OO¿~}åÊC‡=¢Êwè0þøñ-ZDfæ£G'NìÚuìØåË<Þ¸q;vŒU¹2›­é^À¯û¹QB.§ÆþýgÌ8w®S§Ý»À8ðw‘ËW®œÜ]UP¨¨5$A”Ä(ñ_ÚÉÉÚZW÷ßß¾ÍÊÒtÇ ¬ F†â—çr¹\±8//7—ÅâñØlO_ŸÏ§†,ø>ÁÐÓ‹ q$åò¼<=½Â^½<‹ERåe2‚À|g€ŠègG €ïÃÝPQÕq€Š*PãF’%1Jü€îܹ~}kkêQÓ€²§x3jkÖtrª_ŸN§Ó jæ³™™RY¹2I’$¾]ñ#,–¥e»v;w§¥5iÒ±£‘QFÆ;{÷z{wèм9A„TúîÝÆ}û²Ù£F}„B %EÓWBóòò"#-’ÉçÌÑ×ÇšÔð5ŒPðùffW¯†„9ÂÔtc ¸´µkמ3GÓ­€² £”5˜ÐðGü‘«W.]úâÅóçOŸ:;שãê:iÒôé3gjº³PŽ?wîòeêyÏž;·m«é”…B ¸ysÑ¢ –-»téÁƒårkëÚµk×¶±ÑÖf0ß¼yüøãG…ÂÅåСë×÷ïww×ÓÓt«4¥„g@¯\¹téâÅ‘‘/_>¾sçþý‡QÏ©íšî,üYª¡ç¢¶”o Ÿß¬Ùüù»vmÙ2p AèèÔ®½lÙîÝû÷ïß¿ÿž=W®Ü¼yæÌ‚Mš2šn-€¦•púÍ›¨¨W¯vìØ·ïàA6›Íæp¨çÔöåË—,Y¸PÓ]€Ò :÷ah¨xh4:ùß7Jét­p»–Vµj>>³gP¹2‡£évhV  .œ3gÖ¬aÃú÷ïÓg÷îC‡Ža±X,6›ÚK=§¶L:}:U¾äº—÷òå²emÚ4jD’_ï›lkëäÔ±ãÖ­>PïqHÒÇÇÕÕÑñËí …D’šzÿþœ9TK>ÌÉ¡Ú*‘üèìr¹Tš”tçÎìÙ¶¶uë¶i3eÊW®Ü½{ãF­ZööŽŽµjµjµjULŒDBÑÑëÖuéâì\³¦»{ÏžG~þ|ð`—.nnvvvv®®íÚmÞüáÃÕ«£F5nìà`gGµ³Cª-yy/_Μ٢EË–sæhú5€’ô[èyófΜ6íýûwïââ¶mÛ»wÿþï—§‚ÑTyêØ’è‚¶¶­m­Zq¹YYJ¥ê¹¼Zµ~ý\]õõåòÄÄààŋϜiÞÜܼ 8N15mÕjÚ´œœtuétmm[Ûׯ|òDµ¶ŒŒÿ½~ªMG';;*J"‘Ë ö3™FFMšÐ± #À_';ûÑ£~ýêÕst´µµ³stlÔhР]»Þ¾ÍÏ'I‚ ÑX,mm ”J6»R¥€€'ÂÃ-Z¹rÕªþý ߾ݺ5((6¶gOwwcc&“  ]ÝjÕjÖÌȸÿøñÒÓ££·mÛ·ïåËž=ûöurÒÓ£Ó ‚ÍÖ×·³ûº-4š¶¶zÚƒÃ10°°°¶¦ZR@$zýúGg—HØl##këJ•B[ÛÁaÒ¤éÓû÷oÓ¦Q£æÍ­¬X,‚ɲ²"#…B©” ¶n=qâÝ;±˜Ã©TÉǧiS3³¦M2ÄÇÇÇgÀ€Q£¼½ÍÍ5?¾}{KKê]™D’”$“„Tš˜xåÊ«W\n›6ýûkú5€’Tä"„þûopðùógÏRÏ9‡ÃÑÓãñx<==¢A´€IDAT==/333S ؽûàÁ  ÕYϪH’$IröìiÓ&O®UËÉÉÙyûö½{6lÀ€¾}ìÝ»{wƒÁ`0rr²³³³Åb±X,vw÷ððôlß¾S§.]ÜÜÜÝ4ø^'´´llºwoßþÖ-@¡hÕÊØ˜Á ™,)©C‡êÕ+UR*³²ž? IJâó{ôøúhMKËÚº~ýJ• ¶èè¼y³woD„@м9UÛÝ»·o»¸tèàíÍå²X E“&›7wì8n\fæøñ£G÷èÑ®]:&&Èðð·áñê×?|¸p±Á¤¤;wV­yòÌCCÕ24F£=nÜ„ Ô^ªüðá¾¾cÆtíÚ½{Ïž¿ß 6»Zµ±c»u;|¸V­£G{ö‰vîÜ´©F1c–/W(Šü|…‚$‹w“¶ví AÁ!£FÔÆãM:p  ‹EÁbÙÛß¹¶}»\ž™ùäɉþþ ÚÚ.Yrïž››¾þïÞ @yeaѸñäÉ—/ß½û£’L&W£†…—K§×¨±mÛ½{kÖxzòxÔû‰¨¨ððׯ­¬Œ32LL´´èôD¢&M\\ttB¡ÉÔë¤ÞIJ$iiùùßÚ$I‰$+K*-L4Xœ³[[ÿ\kKKmm:=::;ûÇcÇ^¿ÎÎöôôðàñŠÌÌÇOž|ú´R¥^½¼¼¬­ 8thïÞØØú÷4hæÌ€K˾}7oÞ¹³J•oMl€òë·ÒFPáã¡CGŽôõ4¨W¯îÝ‹*im]©’ õÙ8U¾¤BÏ…Ølc㤤#GBCcc##CCSRÚ·§ö0††..ñx))ßÊÔ,“%$„…]¼OeN37oÓ¦{wÕÚÜܨYÕAryzú½{Ôs&ÓаnÝž=çÎ1#**+ë[·€P‘dÁ»‹Âô|ß.§ú¼ð'Ç«]{̘*Uº|ÙßâÄ+Ž¿~ýÞ½ÿ½ukÉ’W¯h46ÛÀ ví!C642 ™5kÕª#GnܸwïÒ¥C‡¶oW?W<“IRiRÒùósç®]{ófhè‘#+V,XpæLb¢TZІâœÅ¢f;“da »°ýêý5ªm[KK6[¡HO ›6mΜû÷¯_?q"0püøÀÀ˜mí‚#ttìí‡ éÙ³rånßÖÖîÑ£iS* T,%·¸[·ž={÷0`ÈaÃ22ÒÓÓÒÔËPÛû÷ïÑ£kWªüŸèL—.ææiiG®ZµysvvÇŽ..{ØìÊ•{ô˜8±AƒÛ·SS¿ §¤„…­^}üøû÷ µ…Å23kÝZµ6}ý¯ž‘dnnd¤j†h¥R"IOwqáó©ÒPQ)•YY›7Ïž=w›9oÞ„ “&M›¶xñ¡Cªe¥Ò””ÏŸ©w yyÑÑÓ§/XPº¥Ñtu]\¦NݽÛޞÉŒ}„B %EÓW ìÈÉyôÈÖ¶aÃ… .\8ujôèò‘¼B©ÌËûôéùó˜‚ppprÒ×ñ"7—ÇkÐÉ *>ßÌìêÕ#GJø NTˆYWWOOOoøðAƒúõ[¿~Ë–;¨E5Ýqø³¨•ßcccb¢¢T·PÏU·Àï)H‹¡š£<¸tÉϯwïI“î݉ø|[[‡ðð ŽÓt»àO)ê¨póîÝ!ô ð·Q :@É’JSR.] œ5kÅ ‚É_ºtÍšàà””ò°&A•*VV<“I§3™ÆÆ-ZhiiºMð'ý GròçÏ »woݺiÓ¬Y‹þé}üøî]\‡Ãáhi™›[YY[kúüí~6GIÍzF €òH5Çf@S!àÒ =S*W®V­F „žÊ/¤Ú Åb±ÊÃR ) …Rùó™†zµj¶¶µjiºPveggeed”þyuttuy¼ìl¡0=]Ó׊+3S HK£b;´ÌÌŒŒäää䤤„}}CC6›Íf³ :FÓtS@3òòòó¥R‰D,ÎÎær¹\mm----míÒlCFFZZR’P˜™™‘Q¯ž‡GË–š¾*ðcÝ»w劑‘‰‰¹ùh™L&“JóóÅâ¼<¹\.—ÉHR©T*5ÝTÐ 6›Z ”ËÕÑa2™L«ôÛ@’$I’AFFJÊû÷qqHèPT«V£F­Z††FF¦¦ÿ 5Ý$€²+..:úåK™L*‹µµuuõõ+W®ZÕÞ^Óí(똚n@YÇåêèèèT¯noïìL’¿²~”JE"ƒAƒV®œ7ïÁƒÀÀ%K˜L}}ªU3flܸm›M’ùùT«._NIÑÖ¦ÎKµjÖ¬ºuõô4ýkðcRi~¾XlaQ³f•*J¥B¡P|¿«†¤©’ZZl6—K̓¦2>Suåç‹Å"‘zîîîî<|øð¡êÕ2T¹¹yy"õóÿ3<•©L~~}ûZ[ /._¾gÏîݘ™1™ßj:ƒ¡­me¥££T …ªÛ•J©T P(rs?Î̬UkÀ€ÀÀC‡.]š7¯AƒøøƒçÍ[½úÕ«ÔÔÏŸ©íܹsäµ÷Õ«OŸÂÃýýŽ370`ܸ¦M«W×ÕU]ì0##99/ÏÙÙ×wòd??ÿ€€-ŒY¬ÂVEEeeDß)b±\Nª­R=/Õ*MÿÂW^^^^NŽR©T*Ô£»»›[½zE=ReD¢¼¼ìlGKKG‡Éd2 ¢¿ZZ\®ŽŽzª¡g µEµ U§jmÿýïìÙ½{wKK{ûvóæíÛÙ¿Ê”cÇ‚‚²³‡ Û½ÛÝ}Ù2±øíÛ°°³gÏž½w/##771ñÙ³¬,…ÂÅÅÄÄÛûСãÇåòöíûö=ºjU33#£Zµzöœ4iäÈš5ÓÒ‚ƒçÌ™7ïõk}ý:u*U"É üüV¯ž<Ùё͎‰ñõ=ûôi''++G($É ||¬¬ê×6¬M›½{gÎì×oÀ€¬¬Aƒš651!É7oæÌY¸pÿþÁƒŠœœ«W}}7¶·W(Âаrew÷öíÇ[¼xúôN¼½?îÛ·}ûöí ÂÆ†jÕúõk×.^LryA«˜LGGwwê¼T«4ý P\>¼mkkoïìL£Ñh4Ú“'Ïž½x¡Z¦n]gç/z÷.:ÚÔÔÜÜÆ†Íf³ Ö´´´¶®Z•ªÓÎÎÁ¡NÕÚTë¡¶S³§©% ©:kÖ¬]ÛÍ*CËÌÌÈHNÖô%ú«W÷ë×­›T:jÔ¦M'6lhj±}{ÿþGŽ˜›ïÜyùòÚµ..::šn'ÀŸCåqf2™LËÔÔÌÌʪ8G%$$$¼{geecck«¥Åáp8êuZZZYU©RœÚRR’“¨|ÐÕ«ÛÚÖ®Mm§çà²éÖ­wï {{SS.—Éd0\]=<ªU30àó«VÕÓ£RqTdÖÖÕª …BazzJJrr|¼jZ ÕG…B¡Ë“““’>}2337·±Q=«ÖIÕFUTTmYYYYU§j=åx4P¨$‰D"‘$%%$¼{'‹Å¹¹‰X,™šêèèèèëóx††FFE…žUåçççççgggggfŠDÙÙ™™B¡@–Æáp¹\.—«­­§G…ª‹ª h€ E"‘H¤Rj†²\.—Ëål6›Íá0™L&ã?ů­`æ´\®PH¥R©DB-3H§Óé ‡ÃáäVÇÔô¥€’ôý ðÏb¨øÙšËqh(Ëþ›““-&''&~ü˜—'åäÈd2™Tªéæ@ÉÓ×700227·´´±ÑÓãñ ÿÄYþ @üøþý›7¦¦ffVV&&&&4ƒAÇüh€ H,Îˉ޽‹Š20àó+W®ZÕÞ¾dÏB{øðîÝË—MMkÔ¨_ÿË]ÙÙwïöîíåµ|¹¿xøùónnñâÅ•+‡­X1oÞš5oÞøùW»ö–-ë×GD¸¹MºbŦM¾¾ÞÞA’99Ož,Xв¥LððaÁ±._~ÿ¾–VíÚuéÒ¾}ÆFF,VÁe²””76o^º4.NGÇÞ^"INމ‰çñ:t œ0¡U+ÕV=qþ¼j‹Šì삳̛·jÕÓ§cÆÌž=a‚Tšžzútrò¾}[¶4i2þÖ­IIÕª¹¹™˜0nnÆ忦¯O§„R0|ø¬YÔÞŒŒˆˆ˜˜9s¶m |þüôé•+fÎÞßôè#Gжmi´‡Ožtrš?ÿÀ>}˜ÌÓ§÷ïÏÊjÞ|Þ¼~ýêÕKL¼xqÍš;³²š5[° W¯*U.] è×oþüààwïØl>ßÁ¡M›€€Ý»7m>ÜÞž är¡ðéÓÓ§W®Üº5-­~ýQ£úõëС^=:½èž:µr¥¿ÿ¬Y§O¯^ñòe½zLæ·^Yw÷Þ½6œ8qÖ,.W$úø1**1ÑÚzíÚÕ«GÎÎ~üxÓ&ê*éëDf¦©©¯ïòå£F¹¸dË– ÚÛOº~ý‚ƒ{y͞ݱc»v2YÕª––úúºº .\8|ø®]&,\˜œlgW¿¾XldÔ¦ÍܹíÚEEùúöêuõêÁƒ7nlÚ¤éh;6[.ÏÉárµ´8œ’­™vãÆ•+'OV©R§Ž—×—»¨0eãÆ'::N›¶lÙܹýúµj¥©K TŠD11·n;·ÿ‚/_^¿þâÅ—èò#//2ríÚÆ ŠŠ 5jÈuëtu?~þ|ÿþ?yvê•mÒdúô£GŸ?¿}[ÓW4IW—N—H :F+Ùš™Eçzæñ5:zôÅ‹G4Ý}‚ :]GÇήyó¾}—,iÞ¼o_M·çwÈåBá‹ׯÇÅÑhþþޱ±­­‡G­Z|>§Tþùó“$Ijú@Yñk¡g[[;;GÇØØ˜˜¨¨¢ÊЂƒƒ‚lmÝÜÚµÓt7 ´éë3™ßž¦ü5*謾½¨04–€Ÿ¦t.*0ôÿ)•99¯^92}úŸ>Éd?w´T°dÉœ9#F´lÙ­Û† ÑÑbqéµ\$êÒ¥aÃví~¥å?ãûi7T}'M-UçæÖ©Ó¿ÿfgl•É>~ܺµ]»:u:u"ˆ¬¬;wz÷®[×Ósá¾}ëÔÉÌT( k oܸsG(üòXÕÚB©”H‚ òócbV­jÕªmÛ™3ïÝ+Ü›•õðáÌ™ æçݪ¢Ú-“}ú´m[A ‚ D¢gϦLiÞÜÍmÔ¨ï\ ºž^­ZíÛwì(—ÄÏeIÎÎ~ô¨víæÌÙ¹óÚµS§Æ··çrKà•,:]GGKK$‰~¾åŽ\žœ|îÜ€:íÛ÷éSñ&ðM&ëÒeíÚØXêw¤(çÎuïîî>rä™™$I2YË–þþ"Ñ—å$’wï6o:ôðá‹Û…"9Yµþ„„={Z¶T¯_©LK»p¡W/Wׂ…:ÅâׯgÏöòjÐ`ܸW¯æÍkÖ¬Gâãår‚ ˆéÓ7mŠ‹“H"/ÚKmÏË‹ŠZ±‚Úûí~ݹóìÙÒ¥·m»xñ«WJejêÙ³>>uëvìxùrzºRù½>J$qqkÖ´nM àg©‡ž©-%˜‚ƒF+LGM=§ÓMLZ¶\²dåÊE‹ÂÃÓÓ ‚Ð4“ÉbÑéß>– ‚$¥R€ D¢¨¨íÛOœÈËk×nÈzõþß<º¾~:C†tìøæMnîï\’¤ÑØlƒœœ'O6ož4iĈ™37oÞ¶mÍš;?ÎÎþöâ$™Ÿÿþýñã[·nß¾víÂ…#G޵eË£GYY%d²””°°ýûOœ¸}{÷îõë÷ì MI‘ÉB©T=ËÂ…#FŒ£T*•99QQGŽLŸÞ¹³‡GÛ¶¡Pdg¿x4u*µ%2òСI“:vôôlÛvçΠ ]»nÖÌÕÕÇgÖ¬«W…‚ $’Ož\²dôè)SÖ­ÛºuëÖ˜˜¼¼¯[¯Tæä¨Ö¶uë’%&¨Ö¦ÚÇ%KüýçÏWí£R)—gd :yòòå›7ϙӭ[—.ÇïØqÿþúõÇwêÔ´i×®g΄†._>mÚóç_†{ïÞݵkùòU«î߉¹ys÷îµk%ªE…ןº&E_™,)©aÃöíml8œï½¶'N¼{§§×ª•žF,I>ztæL||ÁÇ×C"ÉÊâpªTáñX¬âýÖää¼y£Z¿‘Qƒnnß®Ÿ h4‚(è IÊå2õq@PеkáåÕ¤‰™“IèçW£‡“—Gí¥¶kk;:NJíýv¿.]ÒÒ7.4ôĉiÓ¨/5Ðh$©PäååäH¥ßï#‡cmݾ}ãÆÉɘ'¥¡ÄRp0™FF-[FD̘1cFAúëp3åÂ…Ý»7mÚ±cË– Ö¯Ÿ5k̹\(ŒŒŒŽ–H ëÖ56f³UË³ÙÆÆõë¿~•õsó6óóöîݼyéÒ¥K·m#ˆÁƒ·l™5kÓ¦ ÐÓ?~öì±c}}Ž›8qõêØØ¯ƒ‰Ô\ê  qã6o=zÔ(ÿÉ“ÇãñNŸž6mÇŽ‚2,–™YëÖƒõèѤɰa& Ú®™‹•Ÿ­z–É“Ç×וJõô½½;tàrÅâ¼<‚`0xMO—J›534,˜õ*•¦§GDÔ¬iaѪUáüÒÓÒ²¶2dìØ™3¿<{NޱñäÉÖÖS>?'çöígϹÜÞ^W· ¤\ž’ríÚÉ“Ÿ>ikJ¡­íä´råÕ«áá?:·\.<~Ü¢…µµƒµ…˵¶nÙ²ð,ß Í ÷l¶±qݺöö<“ÉãÙÛóx †T*Êd Å™3Ÿ?N˜P½:57– ˜Ì¢j,¬Á ¶Ö¦ÚÇI“Ì͵´´µùüÂ>æå½zµgϵk>4lؤ ›M§S¯F§‹ebâéÙ¾}›6•*q¹ô|˜A]“{÷ ¯?—K-[òù99K—\KKæ¿“ÅI(ÂçÓéyy‰‰yyr9A0™R©ŽŽƒÃ×s€uu—.ݸÑÙ™ bذ¸¸•+Û·ïÞ}Ð '§[·Nrw§~' 1ººÕª©Ö/—‹D êõËåIIÇøñã… ÏŸoÛ&•vè°jU‡Ý»ûùq¹ÔïcûöË—Ÿ9Ó¯ßòå­[»¸øø¸ºž8Ñ·/I„–ÖÙ³¯^%&J¥oß®ZÕ¾}·nƒ™™Ý/jüÂ…&&C‡^¼xýú°a-13+ìãèÑK–DëÖ..ݺQ}ts+;IZ üÉÉÉÉÉÉQÝÂåjkkk3™ FAüQÕ/Ì€V :“¤\®T’¤R)“)•TÊ OÏ©S×­kß>.néÒ¹s‹>ö¿ÐÙl‚ÐÑqt5ª{w.÷Ò¥ýûŸ>-Ø«Tfg?¾oß… ª¡áŸiá×<<ôôÒÓoÞLH(X$03SO¯Q£:uøü/CŸL¦¡¡‹‹“‡_T„$E¢ØØsçBB¾ß&“ϯ[Wõ,bñçÏׯœ…Fc0´´¢ mF~~RÒ¿ÿfdw^ª›—âÄ£G Orr~%©‚jOžŒˆÈÈPícBBJÊãÇ{xT©ÂbI$))ùùryñ? ®˜\ž—'“‘$uMT¯?uMŠºþÁᘘ<{–‘ñ£|Í=zT«–“síZllN•+™F«_¿KkkíÇ‹¾yS¡È̼ukÕª™3÷ïÿøQ"!™,''!A.çñêÖåó¿äƒFÓÓspP­_ xøðÑ#Õú¹œ  .×ÂÂȈÉ,x år‘(9Y&ÓÑ©Q£E #£œœG gËåúúõê›™¹¸P{©í2Ynnb"µ÷ÛýêÔ‰Ç{öléÒÅ‹zöÔ֦т$%’´´””ü|¥Rµç*ì£Tš‘ñø±‰É÷“š|›X,çæ&$|øðæMLLTTDDnnV–PH’ߎÊ2ìׯ[7##KË5¾Ü%‘ÄÇŸ<¹ÿÝ»žžƒõéca!‘¼xvêÔÑ£—.ݺõþ=‡Ãá$&^½zãFT”@ ¯_¥Š··››‡ceÕ “SFÆÑ£J¥§çˆÇžrëÖû÷õê 4l˜¥¥–VÁü\—:uÄâÐÐM›‚ƒcc_¼¨UkèP?¿¶m--óóŸ=»paÿþóç##i´úõëÕóôlÚÔÉI$;véÒcÇ>¼sçÁƒÔTGÇîÝÝÝ«VÕÑ!¹\(|úôÂ…ýûÏž}ú4/ÏÒÒήF KK]]“sçfÍš7:ËÕ«§O'$øøøøtè@£±Xººii—.­]{ëVjjjjv¶–VB¿ÿÞº¥§gbÂ`\¾öä‰DbfV³¦…E|üÕ«g΄†l™5«_?>ÿâÅùóÏŸü8::336öéS±ØÔ´fÍúõœªW×Õ%É‚¶>úäI۶Æõérð UÛ?ÿŒ¿`ÕÇ+WW®|ð 22.ŽêcóæNNUªŒ1`ÀÌ™™™b±\®P¼~}ãFJ ‡Ãbݽ{ýúÓ§yy††•+wêäî^0×»Nyy÷î8°{wHÈû÷ôë×·o½zuêäçS×ÿñã‚úõgÏž7¯m[-­/gq3::+WîÛ÷áC×® 3‹˜¯_µjƒzzoØpìØË—Ÿ>=~ܧŸ_Õª‰Å·n-Y2cÆÅ‹Ýº Ö¾}ZÚ­[Û¶mÛvåJ\Ü«W÷î‰D͛ϛ7cF½zŸ>õ葞^§N•+«¶ƒN×ÕU­ÿÖ­ÏŸkÕòõ]´¨{wªþ·oétssÏÊÊÍÍÄ$.îðá›7_¼¸zõìÙÏŸëÖ:uÞ¼aÃÚ·W*ÏŸß°!8øíÛÏŸŸ=sv2Ä×·U«ªUÍÍœœÅâ]»Îž½sçÚµóçÓÒ<>)éþý#G–.íÚuöìwîÜ¿÷îíÛ·m[¼xüø‚´Ô2Yjê­[ë×ûûïÚµsç–-›6-\èï?sæ† ×¯+•"QLÌõëΘѼ¹³s§Nê-–Ë33©³tëV¯^µj..»v­_?w®¿Ÿ>†„$%}çRÐõôjÕòöîÐA.ÿ:UöˆÅ11ýúÍœ¹bÅòåC‡zx³X¥ö"Òut´´D"‘èç[þg‰ÅŸ>]½%/…¹ºóç.œ:u×®ððøx‰äÛ}“H>}:vlîÜaÃ&O^¿~ãÆE‹îÜÔÏ(“}þ¼¿——‹‹½½½½›[íÚµkwî¼té›7ùù¿Ò6ê¼Ô'M920ð[ç%Éüü1cüý/Þ¾}ûö5k/öõ1B.§ö‰D‘‘‡M›6a¼yýû÷ï¿jÕÝ»™™TÔöåË7lX½šÚKmWí¯êyåòôôë×.\¿~Ë–õë§NíÛ7 `ÇŽÈÈ¢û¾dɳgo߆‡oÙ/‘”Öoü=~˜šÍ¶´l×®sçÖ­  Ú´éÔ©qãwíÊÉ0 W¯Îƒƒ·m»s§eK‡[·¨Ð™¡¡ŽŽ­m›6}ú ¤­MÍ›Wªd`@Ý»÷ëצMµj††#F4hÀãA(•Tà+??&fýú¾}—,.¼|yéÒ† B©ÌÊzøpöìþ‘JutîÝkÑ¢sç¶o_¿þÕ«ot†ihèéÙ½{ÿþ­[ïßì˜L6|ø„ ŠDÍšM™Ò¾ýðáóçOŸîí½}{Ñý¥Ñh´Ÿ¿Œ2YV“I§3††nníÛ»»kú…Õ<¹<9ùÊ•Y³6lÈÌ\²¤iSGGãçêÉöìÑÓ1âØ1/¯J•8œo— X½:9ÙÏïòå š7×ÕmÕÊßÿéÓóç×®usÓÑ)(§TJ$¹¹UªL™råJhh¿~•+³Ù¿Ú;…"9™:ïøñ'OÞ½ûùóž=íÚ ´hQ«V×®­]ëæVpÎôô°°–-§N1£[7 C,~ýzöìׯóòòòèô+ÆŽ=w®V­C‡öï4èÈ‘… ÃÃ32äòF8œsçjÕš<ùÈ‘+U’J£¢V¬Ë ÏKõwîÜwïºw4hÑ¢ÆW¯61™3gÊ”™3ïÜápRS--»wo×nÆ ‚9òäÉïõ½fÍ>}öîýôéàÁ!Cll˜È %äRp¨†h©çtº‰IÛ¶Û¶=yÒ¹sƒ#F„…¥§+A§³X,þå±.ìÞ½iÓŽ[¶lذnÝ”)½{ËåŸ??pè‡3sæ”)žžÿo]_¿~ý)S.?'çöígÏ‚/Û«PçÏ¿{—“³cÇ–-›6íßút\œP˜žþôé÷Ï-— «ž…˵¶nÙ²à,êó¬ÕÃúl¶±qݺvv<“©§ggÇã1R©P(“)çÏ'&òùíÚÕ¨¡§GÇdu k£æ«Ö¦ÚǬ¬K—vïVí£P¨«ëåU­ZtôÙ³‡<šš*‘(•A£ÑéÁb™˜xzz{·iS©—KÿÁïuMT¯?uMŠºþÔŒe==Õ0²³ïÞ­RÅ̌ϯ^ÝÙyøðçÏ&`Ê`èêV­êèX½úÀ{ö,[æáñâÅÆ&ìß_tæl*ŸO÷çÎHõ;9YW·mÛAƒ 1bøð=4ÈÍÍ̉ÒÒ$‘()éþ}‚0`Ó¦Ö­cc·o÷÷ß»÷Çìì´4jûÞ½>zDíýôI*ýÑù’“CC×®MH:tïÞÍ›}|ŠÓw:]&ËÌ”J¿þàwüfš$¿œ;êé9{öúõ^^‘‘³gÏšuáÂ÷r.“©¯ïê:z4“i`P»¶½½––Pøôizú—A6©4=ýÑ£š5õõK.5@qÚ$)“eeI¥L¦™ÙÈ‘cÆøù=oÞ™3/^•ÔYŠº’_ÖñuÀZ¡ I’T(~-ßsamª}lÕjȱcUûèæÆ`¼zµcGF†‹K÷îtêdn®>ùW>(Þ1t:‡“-“Ey¼F>|HIÞ¾}ñb×®:utu ‚ϧÓóòóò BØR©ŽŽƒ÷en.·Zµ#FnÓÆÞÞÐÐËkĈ޽ML‚ð𔔢–Œäñ5:z4&F  ÎK‘ÁÐÕ­V:/UN.‰¨óª/—§¥Ýº5rdÏž..††ÚÚ––ƒùø|ø Pðùl¶ŽNÕª=z´o_»vƃ÷êeb"Þ¸‘žN’|>µÝÀ@GÇÊŠÚ+0™ç¥ú«z^Å’Hvî ûôYºtî\Ÿ*U´´¨ký£¾+•,–¡!›ý£~ÆO„tŠìì/®^½xñÎ@$JL|Þ½;x0(($¤A__oïE‹îÝ»{÷É“ Z¶”É¢{÷‚c/\¸}ûþ}--ss…¢K—öí642b³ BG§nÝÕ«oß>}úÆÍ›§NݵKGÇÞ^"INމ‰çñ:t œ0 âˤ ßjaXعs7ofdäæ&$<~,Êåõê¯Þ½»mÛùó§L™9óåK77/¯]»ÎœéÑÃÔ47÷éÓÓ§CB> óòÚ· yð ---­N~ý:t¨WÏÒ²oßsç†/8KFFDDLÌœ9»vµjEJe­Zþþ>>::“&-\¸fMíÚ•*q8J¥B!„†ž?’’"ed<|zóf:úú7oªn9xpóæÆ'LèÚµE‹C‡œ==ÓÓÅ₽íÛܺµ™^Ð6êØ¤$‘H HL¼téÒ%jKF†©iA§MëÓ§M›k×\\Üܨ>úú6ibhxçÎîÝK—nÚôáC¥JFFÎçÏ{ö;váBr²H”ž~ÿþùó!!C‡úùuéòå«ÁåVªäí]«Vvö–-&̘ѯßéÓ+W>¼{·@@]ÿ7"3³àú[Z~ýƒ®n:[¶lÛÛ¬ÙäÉööZZß~Ýwï>sfĈŋçÌ™>=)ÉÅÅÀ`Á‚óç,°µÍÉ9{vÀ€þ¹zõàÁ+W¦N=wnáÂiÓΞÍϯS§r圜ää~ýöïß·ÏÞþÕ«Áƒoß®YsÏž&M ~†¥Ñ š7ß½ûÌ™ääõë7n\¼øÓ§—/y¼ ΟŸ:uÀ€æÍýü¦L Þ´ÉÙÙÒ²gÏcÇÆŒY° &ÆÙ™ÇKK{ü8&fÖ¬;Þ»7%eÞ¼iÓfϾ~$33»wßµkï^ww[[=½)SFš=ûåKWW>?=ýÉ“÷ïgÏÞ±còdê¼Tÿý—Áàó,8uªOŸˆˆ.]ìíÏûü™Ã9wnñb*¬\­Ú“'ÿþ»}{Q}wsãñòóéôáÃ,prÒÕ-ýA*.ZØÿÚ;︨ŽõáŸí}—ÞADÀvÁÞ±·k¦¨‰ÆX5±&jbWbLÔ˜¦‰1–ÄnìŠ]Q±£‚‘Î.,Ûû¾<÷¼gvÏ.®¢ñþîïç²Î9gfÎÌs¦<óÌ3gŽÛµ+&¦M›¾}/óNfÎlÒdÞ¼U«/7®W¯7•Q›M«Íξtéðáßÿê«Õ«<8>=ýï¿ßtb^/.Y2{vEEçÎ3gŽß³gD÷26×µc³UT:tí—;dHÇŽ^^¯>…ÿLìv£±¨èìÙŸ¶Ù:wž1#"¢voÛ ƒÁ`0 ƒÁ`0˜ÿNd26ûùÎ_ ‚ nݺ~ýܹ  ˆ.—Ãáñ Ÿ>ÍÉIHèСW/›ÍfstòZ‹ƒùßÀl.+;vlãÆ€€fÏÆN(0 ƒÁ`0 ƒÁ`0ÿk¼>ô+óªŒÁü_…à 0`öì7 ƒÁ`0 ƒÁ`0 æ¿ lí‰Á`0 ƒÁ`0 ƒÁ`0˜×V@ÿl6µ:#c÷îùó·o/,4›ßtx0AÔÔ\¹2fL«VíÛ/]:vlóæÕÕV+ƒRyá•+J¥ã³hla³ACvö×_÷êÕ§ÏÂ…©©ÔÕšš´´… ;t0œså:×fsiéîÝcÇ&%M˜°w/zE«½?9Ùnw÷¾L¦DҴ逃Y,áþ¾çñbñ>üÎ;ƒoÛVXè™Oó • :NW·wÁ`0 ƒÁ`0 ƒÁ`0ÿ»dd¤§§¥‡†FEµhѺu—. :ôîݶmûöIImÛ¶oß³gëÖ‰‰Ý»·jÕ¶m׮͛·jÕ¹óƒwï^»¦Ñ¨Õ*ÕKø€f0 ÇßL¦¿Ïž+VLŸ¾lÙ¹sryrrR’Ÿ‹Å`°Ùu·ã³Av»ÉTUÅ`X­¥¥?ý´w¯N׷[“×™L™¬yó  ÊÌÔh¢E‹Úó¦×ggÿòË÷ß?yÒ©ÓO? ˆ^‰âãgÌ ‹E¡¸zuÆùó·n-)‰Ž®ªR*½½¿ýöûï'OŽŒtŒÏn×ëŸ<Ù½{Û¶3g ?>zôúu¡ðÝwW¯ÎÈX¿~Ö¬áÃ÷ì9zôÝwCCõú!C:v9’ ñò¢b¡R¼w¯ººªêÌ™ÒÒ>}¾ýö»ï† ûúëkײ³££·n]¿ÞdŠ‹{ë­wßmÓæúõuë6lxôÈǧQ#™ÌnoÕjâÄ)SÚ¶•Éàˆ¼‡wîüì³ 6n¼w¯_¿éÓGÎÍ=zô?nÜ(- =:9ù‡ ÷§NmݺysyyffJŠÁ0xð–-_}Õ«—Ý®PLœ8þ–-­[ ii«C‡~ùeܸG~ùeþümÛªªbc½½ ˜8qÁ‚øx¡Ð`ÈÏß»÷·ßNŸ..®¬¼};+ËÏoÒ¤µk§NmÛV&{#߃Á`0 ƒÁ`0 ƒyM4hаa³fv; :»;-‹Ål6›Õj¥2884´^½²²ÒÒ‚‚W悃ÍöõíÙóÖ­ ,8wN.·ZéêfàÈ‘­[7múùçÍ›7løî»Ï?Ÿ:ÕbQ*>|üØhôönÕÊÏËEïçrýüÚ¶Í̬©±XjσÅR]}ïÞÍ›Ÿ_çÎÁÁ|¾ãu&“Ï·ÙTªû÷¸t‰ Þ~{Á‚9s¸Ü›7wî¼x±¢ÂÙU…É”—÷ÛoÓ¦}ÿýG}ôÑüùK—.YÒ¶­ÍVRb6 z=e_ÌbI¥Ž!hŠÓ¦}úéôédŠUU2Yh¨Häïß¹óûïÏš5yòÈ‘»v͘ñý÷,Ö¤Ióæ}ôчΚuàÀ¼y?ÿ\P@ÙHÇÅ 8t¨HTSST”žîã3dȺu»wŸ:µeË¿þUXøë¯Ÿ~ºe AX,z½ZÝ Á¨QS¦|ñņ áC«V]¸PQaµB® Ð\„F“‘±~ý–-YYíÛ¿÷ÞÔ©11A„Ù\Xyƒ\}öÙŒR)äíUIƒÁ`0 ƒÁ`0 ƒùÏÁÛÛÛ; Àb1›_ăH$K¥Z­Z­V×Qm·£ÊVëÂ…³gÇ¿tiР–-'O>x°´”þÌ Aï¿?}úäÉS§~üñÌ™ÉÉýÅf{yÅÅ5lÈç+•wïÊåŽ/c2Éå·n5n,“±Ÿc¯ÍfK¥EGs8••—/—–’n;H¬VµÚnçóCCíöÌÌ””ÔÔ‚&“ l6«Õñ]Âb©¬¼zõøñÒR±˜ À­EB¢E«WÏšÕ¼¹çeÄdR) ÁåºKØ·¯°P(lÛ6(ˆT §¤œ;7gNTª˜å>—ëïŸçåE †@5pà Aþþz}z:Ap8>>ññÑÑ ØMK¥,–ɤTšÍV+ä JÍAˆÅ­[oÜxéÒ®] ܺõý÷_}5uê–-99……gÏBÞ Ba||r2ä­nR„Á`0 ƒÁ`0 ƒÁ`þáñø|Àf³ZQ×ËσÃáp¸\³Ùl6_BªMív‹Åf³Ûm6³Ùf—íÛÏûí·üpÄàĉß¿{—¼ vºÛ¶9Ò°!¨kG,nÒdÊ”Q£Äâ””ääãÇÑ”õúÇûÍdª®¾}ûܹü|‘¨S§ví"# ‹Åf3™œ‹ÍöñiÕªm[¡°°´½6›‹‹Ïœùá‡7ø|‚Ð銊T*òšBÞ¬±X¨9£±¼Ü1E»ÝbÑéÌf²dâãy¼gÏöí»uK¡€;rr>~¼´”~˜ Íf0(ƒáïߤÉ Àdž>½zuròÁƒW¯Þ¼©×·j5vl×®ÑÑ"“‰ÖÎO?mÛvÿ~v¶\n2\¸ð÷ß¹¹ ³g/_Þ§ÏÁƒ›7oÚ¤×6i’и±Ï¶m6lÜ!íÚ%$´k÷É'ãÇ/\X]­×[,«Q£&N¬®þõ×¥KOœÈÎ..ö÷ïÞ}âÄ‘#;vlÜ81±I­vÚ´•+ÿú+-íÊ•ë×+*š41âÔ©õë7oŽ=ºÿÀ@G* ƒÁ`0 ƒÁ`0 æ?>ŸÉteãÌç b±Ùl2‘Þ&ìvG#c»Ý9„ -++--,dœ9sìØ®]11mÚôíû¦_ã955W®Œӥ˂½{9röìĉXñ‹Á`0 ƒÁ`0 ƒÁ`^™ŒÍvååÙËËÇ'0P«U«•JP4Ûl6›ÍF)m64„Äf³ZïÝ»}ûÊ•Wv!æŸäîÝ'Ž++Óh**®\9xðÐ!WÞ¤1 ƒÁ`0 ƒÁ`0 æå1 ½žÉd±À…g˜Íf³ÉÄáp¹<¶€Æ`0 ƒÁ`0 ƒÁ`0˜ÿiÜY@ ƒ^ïççïb0èõZ­'ÐUUryYYMR©P` èÿͦVgdìÞ=þöí……ôÿþéxêö.*Õ!íÛ÷éóæò€Á`0 ƒÁ`0 ƒÁ`þo£R)• ÅõëW®œ8¡PÈåeeîî«çêꪪÊJpÁݰa³fìÚ"¿zu̘N>ù¤qã9sV­úâ‹!CNžüý÷µk¿üò»ï?þøã¹s»wß²eÅŠ­[KJ|}ÇËɹsgãF›M«ÍÉIIÙ¾}åÊÇ bôèùó‡•É®\ùí·µk32$’þýcb„B›M¯/-ÍÈøðÃ/¾Ø°Á0›+*.]Ú¼yÕªìl¡0&Æ`(-ÍÉ))ñò¼v­°pýú?ÿܶÍÕSL¦DÒ´iÿþÞ¸QSóò.-^,½¾°0%%?_*íÞ½I/¯1e¯-R©@ Óét A`÷ ƒÁ`0 ƒÁ`0 æÅ   Åb©´¼¼¤¤°0''+ëÞ=ú‡Ãã‰D‰DÛ¬„³Ÿ——Ò·ï!II,–TJ½{ܩӯ[¶¨Õï¼3zô!ÇŽýøã•+={6jtéRuµÕJÞÞ"QLLïÞo½õÞ{B!AtëîåE#FŒ×»wT”·÷¤I‰‰R)A„Íf4A ÙÙß}7vìŠUUK—ž:µre‡a³ÕÔ¤¥}ñE¿~&“H”šÚ½û!þôÓwßed¸Î¯Ù\Zú×_“&M›vúô¿þuæÌo¿ W´ÚnÝ’“AË`¸{_ÃýµÁÓxNŸþüó ª«W¬èÒåÕ) 1 ƒÁ`0 ƒÁ`0 æÕ ‹ÅR©X÷¢Ï¾„ Tµ ¿™Lÿ>}~üñÎ!C'M:sF.·Z ‚Éäp8&ÓñÙ#G¶nÝ´éçŸ7oÞ°áÛoçÌ3Æb).Þ³göì;x¼… çÌißþÿg)“µm;gÎÒ¥[,µçÌb))Ù³gòä5k”Ê Ö­1½*5o>gŽÝ^UuîܧŸ:iÒ¹s …Í6jTóæ]»þþû³gή*L¦ÜÜÍ›ûô騑 À­EZÚ²eóç¯_ÿþ˜1Í›wîü믅…¤oz`³Q)„Ryþ<šâîÝééÕÕ6uÿ¯¿صëêÕéõÒ«WÉÉyyh¼55W®ŒÓ¸q£FS¦?^QAv»^Ÿ•õí·:µlÙ¹óºua6WU=xðä‰Z ñ÷ï׳祥V+ä JÍA¨Õii“&%$$%ýÖ­ôô]»Ú´‘H\?á¨l·Û™LÇÝ½Ž¹‚pÌ› ƒÁ`0 ƒÁ`0 æ¿“°€¶ZUªôô””£G¯\©ªÒjKJ¶oß¶mË–‚‚ªª¼¼?þصëøñÄÄ)Sú÷_¶,5õêÕ;w¾úªgO³™ FŒ Ÿ=räòåk×øü  «uèÐ:tðõår B$jÕjݺ˗¸páûïçÎݲE$jØÐh,+ËÎ~öL*8põêO>!‚P©jË£Xܺõúõ©©G^¼¸yóܹ?üpåJ\—k4–•efÞ¼YR’œüë¯K–DE…†Ä¡C[·~óM|ýᇾ}›7<˜ jj®\3¦U«öí—.;¶yóêj«•ŠA©¼páÊ¥ÒñY46‚°ÙŒF‚ ƒ!;ûë¯{õêÓgáÂÔTêjMMZÚÂ…: ιrk³¹´t÷î±c“’&LØ»½¢ÕÞ¿ŸœìÞs2“)‘4m:`À A A¼¼‡å‹çðáwÞß~ûÝwÆ}ýõµkÙÙÑÑ[·®_o2ÅŽõÖ»ï¶isýúºu6g³ét¹¹çÏOŸ>{ö¿þõø±Ñèí=x°Ÿ—‹ÞÏåúùµm›™YSc±´h!‘¸ÏƒÅR]}ïÞÍ›Ÿß¬YÁÁ|¾ãu&“Ï·Ù”ÊÔÔ.]"ˆ·ßÞºuΜìÑ£{÷‹+*&LˆŒ”ɨûM¦¼¼ß~›6íûï§N=uêòe•ªuë+V®¼zÕlôzÊú˜Å’JC(l6•êþ}HqݺmÛ¦O¿x±k×/¿¼x±ªj„ÐP‘Èß¿sç÷ߟ5kâĈ.÷×_|çkíÚ“'?ú¨I W¯=’“ûö=yrΜ¨(ÇÒ!Ù´é“O¶o—H6o>~Ú´øx¡°gÏΗ,éÚõÌ™¯¾jØÐlÎÈhßþ½÷¦N:T$ÊÎÞ¿¿¢‚ ߲֯%+«ÿÇ¿ýÂ_Ÿ¨a0 ƒÁ`0 ƒÁ`0˜ÿ5êèÚnG•­,Ö… gÏŽéÒ A-[Nž|ð`i)ý™AƒÞúôÉ“§Nýøã™3““ÿú‹ÍöòŠ‹kØÏW*ïÞ•ËQ˜Lrù­[Ëdìç¨ËÙl©´Q£èh§²òòåÒRÒm‰ÕªVÛí|~``h¨Ýž™™’’šZPÀd„Ífµ:¾ AX,••W¯?^Z*A0™RiB¢E«WÏšÕ¼ù 1“JÑ` .×]ŠÀ¾}……BaÛ¶AA¤=%åÜ9÷ªg 5U­öóëÞ=,L €µúòå{÷ªª,‚‹[·nÐà֭￟7oäȾújêÔ-[6n¼ti×.4~¼´´¶£Ûµ“Häò‹‹Šôz©®–H:vlÞÜLJÍ&µ:=½qãAƒ>þxÙ²M›&O ”ËoÝJN>rD«Eë«kj ŽݹóâEP]c0 ƒÁ`0 ƒÁ`0ÌËÁz÷Ýqã†÷õ ‰Žv¼d4>{¶oßï¿_½Ú¾ý{ï½õVp°Ñ˜ž~æÌþýþyâÄ¥Kùù<WR’’rá£GUU2YddÿþmÚÄÆòx¡¡‰‰ññ ÅŸÚlíÛOšD>»oßîÝçÎeg³X<^½z „‡ …,A€ ¶mûô ÏÈøá‡””òó¯];qbß¾7||>ü°_¿ví¢¢Ð\1yò[o9¿‡ãç—Я_ƒEEÛ·Ÿ8qÿþ³géé©©ÇŽíÙó×_yyýû;q¢HôèÑ®]ÉÉ»vݽm4Þ½{þü“'f³ÍV]žž–öä “Ù¶m«V :µha2}øáÒ¥»wß¾}ëÖ“'¾¾#F Ú£‡Ù|äȦMÉÉdf–•••™L™™©© …LÌá\¾|ölf&ƒ‘˜˜Ð®]@ÀãÇ»v?^Qáçgµff^¸pþ|AP8j”TzíÚÖ­Ççç3þþMš|ðÁ€LæéÓ«W''yrÓ¦cÇrrJJÒÓ›68qúô>}""ø|ƒ tºeË6lص+335õþ}±xÀ€/¾ ½tiéÒ'²³‹‹!<))1ÑÛ{Íš Ž=ºÿÀÀÚ,¯1 ƒÁ`0 ƒÁ`0Ìÿuø|&ÓÙ@×5{ö>|êTÓ¦‘údÉÈxü87 gÎ;¶kWLL›6}û¾é×Ä`0 ƒÁ`0 ƒÁ`0Ì?LÆf{æšÔÍôðQ£† éÓ‡^GÐ ƒÁ`0 ƒÁ`0 ƒù_®hv§z°ƒÁ`0 ƒÁ`0 ƒÁ`0/@íJg¦Læååëû¦3ŒÁ`0 ƒÁ`0 ƒÁ`0˜7ƒNg0xæ‚Å543(($$"âM¿ ƒÁ`0 ƒÁ`0 ƒÁ`Þ F£^¯R½Ž˜Ù‰Têí]VVZš—'“y{ûûs¹\.—Ëb1™ Æ›~q ƒÁ`0 ƒÁ`0 ƒÁ¼zÀêTÏ@ ¾ŽTÕÕ EYÙ›~Y ƒÁ`0 ƒÁ`0 ƒÁü·!Ä`0 ƒÁ`0 ƒÁ`0Ìk+ 1 ƒÁ`0 ƒÁ`0 óZÀ h ƒÁ`0 ƒÁ`0 ƒÁ¼°ƒÁ`0 ƒÁ`0 ƒÁ`0¯¬€Æ`0 ƒÁ`0 ƒÁ`0Ìk+ 1 ƒÁ`0 ƒÁ`0 óZÀ h ƒÁ`0 ƒÁ`0 ƒÁ¼°ƒÁ`0 ƒÁ`0 ƒÁ`0¯¬€Æ`0 ƒÁ`0 ƒÁ`0Ìk+ 1 ƒÁ`0 ƒÁ`0 óZÀ h ƒÁ`0 ƒÁ`0 ƒÁ¼°ƒÁ`0 ƒÁ`0 ƒÁ`0¯¬€Æ`0 ƒÁ`0 ƒÁ`0Ìk+ 1 ƒÁ`0 ƒÁ`0 óZÀ h ƒÁ`0 ƒÁ`0 ƒÁ¼؇ýý÷‰o:˜ÿd2™L&«{<555555oúmjC$‰D"6›Íf³_ß›2™L&“)‘H$ÉËÅo³Ùl6›Z­V«Õ¯»L ŸçºÄyÖjµZ­~¿ª²X,‹%‹ÅbñËÅ`µZ­V«F£Ñh4¯¶ô8‡Ã …B¡°î±F£Ñh0 ëÍ'ƒÁ`0:R©T*•Ö%½^¯×ëÍf³Ùl~Óoójàr¹\.—ÏçóùüºÇößW> ƒÁ`<‡- Aí7&“ÕzêÔõë……%%••Z­J¥Ó™ÍL&ƒA‰HÄ円úû‹ÅII‰‰aa<‡Ãb½éWü "Ñóå¡vìv›Íf³ZëÏëF àñx<‡ËårëÕj2™L2W$zù;(Lm6׃u»Ýn·ÛkñüNxO( ]ÅA=W{ü,“ÉdzyI$‰ÝçÇ*W‹Åb±X\•§Ýn·Ã_OJÁ`0 z‡ãZÉWa¢ånq“Á€vN¥öÔk±Ùìv»ê“öÙ 9Pî¯vóß %Í ,öÐï¹BƒtÕ}á óß*¨Dy"]ÐvA_€¥ C•.OÚ.]XÐXë’+råé(å?x£º— 𢣸7 BÜ qψñœí_°¤T*•JeçÎ]ºtéRYYYYYIŸ•xÂë{ =¾\*/÷l]ÒzU1ü§¥%•¾¼‘¢;ízêííãããsäÈáÇ{yyyyy±×«}¯üü‚‚‚‹Íf³ýýýýýý¡×hÔjµÚÛÛËËË뵪0~~‘‘B!ŸÏãƒa·åäØlvûëŸÝWW+•J%üåp¸\§~ýúõë×ø|€Åb±˜L­V­Öh<_Zvkû Jç;w?®¬¼v-=½¬L©Ôh\)ÚT*­Öl..®¨Ðjsrž=S*;ujÞ<8¸yóØX??.—ÍÆ]ïÿÿ\ƒû×e≲Ô‘t"zÏóšõçß!0h†ÆT«èUôiÇðçÇL¿Ç €¦7aP~0T#óFu¸ çr§”Å ƒei2QËôgÑ _…|¢±Á¿èuÍ`8—†«|:ßyCkÜÝÀ‚Žª›¡ aaÏû6ÿoL1¯R’Aªa:D}û¨ZTÃoPåÀoº¹JËÕÿ" 3  Q0 w7ÙFÛ.R%h³Ùl‹Ùl6»—.êé7ýƘ.h»¸\jjж]¨tA‹ªžÑÞ–.i0óŸÏGÕ»Ž9„Tê.Ä9-:hÌÐl¹SXC Î`ᨬw‚ÆÓppA†QOPhù“SÐÚTçŽiÑS÷4D­V©T*˜H£1ÓÓBß&IIII/ú/—Cª}‘xž—.AØl%%<Þ±cJ%—{û¶ÑÈ`Èå~~C×®^^KëÖAˆÅ6AX­L&´2Áãñxv»¯ï‹Ö´QîzdǾŒ A¡·Þ®J|;2Ôïå¤ÈÕ»¨Tee:Ý/¿…BaÛ¶ðv`ôP^^VVVÎZ«ªªªªªÀ„Ô=õÚ‰8 aè¨À@‚àrív­–É´ÙØl.—Íæry<6[,–É„Âví:vlßþúõ+W®]+/¯¨()©{ê|¾H$ét:NY¯žZ­Ñhµ~~^^§OWW[,‘‘V«ÉäïÏã™ÍAAbqUU§NݺuêT\üôiIÉ™3§O?wèÐÁƒJeŸ>X,õêÕ«ñC=²QKÃÒR…B¯ß·ïܹüüš×öΗËår8/îÝ»d‰T*óù "Д-[¶mÛÍ›G¦¤ÜºµaÃ_¥§Õ³gýú¾¾2™gŽär‹…Ç3M&pôÁ`+Д»Úöî,ÐÔº4)ºðéI$AØlîWàssóóóóCBBCCC_M'àÅÅEEÅÅ Ô¯_¿>~íÚ7n€æWåg–:'óS\\\ܳg÷îÝ»£ágÏž?þ¼——L&“‰D”O^(ù×ç»¶´´´´´´}ûÄÄÄDúU(%˜¸Ö4%u_gV( …ª&ãqžV¡uо :Up§4Góæ>Í3jK‚¦…v9  ¶¿7Øà“ txj·Ûí òå¾»nÒUÇI¿:Nxôô~ê·;ßîìßÑçA í9ü «ªR( ôÙgÏž=+*âñ±Øßß×W&C%Á“nýy­á«l/_gËëºyµi¼úøj[îòüÍk»*‹D"QQQQQQº*ž ¢£££Á?9 ÑÜÅ“—WYi0üúëåËP(ÂÁߟÏ7›{÷Ž÷ñ‰Šò÷'Gÿ¤\y–âËÆúªåÊñ }UÃoOsøjåŠÇóõõõÍÍ}òäÉt¼mW½z‘‘‘‘ ]ô¶ €Ó`ˤç9ŒŠŠŒŒŒ|ÞäáM¶]µOwÑ>…~åUäÖYEèY_à,™îò^{<¯¢ß!‚ éb#€t&“ÉÔ´i\\\œOÁÈÞçºV¾QãjjŒîa‚t?ÎÎÎÎnÐ ***Ê××ÇÇǧö¥ˆÚËÙ“º{޳ΠÊÚŸ¢; ¨ ¨s°ºÇö¢xž.:f†ØØF5:sæÔ©S§x<.—Ë…’Zö¼g22d²èègÏìvr6סƒÙ\X(‘èõJ%zç‹öŒž}•µÇø:ʸ\ã®g|¹/m5jܸqc__????X1ôz½¾¢¢¼¼¼<'''''úSrÇ$êŒÈ]þ_¾¥‚¼Ë`|öÙgŸ­]ë.?·n]º4cFHH` DZ%“éöí¬,“iÕª—{GàéS‚ˆŽîÓ§U«  ‹Éd0®]{ü¸ªÊÇG,æpÂÃýý…œœâb¦e˰0ã³ÏæÎ7Ï`Ðj5Ðð¬]›œœœüàÁýû÷ïÓS«ç²2>ÿĉîÝãã?ø@§³X†5-•Ê`°Xª«µZ‹E.·Zív…B¯·XªªÔj³¹¢¢¦Æd*,ÔéÔj³9 ÀlîÖÍÇÇjmݚñ۟wþ´xîäÕÿdgçäää€ÓŒ      T=¯êßÔÔÔÔ4jÔ¨Q£FîÚ+3BÝf"#ËËwˆŠ:sæìÙ’’îÝ…ÂÑ£u:6Ûj5›ËË­ÖÌ̪*ƒA©ÔjM&ŽËåp˜Ì¾}KJƃB]R÷„&M‚ƒ›6åp &ŒÑ´Z³¹¤äæÍôt¥2""4444&†Ï‰1›M&‹¥qãFââŠŠŠ‹Éøº“óàHÞýûPæß|óÍ7ß|ãg•꯿¾ûîÔ©ÒÒÒR³ÙlV«G6L"¹~½ àáC³Y¯W©jjtº˜˜ÌÌ¡C{öôööñ µÛ)mó¿Ðð?ƒÁd²ZOœHM}ö¬vÕ3Tü[oýë_]ºÈd‰@³** µº¢B¥2™òó+* >ßÏ/"¢ª*##/ïøñÔÔgÏ@ Íá<ß)GJJUú€zÈñßdÇà¨\²XÈHÒs.XÕÀ&t«µ¼?!¡IWf᨞)ÿ®ÿ” Ò¥áh”°°ÐÐÐк“â±Øù¸<8®¾ ªðzõêÕ«WO&£¶'@ùC—ö:rXûÑvP2‘‘ÔJ‹;À·>ŸÏG»|ú=µÑ+_~yüø¦M‘‘mÚÈåþþ Ù̱X\.—h³ÅĈDv»¯¯Xl·ûøøûÛíÑÑ åý ß+tŽö¼tÏtÎ.Ìf“Édb³©òq§„¥[Ž o‡®®S)‘iÑ-‰è[bÉ´¨§ÐwASôÄNUõ¢á¨„£9¬ýÝC¨<;Z¡Rw9–’slz½N§Ó9~kÎråξՂ × L¶éëî\.ÇåFDDDDGgeeeedðù\.Ax{ËdÞÞç¼]”¾’_û7á,uQ,Ö}:Qû`øyoâIüÏpÓï¡×àëxwOìÔèå "hßàáñx<†ô˜M&‹ÅnߺõÂ…’›M(ôõ=sfÓ¦>²Zm6‚¨©Ñë-–ãÇÓÒ þüóôé[·¼¼B.ÿè£^½BC_µ\Á=ÎûH^U ×E®Ü•|m1Rv‚TˆçeõªÞºöø=‘+‰D*•JA–ÐþÚ.Gér­r〹sçÍ›7ý²,›Ín_°àìÙÒÒ?NHðó‹ˆðòâñàêêÕ«V­Z×´iÓ¦ž¿×?Óv¹jìv»nfáI»AOÝó ›; V÷¥„.€;÷¤uÃ9wÊUôß09tl»‚œ¾¢=¬c™8/êß¹s÷îÝ»Ž%@½Úƒ£N®H§ ”ÊgÏ a±¤wïÞ½{÷îÔ©cÇŽ_TÝ쮡çÜ“ž<¸K…®ètUgÎVÏ®SwÿFu¥ö¶±ö2t%ÛÎ1ƒ¡æPƒÑh4ÖÞ3 —+‘¤¤H¥qqÑÑ>>ññ°Iž âÂ¥2$ÄbÑhjjzõR©>‹F•ªöïÉ¥)úUº*“×5îª{Ïø:&þ/õŒ/úuµÌ`0±± 6løôiaaaá¥K—.]º¾žá÷ˆˆzõêÕkÞ¼eË–-9tèÐ!N¯×롦+¾Ýß㮥rwõðá#GŽ €h±å“É4uº€€²²d²}ûš5ËÏÿî;4~W Y­ööíÇËÊnÞŒ‹ëÖŒ-+++++Ë]‰5h¿t)ë@™—”œ<ÉbÙí\î‹KƒÑhµ2ééUUÞÞýûwèàã³sçÙ³ÙÙ\®ÅRSÓ°¡ÑX^^YÉdfddd°ÙQQ±±A,–Ba4 "Ah4tm]®,Ã`¨©áñîÜÑé,…TÏf³Í¦Õ VkMÍJ?Ç‹…Çc±d2†ÏÏÎ~öŒÉÜ¿ß`0åòzõ,–‘#kG w~~an~ïÞ½{÷îÁâ,WWWWWWÓï”H$‰D(‚§OŸ>}ú4"""""Õ-ïosâEk‡’›-,,22%Ål6™„‚/,L¯'…Âlf0Ìf£‘ L&½Þn×é¬VËl¶Û9ò$€º¥î)UUf³^/X­L&—k21·oçädf>zôèÑ£G ›9óã?ýT¯×j ø ãº÷ªíÚµk×¾=´ éé÷ïß¿Kb°4&ž°oä ¬¬¢âñcÌFôú 4(.nذS§¥K33ŸÅ¤ÒgÏÊËkj>ÌÍ­ªjÖ,:ÚÛ»öT ‹Ålæóíöš«•ÉÔhÀVÙq8è¨Ê!7ïSêf ‚2Úb1ŒÆ'OîÞ}ð 11((>ÞÝ #@uÍçóù°føzìyQÈ)“ +jG ëíÂóº¶À»£!p ý“ƒpPX£O¹ê¼Êr¹\®ûºƒRz~ùÀñƒàw«.ùúp—+R¹ù| h(±‡ËÊ?nÛÖßßÑ‚Ûje0L¦’+# g³ív¯[7£qÚ4Ô"‡š’n:ÐD×0€JÚn'×0çé%ª¦O8ÑÁ©\FÕÍhlTNИQWhù 6ÑîÐŽ®\ç íÀÐT­ƒî¶ðLõì:„>ôw·©&0@í h2žÚÐ`ƒƒJ X`Ý¿Ÿž~ëÖܹsçΞšzõê;))ùùÇß¿¯TÞ¼iµªÕ‹ŸŸZЯ_£Fýú½ø—Qû¸®1¼xn^æ)OÚ1º«Tr¨˜j³÷$­—oU_κ¤ˆÃ¡vrE9K Ç³jÕáÃEE½{÷èѾýàÁ]º4iRU¥ÕZ,V«ÝNz½ÑhµÖ«ðÁ£F%%?ófv¶Á`4–—s¹l¶{ :¹òü-P?ìô\ÕÔ‹ñ²ZÛ‘>Å";+Ðv¦öôj›t×­·®‹tY,”4Úò»“.ÀÝòá’%çÏ—–Þ»W\¬Ñ„…I¥ÁÁŽKwÎ1£%ì‰tÑßÅU Ô•çÅã|»Í­hßäÉä‡^#îÚ(Çü }:ºÑÕµ„8öæÎ}¥»ÖïE©{ÛEZ%ƒÚÓymÚ´iÓ¦cüè÷è®<ÂQ’á8p ®©ÒqÕw¸)Ñ뎺ßÕr…s<îòí® t4hpWæÎ-•cÎ]çÄóIò‹¶Ïîbv­t¯–u•®Ýn·“*B.—T{Ò3 …'Oz{·nݦiŠUSc±©DG‹ÅL¦^/x{ïÞÍf·k÷þûEE'N<ïMÑ¿Îõàþ«tŸçåü¼Zx™§þIûåç¥øjzÆ€€ÀÀÀÀ¨¨ 4ëæÊÊŠŠŠ w¥„öŒŽFBž½­Ý¯TÖÔÔÔ€ò”€0g |ô(###®öê•”””êipâÉkw톻>”Yo¿ýöÛo¿ jGwµãÄfãp¤ÒG¾þÚÇÇÏoï^ƒÁn×é¸\»ÜmOO Ñú,))---•Ë …ÈÅBªäÁ„,€ZÜn‡¶›Ív4B¢/DÑËäÁ¥Ò×÷ÝwûömÚtß¾S§ÒÒZ´ðñ‡¼ßˋñZ½½½¼,–ŠŠ¢¢G¢^½øøèè©ôÙ³§O++]ÍІ÷µÛ-p¸ªžÍf›M§ƒ¿&“ͦ՚LV«Vk6[­Z-¢Ñ0™ÁfÛl,Vuui)‡sâDHˆÉ4p ‹E®ú)zýÒK#'çÉ“'Oš4iÚ´iSWÆ‚Îåòrªm8à5Û‚º#ÿÖ6>¬æöm&S&³Zu:£1,L£áñx<“Éj5™Ìf›Íb1©ßàäõÕ^—ÔÝÑ Alll¬\.—ËåP·nååÝ¿O™è,oCKO]¼xåÊùó¨.ÔÇÇ××Çòéëëëëë›——“““ó¢ùñööööò=zÔ¨Q£4hðàgÏž={ö öLÀ÷B-B°Xyy™™C=zŒÁç«TÑÑaa‘‘ག¾çÉÁÇùów=¿kb0Æ>lŸùünÝÆŒY±¢¢¢¢¢ª ½“ɬªª¬”Jë×oÙì 5šÂÂNºq£´´qãzõ·öÓáñX,+"ÂË‹Áxø°²ÒjµÛ¡“&»Y8r„͆ÿ3dó£ÕÂgiµZ,&“\þäIvöÓ§™™YY&“Éd6ƒÃUwk8ÐL8pàÀþý‰‰ îN=~µ@õ\½ššššúî»o¿ýÎ;hA4 ‡¯#è.PÒ jôOV´@eêW'‡û”7«WƒÁ`À)½!!®l@)y’::<«Kž cs—+RÕûüI#Õ¬“ùéÙÓ×÷óÏ HHèÚuÓ¦””o¾ñó ´ÛÏž½v-+kÉ’1cæÍ[¿þÊ•3Ðm)t`› }X@NJ¡Öl68¸€ògg·Ãê©Ù ë~à”ÃÑõ¬ó[8–€ã›Rq(•55J¥X,‰Åð,X^C‰¡oÚq“oñ;«§ÑÉ3]yíxD e»„–Œ'“jz·J(¸²‰vžÒWWWUUU¡Ï¢÷ êºËôߨÂk?ä'""440pÙ²ÔÔÅ‹¹\¡ÏïØ±Gš77™ââØlƒÃ‰8±ø«¯þúkÁ‚1cøüwÞ}tŒ«)Ÿë‰´;%:¬„:uoëçnzI¥åNA@8ÖžGU—ó[3ÐZFÓ!É¢™:›wª÷íDmWŸg½øb“Oˆr‹†[Ë¥« @.7ßyçwFŽŒ‹ ‰:uŠ•ÉÎ{ô¨ºZ©Ôé,–ví4J[·®__"ùí·Ë—ËÊÂÃ#"ÂÃçÍ;r$'gÚ´ÄD6;2ÒÏǃ#Û(jÐIw1TÛû0Z­N§ÕŠÅB¡HD~³T뱑K×Î2@”1çö\E‚Ê y¤¥v$¥ŽJE­Öj5š>ÌÊ:~üèу,˜={ölO,–JÑv‡¾ØæI~^T®^.TºÐÁ(*]¨Ú®ö¶ Úo4ä½÷öíËÍe³ Ân?}ú½÷\;‚¶ü*$tQÒsŒc»G}¨í¡ãí3Ú†À¯Ï?_´èóÏ/ž3gΩÔß?0pÿþ½{÷î½yóÞ½;w>ùäƒ>ø@,öõõ÷¯]öÕ®Û(TY ¹[¸ðóÏçÏÿüóÏ>ûì3¡P*õò‚ ûÖÁ`0®^MK»}ûĉcÇZ¸pöìÙ³¹\gɤ[ÌÙ]𺤠ZqhoÁI•ûø¡ÅÐjµÚ¢¢âââ↠ccccÕ|žëò¦·ç{öìÝ»woÿþýúõë‡Î#àjfffff&ØÁ’?(©£¢êׯ_•"ò ;ª¼èËðä‰ TÎБ½¬Ü+‘é!zOçüê“]PA{v(O¦ñ¨]G™'ž =oî–vè2F~#®¥¤f¨ƒ»ÚÛ®sçüüÚ¶‰˜L‚xúT.¯®þí·ŽÑoóîÝ'Ož>ýöÛ²2.W$âó¥Ò-[¼½;v?¾²òâEzœ Qä>JZ®\¹v--íèÑ#G€/ÚÕW麴]Cžß*Ò¿ôºó"1Õ½ÿzõ1Ã<}ÿþýû÷ï¿råêÕ«W“’zõêÕ«]»„„„Ò¼¬ö¶ËÓþžŠoÞ¼yóS§N:u ¤O ˆˆˆhÓ&!!!}úô©ýBC´ÛCC©M›6lذD¸«ýÒR.·qã!C:uò÷ß·ïäÉ7d2.×lÎ˳٢¢NL ¿¿  ¦ÆÛ["ápêÕóó ÷í;}:-Œ¡¤¤¤D É‚‚T*†ÜEA_ТÆ<ž··^ß¹38ÜgP1k4fsy9ªŒÖhÌæ²2ƒÁb©©ápX, E ÿ÷Þ»r¥´49Ùba2 †ÒR6ûÔ©à`‹¥wo&ÓnçñèN׆ì]¼xñâÅ‹AAAAryeee%ý)tY÷Úµëׯ_GïÛ|°ÙïܹsçÎ!rv ºO¾ Ëj5™Z¶äóüÑÏ/,ìÑ#¯¬d³‡ *)ñò ©¨ˆ‰AÇKè‚1Œ¸\¡Ëu§9¬ 7oÞ¼yóæµk¹¹o¿½xñ7ßøûSž`Ñ„üK–9A€\Ào{^¾¬PØlùù?þ8gN÷îññ H$/ï°Z€ðððð°0ð.àííííí ¶í~8eÊÔ©f3åúä²Y3€Ï/..))+m+\Gû”ÿoMvíÏË 4HÞÞÞÞ¤ú¸ªªªª¦ÆõÝ躹£õŸ'Ê8µººº¼üÑ#‚”J• ì4Ñ¡ÄÊd°x†0ö¿Š€½sAA^ž\n·³Ù^^l6‡Ãb1™Ž@Àdòx‰ûœ0 FAA~~~~xxxxx¸·÷ó¬¶ëTÏÓ§àÙ”e¨ …Á`0˜L”šéuäº?4G¤?;gÕ3yŠ8:tƒò]9[Qwu¥äIê°ŽCöºäjÄ}®(5U¦®lRè!ƒ'$ôés÷nYYJJF†JuìØ„ ááë×'&üÖ[2Yx8Yk¨º–Šš81™.\½ššj6ëõ°Á‡É”JE"¯sçλw‡†¬ºº¦F­ y<6›ÅâpÈEøÖH/êl6‡óûïþ¹wï{ï=b}P‹©éŠch|jj´Z£qݺuëÖ®ýòË%K–.%­G¨¡<<¥PTU)•^^2™D‚ÑhÐãbìn åG¯'7á’18Oo A‡Dôcå^TMŠl´)å]­ŒNlÜ¥„¾¹U© ù!'®l¶V«ÕšLgÎTT?Þ©ShhRÒ£GOŸêõªT‹Z-•¶léåuöìߟ=;th«VC‡¢q’µkU2*íd8•ºÂ—üM©éqºW@SwÒ7Y“ŠKç8K Z`g)B•/pÏñã§O§¤Z­Jåååååí ûmz÷îÝ»(¡S§RRΟ?räðá½{Ç=z̘V­Ú¶ML¤+,Ð<¸³Öt,aª<%­ö‰¼‹súoT¢ EôK¡KWJJF†RÙ±cX˜ÕªÕäU¥R«µXüý¥R.7$ÄÛ›Ç;~üþ}…"'§¬L¯×h «5"¢~ýØØ3g22îÜ™8±sg‡Éd2«ª”JµZ$‚%iªEBAkÜñT‚ ˆuëÖ¯ÿúëE‹æÍ[¸vƒ žð!~™L*‰ÜµÌŽéP%ŠBÞAÔZºF£Édµ^¹ráÂåËþþR©@˜Ø¡C§N‡?~æLP··PبQ“&-Z¬]ûõ×kÖ|ùå¢E+VìÛ·ÿŸ¢>ôÑÚ$û´Õr-îÂ=çÅíR•;¨= „£êÎÚí|é_F£×]ºÔ¯ïèš ­M²¡bV«)é‚c]^Tº´ZÎdØl» X,ÒÞ–~'j‰L}ïТètƒÁªF³Ùf#ˆ¤¤ž=»woܸyó–-y<˜ž9÷V®j„lçÉ|8¶QÞÞ>>6›Ù¬×÷éÓ·ïÀ õƒÉd2‘JFjqš2ù —oÉ7c2™ÌÄÄ6mÚ¶=pàÀ¿þ"ÛXx/4‡Îí*Y#®ûèW%] Q0¾#Gªî– #=ýÁƒ:tèС–-[´hÑ⯿þú믿.\¸páB˜`Ãþ¡V­Z·nÝ:?????¿~ýÈÈÈÈë×ÓÒÒÒ4µZ­ŽoÖ¬Y3(Ipù›ëaÌ ›háxÈ,ºóù@3ô] žmÛþøcçN½¾¦¦ªÊÏ/ 0Ðb1™tºqãÞ~{üx˜*ž?ùrjjzúíÛׯ‡†&$´lÙ¬Yýú±±£vh “˽”L¢ý „“KeÆ4‡ýý÷‘#¿ýöóÏ6vc¥R©¬® ¸rÁAI*Kµ÷ŒUU|¾Ba6ƒ¢Àf[¿¾^=cÿþÒRh«É»K—°°ðð3ØìŠŠ™3 ¬ÖÊJC*­¬äñ¼½}|ôzGŸø<›ÍfïÝ»oßž=~~~~OžäçççO˜0~ü@òCj8×½×s?úr.aô«u7Þö¤¾^Ÿ‚øeâzu=cãÆM›6mº|ùŠ+V@ ¤¤¤¤¤¤L˜0a„ ·oߺuëVí=#,ßx’.HH;´3 þnÕªM›6mÀj’œq˜Íf3ÌXavŠ?¥²ºººÚÇÇÇÇÇüD;ºWr†¾äFŽ@._4H,æó Âb ûùçE‹-Z´Úh3322222zõêÕ«W/ºtppfæÚµ‡…†~ú©——FÓ¼yÓ¦z}—.™™Læƒ!!V+ÙB:–|ETy¡ tøž=+**.v| G\¹†¤”€®÷ô0 FÇŽûû?ž–öôil¬L¦ÑTTðxMš$%ÅÇîÚuáBvvƒ|~EÅãÇqþ¼N'wèвeãÆÇfÛí"‘@ÀfWW«ÕŽ&}hn©2çp¤R½¾E Ê׳Ñh0X,*X=[,6›Á`³‘îÉ,.—Å‹[¶ô÷ï=èÃù|K*µÛY,‰¤ªÊh¼uË××noߞ˵Û]·QÃ5Îå‚Þ”¶äÜ™Ê9,ËÁYâjúØsIIjèö¢ßi±¤¤øùyy‘ªg›ÍnçrU*§qãÜ\/¯””âb‰$?òiµ„ÅÂãq¹,ì“çr9£{÷ÒÒ·ß®}túr ãÎd@T¹L“É`Èd\.ƒÑ°¡—“yî\I ˜œDQ‘NGºFMv<Ѹ֞+êbŒ~?i笯 Zÿ­€®}«ãËÁåJ$¾¾L&‡ÃãY­UUÎj=?E‘H,öòš4©o_æøñ78œ»wŸ<§P̰êËáÂjµšÍjuU•JU\üôiy¹Pèí`µšLZ­Õj0h4z}uu^žÙ¬× …6›ÕêÊ~Á–¯I“&M^m)Ñ¡AF£^¯×¿ŽÍúoÔ˜³kÏ6оô’quõù©£þyë’¨w¹";iº½ÇõðŽÏçry<•Êh¬ª‚)ââê×oÐ`Ë–S§þüsÔ¨nÝ’’D¢ˆ‰„à €¦RY^^R‚v¬çÎ]¾œšj³i4••}û0t(œ©~èбc'N\½zéÒÙ³;víÚ»÷¡CGþý÷èÑöï67ètE«Õét:ÇjµÛõz•ªºLàp¡>Qq,gª4‰D,æó—-[ºtÅ Ò‚†ÉŽåFþ¹oßž=~8qâĉhù JmX£7è ‚´pd0X,‹Å`Ðë™LO @›S´v¬V°¾D­_é“dçßµ‡ ¥raKš{E6¥™$n7K¡IDATär§˜vlÐÑ®‚Zœs,1K(lß¾cÇN|}ÅbŸY³þþ{Ò¤Q£ÂÃß{ïÝw4˜8‘Çc³¹ÜÌÌÒÒG¶o/+Û°!'G£ÉÊâñ8.×b1› @K~“ÇBB¥ØE¥‚Ì-¥ÊG-@ɧ¬V(}ÇN¨ˆœ2Q’IÞC-Z OÁo4N2hÙ`m–º|‚jÀ±´©a*XÐ ÕÕ%%#FŒýî»P“Û·ÿõ×þý))'N>Ü«W¿~C†´m›Ð®ÝéÓ§O9’˜h4‚[ júGêSžÝÓ 5 m&ï¤Ú^ú´™.·î‡ÔÎ…¶o¤d:Kד'r¹ÕÚ´©Ng±hµF#u•Á ˆÄÄ ÈM—çÎ=z¤TÂ=jµÁ`µ²XL–•U^NÊ-(œwîܳg÷îÉ“ßzkôh&“ÇãóQõ«£ O‘¥á«V-[¶j¹@h6›ÍÔ’ ‹õÇ{öìÞ=sæ‡~ø!¹T†Ö¯³œ£_%Lä[g¹£/GA8ŸÏår8 íÚyy …J¥Vk0 \Þ¦MRÒˆâÚµ+W®]«Óét䞈Z{H•TRm }ËÛËâI ®'¨î­ ]·Qh‹ñ<ÎJ“þý6ôñ¹s§¨ˆ<¼ ½úäIe¥Fƒ¶ŽJ›-’‹Ž*TøíZº¤R‰D ú`CÕì'C'd+GÅ !¨m)9€¯› ":º~ýzõÀbZ$º½ªãB•°´7”ÊÒR²²Ûíö?þسçÀS§Ž;p ÿAƒFŒ@s{l6ê}!‡èÂ0XÈÎý;„C«OÖ¥¶†é%ùí8óª¥Ë¹í"CœÕPïp(ÖŠ+V¬XG'Á1J.\¸páB£F 6l¨R©Õj5ÜàÀ|úéìÙ³gÃ1Ôáááá;wîܹsg³fññññ:uêÔ©äð—_~ùå—_¦OŸ6mÚ4˜Šûûûùùù)UUUU°íÓ¨ôB j4OŸ~üñgŸ}þ9´L+V$'¯_¿sç¶m?ÿüÞ{“&M›¶~ý7߬^½gÏöíü!‘x{ûúÞ»wóæµkhïâlùîÊ= ©’&K–ìÁíè¿Aø N 0`РsçΟ?þ믓“W¬X¼xéÒ5kFŒ>|Ĉ;wîüí·#†5jÆ~øùg³Y©,)™3gÁ‚%K RrŒ­[·oÿýwÇñCíP÷øû‹D"‘DráÂùó§O»RA”—WVVTøøx{ƒ9Ømq8Ž£'X´%ñ¤gÌÊb³ýüJKõz»=6–ÅÒéÚ´‰Œ Z»6-ÍÑéel¬XÌdÂU©47·¬ìéS‹E(ÌÊb±üüÚµ³Z+*Ð/B£ÑéL¦aÆ 2„lj$’V­ª«aÆíhB?@i@Ë…¶?Ž#%çV ­wò}a±‡z÷WÑï<¿~_ä™7“˜Y‡¥ÏâÑûýü¤RÏdÒh ‚ðò²ÙúõkÝ:$dûö3g=jÞ\*-/ë`…B¡P(‚‚„Âêêà`oopA¦ÓA*•Ng6ƒ}:šº³ê}G¡Ðf³ÛÕj8õÌb±ÙŒF¡ÃñõU*ƧO ˜û1<^Ë–ãÇ7lèå5`À£GÕÕZ­v;˜Z­f3›ýô©Õ ;ÈÝ}Çäø„Ì89áóy<È8Ö õTÕè Ž~'¨€a ÍHì‹~@ttpðÉ“h( ýý­ÖS§6´Xrs+*t:• \öÚl<“ õÀ`€1 ‡Cº"|ZS²µZm6Îh$ШڶK—ÐPçÙ3µÚfçO …Ng³i46›Éd³A=“‹XôïËå U=“:ÊJ› @ ã:g:ç~áß#IwÆäbqxxӦ͛wîÜ«×Ñ£;w.Yrÿþ©SkÖ$%uìHªbÓÓOŸ^»öÑ£sçÖ­»qãèÑÕ«}}ãã{ô‰BBÀ±ºÝ®×WV:žÉhö…¢´´¼üË/ùE§KKKOW©àø³Y¯×jM&­V­6™t:•ÊdÒë5µZ.W(<¸yóá‚ìì§OM&ƒA¯¥8ë€AlW‚Bs—:9Pf2™L½Þ`Ðëï»áÁƒ¸çþsHO¿]¯Fs¡Pù°ÁÁÕ_¹\.W(är¹\gÀø (þ ÜëœFŠþ?zVuŠÞ¼ªüÐÿB9¸«;¸ú¼xär¹Ž ‹Ð]Rg³Öþµðu—+«¨-%Ðèº²ÚæpX,>i‹Ån7Íf«Õl¶Xìv“‰Ëe±„BƒA©T(@ ‘˜Ø£‡éßFãíÛ7n\ºÔµk×®={’vôF£ÁЧO=zœ?õêõë&“Åbµ––>{F~­˜ô’ÛW-«uÏžÀŠsÔ¨ï¿ÿᇠÐ)É_,Y²h‘ѨѨTF£Éd±@~?ÿ|ñâ/¾0t:¦ªª¢¢¼\¯7ÌæÙ³?ûlöl°ì_¸ð‹/.Ôë5•J¡¨¨(/‡ƒôŠ‹   S©Ôjîë¯×­KNÖëF‹eΜyóæÌÑéjjª«gÍúì³O?ÍÍÍÌ|ð¾â9sæÍûì3ˆ“tÂãÜ €½J¯#4„NT55J¥RYVVVVVߤéø×9'è¿Ð«ð›.iŽùr&++++=ý›oÖ­[»vÆ 6ož6->~̱øÎ_ßÉ“?øàý÷?þxæÌ3 ¥’Ë>=2rÑ"&S ÈÏ÷ña2Y,ú»B«ZYùìYA¸â1Ìf»ÝbÑéÀÖžÅZ°`Ñ¢Ï?'ƒÅÒjkjª«Íf‹¶¸B×ÈfÏž=wîgŸÙí ‡3mÚ¬YŸ|õ–‰ÇŽ¥¤\º´|ù²e_|±jÕúõë×ëtÕÕ  —W®\¹òË/9‹ÃYºtíÚµkaõäIAAqñ™3'O92mÚÌ™\P‘ùœ5ëÓOgδÛM&ƒÌ¸Æ°XbΜùóçÌAÕâtIË«ªTª >\¯7a1J¯>|РAƒŽ9{öµºªJ.‡A Ùõ¢ªrªÏdj4UU••ЮÊåUUj5 á[ß½{Ïž?ÿ„uçãÇOž<~œÁ°ZÍæË—¯^½r…žQç@W_PPXXX)ÂÁ”UU …\í›Ù ÒîZ–%ŠzwÈ9ýN•Êdâñòó++ †²2¥’<ʸ{÷ƽ½¹\6›ÉÔëM&›-/¯¢Â`((¨¬4  £±¤D©4™ª«F‡,g‹Åj}ö¬  /Ôa°+ƒ¬ýª*¹¼¢B¡ÐhV­Z¹òË/I«M«Õl&°ñW*«ª>ùdöì™3õz¥²ªŠ´Ð±ÛívX(**(ÈË#·®³XÎÊ•ëׯ_›âËÊ*+UªåË—/_¼ø×_¡vìøõ×]»öîÝ¿uC.œ°X`+.~CþÉ}[ÔÄ”Œ_½qãÆ,–Å¢Ó9|ø¨QPÚZ­^o6O›öÉ'3fÀ»AyÂHfùòuëÖ­Óhªªär°\½zõê¥KIÕ%¨È)™}Ù¿µ·lÈOí)Üɪ”4׊£Ó ‚ ˆ?lß>4ô§ŸFŽlÚ¾)hcážèhrk'šgéb±Pé‚­Á¨t-\í%]0}7(é"'QV+ƒ1}úìÙ3gææ>z”žÎfs8\.ÚŽ-_žœœœ\^^X˜Ÿ:–A§» Ô6™@õl4yv%i ª£T ´Q½?ÙF =z€Œ‚jZÝ¿ÿ>p`÷îO>™5kî\Xœ(,,**)9}úôé“'ë× Å Hê‹“ÄÙ:Ûõr®ã¾\RÚatn2™L—Ëã±Xä8ÇY‘Jý¦ÆÃ޲ê®ízôÈb ssu:›íþ}½žÃ©}\…;‹Š »ýÑ#‹E  ·ç°[qêÔO>™939yÍš•+KJ ?FO1•”Íf2¤rÙng2åò¢¢‚8XjïÞ#GޱZ ‚ÍFG_оÐG_Z-Õï¬ZµjÕW_Á(‰Üÿêù—[Û_W@¼/ö·ö±ÍëëoܸvíÚµ””S§NBÿB¸ç=£ç€û Û¦Mããããgp¤ƒ>´Õ…Z™qœ™Âÿ!„ 'Ç0ÔH(+“JÇS(NœèÙþ‚ºùúõëׯ_?räÈ‘#GÀùÆãÇ?~\^^^^^Ž:^`2õzø£PôëwëŸñbLŒF“–Æå^¾Œ–³ã|ÚÑ×2AÎi¸ÿXU)õfŽ¡ÖÙ0r«mŸ‘QXXSÂã©ÕjµÑH§Oß¹SR'•”b±TݪUëÖmÛúû9sý:yª“Je4²XryMÁàç'“‘gc8îmuÆl¶ZM&«Õn7›9K,†¶­W¯°°åË?úH­6™JKßy§Q£cÇââ||FŒÐjÍæÊÊÇóò&MR©L¦âbpÐa4De¥Åbµ’ûÈëÚb±XÈ1µø»ö¡„ 0Þ€¾\7tA0Ò€§à7jO*gçݵg!ÅÅ1;v°Ù,9!eƒÉÔhBBx¼;† ¼vmÝ:™,+«Kµ:44:Z§kÕªQ#•ªe˘˜êê-êÕ+/oÚ´î_èó±Ùüý¹\cÒ¤¸8>¿k×gĈ x<Ãf#.—Á((P*­Ö6m||X¬¡C#"8œqã4àpÂÂ88I«nùDµ@èØ Ìóò ž>U*kjTªÌLX¦ÏÍÍ˳:Ç]³¤i†+ØÎæÙ †PÔ —+“ÄÄDFÖ¯DÚ.¹C" áÌV‚°ZM&£Q§+/ÏË£ßé‰A8iKB®R‘nà/¨”ÁºC¡¨¨¨©Q©ÔjƒA(ôñ $£Q¥2›u:¥R§«¨ÈÈ Å™LPäX;:¸p]%smA¨  ‰:Cú´¦lšÈÜ8oŠti¹ðürvå—Ðye †‰¨5™ju}Šî?®.ù¡CZ¹º¶:£oOv_wèÓôá ë!¬»Òv—+TåA¥ä™§Î§O+*ŠŠBC¥Ò jjjj,–ÂB¥òñcxŽÃa2ùü¢"•*+Ë×W©lÝZ  3›Fç³P©®u%AÚOµu‚ ` jµÂàœÌ§Íf³i4Z­ÁPZZXXPpñâ¥K—/•””—WV–••”ˆD^^>>~~¡¡+V¬Y³z5øoêÙ³W¯~ýÈð•+W¬X¼xñâ/¿D¿8_îY³&9yíÚyóæÎ?ÎPJ0âóù|göìY³>û,%åìÙsçÀü›Íb1™~~þþðFð%ÁPZg·Ù,&S¹ãZ+µ¨à®¾Üûw¦î…¥ èVeÃNƒzЬ)4Äù)ºd:Ñ@ýEˆˆÿiÐÍK$R©HÔ§Ï!=zhµCMÝÎ`X­11ÑÑ11¹¹Fã‘‘B¡XÒ»wiiiiyyPPpp` Ä©Rétƒ¯oPPHÔØJAÊ   ©WïâÅsçNêÑ£gϤ$‹Íæpž<ÉÏ/(€mƒPÐ~€644<<"†xíÛ'$$$œ?æÌáÃfsMMqñõëwïÞ»Çd>xððaMJ¥Ñ(•55jµV«T* -õëGDGGׯ?xð©S.\¾ õÎd²Xl6¹®Îå’mØÓ“jEøR¨ý¢]² J êë'kTSôö ¾,//‰D&ƒ2”ɤR±Ødw1L&yJ8êÆÊqÛ/Èü ÔOv;éùŽ£!¿tòÝí9œs…¦B&j“.¬ÁµZ³ìš!|óæ³g‹‹gÍêÓ',L(äñX,½Þl¶Z««u:‹E§3m6•J¯·Xd2Ç`°Xl6¡òIæÄn·Ûõz½Þh”ËKKKJnܸsçî]µZ¯7›¡ö¡×üüó%K/îÕ«Gž={õêÕ«woG׎ߵ$µ@ÅâÄÉ“'N(•55Z-Ä¿`ÁèÑcÆÌ›÷ùçóæ%%µoߪÔ©êg0Œ™3çÎ;×dÒé´Z´dD"¡Ë]¾ü«¯V¬€iZrB¡XìåµmÛ¶m[·~ôÑôé³g“ý¹ÄUÏ„–úÀ@rDÊ^m½ÌËZ‡Õgí¸“¢Ú¥‹T@X,KttlllìÖ­[·nÝ KPp´Q:l@†cmÈm¡dËï3Ô üu,Õ‡32Pé"Û±³gOžé2™Àµ¥JˆÞ޵k×¶mÛ¶ÐŽ„NWQŠŽI‰‚'Љ”ƒÅb·Ï™óùçî%måÊU«¾þz Êc å4†¬;úÖo»ý×_wìØ±ãí·GŽ6Œ\&£¾ê~Wî2 æ/¾X¸pÑ¢ÌÌœœœœüüÜÜÜÜ.]Z·†x@aY¿>L6aRéXã¯Rº ¨w!KÝBŠŠaÆ 6ììÙsçÎëÚµK—.]ÒÒnÞ¼ysùòåË—/Ÿ•ï¾ûî»ï¾ 'µôëׯ_¿~ûöíÛ·ox·D{tP¯4m!S§~ôÑGݼyëÖ­[pÄ€Z·¡Ž2H{[ ƒ¿ ÷À/x£É“ÇûíAƒúõëÓçСÇ^¿~íÚåËgÏž7oÑ¢­[·lùí·ßß¾}ûv‹Åd"3`é"::6¶aCéÛ7)))i߾ݻ·n­¨¨¨ËOŸ>{öÜ9.75õÚµÊJ¹\©5jøð#jjäòòrÿ  zõ¤R™¬U«-š6… Þ§S§víZ·NHèÔ))‰œÙQ%-•V«V«Tp|xXXHHPZ­Ñèõ³gòɇvíÚµk·nЯÁ³ âU|@€ŸŸ·÷¢EK–,[FoëÐ6ÐÝF`t†òüñ™c/ŒÎÔܵ]aa6¹¸¤Äba³¿ýöɃaĈÐPGoª<ƒ±iSn®Ñw¢1ÐÛ.X>^³fÍš¯¿¾téÊ•+W6løñÇŸþé§~øåÈ˯¿îܹsçÌ™üñÇ ðg”gΜ?æÌرÑÑl¶Ý² ´Z!!áá t¢¾ …d0¨~‡´®%GÇe/÷×W“îBÏ蹫¸”¨PËgΜ9sæÌ{ï½÷Þ{ï¡{CÑšA%F¿z½ZMÊ**íîÒEG(55f³Tj±TWŸ;!………………p|(ÇaùúrÒ 6•ô;…Q8šOw®0 ý$Gë”?}_Ý•ê¨ÊÑñâ®P ÷õ•Hx¼‡ÍfËߟϷXx<6γZ¡µ·ZÍfrÄ ×ëtZ-G¹–…YS|üСsæ”–ž?ÿãd*Î3Mªìáô3ÔÇ<‹%•ªT&Sa!XÏFDH$;޳k<6Ñ—/—–®YC¯M.×n÷ñ±ÙìvË]½Ó<¢µ*Gº‹E°yG[Ttfõ²RŠÎ&M7nܘ4Ýx±ïB"ÑjËʘL¡ÐdÒjFËÕéÀ†Ü_M‘•õìY»vV«ZݵkD„VËd‚®‚ÂÔn÷òòÌð‹Bí*ãp=*/7›££½¼X¬;îß³»ÝË‹Ïg2›5 b³wìHO7||„Br®­Õ‚ih|l6WNç^úü†9¾——L&•êt:^¯ÑètZ-Ô²··Cm=¯ƒ ÏÇ'8˜Ï÷õ ƒ*OM½sçÉ“ï¾c±Ôê† ëÕóñéÔ©mÛØX‰D(äñŽ=wîÞ=ˆ´¦F£1Uª§O32,N©´ÙÌfWÁybn·3™¨?>Pw²Ù`{¿KK ÀÒY«…õ:]U•Ri·³XB!ƒÁf l¶·wt4“iµRëZ­RIC]ç>r“Æ? ¥ö&-ï`pŒ6‘ž)s_ú„µÈ&}êÁ$ìœUa¯?‡äâ¬íS Q¥äIê0¸¯û™Ïh§EÏ•;èo€®RüþûS§~øaÍš·ß^¾|úôvíÖ¯OIÉÍýõ×ü|•ÊhäpŒQ£àN?¿ˆˆ¨(?¿zõbc nß&W‰É8Y,6[§Ój5O"!‘kb°ÏƒI Õ5ÀÞGµì³g%%EEãÆ5z´H$•zy¥¥¥§?xž~ÿþ;-Z$$tì8qâÛoûøqNNnî™3gϦ¤tïÞ­[3f|øá¤Iéé>zôÍ7ß|³fÍôé3fÌK*ƒ¬V³yúôI“ÞÿÎû÷<Ø´iÓ¦õë'Mš<ù“O»³Ùjýᇟ^·î“O¦Oÿä“””³gO¢&”E"¥RGbJáLÚ—¡‘ïÏår¹è¦-´»Eë­AÒ6Úʺ}Š~œ šs¸Ïq˜è,-èW€J ùŽ”umíKb` n±´n›Ëåþý÷”)Ó¦}ðAaav¶B!J¥lva¡R™’’˜hµöï_¯žXÜ»wnnEEj*tFÔFo(M ‘çPSõ`6öٌӦ-[¶råªUpÔÂgŸÍ™³x±É¤RUUõìÙ£G¯^ÇŸ_&óñVE¥Òju:>l²ù|@¯×éÈ ­Ž3ê™[ªá·@ r¹ 6iÒ¬Yzúýûwï6nÝ ôƒÁÁaaÙÙÙÙÙÙ,—ËãED„†††’òo³Y­"‘PH:ɱÛù|>6z£­„»©;ºC©£\IWt´¯¯Ý.—k4 xv†ð¬¬ÒR½~ÍšcÇž=ûê«aÃ"#gÎìÓ',ìãÿøãÉ8©»¦¦ººª*1ÑÏÁ ‡:”µ¤§TâG®]»ve0¸\oذ¡C ‚VwÔ¨±cÇ?räèÑ£GoÞLKKMulí©ö:7Ân‡M&£‘Š¿[·îÝáêðáC‡2ذaLLÆ׮ݺuûv—.=zôëÏBŒÉÉ+W®\‰ZŸQrCZÀP–tša±ØlãÇ3zô¢E«V­XqêÔ±cvïž”4`yèÔ*{Ð ³X | ‡ÃåvéÒ©SçÎTÍšÍhX7^fRíÎç,j¿Œ¶«T»ìJºÀŠ ¦Ó þþþþþþ0­ýá‡~øá(óqãÆ7|YB<0,ÎÌ|øðáC´íB¥ -U.pùÒ³g÷î=z€t}úéôéS§.[¶zõš5 ]Ÿ}6wî’%¨tÁ˜Ñ±å ä„jÇHËD›Íj…†¬_ø*)©±ÛÙl³lP ~pN§ÑILíá*ŸÏf³XJUS#ÊdÞÞP°û‹Ïçp` éÜìr7løñÇï¿_¼xñâåË]Õ>Ú~9O¿üråÊ•+ÿõ¯Þ½{ôèÙ³{÷ž=M&µºª uzF*©¿Ž=ì«‘.rž ¨%vJÆènÐÞyçí·ß~ûÔ©Ó§OŸž>}ÆŒ3–.]ºtéÒ      àà    ¸×!æ æÏŸ?ݘ €Jú§Ÿ~þùçŸ!怀€€€€ÀÀÀ@rù–T´ ½¹³é†X, *Uuuy¹Ÿå(¦ºZ©T©.—ÍÄb‰D¥R*««üý}}§L™<ùƒúöíÓ§gω'Mš>ýãçÌ™3ç‡6nüþû;vîܾݱfAJ©~¬•ÁŠô­·F=Z$òòòö†Ü•””—“‡“Ã./´a´eµ’ ;6Ûܹ³fÍœyîÜÉ“GŽP÷X­2™¯o@@zúÝ»·nuîÜ»÷€ðv‰X,‘°ÙŽ£ã,xö»ïÖ¯_¿•|úñ’è\À±µAßL¦(kJj鎴út%c”á:>t×v5h Ó—KîþôÓ‡F•jÐ ™L"!Ý~ÄâÅ™™òeYYäñtð½ÇÄèõ%%Žã.‚·xz½——L6xpÿþ}û6hݨ,]ƒzÍÛ[&óñ=Äà`¾ƒGž<ÉÏ/--))+KLlÞ¼U+ÇѼOm£/8ƵK—Ž;u‡r ôCbÿ3ùgzÆÇSRöí{ü˜Ã 0›Ÿ>mÖ¬gÏQ£„BÊ¿0—†§fmð¬P(‰D:F£Ñ€õî®]»víÚ5pàÀÂ1bäØ-Ùl`¾ÃbiµjµZJ5Ù»¹6ÆBÛaègÅbÊCsyyIIy9¤;Š`—1¨ö`BîJ±Z­V¹¼Aƒ ºÙ²š>ÿÙ³  ³9,L.g± CB,–ˆúìžW;Ö*šgw hRIí¬€FŸEw¹¹+‡zõüýùüÁƒ{õJLäóY,8æ‘Ï7 6›É´Û³²?ÎÌ„ ìDòö É>…Çc0ȺÖj ²5#µhj”a™ÝNlvE…N—‘Áã±ÙR)H¨T^^<^d¤XÌáTW z¾{·²ò÷ß]Kƒa6Ûí*—kµúû£.oÉüP#^PûœCb @]£Ž@Ñ ïRAª8©Öž>/öü»¨©áó®_W«ÇŒa±jj,&Óf3›û÷ýî;>ŸÉ¬®Fïß²%0Ðl¶ZÃÃ)Àñ$› {nX¬fÍ22†}.8 4T*µZ£))©®¶Z¿ÿ>5ö“3ÇËË-–êj­ÖfûðÃV­‚NêÕãr‹ŠT*«uΜ3gÔjÈ9ºã¡.¹Emüaf¡PÈå …Hg$Aøûûùq8J%››«P(  !¿jŒíBýoCh¶Häí-ÇÄ@§¥P9R~(wäpðu AH…8åòÂÑRò$õWµJ5â.WîTvô˜kj¤Ò””á÷n=~|ܸ¦M—,©¨ÐjŸ=ãr´ÚåË/]zë-¡P§ JCC¥R“I¡())//**,D;Ð Þ}w„ RSSS‡Å‚a(ƒaµS¦Lš4eŠÑh0èõ¾¾þþÁÁþ¹wïž=ÿú×°a#G¢SËgÏòò?æp ³9(ˆÁ`±š5kÒ$.îÀcÇNœP«5®°°¼\. ð÷(/¯¬T(öï?tèàÁÐÐÀÀ€€æÍ›7oÙòêÕ7®_‡F­¬¬¼¼¢âÀÇ‚{Z·nÕªuk˜Ú€etfæƒ÷î5hÓ¤‰T*•zy]¸pöìéÓL&‹ÅáìÛwàÀþý°‰çÎ;wnßnÕ*!¡}{pŠ!­['$tèðûï;vüñG›6­[·n-Z/°J†Ð§Çhˆ«ÚDÕÍÔ]ô§žgíZéLÿn˜‰#½…Ò%ßjµZ‚ƒ#"¼¼Ѝ¨={¾ÿþÀ«W6üæ›°°®]ËÊ®^½qC"©ªzøÐÇ'<œÁ=zàÀ¡C»vMKKKóöÎÍÍÎ&Ïn–H$oéÒի׬‰‰©_?220088,¬sç„„Ö­ £Ñlþý÷­[·nŠŠŒ¬W/224ÔßÊáèÑ“'Ož|ö¬¬¬²’Åb³y<“I¯×ëAI¼mÛlß^¿¾J¥TÊå‹Í›÷ùçùù¥¥rù²ek×®]äïïïß¾}Û¶­[GG7lؤɤI“&͘ñÛo¿þºe‹X,‘H$ݺuêÔ¹3tðii·nݼٺubb‡dÈÍ›iiíÛwîܣDž W®¤¦B-H¥‰XѤÉöí¿þºqãìÙ{¥®ŒŒ{÷nߎ‰iÔ¨iÓ &Nüè£_~ùå—Ÿø|>?>¾iÓÆ‹ŠŠŠŠ‹ÇŒ:tР˗oݪW/5õÒ¥óç›7oÙ²M£=t „a8®ÓéõFã;÷ï§§ûùI$|þW_ÍŸ?þãÇEEgÏž9sò¤P(“ùûC›vãFZZZLZ®_OK»qcâÄ÷ߟ:uùò¯¿þúë  ???¿¶m[¶lÞ<,,2’xð?Æ?~ÊjÉËbÙ¶mÇŽ?þplµæÎ]¸}%'''ÿ“ýÎ>îä°^½„„¶m †¬¬’¥R¯g±ìvèœÛW=㋵‡ÐRyyy{{{ƒ‹HÐ%>|èСCòî»ãÇ_TTTTTJjèÁa¨GAþÑ%w)¢W;th×®]» 6n,-…˜˜˜˜ôô¶mÛ¶mÛ5b€Á-¤iùùݾ½d‰ÉÄç—–¦¦Ö«÷õ×£G?z´|ùýû¾¾Ç·n­Õ¶kçnvOJupªJ†ÔA1êhõì¬n¦¿/ªýpW:Á`66xpïÞ"‘X,’ê~PÞéõî];vìÞ½oßÞ½{÷Â>]8V4* –v¨š$Õ£µ/ç0™!‘¨ÕÕÕz½N'‘(l6“Éãýþ{VVß¾±±^^4mêã3|øŽO?hzlB¡@ 0›6EG——ù%‹e³9ž” ÑÒçQàt´C¤!Uò¨“ h%@Véí9z?º Šº·yÑïZÎÀ@&óÙ3gÕ3ƒqö¬\Þ¬™Ýa³Áb é’ǃKØÍFÎú=Ña¾(¤RÞh4›KJär³Ùh´Xìv­Öd-éÇûþ}­ÖjMOöÌh„sºHYf2a´ h²®Kn¡`'7¸ c±Ølðˆ@.=A Rî°àFKŒ®€f,_¾téÒ¥ûöÝ»'ŠD¡¡ ƒ¨ôúõ_}5aBíÚ5jÔ¬YïÞsçz®€–H&sðàvíO*§³wï½{Ž.8 óóKKI0Ñf³¹\²ØI³sÊ&®Ùl4’ŠjXÑ6™ †¤¤6m‚‚Ú¶mÜØÏž:øq[»víÚ5klCpx@¥êtZ­N7þüù €i¨x°qƒ&º‡×‘‡°0ê n¶Ï4lبQ£FZ­F£ÑˆDb±XüøqVVV–ŸŸŸŸŸyf4AC±’’’’’’בC˜dÆÆÆÆÆÆ‚ŸGGK)88888¸öx`›¬ÊÖ%?OžääääÀê=WðQ‡„„„ OÑÓðûÃÿþ{É’ &Lp¼`±`cÑ(‘ðxƒDeµvìèï߬YR| ¹¹çÏ<ˆv¢`ÿHYˆ3™ÿ}èО=cÆŒóöÛ  ƒz ¾Q#èUˆ™Tú³X,th×NʃÍFúCö‚÷åx·„ïÚ‘ÏBü`9Èb±Xp@º¦MnÌé5Œ#}ÞQö).ø»6úêÝBÊ•ºÙyÂLWÓÕʨ43½iFã¬}„ªc ¡‡n#44444ÔÜ>{VTTUUU¥TÆÅ5mÚ¨¨Ý?ø`„¹sSS¯^½uëÔ©””;¼¼¼½¥R­V§#ˆ† 5jÒÄf³XÈ.d¾#ò° ƒÍ6›5šêj&S ‰èÊwÒæd’ ÀY— }ÉâÅ_~ùùç_}5oÞ¼yV+›Mú£—ê R!Ü•ø >@·{ÃT“ª%&ÓhT««ªüýÃÂêÕ»páÊ•7š6ŽŽŠZ·î»ïÖ®5kêÔ3ŒFjÉ$âÉÞ¹sïÞÞÿí·Gõ ëIÏ•éã¤Ú¢trjMÖ/“yñâ•+—/÷ë—””””—WPðìYnnvvF†··Ÿ_@@ÆQQ‘‘\.Ÿ/>|øèÑÇÑÑQQÑÑPÚ¨]bÝIx>…ú…¼„tîÜ¥K—.à8…þÔÆ—.éõ¹¹ Ft4ƒ!‘ÒCtLU£)/ONîС¸˜Ã¡zYTå<Gz–;,jw9<¥¾G(at„. ¢ÃY¸ R‡ ´†ûQg\ ç¨vOÔg¨Ì@ :¹_å-U B*ðÒ¤·“¤_5×mÚó¨«âÏs¢¢4hÐàòåK—.]ÿ¹OHHLLL¤K8Fß‘-[¶lÙ²%Ø–’_±3§OŸ>}útjjjjjê¹sçÎ;צM«V­ZEGGG“ß…T*“Éd¨Ý"‹EÉÚ¶Òå<}E[uʆ–z¸Ü¥K—/_²äË/çÎ;×fãpÀœc;†ö†¤‡eJ}‰¶êVÏÐ ]äwDWÞÁýT{Ho+({XMôMZG²ÿmÎB?î má}Áâ ýë®z¦K:>>¼GŒ9räHò (%t¼$‹Å0ÖE—é%ƒ–ùž6›ÍSt¨=t,ê®Öé¡£/0ùûÜeËÖ¬ùúë%KæÍ›=TÏ”›Ç£)ɃvívÒ‡2*upçÀC† ´sç/¿üò‹Lä¸a–’L°cC×Ñxè5ˆ¶NBŽÖ(³ô> §ÐÝ0žK:b¢ç„îTÐѪÚvNwëÖ-[¶lkSò(N£Ñh¬½gÌ΋ëÕûùg?¿nÝ,PCׇC6[rr~þ¶mîî!¸\˜ ;º@¿YTVám”Êš½Þdª©)- ªW¯AƒÉäpܵZd?HÅO*†êÒïxÊ›qæ)¿š´ív«U©ÌÈ8p€ÇkÒdäHÀÙˆŒÞ3ºjKkêôPG¨1 ÔÌ} d¤¨gÏž={ö,*zöìÙ3ò8nºkMçÖŒn¥ Úƒ¢¢ââââ¾}ûöíÛÎVºxñâÅ‹׬Y³fÍšE‹-Z´¨}ûÄÄÄDxR©ìÜyÆ •*3säȈ…¢k×-[bb¦N0  àóσƒÍæÐPz[š˜Ho½¥ÑˆD7h5/ ‚¸uëÖ­[·Z´hÑ¢E ´ÕrgÌÏÂ\þìÙ”””ÔÌŽzC2;wë–”””Ô«WçΠ5º~ýÚ5ÒL§}ûùûïcÇöîÝ»wïÞ€­ž={õêÙsÊ”éÓgͪ_èÐÅ‹‹Š^¼xãÆ7n<þÜ9G]ýÝ•J‘èÊ•êjoï3g€Çƒ3£à¯¿¿@иqY™Nwÿ>¸vs'?ÞÞ|~TTq±FsófLLqqr2‹eµ:êë@gA´0BC[´­€±<ÈÈáñã'Nœ8A¶$ÔØ]¾™ýÉæÍ›6mÚKôºð„6m¼½OŸnÚ4$äÊÑh¬Ö¦Mú)/¯m[Î×W«%]ü2™ ÇåÂqÒbXXEE›6J¥R½hêµ£Ó éS7nŸÇãrƒ}}!Äón¦T‡…q8ž„K$‡~L”J¹¼¢ÂÏO,Kg‹´ez¤¹]>0ø ë< @0¨`2 èÜÝåÄyhõOB¦KMiÐpÔ²ãõ¤ï\§äš!Z2T8ý)Š×—C´^è5H*tžŸ:º!´.ùAIô\¢ÃÕ¦!×Ê îÝë×OH`³m¶ÊJƒ!*ŠË5™¤R½¾¢Âfãñ4__tjA~~”í5(ePëƒÁë$ ÂpY"ñõ ù믿þúóÏ-Z¶lÙÒß? (l7ȤÞUq:*OÑió´Nз8‘÷Põå¬t#ŸE%¦@¨¥!ÝS3:¡%¶¢& ž†µXt`M¯‹ÚCÜ©¤ÉJÆÐçÐ) ê„î”Ãq"ê<äp¥€¦@=Ö¾b !*‚‚ÂÃùüüüââ‡####ÃÂ`8 ù+--*ÊÌ„Íïð¤e0PKà… $=¶Íº´ù‡xX,6›ì,á~£Ñb1Ð%ºt¡u‘Òk U¢5ÓrðDäããí ÏÅÄDEEGgeåäde?vì¸qv;‹Åf[,F#yr=|ÝÐÑ—5zô¿þ5dÈ?þðæM;wìØ©Shhxxd$¤ ëúhèSnºò”£55ÕÕ ¼«——·wA›Íd’Þ39.—ú}G2-úB,,·@<¨ª mÇÈßîFÎÔU²%y™7ò\ºPõ zœ9Þ€1AªÒ‡w„ ]µ8÷øŽ}®Åb± Ç)¢Úp__TÍJ¯ úo2-X^‚Úd2™Ì¹sgÍúä“ ,˜;wäÈaÆoÖ¬eË6mÜyí„8ÉV“êYPµ;:ùG¾(l6?9ãrºª/T¢¨¥2Oö)ÒÛyÏå„^žž·Òèý¨'Pr¬Bj@:<é4¨©ÉË›=ÛdR«ÿúËß¿S§§O¹\W&PQQf³B1fŒ\~åJíóet¤Ç A¶'ЛPòoRQQYYVuA.0@Í>¿ÕzuýÎ>¯æ½ÄâÈÈæÍKJ «5"ÂYMï_ÜE¤Ýn·ƒm)ºÔz{÷÷÷óóóCåNJ`"_ %Wô·wÕR9ß¶±`ž²ÿþýû÷;vìØ±ðM¡þ ÑÖU$ºsç³Ï¤Rµ:<Üng0l¶ØØššö탂ŒÆà`Ò©=' Aðù\.A z½JÅç R)¼ úvîZ` ¢¢¢¢¢îÛ¹sÇŽ;BCCBBCݹþ8&ÓjU©jjTªû÷ïÝKOß¶mÛ¶mÛÆ?~üøêêª*R]ëN¢D"ÚGN¥…¶îêB(Ôhš41›ŒšŽ îÞõò’H T «µ¦ÆÛ›Ï¯_bq'=2—®PØlEE6›Å¥ïØþ ‡E£á-Z4oÞ¼9ìÕíª›ëÓ§oß¾}!çŽFÔ›AMT€Õ¼ã|™ji`Äñ¢ßF@€X\TD¾…Ý.fdh4Ó¦q¹ry^—+—ûù¡Æ+ä|–jóm¶€rÌÿ¢©×¼¡Åb6ÕÕ¥¥OŸÂ…”YP=s8 j=&AØl +d2I'˜V+“ §èè¸îEóC..Z,‹ãA¦àOÂn·ÙàBÈN§Ó B!e0µJÎC{è•Ø¤¿R•J­6•ÊòrÏË+((.®}û®]ù|ƒÃa2íö¥KgÍ:T, y<½Þ`…Âó  F‡ r¹ðÛƒp¡P£)(°Zm6‹Ç“ËïÝsµ]àù€A EM’T ¼Ù@ ¬$ °À³¨»_­ÀÕžkøQ¥ êÂßQùû*¡7 dieBfùtˆƒô¼ïW i]B d!-%º?8wñÔݺ¢¢²²²Š¡¹r×ЇÂð{Ĉ† “’¢¼õYk±Ëåp¶^vŸ°^]RR\¼m›+ïU0 E7†3 F£FÑÑQQAQQp7¬gR¹ë ‘«ØÝOœj¯ýNúB9r>÷-Cúdƒ~¨@zÑ;é5ƒæ„nMŸžÑk•^˨$ЯzR¶î~£–zÐmA)¡žÔÀš5«V­Zÿ†á+ê¢D&óòòòBCà7´“®c%Ë™LãùùøðÉ?ø ¼œ>h{•èt”ú ÈËS©`C‰ŸŸ··LõS]]UUUExÐ~ýúõ4~£û!<ÁÝ4§cÇví:t€“ݨü®¨P(ȼùúúúh4:©(wŽó‘ƒ”²ZEÒz}A‡`·GíÒ5th“& ÆÐ¡QSC é‹Ù5L&*Q=ÄêîÓÿ¿›J9@I]®`º ²„*¡@Ò<‘®ˆˆððððo¾INNN&ÞßËDDDDDDÐÛ.ÏßêŤK©ügÚ±W…§½„{Þ¬t¨t‘;'¨¤‚ÚO¡=)Ȥ{Ëe´ÿ¥ÒEï¹%•Ý”bוO44´}f0 Ò2þüù_|ÿ†#›\åÖuQ¶oÿí7Ò(Ø'Òï·€Hî¾5Ï¿ÔCå«UYz2Ú|Q4'ÌÈ…s‚ ¥ÅóžÑÇÇd*.þ裚š¿þò¤ÕråD ÅÓŒžŽD"*•*ŒÐÈqÚÿ­VëUñúÚ®;wNžŸÃápFŽìÙ³U+‚ ˆ'Ыð®ññqq͛ûÃBwNÎãÇ»úòºtiÑÝ?÷¢ùr= Ô| ³æÆ6Œ‰Åذ°ÐР ëׯ]»~ÕËå øV(¤R‰D"!ßÈn·ÛÙè ‰z}yy^›Íç‹ÅkÖ,\8`@ýúAAä¤ð™L˶mû÷_½Zû @-ZDF²ÙB!Gª&=yùæÍ6$]ØíõîMŠ: t=äqu¼z'¨±`•Àu~àôê ,X¸ÐT}±Ùl6X’nÖ!¶û±ÿ?¨µjw ¿!” ¡îyú´    33333rÍb\\|||<éÜÖ— ró „ ìÈ wÔºiG@Y[ ©Õ¥À@8hB¨æÔпÁru3ÃR÷ü8Z®Áš¼Éd2A™ 5ˆ–x¶"-\¨Æ]äöyçMµ¨íª(¤oNOO &¦ç µÞ t4=ÄÝ)¢äàrN¥H· B-¶\«¨É:r|Š®èt¥Š®måøå¡a/«(BBÐUSú6w©;vcTIÒkþM÷ãìJõìú½éªêº(ÑßäWCÅ ž +*ÊËËËaÐ@_µvŒçUNÝ¥òßióªyµÓrOb†6[ùúúùùùåäääääöSÔ·öôiaaaaLLLLLLaáÓ§OŸÒeÞ1æ—ÿÞ=K—'¼)¹‚ß WYYYYYYh«Wá7*]Ðv*çyÒ…Û®ÿþIC¥ Ú®‚ªE"ÝD uÇ`0à#Aê¸ßR¡«ƒ)IsuPá¤]05v…xéûÉß‚>¾r~oÇ«h9¸–Wc3ô~ôß®ŸBA÷¸ûÖè£\w±¡û?^‡œÔŽçò o .ÀŽ4X¡$ ÷Œÿ¼¾V«yó¤¤Áƒ©7k’*_sß3zª3yÑw…_äì’’RÇ9‚ë%1wâ=o®g·ÛííÛ·k×®ÝÍ›·nݺóehgÍl6AMz·¡Í‘¯¯TÊdz{‹DŽ[€=í.Ÿ·ÉÃ3è§xàÐÕ½r„WUuAƒðºÓ¢o3¡t»?ê:???Ÿüàÿ3K N$õq]Ò-,,,,,tw•\_u=¸NU‘£Š]Ò_žÕjµBiÓP¯”äV ç¥ú=¤±sšº¿KG%¾sZŽ!Ôs¨71xµÕuô_‡nƒéH¦Ýn·Ã”Àqy€ºµV¦/` KävçgѧЭ(h¹XB=EnÉwŽÇqAÅùÀ%x ]ð@sB¦N¿M â¡b†òõëGEEE=ésùÅ@k…)ÉÎ[ÛÜ… ßBɳ»˜ï¡¶N£y¤?NìÑ…´éž¾ÑEt˜EŠîÜÝUǘ©Ø^ç-zÌdžÑg\ǃþÊY­Öh4š‡…nÞDÛvç÷pœ:RuR{É×VÇ®þ@ˆ³ë”ÚeÃ}ˆ;i¡ ¨œÓóL…@ÿB'$ä©èTœð•.²í !ûOk¹öVëå¤ÅUˆ¶K®ql¨˜Ð4É_¨Ô¹þvÐ~Еt9˽–QùAG#ô¶Ëñ)gér%µ‡x*]îl¨ÿth»`ÙŒ.]ÐcB-œ8qüøñãíÛwèСCPPppp0Z;`\âø½£µƒÖ s›@šVP9t”w’àië(t |~ŸKýí®oBÃé-’«6Êù)4„>zq×v9æ\›ÌÓSwŒ•(ç¶ËÕ)T>Á/´K`Ù5HJ5fÆ=#î_mψæçu€~‰èÌ‚ªÉçïpuü—gæGp<ø8&KÛ9]«µ¨¨uk*çÖ¦öœ8ç'00000pÉ’Å‹/vwXh‚f€Þ¾¹JæöíÛ·oßvõZÔyQAAAAAÁæÍ›7oÞŒ>áž¹P ×y žLF/pÜàå•“3y2ƒAj(˜LÃj ©÷vUt‡Štüü|}}}»víÒ¥K—üü‚‚‚8Œ4&°Ùl6X¥jdd½zõ깓yºI¢'õ‚,äæ–”4irõjQQÇŽV+´à0_–˃Åòö-)íœiÄ`À‘¡ uøg–Nûõëß¿ÿððˆˆˆhOa¯”OXXXXX,ˆBÉ€¿õ'Ž;v¬î©ƒó™Æ›4iÒ„<¤T¯§uÁ ×îzÇšå¸V«ÑÞÒÓïÝ»{744$$$-·ŽfÏž9sæÌ ¢¬L¥b0Ìf‹Å³µY>ŸÃ±Ûy<‡ d2€ 6 !í‹1ÿ‰‰‰õ¤ök';ûñãÇßôÛÔFTTTTT”+oD¯òM¡$¡T_4ftˆSPŸŸŸOúat=% ³\ÝC…¹‹þÛý³Î!îSt«ë;]ãå%“Éd>>¾¾¤'zzi£¿é’ ªüÒRÊE Ýv»voËôß®îõ4?µßó¢_"*ôca<ñºˆùßUðZ‡ôãFá¸ànŒƒÅë,aþo*j¯ê@ U‚ ÓuÔ¿6´cXº0® ¤ $ µ±¢÷ž ]¤Í¥~!í  ‚ `jçÞ!Æó‹¡ÊÊŠŠŠŠ7]>¯PÓ¿ÜÑOtàh#º ¬ÿ<(‰B'ÈÃcÛ.Ü3b^O{Æ×´‡àÀgäÈ‘#GŽÌÎÎÎÎÎ~¹#]?ó";bkwòáy_Ï×ßäús]‡†ž¼iÝK,µÁ*¿. JwÔ®zvîN•ìɳ/G@@``` zʳ'O¡w‚R6‘Wk»ßóW…'uáI Cò¡wÛxj„¡,›P['w‹[té‚á »6ãM¿æMAµ‘¨Bne†>C—.ò)züXºþ×aÐxÞ¼Ýn·£r}#º?,^ëÒ·K$b±X –b/rÃ.0¥|U±A™¼Ž£œ^-ôVˆìéœí^Ü3b<ãezÆ×iRàlý<õŽï@î\Ñ[ãWm»¾çEb«}¦F7z³ å—™Õþ“¼¨d¾è|ÖÝÞTJ_4ÏF#A°XtÝ$¨q}|¼½½½={jÃëÝk{k®^½råÊúäa‰®K¯î€º–\¥Îf³Ùb±ë#ÁÝå$áÿ9¨Ô3€á7%tEXtdate:create2010-11-10T14:11:44+01:00ô]%tEXtdate:modify2010-11-10T14:11:44+01:00…Då¼'tEXtpdf:HiResBoundingBox959.88x599.925+0+0×eRa tEXtpdf:VersionPDF-1.3 1 0 obj << ‡XܽIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/screenshots/ss-3.png000644 001750 001750 00000527353 11617757645 023753 0ustar00simonesimone000000 000000 ‰PNG  IHDRÀXrfÄ pHYsHHFÉk> vpAgÀXD4º€IDATxÚìÝu\TYÿ8ð;ÝÁ CwJc€¨X`‹ba·k熺v®­kçkઠآ‚k €„Š”tÇÌ0Ýõûã|çÇ(âbâîsÞ¯×ÃãÞ¹sîçž Ÿ9÷sP99åå‰Á`0 AAAAA}!XµZ£Ñë[; ‚ ‚ ‚ ‚ ‚ è¿+—«TZ­é"µZ£Ñjÿþ;-­¤ÄÙÙÎŽÅ23£ÑH$ðª@ +EEUU|~÷îmÛ::8‹Fc0Ls›m¦¥åäTUq8,• Ú¤Ñ(¡¼¼¦F(m2 б£Ý‡Û„ ‚ ‚¾½ŠŠââÜ\™L,ôo1ôz­V«Õj««+*JKÅb¡Ç;vÆŒ_mí¨!‚ ‚ èÓ=}úòeY™T*—«Õ _êà`eÅdJ$2™Jò¥<žP(•zxXYµ<_úes°ßç¾£>ÌÊârMw;115µ¨¨wï …B¡šn”ì¸?%¥  S'__kkF£R›®oÚ¦³³­-›íîîà`nÞ\›oÞ”•q¹¶¶ææ$RsmBAA­¥¼¼¨(;ÛÁÁÕÕǧ¹uª«ËÊ ¬­íí]\P(4)€ ‚ ‚þ@n³¤¤ªJ(ts³·g³›ËUæç—–Ö×——×Ö … _J§Óé4Zsm~Ùì÷¼ïXF«5VNKËÉ©®vt´¶f±ôz°ôCµ¡mm-,Œœœ’>ß××Í ‹%"ÑtÓ6]\ììØì¬¬ŒŒääæÚôö ìØ1==;»¬¬¹6!‚ ‚ Ö¢Ñh4z½égÈ÷A¡0…B©T«q8<¾¥Ÿå´ZïÕ«K—öî­¨ œÕj¯¤„Ë¥Óûö1côè.]AÔꆆ¤¤C‡’“kkI$àÍ›œ,vĈß~5ÊÝBù6ýðâÅëן…B¡P(nn¾¾:½|™’rÿ>“Édš™‰DBaCCÛ¶¡¡¾Ý¶Rùúõñãóæ­\Éd.^|èаaÖÖ`|…FS^¾gÏë×dòܹþþhôíÛ›7Ïûûï‹;—˜H¥¢Ñ !®V\º´zõÝ»<ž““›‘øâEpðĉ»v)ÿ½{÷©S—.egõèP]ýæÍóçyy|¾µõöíìÛ§ÕÖÔܸqùò¥Kz½\^_O£EF®X1p —•ú×_¿ÿ¾kîä„ÇWU%%edLºnÝœ9;wΟ¿?ÿ_(”É^½JMMLôókÛ¶cÇššŠŠ’’¶mCBÂÃI$ …JåóëêÊË)&“ÃÑëAYƒiú‰Lbh¬qg0?£HÉ :Fƒ L¦£ãˆ‡õî-‘,ZôàÁÞ½ãÆ={öòå¾}ëׯ_¿lYYYzzbbjjEE~¾Áàççã£V h4‚àpl¶N‡B‰$™L&;:öìÙ¯ßË—ÏŸ§¤TUI¥ÖÖGG'% •• …DR[ÛÐPYimíîN§‡…!‘È`0™¿ü"“ñù¦I¢Ñ&´m›—wúôá÷o»¹Íkm ^A¡KK<A¤R0¦[¯7P(,ÖÒ²cÇ«W—,?¾oßM›ŽA¡@ê‡ÃbD.OKÛµkúô©S ñøþý—,9xpëV''ãÄ4Í}gÚ‡àßÿB5¾jL£ƒOèÆcи&H±7]‚ ‚ è¿­i¾´åï¹M…B.W©L³šMÛüpjÛt»ÎÁ~›}wsóñéÐÁ4o òÃMã4Ý÷ÿaiÉbÑéUUõõb±Z­ÑèõÎÎmÚ´oÿáŸ`ÍÊʺ:‘ÈÂÂÌŒNo®i›à5øwÓŸàUðÓ´M,'¾f—BAAÿ¬ÿ#¦N‹ûóÏ;33Ÿ<¹u«wïaæM³°ptôñ îÑcð`ÇÖÖÅE¯×j5 ƒÁã¥R‘ˆÏÿpË ‡3pàøñ]»J¥7nܹ“Ÿo|Å`Ë+*ââvîlÛÖÜGúú˜˜£Gcbòòzöœ:uß¾•+·l‰ŠÂ`rs=úí·~˜7¯¦ÆÆ¦[·  ÐPÆ4ñª×«TX,± Z­H”•õä‰ ƒammmM"©Õ‰ƒCÿþýúMš´{÷?NåààààøúuC‚‹‚ÔÖ 8œqŒ3ø¸íå5wîÍ›«Wòúõž=sç.Y¶ŠB1=zÌž=¾—Wzz}½ZmÜ; ƒÁb±XBA£u:4‹m|æLîÐá§ŸÎ{õêàÁ“'[–z6•ž~ï^r²TªÓ!cn–œ\Z*ëõƒF#efÆÇ[Yápuu™™köécgÇç›®©×LjeE&ÑÏAý/iš/mùOÛlšÕly¶iõÃ9د½ïÙÙ™™))à§i„`ɇ÷3räÔ©?ý„B! UQQW'p8ffTê›7¯_§¥ñxuuUUÍýd2ÍÍ­¬ŠŠ**¸\++‹L¦P(”·?¿ySVVWÚäóëë««›kÍøÞ`@@¥Âá@›T*…B"¡P¦BAAߘNP¯×é´Z…B.—É||ÚµëÚ•@ I$"‘L6N3¢R)•2Ãáñt:›m üáÖétŸNˆÄ/Ž«¨HŠ7o?¾t)-M«4(  M‰@@£ùüöï/+ãrkk_¾LI‘H||ÆŸ:ÕÝ](¼råÚµ„„Ü\¥R¯G£Ÿ?úôÍGGooKË‚‚øø˜˜†4šDª¨xõêÎçÏ«ª‚ƒÃÂ||ÜÝ•Ê/.\8~¼  ´´¼\$rv0 M++6ûåËC‡æÎMNÎÊÊÎ.)yó¦´®®NJJMÍÌ,(JÉd[Û  __OOŽÃiÛÖÁA(¼vM¡ps6ÌÒ’F#“‰Dkë.]îÜùý÷+òò*+ËËkkËËssU*ÉÞÞ××ϯMƒB!‘ÐèIóêtryQQbâ;ññññ @¥âpŸ8ñÇÖÖ]º„†š™‘HtzAÁ™3;w––Ö×çäde::úøxy!ȧN%$ØØtéêåÕ®ƒQTtåÊ`Í®]#"ºw77'¨T"‘@À``‚ ‚ ÿ¦ùR‘¨º:?ÿÙҦùR[[KK&Ó4«Ù4Û8­áÛx¼ººêj33ÇÚŸË­©ññéÐ!,ì}ë”—¿yceåààîŽ Æ-e0ètii;wpáBCØ1óæ-Y2t¨½=ƒÁ`“³ƒV+“)j5H‡‚QÈ$…B&«Õ2™P¨PètX,c0¨T:ZýæÍüúë®]?ü°gÏŸ8ÚÁb *Œ‹6´ZPíX¯£1<žB!D¡Éär• A0'‘ÈdJ£‘Jår¹\£¡ÑX,sóÆ!z½PØÐ Q©ffff`ô°^¯VËå …J¥Õ¢Ñ ‹B Vk0àñd2•J"}Zh•J.‰ ¥R§Ãá@O‰"“‰Dj5‰Ä`ÐéŒ^¯T*r¹FƒBa±(K$R(X,‚¨TR©H¤VS©L&Ž :qMPMš@ PÀh˜~† ‚ è Èmj4BaiiKÖ'‘ÌÍ]]A¾´M›÷Ohš/•ɸÜÂÂæZ™Ò–ä`¿Í¾ƒxš® ò½Ííû[ h½^¯×éär¹\¡ÈÉ))áñX,&“J%“‰Dã\ HCƒP(“ùúº¸p8$‰D"¡Phôû>,›¶YVV[+Ú$ ®¡A$’JA›T*™ŒÇ{y9;[Y5×&AAÔZ ‰D  ¹Ü²2F£ÑhÀˆ ­V­V©$¡Ë---(ÈÎŽŒœÇóççÏoØ0lXxxTÔ§^ÿ¦ë«µ<~|üø²eÿÕ^ú>ï <^}}UÕ×Ù_‰$;»¼üs¢^/——”L™2uêo¿½~-“µF/q¹uu_§—š§Õ64€+â¿w-@AAAß³H@:´jÕÈ‘íÛôî½téîÝÇŽ8°sçš5S¦tëÖ¥KTÔµkõõeeÅÅUUr¹N‡ ‚ŲXd²B!—ëõ÷Ú%•ª¼üêÕC‡V­ŠŠZ²d÷îcÇŽ9räèÑ}û¶o_±bĈk×êëA|oušJõò8pøð¶mõzAƒA«mh{Ô¸žÁ •æåÅÆ~©hu:‰$'çòå­[ÇŽíÐÁß?,¬¸X¡hì-­¶¡aâÄ=""~ýõÌ™‡ ŠŠ¾uÚâSú¿Cÿž=,ؾýðá~ÿ}Ó¦¥KOÊΖJAï~/@ÿÇÆnÙ2r䂇ݾ]V¦TûàÀŽ6MÖܸqôèªU½{‡„ ²jÕ©S‰‰Ÿ¶Ý  ûõ#“•J¥²¹«ÃxÅùû÷ì9þ¶m‡Í™3qâÂ…;w&&Ö×k4­s}}¾ BBºv3fñâmÛvï>xðØ±¶mûö]µjß¾cÇܳgófp?iz~¬®]£¢†ýÖ½¤Õ ÉÉÇŽ8pèÐÞ½k×Ο¿hÑîݯ^I¥-y7¸Ã<~Ìåj4KwÓåï¿G}¯ôz™¬¸øîÝ?þøõסC‡ ™9³ºZ¥2¦¦æêÕ¿þª®6î^¯P”—O™2fÌÏ?ïÞ÷üyCƒR))•Ÿ{A£Édgg F­V«¿¯ûÑÛÔêšš¢£wì˜8188  W¯ÔÔ†­AÄ`P*ËËïßË—.=vìúõ/„Â]3X,‹®ˆ×‚ ‚ ‚ ú·ûˆÐÓ¦M›víZbâ³gÇO›6}zp0f0ˆÅ¡¡jõ’%<‚>|íÚ¦M­»K‚ƒCdä´iÓ¦ÕÔ¼xÁfƒ8Ákz}fæõë<Þ‡Þo¬È‰Á˜›÷ëwìØµkýú_ÓjëëïÞݶ-6vذ'†ÿüh1ÍÛ{ذùóW¬xñâîÝyóœI¤Æª X,‹E¥vé²bÅòåóæuêÄdΟߺýûO@ÿs84ÚåËãÇÏš5kèÿÈÈNFŒ¸u«oß¿þ9ÒÚû]Ô7öÿìÙ?þ˜–VQàèH$‚þ×jù|‰¤ºúÆGêë§N0Áήoß}}/_.(8ð—_&M ùÔ-ÿsåWÓ+n„ٳgÏöñ))Ù´)2rÞ¼u낃۶ݿ¿µûïS°Ù={nß¾nݦM!!  … ññçÎ=y2hÐäÉÆ«µ¬,>¾¾þKlí[ר5D¢´´Õ«W®¼woß¾û÷/^Ôjëë¶oÏÎ%)¨Ô·î0õõ«WÔµ+‡ƒ ¦wÓåï»G}.…B«5H$,öK÷M¡¸¸ôî=zô¸qÿý÷¡C66ØŠN'¾~šú÷ß E§N#F laÅ’HVVíÛOž=vìðá[¶ää+„>wî“'Bá—•e­^/“åå]¸pìØ AŒ^/>~¼xñÀ¦‘ªÕAEø·ÁÐÐð÷ß`Œ¯+åå—/ççK$_ö0 ™ìã³bÅÑ£C‡Þ¹Ãã5ŽbS«++/^³¦S'C x7µº²ô'øo¦ªê¯¿@"ˆZ]^~üø A]º tölU•RYPpàÀüù³g‡‡÷è±`AZš^ßÐðàÁŒ&œ?_Ue:Þòó©Õµµ×¯Ÿ:uìØáÃ{ölÞ[Ôê’’C‡úõëÒeÒ¤ÔT‰AÆ jß~àÀ]»ž?£ûjk¯^<9$$,líÚÆsèó P FPЃË—ÇÅ~0Äâ/bc££ûô‰öïÿõ×;wêëuºôô={ž=5jéÒ  <½xqüø>}&Mºv­®ŒMÌÉÙ±cР޽W®ÌÌ”J ;¶cÇÎG^·îøñsçΟ}wÜ¥Z½lÙÅ‹……¦£ßAd¦ÿe0èõz=Çs84ÿ¾DÒ°aÁÁ}ú¬_Ÿ•%“¶ÂÃCCgÏÎÈãoÅâÔTÓþDÑjßîOµº²Òô çÕ—ºBwïÞ¼Ù˜znÎÖ­aaz}llcß"‚(¦}‹ Mm­iÿ¿owiµuuW¯FEuë6n\||Cƒ^¯ÑTWߺµ~ýÇ|þç‡E¡ËÅ…L..ÞµëêÕ—/˜Ì°°eËzöäpL¯YÐæ×,èap‡y»§ï<¦Ëßw‹SSÁUcz|ÁUލNÇåÞº5vl·nQQàu¹üÕ«U«ÂÂÂÃW­Âáøük×¾fÿP©ÞÞ ŒO£+Æ`JóóÏËÉ3F"‰ŽÞ·ïÑ£†½¼2`À´i>> õl0ˆDééoß«¤Òìì3þü3;[,6F§Ó9eÊÑ£……J%‚€Ò‹]½Z[kz3>©cì#oéÒ—ªTS¦ìÝ›Ÿ/—ƒ^×hjkgͺ~½¾\é*UYÙ¥K&lÚ”“ yèõ"QZšñNðå|LÊøãÊũ©ƒ<˜“cÜSƒA&kß>,lýúׯa%o‚ ‚ ‚ ès}B h±øùóqãÚ·÷ö}fÍÚ»÷Ù3Àôš=lzÍ~l¿ï…B¡Pàª1=¾àªÇ×`Ðj …ÂtKh4XW«ýúýƒ  “éç×±#H+•µµiiM§N~~8\uõ;¹¹R©^¯RÕÕµiC§·ŠBa±Dâ»}€ ݺ…‡{x4®‡ÁÐéjµ±”^/‘äç÷ë×¹3‡cz#“ýƒ z½Xœ›Û«—¿c¯! Ó½x‘˜X] f5ÀáØlàÑ£ÂB‰D¯×hrs ®¨èáê*¥A”ÊÚÚôt6ûk<ß!?îîîá~£‚Ø}üoX …êÓ§772ÜP( ÅÞ^.ñ"3“Ïÿ²_MBAAAÿ{>áÏd:=(èܹ;wþüÓÛ»²òüùc†[F©Ä`ll"#§OŸ;·kW&A,˜?îܯ±{çÎ¥§çäÓh:Tš—–kµIa!Ÿ¯Ó‘Éï¾§5OÆãmmËËÏœ¹x±®nРáÃe²›7ß¼ñð˜7ï}këõJe}=èOÓ>\¸péRã:66}útíJ¡ÄÄ\¿ž—WPÕ¶m¿~,V@€Á°lYMMR’»{Ïž––_6ýÜØ› …ââÒ«WBÂ’%÷îñx]»FFZZ¶¬­•JûôÉÈJ==?ÿ¾‹N *(HJúóOÓ¥ýûwé2i’é’ú ûþçwšö!…‚Áhµr¹NëECAAAŸç#dz½ý‡(•êå5fÌ–-}úXX¼›âjÞ¸q¶¶ÅÅ7;öò%(PðäÉîÝ»vedˆÅ_ö]ƒÁ`0¶ˆÁP©mÚŒ•°fͱclv¿~£FYZŠDÆ·5.7--9ùý{ûÿ» ­×¿;æìËÁáæÎ5ö>}Á‚³g;vüõ׿âÁãml ý zAt:ô'X‡Hôôœ3gãFŸÜÜ’’±c;wæpèt_ߥK—.57ß¼‹]¸0*ÊÁá뤟ûŸLÆãKJΜyòÄ8ºAØl4Z(LKË͉ŒÅ+nÞ¼{·¦æŸFÜ}„ÈüùË–¹¸ää,X0nÜ’%2k‚ PtzPкukÖxx¼~½hÑüùC‡ÚÛ›ŽšŸ4ÉÉ©¦æÈ‘‡æ]¾|û¶NףǼymÚ4WñìÃdvë¶}{llïÞíÚõï¿zõß§3ÝÓÆžü'“'Ï{î>nܼy LŸ>t¨TªÑèt‰Fc0´¤ïÀyez…‚óêË_¡Ž!"´oA Ó¾mÉ:M÷W­.-={vÕªçσ‚V­:sæÎ´´Ã‡=<îÝÛ´éÀÓç9>Z]ZzüøÔ©ëÖ%%áp,VÛ¶cÇ.[6eŠ›…B"™^³ ‡M¯YÐÃàÃå*o¼xßò¦Ç£ù#Ô8Ý_uõÍ›ëן>]P0þܹ?þ¸qã¡C¿ÿþÓO={š›íþ1"œœ 6mZ¹rûv1¢sg6öó›7oút'§ÂÂ]»-Ú¶M*}ûÎd0¼›&mºä]8‡Ó¹óÞ½ÑÑ99‰±ï´Z ñ>ƒÃYXtíú×_iii .(häH—Æ/*-rs+)ÙºuûöS§*+ô÷Ÿ>}Ú4&3!aõêƒÅbGþ2=Ô²£ÚÔ?ý†}[EE<^㔠܈·÷ìÙÆ'p ‚ ‚ ‚ èÓa~ýuéÒ_~iɪ/?¾o_bâóçÕÕJ%‰D£õêÕ¾½——ñu¦¡aß¾NžT(¬¬:v óòB£=xðäI±˜L¶²òôôövw íÖÃ).>{vÛ¶½{/_~ò„É6ì—_ts#‘>ÿoµº¦æÁƒØØ‹oܸx1)©ºº¦&7÷åË´´gÏ>ܽ;9™Í;v̘.]‚ƒCC9œˆˆ)SvìÈÌ|ýº  ®Ž@Àã32rs¡0'çñãû÷Ÿ<ÉÉ>|úô©S  ‹E¡^¿¾zõòe¡ÐÓÓÛ»M[[ÓG¹?Ÿ¹¹^ûö¹s¸ºþúëÂ…ýúYY¡P _¾|æÌµk6ƃÅÒéžž!!ææQQsæìÞýìÙÓ§/^ }ûΙdoO"ÇôI$áÁÃËkÄKK…ÂãÉd.'Çʪ}ûž=Å#¾Ðÿû÷?~ó¦RI¥š›[[»¹¹¸h4÷ïïÙsölZ Э[``×®BFFtôÎ\½š–VPàèØ¹s@@AÁƒÏŸ …D"‘˜ýäɃB!Ï`°X®®ÏŸ_¸pð`bâóç55™™]xx@€³óçGŽÃ‰jõíÛ11¯^ÿôÓôéݺ™›c±(O¡`±‰‰±±£GO›fšóð µ³+-=sæÄ‰û÷ssKJþþ»¡¡]»+–-ëÝÛÞ…âñöî=pàÄ ‡£Ñh47·²²øø'nÜxô('G*¥ÑœœV¯n×®¶öÏ?ÿýìÙÜ\29 @ HI9>11- \qtzïÞ:´iÓØÓ\î¾}ï^_mÛ …×®íܹcÇ•+ååUUJIÉÇwïŠDõõåå™™))¯_  ?mme²Ç8~üömПþþ¾¾þþUU‡O›®Pp^MžþåJÒhµAjê­[7nÄÄܾýàBA"‰j5 ekëáagÇá˜ömFÆ«WϞݺ%õèúÖÒ’D¢Ó?¼NvöåËGŽ€~½4thÇŽ®®ÅÅ11»wŸ;÷ôiIIvvzºX4þO?õîíèH$~Î>¢PX,‰$=xpäHRÒ›7%%÷îÅÇ×ÔtìøóÏ‹ÚÚr8àš÷ÀØØ§OKJÀ5 îÌ«WçÎ?~îÜóç\.kaѵ«¿¿ƒ¸ó€åÆEEuꔞ~åJã=aÊ”Aƒ’’bbNŸ¾~ýáÃìlGÇaÃ&LÇ76öÂ…ë×?./g2Û¶õ÷§PJJ¢¢,ظqÿþŽ;sæêÕääI“&NŒˆ(+ûôþ ¸Ü–ôÔÇ—/ß¹ãç7yòС;š™a0à΄Á¤¤$$df:9;|x§N,‚hµbqZÚ½{7o>zTYifââ‚Fgdܽ{ófBBv¶XÌ`ØÛ;8XZ*/^œ9sùrR’NG§[Zzzº»{xÔ×_¼¸nÝܼ™‘‘]PP^.—•(•Tª¥¥‡‡»»›søðÓ§ÅÅÕÕoÞ¤¥=~}çŽZM£±Xl¶‹‹«k÷îÝ»[X¼ï7¬ƒƒTú÷ß—.>}ãÆ«W ¸cp8RS³e˲eû÷WUÕÔ”–fe=yrûö¤IK–L™âîN&»2TAAAÐJ àókk[; ‚ è[0d²ìì]»fÌX½zΜ?ÿ¼x–J++SSÏûõWmòäóçß_a¼%JJ ³³[{/ÿœÝÜ||Z; ‰äùóC‡øü€€Ù³œàxg‚ ‚ ‚ èKûˆq¯`Ê£¯SPðæMNNëîÒ¿%Î{ÌŸ³/ÿ®=úüýýoìé—òßî±ïÝ÷°_(‰doÖ½»³ó¾}‡Ÿ8Á` ÑRi]—Û­ÛªUŸžzn‰>} ˆŠú´÷Þ½{ëÖ¥K­Ñg­£å÷RSsŽ©Õ\nbâåËW¯>zÄ庸 4xpïÞžž ÷ AAA})p4AôÅÀÐ-÷}Œ€† ‚ ‚ ‚ ¯ Žq‚ ‚ ‚ ‚ ‚ ‚¾Š/6õA54…|~kGñïÐЖöèQkGAßBûö:tëÖÚQ@AAÔ:`‚ ú‚ƒCBÂÃ[; ‚ZSjjrrBøwz:üº‚¾øAAß?˜€† ‚¾0ƒÁ`0$±X ‰O¥R*åòÖŽ ‚¾w(F£P‚úÿÀÓÿF¡Ðèw×xwÉÛë ÿø/°-4Æ`ŒKßõöÓw½»Îû"l|Ø ü: ‚¾Ó¯y ‚ ‚¾g0 A}a••ee0é AAAAœ„‚ úÂ`ê‚ ¯A¯×ëõúÖŽ‚ ‚ ‚ ó…G@7444‰D"‘44AaaaaAB!—Ëåµµµµõõ8`€««››«+‘H ­Ý ø|>¿¡Íf³Y¬ÏoM«ÕjµÚººººúzN§Óéìí[{/?äß{Á#ÿµµµµuu©©©©ÏŸãpx<ëèèààèèåååÕ¦ñ!åoI^^~~~¾B¡PÈå ''''GG …B¡P¾MÏÔÔÔÔÔÖ‚HÄb‘H,vssssu‘H$‰ômz¦9@ æææææåuîܹsHHkEbJ£Ñh4‰D"‘JËÊÊËËË>¿¡Ïøü’’ââÒR4ƒÁ`ú÷ïׯo_oï¯ ¸6‹Š ‹Š@$àÚ¬¯çrù|É÷vm¶N,Î̼~ýìÙcÇ®]+/?xðĉ-[Z;*‚A”J…B&{õ*##) üÆlÉ»@oïöí©TÁÀb±X,|’‚ ‚ ‚þ>úƒûõë7nܼY]]Q‘Ÿß®]` ¿¿Á ×+•8‡Ã™›[XØÚX,gcÃáA}= õðaVV~¾¿¿ŸŸ¿?•ŠÇK¥Ç=ºw¯‹‹››Ÿ_§N:uêÄd2™ ÆçìL~~~þ›711±±W®„†††vîloooogG&“H$‘H$’HT*•J¡€?ZÔjµZ£™*•ååW¯?~øð©SiiDbÏž:°ÙŒZ-•òxXlÛ¶S¦LŸÞ»·ƒ‘Ø’û¦R™—·{wU•³ó¬Yxü“'÷îåæÖ×;9…†ŽãçG&½=Aµº¤äàÁÌLsó9s:v4ö¸)½^*Íɹ~}ïÞ;w*+™LA¯—Ëëê ‰Ä¨¨ß~›;×ÏJý¶¿¾WƒTš—“™Éb Òµ«…×Ú1AA} €¦Ñ¨T*•Å23c2ÝÜÜܵZµZ©ÔhÔj…‹Åáôz ƒIêt..NNvvOž$%=þìÙ³gOž¼zõòeF†¯¯‡‡L&WUÑ… ƒáëû±) 0vR¥R©”Ê””””””„„øøÛ·<ˆ¿qÃ8cœ‡H$)D"AÒ\.¸\wwGGkk++ÇÌ,#####£ÿ~ýúôùœÎ­®®¬¬¨}èëëî~üø±cøú пÿþ Eþù‰µZ¥R*i4ÉÔjµÚæÓ‚¦GÐÅÅÙÙÞ^«ÕjU*…B.—H„o}?ǵkW¯ÆÅa±h´ÁPQQSÃãEE=~<•J£Ñéà ‰»wïÞ½s§ÿðð.]îÝ{ø05µ¸¸¸¸¤ÄßßßßÏïËF¢ÕÊå µµˆÄ××Ï/ >>>>>Dòüù‹yy8ǃH|}}}}|¾Ô¦‘€ž1¤´´´´¤dß¾}ûöî‘ лwhhË#iù™ÖEEÅÅ%%àYòòòòòr:LF¡T*•J­&<þK£æ€kÁÓÓÃÃÉ©¸¸¤¤¦ÆÊÊÒ’ÅÂáp8"A¤Vu:*•J%“]]ííϜٴiß¾û÷ïßOH°´´°`³ýü|}=<6lذaÆ‘#G=šÉd2?æצ««½½…ÅÓ§))¯^û”¥¥¥¥…Ell\Ü­[DDDE%$ÄÇÇÆº¸8;ÛÙ¡Ñ¢Õ®\¹víöí pmšFòµ¯M¡P(‰ÌÌÌ̘̯}¼LiµII‰J… ^^` Ãd¼;žR§‹‰9}úĉââ‚‚¼¼ÌÌÒR9}úÌ™mÛÀþMCCzúáÃׯ—”0™M]]I‰\îæ¶zõ¼y¡¡¹¹7ož8ñÛoüñüùž=11§O³ÙM^Þo¿Íœ¹}ûòåþ¹gO~þÝ»W®}úôªªöíÙì9sBBãÙ¾="¢W¯Ÿ~R«ÏŸß»7"‚Ãù§‘ÜH„áÑB$ÚÛ‡‡ômŸ§kîw‡Á “eeíÙ3iÒ/¿ÔÕÅÆÆÇ›>k¢ÑL™rýº@ ×ûùQ©Ì·Œøû¤ÕÖ×ÇÇoÞ|éR]ÝÚµƒwíÚÚAA}+€&“Éd2Y©T©44ÆbñxBQ©”J©T¯×é´Z<'“Ñh ‡C4Z­>|ذˆ*•B!‘òòòó òòÞ¼)))....+$ªMOOOÏM9©ÕjµJ•––žž‘qðàþýû÷ƒ% ‘ˆÇÓé4…Â`P©d2ø7™L$Û×ë ƒ@Ðë)ss33ƒH$ðx½^­Öë5F«ý´n£Pmmmm­¬ôzN¯÷öö÷ïСªŠËU(Ú·oÛ$%ïÞíÑ£GîÝñx<þSS   ˆV«Ñ´äªÕNWVV^^SC$b±ZmRRrò«WíÚµmhaÁá°XjµV‹ Ø»7ƒA£Q(……ÅÅoÞ––——Îü4r¹\.—ge½|™–VWW_ßÐУGxx¿~ŽŽNN..$™L&S(`¼;•J&k4@`ookka’ž_*mIxxhhÇŽtº……Á"Á`0 ¦]»öíÛµ‘\¸}æL·n!! OÏ/Ùo¦‘DG_¾|ûöøñ?ü`ŒÄÎÎÞÞÁaèÐaÆ ‘h4NWYÙÒHZ~¦}n¼dgçç;;ÛÛs8ÕÕ\®TŠÃQ©/^têüù}òaP(‘•”ÔÕ]¹ríÚÝ»žžîîà«+A4‹ÅáˆD|U£TªÕöö¶¶ÖÖ!!AA¾¾ …Áܽ{ïÞãÇ™™/_æä899;»º|Ü9®Í’’òòúú{÷Ÿ>5j̘ Ο¿xñúu KKGG‹Åb± ÅÒòáçOsrBB:t tp°µe±jjêêpw}üøñãÇA$_ïÚ‰D"‘èþýû÷ïßïÒ¥K—.]¾öñ2…ñX'NÌšµs§P8aÂСƒwíêîÎf›~…¢Ñ…ýú?u*•ŠFët\nb↠eeJ%‚¸¹a±<Þýû[·ž81gÎÖ­`0¢Rž<ùë¯r9 Õ·¯—W¿~QQC†Ü¾ýâƒÃ!ˆJU]•¥×»¹áñr9M¥zxtêäåÅ`üý7‡SÏÔŸ–€þgÍ}Õöî2ƒA©,,Œ‰Ù¾}ÿþW¯(¡²2;›NŸ?÷îåËÛµ£Ñ¶o_²dýz,ÖÁÁHòóss—-Û¹sÍš[·¶m[»öĉ¤$¥ÒË Aòò²²zõŠŽ¾råçŸ]]ß-}ô¾xfÌX¹ÒÛ;"bÕªS§ŠŠzõZ¼ØÙ™Ç»uk÷î½{ÓÒÀe2gç‘#—. W(.]:tèâÅG‚¿ÿV«]]ƒ‚¼½±ØŒ •ª_¿… f³%’¿ÿ>vlýz.×ϯW/¡055##/ïõëôt4:2òСß~2ÄÆüض­é~íÛwø0xU¯—ËóóW­Ú·ïÞ="Q")*zöìþýQ£Ž›=ûíýÐhª«/_^³&.ŽBY´èòåwû‡›>= €Jwdµº®.1qãÆ3grsÙl¦¼<~ü·ßvì¸x±²rðàˆÿ‚‚ÜÜŒŒ§O_¼Höî]¹røð[·>|òäÁƒ§Oy¼[·?>w.9ùøñ·o¿p¡²²oß^½\]³³33Ÿ?ÏÌ’’NœÉýoôÞ¶m11\îСzz‚Þ{ú47…zø099.ôZ]YyëÖþýqq ÷Ðè~ýÖ¬éÚµ¬lëVД)ëÖ“œ|âıc …ÐÐ_=x°K—ââ]»~ÿ==½¬ÌÖöèÑÝ»£¢Ö¯_º”ÃÁbgc||]™\^žžž“ÎÆ+Úµ{߸s‚ ‚ —N@[XXXXXüýwBBERÌb0‰d2®R)‰\.•64àp‰Äf³ÙF¥J¥ ‹Çûúz{;;ûûûúº¹áp8PZZScLcZÉ YÖ’x,-----#"0àØ±}ûví²²âp ½Þ`‰$™L«Õét:O ‰¨T2™D’Ë ¥R¯×ë †ÚZO ÈÉ),¬¨ðññðptŒŠš8qÖ,‡Ãáp>­[q8‹e0èt Œ#&p8 A ½ÞÆÆÆÆÊ* ÀßßÛ›Ïçóùü9sæÌ™=ÛÆÆÖÖÞ~ýúuëÖ¬ùØ-Êd‰HúŒQmɬ«ãr‚»wSRüý‚‚ž=KK+,|ñâÕ«œ …L¦R…B‘H(D¡P( F£Q©Äb33ƒÁ˜:uÒ¤#´ZÊX5ûcà§‘Éär¹¼¸¸¤¤¼|ذºwõ*//;›Éd2ét,ƒA£_¼ÈÌÌÈÐhäò†??//7·Ó§ÿúëúõ .\´èkDÒ½{p°¯o~~^^I ˆ„Á`0˜Ì¤¤ÇÿþD2|x¿~¡¡;w> "Á`0˜/WŒÅ4’¾}»woß>999ùéS‰L&•ŠÅÏŸ'%Ý¿"©««¯¯«#‘èt{û–DÒò3íÃ@ì^½ÂÃ{ôP«år¡ÐÒÒÜœJuumÓ¦];Ÿ/Õ'ÊY´iãé9`€‡‡‡‡»û?üðôi r7Çc±à^‡ÇTª^¯×k4ýuîÜŸúùùø¸»«ÕVÛ±c‡sçþùgtôÍ›mÛ¶mø±×¸6ããïÞ}ùrîÜùóþ$h""† ™8Œ/)))))Ï' Ñ¢Vƒ'7Øl6›Je³Ùl&Ü]µZ…‘|½Þc0 #;;+ëÅ ƒDÒhØl++[Ûosì„@pp¸~ýäÉ¥KµZ‘(?ÿúõÍ›gÎtvþé§#GAÒ‡c³ 0FÚÓÓß¿¦F§cŸ?¾r¥ªŠÃéß¿±UGÇÞ½»tÉË“ËÄÏB±²4hñâ®]_¿‰ø|™ìΗ¹sþ900:º´T*íÓçÙ³‡ƒ‚.\¸ð[í;µ¦¼¼Üܬ,c]fcü‚‚¼¼–´ÐºÓ êt<^bâÚµ[¶ÄÄTWwî|ýúĉ³fÙÙ³±µ®‚ ‚ /ë£Рš2õ Fêtz½V 4‰D§c0  ÒÐX,G"a±X,€Ãáñ$’X¬ÕªÕz=(ˆA"$™üù£ó4­V§3Ž©A¡„H$ñx F£u:½^¯'‘<…BƒÇãñx°\ ‰¤Rss33:Åb±Ḭ̀X,öSS¨ÆòZ­Z ÏjµR)•’É$Ÿ˜˜˜ø÷ß½{÷êÆ`Ðétºµµ¥¥^¯ÑÈåÆÔÒÇdP«•J…Æ`þé1NÓ#èääèhooaÁáXZ‚:Îiiiiii ÷îYYYZr8OŸ&'gfÚÚÚØXY¹»»»»¹¹»ûøØÙ1™t:•jaaeeg'Èd8Ü·û P© …B$’H4šµµ N¡H55ÕÕ%%`Ò¶À@oo77J£‰öï?q"66 0°];ww7·¯ÉÝ»¦¥õîݵk»v ’7o²²x¼À@oo//I~þ›7¦‘|Ùi”L#:tàÀðð‚‚²2c$ ²ppp@€§'ˆäÞ½Ç32vìØ½{Ïž–DÒò3­©ªªªªêjkkkk++p†ƒ‰ò$™L¥"H$*&5åAiŽÂÂÂÂÂBwwwww÷¯ñŸt:N£A¡P(4ÜA„B¡P*µ¶¶¶¶°Ðëu:F«Õj•J AP('Á¿òòòòrr:wîÒ¥kW™L*•É@Zöc£×æË—/^¤¥½|ùòeff‡AA:YZZZZYÝ»íšB¡Rét½zõêÕ·ïÓ§ç烯…ðx<žBQ(är¡Ü]M#ùÚ×&™L¡P(,‹õm«ÀkµAVkfæç‡Å2žž‘‘óæM˜#‘èt¼7ƒ!Í͉Dyû«N¥âó‰ÄÆãG XY…†Þ¿Ÿ]RB£¹»;8tìH¡ÉiiW¯–”ØÚÖÔxyµoon§Dƒþ—xz¶iãë þ]PPP›ûqïÿ: h®i»(eLça0NïÞ{öìß_S³uëÞ½ÑÑ;öì™’2yòºu;wΛçâRW7tèÌ™ tíÚ´´D‚  ÈÛ§F¨PÔÖ*(…boO¡`±*kkkºÅ… .\°àí-þ3 æÝ„¥i S¯W*›ß/µº´´ €Ï×ë›N’ü¾4(C$ZZƒLVS£PhµÂ`¼ï¨ÓÉåÕÕr9‚¼]­ƒ!‘¬¬d²·Ÿ7lº Œžé’w·¾›¨Åb)™L ŸÆ[ºõ¦ ߯mÞGÊôè,Z´l8F)) …·øï%’MÏÆ°°qãúôÑh,-;vgã’%aaææ-;þAA߯ÿûè\X˜ŸŸ••››••šZVVR’ŸßÜH4§–Ñh,LGF ‰ ‘H¡0™‰D£\ ¹RÃÆ´,O&ƒj`‚ÀÏßJ6 Çá°XÇáH$"—Jår…Ä­ÕêtZ-HIƒ(‰@ Óét:ýsjò‚$²\.“‰Å$‰„Ç_»vûöƒææ‡£×kµrùñãÇ?^^^YYU½îÐÁÏÇãóùüÝ¢J¥V+•Ešgzkkkk¹\kk[[Çãñ@a„úõ //¯¨¨­Œ4¨o_0–35555#£¢¢¢¢ºšB¡RÁ— LKŽ J¥T*¦gšV«Ñ¨ÕŸÖÃD"‘H$þðÃôéÓ§..!ÁÇ'  ]»‘#GŠŠ²··³ûrµM#yõ*/¯¸Ø4ss6ÛÌÌ4’»w=JOÿ‘¦‘€ž1ôŒi$ gZIËÏ4\ OŸ>{ö옘ÑtÔ¸Z©TÍÌÌÑÑÑÑÍM$ ÅbÓJKËÊ*+xpúôùó7oÆÅݸ‘˜X_Ïå64€/Á>힮ͩS'M5jìØÑ£‡ áóy¼ºº²²²²ÒÒŽƒƒ»wïÒ%(èéÓÇïÜ_¡ÙÚÚÚZXÉT*›mzw)˜½6[ÒcMÑh ‹¥Õêt_n,K ryq±XܘlÒéT*‘È×—ÁOœ4_·ÔxÌét/¯~ýll$®±Gªª?Î˳±1}˜žH´²JO‹{øÉôð03ÃbQ( E$Š¿};)ÉÑ1 N&ýïøœЀá“|¸M4šD²²*-•ÉÞ.¥ÕJ$ååJ%gcC&c0¢ÓI¥UU ¾¾“&mÛvþüýûk×vêTQqúôÊ•[·¾yƒ vv¯_ …oÿÆIÖÏ'¿ysçNCƒ¹ù€ C¡èõéõz•ŠÏÿR[02¹ùý2&”õú· ƒ§÷Þך™Y@@Ïž F}ýÕ«/^ˆDM×¹qãêÕŠ ŽD²±!“D.7}U§S*kkÉä/ÿÅV+—WU¹¸Ðh8óe¶z)ÓåàH}N´¦gãóçÏž]ºdz6~é¾ ‚ jÿ÷¡ËÕÕÓÓߌé!ƒA¯oüs¼F£Q©`\³Z­RI¥`< (¯Ã B¡ÑD"‰Ä`hµR *¨‚´¯¹¹µµ‡—[U•›+‹D ööAAŸ¿3t:“Éb)J¥JE"‰F£Pà!z®qL x¤ü$ñx<¾ºº¾¾¡¡¤¤²²¾Œ€þœH@2W¥R«õz‡Í63«®æråò>}úõ4LÝV____WwáÂ¥K±±X, ¥×ãph´V+‰Db1‡cnnnþ±“†µd}Ó#øôijêë×£F=n\QQQQQ‘¹9‹E¥Ž=jÔС|>—[_/•J¥ÉÀýû÷êE"‘Hd2—ËåÖÕ½yceeeeiimíäòáídeµiãç×±#8ÓÀøViLµÜëׯ_ggß½{ûöÍ› ªâ⊠.·M›€€GGGG‡  ƒÁ7nâÄÉ“mlll¬­¿Æ$l¦‘üúëÏ?ÏŸøð±c§NH,,,---ýü:t°°‘€³‹D"‘H¤/ `Itô_ÅÄH,–ˆ„@  „¾}ŽŠ‘€ú×8ÓÊËËË+*”J©´®N¥’HêêÞ¼),,++*ÊËËÈP(Ôj±·wppu>|ذAƒÀ»ÜÝÝÝœbcccccI$Îøt‰D"a±eeoÞ¤§§¥efææŽ7qâ´iM·kz¦¯‘SÞï;ÓÀµ Ñh4*élkkkkmÍãñx½½((a0èõZ­FƒB¡ÑŒxBÀÌŒÉÄáp8//J¯—Ju:½Þ` R©T*õc¸6-,ÌÍ™L‰D*•Ë»téØÑÇÜ‘½¼¼½}|ÎžŽŽE¡ÐhaæÌ~?Üg(ÑëMï®Z­N§×·$’í±¦lmmmíì@yoïoU>‡³µŒ4MúâpÖÖÆbâí½}ûÙ³¿ÿþ÷÷7þ·¹ù€Û¶8иàê:yòÛïBŠJ=~ãÆŸ6]ú×_§O/Yòmö‚¾¦%8>­…¯Q‚‹µ²:T$Z²döìŸ~¢Ñ<=]]Y, æõk>?8øØ±;w†oÓ†LFN(¬¯¿ysùò+rrŒ¶míí † vï^²ÄÏÏɉɌ5ªoßþýÄÑÑÙÙÒ’ÍÞ·oÇŽŸ~JHˆ‰‰‹«¨Høüøø’…¢OggÉ´'Ôêšš„„K—.]zòäòe@© wp 4©T 07 Û¼91ñúu33þŒŽŽ9sãÆÅ‹[ŒˆX¸pË–Y³:tàrbb®^}ò„Ë-,ts2¤[7299ùúõ´4­–H”H¬­mlRSÁ:<^q±—ׄ Æ…†"HR'‘ÔÔÄÅÅÆ&$8;Q]=þ»ûµwïæÍŒ•ÕС/ÆÄ Ñݺ }Ê`xx8;L¥"ˆFSUµaÞ=‡1™*UMMAACƒƒÃÞ½[¶€¯E?f뉉µµ*轘˜˜˜¤¤¬,ÇÃô^ttl¬N׿ÿ¨Q3f€Þóñ=zñâ6mòó-}áÂÑ£oß>|˜ÉÔjg#ããÓ±£PØx6¶Æõ AAôåý_TL BG÷% ÁˆW:‰!PlB¯×ëµZ­V­µ•µZ0-!‹§Ñ¨Õ`ÜÁ Ñh4J%‰D¡˜™Õ×s¹uuŸ3ùÆEZZZXXZòxµµåå`9HŽ«T F«V«Ó¤3ˆ×˜’F¡”éE<@Jîs⩯çry<05›ÍáX[×ÔðxEEx<‹Bx<occeen>gάY3fTUUWWW߸qýúÍ›ïŽ=ù’ÀÔh´ZfĈ¨¨Ñ£ÁÑT©T*•ÊÆÆÊŠÍ&‘ðx±µµ¶f2ïÝKLÌÏïС];zkÛÖßßÃC£Q«e2>ŸÇãr[rÉd*•Á0=Ó@Z§û¸‰ì^¼xñâÅ‹k×®\‰íÑ#448x߾dz²úõ0`àÀ>}úôéÕ‹Íf±X,JûIgSW®ÄÄ\¸"yöìÙ³ääðð^½zõ‘°Xffff Ï¿v$ gºwïÒ¥}{ ¨0n ˆákWèÀôtx<‚¨ÕX,‹F“Éd2Àb1™tº\®Ñ`0––––¦O-Èd2™\.B¡R‰Ç 4nf†Çãpz= …Á€ë§ù‚¦g …Á Ñ`ëÍi Š÷£G=}š”ôôijªX,‘ÈåEEEEeeææl6‹Õ8þË`@¡Ðh,öÍ›¼¼¼&æÊ•[·°X …  ëÚÕÒÒ‚Í&)33 ¦¥‘|l5efffÆdÖÔTT4ÿô A©¯5 !‚Ìž½mÛ¡C^ƒa2ƒƒ-:xðܹæÖÙ°áÂ…øø¦ËÃçLÙ¼9<|Ê”æÛÇã­­ÃÃÇ[²$<|ܸŽ™@ppˆŒÜ°áÂ…ÈÈ÷oqÓ¦ðpÓe7víúáu$,,==;;,¬%ûeÉ£G×®½/’÷A¡ðx;»Þ½çÌY»¶wïõ‰•UXغu?ÿüv(RaccmÍá´kèååááááêš——“ÃfÓé66 ­ ÆGë~º¹9;ƒ1Ë8‡Fƒ»™L¡ÉŸsOÓh4Pi[,V«Õj•ÊÆÆÎÎÕµ]»ví‚‚ÂÃûô2D,‹E"¡P(‰jjª««ªllllll@yp„(”–Fò±=Ö“É`0B¡X¬P|î¹õ1úô0 *ª¹WïÞ½uëÒ¥oA-aülóþÂ-{/Í—Z‚ ‚ ‚¾'ÿ—˜03c±8AP#öŸF½‰F:ƒ‰]À»À˜S<ž@ PÀhY°> Ò`9‹Å‰\.Ÿ/•âp8Üç% A¢jݺuëÖ¬œ0™L&ƒqçÎ;w簾¦¤$'s¹ÕÕd2`ü¨ ÆAƒ±Ï ‰D$*  FX~Z$ Vòëׯ_geáñX¬Á ‘ˆD`ò7 ŒHåJ@Ÿ€¾W==Û´ñô¼{÷þýÄDF£éÚµåS‡Q¢Z­FóOrWW77W× Ξݿ¿¤¤¬¬ºZ,–HŠÎƒƒýýÄØ Dâ?L:f øÚƒ)|4ƒA¡>î‚}7=ÓŒ_ |HIIIIiimmmmmmYYiiYÙüù‹ýòËœ9sç΋F ZíæÍ[·nÛFŒ6maíÚµk7lزeóæ?çãysrrrrsA$QQ#GŽ9qâ¤I{ö€H|}Úµóôôôôðøœmµ$’††† %%99%Dâææææá1oÞœ93g‚HÆ;vìØ/›zþØ3màÀˆˆAƒÀuáì\\\RbaaaÁဢ(mÛìÝ»wï¾} œ ƒÁd𙾰Á`04zÈ#&LhÉMÏ´–ÜÍH$ð<†™ƒ1jÔðáýû×ÖÖ×740 nkkcci‰Çd2((î``ZÎ’’²²ÊJ~ׂµµµµ­íçÜÓ4­V¯?~üÏ?ccÇŽ0aæLÿ€ ð¥]CCCCC(¬‘”””tã†Á Ñ…ݺuêäé‰ ×fË#ùØkŠÍf³#¯ÁKKkk‡ººšãó(_L1Cп ¸«»»{yµk÷âEzú“'-ÿâ|ºï3g´öÞ@ß:=88::9ùöíÖŽ‚ ‚ úOL‘‰$‘þlP« ©”L¦ÑØl0BP.—Jù|¦!‘Èd&‡£RéÑh”JD¢RÅb©T­þRãY@J D&9räÈ#úöíÛ·woP‘öرÇx¼º:,6À…8‡ÁètB |~MC ¡Ç# N©T* 2™L¶°0Ž ×é4zT*•B‘HD"‘H§Óé@}ä–% q8@i¾–¬O&“ÉDbݺ·o/ …:^dzÙl6ƒBéõr¹\.“©TàD"•úµ`S¥¥eeee8pøðæÍ›6ýö[RÒÓ§IIžžžžžžYY¯^½|iaaaÆSÅÆÆÆ^¹&™,((((,¼xñâŘ///¯6mÀÈÜ„Á`0Œ;wíÚ³DƆ›FÚ¥Kh¨é»ÀÕøø»wïÞ5DÉ××ÇÇÛûs"ÉÈÈÌ|ñ¢}û‚‚@$™™™™J¥Z­Õ‚HšöÌçûØ3 Ipwwww77°D­V«5š†††>ƒA• ‹E…ÂÁÁÞÞß_,‹Åbps8øÒâëw3ðeHv'WE£Á³ƒZ­RÉdh4ƒÃ  A£AaPO\ L&“iañ9W( äîîêjo¿oßîÝÛ¶õìÙ«×ÀNNNNŽŽx<Æò ~~~~÷ïß»o³l0 àÚ_Â}›Ñ‚àY µºqŠH*•N73)#‘¨¡ËU*•Ê·'€‚ è ¸¯Òht:“éååïß©ÓǶRÏßæé"‚ ‚ ‚¾”OL@ƒÐàßh4¨)¬RÉå$…Âd¢PD"" Y qh4*•L†Áàp¨-‰ÅRé—J‘€Q¦£iˆ&@2ÎÆfýú Š‹‹‹‹‹SSSRRRïÞ½}‡Ã`„ñ´ü¼T—Z­V«Õ …B¡P0™•*—ËdR)‹E¥r8jµJ%—ƒ}7VBÖëu:°‡ÃbÑh¹\¡Ë'èk0ZŒIoù©w¨B£ÑhŽL¦R™LP,åÛÁ¦,,8'***jذ_~Y¼xñboooo‰L&‘""""""šV¹(d2™L&«¯çr¹Üââ’’ÒR6ÛÜœÍþ´H”J¥R©4ÄÒÒÒÒÊÊÞÞÞÞÖDâîîáaL°uuuuuu/^˜&4Á(àωôŒi$ Z±i$Ÿ_]½©=Óšóúõëׯ_'&þý÷ãÇ––,‹&Í_9€¯ <8"âËÆß¸ÀÔ `Iã&Pç7¸2Ðh F£ÑhärP.LƒÉãñù‰­­ƒƒ»ûç\ ’N‚ƒ¬­--Y,¥R¯×*Ïãq¹\îåË—/_¼8mÚ?Ìš5rä¨Q£F)• …\Þ˜šÁáÀß& žÕ0m ¶ ÆËƒŸ_;‚þ-@7F£ÑZ;‚ ‚ ‚¾…OL@3L&“ JI€Q½ý¬V+Æ«Á`0¨TZ­JÅ`°Ù`ãø_4ƒ©©©­år?­ÞqS(ͽjkkkkc~víÚµkhè¢E?þ¸hQ~~~þ›7§OŸ9sîœJ¥R©Õ-/€Tã­[·nݹóâEVVNÎÝ»µµõõ`úCss6ÛÌìÏ?ÿüóÔ)[[[[{{ KKKK__//ðoÇÂÂÊJ( ‚ÒÒÒÒ²2ggXÿðÖÁx"F­V«ÿ½G°)ooP^ÃÛÛËËËkÇŽ;wïîÕ«W¯°°¡C‡ <¸é»V¯^µjùrðï#GŽýã™3gÌøá‡Ï‰|ѯ_ß¾}ú€Hª«««kj@‚DÒôHr[·nÙòÛo_ªO@$ g6nܰaÝ:Itôùó.,_¾|ùÒ¥-9g>ÍÇžiÍi×®]»¶mÅb‰D"Ñë ‹ÅáÐh‰D"áó ˆˆ9òkÄ߸T*µZ¯cœ¥R™L¥b³-,˜L …N'u:½Þ`Ó¬‚/f°X‰DB£q8 Œs¯¬¬ªª¯ïÕ«O›Ï¹"@$D"‰D¡øøøøøúþý÷£GÏž54àñ2‡ÅâñóæÍ˜1r¤L&—WUÑhd2‹e|‚A pm‚ªÐ_ïÚ4E¡P(ʼysçΞýòå‹OŸ~›cAAAAÐ÷ï“+/ (”F&ùÓjU*,§P„B¡P(”ɤR±X§3p¸ššššÊJ½Þ`xõ ¦àrëëkkår…B¥zñâÕ«‚‘H$‹Á8ÜoßàANÇ‚Ã$nA²R"‘H$’—/_½ÊɹsçîÝ„N«Õé˜L3333Pµ¦¦¦¦¶ÖÃÃÃÃݽ%[惺Êÿ½#Ò©¾¾¾¾>>Ë—/[¶d Hƒ·$Í:uê”)“&}Hìííííí««««««¿^Â÷ÃL#%¾v$¦}H·n]»††äæfdèõZ­RY^^SSRÆÇ}«^4P(>¿¡A Ðju:;;GG'' ƒ!,-96[,–Jår‘H(är¹\.çñø|¡P"‘H¤R¹\¡P*³³ssKKß¼yóæÍÇÜÜÜüÓ®‰F£ÕÚÙ)•J¥Jåííííëk0 :\.“‰ÅÅÅ …\®Phµz}uuIIqq^žV«ÑètàÚ îÔ©Gωäc}Û£AAAAпÃG' @Y0Fxݺß~;x°±x‹Fc0`ú:TVe2 &“L¦PÈd‡£RÛ´ñõ  DƒÅ²±µ[·#Øl‹Å¢Pýý?m´ H¾€:Ônnnn®®`µÿŸNzO©T©Œÿ¡P¥R©”J05#hÍÓÓÃÃÝŒumÉÖAéÿê4­öÆ·¼D ¨ïý5"{Ýò/ ¾p®‚H˜L&ókN~ØØ_.ÉÊ’$'?ž™)•ŠÅITÔ˜1-›lðK×Â… —.]½zûv|üãÇ (‡Á€B!˜¤”³Éw2™D"‘ &“Á lß>4¾àp,-‹‹Û·o×®mÛO»"ÀµùǧN]º"1^›`t8 …Bk“Ng0  ¸6mlìí½¼@$àÚüœH¾cq$P Lgª×7.{ûÆå_t¼½æÛë4þh·±Úzã+ÍµÜøŽ·×x;âw·Ô¸z½q2Õw÷¢q]Óߎ¡iûïß»}ÓØ^cÿ€ŸÑ4¶–¡P¦{÷ßòöomã5}*Êti㺮.c/‚ûÒ»-ƒ÷6¶Fƒ3ÀøßM[6¶úöûÿ<›Ð¸¥··öváÓhŒm4éíu_1} âí×L[~÷5ãÿš.7Ý»m·ö¹AAAÐ÷%ðùµµ­Aô_žž–öèQppHHxxkÇAPkJMMNNHhz7P* ™ìÕ«ŒŒ¤¤–)ÝÞÞíÛS©4ƒŸº€ p•µoß¡C·n­ AAЇÀîAAÐ7RQQZúæMXX¿~£Fµü™3ªÎÈHMML$ˆÄ6m`‚ ‚ ‚þ-àw‚ ‚ è¸\¹\*‰>ö½BaC—kmmgçæöþ5ôú;—-[·N¥âp,,˜LA¯OJJJ**êÔiÙ²çÎõó£Ra±AƒA*ÍË‹‰¡RÛ´‰Šjíh ‚ ‚ ÿ²ÿK@D"…‚ÇF«ÜB})z½^¯ÓI¥b±@Ð’Ç®ÓÒ’“[;jèã PpL"Aîÿz½^ßüd¶UUUUUU'Nš4yrBÂýû÷÷}ïÐhªªÎœ5jìØE‹._~øÐô“ììÙÓ¦UV>{V_o¬z½kׂ  …l¶FS^Þ«×üù›7ûøBáÇÇÿö[A›[×®ëWÙÙ`²\‘¨C‡eËfδ²JO¿uëáÃ'Oêê‚‚6nܱcÄ-9ùøñ‹‹;v”J32^¼ÈÎÎÌ|þÜÝ}Ñ¢‹. e±ÀÝñÃ[ÿûïcÇÖ¯çrýüzõ SS32òò^¿NOG£##úí·!CllðxAmÛ–,Y¿‹up`0$’üüÜÜeËvíÚ´ééÓcÇ֯߶-&†Ë:tà@OOÐÂÓ§¹¹(ÔÇ Üÿ+++***´ZN¯wrrrrt¬­­«««›>}ƌٳOŸþóÏS§Zò›B¯ _¾Œ‹«®63k:‘- E$ÚÙuîìà€ ¢ÑÔÔdf†‡/_~òdd¤¥%‹ EXØòå/^\»öÛoíÚuï>vìÈ‘;vœ<‰Ã;·pá!t:£Óµoïíݧ­íéÓqq«VíÚ5}zHH×®+V ²ys÷îcÇŽµ}ûéÓTêŋ˗E&#ˆLؽû¶m}ûÆÇ¯[çë‹ÅþÓÖ{ô?~̘þýEóçüqõj&ƒÑjƒ‚ºu[·®  oß ||0˜Š ­vòäÅ‹—,ñö&‘4šªªèè”™ÌÌ ´päȱcÓ§GE-Ztîh¡¦æÊ•É“ t:›!C¦OŠºxñâÅì쟞1Ãøç„V[[{çN¿~‹-ZÔ¯›Fk4ÕÕ7n§^míó‚ ‚ úwÂâp8‘F¢´v0ý÷¡P( î}â„Tºtéõë—.EFZX€4›Z]^~úôرQQý“’rëVk÷#ô~ƒÁ Ó¥¤$'?y²eË–-Û·{yy{ûú‚çðúöíÛ·wo°NKZÃã­­ûôé×N?s¼ãíbrjueå·o áá!!ïÉ‹B˜— Ñï®&L46±i;Mß…FãpŠ¥%‰„Á ˆVÛ²­c0ïߺñßh4çî>jÔÌ™³g;9¯&…|š_í6à…úç"{$’·wbâ¾}ýû«Õ|þë×qqË—Ožìåµvmb¢Ÿ™ü©G‚ ‚ ú_†uøZã§FÃç''Ÿ9³bÅÅÅJeëEŸÿýŸF£Råçç䤧ÓhL¦™™»»—W»v;÷èA£1ffåå%%ùù`­V«Õh>Ü&X³²²¢¢¨´ Z-ƒ6Á:J¥B!“5m³µo€Ð¿ŸÁ0iÒ?>{æí½páŠË—ÿôÓܹ¿ü²~ýŽ;vŒ¥×§§—–Êå­å¿L–•µgißΙ3wîüù¦}«×kµõõññ›7_º”•%“ýóý)ï‰C†XZÒh66#FLŸ>sæìÙ³fÍœ¹ÿ®]Ý»›››¦Ó4šêê[·vï~ú´²R¥‚å}¾oK—.]úË/ õŒÁ`0hô’%‹ÿò‹¡‰æÛ#ÇÿùçŽêê4Ó×jjâãwí:s¦¸X¥B£Y¬®\IMåó‡^(htçÎ#F8:‚‚t õigPq1§V7¾W£‰Ú´?¾m[&Æ`Zºõoƒ13 Œ½p!7W*[ÓérrärƒáC-¼½Wh´^¯R™.Ñé¸Ü„™Ì`@¡ðx6ÛÏoðà©S{õjšX‡ ‚ ‚ àâÅ«Wãã?¼|Ü¿tiãÆÈÈuëΜ©¯ïÖmÞ¼+œ??"B­.+;r$""2òòå»w_¼ˆ×ëe²üüë×OŸ>y29ÿñÇ z÷¶°¢´Í`ED ’Âçët°ö4} 훕•™ùô©µµ­­““¥¥µ5¨„idiicãà`aammo_QQZúæD"‘ˆÅ4F§ƒJñMÛ¤Ri4&ÓÓÓǧCÓu(*•F?U*•J¡xýúåË”WWOÏ€:Ng0Z»W ÿ¦ºšBY´hñâ>}¬¬L ápVV}û.Y2}z}=•ºÿ»ïT«ëê÷ïÿí·«WÁT`<^C“9wîòåcÆøøP©htaá¥K6ìßÿê…&ã ;wž1cùòvíh4¦²òÖ­ýûãâ Àô_ht¿~kÖ¬Z5p µuk÷Ìçº|yÍš¸8 eѢ˗›ëÛ¸¸½{·oÿý÷ôô²2[Û£GwZ½zâĤ¤;×®=q")I©ôòB¼¼¬¬^½¢£¯\™1ãý[“HRRÆŽ8pïÞ… oÞ!á?ÊÊŽŠrrzútÇŽÖîEèCš&”±X,‹• ­­­­­¬þ)éü6 ÆÜ¼OŸ-[îߟ;wÙ²§Oœ9*NKKO'ÂÃçÏ·´Äáp8Íßÿþý… 7l((ðôÓîÙ³bŦM4šFÃå&$ÄÆÆÅ=yR__Xèé9vìС¡¡z}R'‘ÔÔ\»÷䉋ˠA<žTZS›àì{öêÕÏž-]ºxñðáK– f?{61±®näÈuëvì³—”\¾¼iÓï¿ß¸!99ZZ¡Ñ½zíÜ9gŽ¿?•ŠF#Ⱦ}K–¬X!—ÛÙ±ÙBaròÇóçŸ:uõ*˜c\­þ/§ ÿ99/_¦¤øùµmÛ¥‹išøÑ£Ç>lº~·n]»vïþòezú£Gææ––ææVV ƒÁ äFeeq±¿»v¡¡¦í€÷š¶–€$«W·iãç ZÓé´Ú·Ç©™‚³ºÿ¡PX,þµ·¥V—–>œ–ff6kVçÎúZcìØþýMKp 2lØøñqq—. fe…Á(ÙÙ+Wöë7gŽ^ðà;›6mÞP]ݹóÌ™?þ8qbDD¿~íÚÙÛ£P\n\ÜðáîÙ6qâ°a újLÌÅ‹%%Oždf^»ÖÚÇásõë2~üêÕññgÏ6ß· qÜ»÷Úµo—7Ë{õZ½:::%¥ñãˆD’’ràøoZ‚ãŸÐ}ûz{»»(•Æ%¿ÿž”Šo RéµkuuÂàÁJFˆ*::9ùöíÖîËÿ]©©ÉÉ Mï©©IIwï¶oú±m¾x‘žþ䉗—¿§N4ö}U&‹SSàó`©èÛW™Á ÕÂRŠA}M:„„§­LSÏ#GFFöíÛt‰éúØÆéi´€€ÈHKK¡ðÌ™¤$½~êTOÏ»w „!CæÎ9Až?çñ4šÁƒ9©ôÍ›øx éÕ Ó¨©¹|yá V­ŠŽNH3zçälß>b„D‚ÁŒ9gθqýuåÊ/¿øúþôÓ/¿ôèѶ-‡ƒÅêõ\.‚èõ*UEÅåË»w üÇ[¶xz’HZmmm\ÜÒ¥¿ÿž•óäÉ_i4ÕÕ7onÚTP@&ÓhBa~~LLa¡·÷Å‹¿þÕ½;…2hÐĉ˗ïÞݧÏíÛk×®\¹qã½{mÛž8qíÚ/¿øûS(aa;Ïœ™—7qâ‘#íÛ‰õõ¯_÷éóㆅ±X:Ý!ÎÕ«<žZ=b‹U[ýÓO‡ÿøã_ÅÅi4UUçÏ1~üÚµCÿþ‡µö AÿŒÃ±²²³ÓëAÉ‹wÇ’uéÒ¥‹1”””ôä‰N§×ëtŽ••½½T*‘ “Éf£Ñ % õõ M°¦ik` hÇtIc$ööZ­Ñ€ÖZ»o 7 †H´´¬©UOŒÆ)½þ™\Ž d²•™Ü8Á‰deE ¨T©©`J±={öï_°`ëÖ½{££W®7nïÞÜÜÇŸ<™7ÏÅ¥®N¥Âbmm.\¸pÁТEË–µvŸ|)‚Á “}Zß¡Phtó¯jµÕÕý5thÿþË—ggˤ$'¸»“É>>7Þ½{åʨQ66`Ûtzpðùó)) =­Ó-YÏçƒw)•EE/öéãæ6u*‚H$­Ý{Ї1ffææ(Áèõ-ƒ|‘ Þ‹Åb±ª6þí©Õ`äò•+Õ׿yãâ9thß¾mÚP(º ‚ ‚ è߬i¢¹9ØÆÂh´™YPPïÞff»v]¿.“••UVªÕáá?ü`aáâ2bÄ… OŸ „†VWÇÇËdááÁÁz½^¯Ó54<~ñbI “el@ptìß¿mÛâb¹\¯÷ñA¡°X ƒ13;vÔ¨aÃŒH$z½Z]W÷ðá… (Ôܹ«WîâZ1P(ŽHT©òó¯]KM--íÞ=0°oß_åpP¨)Sp8+«>}úõsu% ½ÞÓsذñãííÏžŽNOçrUªãÇccOŸ&mmI$½^©¬«“˵Z™L£Ñéôz­V HOˆðõíÝA@åA›1c@tju]]jê•+EE"‘@°gÏÞ½ƒ\^\Ìç‹ÅÕÕ°`ôoA"‘ÉT*¸VÁ’gÏž={ö ü$‹;uêÔ©S'°¬I&S(Tj]]MMy9(¸ÃápX,˜´Ã±´´³k‚÷‚6MSϦ­ƒ6M[kí¾þÝ03³€€«W<‰† é×ÍnnÚ±¦ï%“D.¯«“Ëu:¡Ó1N©¬­U« [[2‹E†_ßI“¶m;~êÔùüׯ۵4hëÖ>}¢£»w§PôzÀ´M½^¥âóÑhÍní¾ù\={2õõW¯¾xÑ|ß¾]9öca±66£G_¿þòåèÑ_‚ƒY»¶gOPZ,~þ|ûö#GÆŽ½woóæ·÷bóæ7onß^¶ÌÃÔÖ…Zøìdaaeåà™ùüùÇ-/²žàs àñxü÷•€Æã9œðð)S6oþúÏ~@AAPëkšzþp2‹ c"ñx'§1cÖ¯oß>:úôé“'‡ [°`óf33 ‡c2 ׬™5ëÒ¥©S)+«ŸÞ²ÅøÞ·ÿxxû ðºñ¿Œÿ¿½NyùíÛgÎ<|xéRqqF†\~þü™3':9!‘ئÍêÕ÷ï'';8h4yyW¯®\9mÚÆOŸ¶oïç‡B¡Ph´qšƒŒ·2Î6N&£Ñ?þ8tè¼y}ûž;wþü˜1vvææL¦ñh01›\Îåj4`ôñF¯GЃB‘É ÌŸ?w.xuþülhhºô}ÒëµZF§ÓhÔj°$8¸C‡öíMׯ‚åàßïÇh¼ÊÞßfsL×mb0X,¯ ès..›6a0.[6gNq1™ìääèH¥Ê奥ÙÙx|§N³f͘QY)•64<{võêíÛ=zL›6xð_ÅÅÍ›·wï¦M?ý´f££§g}=Ÿïá±oßÍ›ãÇûú’H²{÷œ9“&åä0mÛ‚Z¨ ìÞ½b…ŸŸ““«Óõï?jÔŒ úªÏèÑ‹ÏÛ¹sk÷Ëç[´(>þÁƒÊÊû÷ÿøô­££¯¯³³BQ__\ úöøñÇ-ŠŠjß^£Ù¸qúô… G¾~}Æ/bbŒõgããKJŠ>}lm¥ÒÄĘ˜«WŸ=‰jjÀQðñ¡Ñþit¨Z]S“ÀãI$ÕÕ±±Ñѱ±2YddDDX˜•(q@§‡„9’’’ŸßКzçÎÕ«·níܹk×íÛ‡/XàæSÏß4F£ÍÌX,sóàà.]úôiíˆ ‚ ‚ úšŒ@¤P\\† qtüí·Â¦N5&eQ(ww½>5uÿþë×Ç;~|Âã”DŒ™Yûö#F89íÝ ¹ GiéíÛŽŽ?ý„ Í?k0 ˆ«ëøñ¿ÿ>l0sæœ9;vÌž­ÕNœxû¶^Ïã=x°k×õëAAΟïë;hД)ááü‘ž®T"ˆX,•óx*•Áàä„Ç×Õ=~'µi3vlÛ¶ }à€J¥ÕÊåz=Huéõ"‘F£ÓI$Á€Å²XíÚ?à@~þˆ‹ùúR("—ß¾]W‡Ã ln0dˆ½}C˜aœJÕë‚§Oƒƒ»;ŸÏãÕÔ¸ºzxøû[YÙØ8:6]S©T*e²†¯®N,x<++[[GÇéÌÜj5— ÆS?zŸŸ/“µvTô=Âáp8ÎÉÉÕÕÇG­V«ÕjÇ«­•Éd2‰D£Ñj5°¤¨¨°0;[«Õé´ZPjãÃm‚ÖŠŠ sr@  5™L&‹ÁÐH=¸M‚ ú084AA}{ õܱc—.ýú±ÙææVVb±PÈç‹D' õõ`ˆ³Z­T*`0ÀQ*•HÄbìçÑðxçï¿_¾|ú´µ# ïƒÁ`0T*•J£ápŽŽîî55••ÅÅõõbqe¥J¥P(L&›maaiieåèH§›™±Ù`ª¨·igçèèî.‹ÅL& EEùùYY‰D"‘Hd2fkëààîN$`º0‚ è›R©PÈd¯^ed$%'oZò.𜇇·wûöT*Æ``±X,ö_ú9‚ ‚ ‚þM\]==ýý ÑëU*¥R.onM­V«Õh4‰D(´¶¶µut¬­­©)-…Ü!èøÓH$‰Dgg77oïÏo“øÿY[#ˆ…œZ‚ ú' õÚ¯ßǾ79ùÉ“;w¼¼üý;u¢Ñh4 ,W*ËËãâŽ?|øôéœ:=<ÜÓ®«ËÉyù’Ïß·ïܹŒÓj †ÇëëµÚ®]-,ŒQN›6`ÀÒ¥‹ÅÄlÝêç÷1“CAAЗfeemíè(“I$BaËßÅdš™™›—–çåÁ4AAôL|xÍI“&Ož2E"‘H$’Ë—cccbš{‘èà0dÈôéÓ§WWgfš›Ï™Ó±#f0Èd/_nܘœ, ]»š™½o®‚Ö¦ÕÖ×geÉdLf×®K¿ukëÖÖŽ ‚ ‚ ‚¾ ˜€† ‚ ‚¾©' «ªªªªª******îß¿w¯¥Å:LSÌ(…âèØ³gn.—[^Îç8°iÓ‰IIJ¥—‚äåeeõê}åÊÏ?»º8°`ÁÂ…B¡ƒƒ‡›­Ñ”—÷ê5þæÍ>>‚Pøðáñã7;:vì(•fd¼x‘™ùü¹»û¢E/.\Êbr Û¶-Y²~=ëàÀ`H$ùù¹¹Ë–íܹfÍ­[Û¶­]ûöÖ»uÛ±cÒ$áêÕ‡¹\G¡pv š8qâĶmwíZ¶l÷îN–.]¹rð`++N­®¬¼uk÷î½{ÓÒ@û2™³óÈ‘K—hmÇ Jå¢E«W<èînii0”—§§çälÙròäñãßcâ‚ ‚ ú_ÐòÜR€IDATAAÐ7¦ îØ±S'©T*•Jsr²³³²þüóÔ©Ó§7mÚ²eË–üü¼¼œœx0:úðáÇÓÒ°X¯¸¸¨H¯ß¾}ÿþÕ«Ñè… §N½xñúõÕ«·nMIIIëëtõõ×®99-_¾k×°aVV XÞ½{÷îË—xpDÄĉ³fÙÙÁÔ3AAô=€ h‚ è?L«åó##{÷ž1£ÿ“'££gÍrrú¾¦Äl¡Tú}Ç A_‚^?þüùsçnÚ´iÓ–-±±1111{÷î߿ビzÆŽ5kÖ¬Žõ¡ß…B½=Å®N'—WW[Y±XÆÔ3@ ¨T••2™Vk\‚Á¼›Î¥R1­V&Ójõz½^«­«:tæÌ ºve2ßÝ®Dò¾­·œJ…ÅÚÚš¶¿páÂ… 4®Ñ»w‡<^¿~+WŽ·w¯FciÙ±ãË—ÿùç÷[ÿ‚ ‚ úßÐAп˜Tš“sõê‘#gÎdd¨TŽ…/¾y“™YXˆBuê´lÙÆŠB!—ët-y€ÿëÒh**NŸÞ¼Y&9rõê6mˆDÁbÙì·#lº‚þk@IñãÇ3¦²²¢¢²råÊÕ«×®ãûöíÛ·wï––Ýø< ‰dcSW'—ëtB§ÓÐj5`kK&ƒD¸V‹ Mc‘ËÑhÃÅ…FÃá0ÎÎîõk¡P¥êÚ•É4~i¤PhµB"}nœŠ^/˜¶¯×«T|¾J…Á°Ùx¼RYUµmÛùó÷ïoÜÈç¿~·uëÂ…yyr9‚Ài !‚ ‚ ÖÐAп”FSU5gNYYhèÉ“›7GFšŽ_4”ÊÊÊgÏêëÑè§Oß}§Z]W—˜¸ÿo¿]½ ª¾òx LæÜ¹Ë—ããC¥¢Ñ……—.mذÿ«W ¨©*vî~üâƒai©R1hP·nææ8‚¨Õ\nBBLL\\E…DÂçÇÇ—”(}ú8;“HŒ¥åàÁEE ,\¸f££§'¨½oßÍ››6ùú‚Ô±D‚ —.-Y²t©@êéÉdªT55+Vܼyölp°™×Q]=jTß¾ýû#ˆ££³³¥%›½oߎ?ýÔÜÖQ("ÑÉéĉéÓ.¦N:uöìaÃÜÜ*+¥Ò††´´òò$‡€€èèØØ™37n\¼xð`Ð~DÄÂ…[¶ÌšÕ¹3‚€É gÌX¶,&ÆÏÏÎ †áÃaê‚ ‚ j}0 Aý+éõBáË—ƒöéóö£ó‚ (‘hg×¹³ƒ‚ìßÿî«W®,Z´qcfæèÑçÏŸ<ii™Ÿ¿ukÿþóçoÚäåuíÚo¿µk·téï¿¿~=}úõëçÏ÷ëÇf£Ñk×þý7Ÿo0¨ÕçÏÿüó‘#?ýtáÂÕ«MUUtôðácÇ®[‡ >Ü4Z¥²¢âáC¡pðàáÃÃÃÖ®=u*;[,nÛ¶cG:½µû‚¾µ¦£›W®\±bÙ233ËÌìcÇ>ãñÖÖááãÆ-]>nÜû^çpÂçLÙ¼9<|Ê”÷µðË/{÷îÙóá­Œ¹mÛÖ­¦•š›Ú°áÂ…øø¦Ë›ß:gi™ž~ÿþÛ÷G^¿n¬ 88DFnØpáBdäû¶Ìd=ºyspð§‚ ‚ úzZ”€–HÄb¡°¸¸ àõkF£Q«[;lúß…Ãápx<™L¡ÐhîîmÚ|l ……ùù¯^ÉdR©D¢Ñh4*Õ—‰Š@psóôôó#ˆD2ƒÁ`0 …‚S A_‡V+“•—ÛÚš™a?úËÔ JJ˜Ìñã;v47ïvq‰ˆhß^§›3'&¦¬L©l׎DR©òò¶m[»öðafâĈˆ+ºvµ·×ë¹ÜG._.,‰„Â={öî5äò¢¢†±¸ºúýÛS(ŠŠ.]zø°®‹„L–JSRNœxõJ$  mí¾„ oÇø{Á`x{tsTÔˆC‡ÿëÝWß~ï·g0ÀßeAAô©šý£]"‹‚²²’’7o¬­ííÝÝ}}»vE¡08• µƒA§ÓhôzF¡¨©©©©¨0777·´‰éæÞ%•ŠÅ"QYYii~~pp—.}ûjµF£×ëõ:ÝçG…Fc0 ‹Åâp))OžÜ¹cmmgçâÂf³ÙNk÷ôß„Ç[[÷ésøðƒ|~ÇŽýú±ÙoƒV«++oܸ}»ùq”o'”P(ð?ãÈË5kþþ;=ÝÝFÃ`Ôj>ÿõë¶m»vÝ·ïìÙèèîݱX4šL6lÁ‚Ÿ~âó›nE./+KM¥R.Î`˜™'lZ{o ‚ ‚ j©fG@Ëå2™DÂdš›ÛØèõX¬éÎ}Ðh †HÔj àÃkÊdR©XlfÆbq8_¯ËF¥Òéff%%EE99­ÝCн|¹ÝÞ½ëÖ-[öô©““£#•*——–fgWTáá³f¡ÑgÏ?ÞÐðìÙÕ«·o÷è1mÚàÁÆíÞ½reeå¦M¿ý¶aCA§g}½P8fÌž=+V´mK£¡PÒ¦M~þ–-?þ¸|yÛ¶`R¯¨¨-[~ú©M:ÉtsÛ½{Ù²!CFž1L5æã3zôâÅo—ÓP«¹Ü ._þë¯Îß¼ 2dèÐ ¥¦&11>¾°P«•J_½Ú¹³¬ ƒQ©Ðháĉ:)ÈLcöñ¡ÑÐèOí)ú^`±X,K£Ñh4ZkÇAAAз€øü÷RLKKNNLtvöð D¡Tªôô¼< eà@ŸÏèQ,NI™9sР5k:vüóÏ«W§Nurj~:ŽÇ»u«¼œN0ÀÙ¹ùßÖ̙ݻ÷ë×\üßgÌßÖèŸ;ëþ]t:¡°¢‚Å27·´lnpE÷ê5`À˜1‰XÜÐðµ£JIyò$>¾C‡°°OkÄüµã„¾, ‹ÅbƒƒCBÂÃ[;‚ZSjjrrB¼@Ð×®2ƒA«Ïò@A} ›$“I$B!zÊë5–ÔÓëM—éõ:(¾×¢‰›0gà@Ÿ/öÇŒ¥ÖëÅâ—/ccmlÂà øÖüiþ1]:R‰  ‘ˆ ­Õ?p¿©–UÜ„ èKpqqqqwÿð:ÅÅÅÅ­)AAA}y-J@§¥:µxñë×={nÜ8y²£#€ ƒB±dÉìÙk×:8øû[ZŠDII‹=K¡ Ñ¢Õ64<~|èÐ_=.¥¦>|XSãé9cÆóæ™››¶öì¤I¡¡qqDb¯^ÇÿøãâÅcÆ´iC¡ ˆÁ æä\¾ÜÐÐ¥ ?c0(•%%W®lßþàA}=‰TY™™™“C£MŸ¾zõóç+W.^|û¶X z»¤îÕkýúiÓlm_¾îâ2oÞ¥K`¯±XAýûW¬X¿ƒ±·g0d²‚‚ÜÜ… wî<|TönîxËfß½»oß•+\îØ±+WŽ›ž~úôÑ£©©yy(TÇŽ¿ürèÐÚµƒ™›WV^¿¾uëž=¢PTªP˜Ÿ/•2L¦F#—3™»w:´aÃÛýÓ£‡Xœ•õ×_ë×/[¶}û½{'O>þò%‡£R¥§/[1gΦM wïfg_¹rèÐŽ{öܾ½yó_­Y·k×ûPW7aˆK—޳aðaii«VmÞüë¯gÏîÝûá³.$$'g×®ãÇ_¿¦P\\,,ôz‘¨C‡#‚ƒ33÷ì9p 6¶²2,¬gOWWÐÃYYB¡ƒÃÍ›·n<‰Å Eqñµk»vݺUUE"+¢¡¡C‡5kvîœ5Ëßôð©S;wÞ¾][[U• zxÕª_~8Í®¯¿uëÈ‘ƒÓÒÀ1’ËGŽ\° kë/[}½å“>Aôù`r‚ ‚ ‚ ú_Ö¢t‡ÇñêŸoºƒY·îàÁ­[‰DŽËÍÊŠ‰ÉÏÏÏ—É$0P­¾sgæÌ¨¨?þ8~<11&AæÌùé'cÒK*MImhµ\îýûcÇž:õäÉøñoQ5¤Òôô f0V¯îÒAD§ãó·mÛ±ãÒ¥!Cöí»~}äÈ~°·'Q(jî\¹\,–J=<† ™>½oßQ£&Ož8ñÂ…É“£¢&Mb³/\¸|ùöí±c÷í1ââŘ˜Ù³--1…"'gÅŠÑ£‡ [±bëÖ«W7oÞ²%*êŸÖyO½/f½^ HLœ;wĈ½{JHˆ‹ëj4¥¥deýó~I¥ææS¦¬[7h èí¾}{ôX´(?ܸsç:w=zôèìl/0ì5hüøÐÐAƒÀ^ŽÅ^¿^_Ïb1™vv:‚ÐhVVx|LLe¥F3j‰”ÐÜñÛ?}úìÙÕ«ëêllz÷^·îÈ‘ˆ¦¤dß¾±c'MZ¼øÿ±wßaMdßÃÀg2“„4Jè½(¢(Ø»bCE ö®Øºö®Ø°»®UÔÕUY]Q± ¨ (½%”ôd2yÿ˜_^‚]Ýïù<ϲr3sçLIȜܜKmÛ´dÉ–-zîÜùó^^åå+WÍ«TnØ»f͇ކé뻹±~ýîÝOŸÒh4šB‘ŸåÊ_ ¸ysÿþ …“S£F"‘¾þ´i'O.Y2|xHȧÏ›]QQ\œŸÏåöë·|y\Ü A"}:uܸóçKJÚ·Ÿ<¹sçþý}|‚ƒ[´°³Ãq—aÃŽ?qbùò -Ú¸QÛOQÑÙ³QQ*ÕСVVÆç·n=vìôéýúÑéÔ3bþüÝ»7m"É€€Q£¨#¼s§îˆ¢(Š¢h£F®®­[s¹<žUKº¾÷ðy_ýÆEi´£G7oÞ²ÃLL\\œ¨édÔj±øÍ±X­®]c—J´i©Õ÷ïoÙ²zµ¿DDÿþzzµo#$’ììèèœ[[ÿ ¨6 31éÕkýúíÛ‹ŠüüÆŽíÝ[¥23k×.(è·ß¶m£¶€a5[Áq6ÛÖ–ÍÆ0‚É‚$e2a³ÍÍY,íüé8ÎbYX0 Åýû2A H]–ù°ŬV‹D™™B!Ap8ïźì×È‘<ÞíÛGž:•›Km.÷Ý[.ݽ¦èîµFC¥¥ýúM˜âéi`P{I•êíÛÏŸ¯w-‚P¿£(‚นYïÞsç\¼¸fÍüùK—>ybh(•öé³téŠië†èø ‚0½zuíúìYuuE…Xœ™Ù®›[ïÞÆÆ§NTVp÷nee§Nýû››GEíßÿù³ƒ¢4ŽÓhïÞÖ~êª[¿~ûöY³víÚ»7"bƱcwíÊÌ ¿sgÊ”V­Þ?Ú«K&«¬$Iêh HiéíÛ‡]½J£QÏ.ÇŸ>Õ}FÐéÚôº=*fm­{Ž&Mš>=$äËž—ÀÏ-/ïÍ›W¯¼¼¼½‡¥ÒÊuY‹JU?|˜’’Àdêé5n h~´¯[M­nÜ079röìI“ÆèÐÁɉ˥EQ&ÓÔ”ÉT««ªÞ]O©üÿ›¦±Ù––nnööË–>“Só‚ ˆTš“sñbf¦µµ¯¯³³vžtµZ,.(¨¨pu=úÚµ›7##.l×./ïܹU«6m¢–ÑM9„LVX(—Óhöö<Îb!ˆTZZ*“©ÕÚeäòâb•ŠÉ´²¢Ò‘uYæC>3Š2ÆÆL&IŠDµ—¯…úéýZºtÁ‚Ó§uöû¼?~Hw¯i46ÛÆæÅ‹ÊJ…Bw*][·óõi$©R …%%RiÓ¦“&-\¸téîÝááÓ¦uíjb¢öÃLJ¢§gc3`ÀåËÏŸ§¥=~Ü´i£F††<žƒÃ½{ý•žþäINއ‡§§…ƒñµgçóWuüW¬8vìúuê,PÇÿÕ+©ôC}QWu„©gu¦tŸT4ºGøõk‘¨f«jµRI$‰ l6IVTèž#’T*‚O}àñµ4?Ä·ŽÀAE…PXV&•ŠÅUUÔ4&uùI-_Y)–•DÍ”kjuuuZZ|üÁƒ‹uîܤ‰³óÞ½99µßíÔÉÒÒÖ®íÙsÁ‚ââ=ª¬Ô¾—|?u9òn2 à ۶=|¸wïaÃ’’ºuëСI[[ãÒ¥ŒŒ#GV¬XºtÔ¨C‡NB  Ñ£'M²·7776¶³ëÙsÆŒfÍJJ.\(*’J¥RçóGŒ7®ªjõêÀÀNŠ‹[´˜1cëÖ‘#óò–//*š2å÷ßÛ¶50¨£V—”\»¶bÅÒ¥Ö¤I»vUU§ç„ ›7/ZtçNHHçÎ.,]ºpaee‡..ååÅÅ Æœ911§NµlihH£uêtîÜŒnÞ|N)N³f·o¯\¹dÉÎññ=zà8Š"~òä²eÙÙG^¾ìçG§×íìPÑÞ»éèèïïïa·o´LJZ¿þÕ+}ý-š4±¶f2'LؼyéR6ûåKQ© ÂÂöìÙ»—:¯_ …öö6¬YC£!ˆZݶíÈ‘={:´páš5aaÔ3‚:Slö±cÔ [²dÀ€Å‹--[µ¢Žðĉ½{[[8púôäÉaa¡¡Pç¨wïéÓ7m=ÚÓó[?í?T‚C&ËÈX¶lذ­[[·>xðÀ??}ýÌÌϵ˜›Ãè3_BwÖì-SPPPPP}òd^Þáà Æf_¼xöì˜1¶¶ ‚ ˆR™•uðàâÅ·nµoß¿ÿ!¾¾-[Ö|¾yóÂ…«Wã¸HôòeFÆ’%ááû÷3\ž•¹eËÕ«%%lvnîƒééúú3gîØ1tèë×;vìÞýô)‡ãìln®ÑTVvè0iRhhË–8ž•³}{LL~¾ž^eejêÝ»‡Çòå̘Ѹqnnlì¦M6üý7Šòx/_ŠD††FFJ¥Dbh¸oߪUžž;vìÚ•šJE%‘8:.ZÔ¿¿¥%ÕìÙË—ïÝKm—ŠjãÆ#G†i—ÀÏ­¨Š‹ß 55))!ÁѱQ£-0L­ÎÈˆŽ–É:u<ØÊêÛNˆöíLžÜµ«·w»vÇŽÅÅçàP» ÄÏF¥zófïÞgÏŒ§MkÕªöxà/#%'ÿñ‡@ТE}íµF#‘<{¶wïÔ©Ë–)•'îÛ7}º»»RùðaDÄüùK—ž=kiyãÆÍ›áá?>¶oA$JNž<ÙÇgÅŠnݺr¥¾ãy—Z]Y™—Ç盘˜›lêݳg¿~AAååzÖ[¤¤üýw›6žž^^_×ó÷Ž|[(Šã8îááéY3 +‚Ô¤¨ÔŠR ¨š¶ÚÿiÛk>*©½díej~£úÕ…¯û¯õ\³Fí%jGüî–jö‚$IR·ÿ÷c¬ÝcíÞïÿÃë½{ljú«9>ÔÏšhjz§ÚPô¿;ií2ÚßPÚGjZk–Eú?ulh4M·Pµ,µnM4uh¿gm¯µ×«ù¿F£í§vlïnWw™šm¼ÿŸîšµ—¢¶Tûqê±Ú¡>Üûûíº[x·oÝó’’’”tãÆû¯Éɉ‰W¯zxtèлw~~^^^A¨Õ$éààà`o_\\RRR2~üøñ“&:tðà¾}VVVVVVÚ>ïÞýë/W׿Í;tàñx¼šwO"QròðáýûïÚå₢Ϟ]»æéùûï—/oÜèáÁåVTüóÏo¿mÚDÓ§Oœøòe^ž¹ùÔ©íÚQë+•yyë×ge™˜„†ºº²X*UAADDr2‡äé)—ÇÅ êïútTÔÝ»gϪT……/®[÷êUûöÏž…†N›6qb|üéÓÞÞÆÆ4ÚÊ•7o ¡¡ß¼Яߞ=±±&$(/^¬[çí=vìÛ·7nÄÅ 8bÄ A‡}þ|¿~%%Ë—÷í‚ {÷^¹²~}jê˜1¾¾+Vœ9CE5p`×®S¦,\·oÕõëtúÀÔv©¨0ÌÊÊLJö•ßo¿êY¦ÑÔ|'à{ ²IÔwu”ÔÜc’¤n‹IªÕ?x˜X§Ñ‹ryQÑ;Í›7hн{}ïòË·IÔ:A­®ªzöìîÝœ-(¨Q#ssÃÀ€Fssk×®aCƒ¿þúxbôWPÿGøÛïÏmŸÀÏN7¥ý][Çð«úú±¶ÔR?¿ÁƒÄb±X,NOOK{öìʕ˗¯\ÉÌÌÌ|õÊÒÒÒÒÒòK?8™0aòäF¢£7mÚºõÒ¥Y³NòôüóÏ3gLLÆŒ 36ư—/óòj–'¡05µ¼<>>/oçÎk×D£‘J_¿6492  }{==ƒÅR(^¼ˆ¿?7·[·–-ûõ[ºÔÜEÇŽU(^¼Ø¼yåÊýûUªà`Ÿ¥K;w¶µ¥Ói´Ž‹kßA”ʲ²ôôÔÔ¼<©T¥’H4µZ&“JÕêš#H£Q¯ˆ õ‘QttVVUUƒññ‡QQ …ÕÕ……YY"APQén—Šêß gàûùhÚÀÀÐÐØX.—Ë%ËÉ)$¤aß{D1‚üœ£S?†Nwp˜>šÞîßÑ×o×nÜ8}ýúÛ·²>üÔ©Û·‡×mçpZµÚ¸1::&¦þbûôõÛµû9¯.•J©”Éôô˜ÌÏ=;qœNg0är™L"ùP Žo•J¥TÒé ÆÏþš ~h4Zœœ””˜¸qãÆ[¶4iâêÚ¬5n¢OŸ>}zõ¢–©kÚT®µõðá11Bá Aôï?rd@À¡C¿ÿ¾bE“&,–J•“S{M¥Ñètgç¡C'Ož:µæ›dÚ9ärW×+nÞ|ðÀÞ^©ÌȈ 3fõêÄÄÖ­cbnÞ|ðÀÙ™ÇÃ0¥R xþ¼eËÎÃÃOž½ŒRYXxéRçÎVVS¦P-tºµõðá:ÕwôÀ¯ï3 袢‚‚7o‚òòâb{{‡FPÃhP¸ð2™T*‘dggf¦§òù&&ööŽŽ..õŸ‚al¶Íóç•• EçΆ†Úi e2‚@ ‡ï ð“ ¦1¤jI×w,€ºúèmµHT]]Q!”——”4kÖ¼¹§g}‡ øÙš˜XXXYÙÛåæÖwDà‰FóáÖw h¼Û‚aFF-ZDE9’‘1jÔÂ…-Zp¹$)¦§K¥FF­[ëëC ¾¹\&“Hž>}øðÎF£ùð3÷](Š¢(Ú¨‘«këÖ\.g`€ã8ð+øè÷ììÌÌ´4;;gçúðë1557·µ­ï(Àÿ ÃÑqÚ´«W“’¦M«ýˆ¾¾‡ÇôéúúŸj¡Óml®__´ÈÆFÛ‚a|~ëֺ˾ *õìéÙ©“·÷—®›””˜xåJ“&îîíÛóx<Gµ+•EE çÎ?~øð“'††ýû·mkd„a'NlÚ4räŽÇxy…„Ì™³eËäɾ¾_¿R™“³w¯OPÐ;ý•”têÔ—öìç·}ûòågÎÌ™ccSRÛ¾½·wXXÇŽ£G¹¸à¸@›kdäç·bŘ1Íšq¹_?Þ»woOÏ#Ö¬¹víÔ©ví´Ç €ë£ hªÖ3†aVßA~=F£Á¸Qµit|ݺï·3––^^/^4lhlìëÛ¶mÍHC‡vìxòdLÌ;C† þµ©ç(úõßH²ªÊã_?&Aôôìì 23Ó×?~Ô¨iÓ¦M£ÒÄxx téRß¾‘‘C‡ZZ~íXoø; ~ðÕE¿$'''§Ï}G';;;;3³¾#¼ëëПG•êøP»îo7oîÝ;{öæÍ‘‘eecÇ®Z””ôLJݽ›‘¢:-^¼wï–-ƒYY‘¤TúòeTÔ¶m¿ÿ^ZÊãñù¯_ß»wýz~¾JeaAõ¦T–”$$ìÞ½n]\†YZêé½|)¹»OŸÔ´©îf¦²²U+__;;=½Oï“ibÂç3Úu•ÊüüË—wìØµ+5Çíì $GÇÀÀE‹ú÷·´d0AΟ_»vÁ‚Çét{{++==‘(?_¥ªÝó¶m!!³fUVÚÙ5jdl¬Råæöì9sæ† µãà[ªç´Z]]žÞ£G‡C†³XmÛ.]uèШQvv †RYRò÷ß‘‘'Nœ:uý:Ž0oÞøñ>>M›òx0.ûG‘H$‘H_ßÀ€ÏW« B÷F† **’’މˆxôH&++KOÏÎ64œ8qíÚ™3­¬§L7îŸBBΜY¿ÞÍÍ®ï}ùßô¡3(Ý¿?jT¯^sçDçÎtîllœ™yüøÙ³¹¹½z7dHUÕµkEE&œ={æÌÀffðœ?H.ð뢦¬¯­wë6jTPÐÁƒÇŽ­XQTdmÝ«WXØ‘#>>JevöîÝ>>AA d—.ãÆåã³{·¯oTÔùóÓ§[Zâ¸R9p AZZPÐ;juié… Ã†ùú=:rdlìùóþþ&“¥¥-[æíÝ¿ÿ²e·nݺµ~=‚ ˆF#Ý¿¿ví¼yÛ¶}(.F­–H^¿ŽwqYµjÓ&//ccmR8 À×wóæ ýýííÕj¹zuٲɓmmÝÝ£¢‚ƒ9œþÑhÆß°aݺšÓ.œ>=bõo*Z‡ÐÐmÛ¨8©ö®]»v Ý»÷Ê•õë›6e±ê묀ÿ®zN@c˜¾¾««‘‘‡‡•Õë×;vÌž}äȨQÑÑ“'3ææÝ»O§ÛÚ¢hÇŽM›òxðeÂK*‰ª«ù|>ßÜ\7­ÑTU¥¦._¾lÙµkááׯŸ;G¥¥7nlÙ’–&“a˜»»·÷¡C.|y…Gðm}ø ÒhÆÆÝ»oÙ²jÕúõžž,ÖÛ·ÄÇÇÇ+•Œ3qb‹°X¿ýöòe}Çà¿éû$ Õê÷ûÕh‚$ß/H¢(Šaº­Ôï(Š Q]™)$‡cmÍfëÁЮ¡VK¥……R)‚°Ùl¶6¥‹a,–…“©P¤¤Ô¬%‘dfž?ŸÝ²¥‡Ç‡cGQ ãp4èÝûúõùó¯^-+ëÒÅÏÏÂÇD¡Àqkk?¿É“CB:w64DY³fÍ ¡ÖT*ß¼ÉÌ´¶62êÑããGF*-,´°àók¤Ìd*ùù A|ó@½' µètss_ßçÍS©‚ƒ—.‹5šÉ“¹\¥ÞŒ3™L&u; ÑÈdYYqq»vÅÆæçëéUV>xpïž@жíÒ¥AAvâĶm‘‘,Y2thfæ¹s§Nݽûø±HÔ´éøñkÖØÚ¾zµ{÷Í›wï–—7i2sæž=;wfg§Tæç_¹²k×îÝÈdryQÖ»÷²e ôëgaA}±ñ“X,‘TUa5×¼B¡mW©ªªÒÓ³³E"mJÇ;v7®eK KN>yrÛ¶ ?‹==çÏ_²dÀçñãÑ£}|Ö­30ðöîÕËÌìÙ³S§NŸ~óÆÃcç΋ÃÂ?Þ¼yãF ³³30‹_½zñbÑ¢;vïþ_>þÿއΠ›Ý´éâÅ Ðhúú(Š ï~A—ª§Ù©SãÆ'NÌšÕ¾ý¼y99W¯>|ø×_¹¹þyþ|däÞ½'Oº»Ц͉±±þþóçûù¥¤9røðãÇvvwïþõ×Áƒõ½÷~FߣÆbYX¼y#‘¨T:ÐéT;AˆD¹¹r9ne¥M«ÕŸë ÃôôÌÍ™L’¬®Îʪ®V©:v¤úÔhH’ŠÃX,++6A¤Ò’©T­F}} S«åòâb¥’É´¶Öö'•æäDE½|imݪÕç¶M§“diirry¹J¥M@s8$YQñüye¥Bѹ³¡!“I’ …@ P`˜±1ƒ¡§gn^;Nê8ëî‹ee¥'ÕNÅY;ÅÀ·ô½Õ¤ÓMLzõÚ¾ýŸ:thÕªsçyó֯ݴÉۛɬ2nlܺupð¼yýúáøãÇçÏ¿z5mZxøÖ­ûö]»6cÆÁƒÇ¯Z%—;:z{oܸÿÀJeNξ}ޱk×¾}wï;6~NÎÞ½ŽùÛoѽ»¿ÿ°aƒ‡‡;9 âçgkK’ATÔŠÓ¦ÙØ¸¹=;z´­­ö­ü¯ËÙ¹Q#WWêß™™¯^¥§¿ßòþZAYYq1ƒÁd²XR©DR]Mµ3vvãÆÅÅýùgóæÝº¹¹¹¹•—wè0iÒ† 7†„øúvî¾oßêÕ66r¹Fƒ ææ-[îÝ{íZt4‡C£•—wè0s¦ƒÃßÿóOÿþ|¾@w励±¡¡ucdiÉ`œ>—§Rý7Ž}ùÐÄ0== >ÿSë1™cÇþöÛÑ£;²X~~aúú....IyyPбcƒ—”ÄÅED¬Z%»¸øúîÝ{öl@Až?_ßû àçõ=Jpฅ…Ÿ_UÕÂ…S§ÎË㹸4hÀçcØóç‡Ç¡CW® ܸ1› 7n9——' ‰‰‘‘ÑÑ'ŽenyçNy¹HTT$ðù~~çÎEFÒhkÖÌëí=s¦³s¯^ ÚÛWUÉå2YQ‘@`d4pà™3±±\î®]ë×Ï»k—•‹•‘Q]íê~éÒÈ‘‚ ÅË—;w._^P0cÆáú1+•EE7n”•UWDFž>}ñ"‡3lXß¾~~7nLœ8sæ»v……M˜5yòÚµ  Ø·/‚ØÛûøÌšµqã”): †YXøùefôèÑ¥‹Bag×¼y³f..TœqqQQ7n8:>pàë×óçÏšµb…½½‹ U:<üÒ¥õë›5ƒâà{ù‰ÐZ(ÊáLjeu÷îÊ•‹ÇʹmÞlg‡ T’]Zš˜~å æêêääèÈãaسgº}Ðhµ¿PI£Õž”¦æ+—$)——–Êåfeåë;qâôéÚ/6.ZTßÇâû©Kê¹.pœÏoÝúÚµ[·Ž?ujéÒÙ³·n?Íš+W‚‚j/‹¢8Îá0QZ¿jÕâÅ+WîÜif†ã¢TÊ奥ºÇü,˜L{ûÁƒ}|nß®ª‰LM££_½êÚ58ØÒA¤¤äý¯0ã8‡ck[ßqøy}¯IdêÔÍ›÷íûô2=zŒ»~=õS·}øð ¼¼†_° ¦ÍÎÎ×wíÚóç}}u—œ5kòäšß,,¼¼æÏßµËËëÃÛc2]\–,‰‰9zôÝG KË=>LO¯]:£Y³Ë—ïß_¹R·ÍÀÀ×wÍš³gkG¢kíÚóçoܨݶ~ýâź¿ÏŸ¿k×ÎßãÈð1?Ñl׺7"£G‡…͙ӤÉóç[·Î™süøë×T»Z-$$Ì™3wîÙ³!!'Ü¥Kƒ\î¿™ ÃØlkk‡$++ÓÓ«ª”Jª$•J¡P&ûïTÄ{?ÑüoRÏ*UyyRRBBq±RI§óù-[޵jÕ‚«ÕÚóõ>‚(-½zuùòŸ=ëÛ×ÜÇ„ $’Š ÍÒR÷øSþKÇÿ×ÅdZ[ûøœ>}÷î;yy½zuíjaQ{Lºn ¤ÒÂÂúŽÀÏEµEÕHòKj×üJêy4IŠDééYYee¯_8pèЙ3ÉÈ‘þþ^^¶¶GŽÜ¹Ó«×?ÿüöÛ!‚ Æa˜¡aÛ¶ãÇ÷î}äÈŒ«VíØÑ¬™­-ƒajªÑ¼xvôhLL~¾X,ܾ=fL` ©illTÔ;X\\\^^Y™™™”Ÿ”$H$EEB¡A¿~'Ož;GëÖ-^ìç7c†¹yË–M›Λ7iRûöõ}’¾­/M:›šZX(• …L¦ÛŽazzyyëÖÍœ¹g­mÓ¦ANŽPèã³ÿ‰·oÇÅ……H$©©7o¾xQ^neuèЀsçÞ¿om|èPXØŠ))—.%'[Z†‡ÇÄÐéëÖùùõï vvŽŽææÆÆ;wnß¾vm}³_ÛÇΠATTœ:uæÌíÛåå"QqqddDĹs­ZMž¨­É`ØÙ••mܸl™¿LÌ‘#––º•" ¢°02rñâ%K4š¶mõõ33[Û;j+ IŠÅéé={öï¿uë¦M/þñGÛ¶<^}GÀA•ÝpvnÒ¤U«Ç}LL¨oˆD÷ïéí½zuÇŽ§NEEMêàðí¦Œ¤^…êûø/ƒ¢8Žãžžµ¿NþýˆÅééqqœ8ñð¡BajjfÆ`TV¾zõèQVжo¿dÉÚµ3f¸¹q¹õ}ljôîíé9bÄš5×®:Õ®$ ÁSJJRÒï¿A„L&“}øcÑO¡Rφaÿæ»oüWPÏ2† àƒøžzöì×/(H"‰*+©A$Ôà’š%$©Û¢E’j55ôä'¬ ~.l6§¯OjµJUß±€¯ñïΠRYRr÷îíÛ¥¥FFC‡¶mËçëÞôŸúÔF3zôœ9÷îM˜pìØêÕ}ûZXP¨TEEqqóæ…†¾y#•"ÈÏ•€†àŽã8Žóx<|øÀÿ†Ÿ¨4ø9q8§V$ Mÿî 2ææ:ôèáæ¶fM×®|>­Ök†¾~Û¶'OÞ¹ÿmÇ>P$YVöçŸÃ†=ºvmMê™B§[ZúúîÚuäÈ€ff¾¾­Zyy­\ùô©DB}lÒ­[ûö“&=x #AÇÆ^¹"$µ¶JUXxñ"IDii\ܘ1}úLž|ã†@ RåçŸ<9dH§N#GFFħ{F’¬¨2äèÑÜ\Ýúö‰îX5¥2/oýúôtíhP•ª  ""1±²>âðë«Óh¥R©T(ê;TÀ¯„Á`0˜ÌúŽü—„D’›kmmd„æoÙÑ£qq'OêéY[s8¢T–•I¥*•DB ‚ (†1›7¯\¹¿JìãÓ­[Ë–ýúq8••ýuòä«WúúcƸ»Ñ馦#Gž?ûöÈ‘ÔTh=z|ªg’¬¬|ø00°OŸ®]uÓãNMÄ!¦¦–—ÇÇçåíÜyí‚h4Réë׆†#GtêdhX{ÂOà×RÇôǦ/€ƒ4øÞ0LOÏܼ¨H&#10øTº¤äöí}ûŽÏËÃ0{{¯fi 35íÕ«M›òroïeËFŒØµK¥27o×.5õĉöíE"’d2  íø*õ\—ž ¢º:3ÓÚÚÈèã±IR./)ñó›<9$¤sgCÃú>ªÀ·U§ô‹iiÖw¨€_I›6žž^^õø/Ã0 ‹wîìÞý·ßx¼3gV­êÝÛÜœ/¬RÅÇ/Z4{vVÖ´iRé©S'NøúFEEEM˜`oO§GD8%©TR™“süøŠ7nlÞŒ¢"—¿x±~ýë×FFýúùû9²jÕï¿?{ö×_sç6hž~ìØæÍ™™}ú,]úûïS¦|¼gÃʪ_¿ß~Û¼9%%&&4ÔÃÃÀ€FS*ËÊj r0ÖÖ>>«VmÛöøqlìÂ…-Zp¹$)>x ‘µn­¯£Á‹\.“I$OŸ>|xçNͤ%Ÿƒ¢(Š¢¹º¶nÍåòxT-éúÞÀçÕ黳s›6ÞÞõ*àW£[õ€ïÃ""BCmlvíZµjÉ’»wìí¹\©ôÍ›´´¼<&³G™3ÍÍ7‹Y¬%K†1âáÃ=Ú·wv¦Ó_½Ú´iíÚ£GŒæÌqu=p 4tëV77£²òͱ84tË[Û öìY´èíÛE‹,˜1cîÜV­ûô™>}æLKK:ÝÈÈ×÷ã=¯\ܡÓ'cÇ0h]óæÍš¹¸p¹juQQ\\TÔŽŽÃ‡÷èѾýÇãÇ foïèhnnl¾k׆ õ}|øöòòÞ¼yõÊËËÛ{èP*­\—µ¨TõÇ)) L¦ž^ãÆõ€&ˆŠ _ß=ÆëÛ÷ر3g¦Lqp€ïýð!hE…@P\üþ©©II Îλ»#—keõcZ¿þòåÚca CùóûôQ`ü: püß% ©W¡úÞðePÇqÜÃÃÓóãE'ÿ RR’’nÜxÿÕ %åοþòôìÔéË7$%%&^¹Ò¤‰»{ûö<Çã©Õ"QZZLLxøo¿­Ysòdié… Þ¾mo¯§‡¢JåÛ·‡>¬ÑOêàÀd’¤DòêUÏž]»ÎÛ¾ý´isæÌš5rdff_3‘îðážž}ûvìxútlìô鎎€?õ,ÓhBwj[€o­gÏ~ý‚‚$‘¨²’B’$I’5ßh$IÝ-’T«?~ð 1ñ'ýêbóæ66*•nË¥KOŸ~n­þýÝÝ¿æö¡þ©Õåå—/Ï›7qâ­[;vÄÄlÚ„ ¢ÑH$/^DFr8ÔwŒà¿F¡ÈË‹‰9uê÷ßÏÍ56îÓÇÁÅB‚‹óògÍ:|ØÇÇÌ Ã>ÝSuuRÒäɬ\yàÀ­[W®Ô÷žð³prrrrvþô2ÙÙÙÙ™™õ)?ŽîÖ-SPPPPP|øÐ¡G**ììW­ÚºuÞ¼ŽY¬Ì̘˜íÛ·o¿x±ªÊÐ ^¿<<–/ ›6ÍÝ]O¯¢âöí}û6mºrE*µ±16NK«¬tqÙ¸qñâþý­¬ Ù¼yáÂÕ«qÜÎÎÀ@$zù2#cÉ’ððýûÍ÷ËàWõ ÐmÚ¸º6lHý;55==+ëëú5jÏž7o¤R…B­NM}ñ¢n5u9sû6ŽŸ81}ºƒÃw~|áºu­Z 4cƨQÛ·§§0jÔüùݺµjen~âÄùóÚ>òóccwî¼pá?vì`±PA¢¸86ÖÛ{öìÙ³½½i4•ª°ðâE ãrMM~ñbcÇoï±cwï~ùr̘ƒóóçÍ[»öùóQ£""öíëÑÃØ80°S§‘#ïÞ4©OŸ!Cøü¢"‚3fÁ‚… ]]Y,•ª  ""9¹²R£éÔÉÐþv€å'M§ã8¾bÅ A..4öå=lÛváBvöÇW©ŠŠF2dÑ¢  5küýSSûmÆŋãâ’“Q´ àòåöîMM•ËåòÂBíÙsÅŠž=ŒÑ£ ˜2eÀ€9s† ‘H?~ôèüù[·JJ|}—- ›4©C>_£)-MHøý÷M›bc«ªlm5 +* Ç[°`øðƹ\-'':z͚ÇŸ?çpœœÌÌH²ªªmÛÀÀÎ_¼8{öÊ•'OD¢eËÖ­›2åòå}ûÂÂöïôèíÛÜÜ?þHH:tÔ(//cc:Aöí›7/$„Ú Ÿ¯Rååué2uê† 3™%%—/‡…­X ýúõëGíczzçÎÛ·——Ÿ81s¦ÝäÉ»vmÛ6qb³f{÷Ô¿n®·÷Ò¥kÖL™Ò·¯©)5ø_òþ-(I†…õíkfFý¦R•–&$„…ED¤§S×[V–Xìæ¶yóªU#GÖwô~=TZÙÏoðà€±X,‹ÓÓÓÒž=»råòå+W2333_½²´´´´´¬ëD…8nbâáѧϕ+B¡ZmdTV– Töê5iR›6·nåäœ=ûøqU•OçÎ……-Z5kF­§VWTÜ¿ïç×®]ÿþ55¥Y,µúÎÈÈ·oåòV­š6Å0:½cÇàà1cFjÐ@;~øÄ ¡† ܺuîŠÎœ9wnÍßTÅ0cóæ•+÷ïW©‚ƒ}|ºukÙ²_?O&»A KËÞ½ûõkØAP”ÉlÒ$ 8ØÖöäÉS§pÜÜ|éÒ£GãâÚ·×Ó³¶æpÒÓ#"òò¤R•J"!ANž|õJ_Ìww##ê}óùó·oŸð£|ƒ´î¨ç3ÚÖÖÜÜÀ )é͆Á Ó¿|\ÕÃǧÓ--Ù슊ââü|.·_¿åËãâ "ˆ’’èèqãwîtpð÷<ØÚš$ËË/\X½zÒ$++7·èhO*­®‹54hâÄ>}†3&8øìÙ1cF66>{6:úÏ?‡2äܹÈÈ©SÍÍ1L&KO_ºtØ0ÿ¥K7mŠ‹Û°açέ[ÏŸ/)iß~òäÎû÷÷ñ nÑÂÖÇ5êÒåСƒW¬@:}õê~ýÆŽ Œ‹‹ŠJK›6mÜ8//jÔê²² lm.Ü¾Ú ÕîëÛ»÷’%ÔVúõ›>}üøƒËÊZ¶¤ö‘Z&+‹F32š:õîÝŠ ‚˜<ÙÀ@ :ôÔ©ððà`{{¸ ù_6iR»vÚg.‚ ‡“œœžþä ‚”•]¸0qb@À‘#GÞºC=N]Û/^ÈdÒ¸ñ»½‘dEÅbjÚ¹s}‘F£Ñ¨ÕÉÉII‰‰7nܸeK“&®®ÍšQ¥9úôéÓ§W/j™º÷É`8:޹nÝØ±çÏçç:9Íž½y3ŸÏálÜèîÞ§Ïüù œ;7~<—;lØäÉ;wÖÄò¡bQ”в¦Çi´wSáBñöí¥KÇß¼yî\vöôé÷ïkkA³X®® áá}û*•Áóç±±¡¡cÆ4i2wî† Ô÷‡h4Ý-£(†Ñht:‡£V ÿ=kÖ°aûöy{Ÿ={þü!;º»íÞ}çµ´R©RÉåeer9Uÿ—Á@Q’T*U*e0h4Nwv:tòdªþ5µ–LÕ‚ÀöãŒ?ìßâÐ×g³ét6[OEy<ëËR=|n;(J£éÞBh4ryi©BaÖÖýúM˜2yò‚»v]ºtï^||P NÝ$`XÍMŽ³Ù¶¶l6†„LF$)“!›mnÎbi“Â8ÎbYX0 EAõvýúíÛgÍjÞ¼¼<:zƱc{÷Þ¿?1Q ¨û­IJ¥……º[¡ènE»õwo“ììüü|}ŒòóÏKK«ª‰:vìÑÃÊ RÏààÁä䬬ÔÔôô—/oÝŠŽ^°€j§®7êÚÖ]žº¶?v«VWWCÙ§;5É¢E‹ÍŸO¥ž1 Ãh´… ,˜?_óžÏ÷ËáDròÞ½þéììáafF§#ˆAӦÆ5j¤V''‡‡ÇÅÕžXÃøü6mbbRRtßÉd4Z‡C†ØÛëéQñ~x`Š2™ ‡‡‡‡[X¬]û÷ßB!ÕZ]Vvã†D¢Ñ (ƒalìæ6pà¸q={j“Î*•H”]^NMØ«R•”ܺSUÕ¸ñÈ‘R)VT(!•ªÕ$)‘äæfdTV*•jµH¤Ri4ýû›™•–FDœ;÷ò¥D¢Ñ Hzú‰ë×_¾\R¢Ra˜‘Q‹QQgÏfdˆÅÔ±S«…Âôt©ôËËÜðoüD5  9ƒÅb2i4.—š@ækzøÒµh46ÛÆ†Í&ÉŠŠ/*+ OO&“$•J@¡ ÑŒ©%uß®„LVX(—Óhöö<Îb!ˆTZZ*“©Õ¢¯a!—«TL¦••žŽ#HE…«ëèÑ+V;6n\h¨PøüyC†lÚäåuúô!u‹–Ų²ÒÝ Õ®»ùpZÁ°±8ÐÇÇÈèüù¨¨¤¤Û·—.íÝ»¦ê4‚aŽ‹Ë°aÚßY,++êÚÖ]Šº¶?v½ÑhzzÚòÀûÞO(ã8Žã8U ÚÒÒÒÒ¢®Ig]4š•“I§{xxyYXhߺ¹:9±Ù›7;9õí[{:ÝÊÊÝýúõY³Ö¬ÉÌtq¡&!ܹséÒõëy<•ª¬ìƨ¨˜˜Û·KK336 ô÷ïÝÛÚZ,ÎÏ‹+*’“/]ºw¯[·©S¹}»wï‘#/ž={Ë–åËûöus›??4tëV77£²òͱ84tùrjËÕÕlÞüÛoáámÛêëgf …Ý»oÞæíãúúUU øúFG/Y2|øˆJåØ±Ýº9;ÓéwîlÚ´víÑ£ññ{ö,Zôöí¢E noïå5zôòå3gZZRƒ llÚ·øpüø€€aÃìíÍÍÃÃwíÚ°¡¾Ï?øß‚VTÅÅï?šš””àìܸ±»;‚p¹µG‹|ÑÑÏžéé‰D$‰ã8þ5£rY,µš üýÝÜäò=®R•• àéÙ¯Ÿ…ň³gîïïïß½»ƒ‹¥TæåÅÆ†……†îÝ[QafÖªUãÆ ŽíéÉçO›Ö¡ƒ›[q±££—W—.:¸¸”—3óæÛ²¥¡!†©T%%7n<¸ys\œXlgçâR^.p¹cÇ.\8j”«+—K£80{öˆ¯^éë·hѤ‰µ5“É`4oîãÓ°áëׇoܸ}ûõëÉÉÉÉ\.I–”\º´páðá/_zz®_?v¬¿»vFFt:‚ìÙ3o^Hµª&oÇŽS¦¬_ïêÊd ÿüsæLX؉eennÔ>vëæà@Mˆƒ QPpâDpðˆ—/GDܼyúô÷>³àç¤R߸æÌ<{Æåúùyy 0`@çÎææÚ/êj—,)¹qcÛ¶3g^¼ ®·W¯ª«›4Ù²å·ßúõûçŸ3g¶mÛºuçÎ7¶lùûï¤$F30ÀqjT××¢^…êû8/ƒ¢8Žãžž=zè¶kIT2 E5†$kÚjÿ§m×hH²fýš%j/SóÕ¯îXIÝ}¨çš5j/Q;âw·T³$I’ºý¿cíkÇð~ÿ^ïÝcSÓ_Íñ¡~ÖDSÓ;Õ¦-'ð_ùˆ¢ºS¡jCuh©i­YAh4êÿÔ±¡Ñj桨Y–Z·¦º´¿¿ß³¶×ÚëÕü_£ÑöS;¶w·«»LÍ6ÞÿOwÍÚKQ[ªý8õ˜nÏï>¦ýïývÝ-¼Û·îyIIIJºqãýWƒ””;wþú«E‹Ö­;uúÒsýøñƒ‰‰Mš¸»·oÏãñxÚ©s5ÕÕ))Ç÷î½bEÇŽ§OÇÆNŸîèXû//uA=Ë4‚€Â*øžzöì×/(H"‰*+©ûJêû‹5÷˜$©Û¢E’j5õþ'J@¿|YYÉfK¥*Ž×m\W† *•»»™™Lömc›<¹kWoïv펋‹7®¦ŽÞ¯©ªêÞ½… —-«¬Ü¼9<üÝq@|€þßô±4àÍÇÐ/_¦§?|èäÔ°aÓ¦$©V×-qF½}ûöÍ›W¯ìì]]Y,‹*ñ«¹qãÈ‘%KV®ÜºõÆ +«ààÓ§-9òk&àÿÛ  €ãß' ¿A ŽoÅÄ„ Þ¾ˆ8yòØ1™L&ûò$òøñ“&M™‚ bjZß{ó3JIIHxúÔÚšÃùûoCÀ€É“ë;"ü¯ Þ’š™YXØÙ=ztÿþ­[u•O´vvnÒ¤U+ƒÁø•ç¯èÑcìØ zô;¶¾#àÇø‰ÐÆÆ&&¦¦3gΙ3~}Çò®nݺr¥¾£ø·<<¼¼ÜÝAÜÝCCë;ü/¡Ê›ñù&&;öî]ß~„:%  …âÃU•ÿ-ª.e~¾Ba`@’B£©T …\N’ …vÆîºLFH ÑÓ30€±ÏüÚ¶åóÿ] ð««çÐeeJ%‹%—kë–‘duuE…@еkƒl¶vòê'Fý«öD=T»X,‘H¥Ïž‰ÅÚ ™@ý¢jÔÖw€úTÏ èü|‘ˆšrE›‚–H •Jwb*ÅŒa5 h]4†aUUP$*/ÿÜ]º¸¸èé=ž™)— …õŸ®¶° Ó¤¸X¥ªïHÀ¿Ádr¹tzãÆÆÆtºRY\,•fd(ÚGÙl&³E cc•H¤R† Äb¥2=],®]ý’F£ÓqÜÉÉÔ”Á06&¥2=½¼œ ”J‡ÉìÙÓÄA²³««Õê¼<‰E{÷nÔˆÉ,../W*«ªHEy<µš <(+S«?}U¡(Žã;;9áø?ÿ¼|Y×o9Ðh4Z«V±XOždg+ÖÖt:O]+yøïÓ~0991ñêÕúŽP?ê9­T„Z­Û¢RIâ8†a•Ì¢ÒΆaTºf4õh÷{{ßõëiiIýÒh8N’¹¹0wõ¯M©¬¬T«ïß‹ ÂÍ ÇÕj¥²æœzyÙØàxYYf¦HôàTªÑøù5mª§—‘!—WUé~BjõË—¥¥(jjªR)I¢¨•—K£]¼˜™)릕e2µÇ32 d²’µA||š7çñ¬¬‘(3óÓ%0B­¾~=-­&U^†¢úú¦ÑÈdR©B‘•UßGð³#àöí#G6mJKëÕkÍš)S˜Ì±]¡ðÞ½S§ÂÂ6l8r$#ãÂ…›7££ëûhÀÿ–Ÿ ]{2•D +*„Âêêêêª*}}O_ŸzT­&IµšªÍ`0 †¹¹¹¹…EMúS‰\EÑÎ4`³ ss%’ׯU*Íß¿ys.÷ù󜹜ÉÔ×Çq7733:=?ÿí[‘(1Q(D‘#Û¶50 Åâ7 ÂÓ³ys£¼\*MLÌÏW*]]œØl’”Ë5ƒÍưää¬,©ÔÉÉÎŽÃiÖÌÀA„BÁ0“ª*‰$-$™LKK:$QT.W©ÒÒŠŠT*¥’Á`0Zµ²±Áqª7:].W(RR„B¡zC@©´²rrb±LL**D¢èè¼¼Ï%ßÁ÷§ÑPW(Iê& =ÊÍ•HÊËE"µZ©ÔhD­¦>RQ«IR©|÷ÌaAh4*•Z­Ñp8ÆÆ,–¥¥H$¿yóîóE£A† BÛõm±X¥ªCm(Š¢––ææ,VÆ\.ŠÞ¾ýúµLfkkeÅf·mkjJ£ef alÌáÐéVV‚œ9óè‘XìâbeÅ`p¹4ææfbB£=^\L*ƒA§·oonŽã2F}³áËRÛÔ•Z]]–vùò™3ÇÏ»o_AÁo¿ÅÆ>loÏd*•ÅÅ çÎ;vüøÎÇŽed=šœ|÷nÓ¦<†}Íö4±øÅ‹ÈH.·q úÞû…$ÅâôôøøNœxøÅ²±11‘JKJ²²=ÊÊBÑ“'#"¶o—H^¼ˆŒ|ôˆÏ4¨sg33:ýC}ḱqçÎC‡üô©@P×D¢ää#¼¼fÍjÓfôè±céôêꤤcÇNŸÎÍ=zܸîÝ_¼¸víÊ•¢¢É“£££¢|}ÍÌÞÝ.Ÿß¾½ŸŸ¯/—»oßÇõ}LàQ=' ÅâšúÏ™L©T«¹\.—JqÑh›ÍfkGQÕhH’$Õj’$Ij‚D*™'ËåŸ+#Àáèëc“IjµX,“„TJ£!.Éd÷î•”h4))Έ-Z°ÙúúÅÅ••ÑÑ%%$éãÃ`DuµTªR‰Å/_ …7o …$‰¢L¦ž“)“©Õ••$‰ J¥TJ£5h Ñ(•½~­Ñ4lèᡯùòÝ»ååÿÿàãa A¤¤H¥ÚâAA­ZTTÉåTo ::r¹@ R½yz2qùrJÊÏ2šPpE•JF­‹årí9ÍÈÈËÓ^ç4“Éd>yòäIeeV–Dò¡¢F£‘dÍ›p¹¥¥UUgϾ}«R½ŸÎ%IF£‘É ‚J5­ªJ­FSSƒ$32D"’üX¡™ÌÌü|iÞÜÃÇ‹e2¥2#ãí[¦iSssïÞ½ÌÌêjmÀ†éë7m:`@P¿¿‘QÏžUUçÏyzž:åë{äÈÕ«‹yy9u*—{ùò¥K;wR©g¥2?ÿòå;víJM•Éd²ÂBÍÛ{ÅŠE‹zõ°îÝ›7ïÓÇÈhìØÿøcÆŒ-¼½;t9ä´´ºZ.×Ó›4iî\cãàà±c½¼LM?œjýo8qÂß¿{÷k×&NŒŽ>rdÃ__ÝÔ½F#—ççÇÆnÛ¶`AXØܾmm=`@vvãÆË—ß¹¶råܹ#—7i‚ /^<{Ö³gDDL̤IÞšH”œ<|xÿþ»vÍšuéÒ©SíÚñx‚ lvóæ[·^½zë–¥%ŸÏd*•99$á‚R9cÆœ9Ë–!HHÈܹÅÅR)AL›6nÜ¢E-Z˜›WV¦¦Þ½zôhd$—‹¢Ô‡u*ÕîÝëׇ†>þèQJÊ£GB¡½ýÝ»7n>üuL¨‹zN@+*UíÑŸJ¥J¥M˜±XzzzzÔˆN‚ ‚ *>kKqPéi.—ˉD"ªzôçF“¤Fƒ ¡R©Õ …J¥ÑP-*UM †©T$Iµ+•*•Z]R’›«TªÕnnL&‹E’ ųgZM¥Ï1ŒNGѧO³³««srÞ¯»‹ãF% kG¨Ñ`A ¨v»T+†i4jµno·nefÖîM©|w-ðsøð9¥à8‹ÅbuìhgG£%$¤§|´>uÞ¿Ÿ–&•véâîn`УGuuyyLLaaí+\÷*•ÉB­¾téåKµzìXëáò²êê²²=+4êʬy&¾ßRµ…Aj/C]ÿ8þþŽ Ô8h¾':ÝÔ´gÏիàòõ*¡VS¥B;mšn †©ÕT»¶¸X\U%çæj4FFÎÎl6Ž'&VT(T…]U(T*×h^¾$mʃNGQQ©¨?´¿ZaÚíRm ‚ ¨‰ ¦í Ei4 Ç5’¤z{-ð³øÐÙÁq‡ÃéÞÝÞ^£INNK«®~¿ì†.ê ”H„B‘èܹ—/éô±c]\ø|•*7·¤D÷œ×.ÁAÔ—æU*…‚F£Óµ%>>žê~ÿÊüеJÅ£Ýʻˠ¨BA ‚0™ï^á€?f`àé9þ®]ÁÁ÷ï_½ZVF}ûÖ¤ B(LMŽÎʪªjÐ >þС={Hòõk¡°ºº°0+K$"ˆÑ£CB¶l2ÄÏoܸñãgÏ~ð !á÷ß÷ïGQ‘¨¾÷ïÇ“H„˵¶f³ñ¯xŸ€at:†ãFF£F ^S´ä{I770`Ñ"33A”ʲ²ôôÔÔ¼<‚°¶®YŠÁ03ÓÓÓÎ Áf»¸Œuúty¹Jåêjcó_Ñõé'(ÁQ{İZ­R©Õ\.‡Ã庹¹¹5oNµSj4F£R©T*Unn^^~¾J¥TVW_¸œüè‘XÌb5jôñ­ÑhÆãaŠZY¡(ATVªÕúú8N£ÙÛ[X0™oßfg‹Åúú ‡ƒãÖ¸±¹9ž–öúµDõà›=kV‹tú… ׯ‹ÅÚžår•ŠÍîÒÅÚzâD!ˆ²2™L­Žˆxð ¢ÂÅÅÑQOÚŠƒŽDZšX¬Ñh44I¶k×¾½±1ŽgeUWß¼ùö­\¾wïÍ›UU´nmjJõöäIFFyùÍ›‚P½98èé¡h~þÛ·b1Õ›¿¿——…Å›7÷î?x “!ÈàÁï¶Ðh,—;aBûöLæ¥K·n Â` Ü­ŸÿæÍÝ»Ú%Á—âpLL¸ÜÖ­ÍÍÙlggÇñªª²2±85µ° æÏ÷ö64d±PAZµ²µ52"I¹\"Ù·ïÚµ²2Ý)(qœÅb³Û´±°`0ll ¿yóõ뢢U«²²0lîÜÞ½ÍÍ ³²**þü³°E9:NïÚÕÙ™ÃyñB*E{{O­Žÿûo¡ðÅ‹š2 µÑhÖ¨‘•“I=#B¥"IGGkkíµjk‹¢‘™‰ ,VëÖTAQNÇqÍvv:tòä©S˜Ì¹s…‚Ç ææmÚ 8a‚µuqqLL^žB ŽŽõ½—õÁÛ[_?'gÿþ{÷‚ví¼½kƒV*óó?WãEÔGPjµ@ð÷ß11r¹—×ðá66¦¦ÍšuìèîþèÑ»½»&ffÆbAøžê½Ç»c–Õj‚ ÊUh4J¥J¥RQ7¨ÒTêY*•J¥R6›ÅÒÓ‹‰ùçŸgϲ³ÄÎÃ>7š$W¯Ž‰yûV·mÕªèè7oj/÷äIaá?ÿºdIddvvÝú‰Äâ[·ž<©ùxC‹$7l¸x1?_·-44*êý%ë‚$Ÿ={õª¬ìÙ³W¯´m¾VÅâþy7žþÉÈx·G‘H,>{öéSíïmÛöèÁá|¿c€F£VËå*•6 ­M/nݺre»vΟ¿n@ÀbµhaFF-Z dk+;völFÆÔ©óçÛÙݽ»gÏ‘#,Ö„ óæ5l˜ŸŸmm<~|÷îtz׮Æ9“›{â„¿?‚Ðh$ù¿4©æÈ‘óæµk½qcXØ-[®ZÕ»7UDATª¢¢«W·mãó»u:”:2ååºwi4ï§z?Õþ%>ô¡šF£T …R©ZM½ I‰$77#C$20ÐhDwUUÍ•¢R•–ÞºÓªU@À!õ}¼࿬žÐ(Š $©PÔŒÕhÔj’Ä0Çq Óh4jì³vy¥Šodtô?ÿ<{öä‰LfaA§ëéÑéTòº~÷À÷F’"QZZ\ÜÑ£GŽÄÆD~¾R9jÔàÁ=zXX0™ff}û®^½iSb¢ŸßäÉW¯"‚Ðé66;v,YòêÕ‚‹M›6gN«VM›¶`Á”)zzåå \¸ðäIÇŽ^^ÎÎöö  …ééaaëÖ­X!—uîÜ¢¶vmDDJÊÔ©ÆÆÿå’ &&½{oÜA£ýþû®]«V-Y’™Ù¬™££LVZš––—Çd>ìííà0xpÛ¶4ÚÚµ3gΞ=cF|üš5GEÅÄäå‰DÁÕ«992YïÞÖÖbqBBTTlì½{UU……ݺ?p`Ó¦<^ÝFI''ÇÇŸ=›–öìÙ?ÿ”•UWÇǧ¦VTôíÛ¦‘Ž››÷ésäH—.#F<|Ø£GûöÍšÙÙ¹¸ÄÄÄÅ=jl üjzöì×/(H"‰*+©ª$I’Ú ‚ $©Û¢E’jõãÇ$&Öi4“Éd~Ïùá/îÕKÛ¿B¡P(r¹TÊáÔþRõ§P»ehÈç+jšN¾''''gçº,™™Yßñÿ‹ê¹Çûªª*++*¬­MMŒP”šÄEQ”F£Ñ¨Q­Ú²(Ša4šT*‘H$ju}GàG´2ðóûA3Ô F£a±ôþ“©§Çbéé±X5?©éÙl6›Åâp¨ÿëé±Xué]"yñâüù¤¤²2•ê[ÅKõùé¥ÔêòòË—ÓÓ¥Ò/ë].ñâÀìl…B¡ÈÏ¿~ýÚµ'O>\œü¼îÞ=ºU«¶m]]6lÓÆÕµaÃî݃ƒ¯\ ß­Y®R߸´jÕÑ£W¯ææÊå*UeebbX˜¿ÿÌ™6;yãFAAvvLŒ—W«V:-Y²mÛž=‡‡‡¯[·|ùѣϞ‰ÅŸ¯†N]“³gûù-Zô%{#—¿x±u«Oÿþº×$|üÞ÷Ó€þ¿°p Ã0ª5îÃ0 Ãjƒ¦­ j5µÎÇýýwXعseeK—èéùïkHDi)Õ§Ï¡C[ÃLLúõsuýÒþUªª*:FC&ÓÆ¦gÏ^½ll¾ï±ß^E‹ååµoßÝ»7¶hÁåR#ûqÃÞ~‹N·°èÑÃ×wðà/ùü>}ììèt¡0)éöíNœØ¹3"‚éYËĄNjŒ ˜8qúôV­x<1¢sg_ßk×úô‰Šòó³´Ä?ú§®É;bbúõû’½Q©ªª²²D"µ®Iði?]šªæ,VT…ÕÕÕÕUUúú<ž¾>õ¨ZM’j5‚h4Â`0 †¹¹¹¹……6 Ÿ‡©RîßÿèÑÛ·––ü±}»Læààá1mÚ¸q^^*UAÁåËìÝ›š*—Ëå……(Ú³çŠ!!}ûZZæçGG¯Ysøðó玓“™IVUµn=`@£F÷î“ù©ek®É?ÿ|òD$Z¶lݺY³¨k2<<&¦¬¬oïÆ©k2%åÅ ½páêÕíÛ©k2?_" ÷ï?qâÑ#êšd±ÊËÂÂ""ÒÓ©krÁ‚%KÖ¬©ïcêÓO—€¦p¹\.—K¥•©"ÚG¨´I’¤ZM’$IMY¨Më)ŸJ@ÓéVVÖ֟߮ݸqsæŒçàÀdDIItôøñ;w:8øûlmM’åå.¬^=i’••›[tô?ÿlÝzþ|IIûö“'wîÜ¿¿Opp‹vv8Þ¸q`à… QQiiT"ûƒ72jÝzàÀ.]þøC I¡Ó;v >üСòò-&Nœ5ËLJZ:  K—#ž=ëÖíÔ©Áƒ'L:´ªJ hÑ‚ŠV­.+»pÁÖváÂíÛ§N57Ç0j-_ßÞ½—,Ù´).nÆÆëVŽü(2G’yy……ÕÕ––|~YYïÞÃ†ÅÆ>=o^ƒLæ‡Ö:|Øß¿sçÒÒ>}öîýãùóíì>¾F£!©´¬ÌÜ\O¯º:%åÙ³ŠŠŽ»v56þPÂ»æš àÈ‘£GoÝŠ‰©ÙLBð¿í§-KU‚&I’$I¥R©T* ‚ âÿBÿ¿ô4—ËåR㦿n+\^ZªP`˜µu¿~&„„Lž¼`Á®]—.Ý»dcC§¯_¿}û¬YÍ›——GGoØ0vlïÞû÷'& ÚX¾†i‹‰hÕ”ù’”J ÍÍY,mê™Â`(2Ù¿|{cÇ®^=eJ§Nööúú × MUÕ­[ ¯E>tèš5ÆaXTTHÈêÕqqùùߊ¢(޳Ùff¿ý¶p!Ÿÿ÷ß7îßÿæ\þ5ñ¾ ¢híëMuMÊdRóAòÓ& ©Í…………¢ÿ¯ºZ©T* ¹\.—Ë¥R©T"ÊËËË5æó“®}äÐØl6›$+*^¼¨¬T(¨v’T**¥[Qáê:zôŠÇŽ]¿~íÚÍ›‘‘çέZµiÓ«W_:©à¿E£±XVV¥¥2Yí±Þ*“ie¥§W·òàǪ®–ËkŸ/ ÃHR¥"ÉpÂå6k6sæ–-³g»¸öà¿L.ÏÍõôôö ëØ18xØ0­¤D©lÕjÆŒY³zö43Ó­Çÿ­¨Õee—/Oš4zô­[‡_¾¼iS}‰ïƒ$ÅâôôøøNœxøÅ²±11‘JKJ²²=ÊÊBÑ“'#"¶o—H^¼ˆŒ|ôˆÏ4¨sçOñêêää={‚-¦Owtüpñ¡!ˆ%KBC·o·²²¶Æñòò´´×¯W®Ü»w÷n­®NI>¼wï+""’’þüóýµ?t¾äò/V­8pþüE‹ž3çÆòòÖ­;ub±®]30hÜøãS ¿ºÛ·÷ö ëÔiôè  £¢";›Ç8pÕªqãÜÜx¼??ÃçöT£‹ë~.Þí³cÇÓ§cc¿ì¼@Ý Aqñû¤¦&%%$8;7nìîŽ \®•Õ ¨¤¤¸¸¨¨U+W×F¨âT© Ã0 £RÏRÏŸgd¼xáàШ‘«+“ÉdÂ?ÿw5 ©W¡úÞðePÇqÜÃÃÓ³G³Å>}<=GŒX½úÚµS§Úµãñ4šîÝ;t˜:uõêK—öíëÜÙÈèSeÀ‡I$Ïžmß<~IÉ„ ÇŽ­^Ý·¯…õ™JUT7ož™YÿþK—ÆÆŽ?sfIÉÊ•'NL›öéô¥H”œ¼gOyù—$ 5šªª{÷Μ‘HÚ¶ ²²Âq‚()¹~EÍÍ{öÄ0‘(9yøð^½V®üXúc‘ŒÑ«×Ê•§NQkDIITÔøñ3g|ìØ¹s_zÄÞ½dÀ_ß#bc£¢† ³²ú·ßPúôžÖÄ_·sñnŸß;œœ˜xõê÷èð½õìÙ¯_PD"UVRƒƒ©œmMId’ÔmÑ"IµúñãÂЂ †ã8ŽaFC}Ö>Š¢(JíRZÚ‹/_ÚØ8::;Cê‚ Šš›“d^^F†@—'ìÙ³n‚øøôëwïÞ’%ë×?{Ö³gDDlìС/_îØ±kWj*ŽÛÙH$ŽŽ‹õê… ññ7Nzþ<7{öž=Ó¦µhñæMlìÑ£{öäæššhdTT”œœ–&mذ}ûªUÔ–•Ê’’„„µkOœÈÈ06V©rs_¾‰ÜÝ÷î]µªoß[·þøcݺ­[Ïœyó&>þï¿£¢B(¼sçĉíÛ÷íkÖlá“'Û¶åråò¬¬ÈÈ-[®^-)a³ss ÆÆîÚµeËöí¼}km}ðàŽË—ß¹¶råܹ#—7i‚ /^PÇ<&fÒ¤oJƒöï¿k׬Y—.i¸•ªª*-M.GÖ­©71éÔéÝòEñûïaa«Wgd<{öàÁÝ»/_"È­[·o=úðaDÄáÃqq‰D6lØ0zô©Sûö;÷ö­X,nß~ðà¥KÆÆÕÕÿ}ðàƒoß¾ysð`BBpðر^^¦¦Ô(âOEøqL¦©©±1“©ýœ™½~ýöí/VU98´hanþú5Ö³gXØ´iîî\.† áá .]*•ÚØWV&%ݺ5sæÑ£qqµ‡(99¿ÿ>fLpðÙ³zz={N›ææ&Õ>«W/ZdjŠã2YffLÌöí11ùùzz••©©wï Ë—80z4‚ ˆF£R••%'Ÿ??eÊÂ…G>z$ÚÛ­[6{¶§§¡á¹êÿU?]ÚÀÀȈϿÿÉ“ôô/…¢Ò¨Q³f-ZÔw¼ê—\ž—±ÿþý©©8^^îçwôè¹s r84Ú¬YãÆíÜYZÚ²å¦MþéëK­ãëÛºõøñ úûÛÛ«Õrõê²e“'ÛÚº»GE³|ù©SaaÓ¦=N§3™††®®Í›ãøï¿:b&%'Ÿ;׫×Ê•Tojuié… Ã†ùú=”MµËdiiË–¥¥Ĉ]»xàÀ‘#ÚµpœÏïØqĈqãž>}ôˆê§¼>8xÊ=½OOOûí:UXhk»|y‡ÆÆïOAŠ¢zz66~~'œ?î\ZZÇŽ“&ÍžmjÊb1™ƒÍš5nܹsññË—oÚ”œœœ¬]O$*/ÿÒH ;» 0lÉ’‘#;wŽ‹KM-/çó;v|þ<1ñðášØ0l„yó–/§~S*³³wï~ôH&32òôôóëÜy×®½{W®D=½U«FŒ˜:50ðÒ¥èèôô9s&MêßAD"“+W"#ÓÒæÍ›4ÉËëkU(L*-+³²b±ª«ïÜyò¤²²{w//>ßĤmÛ1c ²²ÒÓ#ˆ²²ví:t˜=;-môèS§Ú¶U(®\qrZ°`ÍšþýMMi4 ™;WÛ³v† Ù¶-.Ž$§M‹ˆ¸}{Âêʉ’“kŸ *u®Ñ`µÝ ||èôGÎ{õjÊ”;6mBÑ£CB¨ï-{x¬\9lØÈ‘QTtßÀ£GÏž}ÿ~\ܼöÿ=uJ@+ …\þcR( …Ã0 E©ñM»é.//-Õ¡†xý˜8Ÿƒãÿ¾ê)Ÿ§§gk;|ø”)S¦|l\*ŽÓhµGÌ*8nmíç7yrHHçΆ†2kÖ¬Y!!5KÐé–ž~éR^žTÚ¬™Fsù²LÖ¬YãÆê_­–J ¥Ra³uÛ1ŒÅ²°H¢n{‚a¦¦½zíܹ{wQ‘—׈½{«TææíÚ³jUXØÂ…^^&&?æ˜2™DRTDMÄk`ð5å#PôS¯QXx挟_ß¾¡¡iiÚ)L“’š7wvf³›6]»ö¯¿bb†¥JWoØpòdPЂž<¹dÉŒ))UUMûöÚm¼û^EßOœ™/‹°f»(J§³Ùff7††òùýû¯^½o_PP‡K—𙕔ܾ½oßñãyyfbboÏãÕ¬Kbñ›7††FFŸ:njuEEtôíÛ¯^éïß Áç&¦ÎBIÉíÛ»v]¾L£¹º:999ñx8þäIí¥jŽ Ž³Ù¶¶\.†ýˆ‰lÿ}?]zH$ªªª¬´´4662²¶6112²±15åóíìÌÍMLìí-,LMíí--ÍÌ,-ÍÌ­­----ù|ƒúŽÀ¯Ã!ÉŠŠçÏ++µãJIR¡¨„+¥Mæþý?ÿÌÈxò$>^£éÛ÷c½a‹eeÅf#ˆ6MIQ«åòâb6»vŠðÝâv›jµX\P 6k6zôýû÷î?¿reûöyyÇ/[öc§:ìÞÝÀ ´4.îñãª*µúýÇ•Êüüš¹_Ç­¬† ‹ò$;ûÉ““'==ml<äÈàà€€nÝx¼‡÷î<92R¥0 S§6mºwoÙ²ºzܸáÃwîlÛvذÀÀ ŒÊÊÜ\.·ÿ¹sGŒhÖŒª(úñ¸j®«-[Ξ]»¶nûSs]M>sæ;AëÖp]O©,*ºq£¼\$*(ˆŒþܹ۷Ÿ<1226Îϧў>Õž/¹¼¬,%%22.®v„66Ú}‰ˆHI™:5 ÀÃÃØøóé©ë°¬¬²òÕ«-[֯߾ÝËËÆÃRS³²Œ¥KcchÛ–ÇC ¼½éô%K† JLìÑ£}{SS&#cÙ²+ŽÙ¼yåÊQ£23'NôñéߟF³·wt´°06Þ¶mÓ¦9snÜˆŠŠÏÏ—H¤Ò'îÝûóÏÊÊcÇ.ìÓ§mÛââK—îÜ9r¤ö¹øóÏýûŒÚ¶0ÁÛû÷ß§M[¾<,¬Y3;;&“Úî£GÕÕ8naѪU³fii«V-\îêjd”•UYik»lÙåË'NüÈ«ð_…VTÚBºRS“’œ7vwW(èt>ÿÇTVVRRRâîîâÒ 5‡J;c†QIhmšZžj‰D"‘¨¬L,þ\©Ë—§M1¢¼|Ñ¢£GƒƒííëšD&ˆÒÒË—CBæÌùòuë‹X|ÿþÌ™~~k×¶ióûï‘‘£Gÿü1ÿ÷DQÑÊ•÷ï³ÙË—·oo` Ñ”•ÅÇ_¹B’}ûöïonþ¡ñs*ÕÛ·<ÎçOžÜ²%›]Q‘’²mÛœ9M›Î›wô¨nÚzäÈ^½ÆŽ7/&æÈ‘–-¹\;¶G€?¿“'OŸ8ÐÒòk¾8ÿi5×Uxøµk¯ jfö~‚ýËP¯Bß:~ð}¡(Žã¸‡‡§gõ àg‘œœ˜xõj}Gø={öë$‘ˆD••F£Ñ$IR‘©ì-Iê¶h‘¤Zýøñƒ‰‰?åhF(¬¨ «««««ªôõy<}}êQµš$Õjê«¢ ƒÁ`˜›››[XPièÏõ­R>üäIn®¹ùñã»vÉåvv­[Oš4zt·n*UYÙÍ›G†…]¼ˆaææzz¯_‹ÅM›Ï;tè›7ÇŽmÛ¦»®Ï’%óæñùÔ„ ¯\9zôҥׯ%’¬¬/P´G¥KÛµ+(ؾýàÁØØ‚‚^½æÎ:4''::""5õùs‘¨Q£Q£V¯¶²ÊÊÚ³çîÝääòrgç)SÂÃ׬<ØÎN7îGΜپýêÕgÏÄâV­BB/æñ.^\²dß¾ Êˇ]¼xèЇO:|85õåKõð˜={×®¦M_¿ŽŒ,,”J…ÂääãÇwíò÷_ºtÞ<==àã{êâòo“† 6·´üí7OO¡Ž+u ëéáø§§CQÑhäòì쨨mÛîÜiÚtÍÏŸe2MLŒŒôô>]}µ²òÑ£ÈÈ#G¨ëjñâU«¦O¿wïØ±õë©ëÊÛ»wïF^¿ÎÈxøº®"#ãã7o¾té?´×Õ¡C§O?y2lØÐ¡Í›S×ÕÎgϾxÁç«Tùù‹/[Fûÿ«~ÒT#—Ëår¹††††FF<T‹ƒÁd2™Ô‰8ŽãŸéI§[ZZZ²Ù|~»vÁÁ!!TêY­./¿tiúôáÃ÷ï·±™;wÓ¦qãæÌY»ö·ß^¾\¶lèЕ+ûô ìã“—wòdxxHÈÚµ‡Ÿ8qè·wvöþý+V¼wË–>>:å秤¤¦ÉåÒ¾ýСC‡êëK$Bai©¥eÏž¿ý¶{wdddä¡C^^ééÛ·‡†4nÜ!º1³ÙBáçö´¾Ïü†QÉf’T*«ª„ByüøÉ¡ðÓ“;6thÏž¿ý–Ÿ?hЄ ÞÞ¶¶_V£ÑhB*-+33ÓÓ«®NM}þ¼²òC•[)8nh¨{]!Žóùº×ÕðáÓ§‡†ê^WÏŸ„££îu5qbPPóæº×Õüù3fL™B]Wõ}Ô@ýûIÐKOOOcï!€IDAT­T*•J%A„6iGzæp¸\.·fÈ÷—#I©´¨H&CËÌŒÅÒV±Å0==ssC¡((øøºryY™RI£YY?yò´i&Ì™³uktô­[QQ5Ëé ¡~§ ‰è¶h“”_‚ª‚ý~?îéßì)øh4ƒÏoÒÄ×÷îÝíÛÈÉùTɘ!CV¬ ÑbbæÏß°áâÅOEQg³MM—,™;×ÈèÖ­­[zûös%i>ÞÛ»-¯î¬{]Õïñ?›Ÿ4Mh.,,,,(ýÕÕJ¥R©PÈår¹\.•J¥‰@P^^^þoÐ4‹eiÉb!ˆLVV&“iGªÕ EI‰JÅdZY}|]6ÛÚšÍÖh*+uÛIR© ëû(~Ë=_‹ **$’ÔmCQ&S¥*.–Ë?>FA8œ¦M§NݰaæLgç'O6ož:õSKk±XÖÖ..l¶\ž-}zŒõ·¡{]}ÿ­€_ÉOWš+Ìår8\®›››[óæºíT¢Y¥R©Tªüüüüüüª*¥²ºúÕ«ìì§O4hÜØÕõÓýûø´h¡RíÚ5{öœ9UU#FŒ2dHÿþ{öœ:ÅáüñǶm‹9ba¡§—™)5i²zõÙ³AAÂd–—ë®;pàùó»w™˜ôí~ìAŒ5nÜôévvff|~£Fþþsç6h•_T$‘))±±ÑÑC‡úû›š^¹w÷®P(‘ …UU™™üùgr²P(• ÕÕ¿ÿ>qâÖ­îîááðù —.K¥OŸ&&fd$&¢¨¶çû÷/\ˆ‰>|èP3³K—.\¸wO(”HŠŠâ⢢j–‰‹‹Š  6ìs{ ¾-Áøí·©S/vrjÕªAG./,\¶ìüù;]]9œÚK«TÅÅ7o^ºw÷nz:ŸïäƒÂÂöì9p€ÏW©òò-Zºj@üoC+*‚ââ÷HMMJJHpvnÜØÝ]¡ ÓùüPYYIIqq»v-Z¸¹QÅ7¨R†aF¥ž¥:ž‹ë ð£AÀBeöó<8 `óæÍ›·n¥Z®\¹|ùÊ•¡C------uGF¿xB(LMŽÎʪªÚ¹sçÎ]»öì9~<9Y(¬®.,DQ c0X,…âŋ͛W®Ü¿_.73ë×oéÒÎù|Zÿ~R£˜u¡(ƒaeÕ·¯¿‹††† ÆÆÍ›{z)ÙÙbñû¥FAΞÍÉ14ôók×ÎÄÇAœœ||Z·V«ï܉Œ|ûöËjL?^ßø_B’3gΜ9}úºuëÖmØàääèho¿k×îÝ»w?xšš”D-ó£b‘ËKJ ·¶ž5kÖ¬ª}öì%K¨©T;wîÞ]T´iÓ®]íÚuïžœztÿþ­[®®Í›wèÀãñx<^}ï%àË$''&^½ZßQ¾FÏžýúI$"Qe%5PŒú¾rÍ 1í7˜k'#Iµúñã¡4€ïîíÛììŒ O_ßÐ$Õjm½â!C4ˆú7õÇIw­òò²²¢"CC>ßÔÇqœN×}ÔÉÉÉÉÙùc[ÌÎÎÎÎ̬ïýþ×AÀwD} ZZZR’ŸŸ•õòå“'Ÿ/¬¡ehhddbbffiioÏ`0µÐb~~€ðÑh4foïääêJ¡û\Ô¨g*õŒa†aõ½7ø2€ðݱX,‹UßQàG£Õwþ›  ເ4€Ÿ5a}G€¯5 |w™™WT…¥¥F£ÑÔe->ßÄÄÂÂÔÔÜÜÆ†Ëåñ pÇqøËü2à6ÀwgffiikÛ²¥‡G÷î(Š¢(Z—µòòÞ¼yõª´´¸87—ÉÔÓkÜøëÐ$YY™œ¼vío¿¥¤ ¾eËÌ™ êéÕ÷1ù¾~O•Ê¢¢‹7mÚ°ááC: 49rÇŽ#llŒúÞ+¿2(Á໳±±³sv–HD¢ÊJ±¸ºº¢¢.?Œø|SÓŠ  ´” ‚ tûT«KJbc7mÊÈɨ±øÁƒù󳲊Ú[§Ñ Ûµ[¾<<üçH=GE¸woNλ‘þ[_»§"Ñ£Góç¯]{÷®‹Ë¨QsæìÝ ©gߌ€ðƒÔ½øF]`˜‘‘‡Ç¸q|>‹EµÐ醆66B¡R‰ Âdj—LJ:~|ëÖ¸¸GD¢öí-Z¶L_?:zÁ‚Í›##ËÊÆŽ]µ*(()é?º{7#E;uZ¼xï^OϧO§M[½:"¢  I“É“·lY°ÀÊêñããÇ÷ Z°`ÿþ€mÇŽ]»RSqÜÎÎÀ@"qt \´¨W/¹|yóæ•+Äǧ_¿{÷–,Y¿þÙ³.]¶n­®~ðàí[këƒwìÉÛ¶7oÒ$//¥2?ÿòeª7™L&+,¤Ñ¼½W¬ z2Ä×wñâqã6lð÷§z[½úÏ?““köók÷´E‹W¯Î{ûV, âàÁ;FŽ\·nÑ"«¬,!a÷îuëââ0ÌÒROïåK‘ÈÝ}úôÐР ¦M¹\|Œ ÿsRRîÞýë¯÷Û[µòðèÖíýv¸uðƒh¾ÊÇûc0¬¬LMétê7µºª*##5ÕÜ\7%‹ Ò®O«VYYwäåÉd$Ù­ÛÈ‘AAÏžýñGr²©iXØ‘#QQÑÑ‹q¹7onÛ¶oßàÁsç®XÑ»·±1†aX³fîî­[ûúz{;84o²víŒ>>§OÏ›wàAŒ³`Áܹ3fÌšuÿþæÍ«V¥¤H¥ƒ͘1jTDDLLII³f£FÍŸ?s¦Ÿ_Ë–vv\.Ÿß¥Ë¤I³gS©gQ*óòt{ ]¼¸KÝÞØìÒÒŒ ÝÞ´{þo÷tĈ©Su£20P«‹ŠbbfÏ^»öÑ£=BCgÍZ²dåÊéÓ Nžœ9sýúÇëûjP?<<:tèÝ»mÛöí{õjÛ¶}û=Z·n×®{÷-# ü F£VÛ>ŠÜÜøø­[÷îÍÍíÔiöì?þèÚõÝÒ(J§s8tºîx]Ee2­­}|nÑAÇ[´èØ‘ÏW*„ËmÙråÊÝ»;wööž3gÇŽçÏäñºv]»vþ|++:ANŸ~ó†Ë]ºÔÊJ; ûÂ…[·öï×nE$¢Ó»v3fôèQ£µ‰ñ'ÞÝ ¥²°ðÒ%ÝÞètCÃáÃ/\¸ukøpj™½{étcãÎßíí[ìéûñÄÅ9’“ceµ|y÷îææT»³s@@ÿþ8>|øŽ‚ ÇÛ³ àç÷¥# ! àù¶%8¨W­Ú·O.?~åÊiÓ4ÐÓ«Ûô†uÇá8;Ö¦F³lY|¼F³eKHˆ¾¾v+IVT<^Y©PtîlhÈd’¤B!(fl¬MJ†±Ù66ŸîíÛî×çâa±¬¬Øl‘JKJ¤RµAôõ1L­–Ë‹‹•J&ÓÚúGÆàçA€®¹Ç'ÿÏÇîú¡€äÛ–àÐhÄâ'Ozöœ;×××ÞÇÕj‚ •J  j@×^öÝÄôû-5ÔþËmÔhøðæÍ•J&³ÿ 8œšÇ ²µ £¢ÎžÍÈ‹5¹{wÏž#GÒÓ¥Ræc[¡ÑHR¡(/—˵ÛÂ0#£-t{CµZ(¬ÝÛû”ʨ¨÷í{ôH$"ɯÝÓw—Á0>¿M›À@‡Êʘ˜”AD&ËɹxñÁ­C‡!C¾ýõà¿­¨Š‹ß 55))!ÁÙ¹qcwwár­¬ê;TÀ¯ÄÀÇßO~ êU¨¾÷|Åq÷ððôìÑC·ÇÓ×çó‚²²ÂÂ/íóÑ£û÷oÝrumÞ¼CÇãñê{/_&991ñêÕúŽð5zöì×/(H"‰*+©bïŽw®=Z‹$ÕêǽwÏѱaÃfͨOÕj‚P©>ÖƒŸßºu»v^^Ai©HT]]UÅáp8\n}ïð_#—Ëå űcG;Öµk·n^^ׯ_¿~íZ³fM›ºº¾~ýúuNŸÏçš››™™™™˜˜˜˜˜p8\.‡ckkcccó±ž5…¢¨èÞ½ÄÄÂÂöí{ôhÝúG&± B*--‹étSSCC:ýßm›Ú—Š 5772b0h´÷§VWU=yróæ£GLfóæÍš1 Iš˜˜™™šêëÿÛH€ºÐ½§î¯©öºß?z”’rë–“S£Fîîº÷ãï÷œ••••™YRRZZVöé¨>Ýó<º17lذ¡³³îòÔ£õó÷ hÀ/$5µº¬¬¬¬°Ãa³õõõõ ø|êE?;;;ûõë­ëäää¤ïl``ddb’›ûæÍ«Wt:ƒA§ã8Žãð: |3 “‰ãmÚ´iÓªÕÍ›7oþýwyyyyY†aŠvêÔ¹sçÎ2™L&“8qâıcÝ»wïÞ£ÇǤ¦.Z´hÑüùL&“ùáL †™™§g×®<žRI’jõJ¾j4ryaá“'¯^)M›r8úú8®§÷o“™™Z]Z**•¦¦FFßµZ¡¨ªR*IÒÈH&S©643Ó×W©h4µš$5H@øþtïÇ©;ñ/íÅb±ØìŠ ¡°¤D÷~üßôL-ÿ±žëëh|z/ê+æïí( I’¤X\]]Q¡¯ohhlL’$©VS:88888|l]Ý%)r¹L&‘„JEU)€o¯Q#gç† 5F£‘J%’Fòóóòòó_¾|õ*;ÛÒÒÒÒ¢{÷®]»t177777çp8‡ T*¥’º {·GµZ$ÊË{õêùóœ±ØÕÕÞžÅzüøõëêj›† ­­ËÊ^¿ÎÎV©LM›5óðpuåñ®_ÿóÏäd{û–-Ûµsu55•Ë_½’É<<š4±´d0d²‚‚ׯKJd2¹\(‹™LGÇFŠŠž>}þÜÉ©I#£ÜܧO 5jØÏOO//‹Ùì/^¼°·oÝÚÝE%’‚‚ôôÌL‘H£!¹œêÁÈH(|ùR.çñ¸\ª6ÛãcÇ–- ©ýÒî‹Hdlܰ!†½yóô)µ/VV––<ž@P\\^N틳³ž^q±TJ …Z]PPX¨ÑXY£hEEvöƒ¯_Ëdt:‚¨T,Vƒ®® |*™ |Ý×¾¾‘‘±quuUUE…îýø×Ýé¿yóæÍ›7ÔòëùG *Z**jœn‹îÕWÌß$ ¿<êöU(,//)±³³·oÔH÷k>yyùù[×ÖÖÆÆÚZ·¥¢B (.6665µ¶f0 :½¾÷ø¯‘Éd2¹ÜÆÆÖÖÑ1%%%%%ÅÞÞÞÞÎÎÆÆÎÎÉ)//777÷âÅ‹ããôõ4¨¨¨¨¨¨H*•Je2‹Åb±Þí‘FãrÍÍÍÌH2#£¬ ÇÍÌœœpüåK¡P*E=½ví:vtw¿{÷æÍçÏ_¾40hÚ´}{KKæáÃââòr##§MAäò‚‚ÄÄÛ·33œlmõôX,¥2++5õéSE•ÊÊJ¥R_¿I“Žmlôõq\*e³³²**ôõÍÌ,-Q´¦6ÛÂÂÄÄÀ ¦‡FÜÜll¤R¥’N§z`³ét’¤ÞÏèîË›7%%••&&ff––Ô¾˜š::ºº6lØ Ae%µ/úú]º4mÊfggWTèë[XXZ"ˆTšŸ÷îýûÅÅvvîî :8!Hbâÿcï®ã¢ØÚ€Ïl'»t‡"`"&pmÄBl)ÅîºöµëZ×VÄn1QAì, ¤;6ØîßçåÇ*âE¯Šñ|?Ÿw_œ9óœ33{gŸ=sÎíÛññry“&nnMšXY±Ùu}øuÔô}¼ö MM³³32Þ¼Ñÿ>^Sɵ٠Z§¦’¿k üÊQè§žÑrý5¿Ìß$ ¿Ng2¥R©T"a0ªÆH²¶¶²²´¬i«ê¿P©4“ù³?Þü˜4F£‰‰‰½|¹iÓfÍÜÜŠ‹‹‹‹Šììll,,¨T*•Je2Y,ËÄÄÄÄØØÁÁÁÁÞ¾A'''§šßø4×ï1„&8Ôé êÕ32°'Ox<>¿¼\,66æp ŽÇÓjqœL¶±±²27'1ÌÜÜÒÒÎN©|ö,>þåKT&…B¥ÒhD¢V+•êïO§ÓhT*T‡cffnnii`@§£¤R‘H$’JqœJE%P©DbíjB"‘H†UÞ»à¸NWó Z­Z­Õ¢²Q1Çq­V¡À0 ƒ4€¯§¦ïãµ'•J¥bqõïã5•\›á8Ð:5•üã´Fõº|ÿ˜¿µŸ¸ó6èc0 6["‘H„BôÐÊ—½Òét:›M µý2€Ú"‰D"ñ?þøÃÃãÕ«äägÏÞ¾}û6%¥´´¬¬¬ììÙ³gOŸ¾zõÊ•¸¸¢¢â⢢K—.]ºt)++++3S$‰D¢¯ ›moojŠaåå……yyj5ŽS©D"‘H¥r¹‚\N¡Ðéhø*U§«¨P*õ“½ï'~u:N£Ñét:¡ª„’‘H«Õ/Í62ªü"ª_B~~NNY™BzA\m†ÎÀq*•Ã12"“U*@¡Ðj5™¬´T©$“ Y,€À×÷ß¿‹Åb±PXýûxõ’ÑòO—¦¿NM%ÿÖÈÏ/((,DëXZZX˜™¡¿ÑòÚ´ÆÏ‹8oÞܹ³fU£  //3ÓØØÄÄÜÃ(ø…ð9h4áóG}Ò‡>…>½NýúNNÍš¡Q› 8cãììÌÌ”‰ü? !º6¯B!Ÿ_^nhhllnN§Óéÿuú |œ‘‘‘‘‘‘N‡ãd²«««k󿉉IIOž 2dˆ¿¿­­­mIIqqqq÷îÝ»÷èQXXPPPбc‡íÛ£öÇJ%©TKK++™ à {{{{2Y­Öhh46ÛÈÈÒÒÚÚØ˜LV«ÕjÅ24´°¨_ßÞÞ‚Ã!P%'h4KËúõD">ŸÏ—É”JÇi4 ÅÞ¾^= T‚VK ‰t:ÆfÛÚÖ¯occ` ÓÉåJ%‘ÈáØÚ:;ׯocÃfcŸ/+•¨”ú¦ÑÔj™ •@"‘HD"—k`@$ŠD|¾DB"1™™¬PÈd:…b`€ê"—«Õ8N¡P©L&ª‹\®ÑP©¶¶ööffŠF£V“É —kiY¯žƒƒ…RÃ8KKSS6›Áàp8 …H„44€¯Gÿû¸¡¡‘‘©iqqIIy¹X,K$Ÿ~e0h4 %??7÷Ý;{{''ýïãÕK–H¤R¹üÓe¢m?]ò÷o ô®™™‰‰¡!ÊB0™ ®_£OÇ\›<É·€r/*•R)—£%UC‡éÿûßÑu:®¨¨°0'ç§ï @ àxýú 4i’šš’òü¹‹K£FnnµÙV­V«UªüüÜÜÌÌfÍZ´ðô¬ëÚ¿>©T*•Jу¥D"‘H 0 ƒ~JF_fjN:¿@ ‘èt‹Ë­\B&›˜Ðh•iÅ21¡Ñô†Åq2™Í61ù°4744222ª¾ý2«Ö& .÷ýrpœBa±ŒŒ>:„É4335ý°\ÍÐÐØ¸òK¦‰‰™™~id²~)¨.U5¥Ñh4:ýý¨2™Á`2ј‘ Æ·;–~oúßÇU*•J©4112âpj³­R©T*ÖÖõëÓh4Úû âoWr]µFõ7ôß­«˜¿5H@~) •J§›šš™Y[WT…<‹Åf×ü'‘¨¢B (..,ÌÍ53³´´±!~î¹e€ŸR©TªT=|ã8Žã‰D"‘ܺuëÖõëèT@ "###OŸ.++--+CëP(JUÚ? ô}üåËgÏ,-­­íìjÿ}¼Q£fÍÚ¶­éûø·+ùglŸ$ ¿ÔCÊÊÊÆÆÁA"‘HÄb@ àñär©ý]RB¥R©¨o‹enneåà`jjn©gà{A3¹OŸ>mÚäÉu ¾ô}=U,“ÉdR)ú>.”—Éå …Tо™˜XZr8\®‰Im¾»’ÆÖøAðËb2™L‹J¥Ri4F£ÑjMM-,lmÑ£¾h *•Jýð¡X| ”<Õÿ>ŽÆAV«Õjµ}Gm¡¿„’ÆÖø¹ü²„ôÿ0 ÒÍÀ÷A"é#ÿ9Jþ[ãÇ÷ÛUøïÐø\ii/_¢i%ê:¢¯ƒL&“)GGgçfÍ>=BP€>Caa~~VWVV\ìáѱ£•J¥Òéu×סPÈå2ÙãÇññW¯ššš™YZš›[ZÚÙÕu\~V€ü‚~¥Þ©—klliimíàPSTTߢ¢‚‚ìl©T"‰~öZ×­šz‹D|>W^^\ìîÞ¡C¯^jµJ¥R¡6¯ë¨¿46º§gÇŽ>>ññwî\ºÄb±Ù\.“ÉbTµÃ¯r}éƒÞßð-@ð‹@ÉÁÌÌôô7oìììí4pp¨_¿aúŽëëP©”J…âÅ‹'OîßwumÙ²];ýZk4*•Jeffnnm]בþ:ôÛ%%32ÒÒ^½òðèÐÁÇG¥R*•J­V«Õhê:Ò¯I£ÑhÔjN©ÔéZ·öôôö~øðÞ½¸¸úõ4hÜøW½¾ôU?îúÉwŸ‹P×À×QTTP“cbbjjnŽãŽc†ét¿Æ+@ ั±‰‰¹yõZÿzõý^õÛõ.G½}©TN×jµZµúGˆó[¼jµZM£ÑhL&JÈþÚ××§;à?€4à†A R©TC§Óé0ì×{¥Ri4&³z­„Ø~ÕWÔæb±X\QQ×çø¿»sg÷îY³úöíÔiÀ€;³² ¸¾~‡ã?2H@~¨w*@$‰:=ry^^\Üþý«W»té®]G¼nÝÀ={ŽQZú~YŸ§¢âéÓñã{÷>üËKxò•°NΉåk·9ê¬ßò5­ß­[Û¶ •Kz÷nݺoß'òóUªom‡C‡úù12™D¢Ñhµ¦Ó©TEE§O‡„ ´cGF†BQûÒ>}}©Õo߯Å=ºzuß¾;vêtòdnîûGíÌ™;fÎìÞ½S§~ý¦LÙµ+.îß÷ªÕÆÇ—•½ßVÕÏ t%¾~-•Ö¦&ŸÖtÜ|.H@~9ï?PO¥Z[wëÔ®]Ÿ>Ç8f̤I³f±Ù8þéGò+Ë$;wÞ´éÈ‘¹s+ßÕhÊÊnÞܱ#&æS%|‹×škM$²XNNnn,‘È`xxxxØØÐhÆç?~÷.'_¹’PZJ 0^^ÞÞ..ÖÖ“&™˜É_Õ¿µdmJЯ‹Vû½[õKÛ¼¦s½Tª±±‘•Z9l…R™—wéÒÚµ³g/[¶aöm›7¯X]P T¢­t:™lúôE‹6lرcÛ¶õëçÌ 1âæÍðð3úôéÜyÀ€ðð¬,¹\­æñîÝÛ¿Ñ¢ÀÀN:v1âôÚsç¶n]»v󿤤ìì[·vïÞ°¡´T¥ú:g›íäÔ½{ß¾={ZYq8ÖÖ»v-ZtâÄ»wryå±80(hð`{{CC;»ÀÀ¡C½½ÿmMYYJŠTŠFÖ®¾NeÉèJlÔˆNÿ÷Zü·ëÀ“~•éÍJ:N·|yÇŽ††¨W±V+“ed¬]»ÿ½{4šXœ••˜øàA¿~kÖôé“”tæÌ©S—/¿|)/X°`A``lìûöíÞýâE^^nî±cññC†øû{z“H¾hѲeB¡µuýúFF*UAA‡#GΞݰ!…RV¶y3†y{wé’˜¸zuXØ›7:lÞ|üø¸qööÿ½®}úØÚªT;wÞ¹SR¢T6lhoŸ–öø±Í¨Q]º”•íÞûô)† ln.¥¥=~l`УGÇŽh[•ª¬,>~ß¾-[®\!ÍÌh´ôt‰ÄÅeĈ)SúöÍÌÜ»wለǕʀ€ùó{ô8räÞ=g烃‚ªö¯Tææ;6}úÌ™.ÐhíÚMŸîæ&……]¼XTÔ»÷„ ={>}zâĉÉÉ•Uß¾³f-X0aBãÆÖC§“Ë32._Þ¿×®«WE"G£ÉÎæóÝܦN]º48ØÂb̘  ¥KfÎìÛW(|öìåˈˆ‹_¾twŸˆ¸r%>¾z |À€Ñ£‡ 9uêäÉW¯Ú·3fÆ SSéSñþu¥Óa‰dbâéY^±`Á¾}-[îÛ7qbãÆL&@¥‰8Žã €ã*UMÇ¢S'îÚµöí{ð ¼ÜÈH&³³kÞ]SïïQ£ W­Z±bÿþÖ­'Nœ2¥G33)33:zÛ¶ýûß¼a0ê×71Ñj…ÂæÍ»vuvNL®Ó‘Hff={øøXY1\îøñFFD"¬ãÚ5[Û)S.œ3gܸààÑ£'Ož3gÞ¼aÃ6lHIQ«MM{ö9rÈÜ\&³cÇ… ‰ŒÖæ?èT ‹¾}GŽ7n„3fÌØ´éï¿oÞ,-E½`˜N‘•ÅbµooeE£¡%.ܾÞ¾=—‹aD¢…EïÞׯOžìííêêììââêêïê”Zã•?£¼¿ßÊIõ[ðýu>sÍu©ÝõU¹îŠçÏŸ:µh‘¸aCŸ>}û._^UZå¶5‹’##tMyx¡M½VèJÌÏ—Ë5´týúíÛcc_¿ )+«-||&MruupèÕëã×é—wŸ ЀßÈÎW®Ü¸ñðáƒ׮ݸqøð¸qh¹F#geñù þá6ö›þwZ­LV\lfF£ÞûŒ¥RŠ¢"©T­®\B"¾Ñ§0™ljêîÞªVXýömYY»vÎÎD"ƒáàпÓ¦DbiiaáãÇeemÛ6i‚z£È¥R £Ñôã'‘ètSSU»àøÇâ×j+*bb>ÌÌ‹Ñp ï·fe²!™LKK&“@@C.T_Ÿ@À°²²ÇÚ¾}Ï>ßÔÔÖ–ÅÒ ûÃ21 ljDý#§P={†„ >f̨QÇGEÅÅíÙãïoeõå½`k7™¬Õ–”<|XV¦TV.g2µZ>ÿåK>_¡@K´Z¹¼¼\&S©0L£‰òó×­;~üÚµÇ<8}zéRÜÜ”‰¤²ìª”,jsµZ«­9†ùk ?ã FãÆ¡¡‹aa‘”TX¨R½¿Æ·9†a+W®\9|xóæ<ÞåËk×Nžž€OÑh*bß׿õg¬ü Ç GG__W©T* £PŒ©T­V,~ ­Mäö~Èê}$õ—à8•jfVR"“UöÍD”J*ÕÜœF«ê}ùoñÖ¾7nuTª……··“ðîÝÙ³6nÌå¢ÁŒúõûôqrŠðàÝ»Æ[´01!‘ª"§Ó1L.×_­–ÉJKQüïÇP=6§Ñäò;w6mZ¼øìÙœýIïªo£VK$EE2ÀfW/Y­æñîß_¸pÉ’¨(33?¿ÐP{{£2ýüéHª–3:P˜’"VF£Ñ(|¾LVÓô“µióOõ®ÚŽD¢ÑÄâ””7o„B4ö²N׿¿­myùÙ³'O¾~-ét:Ýýûaaû÷¿z%•jµjuiéõëb±N‡ad²±qÓ¦}úŒåíM Tª‘Ž IIoÞ…:V+½zuéÒµkEE*ÕÇú.£¿q\«U(JKårt]~,ò/í]u¥W.¡Pìì† Y²dÔ¨E‹NŸÎήœÆ¯¶ÇâÓG³¦%|¾³óÀ nß~øplì… Û·Ÿ>½~ý®]©©RéÇν/;î>W½ê×wrjÒ$##=ýõkWW[Ûºð3©¨ ËË ML¾÷¾ßO©TÅÅññÑÑ11II·nÉdjõ‹ÆÆd2†)•ÉÉ“÷ï›™íÛ·{wß¾»víÚ…ãŒ9wnãÆ..õêÕ«gc#•–‰11:]JJa¡T*ŠÅNÇbÑhVV}ú¸ºªT›7Ÿ?ÿìÙðι͛š˜xyee-Y²bÅúõUc@¯\yðàÌ™ ‰åå÷îEE]¹’P^ž•åààëÛ½{§N¶¶4Úç÷·þx­1 ÃŒ¦M§M 16>üÄ KK©woô‡ÓºõŸîßýzié‰AA•c‰&&^^ááûöÑh{÷nß¾rå¾}ff4ZZšXÜ ÁÊ•öëwïÞ¥K7J$|~BBttlìðá£G·oÿ~lìõë……2™L¶mÛ… ûö …gά]àë[VväHDÄ”)¦V_¼¸jÕÚµ:›‹•‘Áç[YM›vèІ ÷îÅÄlÚTX(• ‰‰W®Ü¾Ú¦M``§N$ÒßOš4mZEÅàÁîîÆÆ:]zúÚµëÖíÞ­PH$|þÇ11qq  Ø£GiiLLR'‘””ÄÆÆÆ>x¶k×С›7¯Z5vlP†Y[wë6räìÙ!!­[y’ñã ÊË—<8r¤òˆèt–ðôid¤þVÁÁgÎÄÇW-kß~úô™3+ÿÍfA¡T•@£9;Ï›‡FÈÞ¶íþýô÷èæ6yò¹s/^Lž\¹äøñ.]ªZ£M›£G®]ûtäŸ{¦iµbqZZ\ÜÉ“ÇgfòxÙÙ÷î•–*•íÛ›š’Éd²•UïÞ#G–•Ι#[Z¢mÿíXÐhVVsæ,_.øûûù Þ³§­­þYñǃµj…®ÄçÏÿW7ówC&“ÉT*ƒÁb±ÙVVÖÖL&‹e`P×qÀ·)hàß|óô«W/^O?‚Š  ¼<--%åÙ3.×ÐÐÄÄØØÔÔ¢®ãúrß<íèèììêŠf>T(är©´®« ¾>F­V«Ñ+Žã8Ždg;::95mZ×ÑßE›6žžÝºé'ÓÒRRž?—J%‘M¦Z×1TAsï1L&›maaeegÇf6hàâÒ¼ùë×ÉÉþÖ èS§.\ˆ‹CÒ¯_Õ×144445U©”J…&/ú £Œ]‰D"‘¨®#ú½Ðé ƒA"‰Dbí·B×rMWquNNÎΧ¥¥¦¾~]×5®Âᚘ taa~~V‡Ã噚ššZZâ8‘H ÔuŒU´ZF£Q( ¹<##-íõëæÍ[µj×e9$±¸¢¢®cü¯¾0]›Ô3B¥Òé †Pøëûüøq|üÕ«¨æç¾ûëA½M…B>ÿwzPýGŸŸ“#6jÔ´i›6èɃšÖ¬ýU\J=£4´þ’º®=Š$%åùs”z¦RMLë:"€Cåèt Ã033''‘¨¢¢¤„Ë5227¯ë辎ÏN@yÒªæDدæÓ5ý}ÚÃ(2™J­ë(~/h¸ ÇqÔýcëè_Å_ËÓ'µ€‰ÉÏýp ~OjµZ­RÕu_Óg' QÒ%°jÿØþï3øÆ§kúû´B&S(J]Gñ;ÑéX,.÷Óç™þUüµöü#¤žÔûMŒY×±|N«ýµ:°~áµOCËå2™DB D⯗¿×ײeÛ¶;kµ?E>ýB¡P¨TccSSK˺Žå÷bhhlliùéÁ7ýkö×ühþÓ$„µIWñxååÅÅÆÆ&&*•H$Ôu•Á÷À`°Xlöï“pÿÙ}ÙÐuõÏH­./OH8rdíÚ°°“'ÓÓ¾|92²®£øVßzïÞ¥¦¾xã8N  QiQGrxýU_5µZ©´´´¶vp¨ëÓ€8°|¹ŸŸ—WË–íÛÏ›·aÃŽ Ž=lØÒ¥‡''K$ßúÉØØÃcРét™L*­zG§“HRRNŸ®ëøšþSèÚhÖÌÍÍÓ³¸¸¨('§¸¸  ;[ àóËÊêºâàk"“Éd …Éd± ,-ml˜L&ÓÀ ®ãàCÁÁÆyyÅÆ^¿~ÿþ!cÇNšäê*1lØæÍ‰‰¾¾{ötêddD ¨Tùù11»v……%&ÊåryAŽ{{/Y2uj¯^––yy‘‘+VìÛ÷ò%“Y¿¾™™V+¶níç×¶í³g[·îÜyæLVÖÑ£—/GFªÕ|þýû§OoÛÖ°áŒÇ޵h&‰DTª‚‚˜˜;7l ;|øî]Ÿ‰ýýCB¼¼ŒÕêW¯bb**\\||ÌÍIßüàëúNé 6›ÍæpØlW׺®2(•……—/>•™YTäë»ví?ÿ´kgdD `˜J•›{öì¼yáájõ_<9}:‡sî܈¡¡K—&%ýñGxø®]Û·''‡„œ9sâ„——‘°~ý;ååžžC† rèБ#K—¢=‘H††íÚùù…„<}šœ\=2ÙÊÊÇgĈ!C.\8{öÕ«‰GŽôòªzŸËµ±¡Ó ßüi€o’€ß…biÙ³gHȘ1 Å‹÷î½y#kµ¨_²ZÍã=~“‘!òx11{öìÛwìXB'dfŠDj5&—§¤lß¾jÕÎqqIIÙÙ3f ô5Žë÷o®‚ã_’D&“­­]]  €Ÿ<Ð ¨cùùyyVV66ŽŽ:V«Óß'áŠãDâÔ©#G2™Ë—¯_ïï½f³3@¡‰8Î`Ô¯ïç7n\h¨½=•:fÌ´iåå @&»»ÇÅ=yR¿>›M$ªT<ÞË—^^ݺ͙áç‡ah¼{}:Z]×- ð½A¯:@C©g‰D"‘ˆD‰Hü¶û«L ët:†¸¸ØØP©bqJJzºP¨V‰\®›› wñâ™3oÞ`˜FÃã=z¾jªTªÓ……>üæTªÓá8™ldÔ¬™™•J£‰D"fdD • g­V,~ûöòåë×?Œà}‚V«P¼¿L¥*(HN‰¾õäˆß$ u õzÖjµZ­Ç¿l¨ŠÚŠŠŠŒ¼{·¼\$ÊË»xñÌ™èh:ÝÑ14ÔÛÛÊ*//,lÙ²½{1ŒL¶±é×oýúùó[·~ölΜ9sæÌY·îõë¶mGjÚÔÀÇœÒÒÖ¬Y´hÉ’õë÷îݵkëÖ¾}W¬˜9³AccgçQ£†ws1b„yó6mÚ¹óäɬ¬úõ½½/]:}úĉÈÈ3gΟ/,”Hx¼·oQr™FspðõmÝš@ظñäɇù|• Ã0L­æó³³¥RH@àç„óùååEEuø™¤§¿}›œ¬R)•2ƒÁbq8ööõ깸Ôu\àW“˜˜pãÆ§×ñööñ x¼âb.×ÈÈÜüÚµ˜˜ˆ'§† ]]1ŒÅ²²ªëzÔ–F#äæÖ¯ïììꊲ­[{xxyÕ&Oò- Ü‹D" :NWÙ‰ýa¦Õê/©¤Õj4Ïž%%Ý»c@ƒÏF§3™L¦££‹‹«+ê»Z×~D0ølß{Ä^ÀÏ Ðà³ <^I‰Z­V«Õð-Gìü¼`ðÙ ŒLM1 Ãt:F­F“¥Àû ý]¥¥¥¤<.•J$"‘J¥R)•uÑï‹Ãár--­­X,6›Ã©ëˆøÕ¼—€‰**‚¢¢‚‚ìl¡P (/¯ëð~&5%4E¢Š >?''++5Õݽ]»^½ÔjµZ¥ÒjµZ¦®£þ}Q(T*†ã8Žãññwî\ºÔ´ióæu€a¶añcÏžÕu€ºréÒÍ›†aQQoß¾~þþþqx{ûøü·þ—€.,ÌÏÏÊ*--.ÎÏ7115µ´4337·¶þþUúy‰Åb±P˜‘‘–öò¥¹¹¥¥­­¹¹¥¥]QQAANŽ££‹KóæJ¥R)“Õu¤Ã0L©T(d2 …J¥Ó]]ë:"¿;ý¤s@@Íš™˜p¹ F]Ç_î èÒÒââ‚;;{{''‡i律Åbq8 ƒÁfçæfg§¥¡4pÃÐÐÐÐÌ õ}®ëHA4Š¡¡±±™™\.•ŠÅu€ß×”)þþîîèožºŽ ¾ÜÿÐÖÖ66õêaŽã8|Õù/ÐVV66õë£%(ÅI¥ÒhtºZ-øÏ?­V£Q«™L‹Ã4€º‚ú>Ù¯_Ë–ÕßÕh´Z­6##7—Ïý:3³´T(‹ ‡Å¢R7®_ßÌÌÑÑÆ†Ë% àÇò¿4‘H"‰†a¿nêY«­¨xú4;›JmÑ¢^=*õ[î‹DªlÏ},¹¯ÕŠÅ¯^EE…‡=š”D§[[›šJ¥%%ééOž¤§ãøñãÇoÙ‚ãuÝ‚?±øÍ›S§ž<160 cG332¹®#¾J=ìíݤ‰J¥Vkµúïòù2Ù½{Ïžegs8l6Þ²e£F66l6“I¥ŠD‰BñömvvIÉË—ïÞ·k×¼¹¡¡^×5ÀÇiµZ­V ?~ÿK@WO‹*ùùW®?~äHdäÑ£qqååC†xz¦¦¾z%88øûO›6qb‡ÆÆu]…Ñé$’´´˜&ÓÉ©wo´L«U*™ŒDúxøûÄõá‰$9yóæ™3‹‹ÇŒ9thÅŠ^½,-) Ã0•ª°ðÂ…?ÿDS~<¡ýû‰]½úÔ©’’eËú÷ïС®£¾33CC&³¼¼¢B¡Ð_~ûvRRVV‹ Z[›š±Xúï°X4Z›6MšØÙ——‹D·n%&fföèáééèH&“ÉèŽ?™L*•HГÓ4Î` d4®§®c€¯TõçûÉQ*ÕÚº[·àà  â⸸{÷Gž0aÆ «¨HL7.0pÖ¬ØØ'O,,""?V*æÏïÑãÈ‘{÷œ7ÎÞÇËÊâã7ncFffRÒë××®ñxW®Œݫ׊ff]ºÔ¿@@§NcÇVTŒuüø¥K“&Õ«÷âÅÖ­ƒ‡„œ=ÛºõóçׯO˜P»½wê4fŒ@´wïå˳fµjUXxî\hhŸ>›698$&^»6nÜÁƒ!!“&,YròäìÙιsƒÞ¾={ö… áá;vtéâêŠJ8qbÆ ww™,**8•pèP\ÜÊ•gϾ}+µo¯Óiµ¨­Ôꢢsç† 80"bìØ‹OœèÚU¡ˆ‰Yµ*5ÕÓsñâÎáwe?2@Àq©T¡P«µZ­V§»s'))#£K—¶m4@ë¨Tj5úQúcŒŒ8ÃËËÝÝÉéÚµGÒÓÛ´iÜØÒ’Á`0¾äŽ_“R©T*±±‘‘‡Ô­[lì™3W¯Ò馦ÎÎ*•P˜“£Ó‘ÉL&‡cjÊ嚘Ðh “iffaamýoåÞ¹C¡XZvìø¥Þ¹SXÈbµkgoÏf¿ß nÍš±cgÏ4hÓ¦µk4`2 „šSå EJÊÁƒ“&-XÐ¹óØ±¡¡EE††mÛ6lèà`fÆå’Édà÷£×úc}‚ÑRôŽN§ÓiµIvöýûååtz“&={††vìxþ|lìªU‘‘±±­Zݯ߉*UqñÅ‹‹oÛ6sæŽÇމ&—§¦†…M˜ ýúyzöïß»÷áÃG.X0yò¶mt:†I¥oÞìß?eJjªL¦Ó5lH$FF.[vìØ¸q;wîÞ­VEE5yò–-Ó§ïß?`@õ½wêdaA&ÇÆFE¥¦Žèáêbhصk“&ŠDN§Ó‰(¹­V}7Öé0Œ@`³œZ´06f³e2 Ã0g±4hÑ‚ÃQ©âãu:ôÁO¡XZvïîãÓ N‡ãTj£Fƒfk{ôè±cjõçìÝʪW¯›7Gë5oîînh¨PÄÇ«T<ÞãÇ‘‘ééB¡£ãÅ‹»wo߮վ{W^^QQPž.©Tú%p8D¢NG§W• ©Õ•íƒÚª²ÅˆD …NW(RRÖ®]ºtçÎ?þØ´iüø¿þ27G¿èæ~J¥Z­Õæç h F«­üoØ“''$Ô´mË–mÚTÞó04•šŸ_R"ÛØXZ’ÉD"‘H"Õ&|™ìèØ¨QË–±±qq7ndfæå•”4nlfÖ°a]»vì(“Éd2Ù¦MaaÜ·¯·÷͛ׯ?~ìë4c™L¡|üÙ&¦¤$>~ÇŽ½{[·^²¤];2ùs{RW• ãæfiI§¿ÿÜÕŸnß¾lYyyy¹@ •’É\.™\SG/¹\(ÌÍ‹ÕjWWKK­V©T©´Z­V©T«! Àï§–_E”ÊÂÂöì ËÉÉÎÆñàà¿ÿ?Ä´4'9œ6müüìÒÅÞžBÑhÊËã㣢rr úõ«,ƒF³µíÚµiÓœ…Ã\\Ð"™ljJ§W~ü0Îν{xö,Ÿ¯V;9‘HÉÉ11ÙÙ"‘P¸oß¡C:L–Íç‹DÅÅèã»úÞ1ìãÉá8‰ô~ÊX£’“y¼«W ÷ì¹{ÃPùÎÀ>>­[Óh •ªPdd\¹òüyAÁ4mÚ¹óô馦_ïã’JÕé$’ÂB™L­Æ0çc_5©´ @*Å0ÂÁ¨ü’H¤Ó-,¨T…âÑ#ýz¾ÿK$ú÷ûKˆÄ÷k€ãï/#‘˜L;;‹HT«?gï–S¹/Ç0­V./.V(H$këÆ›:µC.æOŸ?¿rí+W>UBMˆDSÓnݶlÙ¾½°píÚ­[wwïÒåáÃÐÐeË6l˜1ÃËËÄFŠðãCc@—— …R©±1‡Ã`è' ›7oÕÊݽ¦mõ×42âr™L ¢B"Q(”JµšL®ùK"¾ [[GGµZ£Ñ霜ŒŒ4(,,(ÈÏ¿yS$Êʲ¶¶²²´lÔ¨E‹öíÍÌÌÍÍÍétƒÉ”Ë ¥Ã„3 ÷æMTTXØ™3ÉÉEEW®äåõèѵ«•†FG_»öðaq±P˜šúî›Ý§Ï_¹º¦¦®_ýºHT¯ž‰‰Hôê•££……*ÁÜ<22<¼]» þü³ò{´N'“mÚ4{öÌ™mÚÌžý÷ß¶¶—//[öö-†99©Õ……))©©?|8zô¦MGޤ§GGGG—”Èdåå7nÄÇ—–vëæéid¤R¥¤<ûúµRYQ‘šš™ihØ¿ÿ_õèáâò~²ðë©Ehõ =zâÄ÷ß‹u:”v$‘p\÷ÿ´ÚÊòª—ŒÞ«\Žã•ÛU–‰a8njJ¥â¸N§Õ’HD"ŽÓé£G9lZgÔ¨1cN©Ìή¾wýþ®ïï½êÝJ8N"98ôí;tèðá66•¿%Êå †étr¹£ãÌ™§N]¸`c£R¥§_¾¼zõìÙ7&&6mzóæ¹sóæ}nsWo½{—/wp4( `ñbëĉ¥K»w¯œXO¥**ºxqî\CÞ=gÍ µ·?ujçΛ7‹‹==ûöe³ÓÓÏœ¹tI­îÜyÅ N«ÕhªÚ\¿ž•Ó}| †ét*•Hôî]Y™B¡Ó98àx~~lì¶m……OœH&[YµhQû½WõN~_d²•UïÞAAÖÖ,[þôéÕ«³fÙÙÝ»·uëþýtú¨Q3g~º„Êc¦Õ*¥¥2Y噤Tff>¼`ÁÇmÚüóϱc#G.[–šºzuß¾'nÙÒ»·‡ÇòåÃdL~tèëhqqyyE…³³©©J¥RU»ñúõ‹‰‰5mÛ¸±«këÖèoSS.—ÉLIÉÌ,*²¶61a2qœ@€c€º&“Édryß¾:4hððá£G8Žã¶¶>>;:9egggçädf^¹¥Ñ¸¹Y[—”¡žÑ$…Rý{­¡¡““·w¯^FFçÏ?{Ö¹sÇŽVV:]YYLÌúõ³f……5k6`À!,–±qYÙõë«WÏ™C§;8¼zõøqnnvv‹ݺùûwéÒ¥‹‰ *¡AƒÎq\£ÑéÔêʽÐh*UiiQŸÏãÉånnîî={ÊåùùÖÖ:uì8xp÷îþ‘Èå6kÖ·¯­íUèÉå¹¹7n¼|ic3n†aú(Óh$T Žc˜Z]Ròðá•+M›öîÝ«‘¨Ó5jÔ«—••@€Öb2µZ¡ðñãC‡Îœqw:´M›š"#´Z¥òÓщN£F11'O¾{çç7aB£F¨üÔT©ÔÀ Q# >><üÊW×µkGrqéÖmèÐvíŽ{ñâý ‚>LJ1˜˜x{¯YsìŽïÝ»mÛÒ¥óç§§7mZ¯žTZR’‘ñúun.¶w¯¯¯•Õ€›7/X›»zõßoÛöú5þæMEÅС›7ÿõW‹ׯŸ9³hQ^žHT^~ïÞéÓgÏŽ9dˆ©é¹s§Oß¿_V&•–òù©© QQ eebqaaIIeUT$%­]»xñöímÚ°Ù©©<ž—×Úµë×÷ì‰a$‘ø9{?s&2rôèsó³gÏœyð ¬L$*,,)ÑjmlÞ¸qþü·oçÌ™7oâÄ3Z¶lÚÔßÖ¬qã¨Ô²2ý6 8°¸¸ª„ Ξ½qcР6mp|Õª©S§O'‘FŒ9rÞ¼^½š6uqIM]»öÏ?,ps³µU©Äb?¿Õ«gÏvq¡Ñþí<à× Ñ(J%ŽS© €þ-—c…B£Á ?4€†X,“)•,ƒA¥¢å..M›¶jUÓVú= E"©T¡@å0øP÷´Z­V£yüøÞ½+Wììèô–-³³óòŠŠèt ‹fͨT*•Je³Ùl‹Ng³Œ¬­mmíí4 ‘>obaÔÉL¥";wîÙsÈ"Æ éÜyÈ¥R§#T*KË{÷Nž¼}ûÒ¥•+y¼=6oþÜá8ŽD"@  ŒúÆ¡ÕVþU=.­–Dúð mµ ’ 0ð+«qB•ª¸8>þâÅèèÄDO"))IHàóU*CÃʯ1÷îÅÆ^¹RX(‘ðù Ñѱ±Ã‡O˜Ð·/Ž“H¦¦>>K—N˜°qãîÝG¢IÓÒÄb_ß5kp¼²§.êE½eËþýÇŽ(•%%|¾‡ÇÊ•}û¢uÌÍûôY²düø#&MZ°ÀÎÎÔ”ËuqéÓgÌ•*6vÏžíF³²êÝÛÍ Ç7o>þÙ³áÃ{õ²·OM½råúõçÏÕj E,öókØÅ"‘ÌÍ[µzùrÞ¼±c'M²¶Få¯\¹lÙ¬Y¦Ó995h‘±k×þý‡5o^Q‘›+‘øúΟ?fLõ«­·Âq2ÙÆÆÛ{„µk½½kÞŠB17ïÒe֬͛»tùØ¡¡+Wvíºr¥þÒÀÀÙ³»v œ=»rIŸ>S§:Ô§ÏÔ©†a"Ñ£GF"Y[²víš5'Ö«Wý?l_º÷€€Y³:w˜5«ªîvv}û®XqâDß¾ÕK¹s'9ùÃÑ-gÍ:r¤ª ðáût0àÃm§Oß¾ýȑڵ9øiµIJJDÄúõ—.áx3gzz~n),_îçwäÈùóEEmÛHoÞ<|H"uì8{öìÙÁÁÍš1™_ïqwN"II9s&9ÙØ¸SÓ{2jµ|þãÇ+VŒsü¸A¿~Læ­[»w¾qãòå;Þ»·aÃàÁ7FDýñÇäÉýµråÈ‘½za˜Z]^ž˜xþü¡CÑÑbq³f“'uëfb‚ã<ÞÚµ'ON™Ф ƒðð=°ÙL&VQ!Ëåt:ö9_84ô‹E§“É‘øþ$BøþHlÔ¨ysw÷ÈÈk×>ÌÊJOýºeKOO+«Ý»JLT*år©´¤¤¸¸¸øìÙs碣ÓÓß½ËÌtphÞ\,¦ÓŒO U¡ÓU>5E$4iboO¡ìÙC$Òhèçl©´°ðÞ½§OïÝÓh4èß¿k׉íì5š”>Ít¥Ñ(¨¥2//)éöí¼</¯Êy&>æßÓÆD¢A³fÎÎLæh‰JU^þàTÊdV>¿øµá|~yyQQYYII~þ÷ݵXüâŤIAA[·îØqáÂÞ½uÝ_Ÿ‰‰™™µubbBÂÞÞ>>B!Ÿ_ZZ×qU¹qãàÁ –-Û¸ñúuKË©SŸ=;0ðwK2q8††¦¦W\\×±€*èÚùô:èÊBÇŽË5227¿v-&&"ÂÉ©aCWW c±¬¬ô×OJš>½W¯£GŽˆØ¸±];.÷Ë~eW©²²Â‚‚†¿Þ¼èècÇ\]E¢ˆˆ#† »vmôèS§öìéÔÉȈ@P©JJnÜØ»wíÚóç‰D :==],nÖläÈÙ³y¼'fÍ ;s&+ËÛ{×®ˆˆà`ƒÄÄÓ§·m ;yòÞ=*uìX__Cð°Ã‡ïÞµ´ôñ8pÍšE‹æÍ36ÖOBkµ"Ñ‹›7ÿùçîÝ­Z È`ÄÇ_¸@"MŸ¾jÕŒ-Z°X8.—§§¯[çë;eÊ»wóçÇÆîÚÕµ+†a˜Z]\|áÂÌ™ææýúmÙ¢_S¡ðÞ½1cÆŒ9{vôè}û6mrwg³ëúÌàײañcÏžM™âïïîþâEFŸ†2KJzý:'§iSgç›õ¾º×¯ÓÒòó›4©_ßÔ”J¥Ó?Úd|;\®R™–†=>&ææÍ±cGŽ x¼òòˆˆ³g/]><  ÿƒ#".\hß¾wï‘#I$2ùSjétP(I¥4J:S(‚X, F$Vö=f0˜LC¡‹ÅbŽ@ “u:B¡Ói4W*E"èT.—J%‘T*±¸¢B©¤ÓétA,–Här‰ÉäpÔj‰D($étƒF#‘D">ŸÇ#ét6›J%T*…B§#‘ÐüZ$€ã‰H$‰d2‘¨ÕªTj5ƒÁfÔõ1|Ê AíÛ[[K$"‘@P9\®V[94.†¡§<ª–T ª«Ñ<{–”tïžÞÐß/l•ŠÇ»w/&æêÕ‚‰„Ï¿q#=]&ëÔÉÑ‘NÿÝRŸuËË+4tÕ*ôZ×±ð=$$dgÓhmÚØÛ3_ã/¥²°ðòåÇÃã¢23‹Š|}×®ýçŸv파 S© /]š={ÅŠääÁƒOœ óõ50xûvãÆæÏ_·®qãÈÈY³† 9xðÈ‘¥KÑÃó$’¡a»v~~!!OŸFF^¿ïã3bÄ!.œ=ûê•»ûÈ‘3f¼ŸzF&ÓÉ)0pùòþ¡ÓÅbÅ6¬Q£âb¯šè•F³³óóëÝ›É1õ>èÚÅyÿþÝ»nnVM‹0ööžž4Zvö½{¥¥J¥»;›ýù½1ŸMܨQýú––J¥J¥V“HDbíîT*µZ£qp°²âr)* C€‰B!—K¥ ‰D"¡žÑ……,‹Å`É …‚’7Dbí‡ÒÂq"‘Ã10x¿Ã‹ÅáV_›Fc±8œêË©T6ÛØ¸êßD"‹ÅåVÞQp8TjU/l*ÕÄD[ÇÈH •Zý{ “ÉfWEw*ü.j‚ã["“ Û·<øÏ?Ñk]ÄPw~‡:ð£ÊÈÉh´˜Ì¯3…biÙ³gHȘ1§OûùõèñæMŸ>S¦ t¯F#<~|þ|V—ëçצ º#íìzölÕJ£™>ýôi Ãñþý?– G ¨Ï‰…@ Ó-,,-1 »†a‚¥åû=À1ŒB±µ0ÀLJÃ9qĝտå]½úô©§g÷î~X*‰Äb98P©Ré£Gb15Ð|t:F$>z”œœ—gkkiidd`ÀbÕ<¥®P(ÉdyyEE<^›6MšØÙá8“? µZ¥R©Nºtéþ}4вT*‘H$GFF^½ŠúVT…Á¶m{÷ž:UVVVVZÚ¢…L&‘°Xd2—[×5€/“Ò|WU]Óu¡jüù¯ ljĩSGŽd2–/_¿Þß?:zÍgçªý¼ŸJ®œ C?Ž?t:µºjB±Ïõ©”™ìà6nÜ‘#¯_'&J$'O6h0sæ’%66Ÿj5À÷…úC¹»7kæà —+r9'ŠDEEåå‰T*—+• F¡XX3™¦¦ƒammjêà©gàÇ„†ÑèÓ' `âĺŽ¾RmFY_&;;335µ®£µõ£] 8ŽFèBs £d@$âxåÃPùX6Z³jb´6*ƒHDë RÐÿ£rÐG[¡2õß×_íM?¦Êxªö]52B TÅQùúTÃïߪõëÓéryv¶X¬Ruè`hø_úòV¦eQêØÀÀÅÅÆ†J‹SRÒÓ…BµºQ#cãÖ­ûõ³·ß´)&&1±¼¼wïÞ½ÙìÜÜË—“’w÷U«0Œ@ ‘ŒŒàù󔔊 ³³£Óß¾½|ùúõ’•ªò7A«U(ÊËåò¯‘&“ÍÍ»u;qbñâÅ‹;uš8qËçãÉ*µZ,ÎÌT(èt'' ú>ð½¡OM:Ng0,,( ÅÄ„Ëe2µZF­&ˆD }•ýœGtàû!¡)¼ê:Œ_Lp÷ãû¯…÷ûÌWýK§ûðUëUþý±ÿU½_õ¯ªj.óÃ=|­½žžvvRé¡CYYIP­-…òeið¨¨ÈÈ»wËËE¢Â‹Ïœ‰ŽnÑÂÏ/4ÔÛÛÊj„°°eËöîíÓgçÎñã}}ׯ_¸° `ݺ•+÷ìyó†ÁHM­¨X¹rîÜ-0ŒÁP(F>ÜÍmöìåËûõÛ´éÝ»Q£œœ4ðö¶´Ä°³gËÊH$_ßÖ­ „M›fΜ6môèóçwí24ü/ÈÉ*UNŽ•U¿~ÔÔIff|¼Lfo?v¬©)$ ¨K(Å ‰fÀÏG‰QËÀÀȨ®ƒüúP¯=©T"©¨øt2º6}ÒÑÏèsŒË5227¿v-&&"ÂÉ©aCWW c±>Y«‹_¿>vlÍšèh óñ™3'$ä?êºU~Lj5÷÷ßùùÓ¦5kÆdÂ#ý|}6;öìÙ”)þþî4šHT×ðë‰**‚ŒŒ´´—/U*• Íqð« “Éd …Á`2ÙlKKkk‹ÍþØTcµò-‰H$ L³¾*«£Õê/©¤Õj4Ïž%%Ý»G"“Éd mX×ÕüúÐpè“G©T*e²ï»ÅjÜ8$dåÊÆëº-~t$’‘Ñ_…„ÀÏ“~……ùùYY<^YYq±‡GÇŽ>>T*•Zóôž?#…B.—Éø|¯¸8=ýíÛ/š6mÞÜݽ®ãÀï‹D$’É$’V«ÓAð½ O ûµzÀ×–––’òü¹T*‘ˆD?o?ÍÚ÷ÇDýR‹Š ²³…B ¼¼®cÿ¹q8\®±qíÛüg?Ót¾9::;7k¦_k‘¨¢‚ÏçñÊË‹‹ÝÝ;tèÕK­V©T*T뺎úkB³t˜˜˜™Y[›šš›ÛØåçgf2™,–A]G€ß õ}Öé0 ÐüºÔjµZ¥Bš››³Xl¶¡!ƒÁd²X%%……¹¹yyt:ƒÁd:::;»º‰D"‘XS™©©oÞ<}*—Ëå2úrkffaak+•J$b±X\QÁç£Þ7ööõê5lH"‘ÉʧË€Òd™™ééoÞØÛ׫çì\×}M*•R©PH$bqE…~:ìÅ‹'O<°³³·oÐÀÌÌÜÜÚ½Öu¼¿Ôæ/^¶®P˜0sæÀmÚ¸ºöé³cGJŠLV9“»VËãݾ=xðøû×f¿§O‡„ ´cGF†B–tè0t¨Ÿƒ!“I$V‹a8Îḻ/^¼mÛÔ©ŽŽTê¿—ªRé—Y{uý©€ßÝÿ†àP*E¢ìl±ØL++@øphŽJ ÷øñ©S™™\îàÁ•kQ©öö½zµh‘‘!•jµMš 2ÙÜœÅÂq´޳X ¸¹y{3™hÒC&³~}77±Á†ý#“-,h´ÊžÙtº‹ËÀÁÁ¥¥ …‹ •Zû½[ZTî@àr›5kÛ6+K©Ôj•J©ôÑ£sçÞ½ ùü-[¶nÕé¤ÒŒŒòòŠŠ‚t«‰JèÙ³WWý¸\¹èà÷B§3,–þ(‡ññññññèïû÷ïß¿wÏÓÓÓÓÓ-Ak¢±¡‹‹ srЀd2™L"¡Q;Ñ„6hM´-*•¦¿wýý¢2õK«ë¶€Ûûi#*ÕÚº[7SS&óÒ¥>}[¶d±0¬_¿zõ^¿^¼X&Cë,Ù„ã•Ëu:"ÑØ¸sçFô×ÔhÊÊRR¤Rcãºz¢ëýÈ{÷ =úÆ+WÖ¯g0<<<<0 ÃÔj>ÿùó»wy<±¸¸X­Æ0ŽDb0¼¼¼½]\<<,,þøÃÀÇ¿<éV¹måÞ—” _£?ý÷~„AAC‡zx\¾|ûvRÒàÁÇ»ºŠD#FŒ½aõk]º„…õëgnþmÏ“êm¨Ñ”•ݼ¹cGLŒ¯ïæÍ>>_·Öè¸÷ï¿~ýòå*UPÐܹS¦lÞìéyåʼynn8N$R(D"@  m•ʼ¼˜˜M›¶lIL”Ëåò‚¡G%KæÎíÞ]§Û¼9));ÛÊj÷î ¤ÒzõÚ¶5+ @¿ºV›pøðºuçÏ?y"yzλhQ¿~Mzú™3ë×oßþâ“I¡äæ¾|ÉáŒ?wn£FìÞ}ëVi©©)*søð#¼¼LMa@üèH†¾ŠÐhff4šN'‘Êd*†q8Ki4RiAD‚at:Ú-'étss©T­Ö¿™ûp?üô—TÞÆé¯£¿„Db2ml¤R@«ýœ½XŽþ¾´Z¹¼¤D.'­¬¦N2eÒ$´Æ´isçb†‰D£ˆÄÊhu:T‡£á"U_êLLºvÝ´iË–ÂÂn݆ óñQ*ÍÍÛ¶ ]¼xíÚY³ºt11©ëƒ~/4…B£étMÍÓì觤њ4…B§+r¹D‚Rƨ,¹\&“Hª—éáѶmÛ¶ =z¤¿DT¦X,•J$èßuÝ6ð+ PZ·ž3gùrg±PJðâÅ-[V­zù’D²µµ° ÑÄâÂBôÔ‰F#&%9sêTYYÇŽ#FôèahX^{àÀ¾}”—ÉdvvÍ›âïïéi` ÄÇïÛ·eË•+B¡µuýú<ž@Àf1eJß¾ R(eeƱn]@Àüù=z$&®^6wîÑ£çÎQ(ÿµ^8Îbկߧ­­Jµsç;%%æìÌᤥ=~lc3jT—.eeåå †™›‰Z­H”–öø1—kiÙ§*A¥*+‹ß¸ñÌ™ôt##•ª  =]"qqY»væÌ?þˆ Û¼9"âñc¥ÒÉ ÃÞ½{ó¦C‡Í› ªŠB©ÌÍ=vlúô™3‰Ä)S6m²³{üøÀ°°‹‹ŠºtéÐÁÎîíÛ—/_¼HN¬¬¢£OZ·îc‰YN.Ïȸ|yÿþØØ‚*U(|ñ")‰Ïws›:uÀáÔ©íÛ/]âñfÎìÛ7)éäɈˆÇSSqÜÝ}òä+/îÙÓÜ\¥*,¼uk÷î}û^¼ËŠ’¡S§©S'Oööþºs‘T¿ÛÅq§R ¹\ ¥òÝOÇ“—½mÛþýoÞ0õ뛘hµBa‹>>mÛ&'<•—wøðéÓ;wj4Abâ©S{ö;֨ф ›6½?X—JU\ŒÎÒÝ»_¼ÈËËÍ=v,>¥ÆÆ_öƒvõŸP÷“nÝ–/ß°!>¾oßqãfÌÐjçνy}‡¨¤Päæ?þçŸááÍ’%'Oþõ‡sîÜ AK—>|Ø®]x¸­-‹edÔ¾ý˜13fLšT¯•Ša"ÑÇúûrwïÝ»U«þÙ¶mÝ:[[™L«U«‹ŠbcçÌÙ¸19yìØ‹OœèÚU¡ˆ‰Yµ*5ÕĤÿÑ£‡ ),,+ss«,³¦ºüXþw3E$š›ûúîÞ½l™ƒÃ¶mÁÁË–}¸¢J°eË»w:••¯ïðá•_e0 Ãd²wï"#cc6d±0ìS·A¿ÙÓ§V‹ÅUËTªüü¸¸°°ml( åëìB±²òñ ²¶ÎȨܛFÃçß»·yóÆµŸ@ÐjŠÒR™¬²_³R™•uôè¢E·ióäÉë×Éɉ‰ááÎÎW¯þý÷ŽßïÀP©¤¤´4?_¥R«•JôÚªUË–nn5½¢uŠ‹‹‹ss¹\cc …B©ü’cddbbn®_&J:£WTZ-Ñß/*S¿45©ùaz±øùóñã»uëÒ¥m[OÏ.]&MºsG©d±¨TGÈiµþþsçΛ7qbHHhèÈ‘&XXH¦Ó-[öèѦM~¾\®Ñèt$’™YÏž>>AA#FŒèáadD$êtãÆ…†:dk;eÊÂ…s挼dIÿþééóæ ¶aCJŠZmjÊ`ðù¥¥¹¹LfÇŽ 9I&É€[ ǹÜvíæÏ0Ç/\X·N*MMˆ¸zÕÛ{ܸçÎ]°`éÒ;wø|F*MKÛ·/6¶}{T’Z]VvíŠE>zôäÉsæ øQä={Ž9dŠE~ìØØ±vvd²N‡a*Uié½{;wÆÅiµnß~ò¤¿ÆVVžžøú²XR©H4rä”)³g¯]»kב#/nÙÒ±ã™3h“ªÎ •##W×Aƒ&L éßß×·cGCÃääS§ÂÃ==ìÛ×À@"áó‹‹-,Úµ[²dÆݻÏÛ±£]»W¯¶m[½Z­.)‰‹=zäÈðð’.×À€Å23#“oÜX·î¯¿ÎžÍϯÝð)µ=Óªâ×j5šÅ‹'O>uÊÑñÏ?çÎm׎ËÅñÚij~ýöí±±¯_ …Š•U‹>>“&5mjiééÙ¿ïÞ †L&“U¶ ‡ÓªÕ Aþþ­ZU ðQCÕYjeÅ`p¹úgé—ÖÕüc¯8n`àé¹dÉ­[íÞݶ툧NååU^¦Ó)ÑÑYY,VûöVV4‰dmpáÂíÛááíÛs¹5ïE9†‘É ™L T.!-,z÷Þ½{Æîݯ_Ÿ<ÙÛÛÕÕßÿÔ):]«ÕjQÿOE^ók]žàw§×c€H41ñö^µêÈaÿþeË6lرÃÌŒÉ$¤Ò’’ÌL/¯~ý-"“Éd6{À€çÏ_¹rÓ¦ðp•*7÷Í›Š ÿ;TªÒÒ7΋ŠÊË‹Ë˯]ËÍ•ÉÚµÓé<8þìÙ^¿¶°hÖ¬~ýÞ½ÍÌ.^|ø0>žÃqq©WÏ×%+*þþ{Û¶]»¸\¥²¨(-­¼¼sçÍ›‡ AQZZÖ~ï7o+•íÚa؃gÏž=ÿò¥©©‹K½zC‡véâç·aÜ9M˜P¯ž¹¹±q“&C†Ìœ©Tž;·q#*áÞ½³gÏ5*8ØÜ•P^.––’Hvv¶iC üý÷ôé3gNš½c—Ëå6mêâ’šº~ýŽ;w¶m+de‰Å~~ÿ=kV]nð;*++)),444445EO |ûöýû£¢Ö®<ùàÁ´´5kN7®yóosmTOÊjµUOi¢ÿ§R4hÔ(99 `Ú´C‡fÌ@Ç–H¤Óml˜L­–Ïù’ÏW(:tàp¨T­V¡(/W(ˆDcã÷÷R}(–/ÑhD¢ü|¯I“áÃ×­;~|äÈÖ­çÌéÚuùò… ×®íÕ+2ÒÏïçØ Ê¬á8…bcÓµëøñK–tíZófйy—.K—ΘQy£¯ÏËkøð+ÐkÕÒ®]fÎ|¿T_ß)SðõEÿB_HVV L™2nÜ×Ü{çÎ3gvîüþºvv}û^ºtüxß¾ï/÷ô¬^†¡fά\Ò¿ÿÖ­—/÷ﯿ—ۦʹiÛ¶:ômŸ‡Á`0Ðhι¹ffææÖÖnnÍš5i¢¿ŽVûát:ƒÁd¢iõ§-BÓòxeeÅÅh+ýÒôËAËÑ’â⢢¼{VV¦TvëfhøïñðùÎÎ.\¸}»Ÿßܹ|~jj÷î#GîÚÕ¥Ëîݽzé×µrOU½|ßï/¬–Öæê¨M­?LáêtL¦Tâ¸V‹úA£åë×/YâîÞ¯ßìÙ«V•—Óénn‚¡aóæýûÛÚ–—:tòäë×ãÇÏšegwÿ~XØþýtú¨Q3gâ8zJR.G¥éÿO¿eß_¢V—–^¿¾aCTT›6ÿü3uj³f}úŒåí½gOR’L†~œx¿L€ŸÃ2 ˜RYZzãFdä… ¨ßq\ÜÛ·I·n..Læ·êQÀïÁή^=©T*•HrssrÞ½£Ri4N§Ó™L …J¥Ñ„B ¼\ àóËÊ &“Í®WÏѱqc¡r²•™™™žþúµL&“I$\®¡¡±1JO+• …L&“ÉdR©R©T*æævvhºnøy¼Ÿ`R©Š‹ããy<±8'çàÁ½{zñÂØ˜L.,|ñâÊ•;wÊË Ø·o÷î¾}33'O 0@©´¶nÜØÅ¥^=…B¡()¹|9::&¦ @§KIyþœ@ PÄb?¿† Y,ÍÊ*"bΜåË?¿áÃ}}›7ß·/(hïÞíÛW®\¿ÞÚº~ýòr>ßÁaåʃûõkØH,//,”Høü„„èèØX_ßîÝ;w¶µý²QþkJ¨1M›N›rë–HäåeiI"U®9mšÍÛ·aaÙÙÿ}âDPéÿg711ñò ß·F[¿~÷î£GÑÐiibqƒkÖüùgyù½{QQW® øoÝÊÍ•É:u²°Jïß½~ÇãrûôÙ¶íÂ…V­„Â3gÖ®]¾üܹQ£fÍòöÖé0L­..Þ¼yÿþcÇ ”Ê’’Œ >ßÊjåÊY³øü{÷λzµ°P*RSÅbÆÙÙÀ Y³ÀÀNH¤ùó7lØ·¯aC++2ÙØX§KOß¹óäɸ8ÉÇ11qqAAš˜DGÇÄ$%ñxII Ÿo`йsXØ®]jõæÍ«V;¾©i“&..}úŒÒºõIG¾¿íÅ‹ÑÑñxbqiittTÔ ôé3qb¯^çÏ/Y2kÖ¢EÇGG¯_ðéx®][½zöìÔTƒF5²° PFZ²dÂgg eæÌÀ@këÐÐÙ³×­kÑ¢Q#'§zõ0ìéÓ{÷¢£³³1,%åý6¤Ñ¬¬úôquU©6o>þÙ3t–~éÐï×ǹÜ:tøð]3³Þ½·nïÝûý탃Ϝ‰®ZÒ¾ýôé•ÝTŽMH¸víý}±ÙmÚ?þàÁ¥KUÛT_2bÄÎS§Vgçyó®\©*kÉSÓÅð#Ãùüòò¢¢ºðm¡¾B …B¡PæåedÈd2™XŒRÅ\®±±™“Édr8††ÆÆ4•úo#5Ëår¹\^QQQÁçK$|¾@Àã•–R©t:N§3l¶¥¥Mýúµ)­ºÄÄ„„7>½Ž··O@€@Àãs¹FFææ×®ÅÄDD895lèêŠa,–•U]·=|ʆ ÇŽ={6eŠ¿¿»»©)&¡O?‡úõ6¬ë辕¬¬ŒŒ””Ö­=<¼¼Ð’²²’’‚‚ºŽ«6ÄâçÏ'M ÚºuÇŽ öí«ëx>‰‰™Yå‡3 AçúÝ9…AYY]Çõý<~üàÁÕ«úW@í¡|‹D" (¿¤ÕV ¸Ša¦Õê/©¤Õj4Ïž%%Ý»÷ƒô€|[hôgF£Ñ¬¬lm4ÐjµZF­V«Õj41 ë¹öCd ÒÈd2ÙÌŒÃápŒMLÌÍmmI$‰D""‘J¥R)”º®=üœ~·Ž?c}ƘÕZ|nÇZÔ H@ðÛùºIa¢H7À×òßG¹ý¹ü<õe2›5Û¾ýüù={~ž˜?åרŗռ®#ø]ÀøÊð­V(LHذaæÌ­[33ŠºŽ_ׇ“oþê¯uë= E¢Š  ¨¨  ;[*•HD"•J¥R*ë:<@Ý@Ó ZXXYÙٱن†uÑ×qàÀòå~~GŽœ?_TÔ¶mPP@‰ôæÍÇ$RÇŽ³gÏžܬ¦Rñx¹¹ùù2™FS×1àëƒÄ,À÷B‰**ø|­–Á0773kÐÀ̬®Cü(´Z ð¢¢ÂÂôt KK;»ºŽè¿ 6ÌË+6öúõû÷‡ ;vÒ$WW‘ÈÈhĈaÃ6oNLôõݳ‡ÅŠ‹{õÊÄÄɉJÍÉ©¨P©øü£GgÍÚ¶íܹÒÒÀÀ… “’Þ½ûÑ£”wwŸ5kçÎ¥Kûô ÿMYYiia!úÛÉ©Q£V­ê:¢o¥zíÐÄ&u×ïMÇW×Q|ú皸¸®#úÞ~Ÿc €©¨¨  'Ç̬A¸é| ‡chø«}>(•……—/>•™YTäë»ví?ÿ´kgdD ‰>>­Z………‡¯[ge%—kµ#GpèÐcÆ?þø±©é‰»vEFGE…†o݆a}ú¬\Y×õüÜJK‹‹óóÛ´ñôìÖ ¥Éà5@Ýúï?f“З™º®àÇE¡P(¿ÚÔ‚Š¥eÏž!!cÆœ>íçףǛ7}úL™‚ã†a8N"1™$AoŒ|Çq'“­¬ºví×ÏÍ Ã0ŒD22jÖÌÝËU(êºF€_D"WTp8††&&(™™’bffnnmmjjjji‰ãD"æðü4HÐðiD"×ÿ_€IDAT€R³µsêÔ… qqèï!CúõëÑ£®kP'§N9’É X¾|ýzÿèè5k5ªy}'õÛýûsZj'--%åùs[Û&M:v¬ëXàËAÀW£Ÿz®iIÝ«œtÍ o`àâbcC¥ŠÅ))ééB¡Zý±i‰jž¨¦0|ðŒà× hÀ7¡ß÷ùÇICGEEFÞ½[^.åå]¼xæLt4îèêíme•—¶lÙÞ½ /FEJ$|þ³gwܹsáÂùóbqyyBÂùó‘‘*Uqñ/ž?ÿà'”•©Tu];À¯žQüHuà×Q}ÀmŽAƒþüóĉAƒþüóýå³gŸ;—˜8{vÕ’¨¨  U«ªþݼyÇŽ!!«Wëo5pàôé^^NŸ^×õø1Ah€ßΣG‡Ï›ܽû€fg+uѧVóùÆ}ÛiµBa|ü† þ¹uëÏó·¤V——'$80gÎÏÿïég?ë~DZ­P˜™ùù­©TΟ¿zõêÕ‹ Ü·ïœ9'NäåÕum€)r¹LF ‰Dbí·BÏt’É • èZÙ°aæÌ­[¿ä–àÛP*32¶n•É0L&{ófÕªÐÐ>u·¢Ñ”•ÅÄLžìï¿iSÛ¶ýûÀd*2™Vû£g"ÏÌüô $$’¡!þmk¤Ó)•<^NNffnî×(ïóbÖ?‚ߦ~Ÿ¿±±‡Ç AÖÿó¥.Úç{\)߇~ë¡Ï‰$%åôé„„ÒÒ¯54šN‡Êü·µT*O&Óh>¯t¹<#ÃÁÁßÿÏ?.Ü´iêÔnÝ5b³ë¦5€šñù<^q1™L&S©µßJ,‰„B&“Éd³ÿÓ:N§Óá8Žã¸þòÊ 7™L¡è/W«U*•ŠD"“Éä¯Û*UVÖŽÉÉÆÆ“&µlÉfc˜Z]Ppüxt40dHÿþ¤ÿTÓ™37l˜:µvëªÕÅÅÑÑ&Lžìë»gϿݬ|>N(|þ|ÇŽ§O[¶œ?ÿÖ­]»Š‹‡_ºÔÁáã7…:—°dÉž=ööK—?Ža8þâ†a˜Z-½}»dÉßïßÿèQj*Ž{zΚ¾x±¯¯¥¥JURrãÆÞ½kמ?O$ZXÐééébq³f#GΞÈãEDÌš™—׳çœ9ïÞ>}øð£G/^ˆD ޱzµµujê–-÷î%$”–º¸Lš´k×êÕC†ØÛ«Tùù11»v……%&ÊåryAŽ{{/Y2uj¯^––•w‹U‘·k·c‡†étryfæ¹së×ß¼YRB§çå=}úú5›=a–-ï×Z©ÌÌôó›2åСAƒ&O>ÜÄäÆ¿þŠˆ “'OÞ¸q̘¦Móó/_>yrÛ¶ôt£W/*5)éäɨ¨¼VVÅÅ/®X±eËíÛ8Þ Aýú4Zzú»wÙÙ*•TÊåúûÿý÷Ò¥žž\®P¨ß>ÉÉÇŽÍš5þúõW¯²X!!«V81nœ¥åüù¾¾'ŠDË–ÅÆŽ_Zº{÷?ÿlÙka1lØ‚öö))ÑÑ;:TjqqL̆ K–`˜Obâ¢E«W¿~íåuü8‡óé³ÎÅ…H\´hÅŠ°°úõÍÌ´Zt•uíÚº5‡³cÇÙ³yy}ú̘áç—”tèÐîݨ…ûõ[¸pƉ==éttE„‡ÇÆVTp8juz:º"–/;ÖÕ•J*[X&³¶61II ]\ÐaaA&cØöí ,_N$ÚÚr8èM›¶aCx¸þ÷HýÖ«WÇ |}ƒƒ×¯·´ôñy÷îɇ¶m'N9ÒËëÓŸ6yy‘‘+V ó ÕW(lÕªOgçøøÝ»wî<|øî]Ÿ‰ýýCB¼¼Œõ£P«ùügÏââ^½*-íÚµ[·ÆÉ䊊û÷X¾¼¼¼I“nÝÐy’žþúub"Žûú†‡/XЭ›\µsçî݉‰|¾™™NçäÔ£G``P‡S›«øž**‚òòôô·oŸ?·µµ·wv644223«¾&Ê ‹DN§Õj4 ¸¸¸ºþ§´ì!ýúõî½f͆ [¶8::999¡”ô¨Q!!sæüõ×¢EM›ºº6oŽÖŸ?öì?ÿ\¿~óæmÛ¾~cT¿ñÅqCC åýÿH×|+SÓ—™±c—.•HNžÜ»·uë?ÿ\´¨gO 293óS·)ááOŸfgçäìßã†þmJÍ7ŸºAzôС«Wï܉aLštöì¼yáájõ_<9}:‡sî܈¡¡K—&%ýñGx¸‡‡ƒãú‘·k‡a¦V—”ÄÆ._¾}{rò7nœ:¥VFGoÚ”–¦ßCZ¥*(ˆŠÚ¼ùÈ‘ðð-[ètt§Ø ÁÂ…‡_ºdhÈb‘ÉN“&Ý»wé2{v÷îNNŽŽ Eƒ11GŽŒ8gÎéÓ †I$¯_‡… œ–¦R¶n=pà A ÆK—¢ý¨ÕÅÅ—.-]ºf͵k‡ÅÇß¼©P¼}+“ :nܶm6zôªUW¯Î›·bÅ›7k×:9ÅÆŽ;lXDÄãÇ#FèÏ”ðñ˜?~Õê’’sçP;„„œ9sâDÇŽ EL̦Miil¶§§¿¿¿ÿŽdzX{÷ΙãïêÒ¥K÷îk×véµ|y£F$Raarr—. lÝêëknN"a˜L6pàâÅÏž9²lYË–L¦Zýïë|ü\ýØY§Õ ®X1iRdd£F{öìßbg''&Μ9xð´iÅÅúÇ÷Ãz)•juqq\œ©éäÉ‹OšÔ´)“‰Zûí[…ÂØø?üýýýÚ¿ÿãGP&ðFH¤Ü\tîM˜päHTê¶‚Î= ëÖmÅŠO/ 9ùøñÇMMwíš2eñâîÝëÕ Þº5,,#ÃÛ{åÊþÙ´éÉ“¾}?}ºO ©_¿îÝçÏ_»öÂ…+6¤ÓÑHï·O“& L™2tèéÓwî\ºdaáæ&—EFjµMšP©ÙÙçϧ§7n¼xq›6††ÑÑ66Ó¦…„4k¶bŵkÍ›×tt||&L6lôèmÛ^¿îÑ#0pÖ¬víš777?u*2²æ³N­..>wÎËkòäéÓ½¼ŒŒt•L¦‰ÉáÃû÷{ñbff“&Ç;…ZxÒ¤%K6o;öÈWWtE4k¶gOtô”)dòæÍèŠHOÞ³§  ª…ׯïÜÙØxôè®]ƒƒQ ÷écl\X¨VÏž=yr£Ft::F‰‰B¡N‡>PìïŸ]d2nmÍd¹»9cÆÈ‘è9•ªòˆ×ôi³kWÕù†ê»~ý;åå½z1dHTÔÙ³¯^¡DöÇÎtÉаeKŸV­ µZ #“Ûµ:4 `èÐýûq'‘¨VwëÖ­ÛÒ¥è<4hôh¡°¼ÜÍ­*Ú¿â>þƒð혙YXØØ0,–AqqAANNZZJʳgÕ×D½¤™L6›ÍnÐÀÙÙÕ-ÿÂ_P³²2332?~ø0!aþüY³¦OG©ç£GÜ¿ÿΛ7oܘ9sÊ”‰Ñú7o^»võêéÓÇŽ‰Å"‘Hô-šãòåÇÃÃضmåÊ•+7n|û¶];#£ª´J•›‹ne&L?~Ú´éÓgÎìØ1)I(ÔéôovGŽ?~Ö¬¿þZºtà@µZ"a233ãã=*(ËÑ= Ck¢Û2´¾Z-“™˜ ÛtëƒnS*!¯º™˜5kúôɓǎ={éÒ¿þZ·îÙ3‰„D²´D7ˆ‘‘QQ%%Κ5fLææßèìà?***(ÈÍÍÉÉÊJME¿€y{ûøTõðèСgO;;'§¢¢üüì캎~Vlv›6{÷ÆÆFGÏëééïqüø¸q;õêUõÔ3"‘¤¥>]XèääççàÀ`T½C¡XXtéÒ»wÓ¦†a$’‘Q³fîî\®B‘™©ÑŸ?Ÿ•Ååúø´icb‚aF§ÛÙõìÙª•F“pú4êýŠãŠ…EçÎ>>Mš`†‰lvƒ-Z²Ù––8Ža‹U¿~‹è~ŒÇ{ü8&&#C(äñbböìÙ·ïØ±„O$*(È̉Ôj C¿WEŽ"Æq"‘J¥Ñäò””¸¸¤¤ìl¹ÜÔÔÇgÆŒv파Ð:juiéíÛ.àøÔ©úi\ £Ó4(*:þÉ@£Á0¹<++:ÚÎõG=yÉdKKm…ãL¦³óÀÇ¿xÁã©TÕ{û’Hææ}ûnÝzúô±c¦R•–¦¦>y’“#•ªTR©V+>yræLzºAÏžM›’HÖÖÁÁûö]»vô(JMþ[Ì?‚úí°}ûªU;wê·€ã8Þ¥KNNúu±¶–Éž>EuAÇÙªgéttdssår «Í:5©3jC‡>d0úöíÖÍÚÅE¥š˜8:²Ù$Ò¿Õ‹L67ïÛwò䯙LýÖÖhÐPÿ~õϽݻwìØºUÿÜ«ÍñÂq2Ùʪk×~ýÜÜ8"Ãô¯‰D­Æ0¹\­®Þ=F£ÑòâcW%™liÙ¾½·7—[^~ùò‹eeÏžI$ýûîíM&¿~}îœ\ž›{ã†FÓ£G§NÆÆ"Ñ¿LnÛ6004tð`ÿÁƒ»vmØÅúôY‡Žjý« W(Ntvé·0:»ô¯t¤ô¯t¤ô[}WÓoatŒÐ'ƒþ1ªúd@tº}¦}¨6Ÿ6úçªoåuTÛOf'‘>ü)Çq\ÿÝ>h_#FüóÏDEMŸ~ú4…røð”)mÚ°Ùóæ9:öéwìØ¨Q³f­\ikK$òùOŸÖæèH‡GëÓgÖ¸qdä† ½z©T<ÞË—è*srš:uÍÔÕ?7ÐÙ¥EtízøðéÓ}úT]híO·0ú|Ðÿd@[ÉdúI[©ôåËÉ“çέþ™öaküû§»{Õù†êëåÕ­Ûœ9è:Âþƒ÷Ï“Ÿ—/½â€Y¿ê¶iãîîá±pá²e+W?~öìùóèïþý < ¸Öœ5kÞ¼ Øl4‡‡Ãá̘1{öܹ>xpÿþüù‹/[fggoïàкuÛ¶îîQQçÎ=keeeem}ñâ•+7nDF^ºwêÔùóÑÑh_µO=ˆL62rs36./¯š~‚@`0llRR‚÷'çA·2XœŸÏç7n<|øÕ«·n93gŽ»{nî©SË–­][}hÍ%Kºv ­ÖLM•J?ÚÐ:Ýʪ¤äé)T**ÕÊŠFûocTP ÍÌÔj•êÓ“B½Éd± $’oõ$üê¤Òœœë×E"WWcc"Q£ñòjÔˆÅúTR#%ÅÌlð`ýAjZ»ò"Ñаuë~ýì킘˜ÄÄòr Ã0™,7÷òå¤$ÁÝ}ð`ýrª'¸j.™Ëusóñ±±áñ.^[ýúNNÍšÉå2™DB£Ñé,VFFZÚË—ÆÆ&&ææF¡ÀLâ€[||rrQ‘»{Ó¦66BaQÑÛ·è“­òÓìÃ;4…";ûر3gJJºv8°cGK  ÓŒOÝ9(7nÐh††ýûׯ_90ÁÝ»'Onß~ùòÝ»/_ $—Û«—£cIITÔÉ“çÏß¹“”TPл÷èÑS¦¸ºvè`k›“sôèž=ÏŸ''?xpõªPØ¥ËÌ™sçöèñæÍùóaaqqwî¼z%ÉN·nÖÖEEÑÑ‘‘QQwï&&öî=tèÜ¿öìñãׯ?z”Ÿïã3zôÔ©Í›ÿñ‡©ivö±cÿ}ñâƒ:]÷îS¦tïîèÈ`ää8°yó³g^^cÆèGŽa8®RegŸ=»aógÙÙùùwïÞ¾Íãµl9vlhè£G.?.‘°Xõêuê4bÄÔ©Ž’šÊ`´hѶmãÆff¦¦jõ•+‘‘3f;:¢;3¥2??:úȑӧSSår {ýúþýK—._ÎÊjÑ¢oß®][¶Ä0…"??::"âÖ­>}FŒ& kk+«ÒÒË—·m»u+/¯¬L£17—J_¼¸vÍÞ~È™3;uêÔÉÄ$3óèÑÕ«/]JHHK+/wu0aðàÆUª}ûvîÜ¿ÿS1s8wïÒéïAýv8s&>>##%åÉ¡°eËI“fÏîÜÙ¢¼|ëÖ ¶l)((*ÊÌDu ˜={ôhGGƒ@@C¥deíÚ5þíÛ))oÞÜ»:}zp°µ5•Šãÿ¶PVvçÎÙ³ÄÅ%'ËdNN9;›˜P©Jeõ³ÈDÇÅÅÝÝØ83óèÑU«._~õŠÏ/-%q<#ãåK‘( `Ô¨>}jª——WÃ†ŽŽ øù…†>ž““ŸZûèÑóç_¿nÔ¨E cãGN:s¦æ#H$89¹»›šŽ1yò† =xðô):÷Z´°··°hØÐÃEø±ãµwoXØÞ½B!•Êår¹õê9;?}zæÌöíwî$&¨T\®­m§NTjRÒéÓ;vüóOxøöí[·ž:ýèQQ—Û¦M›6ÎÎ4ÚíÛÕÛ§òÈR(t:…rã†A£FC†˜™‘É8Žz§¤˜›·nÝ¡ ¡vGgÿþK—’’ÊËÙlKK''&S سçÓg]“&\î’%«WGD俦¦&%¡«ÌǧK—† /]:räôéwïRR23%’œœ„Ô“&-^~üÏ?Ñù†êÛ¸qPЄ ;;8°Ù«W‘‘ÑÑBaÆ º¸ØØÐéjuNÎãÇb±±±³3•Êç'$œ;wðàÕ«YYææ:4lH$&$DF8óô)‡Î++‰äν{¸tI¥b±h´²²×¯oß¾uëÙ³²2 cc#£»*€ï­z^elX,6›Ã!‰DI( y‚£’V«Ñ<{–”tï^ëÖŸÎÃ0,11!áÆOdžƘx¼âbϵk11NN ººb‹eeU×ퟲañcÏžM™âïïîžýìÙ… è“­òÓ îо.•ª¸8?ÿÉ“}ûR(Æ›7¯cGcãʞ͎קϒ%»vݾ}ùrõíe²×¯W®6lÞ< åô騨9sêºF5©¨xøpÿ~¯jr³—J••µcGPÐðáœ:uûö±cÿ¥ÖŸ>‚ßGPP‡œ9s振¯¹9‘(‘H@ü4¨T[Û‚ƒ‡ óò21a³ííGž6mÑ¢¥K—/ïÕëݻÇ7o®Z›Dâr[· âpd2‰D«Õéj.9=]$jÕjÖ¬­[׬™w.1Q—ۦ͠A11OŸô©r „7^¾LO¯m$RmK®Œ!8½Î˜ñõJüø 4€oо H@ø&  à›€ôW ÕJ$))þþ¾¾ãÆ=.×u<øUEG¯_?x°—WË–:,\¸llå;juyybâ™37.]zðàåËééññÇŽmÛ6gNpðÁƒÙ٠ŧKÞ¶múô™37mÚºõï¿-š>}ýú¯§V ‰‰µ/Y­FkÚ³ç AŸZÿsKü þSZ§ÓétºêËU*•J¥ª¾\­V«?¶ü¿Òé¤Òׯ·m»u«¸øýòKJbbfΜ9óòåÒRæëï!˜Ì† Éd…B©Ôj¿V©juIILÌĉAAß*nül|}gÏ>rd÷î¡C©Ô¤¤‡)”ÊwH$ÇÖ–LÎÎ^º44´gÏ <=ƒ‚¦LY´hÊ­öcwlUD¢G¸Ü™3W¯ž1cêÔ¿þZ¼øÏ?¹Ü§OE¢êë’H\nëÖµ-ÃH$´&‡#“I$ŸZÿsKü þS:(ÈÏoÀ€ŒŒwïÒÓÑ”’?~äÈáÃ_½zù29YýÅ‹çÍ›3çkWA­.,¼|yÍš¨¨ÌÍÉdý÷LM½¼þü30°iS&“@À0 Û³gÞ¼Y³þùgûöððýû7mZ¸ðí[‰D«Å0µšÇ‹ß·oÖ¬K—âãccß±ãï¿W¬˜<ÙÏoÕªK— õ“Û—.ýóϼyëÖmÙ²sç¡C»v­__X¨Vc†©T<^BÂÁƒsç=š“S¹FÃçÇÇâë;~¼~/郗,Y²$,l×®­[׬;vðà¢"‰¤°0.n÷î÷í{þ<'g÷îC‡nÝâñPù:L¶`Á”) îܹk×Ö­k×N˜(‘¨T•ñÖ¯_h¨~üýúuë6x°~ü Ÿÿ¾þ~§O_·îòeô®JUPpùòÎK–üý÷æÍsçN™²eË•+EEßâç|ÍÎÎϯwo&3%åÀÊ¥*Uaáýûwﺹ}nyjuEEjj½z,Vå}‰Äf;:¦§‹Dðß~ÀCú²Í²³³²²²’’?~ôhÑ¢¹sgÏ>zôôéÈȈˆ#Gºwïöí[·Š‹‹ŠŠŠ¢£¯^½qãöí7®_?{öÔ©“'ÿúkéÒåËY,‹ÍþïÐj…Â/ââ üð]§Ñ¬­[µ²±Á0 S«‹Š^¾ìØqΜ}|Ì̈D “ÉüýW¬xñbÿþ… ÝÜ<=‡ 2$$äÐ!ß±c„¿þ20 Õj_ßÞ½W­ÊÌôòZ²ÄÙ™J¢¢¬­'MÚ¾= ÀÖ}Y»páäÉ#0ŒL62òð4hР·oy¼ÊHˆDCCOO2Y¡Ø½»²—´Z]Zš’Òµë´iÿݱ£‘‘V[P`j'›šöî=lØ A/ž;÷æÍرÇwÑhŠ‹ãâLLÆŸ?üø&M˜L…"5U&KKS*ŒPüÇŽ>,lÑ¢ÀÀ+¤R©T*õ÷Ÿ4iÊ”5*U*Wn޼ŋ—.-[Öѱ\9WW77w÷sçΜ9}ÚÉÉÙ¹jÕ“'CC‹‹?|-ÏÔ´V­ ¤ÒµkÙ*Ïúi`‚ É·o/_Žˆ`˜FÜÝíì²³ÕjŽ Œ‹û‘¤Hdo/³Ÿ¾R4—k``eõæBA’nnRiqúý:…ï·èW3ärE"KË÷ç¡(š&þG¾2:Lv劕U¿~~~]»ÚÛ $™”´uëÓ§_zÅØó …4Ÿÿ÷¹µZ.×ÐÐÁÁÐaäòøøü|’ôô41hZ«•É´Z.×ÜÜÀ€ÿ;ç~ZmzzxøÞ½[¶œ=ûæMF†·÷²e+W6jdnÎåRTFFhèüù—.Õ¬|¿@°vmß¾ü±aCB€ÁÁ}û–//…†ÚÚÖ©cf&M»¸ˆDII§O'$(•Íšyx˜™Uª4bÄøñ#F´h­Ñàï ühMëÖ‡Ï;wn³fcƬ[gbòþ= ó¡“¼K"©\ùúõë×åò~ýÊ–µ°Ëcb®^­P¡C‡#>>êKf.éù÷WŸë п‡p£9[LcáÂÀÀåË›5kÙ²U+¶] ‚Æ›5kÞ¼_?_ßAƒØöE‹–-[±‚Mm^./>Mfg³·É²ó˜›×«wúôéÓqq*{^†Q©"#³²ŠgâriúïÏ/*ÊËc“èì¬*Ujj\œRI’Ÿþa­ø{Þ–-­¬²³õÏûêÕѣ˗³ ý¶md²°°S§ž?gëEGGoß¾gÏ«Wj5~„ßPhg×®¯ïˆEE117o¾xQXHÓì= |¾MçÎë×;và€Ÿ_õêI|üÇÉÉ*IªT:ÃDãÆ^^¦¦¹¹áá11ùù:]QQ×®ƒyy ÏŸŸ:•œ¬R„N×¶m³fVVb±ƒC§NS§úù•öªà÷#ØÚ’dr²½}—.ÕªI¥%÷ZQ”\~ÿþ‰û÷ïØ±gÏõëûömß~ôèÅ‹ÉÉEEïÿ¿œË57¯QãÂ…eË6lذaùòõë/^¬UËÔôC%‰¾nf‚ (¶gJJAAVÛÿc=¿nfø7àDD„†<èèX³fq•a}ÖÖ®Šljjnnc£T*r9ûRš¦išf_Aд~K1šÖé?~ðàæM7·úõ[¶üØy££ï܉Œütl^^:ôë'—Ëd™™l<—.……:ääTµj­ZQ\œ¦I&&õï?hPTÔôéçÎ8`gÚ¥K¿~ÁÁÕªmÞ|î\``•**Õ… ãÆõî½ys«V{÷;Ö©InÛÖ¿ÿ A·n±£\]¹Ü˜˜ùó»u›0Ù3gÖ¬Y³7vs{øpìØNV¯vq \¾|äȆ ß}4*À»V­:pàñcÿ>}<=“’?>s†}g+~7ssk×®´c€ÿ.>_«Õoa36¶¶ööŽŽB¡@ %''%½zåáѰ¡—› ÒïGmÀLñ.:6M.•:;—)#¾|™ŸOQ £ÕÊdr¹FÃîx¦i¥2%åÅ‹ü|­–¢ Šb‚04,WÎÛ»J’¼sgïÞ“'ù|ÇØ¸rånÝÊ–•ËOœØ·ÏÖ–M=³õçW® *í•üÓ€€æÞ½[·.^¼ÿö툈û÷oß¾|ùÁƒ»w¯\)í¸Jœ={òä¹¹ EjjHÈñãçΉŕ* ìåeoŸš´`Áöí|¾µuÛ¶~~ÞÞbñ¡CC†øøœ:õ×_ÎÎ+ ññ6îÞMޱq¥J]»::’äë×FFA\®TZ³f—.VVju\œPÈž“¢òòž<‰Šºs§´WðOÃC±à‡ñðhذM›•à(íè‚ zô˜4éðá=&Mz·= àÔ©è耀’– fÌ8~<4tÆŒâ–!Cö÷×efæåuàÀ¥K^^Å-|¾­mïÞûöݾݻwq›Xìâ2kÖ©S{÷–öêþiH@ÀÃî€~¿ÝÕÕÃUæþ{€€æ×ß ðû i¥òÅ‹³gƒƒ#"RSMLD"šV©²² ºu[ºtèÐ5 òó££5jöì“'ÛµÛºõàÁÁƒË•‰ÞŸ¢rr._Þ¼yñâ°0ŠªXÑÂÂÍ­ÿ©S›4±°à¿÷/F­6332rÓ¦cÇ^¼Ðéäò§O“’ll†]´hÄwwSSý¾rytôûö=zþ|TTLŒZ}øpxø‰^EÉå_3üú€ø!É·oóõí×ïêÕ!CNÚ´iÜ8 ý÷理¨TA|¾©©›[ÿþ&&jõ¾}4ý©_N›Ö·ïÚµuêìÚuℯoÙ²Baß¾^^£G:µysÝºÆÆú1ää$$(õêùùÛ´©VûúõÚµ>>C‡Ž?bÄÕ«{öèÏÌÆàïïì\¹òÓ§ÞÞóæ}j}_3üúðB€ šÎÏò$,,=ÝܼmÛÚµMLÞïãî^¶¬¡!‡óu3§§“¤DR¡‚‘‘@À¶H$$ùömB‚BA’ïöìí5êÒ¥iS‚ ®  .îþ}•ÊܼqãÒ¾BðkAà_C§S*““U*‚HììÄbþ»›¢‚Ç‹y¼âÔ5ŸOZma!IÒôÇGef^¸°qãÎR©¯o`à€¥}…à×ò¿ZD"‘ÈÀ ´ƒ€_•V[ÚA„@`gצMË–ÆÆ{÷îÙs÷nn®»{›6ï–àˆˆ8w.%¥Y3oï²e…Â/¹lY  àÅ‹ü|­¶^=©T(ÌÏÊ—¯SÇÜüýúË ST”˜xìXzº­m¯^óç;Ö¡Ci_øa4À¿ˆPX®\¯^&xz&'¯^½råß“äÑ£oÞ½?òÓÕ”{ôpqQ«¯_‰‘Ëu:‚Ðé´Z—~ý*THþ>Oaá“'[·Î›]¦ Ÿ¯ÓQE‘¤R™šúàÁÇÏð-ÕœQàß!øWáñÌÍ[µZ¶lË.78xùò5kÖ¯·´”H¸\µ:;ûõë&M:uZ°€Ï'Š’Ëïß?s&%¥  +K£Ù·oûvccOÏNz÷nÓÆÑQVÙ³§OŽ^´hÙ² ^¿¶´?~Μ)SLM¹ïlX é¼¼¨¨+NŸ~ðàîݽ{kÕ:y²8.KËöíïÞ½~½^=ýrùýû'Nœ;wóæåËl$G^¼˜œÜ¥KëÖŽŽ"ѻժ¿&føõ! ð¯Ãá…öö-[Ž;ujË–ïgjêîÞ£GXØ£G=z|zF>ßÊÊËkܸõë½¼>ÕË57oÛöÀÈȶm¿,V6†Ø'~.Ž/~}(Á?ÐðS  ?ÐðSà!„ï éÂÂçÏ{öìÞ}ÅŠ9sNœØµ«n]cãÒŽ àsF«MO¿z58øäÉ/¸\±˜a”ÊÜÜ´´ÜÜñã/þóO¡Ã!’Ìȸ|¹}ûŽ.lÜxô艻téÙÓÛ»zõÂÂÈȳgݽ{ëÖÞ¾]³æÌ™ÀÀM›úö0A§kܸK—úõÍÍãã>v,9¹E‹Áƒ{÷.(¸tiß¾ÌÌaÃNÚ¾ÝÛÛÚšÇ#­6332rÓ¦µkËÌ”HB©´±:tÑ¢¡CÝÝMMy¼Ò¾ZðOùMÐ$™˜¸iSl¬…ÅØ±®®ßž2ærŒªWçó‹Š´Z†ùQÑQTfæ¹s£Gûùy{;VÚW ~'$ùæMppÏžC†$$Ìšuöì²ecÆH¥%ǦS§Îׯ߰áøñqãÊ—·µmÕÊÜÜÈhçÎÎûôéÚµø×í¦¦mÚtíÚ½{B±cgÎDEÕ¬igW·î‚!!ׯ[[›™‰D•˜táBh(I¶k7pà¨Q®®£F ˜•¥V Åie’ÌÉIHP(êÕ›2eýú¦MSRÖ®õñ:tüx7·={ð ~€ÿŽï*Á‘™™‘‘‘±`ÁìÙ3f9rðàþýl;I’¤V»fÍòåúýe²ÜÜœœ}ûvíÚ±ƒaæÇ¥x ‚ 8œâW$™›µmÛøñgÏFE;·oߺu Λ÷Ç;ÏŸ’–F’%ãΞ œ2eéÒU«6lعsÓ¦¥KÓÓÙã•›{ëÖöí“&íÞ”TTÄö§¨¼¼¨¨®]Û´:ôÑ#…¢xžíÛgÍš9sÆ  Õ«/<¸K—Œ ¥2--,,(hùò-[=JJ Ú¹3227·äü›7Ož††ÖÖFFAq‹@`oߨQ—.M›ZXQPwÿ¾JenÞ¸±¥¥Ai_1ø'}WzÑ¢¹sgÍjÙÒË«M›ÄÄ7o^¿ÎÊÊÌÌÌô÷ÿã#j×®[×Õ5(hݺ5kär¹(èõkµš ‚¦óòNŸvpð÷˜<ÙßèбcgΔJÙ²ø| ‹† {÷îÝ›¦K8|¾™Y£FAQQQQq+Eee½xѺõäÉcÇŽ3iÒôéK–ôêuÿ¾BamÝ¡Ã!½{;8H$ææcÆ Ú²%ûÛbŽmÑbÖ¬)S&Lðó92 `þü™3—/üX©äóíì:t=zàÀ“'ÏžÍʪVÍÇgÊ”#Ú¶µ±ù'¾5~O4­T¾|yàÀüù«Vz´¿ÿøñï·Ïž½`ÁâÅÍ›·léåõömjjJŠòÿ~ÝÞç¿ÿ8ôùª§<ž¹¹›ÛÑ£«V=|Ø¡ÃÔ©žžR)—«ÕÊdúI.×ÀàÉ“—/ (ª|y++>Ÿ¦ ³²J~|âó-,ÜÜNž Š‹ëÒeܸš5 B¥ŠˆÈÊÚ·—H‚Ë¥éâ*ÒÅg73ss »x17·mÛŽ­­ù|‚P«¹\OÏ^½Ê–e+$~x÷4|›×¯ÕjƒnÝ$’s ¸Phg×®¯ïˆÇŽõìÙ¶í‹:ùû³é^N.¿ÿôéÄDSÓž=ÝÝ-- ‚ xýàÁÝ»{÷6mzò$ÛÎãYZ¶o¿cÇùóõê™™¡ÀÅGÐ:têÔ¹3ûñ˧‚¥&>ÖÎãñx<^³f-[¶jõ=ËÊ—;ÖÕU¿M*õô:TÿðAG^»và@É玎'ONŸîèXÒ"^¾|û¶~ŸÚµ×¯o×®äs.×Èèúõwû”+wìØ»)vCÃöímmÙמž›7߸qåÊߣ¶·ß´©cGý6±øäÉE‹êÕûô*àÛ°¿˜úÑåãpx¼q㆕Húõ[¸pÅŠ>}Î ¬REÿ>‰wû³ÿéÇñ÷Dz2 Eéßiñu>õ«; |y_ß  ?þØ·ïùóèh¥òȑʕ'Ož7¯L™O]5øUˆÅ..³f:µwï»íŽPhgײ¥ŸŸ¿Ë–Ÿ›…Ï77oØpðà%K6ü²óòùææ>>S§9âã3uêÇû™›·m{à@ddÛ¶¥}¥àWð]!øw©XQ,Öh’’ ¿ÿðâ´,›:–JË”‰ _¾LHÈϧ(ö.‡.]Ê•“Ëâ£ss ‚ Ôê””ððØ{Ø{,Ì͹\¹œ½Ó‚ hº°0..<üòeý;-Ø»(rs5š‘llZ·>|xåÊM› :uªSÇÄäÃIkŠ*,|ó¦¨H,vr22ÂÞgø:H@ÀHƒŽŽ*Õ½{‰‰Jå÷$rÏž=yòÆÜ\…"55$äøñsçÄâJ•öò²·OM Z°`ûvö.oï+fÏ®^=2rñâàà•+,ÎËë×oñâiÓêÖ%CÃ*U† 4¨N””… »tY³fóæ#G+Vôò²³#ˆ·osrøüòå½½ÝÜ¸Ü &O?þGTPlmI29ÙÞ¾K—jÕ¤Ò•ûP*ß¼¹}[­.W®qc++$ àëàAwðR¯Þš5'NˆÅ®X‘˜Ø¡ÃÔ©¾¾_zûy‰=&M:|¸GI“Þm8u*::  ¤E °±iÕjìØU«>VhH,®\yðà­[O<øÝ#ÞÞmÛúû³¯;v\³æòåwKö| 2òÒ¥%K>Þƒ¢d²  ¤¤ vï^½ºfM‰äÇþ€€ÿ.×Ȩzu_ßÅ‹«W/íX~u|¾¹ùÌ™¾¾ææ¥ ü[! ð/VT”’rêÔÛ·ïÝ»oß¹s2Ù A£Fõí«Õ$%Ý¿êÔ¥Kݺ ÚªÕæÍëן8‘•%{zÞ½[ò8e’Ì̼|¹C‡vífÎtv2dúô#¼¼hzŸ+jÖìÓÇǧNss.7)éåËÔÔ²e½½ÇŒñõmÙÒÑQ$úX ‚@¾YFFZZb¢¥¥••½½F£V+•_2*/O&ËÎ6553³´,íüD¢²e»uóõ2$==<üêÕ¨¨ÁƒGŒ=𠆢 =zútCC..îÌ™C‡RSgÏÞ¶màÀÞ½W­züx×®I“êÔ‘HllZµªXÑÒ²rå¡C‡ éÖ­vmcc‚°²219yrð`?¿qã\]Ùó1LAÁ½{ãÆõìÙ©SÙ²!!çÎMZÚ×~]x!|£„„¸¸˜†a‚àp8œ/Û—‘‘––”dgW¦Lùò¥½€ßM«Tqq‡¯X¥Õê,-[·Öj™8qݺ۷åršþš™9‰¤B…¶m-,Š[·J{ð«C¾‘µµƒÃÝ»QQçÏçädg§§¬'I’¤VËî}¶±±µ-SF"‘H¤ÒÒ^Àï§ àî]7·êÕ«TiÚ´{÷+^¿.*z¿—»d‰¡áÅ‹3gΛwåJNE}ù9x<¡ÐÂB($ˆÍ  ï%8ŠŠŠŠ4šÒ~M|>÷¿¬²¶¶µ-S†ýȶܻwëÖÅ‹¶¶ööŽŽB¡@ %''%½zåáѰ¡——H$”öZ~oR©§gtôµkÅõiša‚¦Š7oØöΗ BC#"zö<|xâÄ.]ê×/*24tvþüF.ݳ'#ÃʪwïÒ^/üê°à_„$ÓÒÎ[¹2((6V¡Ð/ŸÁ0ï÷æri:;;1Q¥**¢iš¦i’dSÐAA™2={Ο?{¶§ç‹……Í0A’%çÐéòònßÞ½{íÚôôfͦOïÑ£´¯üêðB€ŠÊË{ò$*ê΂ðõ9²jU¥òʕӧoÝ’É ví Þ²… ´Z…"=ýéÓˆ›*Uìíe²×¯÷ïßµëСúõ'Lðñ!‚àó--Û´Y´ˆË]¸Ðߟ=Ifd\¾,“åç¿|¹e˪UkÖ<^¦ŒP˜žžœœŸïì}ܸúõwï^´hÃW×qã¦OoÓÆÜ<'gÇŽ'O’“mlöî]¿^£qt¬WoäÈAƒš7'Éìì«Wwï^µêÜ9ÏÆÆÀ௿ ]\œ4©OŸÄÄÍ›Ç;räî]¦OŸ¹s»t9pàúu—íÛÇŽ­XQ(ü9W࿦óóïÜY³fáÂ{÷ºw_ºtܸ J~i_î' Y*UIZ©T*•ÊŸ·šÎω¹p!=Ý̬{÷¿åp êÕ+S† tºÌÌÓ§--Gš1cÔ(‰¤¨(>^­~õJ«57¯_¿gÏž=÷ïß½ÛϯOŸI“‹ B©|ùrÛ¶Ôj‚¨\¹ àÂ…Å‹W®ŒŒÜ¾ýêÕðpv†ýü¶l!ˆ!CæÏ¿|yöìÀÀ—/ûôÙ³gñâÊ•/\ðó>üèÑ òòJL¼s':ÚÎnäH‚ ÀÎÎÎÎÐÐÜÜÝ}àÀqã *WN ŠÊÈŸ1#0ðéÓîÝ÷î]·®Ccãøøuëúö3gõêjÕŽ7ÎÇçìÙÐЩSOŸ mØpèÐîÝ­­ù?åë ðûصkáž=÷í;}:#Ããÿ~ýøü/îÞåó›6 0 fM’”ÉRR^¿~ûV­þîø·úhÂòʕ˗#"Ö®]±bÙ2N§£išÖét:†a†„BÀÄÄÔÔÌL$‰D"ƒììÌ̬,•J¥*N:«ÕjµJŶO™2~¼Ÿ_aaABQTTT¤ÑhµZ­V«T*•……Ap8—Ëåòù|>Ÿïç7a¤IP(6hШQãÆïÇÉ0:]QE1 ‡óé¥òx66ÞÞFFû÷oذsçýûåÊU©R¾¼@`ddoOì¹ B(´³‹‹ç’HªVí×oúô}û²³IÒÙÙÑÑÛ{õêµk)jçÎÝ»OždgàrF¥"É´´3göí‹·´?¾Nss>_*í×oË–°°~ýØùΟç~¶è I¦¥;wôhR’Ý„ MšX[³í*téÒ®Ÿ?bĆ 1qâ¨QŸoaQ¿~¿~¾¾Í›³Ékø”lÙòüùË—£¢z÷9rìØZµ só!C\»6:ÚÛ;8ØÈèÂ…gÏ,-œD¢ää‚’ÌËÛ¿Ê” NÊÎöñ™=ÛÇçÁƒ½{·m»wïåKÇÓsʔ͛çÏïÔ‰}/€bM@·hѪUëÖìÇ/Ÿ®]»-š4‹ÅbCC¶ÅÐÐÐP"±²²±±¶^¹rݺ] šÇ35­U«A©tíZv§"§œ$ß¾½|9"‚a5ª_ÿÅ +«~ýüüºvµ·H2)iëÖ§O?5¿N§R¥¥9:»»ët2ÙåËóæÍ˜qôèÚµçÏ=Êΰu+A—+YZ …4ŸÿæBA’nnR©@@:VKQΗ•ÆàrÅb;;±˜ Ôêìlvÿ¥±1§Óef’¤H„$À÷ÒjÓÓÃÃ÷îݲåìÙ7o22¼½—-[¹²Q#ss.—ÇëС^½  -[–/··×hhzèо}ûõÛ³g×®#¼ßÊêðá­[OžÌÌ<{vðàÖ¯ "ˆN/.íuüZ~ðCY‰D"‘°¯ ‹“Ñ?‡PèèØ½»ŸŸ»{TTvößBxùòºu'N$%1LQQ^^É õ4­R¥¦ÆÅ)•$É0Å#t:…¢ä3’ÌξuëÌ™5¤R.— ŠŠòòòó‹Š(J†ü|’¤(Ïܼ^½–-­¬²³OŸ>}:.Ž}<â«WG._™•õ¡Ç r¹4]T$“i4Åqñxff®®ÞÞŽŽryxøƒ2A„Z’rá£GއG÷îQ#|=¡Ðή];_ß#ŠŠbbnÞ|ñ¢°¦Ù{8>_"áóõïWàp8G °·oÕªK—:u‚ ø|sóš5==MM‹ŠÞ¼)íüŠ~pÍà *T¨X±R%'§*UØ''gçªU_¾|þüÙ³ŸµÏܼeËåË›6ýûkëví–/ *þ¼R¥âbA&&­^]\Ø£°Ëظ¤˜‡@`kÛ½ûîÝÅŸÛÙõî½kWddïÞú3„„\½ZÜ£ÿÇoÜèß¿ä,NNýúÍžíäDѦMDÄ™3ú®_ùrxøß¾(|;»ÎwìïÜYžqãΜ9r¤¤eãÆ¿Ï_ƒÃáñÆ:T"é×oáÂ+úô9w.0°Zµ÷çpx<ýr?ìçŸ+ð_õƒÐÞÞ]»vïÞ´i‹-Z°-ìk¶rti/öÓ~õøàÇ(þ»Î¾+I¥ÎÎeʈD……/_&$äçSTµjïßµññ÷¼s|Ü.ÁѱcçÎ]ºK¥l‹‘‘‘‘±1Û^Ú‹ý’Ìξy3$äìÙôt¥27÷êÕW¯”Jš.í¸àG;{öäÉ7rsŠÔÔãÇÏ‹+U<ØËËÞ>55(hÁ‚íÛïÜ)~7ÈË{üøúõ—/¯_?sæôé´´ÂÂÜÜ;wNŸ>y’$33##CBNŸ¾uK&+,LKËÉùP‘€ÿ¶¼úßI °²jÜØÇgÑ¢Æ}|J;øyzô˜4éðá=&Mz·= àÔ©è耀’–³gû÷_²¤äóÚµ›6õõýóOýQÝ»O˜Ð²e÷î&”öº~M?å!„H@ÀO4üH@ÀO4ü|ö‘H$20(í`àW¥Õ–vðïƒÐðS  ?ÐðS  ?ÐðS  ?ÅOI@kµZmQÑÝ»·nEE±¯K{™ðOûÁ è  uëÖ¬©[·jÕÊ•ìÛ·gOö5ÛN’$©Õ–ö’ßGQ¹¹wîìÚ5uêÀíÚuï^Úñü~@:==---­qc7·:uÆŒ?~âÄgÏ^¿NI‰‹KNNOg_³í Ι3kÛÿÇ-A¥ŠýóÏ6m5b˜¿›2eΜ[·òóß?¢Ï·°¨_¿gÏ=ÄbµZ¥*n§¨ÌÌsçFŒèÕëGŪVSÔ§cyÃäçߺuòdz:EÇ”•¡Óý¸ëðsð¿йs§O°±±µµµýtÏyó-ZºtôèaÃÞ»÷À±CC'§^½¼¼Äâü|š&SSîÿÒêU±bÿþu뚘p8A’YY‘‘«V<øü¹¹9I¦¤$$Ö¬¹|ù‚¼;'I¦¥……mÞ¼jÕ–-%%%'ïÜÙ§¯oË–|¾Z=uêèÑóç;:Öªec“ŸÿðaTÔ„ Û¶8!‘p¹ZmjjHȲe¡¡))bqFÆÃ‡Ožš˜˜švï>{öÚµnn*Õ… [·EGk4MZ‡ãå5oÞ¸qíÛÛÙ %qPTAÁóçEEáæö¿/ߢIý$öÇ×5{vûö·níÙ³dIPÐñ㉉û÷‡‡Ÿ~¼fÍüùü}¯¶@`eդɦMC‡úû…„<~œMÓ"‡S²Æ¯‹Ï·°hذwïÞ½ KvvóùffõìéëÛ Ãðùvv:Œ=p Avö‹ÕªùøL™2bDÛ¶66|>Eee½xѺõäÉìJ§O_²¤W¯û÷ss)Š H2%…]ËèÑ£F¯¿–ó•€³î€~ö,66&æôé'Ž{ñâÙ³§OI’¢(Šaèÿ÷äÉ£G±ýëÔquus‹ŠºqãÚµúõ6lܘÇãñx¼ü|¹\.ws«Q£jÕ5jÕªU‹í?dˆOŸ>..5kÖ¬) …B!‡Ãår¹\.‡Ãå²=»víÑ£W/—š5‹G}ŒPX±âر=z8àârøpïÞJepðÆ•+³lI&%9sèPb¢½}×®ÅcÄ⊻uëØñéÓÂB‚¨[÷‹/ßÖ¶kW#£={Ö¬ ¾{·|ygç ø|cc{{‚àñ,,š43¦[·cÇ6m Z¹R.þ¼°°mÛY³æÍ#É´´ãÇOJJ22š8ÑÞ^,æóML||öí»xÑÇçCg30pv¾y3"bëVŠÊË{øðر‰6trZ²äÖ­Úµåòϯ‹ÃápŠÖú8îÿÿú˸\À¢W¯>}ŠKŽdRÒþý}úÔ­;jÛ—Ëup0 S§â£¡¡ìZúöe¯Œ½ý§Öÿ-M@³ißO'Ù]ÌôêÕ­[ddDÄ… >>¬ßÇÄÄÔÔÔ4$äâÅË—­¬¬­­­ëÕsqqvÞµëàÁ#G7nÚ´Y³³¡ÐÒ2=ýСððW¯ªWW*33;vôó#‚àrÅb{{±˜ Jê;AP”F“‘a`À糟}ÙytºÜÜË—ml ˜0¡{w€$7mŠeÓ4IÊd™™*ÕèÑ‹O™ÂåêÍÎ.SÆÐ¦óò^¾”Ë‹Šê×71‰hZ«ÍÍ-*âr-,Äb>¿$œœ[·ø|Kˆ ù|33W×Þ½çÎ1ãÀü|’¬[÷kÖõ÷}Þ ó¹s8"‘•Õ_)Z­‡‡‰‰PXŸÇ MLÊ•«YÓÓ³re## ´#øgð¿ }“&M›6c†Ÿßĉ“&=z]·®››››P(ŠD¥½ØŸokëí=mÚ A÷î­_´e‹TÊåfgge•)3eŠ«kiGðÏøÁ h›nöôlذQ£Ò^à?Ë•JkÕ>|íÚ?¾à÷÷ÃJpèC~ $ à§@àh:?ÿÎU«&O^¿þkû¿ySTTÚñü ~ÊC~M;wΛ׭۾}gΤ§×¬Ù§OõêB¡L–žžšªÑ”-ëí=fÌðá­Z9:2 IÊd))¯_¿}û%3ë÷W«uºâV¥òåËãÇcc-,ºv­_ßÊJ (íkðÏù_Z­.*Òh’“ x¼Ü\•ŠÃ¡(†ápJ;<(66 M;:J¥:‰ ŸÏýMî–ðõ2¤uëðð«W£¢öó7ÎÕÕØ˜=Æ0÷î— T.\˜Ÿá³g––NN"QÉx­655$dÙ²ÐД±8#ãáÃ'O MLLMË•«XÑÁퟜ\P@’‰‰Û·OŸ´wïvv:üõ—“Óœ9Ó§[XPÔ³gK—öï¿lÙÌ™'OîÝ[ÚWàgù_:)I.çr32”Jös†)ùÿ=éé A0 Ãp8¶¶IiÇóOàp$’ Ú¶}öL¡06îܹC‡zõ‚‚¶lY¾œ=®Óeg_¼¸`Áš5GFž:¥RÅÆÎ˜Ñ¯ßäɱ|ùìÙÇwî¼|¹½½FCÓC‡Ò»÷™3'N<{æé9tèĉÅûŸMMkÖ¬_ßã´× ðsý/™©T2ŒNGÓ¥ü:23ŠÿÒ<žPha‘—'—ëtŽD"‘èïýfN­Öh(ªd‡ÃãAhµŸÿnÿ:uš:Õϯ´W ðsý/­ÑhµØõ ï*Iµþ.%8>…aäòØØ={Z·öôlЀ 4šwóù––-Z Ü´éÑ£ì/ë kÔX¼øÌ™‹ ‚ Š»wK{ ¿–ÿ% u:šÆîgø˜ß)Í0ì$Yò®§Óååݾ½{÷ÚµééãÆ?N¡V¿;Ž¢23ÃÃw숈HMmÚtÑ"‚àrõ÷‡ø×w\.Måæj4%ÇI2-íܹuëNŸööž2e̘Ҿ"?ËÿÐ4MÓØû ¿»³gOŠŠ’Éòóãâ¶lYµjÍš'OÌÍUªœœœÇÙy֬ݻ¹\’Ìͽs'$äìÙôt¥2/¯°P§###+«Æ{ölÒdÿþ \\*Wæp¸\¡ÐĤlYW×9s (WŽíÿøñõë/_D¿~åË{{»¹q¹kÖLž<~üðá§OoÝjfFQyyOžDEݹƒ4üÞþ—€&IN§+í`àWUüð¼»=&N¼zõܹèè«WÏž¥iš¦i.—ËårÝÜš7ïܹN&MÚµãry<$£à߇˕JkÕ>|íÚZµJ;€ƒP‚£°0??//$$8xéÒ~ý¦LY±¢fÍ&MÚ·¿çµkgÏîß_§N³f;™˜˜™ý¨e…&&ææ+åå½|Yò°/cc[Û"'çèÑ·o)êW«t]³¦§g™2ÆÆOŸ¾}{ë–Rù¡øºwoÙ²lÙ7onßNM}ôH­f˜V­lløüÈÈÌÌ_oE¬°:**$dß>CCcc3³OÏS¿~‡}û^¾|øpPPëÖ>>þþ?b \.Ÿ_£FRéƒ7näæêŸ???--'çöm±˜ *T¨XÑÆÆÚ:==3“Mõr¹B¡¡áèÑM›š™…„\¿ž™ibR¥Šµ5A¼}«P”+W§Ž••½}ffF†NgccfvïÞãÇl{xø•+¯_3Œ¡¡‘Q³fÎÎb±@Àã  “––•uùrFà Ö¢…ݽ{11ùùžžŽŽbñë×ÏŸ§¥……¥¥DÓ¦ffA~~ÅŠææ|¾R©V_½š Tê¯ÐÜœÏ'ˆäd‚`ö ß¹“›KQú…Sš7¯WÏÎN,V©ŠŠ”J.W ˆ‹ËÌÌÈ i¯R¥Š­¬ll¾víéé©©Û·¿yÃç7jT½º‘‘P¨Rét¶¶V{îÜóç E~>MDË–uëZYÑ´RIÓ"‘T*]º–†ºâÿe\öަiúk?¦¤$$<}š”ôòåãÇ.. ¶ió~ŸÇoÜ S* ¹œa‚Ãaû³c¿í¼úišÏ‰jÔ‹)Š¢ÞïC’EEýUPPT÷æ\Î&qÙ£$©Ñêt\.AдN§Õ>~üòe^^ݺ<^ZÚë×ÙÙW¯¦¤¨TZ­H$é·kµÁãÕ­[·®¹9‡“þôiaaÙ²Õ«[Y•)Ãå’¤Z-ŠD$ùðá‹™™Û·?{¦ÓU®\µª™™¹9Ãhµyy¥Ó%$¼z•}ùr|¼Bñþ_¾Ôh‚-4°µmÖÌÁA$’Ë5®¸Ap¹™™aaÏžåä\¹›™Ù½»‹‹HÄçSIÆÇÛÚß¾Õj«V­[×ÊÊÖöíÛì숈/²³;;©ÔÑQ `Ž x<ö \¾üòeñu(S†Ïÿ¾¯,>þ:Kûm ~‡Ãá|ºEßÿv@³É[ý2YFFJÊ›7OŸÞ½›——™™šJÓÅe:hša† rrÒÒÙþff¶¶ŽŽqqܼ)“ef¦¦Êå99©©ññOž$&>þðaÛ¶ƒMÊöˆ8p`Ãss[Û²ey<Ç#‚àr9.—Ã17·µut¬P¡F OO¶ÏÇÀåêtÁ.ðýUüýâ° k𦍒Ò쎢hš¢B§‹õ*7÷öm…¢¸»;MSÔ_•´óùFF®®‰Nwþ¼BAQZ­V+“……Édì¨Æu:’Œ‰yóF©T(H’aøüœ¥R©är%>¿x¿xqZX?*}/ÆÅEDAðx"‘XﯱjU±˜ÃyùR­fN­V*339;;;;>Ÿa^¿&I­ÖȈËeýx4êýÙØt®DÂÆôá5Ö¯_µª¡¡Aqz˜a8­V¥JLT«iš¢Ôj¥²n]KË’uÑ4‡CÓ™™yyÙÙZ-»Ãú[×þä‰J%xxT¨  4Í0¶¶•*ÙÚÖ¨!{Ø+Àe¯{~Ä×Kÿci¿­À¯‚-¸Qœ©¤iv;ðÇ3HœˆˆÐЃÏŸÏË«^ý{N¬Õj4*ÕÝ»gÎìØQ­Z£F:°E9òò22’“_¼ˆŠ +*R« ½¼ž1£´/|©9sÚ··µý’žÑÑwîDFÚÚÚÛ;: …H”œœ”ôꕇGÆ^^%oI_†íÓ}¼¼:tè×O.—É23MMÍÍml.] ;tÈÉ©jÕZµÂÈÈÞ¾´¯À§¬ZuàÀãÇþþ}úxz&%=~|æ ûÎVünææÖ®]iÇÿ]&&|¾Vû=3è•àø¾}Ž<žP(›™ÙÛW¨póæ±cAAl)Ïçó«TñðhÓ¦re7·-¾ÿ\ðëû_úGÝhïìÜ A‡NNmÚä奧'&š™ÙÙ•/Ïåòxü|.ø•ý/)L’:N÷#'æp¤R;» ØYuº=?”ž£GÏœ¹p¡wï.]Ú¶ýXìJ€¯À¦ž¿¤§^ è¯y8ü×¼Ÿzþô>èÿ% )Š¢€€ÏÑO7³ 襡ÿ—€x<‚ÐhHih(f` p¹_ÞŸÃáp8œO·À¿×û)æ/ª]³f™2FFwïþõW~~i/~ì;×÷‹Åb‰D­V© ©T(”JMLÌÍæ×©1OÓJåË—‡­XÊá´m;y²Oƒ_;‹\}àÀ¾}Gž?£V>~âÄ»½(J&»ÿÈ‘  ÈH‚èÖmÚ´þý]\Jû üsþ—€îÒÅݽLöci‡¿­öKzU«V³¦»;—ËåòxìÎgš.WŽaæ×¸»âÁƒI“zöÜ¿¿W¯C‡V¯nÔÈÔôÛæ15usëßßßßÙ¹rå§O½½çÍûP/>ßÜÜݽÿY³ªT¹ysäH…‚ ‚ƒKû*üS¾âæz€Oc n°éfAį³û™ îÜIJ20pw/WÎÐðŸ+ Âá–+× Avö—%ò~H@ÀÈë×jµ££D"ü“çåóŒÊ—/,Dþ[€€ÿv7véìÉþ•v‚ü3€€ÿŠÅb&)©°$Ä|_šT¦¨ÂÂ7oŒŒ„ÂÒ¾ÿ$$ à?¤AGG•êÞ½ÄD¥ò{v$Ëå÷ïŸ8±ÿŽ{ö¤¤de=zñbrrQчfe¥ò͛۷­¬€€7'§*UªW¿åývÿg±jU`àÒ¥11OžÿzihøvŸN:ëû è… çÌ™5kذúõÛ±cÿþC‡ ¸Ò)ûšmŸ4iêÔéÓÙþ?n±*Ul쟶iÓ¨ÑûµW§L™3çÖ­ü|†a•êéÓ5k._ÎÈÐjõûdfž;çï?n\XXV–N§RÅÆNštóf^žþl•‘qú4;›\žŸëÖÉ“ééU|4++"B§ûqkøwb“Îú©ç÷[à÷ð%ièïJ@Ï›7sæ´ioÞ¼~°eË®]{ö|º?›Œfû³cÄ2 œzõòò‹óóiZÿEU¬Ø¿ݺ&&•–ºxñ©SÍ›ÛÚ¾û0kk/¯iÓ|}kÖ42âr œ^¼Ø·ïáCýÙrsïÞ½r…M")(xþ¼¨ˆ¢ŠóùMšpñ@G=}atô½{wž={ú4ûZ$‰D"cc©T*5666–Jóòòòd²;öí;xP׳>†a†™={Ú´)S\\jÖ¬UkëÖ]»öî6Ì××ÇgàÀ¾}{öäñx<O¡((((P«ÕjµÚã~ý :vìܹkW77OÏO-ÂÀÀѱgÏŽ¯_—Ét://KK H2=ÝÛ»R¥²ei:?ÿÉ“°°ôtsó^½þ>šÃ10(SÆÝ½lÙâ‰äåË]»¢£e²æÍÙÙ¢¢nܨSÇÛ»C±X Ðéš4Ù´©S'ÿ¼¼qãFîÕ«]»Úµ­¬x¼Òþrü:8¡¡:9¹¹µk÷µƒO:~üèÑíÛ·l :pàøñS§LMMMÍÌÞï™šš’’œÌíÓ§[·N†5j̘nÝzöìÝûÇ,E«õòêÑãðá}ûîÝ[© ž7¯rå1c–-Óé23Ož2¤W¯}ûöî½~ýÔ©OÏ”’²sg‡C†„†öíËÎöìY^ž@àåemýn’™¢òò>¦iš¦éAƒúôéÙóÌ™ ._~¿g™2eË::²{œ‡9rÔ¨™zf …––é釅‡¿zU½ºR™™Ù±£ŸAgfV§N£FRéÊ•l¥æwÓÈ$™šqáÃ4kæí]¶¬­m›6={ZZnß^<[·nU«º¹±½)*'çÖ->ßÒ²aC>ßÌÌÕµwï¹sgÌ8p ?Ÿ$ÝÜLL>´JKFFZZJJnnNNzzýúM›¶o/‰DbqiÇߢ¨H£Q«óòd²ÌÌ„„¸¸˜˜5j×þôÝóPz¾+ÍêÑ£wï¾}†¦i:77'';ÛÂÂÒÒÊJ¿Û>thÿþ}û~,IýýºvµµÍÎÞµkåÊM›š53fݺâ#Ba¹r½zM˜àéyãFVI6onm-°Ç23#"V­:zôÍ›±c›5#‚llZ·îÚÕÖ6(ˆmðà;wíbû3LaáÓ§ùùææ š˜p¹AÓEE99uꘛÏ ¿‚‚‚ü|6õìéÙ¨Q»v$I’R©PÈå¥| .—Çãñ,-­¬ìí-,¬¬ìí³²22’“%‰Äظ´£€¿û®Œˆ¸x‘}Àà–-;wîÙ3jÔСƒ-X°té²e-[¶nݦMi/¾Î¯\‚ãèÑ3g.\`_÷îÝ¥KÛ¶úGŸ_,‹¿æ¾m67ò~VäcœœªT©^}ýêU|üóç?}]?v:6Ålddlll<|ø Aýû¯[´mûPÁŸ½(]ì[˜þ›×Ï{SÓO= I’¤V+‰Å††rynni_!€½{·n]¼èáѰa›6ú¯K;.€Ÿ…ýé/.îÙ³û÷K;€oÁáp8ŽXlhhdT­Znnl˧G}InäWðƒÐ,6ݼcÇÞ½V¯^£FÍš¥½Løç¼Ÿ†þÙ¾ä·| Ã0 SÚ×àŸ£ÿÿ>üþ lmííK; €o§V«T……\.—Ëã1 ÃÐôÇz~Oê™Íذٛ&‡ó™tFÆÛ·©©;vlÞ¼qã¬Y‹~ùÔß–zNJzý:!A$‰ lmÊ”ùy‹€ëŸ ûr Ã0ìCHþôÿ߇ÿÀj@ÿÃètE’¥Ç÷™4›þÚÔó÷(W®bÅÊ•Kû²À·ÓOCÿ3gü’jGØùÿ5Ø ÿ5ýõêÕ³g¥À·` nH¥&&ææŸÞûÌbs ß¶ºj@ Pø³Oÿ^:M3 Çå~®ö¾Ÿýö%oµ|¾@ j4jµRÉãñx|>Eýž¿KÐçêêáѼ9›tÖ]Úqü,B¡P(Õ©ãæÖ¤IiÇðíØ±}Išõ=iè'9ùÍ›/hÚÐÐÆ¦´ƒ€_M+iiffff––¥Ë×Q( äòÄÄׯ_¼ðôlÔ¨];…"??'§´ã€C§c‹PIJ$‰TZÚÀßqòòrs3222ÒÓSSMLÌ̬¬„B¡P(üÚÝŽð;Q©4­¶¨H­.(‹ÅbCCCÃÒŽë[dd¼}›””••–V¹²³sÍš¸óàß‹$IR«U* ÒÓß¾MJªY³nÝ J;.ø°ÿ% Ù¿ºZ­R±·¨3 MÙfoøý…ì£@Åb‰„Ïçó‚ÒŽè{) E~þë×ññOŸ’$I•vDð-ØME‰‘‘TjgW¦LùòØû ð+û_º´Ãøu%$ÄÅÅÆ’¤V«V™˜”+W¡‚³siÇð«ã—v¿:±X"‘H*Urv®U‹ahôø2Ø ð CŸÏçóù4MÓ4Í04­Ó•v\¿:nið«“Ëe²¬,Š¢(Šâr¹\.þ ðE°~ŠÿÕ€‰ $¡P$‰¸\.—Ç+íÀàß„¦iZ§+,,(ÈËc†aŽR©Päç …"‘Ai‡¿­¶¨H£áóxŸÏ>F¥´C€ß›yæ³Ïôf$ ~ýXX(—+•……66¶¶ŽŽff––ÖÖææ66_>[nnvvzº\.“åädffd$'K$FFR©‘‘‘‘©i¥JÎÎ5k~l,G©,,ÌÏ?sfëÖ€€åËW­:~üí[.×Ù91ñåËðð¿wW«Ÿ>]¸°}ûnÝö裡#GîÝ»vÍÕÕÔ5£JEQIÆÆ>ztë–ƒCùòeÊ”+çäô~O¶.sJJbb|¼‘‘Tjnnlll,•r8‡óþœ99YYiiŽŽ•+¿ß‡•œüæM\\ffzzJJ¥JÎεkK¥R©‰ {”Ï04MÓ;÷éÓ½ûÁƒÁÁ×®•)ÃᤦÊåEÓ&&\nñD:]nîÍ›;vÄÇÛÙI¥ÆÆ S·®TÊá°3”öEÖ§Ói4*ÈD††|þ‡. Àï᯿âãccmmííË•sp([¶R%6g{õêÕ«‘‘ï÷oÞ¼yó–-Ÿ?‰¹wÏ/_¾jU±X,~÷ìœÕ«×¬éáQœ¸f†y¶²eË•srbϘžž’ò×_ÆÆÕªÕ©ÃÕ«þLÓ!•/߯ߘ1"щ©©ÍàÁeË …ŧ<~üôéŠtu5+:Z¿r´V›š¶qãéÓ¯^)qq/^p¹íÚÍ›7gN‡ff ǯX±qcLŒD"¥¦>{&•úû¯];sfݺÁĉsç99ÙØ0LròƒÏŸîܹqcB©SkÖ¬Ysî\~¾©)EýõWn®‡Çܹ«VS«–Lvöì¢Eþyå ‡ãì\©’X—”¤Õ*•¦¦ƒ­X1oÞ;K–ðùŽŽ&&lT3flذe‹PÈ0 Õ… ™™††ìyÙ¨fÍru56.ío€ÏÓj5µÚήZµòåiZ§Óé>ÝŸíST¤Ñ(•ry^^v6Ÿ/ØÚòx<———››ÍÎÉö¼~ýÆkר±M›6iÒ¬ûšmg[ØÄwLÌÇ7n$E‘$;_§£(Š"ŠÒéØüµ¥eÛ¶AA³g7oÞ¿¿@²woß¾öö sæLƒ‹-ïÝ{ú4Ã0 ;–¢23OŸîÝ»K— š70 [7cc[[¡ðĉٳGŽœ6­^½‘#çÍ <~<=½Aƒ#NžÜ¼yóf‡Ã!ÉÌÌð𘘼<¡°E‹Ž;tèßøpš¦(Î̬n]_ßå˽½íì^¾¿ys±øåË-[‚ƒŸ?ïØÑß¿°°o_'§† 9œÔTýþ CÓMV–FÃãÙÛçï?v,{düøiÓŠCX³fݺôô+6nŸÏ/ÎþˆÅÉûsê§žYl‹~vNýÙþ÷ÇéÓ»v'$dgÿõצM[·:´gO@À‘# ¶c‡‡ÇŸªÕýqúôéÓ·n忦¥=~œŸ¯ÓÕ©ceÕ¡ÃþýGRTÇŽ>>£GW¨`ccaáâÒ»÷äÉ#GV«–:gμy/^˜˜Ô®]¶,Ãxzúù­Z5eJõêBa|ü¨Q³gŸ6';[~~~¾LÆÎ©?Ï¿x4°Ø"EEEEEEéé©©¯_«ÕjuaaQ‘Z­V›šZXX[K$‰‰‰Tjffañ±Ô³>F£Ñh òò”Ê‚‚¼<¹\&ËΉÄb±X,6446fSÕ› h€ßJQQQ‘VËîP¦(Š¢(¡P(‰ø|>Ÿ÷?_>[ñÎiŠÒé´Z­¶¨ˆ}Ì —Ëåòx"‘HT\?ú}üÒ¾ð#}:)üµxz¾væq hø•ýo´BQP —gd¤¥%%©TJ¥BA’$©Õ–vxð㙘˜šZXØÚÚÛ;:K¥ff?ã,ÿK@'%½yóò¥µµƒƒ••••‡Ããq±?à7¤V«TJåëׯ^=njjnniY®\… ÎÎ?ö,œ{÷¢¢.\°¶®\ÙÝýÝCQQ}û¶l¹lÙĉ‘‘gϺ¹DLÌÅ‹û÷/_>oÞêÕ/_úùùûר´n]t´›ÛÔ©Ë—oÜ8jT‡Á0 ÅÇ ´jE’“&Ý»W#Iff^½ºiÓÒ¥ ‰³sQQFF||JŠTêí8~¼——~T‡GGŸ=«±NWPP|–yóV®|ôh̘ٳÇ×jsrž> ?y2#c÷î  &MæÏß¼9=½bE77++ÏÍmذ?þps31árI2-­iÓ^½–.íܹU«²eß¼Ù·oëÖáÃ#"^¾,_>6vÅŠñãgÎŒˆ¨[·sçfÍBC·m;v¬råI“/Ž‹[µjΜš5çÏß»·_?>ÿäÉ={òó›7Ÿ7¯ÿzõÒÒÎ[½:88?¿Y³ úô)_þüùI“ú÷Ÿ??4ôõk¡ÐܼjÕ6m&MÚ±cãÆáà ‚¢äòGNž\±bóæìlw÷?þèׯY3CÃ+WV¯Þ¼Y£éÚ•=ËÌ™³f:uøðóç±±Á½{+WN›¶hÑ¥KVVu긹ÙÛ·m;iÒÈ‘5jDE½|)‘tíêâ¢Tž>=xpïÞ—.íÞ}ô¨—û: 4tãÆZµ$’ÒþÖ€’PHQ …Xl` ýØ™9W¯^¼xüxùòµk·lùî!6ÕÛ¸ñ„ Õ«O›öçŸsçöïïåUZ—€¦•Êøøë×ϜٳgÁ‚ÀÀØØ+WbbÞM@ÿ{¨TOŸ®Yãë;i’¿ÿÁƒ>~ðà ²v­‘уOžìÙSÚÀ…‘—[TÄãq¹ΙÿñZÏRi£F‡ÇÄÜ¿_ÚË'‚àr%’*Uš7÷ñY²¤ysŸÒŽç{P”\såJB‡3q¢HdiéäT¿¾‹‹¹¹TJÓ¥ü·|[êÙÉ©J•êÕ_½Šþüc}8¡¡:9¹¹µkWÚË€š‰ ŸÿámÊÇ&ßoÿX€¯¦ŸtþXb è_ŽB‘•¥PPÔ?u>’ü¹g,žÿŸZü\Ÿ.»¡ï hö!„nn;ß½[PPÜJ’II›7·kW»vçΑŸófß¾®® ,\èãS»v^žNW2ƒ\~õêÍ›rù»cõg#š.*"‚ÐhâãW®ôòjÛvæÌ[·JŽæçß»7sfÆÍߣúPÌ £T>{öçŸ^^mÚLzéÒ߯ÄüZ©Ð3g|};wÞ½;9¹x‹»±±µµ±1Ÿÿís2 E_¯Ï¾ÿŒ_2?APTFÆû뀋÷SÏlËÇRÒßtäpJÊQ³¯¹\+«V­–,ñó[´(22'gÅŠÖ­--y<‡Ïô‹Wë%‚`­V&ãptºôô­[S©ÚµÛ¿¿^½âã\®‰IíÚC†têôâEa!AÔ©ó©È&?ÿþýU«Ž§¨þýOŸnÖìï‘Õªel\Ü[£y󿨱]».^|û6;ûÁƒ—/--‡ ›3çüù † ëÜÙß¿W/Šzó&66"B¥êÔiûö… ½¼ÌÍy<†Y²dâÄ ÌÍ«V51aǶjåâ¢Ó-[vâDnî!3gÖ¯玟߲e..MTÔúõÓ§?~œ—'“ED¤§·m»víºuÝ»¯\yûv||åÊ;v¬Y£Õº¸térãÆ®]sçz{oÛ¶e‹‹ËµkK–ܾÍåV«ÆFr÷îŋׯ¯^ù葹9—«RÅÅíØŸž~ÿ~zºX,•¶l¼iÓðáúWgáÂñãçͳ²ªZÕÀ .îܹ;wFŽ<¸ví?ÿܹ3.ÎÛ{ëÖ0à?Øø™>ýرÇ?¾_­NH8thÅŠ ^¾”É?64800°wošÞ»7&¦Q£E‹tpP«cbŽY¼øñãFfÍjØðÞ½•+,ع3.nÔ¨.]ô×ۯ߂Ó¦‰DÿÐß ø‡ý°|¾…E«VÑÑ3f̘™“£Ó½Ÿnf…„ìØ±qã¶mAAëׯ[7kÖ˜1%—?}WTdfæêji)ê÷ --ÝÝ_¼ÈÏÿ\‘N¡xõ*#ƒ¢Œ+U26‚ F­~ó&22,ìôé“'CC#"ž>U(4šääƒýý7m=ú?&Nœ2Åß_*=yrÆŒC‡$¹<9ùÉ+«®]GŽœ5kÝ:æÌ™?ÿ¼z5+K§#’LNæñFŒ˜6M¬Ï A††99/^„…½yãââçW¥ŠXLÓOžœ#A˜šêÇ?vì¦M[¶°cwí;vÓ&vv,M§¥‘¤“SûöÞÞE C<žTZ«VÇŽ;S‡#W®Ü¦Mñüùøôì©¿^¤ž~oß™€f†)ùŒÇ»zõòåÁƒ¯_ïÔ©nÝ‘#OJOL§NÆùù9f̸q&¬XqäŸojZ£†³³\þèQNλÅ´ÚœœèèjÕLL>W$‚Ï·µmݺgO+«×¯7n¼z53“ ‚Ë+ThÙ²ukW׬,KKOÏ5Ä✜˗ON64dÇÖ¬¹bÅ¥K‘‘lÒÛÕÕÙY*åñ‚ ¤RO«•ËIR§£¨ÌÌË—ÝÝmm ôÇV¬(q¹!XY5hбc›6eËŠÅ\.—k``cãàÀ0/^h4!r¹AÓ:Ý»WïÃ8G?>_*uvf#ár-,š62¥woCà V¯>r¤L™!C-jÚÔ‚ûÎW–¢²³£¢ÜÜŠcær¥R9s$.÷ï¿$(‰¿I“FÜÜØ±aaééFFì ìØÀÀ‰k×þÐ ÿû¾ÇàW¡xEétú…™ßõ hý´)ÃPM3 M“$M³%34˜:uíÚŽ–.;÷ãcÿW($‰¤zõ?þèÙS,>~ÏžG⻇wï qv62ú|l£c·n³g·j•™¹lÙ’%?;M³¯ø|3³:ujÖ‰RRŠ/Ã(•¯^9öés°cŽÎÍÕ›žN’êOQyyDF¾y#‘EE™™ EÑ´VËŽfŠR©HòóÉè¿£é‚‚ØØ3g®^U*Ç <|xÃÿºuŒ¸ûºòùææ®®‡GEeeï#'É·oóòŠ¯È§Öknîêêînh˜œÌÎÀŽˆØ¼ùîݼ<†áñRS ŠçÕhÒÓïÞýø|úëÕhÏcwƒSAè¿f¿€Ò§V«Õ……©©‰‰/_ÆÇ?]X˜Ÿ/—3̇·Û~EZ§+(ˆ‰¹t)44*J&S*ÓÒöîݳg÷îää¼¼ÄÄÇfS·\®±±‡ÇÌ™+WöëWœ4.{îÜÍ›¡¡ÇŽ>}ëVn®~ÂÖÀ J•ñã˜1ÃÒòСíÛƒƒƒ‚6mZ²dîÜ“'­­,‹¿,J.×̬yó+\´¨|ùùóW¯Þ²%8xçÎû÷mlØÂIíÚÓ¦­Yãë;lبQþþ3gNŸ¾xñ… ††NN™™Jenî½{áá×®¥§+•2™~Kf¦@P»6E­ZÕ¯ŸþØÔÔK—ÂÂ22”ÊœœÛ·Ïž-NdóùÖÖ^^Ç7n¬T®Ysôè«WIzúáÃ+VìÜÙ¡C*ÕþýS¦Ìœ¹cGDÄóç™™*•Löøñ±±·oŸ?¦ɃçÏŸ?϶dgs866•+;8ÈååËÛÚZZV©R½zãÆ~~Û·ÇŽ{]ÄâjÕ ‚‚úö2däHÿY³,ؽ;=ýòåðpý3êÇÿà\NQìØ Ö­>œ«P´iS«–©©±qÕªçÏÒ§ÏäÉ ®^}èÐíÛw;wõê¹sÅók4eËê¯W¥ÊÏüøÈ‘ààcÇRS‹ŠBÿµNWPðø1û~99))|¾@ –)S¶l¥JYY™™))\.—ËÖpx'""4ôàA''7·víJ;xø:•–vð`÷îíÛïÙsöì“'.¨Õ/^ÌÛ¹óÈ‘4qãÆâÅ¥#üêLLøüw #Ltô;‘‘¶¶ööŽŽB¡@ %''%½zåáѰ¡—MÓô»5ø_2)üšø|›ví¦MëÓ'$dûöààuërsãâtº!C6ož1£´£€ÿ:$ ÿÕx~Ý:Ÿ%Kd²… /\Xº´aC‚ éüü{÷fÏnß^«•HnÝjÑ¢Koï­[×­{öìýXiZ&»vmúô¹s¯_ïÙ344,¬];.<|ٲׯ5†!##çc+åp>~L—kiéí]»ö·_t†¡(†¦y<ïËÎ ðoó %8ôµìk.×ʪmÛ-[>ìÒÅÓsĈˆˆœŽ ¸\@ àrß²cÇÆÛ¶­_¿vm@@ß¾õöíÑ£“&íß/ÍœРÁÿ‡Ç51qwX¸ðÔ©·o?Wö‚Ë55­_âÄŒŒ-rwwtܼùþýòåǯ_ßÒ’ËÕh^¼˜??6¶x³J;cF\œFóî< “Ÿåï_¯ž»û¢EÏŸ«Õ÷ïÏœ9sæ½{ùù Cùù7oîÜ™œ¬Õ²¯ûö­V­Z5Ž ‚¢RSwîìСFV­h:;;$¤OW×¶mCC³²hº[7WWoïóçóò„B¤žà÷öCBÈãýùg‹M:cFhh:Ë–YXÿoçèÔiØ0??OO©”¢òó<øxiŒ_šªårk×?þرk×zö¼{×Û»iÓ6mNºuëðáãÇýü›7/S¦jU¶·X\¦L«VËdåìldTr6“Úµ‡mܘa¦M;{6%E(41éÝÛÏÏÄ„Ã!ˆ‚‚¿§à…BKKm16®RE*åñ´Z†¡i­V«¥éâ~M“¤NGÓ_²j€³ï|!ü›HmÐ`öìuëZ¶|útöìY³BBÒÓ?5šÏ71©[wôh>ßÔ´F gg¹üÑ£œ­V¿—V›“sÿ~µj&&üϤËiZ©|ó&>>?_§30pp¨_ÿèÑ­[Û´Q©ÂÂ6mzõJ©üòT¶‘Q•*C†4iBQ/†„tìèä$‘|ÉÈ’â<ž••—×Ì™}ûnÙ2þ²eƶhaeUœ®ø]}Åh®  &æÒ¥sçnޔɔʴ´½{wïÞ¾=1Q&{ýzß¾ƒÃÂ<=GêÐaÑ¢[·¢¢>\° U+’$ˆž=‹Ç†„ܸqû¶­­N×µkÇŽ ZX…!‘¸º®ZuãÆÉ“W¯nÚ4uêö퉳sQQFF||JŠTêí8~>µkçåét%3ÈåW¯Þ¼)—¿;V6‚ é¢"‚ &>~åJ/¯¶mgμu«äh~þ½{3g6l¨Ñü=ªÅýn„?‹³sÇŽ;(•J%EÃ[[O]g†¡¨âu–|î߯QÃ×wΜààË—Oœ7ÎÙY*åó¹\cc—Ž;u20P*UªŸ·Røozö,&æÞ=;;‡ŠëÔ©W¯iS† Û´qwoРukw÷ ZµªWÏÓ³E WWw÷fÍj×vumÒ$6öÑ£Û· Š‚‚oH—r8λ¯¹\+«V­–,ñó[´(22'gÅŠÖ­--y<‡ÏJz¿;– ‚a´Z™ŒÃÑéÒÓ·n=vL¥j×nÿþzõŠs¹&&µkÒ©Ó‹……Q§Î×Føw ÅÇ›6ÍŸ¿yóÛ·+Ö«gi)¸»>|x½zR)—KQ¹¹C‡NŸ¾}{½zbñ½{éémÛž>½}ûÈ‘EEIIǯ\x÷®±±±q\\|¼JEmÚ0ŒJåëÛ¾ý€ÞÞÛ¶mÙââríÚ’%·os¹ÕªQÔ›7±±wï^¼xýúêÕ‘‘™›s¹*U\ÜŽááññéé÷ï§§ˆÅRiË–ÁÁ›6 N$™™±gϱc7nääܺEõë÷èÑ Aaá®]11 ÎÛ§±ñ»WS£y󿨱U«Ö¯þ\§S*ÓÓ--GŒX¾|Ô(ww.ö»À«TÉÙ¹V-†a7k4ßKQE’$©PÈåvvåÊed¤§'&þ°”$ŸoaѪUtôŒ3fDFæäètK‡„ìØ±qã¶mAAëׯ[7kÖ˜1%—?}WTdfæêji)ê÷ --ÝÝ_¼ÈÏÿå-6n?~ï^cãqãfÏ;vÔ¨I“Ž™0aÕªW¯4‚ é‚‚'O ˜1# `ìØÉ“ýü„Âû÷ ’LLÜ¿ôè•+óó‡ ™3ÇßÚ´Ñ£+V‹ ‚ 8CC’LKKOW*ÆÈ¨FNºu{òÄʪkב#gÍZ·nûöüý¯^ÍÊÒéh:'çòå¹sƒ‚üý§LñõU*Ÿ=+(èÖmþü¡C‹#llZ·4¨W¯&M† ?~èÐöí+V¬V­M›¶m•JŽaÞ]I&'<èï¿i7bÄ´iS¦øûK¥'ON›¶m[b¢Vû£¾Òðß`ffffmMQ$ù5ùE‰ÄÈH*U* …â;Ð £Ÿåñ®^½|yðàë×;uª[wäÈS§ÒÓßÓ©Ó°a~~#GŽ3nÜ„ +V9Â盚֨áìl` —?z”“óîb´ÚœœèèjÕLL¾§¼A0ŒN§Ñܺ¥PXZ¶hQ¦ ›:&ss…âÆÇe2Šâr ll.]ºu+1Q£!¡Ë%𦍬¬k×NzûÖ̬uëJ•Œ9>ߨ˜ÏÿØ^k‡Ãquuv–Jy<‚ >_*uv–ËIR§ãr-,š62¥woCà V¯>r¤L™!C-jÚÔÂâó»”?œÖ§¨ÌÌË—ON64tw·µ5004¬YsÅŠK—"#*V|7©ð9"‘XLÓ:~éåÏ¡$I²¨èÐúIg†¡(šfš&IšfKf4h0uêÚµ;&$,]:wîÇDz¸\¡ $’êÕÿø£gO±øüù={=*>ÊîHÞ½;$ÄÙÙÈè[",¦Óef^¼¸paýúÆÆ99×®¥¦ªÕ쑼>,ìÞ½ððk×ÒÓ•J™ìÁƒóçÏŸg[²³9›Ê•äòòåmm--«T©^½qc?¿íÛãâŠWCQrù£Gááaawî„„„…=x “åå½x®–ÌL¥2773S ¨]{Ú´5k|})jÕª~ýfΜ>}ñâ ŒÝÝ-,4šÇSS‹ŠØ«ôøñ‘#ÁÁÇŽé¿fü(œˆˆÐЃœÜÜÚµ+í`þ+(*-íàÁîÝÛ·ß³çìÙ'O.\P«_¼˜;·sç‘#i:"âÆÅ‹K;Fø¯01áó?TåÙÔÔÜÜÆF©T(är†a†¡iš¦iö5AMë·£iîñãnÞü®ªÊðmø|›ví¦MëÓ'$dûöààuërsãâtº!C6ož1£´£ ‚(*ÒhÔj.—Çãñt:Šú²"¾$I’Z­@ ŠDH@— ÏܼQ£™3jÔ¨´cø¼<™,3ÓÒÒÊÊÞþËÐ…… E~¾D"‘óCïàgQ(²²Šî€$ùsÏX<ÿ?µø1 äòÜÜ;wnÞ<>77''#ãc=Ù]Ïyy2Yv6[‚£regçZµøŸš<*ªoßÆÇ¯V- àÏ?gÏîÒÅÚ:<|ÏžåËçÏ_·..nܸ©S[´Ø¾}É’;ÒÒ,,ú÷õêáà hZ©|õêÒ¥½{—.=s† úô™>½kW“›7wíZ¾üÙ3c㜜 iZ­NOöì?fÏ^¿žÃ!ɬ¬ë׃‚þü3>ÞÐÐÉI£IOõ*-ÍÔ´sçÅ‹‡ sp¸víäÉ]»,X±âÙ³«WcbΞýPä:\þäÉ‘#6ܾ]Xhcc`ÀáhµùùIIOžx{Ïž\©’AiñXjurò¥KoÞH¥-ZT¯njÊãùùõê5yò¤IaaÛ¶Õ®-‘ü̳ÓtNÎ… ~~½z=û3Ψ?ÿž=×®mÛöþzö€ocmmk[¦Œ¡¡‘‘Tš™™––œüêÕË—¿ßS D"‰ÄØØØ¸rå*UjÕbÛ?[‚C(´·o×®K—Ö­y<©” Ú´éܹqã ¶oW(|}ûôéÒ%4tË–›7[µªZõúõ¼<Ž ÌÌ$'§6múõ4ÈÐ š7/[ÖÔ” zöìß¿M›ŠÍÌFŒðô”J ‚ hº¨ˆ B£‰_·ÎÇgÉ™lá –.mØ h:?ÿÞ½Ù³Û·×j%’[·Z´èÒÅÛ{ëÖuëž=ûP´ £T>{¶|yÏžyyÓ§_¼¸|¹—WÉј˜ÂB‚ ˆ_%}ñâ¬Yë×çå-YÒ´)›eµß3'ÃP”FÃáðùŸ[%—kiéí½gϵkÞÞ?cuïÎOQï¯÷ç][ø~FFFFR©‘Q•*5j|íØo(ÁÁáp8ï¾ær­¬Ú¶Ý²åáÃ.]<=GŒˆˆÈÉÑé‚Ë.÷ݱ!!;vlܸm[PÐúõk×ôíKQoß=:iÒþý"ÑÌ™ üx\w÷€€… OzûösE"(*5õàÁ€€Ã‡Åâ¹sgÎdSÏ £V¿yvæÌÅ‹))wî<}ªPh4II;wz{7kÆŽU©bc¼¼Z¶\±¢oßjÕªUóó+^AtèP£F«V'O¦§ëtA’IIÏŸ«Õúc_¿Îξq£oßêÕ«V1bóæsçRRÔjš¦i™,2ròä®]GŒ ¹üʕ޽k×nÖlÏž”’}:{ö¬Y!!ééŸÍ盘ԭ;z4ŸojZ£†³³\þèQNNÉ^Z‚ ­6'çþýjÕLLøŸI—s¹&&5jtè`e•-“ápx<33++{{SS‘ˆ H2?_«åómlFŽ3ÆÏoôèyóNŠŽŽ‰9x°dÔ‡×L’ùù^^C†Œ«?ÖÍÍȨ¤—þX•êÙ³Õ«»wo×®gO_ßÎmmE¢¯»Îú³•¤ty<++/¯™3ûö54ܰaÕªƒ† lÑÂÊêÝÒ CÓ$©Pä—î=.9#;–¦uº/áKëðûûŠÐ:]AALÌ¥KçÎݼ)“)•ii{÷îÞ½}{b¢Löúõ¾}†…yzŽաâE·nEE=|¸`A«V$I={ ¹qãöm[[®k׎6´° B"qu]µêÆ“'¯^Ý´iêÔíÛ%g碢ŒŒøø”©ÔÛ;0püx‚ ˆ‚‚OÅ(”/?tè¥K¶oéÒ¦Mó焃ƒ……¡!I¦¦Þ½Û¡ÃÌ™£FñùeÊ ´PPvöàÁ£FùûÛÛ›˜ÙÛ{y š™©TææÞ»~íZûöýû׫§ßÒ±ãàÁƒ>Ü©S›6ûöU¨Pµ*;¶[7WW.7#C©Ìɹ}ûìÙ°°¡Cýüºv%À̬bE‚ظqß¾›7-,D¢·o÷î ܹsèP—‚‚  ñãgÌ`˜1c† ËÌT©d²Ço܈½}›Ï »w/?_¥b#IK;þüy¶¥cÇ>}Ê—öìÕ«·o׬ }ýZ(47OMe±xÇŽ‡wvþß—™ïàпÿéÓmÚ´lyèPùò5k::Z[ÛÚöï_·®F£Fýøk×0ÀÛ»^=‡þýÎÎèß¿e˨(Ö­ëÕ2dÒ¤nÝ*Tpq nÕªGgÏ:ujÑ¢F²eE¢»w‹Š²²*V”J=bç×h Ê–íСd½}ûnÙÒ¤ÉôéséR@@hèÆ+VtìèçǾvqQ*OŸ~öL"éÚµV­Ÿû0FøZNNUªT¯þêU|üóçëɈ =xÐÉÉÍ­]»wDEõíÛ¸ñ„ Õ«O›öçŸsçöï_ò@¿M+•ññׯŸ9³gÏ‚±±W®ÄÄœ=[ZñüTª§O׬ñõ4ÉßÿàÁƒŸ??xð?† Y»ÖÈèÁƒ'Oöì)íàWgbÂç¿[—âÓØÔ3ûúÓ èO쀖J5:|8&æþýÒ^>A—+‘T©Ò¼¹Ï’%Í›ûø”v<¿Š’Ëcb®\IHàp&N‰,-œê×wq17—Jñ˜?øÑôSÏú-KCb4üþ¾|ôûéæOï†þŠÐð_ö~ŠùÓ%8¸¥𯀦ŠgÏš>½k׆ Û¶ýü’¤¨ÒŽà×ö‰4ûB7·ÎïÞ-((n%ɤ¤Í›Ûµ«]»sg‚ÈÏ¿y³o_W× .ôñ©];/O§+™A.¿zõæM¹üݱú³MAh4ññ+Wzyµm;sæ­[%GóóïÝ›9³aCæïQ½1MËdƒ»»·kwî\VMSTzzXØ’%QQ99¯ŠÌ廸tìØ©“R©R}þ² üïØ;Î0¥Ñèt 󾂿¨oH£r8λ¯¹\+«V­–,ñó[´(22'gÅŠÖ­--y<‡ÏJz¿;– ‚a´Z™ŒÃÑéÒÓ·n=vL¥j×nÿþzõŠs¹&&µkÒ©Ó‹……Q§Î§"c­6/O.W(RS##ïÜIKóöîܹ]»©S­­9.— hzòä#fÏ®X±^=KËÜÜfÏ âê¥âÏœ™;·iÓY³öíS«ûôY»6$ÄÁ!4´K—³gííýý§L©R%.îíÛ&M&Ntq¹vmÉ’36mzú´CoïªUïÞ½xñúõ‚‚ÆW¬8yrñ↠ãâvìX¹ò¯¿Ê—W«SS=‹¥Ò–-çÌY³føpGG¡°´¿ ~†V‚ƒÏ·°hÕ*:zÆŒ3"#srtº÷Óͬ;6nܶ-(hýúuëfÍ3†¢äò§Oã⊊ÌÌ\]--ßMÉ …––îî/^äç®ìgmݾý‚£GW­åï_¿þ† gϾ|YTDAh4qqÆÆãÆÍž=vì¨Q“&M™2nœ‰É«WÅ»«‹uî{VPЭÛüùC‡"õ ¿·ïL@3Œ~ ïêÕË—¾~½S§ºuGŽoQ«ÍɉޮVÍÄäse/hZ­ÎÉ‹>|øîݤ¤ÔÔþý W®ôòª[·_¿»w“’_*uv–Jy<­–˵°hÚtʔ޽ ·n]°`Ù²2e† Y´¨iS .ªoÀoîÒ úIg†¡(šfš&IšfKf4h0uêÚµ;&$,]:wîÇÇþ/®PHIõêüѳ§X|þüž=¥é‚‚'Ovï qv62ú\d:]nîµkëÖíÞýü¹JÅ0!ÛÛÛÙ›™¹¸˜›Ûظº^»–šªV³ýÕê·o¯\©]ÛÜüC©m‰¤J•Áƒ5ÒjnÓ¦B‰äk¯MÄÆž9sõªR٥˄ “&mØàï_·®‘›~Öh‹“ßMbâ¹s\»¦ÿúï©q€¯H@ët11—.…†FEÉþ¯½ïŽªèþ¾wûnv“ÝdÓ{¥÷.½„¦(JQQÁÇ.( EPŠ" òØ{EéMé]-”ôžì&ÛûÝûþqžyïìÞݰ!AŸçùÍ÷ó1^fïzæÌ™sΜ©·Z++¿ýö›o¾þº´´¡¡¸øÇüqÇŠ‚+ýzö\°à­·|)Ñ·¿ýväÈöí6lÙrì˜^ïvs¹Ëd99/¾¸~ýüùZí?|þùgŸ}øá,_¾hÑæÍ11¯½†¼–ƒP¨ÑtêÔ¡ÃõëË—/X°téÚµkÖ|ò‰ÛýØcï¿?cFf¦ZݺµÁðÎ;¯¿þþûüöÛ«Wÿë_z}NŽHd0üùç®];vÔÔX­z}M ø`+99>8hM§¦‚úÙë5›¯^Ý»w×®óç¾xñøñ;ÑWUUVk}ýÙ³;wîÜ )uu4›••˜h0¬Y3p`||NNÛ¶ýúM›öùç×®Y­FãùóååN'ôÏùó?ýôÙg6àÏð+Á~þyëÖÝ»ù)üt½wïöíߟݽûÈ‘wåÿ×àñTV~ÿý¸q£F}óÍsÏíß¿sçÀuuK–Ü{ïSOy½ï½·wï²e­[Ëdw= þ/#"B$ò Œ ÁÍ&Üw߈ütá£>üðý÷GE%$deýÝÍü_ƒ@ P$&¦¤ ~òɶmׯ—–^¼èr øê«óç˜ ‘º¦‘€€€€€€€€€€€€€€€€€€€à¯ƒL&0L(o¶k׺uVÖåË×®@J0Õ3@J¦· ¡02²oß ~ø¡oß¿».-P:ó†Æ!ˆˆP«£¢þî ü=°ÙŽÐBpàhÜ÷ ˆ‹KHHIù»H@@@@@@@@@@@@@@@@@@@@ð÷Àé´ÛM¦;‘³H¥ ×hª««ª #"4šèh‰D"‘H„B€Ä'& ø_x=ƒêY.—ËŠ;Q ÝР×WWÿÝ% ø_ƒàï®Áÿ&ˆš€€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  €€€€€€€€€€€€€€€€€€€€àŽ€(  îD[¶üúëÎw5þSÑü|ŒF£Ñhü»[ÓÂÂÂÂÂÂD"‘H$ºs-@¥R©TªÛËßëõz½^³Ùl6›ïtŸ@=¡ÎÍÉêlµZ­V+<·T …B¡P(T*•J¥òör`†a‹Åb±XZ¶÷Äb±X,V( …¢ù¹9N§Óép8GËÖ“€€€€€€€ððððððæä`·Ûív»Ûív»ÝwkZ‰D"‘Èd2™LÖüÜþ÷ú‡€€€€€€ tˆ”J¹\.oü%§Óåb˜Ý»Oœ(-­¬¬«³ZM&›Ííhš¢Tª°0‰$11:Z©ÌÍíÕ+)I*‹…¿»i·ƒ°°[ÓCã`Y¯×ëe˜ææs§!—K¥R©X,‘H$Íɇa\.—+د Ì »}Á¦^o`aeY–eO ýMh‹TªP(òà¾k<¡P Ôj•J¥b}pë|@åêñx<O þdY–…¿¡ôMÓ4MóSÄâÀJvø6ZÁŒxž4 #ì_Jã¥7žâõ²,ËÂX„Ÿƒ(ú½eÍÿ«à¨™¦ÁØÃè êj¾áŠà8mà u€P8u…»¸tÁ`ÀsmN­hjª”òŸhQó{ÐT)îï…¤“ ÉÊH:šº2Þ €È`0 †þý 0 ®®®®®Ž¿+ wî+|÷x{¥ÜÞ·Í)«¥røO++<üöƒi'ðßù©Mdddä¶m[·nݪV«Õj58{µl»ŠŠŠ‹‹‹…B‘H$ŠŽŽŽŽŽ>o±˜Íf³F£V«Õw¬SCMÇÄhµii …L&•RM³liiyù^/ËÞùÝ}CƒÁ`0À_±X"‹ÓÓÓÓÓÓår™L. …BÀj5›-–ÐMËA}?Aé|îܵkuuÇçåUW K E›ÉdµºÝµµVëeeC¿~:ÅÇwꔓ£ÕJ$"Yzÿoá¯c¸ÿ=Ü'¡(‹AÉW âïÜŠ­ßú}H¡˜;¨Vñ_ñ¯}Óo3ÿ`4Ÿ…Aÿ¨†êÆ-¸4ÿ~ç”Å4MÓЗ.g6à‹÷ÿW¨'žü‹?Ö4íßêéÿÔ ñ`‚?W7CÂ&Òn57ÿ;6„- DÉ@Õ°âæ>®ÖÁ7Õð ªxÑ-P „®þ/h¨( ú`›mœw!• ×ëõz¥ z­\.aÑ[ ¥”ø|sÐЋMÿ4¸ah øPY nM]ÿ%ÞimSÕÍ·W þ %%--- öD^ µµÕÕÕÕÿ9ŠæÛËÇë¥(—Ëã¡(‡ƒe)Êë )J.(J"¡é–\-¯a㺈[µÎ—ÝRun"‘ÅR[{æÌÙ³gÏZ,V«ÕÚ±cÇŽ;jµZ­Vëõz<Ïߥ€–Ë%©466>>2R*U*ãã5…B*•H¤R±8==;;-íòåK—òòjkkk«ªZ¶tX媫kjjj²²ÚµëÚµm[•J©¤(©T.W«Uª°°°0©T,–ËÅb¡ðܹӧOžT(T*• VB»ýúõk×<žØØ¸¸=l˜¿ùfûöüüÊJÎfF(Õmh0™œÎíÛ).¾x±  ¾~êÔ{îiÕê¯6‚¿ý]ÿÓÐRµk¼¥è×ÀïàêMä%Á±hHÁóÇE^_…¬>ÍIaH*•Éd2\½ë[CHÁÕ©ÁRüËâÏØV0…5¤€p„¯²>p žl ÀJã¾@àý¶ ©Î}Ëâ—jŠÙl2™L°‘Æsæ—…·6šþTí;¿ûŠÏiù9øæìõz½P7ríZ~~~¾Ñh0 |ú&+c°7o²2^ƒõoS¸_8?}œþ¿¬&-õ~SëJÏÀW»wïÝ»wo°wFŒÈÍÍÍmj+n¯†oJ>·*—¢¼ÞÊJ©tûvƒA"9{Öé¤iN«u8T«=žnÝÄbŠR*½^Šb¸ EI¥R)ËFE5u,€G[‘}×2.Ÿ{ê=Ô:”îŠw{T¨-&SuuJŠÍöÙg …BÑ£´œjjª«««!Xk}}}}}=„¢‚”æ—Þ8ÂÂÄb¹¼U«ŒŒØXŠ’HXÖj¼^‘H"‰$©T$R*#"ŠÞ½ûöíÓçĉ#Gޝ©©­­¬l~é2YXXX˜Íf³Ùl))ii©©f³ÅbµÆÆjµjõž= OZø\ÑÑR©Û§TÖ×÷ë7hP¿~%%••{÷îÙ³cGûö[¶üò‹Á0bÄÝw{<©©©©?Œ£÷4¬ªÒëíö(*2û;$‰D,þã /W*e2 `e¯¿þõ×§OÿöÛ¾}gμûîO?ååM˜0thzzTTDDht:G*u:].ôAÓÈÍq cïþÍÙ¥éÂÔ‹‹S©ÄbŠòzƒ[à ŠŠŠŠ[f åå™™ééééxúñã'Ož< 1š[*Î,¸8ŽêSQQQ1tèàÁƒãéû÷®Fùøo«ð1ÅÛ‚o‚)ÍñºOÁëÌ÷%ÁË—P³·È|pÐ&OY–eAåÊý`Ëd …“ÿ&,œÐü ü}î9X¼ï`þïø÷ €~ÏIIIIIIõõz½^[VVVV^.•ÊåJettTTDN ¡,ë·â†-É/ï$ç ¼‚´l-Ÿ_cæ®Ð[ÞØ¯JeXXXXyyyyy9nŒOffVVVÄ'-X>……uuÇ—_>\[+—+ HÑÑ2™Û=|x‡‘‘ÑÑH*ø+é*´o7×–¦+ßÚRâw¨5lYº’J£¢¢¢ nÞ¼y—7€w¥¦¦¥¥¥uñyn€#“¡×0##---íV›‡¿“w5¾ÝÅ×þ/-Q[ahk?e«{ãù´ÄºCQŸÔ%ÂÔåtº\.W»víÛ·oïÄ€ËS ò×ÜÀÊ7N>á¶Æø&(÷Úµëׯ_ÏÌÌÈÈÈˆŠŠŒŒŒlÜÑx?‡2v·úÖ_AÙøWü@ͬù¹5¡—‹ËÌ’“ÓºuëÖ{÷îÞ½{·T*‘H$Ð30Ê¡¯Œ€Ë—#"²²ÊÊXíæîºËí.-U©ìvƒ³©+ch³²ñïD߉+0‚­Œ·7ãp~Ôºu›6mÚDEiµZ-˜F»Ýn¯­­©©©¹qãÆ7`=E'&ñ`DÁêûœ ê¶kמ={ö¬^½zõêÕ“&Mš4iÒSO=ñÄOào:Í¡C‰Áз/M³,ê‡`ùw8¾LÝ¡Ãõë……°Ÿ¥éÙ³gÏ^µ*X}Μ9thúô„„ØX• ´J‘‘.×Ù³ùù.׊·×F@I Eeeѵk\œP(Ðôñã×®Õ×GF*•bqrrt´BqãFE…ÅÒ¥KRMÏž=wî¼y‡Õj±€†gÕªÕ«W¯¾xñÂ… ø%‚×suµL¶sçàÁ:<ñ„ÍæñŒëtz<&“Ãáñ44X­NÇ0,«×ÛíO}½Ùìv×Ö.Wi©Íf6»Ý11n÷ A‘‘ Ó­›X̲·ºÿ8^0:Áõ?ׯ߸qã͈‹‹‹‹‹Ãµ°òšþ £ÑhlݺuëÖ­ƒñ+7†æfÒÒjjÖ¯OIÉÈØ»wÿþÊÊÁƒЉm6‘ˆaÜ¹zµ¾Þá0¬V—Ëf“HÄb`äÈÊʇ ¡9¥‡‚¶mããÛµ‹œÑ¬V·»²òôé¼<ƒ!%%1111;[&ËÎv»].§M›Ö­Û·//¯¨@øæàÆ‹ò.\€>ûí·ß~ûmŸM¦Ÿ~zçÝ»«ªªªÜn·Ûlž0aÜ8•êĉââK—Ün»Ýd2m¶ìì«WÇŽ:T£‰ŒLLdYNÛüo4üÏáp¹fçÎcÇÊÊW=ÃÀ?øà?þ1`@D„J%—ÃÁ¬ÚZ½Þl®­5™\®¢¢ÚZ‡C&ÓjSRêë/_.,Ü±ãØ±²2PC‹Å·ʱo_}=> @=äûo´0ø*—<dD‘sÁ«¡3LMMQQié A2YÏžmÛr €ê™‹ïúW© ¡\¾ø W£$%%&&&6ÿš”`P*ý¯ËƒëÚø¶hP…§¦¦¦¦¦FDpÇ ÿaI»5lüj;è™´4ÎÒ àáÛüXBr¹L&“áK>ÿÆE@ü—%Kvìxÿý´´îÝuºèh±9¡P"‘Hbc½Þìì°0–ŠR*Y622:še³²hš ÿ…ù K…¯?/?2ˆ·Ûår¹D"®‚)aùž#xëpë:W*‹ïIÄ?‹Êâ¾ÂÛ‚—ŠŸ2®êÅÓq ÇkØxÛ}S¸:ûz¡roùö’nv»Íf³ùÎ5º æßêÁ`·;l¶ùvw‰D*•HRRRR²²òóóó/_–É$ŠÒh""4±X*õ?.Ê·ä7>'üi 9ŠÅæo'†oÕ’Pò¿µÀ͇?‚w¢í¡ø©ñû(@EÀßàH‘J¥R©ÄF~Î.—Çò_|ñûï••^¯Bµwïûï?û,Ãx½e4ÚíÏŽ§Nÿøãž=gΨÕ¥Ó=ûì°a‰‰-MWðŽÿ9’–êáæÐU°žo,GÎOK ½¯ZªÕç ]©Táááá@Køú ¼Ë—º«\Á9`îÜyóæÍÃg–Çãõ²ìüùû÷WU½ðBÏžZmJŠZ-•¯o¾¹bÅŠíÛ·k×®]èíúkxW þÀ²,Ëw³…oðK}Ã̃5x/ápÿ•´yðÏ'˜rÿ7l}yE¡í+¾Âúö‰¿Qÿܹ?ÿüóOßàZ‡¯àx+t XQVVZZZ Æ’áÇ>¼_¿¾}ûömªº9Ø:¯y(#~+zV _ÑhÌü½ž—¼EÍEã¼±ñ> DÛþ9áîP‡Óét6¾2,‰D¥Ú·/<¼}û¬¬ØØÈÈà+õÉ’»š¿2ÞIÃÄÓÊØÔÙF™¦i:'§U«V­JJJKKK:tèÐ!ˆõ W¸§¤¤¦¦¦vêÔ¥K—.Û¶mÙ²e‹Íf·Ûí° óßÁîï Æ©‚ýºuë¶mÛ¶ÅÄÄÄÄÄ@ pl_úœN›-&fóæüüˆˆ;v,*zç<ÿ@ Y«õìÙkת«OŸnß~Ð ”[~~~~~~°ËÌìÐaéRpÖ>¯¬ÜµK(dY‰¤éÔàt2 MçåÕ×k4£GßuWdäúõû÷_¿.‘x{öÆ«W¯\¹råÊЃ͘ñ /½d·[­üù£ù«jïÞ½{÷鯕ƒS—Sc¾ó¡”uû\õö¼ ŠÄbî´¢+.X?Ÿ+¶n-/>|È>}î½wÀ€¶mëë­V‡aX–¢ìv§“aRScbžxb„Ü܃OŸ¾~Ýáp:kj$‘(¸ß\…Þ <;?‡@#Õ4Ü.…6&"ò·XèÙ_¡€ó™ÆËklÓݼպ9ÔåñpÐ8çF]€`æÃÅ‹¬ª:¾¢ÂbIJ ÷5ÝùçŒ÷p(ÔÅoK ¸_n•ÿ;Á·âkS(›þˆãQ¾õÁ×tü k` ñ]Íý×Ê`ܯ©h>ïB^É €õd^÷îÝ»wïî›?>ƒõEùR2üøÒ5×;ÖŽ@’ì¸÷™+üó Vï`<Ðס!XŸûs*ßš®Iè›ä¦òç`9V WË*—eY©%¤:ee¬¨P(bbvíÒhºuëÞ=2¹b*%+K©ìv¹\£ùᑨwïþ³¼|çÎ[µÿë?ÁgeàüBïç[Âí|õWú/ߪĖYcbbccc322333Á»¹®®¶¶¶6X/á+£¯“Ph­eÙöí;tèÐÁ`0FPöì±±±±±±W®\¾|ù2ü:lXnnn.¨§! H(g¬ƒñ`k"(³&Ož!8(/póùùÏ?oذaÃèÑ£F…ï#à׫W¯^½züŠÀäJꌌôôôtœŠÐEv\ñÍðèF®f¸äÀï«àJd~ Ô¿Òù…ÇdÇ *øÊ}Ê6¢ëKóÔ-Á¯[0ÓŸÆÐ Lu@E°ËÀÜ5λÐj{ô (ª¤D§khøê«¾}ccñ¹ùçŸ7o–”üë_ÕÕIX˜LþùçMß¾S¦ÔÕýñ?O (tŽ„£–#GŽ?uê·ß¶mÛ¼ft Y¸·É!·æŠü™Þ|4%§æ¯_-Ÿ3ìÓ7mÚ´iÓ¦#GŽ=z47wذaÃz÷îÙ³gOä^Ö8ï u=‚¯:tèÔ©S§Ý»wïÞ½¨.OKNNIIIéÞ½gÏž=ÑUó‰Drúô©S§Níß¿oß¾}?üÈ#<òçŸçÎ;Ç¿1¯!\_^سgÏž={6¼øðáÇ·iÓ¦M›6p¨ç%%;>ú¨Û]TôÈ#YY55÷ß¿fMlìäÉ“&ét+V$%1LJ ¿,†=?7×B)gÏž={öìÈ‘#FŒÑx‹﹇e¹”÷ß÷Ýwß…ÁF¿ªJ"iÓæ¾ûúõ‹ŽÞ¸q×®“'#"$·»°ÐëÍȸ÷Þ^½’“/\(.65•J,NMÕjŠ÷ì9u åPYYY)—GDÄÅ™L :EÁ7hqr‡TªÑØíýûCÀ ðq³Åâv×ÔàÊh‹Åí®®v8<£Q, åòΣ£{ìÈ‘ªªÕ«=Àᨪ‰vïŽ÷x†XV*åS8_´÷ÇüñDZ±qqqq:]]]]ÿ+ܬ{üø‰'Nàï€o>Pøì÷ïß¿ÿþPÚÝ‚®#”9ÁA(d—«K™ìãµÚ¤¤+W ½®N$7..®²R­NH¨­ÍÎÆå%Ü` òƒD¢PH$Á4‡ÍÁéÓ§OŸ>}üøåË“'/ZôöÛÑÑ\ä0š ¿¨Ï) èžAö<|X¯÷z‹Š>þxΜÁƒ;tÈÌT©n?`/p€ääää¤$ˆ. Ñh4 ø¶?ýô3Ï<÷œÛÍ…þºìØQ.—É***+««AÛ ¿ãkÊÿ÷€FKû­ª I£Ñhú¸¾¾¾Þh ü6n7÷õþ Eg674ÔÔ\¹BQr¹Á`2Ÿ&.ú@N LgHý;¨ø;êt,+©Õ"‘X, b±\.H¥*UðšÐ4M%'''''GFj4·òÚn>`xJJ ²!(Ëp ‡Ãáp¹85Ó¨,xP<;Õ3ºEÝ ÿïT ÁW4ØØA/…R:ر@doN}`D‚׊Scq}È'…Ÿrï½={ŽñçŸÕÕûö]¾l2mß>ujròÚµ½zÝ{¤DD$'£QÃÕµ\nÜÆI øý÷£Gs»ív8à#„‡‡…I¥ýû÷ï?x00²†£ÑlV(¤R‘H(‹‘Q抢.‰Åß|óã6<öØÄ‰<Àjq‘š¯8æc4Z­Nçš5kÖ¬ZµdÉâÅK—"ïN”‡¯ôúúzƒA­ŽˆP©p ¼¿.† D?v;:„‹rðßÞÁE"þµrMU@ó¿BL›S~ñÕÊøÆ&XIx+Ð`\¥‚×m\E"«Õju¹öݱ£_¿ÄÄÜÜ+Wjk/]Љ‘ËcbJJìöK—L&ÇlïÒE­Þ¿ÿ×_÷ï;¶k×±cñ<ÑbX•ŒS;JçêÂWø¢gNíÈÏ3¸š{“È).ýóôí%>šh­Á¹V`–:šî—ê¯ÜÁýY Ww6îçËŸ5‹Ýîtžîš M´¾p9›ÍuÁµ.M¥.«Õfs¹är‘ˆe)J(Dþ¶ü7Qn¸'27ߣØl‡ÃªF·Û륨ÜÜ¡CnÓ¦S§.]¤RØžù¯VFñyT_¥ÑDFz½n·Ý>bÄÈ‘÷ÜTïp¸\.R2rÆiÎå™oQË W¯îÝ{ôؼyóæŸ~B<Ú…×П¯¢ ¼F·uE|‡$Õ`fš¦é¼¼‹/^ܲeË–-[ºtéܹsçŸ~úé§Ÿ~Z°`Á‚ `ƒ 燺víÖ­[·¢¢¢¢¢¢ôô´´´´'N:uÊb1›Íæ:vìØzB¾Àáz™á-\ïõ£»L&—Ëå°ãÀÛù|ýõwß­_o·õõZmLLl¬ÇãrÙl?>>>1±gÏ.]:vLOÏÉiÓ÷ûÃ{™{9šÄ×HG¦²`TÍdš-[~ýuÛ¶¯¾úôÓwßýå—Í›·mS(ÂÃ#"¾üò믿ûîÃßíÚ_|þùgŸ4iòä©S7mÚ²eëÖÒÒÂÂë×ãâââ**ªªª«­V“©¡aáÂÅ‹_{Í׌qk Ñéôúúú‚‚‚‚†††näÈ‘#GæËNàŒ`0 r BppÔ…ÓRã+c}½L©×»Ý (ðz×®MM¥éM›ªª€W#Ž=`@RRròôé"QmíŒÅÅ SWGÓááuuR©Fi·ûÆÄ—JE"‘hÆþY«ÕjcbnÞ,***š:uÊ”'ž€õè9jøÕ .}ù÷0>kƒÉÛ¡Œ×SßN^-·2¶iÓ®]»vË–-_¾|9ôÀ¾}ûöíÛ7uêÔ©S§ž={æÌ™3¯Œ`¾ ¥\ : và3 þîÚµ{÷îÝÁkí8Ün·v¬°»ÅŸÁÐÐÐÐ q¢}Ã+ùƒorCÈáÃcÆ(•2Ey==3óóÏwïþñÇ  Ê͉ KIQ©Äâ˜4 †ššÊJ|a=pàðácǼ^‹¥®näÈ»ï;îTß²eûö;=thÿþ¾}>|Ë–ß~ûõ׉ï¹gôhð¹Á·+V«Íf³‰Å òv»ÉÔÐ&ˆÅr¹BÁߨøö3וJ©”É^}éÒåË‘7ˆÉ¾ýFQ?þ¸qãÏ??ýôã?þ8Þ?¸RkÜã*‡#M …Ãa· R©\޳S|t¼/qïWþ&Ùÿ¹ñ¼7à@.I ®Èæ”\ÁÓ¾ _*8ãœo … EŸ>}ûöë¥TFFΜùë¯O>9aBròc=úhfæãK¥"‘DrõjUÕ•+ß~[]ýî»7nX,ùùR©X,‘x/Nm ÛK4wüÑÒÔåÏ»PŠ¿úÆ.ÅZ¾|ùòåËáê$¸Fé÷ßÿý÷ß[·nÕªU+“Él6›áýÍ›7oÞ¼ù¥—fÍš5 ®¡NIINNN^¿~ýúõë;vìСC‡~ýúõë×jøÙgŸ}öÙgÓ¦=ÿüóÏÃV<:Z«Õjõúúúúz8öŠiœza-–ÚÚ’’^˜=û•W€3-_¾zõÚµë×ýõ§Ÿ>öØ“O>ÿüÚµo¿ýæ›?ÿüí·ß}§Ri4QQçÏŸ>}ü8¾ºø{¾ Ï‚TÒ¨gÑ îëGï?á‚ÞsÏÝwsàÀÁƒ¾õÖêÕË—/Z´téÊ•Äí¶Û­V—Ëj5›].›Ídr¹ìv‹ÅlÖéôú‹OŸ¾t©¸øúõ’—Ëá°ÛAéÁ:@hƒãJÐiÁJG‚²@ Øí‡Ý~!.^¼xñâÅK—.]ºtéêÕ«W¯\áÿ[¼sáÈË»p·W㵂T|8àè¯N§Óéõ:N¡3à€?üèÿ x×?¸ÿ qô ÆÐRõáÿ…~6vðë­òÑét:¸*€å’»›µñ¿¸‡o°Z1AÀ)¦Èk[, ¥R˜ÒË:n7øÝ˺\‰P¨P8ƒ^jÀ””^½† qýN§ÓyöìÉ“‡ 8pàСÈÞét8FŒ2dȃ=qÂåòx¦ªª¬ ÍV¨lzÑñU‡a~þyófðâœ0áƒ>úèÝwñ-É«¯.^¼p¡Ói±˜LN§Ëåñ@}_yeÑ¢W_u8l6‹¥¾¾¶¶¦Ænw8ÜîY³fÏž5 <û,xõÕ ìv‹ÅdÒëkkkjà"½ŠŠÒÒâb`a&“Ùl³½õÖš5«WÛíN§Ç3gμysæØlFcCÃÌ™³g¿ôRAÁÕ«/Â,ž3gÞ¼Ù³!O„ÇŸ €þ+Œð~: 20 ƒ¡ºººººæ”éû׿&ø¿ð_á™Oi¾õòG~~~~^ÞÛo¯Y³jÕ»ï¾ûî‡>ÿ|‡“&)•çÎEE=õÔOüóŸ/¼0cÆôé4m0H$Ó¦¥¥-\(ÈåEE‘‘PÈo+pÕºº²²âbÅãp¸Ý,ëñØlàk/Ο¿pá+¯PM …V«ÑØÐàv{yÿ}0|ðÁÛo¯^=dÈÝwOš4|øˆC†‚j¸î¯¿nÞüÃ/¾8sæÜ¹`œ(--/¯¬Ü³gÏž]»ÒÓ“’Añ”†ÇâDð÷ÎlÎõ=—‹¨¤s—Ëå‹%©T(DrŽ¿"•{æäa_Z Æ»®\ñxŠ‚›Íë½pÁn‹?Ÿ¿Â›ååË^¹âñÈå|~§Ÿ{îÅgÌX½zåÊ7Þ¨¬,.¾v ¿ÅTR^¯Ëåt"å2Ë :]yyq1\,µaömÛ¶1 E‰D¸ôü…/}Y­Üº³bÅŠ¯½R:ÿúÌmìo @¾MûÛ¸lsçVÆ“'?~|߾ݻwïÆÿBzè+cè€ðA@·íÚuèСƒÿèù.ŒÐŒïÎþ)\:’a8IP]þðÃzýÎC‡Â_P7Ÿ8qâĉÛ¶mÛ¶m߸víÚµk×jjjjjjðÀ Ý ÏÙÙzý¨QgÎÈdü‘m±ôìyê”Drø0ÞϾûißXË…‚ÓHþ?À<ªRîÿR)ì|S!¼³Arklùri©Ñ˜ •šÍf³ÓIQ{öœ;WYÙ¾}XXe¥\®T†‡'%¥¥eeuíÚ­[Ñѱ±qq{÷ž8nu2™œN¡P§3­6"Ýá{¶Õn7ø\ òn·X,*•ÀÛ† KJZ¶¬W¯ØØgŸ5›]®ªªGiÝzûööí##xÀju»ëê¶n-,|òI“É媨€N'EÕÕy< ƒÎ‘û޵Çãñ ƒ3>Á©}èa7`m…Ð 08y€¯à÷‹GÊYÿ}w〻ڷ§éuëD"¡íGmKB‚TºnÝý÷ÇÆ?¾fMDD~þ€fsbbV–ÍÖµkëÖ&S—.ÙÙ ;§¦ÖÔ´k×üzkx½ÑÑ M?ùdûö2ÙÀ bñdfJ¥4íõRTd¤DBÓÅÅÃtï)Ž›’"?üpf¦Xœ”$ÃMZÍ«'®Âe'pC,,,..)1ŒF“éêU0Ó‚[ï©Yäš"÷lšV(ââ23%’ˆˆ˜˜ìì´´ØØôô¸8ä» *•Bw¶Rø\N§ÍVSSXÈ3‡päK‚¬T(Œü•2xwèõµµF£Éd6; Eddl,E9&“Ûm³ 6[míåËÈY\ Eµo€ _àV²ÀþHPàr€Ž¦š ÓšóiBµñ?,ä¹pë~—Ðß²b"î êÃYGñ¯øñãšS>—k`¯3þñäàc‡Í‹°Áz;X­p•WRh‘:KJjkËËÃÃ33F£Ñã)-5®]ƒïÄb@&+/7™òó£¢ †nÝäòØØ¤$·Ûéô¿ •[*ðPÈ’¢¸£[P†áÕÓëõz-«Õᨪ*--.þãC‡./¯¬¬©©««®®¬ S«##µÚØØÄÄåËW®|óMˆß4tè°a£F¡ô7ÞX¾|Ñ¢E‹–,Áç Ü/ ï¬\¹zõªUóæÍûòË 8C/0$“Édbñ¬Y3gΞ½oßþý@„!hH$ Zmttl,´fˆzœÝëõx@Lær_[+gT6^Áã;sï‚)–U_Ú`yà¾B#…§øŧLß+¸¿ø;))))ÉÉ? –y•*<<,lĈûî2Äju8ŒF–¥i†ÉÎÎÊÊÎ.(p:OžLKS(”Êö톯ªªªª©‰‹‹…]»ÂH!U?MÓôŒsçÎërÙlV+Þ3aa …D²lÙk¯-_Û"¼ç ¥R­þú믿þâ‹gŸ6mÖ,´~¡ó V&¼ðY‚:ÔÑ^c«Ìíz‡5–gãFESR@x<OVVNNNÎ_|ñÅ_€ ®6ÊÃáZt,q~ßœaá¯o¯^ºtù2N]ˆíß¿kP—˶¸Ç(×C|>Ö»w=z£(›­¶6&&>>1—EÁøFúÁãaÙ9s^y%8¥½ñÆŠo½«1 ƒÆŽô›e¿ürݺuë&O?~Ü8d&ãf ÷~ pó«¯.X°páÕ«7nܸQTTPPP0`@ϞݺA> 0LKKKKO‡Í&l*}G¼%© úk êü9(*Æ7nܸýû8p`àÀ 8uêôéÓ§—-[¶lÙ2ˆYùè£>úè£pS˨Q£FµqãÆ7BtK|EõJ»víÛ·o)Ï=÷ì³Ï>{úô™3gÎÀEdî݆Ê@þ¶@4äüx‚=õÔ”)“'3jÔˆ[¶lݺuëÚµ«V-[6kÖ¼y ~ñÅçŸõÕ7ß|ûí·ßz<.2f€é"++'§U+H92777wãÆ~øâ‹ÚÚÚZnÏžýûHŽ;~¼®N§3&L¸ÿþ0uºššè踸„„ÔÔððˆˆ®];wn×V4hO¿~½{wëÖ³g¿~¹¹hgÇõû êòå—ëׯ_?cÆ /¼ð(ï8GÅw0.@{@ èlÛ¶M›6mëFÓæ…JeµVW  …Ëeµ:ÑÑR©Db³# :_Í!?¿¬¬wo†1›LI±ZP‚ï 0eYµ:´0ÂMwªL,¾r¥¦ÆíÎÊR«…Âuë.\·–U«e2 cǸ8‘hݺ¼<‡#2R¡@{m«\3@ããõ :×Tð ð {|µ:""<Üf³Ùìv‹Åf³Za”5šÈÈÈH”Cc+¯O©422>^&‹ŠJJ‚!?vìܹ›7ßyG(4›[µJMŒìׯGœ•J¡JûíÀóç!S£Ñbq:M¦’’Ë—=›Í`ðzÝî@Á…âβÔ"øžÀsUUq1x:[­p°Þf«¯7XV(T(hZ$’ËE"&+K `Î`µ H \˜2èÆ_ Ní<ï@8ÆYdhÊÜÛË{d£˜z°‰Uد!2€mŸ»Pˆë¥PJá¾ùw>ã‹¿VÁBpàϾJñƒvïþ裕+'O^¶lڴ޽׮ݷ¯ àË/‹ŠL&§S,¦é àM­6%%#C«MMÍÉ).>{Y‰QžB¡Hd³Y­‹TªR¡KäÀ›üó`È- pvÀW-[VVYY^þðÃ&Lœ®VŸ:•—wñb^Þ… çÎuîܳgß¾?>yòC]»vãFAÁÞ½û÷ïÛ7xð AC†LŸþôÓO>™—wéÒ•+o¿ýöÛ+WN›6}úܹHÄ0n÷´iO>ùÏž;wáÂÅ‹ï¿ÿþûk×>ùäSO½ø¢ïòãv3ÌG}úéš5/¾8mÚ‹/îÛ·ÿîÝÜæóHäTê8#æÎÈ¿ ¿˜µ_"‘HðC[ør‹!>‚È7ø ç݀ſN¯9¼ç+&úS > pjAmä¼k7‰/Lr²ÇÓ­[ADòë¯Ï<óüóO†<½^†/ÌJŽjXV$r»Áò‡@øvßÔÁÖ~•ÉD"¡Ðb1™ŒF…""B£†Ó_2™X gLPpðË}÷Ý?þàƒE‹-Z¶,ÐèãüË{¼dÉo¼ñÆ?þ1|ø!C‡}éÒ¥K—.‹‹‹‹‹‹‹‹‹ƒ÷Á¸9ÏŸÿòË/¿ŒL€Jú“O>ýôÓO!瘘˜˜˜˜ØØØXd¾EŠ|5÷wÝP*ÃÂär“©¡¡¦F«åÅ44 &“\.‘ˆDr¹R©R™LCCCLLttTÔ3Ï<õÔOŒ9bÄС?þä“Ó¦½ðœ9sæ|ôÑ{ï}ðÁºuë×û­ïÈ•rë&x+ƒéƒNœ8qbX˜Z­Ñ@í*+kjÐåäpÊ A¶v¼Þ¹sgΜ1ãÀ]»¶mãÞa˜ˆˆ¨¨˜˜¼¼?ÿøàØ18CŒv×®ÕÔx< V«×ûôÓ]»Êåýú¥¦J$åå&ÃÌ™³w¯Ù 5ÇO<4§¶¸?ì,ôzN¯ ƒ;(Š¢bb¢£µZ±Ø`‰ ôz½4!hîp2vô¿¡EaaMXX||v6,ZzýŋȊõé§—/ƒ‚O$zë­E‹{ q,Xðæ›ß T(ÁÃJ4þ¦×ëvƒÍŸ«ÕbÑ骪t:8†Žˆâí "ËŠÅ`Ÿ`¯×é´ÛÁ„(X–a|îñKGV1¡ðïQ@s1‰ †à¿Œ†ÅÖ²à«!€à@¸Ÿb1¢.â\È HÇ{)”Ò[ÊJ#¬VÁT,üœÆðð}ûî¿ÿ‹/vìxøáví/®­µZËÊ$’˜«uÙ²C‡|P¡°ÙbbÂÃÃÃ].½¾²²¦¦¼¼´_@§N}ôÑ©SÿýرcÇär±X(1”¦Æé|æ™'Ÿ|æ§Óá°Û£¢¢£ããüqÆŸþÇ?Æ?ßZ–•^»&Ó´ÛGÓBaÇŽmÛ¶o¿yóöí;wšÍ‹ÍVZZS£Ó%$ÄÄDGÇÇÇÄÄÄÔÔÔÕéõ›6mÙòË/‰‰±±11:uêÔ¥ËÑ£'Ož8L­ºº¦¦¶vóæ­[·lwºuëÚµ[7ØÚ€gôÕ«/ž?Ÿ™™Ý¶mxxx¸Zýûïû÷ïÙ#…bñÆ›7oÚ‡xÎ;wîìÙ®]{öìÓ‚"@J·n={Þu×7߬[÷ÝwÝ»wëÖ­[||BBr2p|\ÀJ§ð·ÇxJ ÑÄÕÍÜ[ü¯nåXéÌÆLÅ¡h¡|Êg†‰‰‰OIQ«õúŒŒŸþàƒÍ›mÕêí·“’¬®>zôäI•ª¾þÒ¥ÈÈädšž8ñž{ÆŽ8ðÔ©S§4š‚‚ë×ÑÝÍ*•J%•.]úæ›+Wfg§§§¥ÅÆÆÇ'%õïß³g·n‡ÓévóÍ_|ñEFFZZjjZZbbt4ôÃo¿íÚµkWYYuu]P(I¥.—Ýn·ƒ’øë¯¿ûîÛoãã““ÓÓM&ƒA§[¸pÞ¼W^)*ªªÒé^}ÕªU«â⢣££ûôéÑ£[·¬¬V­Ú¶}òÉ'Ÿœ>ý«¯¾üòóÏ•J•J¥4¨_¿þýa?uê̙ӧ»uëÕë®»PÊéÓ§NõéÓ¿ÿ!¿ÿ~äȱc0 áá*•R›’Ò¶í·ß~ùå{ïÍšõ 3gº„ó½]»~ÿýèQ8Ÿ˜XYYQQ\¼hÑ+¯,Zär1Œ×{êÔéÓ'NØí6›Ã±k×îÝ»v¹Ý%ž={öìÉ“ ¼ôÒœ9?ý´yó/¿¤§§¤¤§——×ÔTU3zôÝwC=ôz®¶¶ªª¢B© ƒÃ Ül ×ët`— “HD"•J­%\ttuuMMu5¼‡Áð‚¢Äް‰GH% .>ò©küøN¤ÒY³Ž-)‰ˆP(D¢¯¿>|¸ºúüù’‹eçÎ ôú/¿óÌòåkÖ¬Y“––œœœÜ¥KûömÛ¦¤deµiS^^TtófFFjjJJZZbbLÌ÷ßoܸyó¥KW¯^¾œ––Ý¡\ö¦ ®Ë—ÏŸ?{6;»uëví¦N}üñgŸýì³Ï>ûôS¹\&“É:th×®M›òòòòŠŠI“ÆŽ3æðá3gRS;tèàÁNºtéÞrÜ£‡èaÇm6»ÝéüpÍš—_ž7oñbÄÇÖ¯_·.!ÁŸVUét‹½ñÆŠ™™))ÉÉ Ù?~êÔÉ“4-“©T.—ɤ×Êɲ"‘X ½lŒ¼rÚœ·C‹|êÔ©SqyÞÿíàk:<Ã*óÝw›6ýú«R)• …))ii7oÞ¸qåÊ?¬_ÿã[{Ù²+V®ŒŠÒh¢¢¢£ccß}wíÚýK"‘Éäò˜˜ØØøøŸþñÇõëE"±X&{ç÷ß÷]0š¿þúŠo¼Ñ­[½{ݼùý÷ß|³~½\®R…‡O™òøãS§¦§§¤¤¤ÀªúòËóç/X°råêÕï½÷øãÏ<óÜs]»vîܱãüã÷ßäÈ©SçÎI$^¯Ãqß}ãÆÝ¿TªP„…]¸PXXQaµšLF#ø¿ÿôÓ·ß~óÍáÃÇŸ:5cÆÌ™/¾Ø½{׮ݻWUÕÖÖÕõíÛ«WŸ>ÀƒIDÁhF§«¯oh¨®®ªª®†•ôjéÚµk×®\iß¾}ûŽµÚ˜˜˜˜ªªšššà'p~æ£ïyJÎ̃Ëõ¯ŒQQ.WE…XÁ0n7M£“£áá¿ýf2Až‹gfRÔë¯ú^D¼xq]Ýöí‘‘v»NÇß­ŠD,+lÞ¼qㆠjuddyyUUyyCƒ^ß±#ÌèÔÔ„­öw>ýô‹/Äb†±ÛzèÁ~xРaÃî»oëÖ_~ùî»)S¦LyæÎäåñ|ýõºuß}ç˵æÎ]°I_«W¯^ýW®;ÿùF‡©©={öèápäçWV v»PȲ°:ùóŽ@+cÓø!p*µZ£Ñh D$è¶nݲeËHyôÑ)S¦L)/////%5¬0Ô£@ÿ¸‰%X‰ø¯wÝÕ»wïÞS§¾÷^U¤dgggçåõèÑ£G¸”a D(K«={vñb—K&«ª:v,5õ­·&N¼reÙ² ¢¢vìèÖÍjíÝ;ØîQwq®J†ÒA1êëõì¯næ·×~ë›Íáp»Ç»÷ÞáÃÔJ…©ûAyg·;ß¿nÝ?lܸaÆ qq±±pN®ÍÈÓ7’H=Ú¸9G  (•Êlnh°Ûm6•J¯‰©ô›oòóGŽÌÉQ«ï¾»]»ÈÈûï_·îÚµ{î¯ 4?7…B.W*‹‹iúý÷³²jj–, ½^ß›Ò $Þ< ‚΂v9rp=Ù.´Êççøû¸AoÓÔyœ36V (+óW=Óôþý:]ÇŽ,›’âõ‚1…ä“JÁáN³¡](:̦)åN·»²R§s»N‡e­V— ´(Ž÷… V+Ãäå••9pO¢e¤P@#>ÜœÚÂ(ÀInA&ŠD™ž`¹pX¾pã=ÆW@ÓË–-]ºtéÆçÏ+aa‰‰­ZÁ‡¸ èµk_{mêÔ!Cz÷nݺcÇáÃçÎ ]­RÉåÁ½÷öîí{S96œ?ï‚£´´¨¨ª ¨€¶H$‘ nGnç\L \·ÛéDŠj°h»\Gnn÷îqq=z´i£ÕòK‡8n«V­Zµr¥\.—ƒoˆïw0¨6›Õj³½üòË/ÏŸ¤aàÁÇ X6,w¢IIÜÜ8>ÓªUëÖ­[[­‹Å¦T*•×®åçççkµZ­V‹îŒ¦($ŠUVVVVVÞ‰Â&3'''''âÝéäL@ÉPöúõ6lÞüÏNž|èСCÿÒ¡ö={öêÕ«Ÿº 0ÄŽìÒ¥K—.]À·ÍbìÙ³gÏž=ÇŽ;vìØ8н{×®]»feee¡yû- …ýà¼Q—ÿöçêœ5˜z$’¥K—-[¼xÉ’¹sçÎõzÅbçËÇðÕEXæÔ—8Wg0„®€êB󈯼ƒ÷9~Èçœ?¬XŒ—Ž"D#ïHÑ¿ÝYø×áÜÚ Oø|l¾ê™O]¸|k"¼x`üøñãÑÐK¸¼¤T*• ëâ&d~ÏàýƒÚéõz½°E‡ÑÃeÑ`£æ›Îý —¾Àåüs_}åÊ·ÞZ¼xÞ¼Y³@õÌ…éð½š]´Ë²(†2Nuðæ=÷Üwߘ1ë×öÙgŸEDÄÄÄÅù˜å(üØpã:žqî)HZã"Ìò×t<¾ÂOÄN ¸Äį ?¨ o(*\µí_î_|þù矃·)ºŠÓét:_¯_W*SS?ýT«4Èã5tc‹)Êë]½º¨è믃½ƒœ$Ø û†Àç,N«ÐƒÁh´Û].£±ª*..553“¦±8×Bë —?R 5gÝ O0(¹eÊfY†1._Þ¼Y*mÛvüx¹Ü߉Œ¿2â¥Æô0F¸3 Œì} h¨hèСC‡-//+++C×qóCkâðçf|/]Д—WTTTŒ9räÈ‘p·ÒüñǬ\¹råÊ• .\¸paŸ>½zõê_ ýûOŸn2]½:~|JŠ^?pàçŸgg?÷ÜÝw¿òJ|¼Û˜È祽zQÔƒZ,aaÕ¾ý˜1ܾ€¢(êÌ™3gΜéܹsçÎq®Ì™¾…½üþýûöíÛ‡»Ùq-DuèßРÜÜÜÜaÃú÷­Ñ‰Ç#7>}W¯mÛ~ýuûö 6lذ!&&:::hkèÐaÆ}æ™iÓfÎLO;vÑ¢òò­[-zï½÷Þ{cðÕÅñÛn0„…9ÒРÑìÝ+—ËåR)Ü££åò6mª«m¶  ´[0úÑhd²ŒŒŠ ‹åôéì슊ի…B†ñÕ×.î4‚à ¡áœç Ë îØ±sçΈ“p² n¾šýɇ¾ÿþûïƒé‚?¡ {wfÏžv펋…aÚµûä“ÂÂ=l¶¨(«…øhZ*•Hà„8  ˜”T[Û½»Åb2™LM-½qØl‡Ã±{÷É“7ojµcǾ÷žÙìtrÞà¡ÍI¨!R@s)"‘XLÓ55ßÿüóÆuíš‘æÔ¦Ögôè{î¹ç¸§ ô{àÎTUUUU] Z¸ví:tèØ¸cyyeeU•Ói³Y­:tìØ±#pÿxôèÁƒû÷óµ"N9 :rÿèbd2©T"IJŠŠ‚”ЗØRµi“”$‡â®RÉåb1Ä11tºÚZ­V©Og¡y ƒ² ¿R ÁÎB…@@Ó°¸«‰¿hõW•ËmiðtܳãΔï?¦Èfˆ÷ —Îÿ ¨âÎÕþ"…έKÇ„6§>¸"‰_+Pt:4X4xpzzÏž"‘×[WépddH$.Wx¸Ý^[ëõJ¥KT¾µ (­–ó½¥ îÝCÓ4 ÞI ‚¸¬REE%$üôÓO?ýøcçÎ]ºté¾h¹Và*N_å)¾íñß6àÛ þ'ô7^þJ7ô-Nù°Â= ù‘šñ -ºØŠÛH€zl±¸`Í‹ÆS‚©¤Q Gcøwø–ÂÊá»õ9) ¹À0Ž[ìâãá/¤€¡"..9Y&+*ª¨¸t)----) ÄY¨_UUyùÕ«pø¾‚²ÎDQØ€‚ðk[ðúন?ä#ŠDh±„÷NÇáÀM|êÂÇ."å®(ÄG¶å‰8..2R£ï²³32²²òóoÜÈÏŸ2塇~˜e…B‘Èãq:ÑÍõ0»a¡…™5qâ?þqß}üÑGï¿ß¿ß¾ýú%&&'§¥AÉ`×ÇëÀßró•G 5ôzhkd¤Z­Ñ‹DŠž)K$è2°<ƒç?—}©˜/Y¤PãÆùtõ䓽{K$[¶\¼xãÆÉ“µµuu^ottûö¾o9&M›L¥¥½zEE B!EI¥(Š”}ÅqrØØâaCðqD®û6RÁs³ýÊå€÷¿ÀspCŸ?®XÄ ÁhÎ;ÁWø3Þ:œ¢ð–RMFËl¶ñ<øt…ŸÏÀWjÜ0ç®Aƒ ìÀS=†cX²dÉ’%K *¾:ÛíV+Š¡ŒÔ+ýðU6Pg¾dˆ÷62-ÈdÈŒÆÎáÎÇà_¼ô`ëT(€üøÞFTßËÌ-®êÂùz&9s¿"Nr;- ºpõ ~’7@f¢(ŠÂUúÐF¸Ð7T‹ÿŠï»æz<~(z€‡GEEFFFâjVþXðŸQY`^‚Ñ‚¹sgÎ|ñÅùóçÏŸ;wüøqãî¿¿cÇ.]ºwµòD\“[Ypµ;¾ùǾ8D".´ãò—NQœ©,”sŠ|>:ðû3t.¿GE² 'Õu„²2ff……³f¹\fóO?EG÷ëWR"‘rÊÈp»õúI“tº#Gß/ã’Íâ'°špô-©­­««®ÎÈHLŒ‹ƒ±@Ù[s­–[wþóÑ2íR*ÓÒ:uª¬t8&%Å_Í_›"’eY|KqS7í=:Z«Õjq:›Ð,áèŠßú@œÊÿð÷”M›6mڴ顇z衇`Náñ qîvîÜìÙááfsr2ËÒ´×›“c4öéçtÆÇ£ VüšÐ4EÉd E9v»É$“ÉåááмuÁ80 ¶¶¶¶¶Þ[¿~ݺu냅þˆÅØLF£ÉtáÂùóyy_ýõ×_=eÊ”)S¦44Ô×#um0Š “J¹sä\Y86 …ÅÒ¶­ÛMÓF£ÍFQþ©V«T11Ð+ÃL–ž¹£žˆ‰$9Y¯÷zË˽^zß—ÿà—Eãé;wêÔ©œÕí®›1bäÈ‘#¡æ¾N\Ë`¤€*ÀkÞw¿Ìq8š:7bb”ÊòrÔ –U(._¶Xž^"Ñé %N«ÅWÐ~–ãù^oL ’ù›Zzã€zȸèñx<¾™B< –õzáB¨Íf³9 ç0£Šö¡þ«¬J"¯Ôd2›Nƒ¡¦F*U«ãâÚ·ïÓgàÀØX™Ìá‹–]ºtæÌ±c•J…B*µÛP(Ü:¸\NÓwÝÕª•DÏ¡8„+Kq1Ãx½B¡TªÓ?è¸À­d,º XRx8,ònwL ÿ+ð’€Î‚ÈV înY‚k¼Ö0 q¥ ÂßWùÛ’à³ÔÅù€PE[>ÔÑ@XÁïûnY ïN…t¼—øñà‚åÓ|èÚÚººº:\ÃkŒðEax~àV­rs)ª¦YëñTTètp¶ÝŽ/Ÿ`¯®¬¬¨øúë@Ñ«@ ņÓ4M·n••‘AQ•‘oƒ=“[Èoˆå|ãÔxzãoò ah äï9Þ‡üÍÿPõâoòG¯ ß'š¿=ã*”qJàÿJß{Æ=õ`Ù‚^Â= B•+W¬X±þ â+¢$"B­V«ñx>8WÔϨŒ[×ãé§ü‰'jjøB[KÂfãÔO€ÂB“ Ä!hµMDŒOCC}}}=?0ðà)£F5f <ãç!BA°mNß¾½{ßuœ„”ì쬬֭ṶV¯Gu‹ŠŠŠŠ‰±Xl6¤(\Žÿ•ƒœ²¸"òž¡¢8§=§®±cÛ¶¥é±c)Êh¤(šF±˜C À) ÀO Íéÿ¿¿J9ÀQŸ®`» ´„+¡€ÒB¡®””ääää·ß^½zõj”vëU&%%%%%…Ï»BoUÓ¨Ë`økøXK!ÔU"8þ^êàÔ…NNp'‚;_á+)ÐdpÏe|ýåÊÅߺEÊnN±(Ž'ž^ Οiš¦Q8.åå—_~ùÕWáßpeS Ú®!Žo¿ýê+üùï@+à$R°¹úìÀ#T¶¬Ê2i³© hT*–5´Z•ª¸ØëeY૯Î{ñÅììÖ­•J“©mÛ‚¯·ukÕ y@ …à-ý[·|'BpÈdb±X<~üС]»REí܉ÿ míС}ûN í`è¾qãÚµk×ͼ:wÆÏÏ5µ>ÐÏ '1‡|×ܦM«VÙÙ`ŒMJJLŒ‹;qâøñ'p©^§Óë!n´^®R©T¨E,˲"ü†D»½¦¦°P$’ɔʕ+,¸ûîôô¸8ô">—ËãùúëM›Žm¼P@çÎii"‘B!•"Õd(ïÔ©U+‚€e[·>‘.y]ï„¿ j,°®Ü^=þüù h1 Õ—H$W ³)pÜOôÿ{[à~—ð ©(…{§¤¤¸¸¸øêÕ«W¯^…[lß¾C‡Ppw°/Ñ4:<)ø;tàŽ³û!?Λä¬K±±pÑ ¤pìÔÐÏà9‹‡™Ç¯aIHHHHHh~}|=×À&ïr¹\Ð'øâ½‘­‡ Çìp („à@ÇçýÕâ¾G¸¢8"=š˜_+Ü{ƒ?;ø h~J°[D‘p 5çJäûá[UÔhŒ|¿â+:©¢ÛDùÎ<<ívE¸!·šòù+Ýwãz’?2ðo~ç@ªçÀ¿ñÇ‘¯ªnŽÒF³†Ë"ÖÖÖÔÔÔ€ÐÀ·ZûæÓ’[Á`¥üoúÇ´4Zv[JÎÀà°UT”V«ÕÞ¸qãÆÈŠ›k%%¥¥¥¥ÙÙÙÙÙÙ¥¥%%%%|š÷Íùöç{è Ô þ.º‚g «üüüüü|œ+¯ðŒSð.PåÜŠºïúOÁ_Ic8uï*.æ8 MÓ4ÄHƒ"(C}ÏA)|u0Gi¾R—Žü‚9ÙòåŸ'óm_¾òo·ï¯x?¦ÿ@²þ>þïÀ_áÀÏ›k|)7Xnøù;A'#tú„VC€ ð†C+E‘•ñwŽkuê”›{ï½Ü¿;vÊ•/¤_CÕ™4µ­ð„v—•úî›Ä‚]ˆw«½˲lŸ>½{÷î}úô™3gÎÀ~8°ÿ®Y$¢¨›7‡ ‹­®îÖ¯«á—ÕМüñÇþes×u:ååü­v8\.·»¸¸¸¸¤D­Î̼ûnPž¢ ƒÍS®O (x=ëwà D"P‹hš¢Š‹7mZ°/1˜žª1Î!†… ½zÉåFcûö,+¸Ý,KÓpï‹Pèõ v{^EmÚÄ0"‘Ñ(y<Z]UõÐCB¡ËÅ÷4€Ù>Ø^ЩSçÎ;çååååårÂa«"´Îb1›Íf|Þ5®}Â*E½Ñ4ΙVTÏùùee]º ð$(p(œ Bú!P@ƒêâÃ_\zé¡€aŠ“’’’àÌ1¨øq䬬œœœdÀ±¥êªg(”ÝœS,ÒŸ@-Ñ4‰ðó{EE7o¢ó¦þgÈD¾Ç¢Ýn§Ól..ÎËs8ìöÜ\9»ÓteeMÁðÁß}·oßo¿íÙƒ¢Ûðì(**<\ ÐhÂÂ|‡|¹¼Õ!ÐÀ¿Å„Â@ïê0´Ôp6 wº,þ1>Àãï÷€±.***Bþ?³—àFrP7§ÜÒÒÒÒÒÒ`¿"ûj`á9\EŽ+vQ¼<†aèm¾áJ‰Žjø›"øï bÿ¼>üx—¾J|ÿ²|S¸ïðhbð5žî«ë¿?Û9 L–eYØøš¸wpoe¾7 ã<þßâ_áGQðd,á¾BGòýóñ5¨ø_¸_á¼&¨tþ;xY—3ô DOOÏÈÈÈ.s¹iÀG…DÉþGÛ‚¥àó¥pô,gßw¸£Óxù_ã{Ü0ƒ#?Ò7n$ÀÅ,þWü8àÁ~õ͙˭éð7hñsFuÆ¿ œþoèg³Ùb±X.]ºxñâEÄ»¼^ßÈz=ÄOw¹\®:tèÐzçüQF¾”€icÔÊ›¡¿ï[CŽÒÐWøáMœ·û·ÃwëÈIã=ߨø)þ¡?p4NÁS‚Q .àtί3—+ü ß [ѹ<á§.Ä»Ð:ê(7εnZq6œ/†/ÿárÂËDO8Õž;ø:ˆºüiŒ?Ê8ýàÒŸwù~åO]¨¢ñ”P©+Ø›|ΆÇOÞf3>uÁŠ £°sçŽ;vôés×]wÝ8—øÎw|tðôç ȵ‚«¡/í£„PWX_ÚàSà­×\~Îøs°µ Oçs¤@<Êÿ+<…/½ã]¾—97FóüÒ}óÄ)ÊŸwº¥ƒ«'D㾞}0‚ˆ¢8™™¬ŒdelÙ•¯Ï>ñ7’·>áêû¯ÐÜàxˆqŒzÛ¿\†)/ïÖËÇŸÛ4^ÿúÄÆÆÆÆÆ.^¼hÑ¢EÁÞMÐ ðù[0@Ïœ={öìÙ³Áßáž{àÁ‹Š‹‹‹‹‹?üðÃ?üÿ ÒC ¡Àt¡^D¿g pƒZ}ãÆSOÑ4ÒP4Í0 ×î@=À¨È‡V5pà€í`È™ÀëõzÁ JÕ´´ÔÔÔÔ`4ÏwI e\pÄÇ+•ÅÅ••mÛ=Z^Þ·/Çý²N'—Ó´P¨Ñ€–Q»X wÑ4\ Z‡¿Æt:jÔèÑ£G''§¤¤¤?…³Ð?IIIIII`…žxë;wnß¾}{óK‡à3mÚ´mÛ¶-º¤Ôn‡ u‹Ãa·Ã©zß‘å¸Õj± h yyçÏÿùgbbBBBÞoÿ–ŽfÍš1cÆŒ‹KK)ªºÚd¢i·Ûã Í6+“‰Å,+•ŠÅ!—ST«V È¿˜à¿ÙÙ9999¡Œ~ã¸~ýÚµk×þîÖ4†ŒŒŒŒŒŒ@шZ²¥Ð“ЫMÍqŠ‹‹ŠŠŠPÆÀ[¾˜è.-Xüçàßú§/1x®ß µ:""""22* E¢ç÷6þ̧dPåWUq!bø¾ÛG[æ?z7Ôú4þNSg"NükaB‰ºHð¸‚Ô:(Ž_ƒ~0‹;»Y"øï¨`¸³bx%\ ‚o×ñøÚÀÇuG]@Q¸õêB>wœúùASEÁÖ.x@Œ[<†êêjkkkÿîþi€šþö®~â®6â‡ÀúÏGQ¸óº<ÖŸw‘•‘ )ue¼s~|Æ?~üøëׯ_¿~ýö® üMSNÄ6ä#ô|n¡)ÙC-÷ö¾jJü/·oÜL¬Wƒ}ÅOKKKKKK[»öí·ß~n*jêì‹!4ª@à«íW6ð^ç×7¶Á¾‚„ü5ょð‚õ·uëÖ­[·†ëÙ!vœ™€Kq>Ò²5éÂ?B ”ÄÄÄÄÄDˆIJgè fˆ.ìUýÛÙÚµKJ¢¨víZ¦º¡ZŽþó¤†Çt¾=„n?ü»€ìÏÍ Ciió{<µÁ+¿9 Ê`h\õ,=˜*9”oo11±±±±ø-Ï¡|…¿ J 8„~mìýÐSZ ¡ŒE(9@ Ñ%$Â_¶ÉÖˆ€ólÂ}‚·øÔâ`0žñw·ŽàïÇ#q… ßË ÿ†O]è+~þ„ºþ¯ƒæáVx–eYœ®`mÄÏÇ€ÇksÖv•J©T*ÁS¬)w0üç¶”-•ôɸʩeÁçBh¥ó÷{•‘ 4ÜÎÊx'€\ ü} o¡Þ· ,Ÿ7]µø¦äÖøNïõ÷*”ogWûW¢©”ÙÔýl°³58•6µÎN'E …|Ý$¨q##5&´¶pçî4ð³æp¶æèÑ#GŽΈ.K Ü{ͨ›Á ¨t‘H$R*_ ¬>@ ÿÑo¡Õ˜%tEXtdate:create2010-11-10T14:11:44+01:00ô]%tEXtdate:modify2010-11-10T14:11:44+01:00…Då¼'tEXtpdf:HiResBoundingBox959.88x599.925+0+0×eRa tEXtpdf:VersionPDF-1.3 1 0 obj << ‡XܽIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/screenshots/ss-4.png000644 001750 001750 00000651237 11617757645 023753 0ustar00simonesimone000000 000000 ‰PNG  IHDRÀXrfÄ pHYsHHFÉk> vpAgÀXD4º€IDATxÚìux×÷ÿgÝ=»wOHBÁ‹»»KK[J‘-…"-¥@¡P(V ¥P¤x°ww ÄÝ6kY×Ù™ùýq¿ûËÒ4@‚}îëyØ'ÌΞ9÷ÌÜ»;ï9÷\Š:AA @ @ 4TÇq {Õn@ @ @ ämƒŠaærynr¹\.ÍÌ|ôèÖ-?¿.—ljÀ»f³Ñ¨ÓUT”•DEÅÆ&'S©4N¡P(Jm‡6 ss?‰¼¼är`“Íæp¸\•J¡(-6Y,‹Í ŒLH¨Û&@ È›ÈãÇgdh4Z­V f¡á8Žã8Š¢(Š‚¿ »víÖ­k׈ˆðð°°Wí5@ ò¿Knnfæýûv»Ãaµ½T&óö°Z-³è¥:V[Y]½´a5Ø×³í$‹ÅdÒë=›ž~ÿþµkÍšµjÕ¥ ‰D"‘H5 n–nß¾víÌ™°°ÈÈÄDÇãñjîïiÓÇÇÏ/8Øß?(("¢6›¥¥EE99\.'×f@ äÍåáÃôôGš4‰¯mŸììì윜ÈÈÈȈø[R Ž£¨ÝŽã4“I¥¾jo^´- dò_Ý8nµ?zôè‘ÉD"ñx±±11|>LU@ ÒømS£Q« ?¿ÀÀððÚ~Ÿ—”fg+• Ei)ÐKù|>ŸÏ¯ÍfÃj°¯sÛ©8N8þ“ŸŸ›ûè‘··¯oP»uÕ†–Éär??…¢¬,/B ŽŽf±X,&ÓsO›~~aaEE……EEµÙ ŠˆÈÈxøðÆÚlB ¼¹€ùgž¿ÁjB&S(d2ATÿ"«Ÿmw8îÞÍÈ(.æñX, Çm6“)((66)‰É$“Ý{ݹóàAn.ŸÏáɇN§×ÇÇ7oÞ¼ùË‹ÕZYYR’—÷àÁÇ……M›öìÙ¯ŸLF§“HafóñãG^¹"ÇÆ&&6iêííp”–ffd2›ÍfÓh8n±TUUU9|~“&ÉÉ‘‘<Þ³K’‘•u÷îÕ«%%j5™œ’Ò©S«V VÓãÒÒôôôtŽÉ‰h4±888:ø\ÛžF"ÑéIIQQ5÷ü/PT£¹téÔ©’’ºwïÔ‰Ëu¹*+oܸt©¢¢U«.]RR^æƒ —ËjU©ÌfM* i´;6A8 …NG"Éå"^— aCvvNŽFÃå&%ÅÇÓhF£Z­×3™R)Ÿÿ4O0ìúõGÊÊ„B??‰D,V*33].ƒÉLOÏÌ4SRºvmÓÆËëßg@ ¤&@ÛŒmÒ$5µn½4 (("Ìoz)—“”T›MO ¶¨¨¨¨¸¸6ê£Á6^Û9>ßÛ»¸¸¨¨¸8((((0°æž8Ž †§Ÿžm§â8†¹\EEYYP(‘€$jEQ§³n'||üýCB”J…¢¤¤¢¢´477$$,,&ÆsO›ùùùùùù5­•””””–‚}ø|¡P"6}}ýýàƒNoì°B 47oÞ¼yûö•+W¯^¿n6›L&SqqIIii‹©©Íš>|äÈÑ£ÁÁÁÁÁÁ‡ÃáF£Ñ( …"Q@@@€¿hhHHPГ¶1L¯¿{÷ܹš7oÕJ"èt 9Ÿ>}âÄ•+¡¡-Z¤¤3J¥ÍF¡°XÑÑAA¾¾,VHAèõV«ÙìpefæçÛíŽÃátÒéÍš%'ûû»\eeYYJ%Ap¹b·[­f³N§Õr8QQ-[FFŠÅ@.//(¨¬´ÙìvÎlf0BCãâÂÂh4¥2##/Ïdb2y< Åba0š4ññ‘ËY¬ìl½>/ïôéãdz³ÃÃ[¶lÙ2,ŒÇãp K"a2I$Én¯¬T©˜L‘ÈLJÏçñ$>ŸÁ “I$ðó— PÔb©ªÂqçi9&u!“••UVVThµ …J%ùù‰Åžû\½záB~¾\Þ¤Id¤D"{yݾ}îÜÍ›áá)) ÁÁ"F"9çž!!l¶Z}ölõž!!"Q}eO Ã0‚ “i4*• œN£Q¡ÐhpœBq8ôúüü{÷îÝËÏ7ýýÃÃýýÕêüüü|•J›4iÑ".ŽÇ;u꟮_nÚ´e˘™Ìn¿|9'ÇjMM‰ñõ¥Óm¶Ÿ¯ÈÈŠŠÒÓÃÂbcÅâââÊË£¢ÂÃ%’{÷²²”J6[.—J[µjÖ,1A,–òòÌÌÜ\£‘ \.‡X‰ªª²³ívË8œ-Ú¶mÚT(YÛf2)^/‘…$RiiVh‹ŸŸŸ¯ÑTVªÕ -Lfe¥BaµÚl Fnnqq»v©© VU•›{ûvAÝN£!ˆÓÉd†…ÅÅ…‡‹D ‚ ¨Ãáp˜LjµZ­ÓY­‘‘M›²XÙÙ:NWY©R‰Å¾¾Ože@ O<õÒú(¥O½Ôf³Z­VOU³6 äצšêÖ`¯í2™····§r ü[Àþžž×l;Ô´XÌf£Q*•ËýýŸuYBPǘÖ<ße±Øl.ج®qø4ûàÝj›<° NF£½éÓ !üosåÊÕ«×®uíÚ¥KçΤ¥<Ø¥K—.: ¡P( »ÝáJ¥R©T©T*•ÊÞ½{õêÑX@Qu¹jþâ"»Ý`00ŒJ c±¨T©Þ‹N'»Ýb1™L&åp¤Rƒ!/ïÌ™‹Õj•*0044$$"ÂËËnÏÍU©Â×76ÖË« àÖ­‡óó•J‰$:Z.—ɔʢ" KL JÄ××ÛûâÅ7²²„ÂÖ­ƒƒM¦»w d²&MpœÍ6™nݺ{7+‹ ¨TŽ š4iÚT&#“q<3³¸X­Öëø›àåuíÚƒzy5k† ÿAÃPÔd"“].Å"&AàxYYY™B᎕Êáøú²Xµç•׎ƒbÕѬa§“ @–.‰D§“ÉA¡¸\v;ŽÛlV+Š <™ìtšLž{™Ì`P(.—^öÄq€Ç«¯_n¯ÇI$G&óò°ǕJ E& ¡P22ŠÊJ»NOHˆ÷ñ¹yóÎÇóóåò-¼¼h4 ³XƒÁlFQ>?,L&s:-“©ªª¬ìá߯{÷òó™L5 •J±8$$>>"‚F¨T&37W£ár¥R¹ÜjµXŒÆÊÊ»w $..1ÑßßáÈÏ‚æÍýü ‹Š `D²Ù´Zçó¥RAw[ 5ƒÁËK&óöm‘˃‚’’är//*´E*íÔ)&†ÉÌÏ×hø|¹]§+,¼¿¤„BiÒ$)) Àå*,ûóxmÚÄÇ'%s8……V+ƒáí’b0X,CÝg@ Ä“×Kkªš5m–––––•w‹‹‹‹ŸÌƒ (ž6kÓ`»íþþþþ¾¾ÀÛš~zƧfÛÿo"¦Ýn³Y,L&Îd†aXIIqqIIݯ`O&“Ng±»Ýb©é®§Mð3ÏýwÍWð.Žã¸§M—Ëåzr™D@ 7»Ýn·Û#"""ÂÂZ¶lÑ"5õôé3gÎËÏ/((,T*•J•*))))!!88((0ü¬ËwP©T*•úßSí‚Áp—Ú¨ùŠ¢(AP(:´lãçÇf[­%%÷ï_½êrÑhRiÓ¦-[FFR©F£V‹¢A"!ˆËe·;8N" ,‰är‘É —Ëå …L&† ƒV«R••™Í.Wi©R©V«ÕZ-Èã0›+* …Ïw:íva³¹ÜfÍbb„B üD%¡Ó¥Ò˜˜ÄD©ÔfËÍMO/.Fê $•ÊdZ­À÷êªs^^,–^Ÿ‘ñèQ~¾ÃA§S©ON…DѪªÃ‡9vìÈ‘“'ïß×é^ì7%Aà8AHd2ð¼†=)`WïYÝ÷žž¾]½züø³úF"U×Ý#‘H$ …Áàó™L‰Ë¤RPhEív³9"ÂË‹L6u:§ÇÄf‰h4ƒÃ¡R­ÖŠŠ§Ÿ/‰Lf0„B¡Çc³‘ˆÃ¡R)2™D"“Á+›M&À‚ÍV\\\ìiÁd2›O ‰X,Öl ‚`¸qr·ÃÀÕU݇ÇÝǯ,‚˜ÍZ-ŠÒé<žËåtòù"‘Ÿ¸Õj­Öb¡R9/¯ðp©”áÑ(M `2aÍh@ ÏBM½´þ¯@Û¬©j>Ífµ"ú´×Û¬Mƒ}9m÷÷÷õõññôн¥®¶ÿŸú.{yÉå*•Z]^.‘xyy{{{{{ƒ …ÚAQ—ËéÔhTªŠ ¡P"ñö®¹§M— Ã@ÞÎÓRÖÁ»ào¥R©,-6ét:Ý@ òæ2iÒ‡¾ÿþ¢E‹/[6sæW_}þyrrrrÓ¦`XLLttd¤¯¯¯¯È,èÑ£{÷nÝ4F«•J¥R/¯Ú,“H,–¯oR’¯oQ‘Ý$]÷{.—Ëåë)•24…b·—–"ˆH+‘FEYY¥¥eeÙÙEE™™Zm``bbd$Ž 8îÎC&“QÇI$:J7Ž„PèçÇáÐhT*‡C¡`XhhXXh(“I&z{ …ZmQQfæ£GEEUU(*•J¥$’JUXˆ¢bq@‰D$A€¼b™¬iÓöí;uÒj?>yòÖ-‚ðñ­£Óe2…"+ëöm:Ï""ø|*•Je0˜L*•L¦PÂnw8H$a³Ý-§ÑÄâ~ýúöíÙóÙÏŽ[­ååeeV«—W@€—Wx8—‹¢ÅÅf3ŠúúJ¥†ã^^l6…‚¢JeI‰F(—‡‡s¹ÅÅî=íöÊJ÷ò f³i´j”F‹[·îÑãy|{Úù÷|èà–»E¢„„¦M¥Ò îÞÍÈxð@*mÒ$996–Å"“qœË}úùzøðñãœ`“Á`0˜L Ç­V0_Ìi$‘¨TX°ÙX,©4<<2R,¨T±˜FËËS«qX`0()//)Ñh@¿¤¤°P©¤ÑÄb>ßÛ;!!4T¥zø°¬,7à †ØØÐP‰„DBQ›­´´¨H«õó LLôÜ3+‹N÷òŠ «Ÿ¡‚p¹ŒF¥R¥²Û1 Eu:•J¥²Û].%ˆª*ƒA§™ÏÕ[Äß?88(H&#“oݲÙx<&“J¹Û|>8_7ozž/™,0Ðju¹œN×ju:ƒA"‘HØlƒÅòõp<++?¿¤$>> 9Ù}Æ=ÊÎ~øÐáH€¡°¢¢¨H¯7 ·‹D*)),,/§ÑD"‡N7T*“É``±t:·Ù€ç†¡¨ÃQÝ:•J¡»½Bÿðð¨¨ÄDÿ»w33‹Š235- .. €É$“áâ‚@O½ÔjµÙêW‚ÃS/%,j³ ôÒêùmOtTw®1ADÝìËl;ðÊÏÏÇÓ Ð{kk;I§ÓjÝBsaa^^F•J¥Òh`Õº]Q*++ËÊ€ïçÁd2Oæ3Ô´Y^^QQ]­ïi'Éǧ¬¬¬¬  6›@ o.éé=~ ÊkÔÜ'33++;;&&::*êYíÛíF£F£Pdg§§gg;þþ-[&&p¹@€D1›FÎå"“étLF2™Fc³Y,*• ìv“I§CQPÁf³Z].2Ù媬´Z)oo.—Åb2ét*Õår¹‚ÍærÙl ëtUU:A€¢!d2‰Äãñx\.A8V«Ñh29$N§Óé,‹ê&ÛlÂbq¹,ƒ$R5™4­Ön§PÄb//‘ˆN%‹Ål¶Ù0ŒJ¥Ó©TÁ0§Óé$:]$âó«3 ë Ž»\v»Ãa·Ûl&“ÕŠaD"‘Ðé$’á×ët‡H$‘a6›Éd2¹\A"‘HL&X0A%‘˜LÍ]nÃf³Xìv Ã0— AÜ{‚úÐõ”é8w.==&¦S§wÞ‰¨T‚p¹l6«ÕlFƒÍ&‘ìv£Ñht8Äb©T"ñ1ŒF»],–J½¼Èd‰ PÔdÒj©TÏË«úøQó|±X4‚  ‡Ãã‰D“ Údµ :A°X"›Í`ÉátZ,z½Í†ãÀ…B§³Ù6›ÁPU,€3K£!ˆÃ¡Óét—+óxƒZ]UE¥òxh‹ÕŠã ŸÏbÑh - †Q©L&™Œ¢f³Éd· ^^^^4™L"á8ŠZ­6І9F&s8\.— ®ëjTª’’ÌÌG²² †„„¨¨oo‘¨±û;@ 7 m‰T?}’J%“1 è¥aaññµÙz)ŠbXí©@)­ûrÚü©¹'Ð{kkû4†a†Y­V«ÅRT”ŸŸ‘!ŠD ‹Åbq8‚ a³ÙlV«^¯Ói4!!aaqq °4™L&?-Xž6•ÊŠŠâbƒÉ¹<Î`0™ƒ^¯Õ›`ùÁ°°ØØÚlB ¼¹hµUUUU¹¹¹¹ùù¸Z­V[UeµZ­VëǦ§/^¼hÑ‚/v4‚À0­Ö`°XX,6›Ãa±èt ¥¾(°àrétee99WUQ(AAaa\.ü@ yÛÚ&bm6›Íbz©@ J$N§Ãa³½Ôét:¹ÜÛ;0°þziCi°¯sÛŸ  ©[­V«++-£Q§³Ùl6³¼Ëb±Ù<‡Ãá2™··»ºGÝ›‡Ãáp(eeÀ&pS(”Hd2`“ω$˜õ @ ä™cÇŽ?y²gÏ=ºu{վܓþ4 …ÃárÙl&Ôö}1@ yˉF£NôR½¾ªJ­f0X, è¥>>þþ¡¡õW5Cƒ}=Ûþn—ËåÂ0Çqw¥2™LSô(”Ú&ÖÃáp8À&X,3ø"6!@Þ&ÔjµZ£©{áA@ ò2ñÔKAÎ/• ™‘É ƒÁ`T/þ<6Vƒ}}Ú^« @ @ @ È‹+÷A @ @ ¤Q€4@ @ @(@C @ @ ¤Q€4@ @ @ê«v@ @ @þW ‚ ˆª*­V©,,ÌËËȨ{‡Çär¹ÜߟNg2¹\.—ËåpÊŽç>Z­FSY©RUV–—[,f³ÁP›AAÑчÃf“H$‰ä¹I§Ój++_uØAp\¯¿ysÑ¢o¿½ukΜŸ~9òÒ¥­[—-ûùç¿þ*(8pàôéÝ»_µu‘–¶|ù¤IëÖýóA,^|ðàÆÇÏ»víÈ‘?þ8eJXƒñª=\¸ðÓO_' ϋ˥×ߺµwïêÕwï¶n=sæ¤IAAtú³Y¨ªz³ú׫ :J]º|÷ݳÇùuçgLðü~y‘öâ¸Ùœ™yèІ +W‚ÑþÔ©3g6n|Õí{\ºôûï³f£{÷ßß¶ííë@ òrÈÈxôèöí¸¸„„–-) …B©{ …B¡Rœ››•õàALL||JJCÙñ܇D"“©TF£ÓqÇ1¬>6ïß¿}ûâÅÀÀ C?)j¿¤GIÉ¡Cë×Ï;lØÌ™+WnÚ´aÆ ›6­]»|ùüùC‡>¬R¹\.WUUqqAAy9‚P©bq»vC‡ÈfÛlVëËñ°~ýܹC‡¦¤$&véòÕW+WnÚ´zõ²eß|3jTË–­Z rø°JUóS½{Ü´)…b·;8Ž ÚbµVŸ(³9+kÿþK—Ôjm(o1ÌdÊÈhÖ,!¡S§Ï?ÿí·' l6‚òÙõë{ö¬Z5n\‡}úäææç?éÏë¸N~ýõÛoGŽlÖ,!¡cǵkþyÑ¢Ï?÷Ý÷Þ›9sË–Ç_µÿfÿþ%K† KNnÒ¤cÇéÓׯ?v lw:KJ6oîÝ»E‹~ýÀ·Xrsݸqîܹs·l9{V­v:Ÿç˜TªPؼyïÞ=zà8AÔIÐã¦M[ºtýú5k–/ÿî»?7î“OPôUö¯ÃdºukìØ–-Ûµ[¹rݺM›Ö­[²äƒZ¶lÚ´{÷uëV­Z¼xúô~ý:v£Ê‹«:JµÅ¹1Ðé®_ß´é›oæÌY¾|íÚõëùeåʇÍæúz@`œ©¹½æÈSsŒzcg_+.¶Û ³¯mØP\ìtzöµ®][¶0@¥²ZÝß//Ò^2™Ë‰ñí_uTêÂéT(ÎKMMLìÒeæÌ ºy³ªÊå²ÛKJNŸÞ±cÙ²qãÀ»÷ïëõÿÏãeö@ yû°ZÍf£Q  %]÷+†¹\(Êd2™l¶gVrÝvx<>_$ò|­ÍŽ'ÀŽc˜ËU߀5Çq Š>ÉK*ÁÁ`öï?qâĉ Åýûɤ¦òxà=‚HOÿûoµšBñòêÑcӦÇ{ôpîß Û/‡‰'NìÜùðá³g¯]2dâDà-Ž’b0̘a±ÔöÉ'ýÝ´éðáE‹<ß?yréÒýûUªyóúöm×N*mo)/6¶W/©” ”ʨ¨-BBX,à‡XܬÙ;ï„„p¹|óͺu?üЪÕËgý×É{ïM˜ P:têÔµkS¦|öÙìÙ(Z^¾k×!C†ÌŸ &ìÛ÷ª=­fРɓ?ûìĉ#GæÎåpÚµkßA€øûöéÓZ­ÉTQD?ɈèÞ½wïøøví|};u^äú®ë³ÿîq}”šÊã„ÅòðáâÅׯëtÑ®•ú*ú׋B&K$;.[öé§ܲ¥ÓYT„ãGŽ9ât~üñ'ŸÌšåtöï0wnvvÃïeBóæÍ™sêT›6þ¹s爾¾TêâÅçΩÕ8Ž \î=Ët¹T*0Î ´yóàÁžÛ?¶XD"Ï‘§æõb`˜Ýn³ƒÁb5üÕƺfÍø| ôµ  &“Dª¬¬îkG^¼¨RMš4v¬»¯8›Û»···¯oË–O~¿¼¯æÛéÙ Ó}|:v”H¸Ü-[ 9²ÿÔT>AD,îÒeèСCóò¶o?xðÚµ¤$¡ð¿®­7£Í@ ò¦Êh¼;õ?–çž|¾P(‘z½Vë¹üí¹½6^ú"„ž·¯8nµfeíÞ½vmïÞ2™\Uuþüðá­Zõí[ûçβ²?ÿ5Ê-¬iràÀΧLi,?ÄbÉÊÚ½{éR—kÞ¼M›úö•É.]úòËÞ½‡ ûóÏ’Åêtêt¥¥KuhËúõEEî<ײ³M¦ÆÈûæ›,*úúëO?=~\£Á0«½{—.Õé¾ürþüV­jú"¹dIF†Í¶€H^¾¬×ÈâíÛwûöòr ¡Úí¹¹k×vè0}úíÛ&8‡UUçιßoØø;••¿þºjÕâÅß|³|ynî!«Wÿö›{£ñæÍÑ£Û´yòjq: ׯ¿yxöiÞ<%¥:»Ï媬~üáÃJ¥gl»v3çÞ=wlQ´²ò¿ö©%¥òС'ªªÜçE+*þùçiOøž‡ÐP6» à‡ÆŒùä“+zð`֬ޥR·<èt–•yöYawlm¶’0Îvjz¶Ô´ìi³nk/]€FÑ£SRbc#""#ããûõ[¾l'‘h4‡F#×á“Ë¥Óݹsð`~¾ÁðË/«W¯]»nÝöí7ojµF£BÑО·no“’úõ[±"/Ïnw¿·qãlöС]»úú‚˜tºHäïÏáTg‘ÕÝ–†…Áè×oÀ¡0?óæ 4‡£¼üôéÛ·[·îÒÅߟNš? ’ÍßoÞ â "™Ÿo2¹\B§{{k4ÿü“žn0`˜Ó©RÝ»gµÒé‡Y­b³•–ž?/“Ñh ß&:ÝÛ{ìØ¾}ã⎮]{ôÈdª±j4wo¯n%؇Fóñ©Îî£RÅâ„„ÔT³¹Zr|Q¨T‰$5µkW‘H­>zÔf+-=wÎéìÒ%"ÂÛ;<|È={îß7pÜf+-=uÊjíÔ |ÃôúÛ·÷î-, ©ÿ6‹Ò«Wrrq1¸Þ(:L¦PD¢Ñ£GŽ<¸{÷èh.´EUªK—öî%“§L™?èÐððšÞíܹqãÆëׯZµdÉwßýñ‰”ðd%žêvÈå}úüþûþý[·"ˆÓ©VgfÞ¹SZjµº\V«g<{ö801Ñ3žB¡Ý^XèÙCÁuåÙCÝ×ÕËÄvÀ€-¼¼|xΜ1c~ùåÚ5 æ ž}Døùb[sLð<¿ ×xž_Ðkl6—«¦tér² Ͼv÷®N‡až}­Y3:½°Ð³¯v<íû忯g×ëïÝóíÁ'=G{Ï^ ®%p^ ®%0šuìØµ«PFT0–6aB§N`Dc)†õèÑ®]C¨Õße‘‘î׸¸nÝV­ÊË«.#òìß°`¦Ñ¼½»uëÙ3<AH$'&fðà1c¬Öû÷²@ ò6B<#uÛ©í]¡P,–Éêc§¦W:V Ò­Ü€-õ·ö’Jpx²cÇ;©©<†™Í™™{öÔÿ³8n·«Tv;…âë;}ú´iO>™9³á=åó›7ß±ãøñ­[ccËËwïþá‡ÒR÷{Z-†±Ù~~l6Õ#†¯rz2îç׫×Àbñ–-Û¶>]\¬Pääté2lØØ±µ‰ ’ýûðÁ”)íÚ …âU‡SVväHn®Áд©É”›Û¼yb"A,[öÏ?eeÃàÁW® áá@¼ix8œÐÐ.]&NLNþùç÷Þ[»öÒ%騱ÿg±QS¨&‘þ{²ù³FßÛûwZ´`³·o/+»t)0°}û …à ÏÍݽûÞ=¥2$$;[¥jÓ¦gOð) ³Z ‹AX,Ok ‹%—[­ž‚¢§°^͵kK–,ZT^8gΘ1„†2™ÔõêQ£>üðë‹Þüw¬TªË—W¯>~œLŽ áñ(”ôtÏ}(Ϙ‚ÿ“HOöPÏëªqzh]€Øz{‹DOžk:Ýn//±­Ï>5¡P¼¼:wNIÑhúö7oܸµkN¹<5õÞ½sç~ÿýÅ…C*U,NI;vá­[GŒøüó{÷š6íÛ÷ûïSSÿùgùòäd»]¥òŒí“ü;óùÙ©ëü¾ùføp`Ö¬Ï>›7¯°°M©´OŸ9s¾ø":šÍF …ÍnÌøxöµýû?V©†•É@_><)‰JU*Ë˯\}M,¦Öù=WW{].“)/¯îÑÞ³{{³Xîk ôb:Ýn¿}øíëÛ­[»vξ}GŽdeåæÚ´ibqb"AÌš¥P\¹ѱcŸ>ryC?Ыþ.óœÎ¢¢ ú÷=úêU°å¿¾aM&'þ_1¤R9œ€‡ByYœ @ äÍ… ¢!f {Ú©ªÒh܉Db±——ØRÿcyî ,x¾+I$r¹çQêæ¥g@{*â —3r¤û†½¦Zþï-tº¯o¯^£Gûù¸'Èc˜NwùòÊ•+V4†Ÿ@Ãçr££‡_¼¸S'éÌ™ùó7m>\.ÏË›?íÚ[· Gµúöíë×5šº¦N“É8îp¨Õ6[CMG÷„F ?~íÚ)SbÍšíÛ[´øúë=d²ÚÅVÉ… 7mzðÄDòî]£Ñ… ãâ23g̘1cñâÂÂQ£Z·ž9sæL/¯C‡ÞΜŋ©ÔO>iø¶xžy6;4täÈÄD:½°pÛ¶êX2 ™¬×»%7›32þþûäɧY©Ý~ÃÀdFEM›6kVhèW_!ÈGuí*—S(B"ñù‘‘}úé°a_|a4N›6p`@ø îëÛ§ÏøñÁÁ …g ˆüüދ޿rëò• äw–-Û¿Éoï_íÚ59¹gÏ >u=‡ú÷v—«¢bÿþ ¦LÙ±cúô>80%…F++3›Q”ù¯xzöPp]yöPÏëª!yšMÛ .\P©}ôhϾּùwßÍŸïÙ×À •ú|¿Ô|‡N÷ñéÑÃs´GAQÏÑÞ³ƒk Aª{1¸–ªýþøc0¢‚±T*åóããÁˆ ÆÒ¡Cc>‰û»¬îü×7lms¹Ìæü|\u(Z^~âĺu••±±“'7F[ @ äm”K­ÿkÝvÀß@2öŽëo§æþ`‹V«R•—ƒWÏ£ÔÇÚKÊ€v:Šsçöïß¿ÿÚµx<¹Übéß¿wïŽår:AP´ªêҥÇ-/·Xt:“ÉáP«oÝJK;|¸¼Üb©ªÊÈ0™p<6–Çóó2dùò¯¾4hôèÉ“CBär‰$.nذ/¾hÛ¶a¼~jµFcAÁ† ¿ü²ví½{ÃQ^žž~æÌéÓjõ˜1çϯZ5sf~þW_Í™3`ÀàÁƒõêåçÇåbØÍ›‡ïÝ»?hËíÛçÏge™LcÇ&$ Ô¼9™¼hѧŸ~ñ•:a„ ³gÙ¼yÃEšF“Ë;w6Ì×7116–Ïw礡hUUM@$³³¿þzöìáÃG ìÓgÚ´E‹>ü°ú“ƒ èÂ…lv«Vr9.2™}ûÊåvû¦M¡¡ï¼óä3†¸Nöí»rE£1™ŠGŒF ‹ ;¶G?¿©Soß60¬Y3>?"bÊ”wßMH:tÒ¤o¾IMŽŽˆèÜùÖ­Ý»÷ì)(@ôô²2³Y«=wN©t:Û´A«WÁù}ôH*Š 1¢cG©Ô-R½d2ŸÛ«WóæþþÞÞž‡ a±–- éÞÝߟÉô<_>>®X1kÖÂ…?ÿüë¯^^(ZZš™i4¾v-ŠªÕgϦ¥:ZqòdQ‘ÍÖµ«¯¯Ù|îÜÁƒGÞ¸a04kÖ¾ý¤I›6­[ÇfÏž={öγfµo¯T?¾oßÕ«÷ïóxÞÞNç!½{·k'‘Ðh ¼ÆÙ³5û—\Þ­ÛŒ}û<8uêwßýòK||@@ddx8•zíÚòå[·¦¥O._Þ¿?-mâÄ1cärw1› µš Ü=\WS§Î˜Ñ´)衞×Õ‹sóæÑ£{÷>~üèÑåËÉTYù÷ßwîèõÝ»§¤…T*æãÓ¤ÉÙ³Ÿ¾pa^^d$ˆíгf}ÿ=ü¨{wü¾vÍ`P(Ú·÷Ý>}¢¢„ÂøøéÓçÎ]±¢I??C¯/*2›¿þúÇ¢]íÛÛíþùõ×óæÝ¼Ù¤‰¯/…2`ÀÒ¥3g&&r¹Àk?¿-îÝûðCÐgÁ¸jÕÏ?/\ˆ (ègþúëÖ­I“† iÞ\"a2­y&M80,ìÉ1aäHÏó=fÌÀ••Õç÷С´´sçFŽlßžÏ_²dÚ´Žãâ0 AD¢  ÔÔÞ½§M[¸ð«¯Þy'>þ‹/+>ž}ÍLJÉܼٳ¯‘ÉA|<‰'•zö5ÏïÐÞ³gI¤Ã‡ÿëzF€€#V®töŸ|2gN—.ááAAîÑ^­&w/.+[²dÉ’5k23Y,ЋW¬˜5+)Éí‰Äå‚•Íß}‚ Ba“&}û††úø0 #q¨Z­Ù\Q‘–¶gÏáÃ$Ò A½z%$˜Í.¤¥íßýºVk±(÷ï –”$Ôþ ët¦¥­XFŒk×>~|òäwßã¿Ñx÷îO?}ûíڵ͛óù¹¹Zm‡K–,]Ú­[C¶@ @ÞØl‡ÇÓëu:µºþYÉV«Õj6s8\®{vkM;RY]Á¡Ï£Ô´ã °F¡P(TªËår9À¦§Ï£€íÀ™L&?m?I§Ój++_uØ!òf°|ùèу;“&­Yóé§­[Ëd·ooØ0fÌçŸÿõ—·÷¦M'NüüsRÒÓëŒCÞ.L¦[·ÆŒéÑcÁ‚6mvìØ¿òäàà†xœ@ @ o7jµRY^®×ëtMHHXXLLÝûÉX¡(//* E"©T.÷ñ h(;žûäæfe=xàçJ§Óéÿ•*lÚlV«Å"ˆÅ2“É`<ù©—$@ƒ%êÞ'77''#£±=yû¼}s}~¾V¼)mi¨ö¾-mXÞî¸Õݺס]÷îmÜ8cÆO?ݼI§'&&%…„ØíËÕ²åĉ'ví@§7^=üú¯[Ü^>Ï«gÒÙ³[·Î™³`ÁŠgÏúøŒ;mÚŽ3fŒùò–ß…@ @ 7P0Õáp8EѺ ú"‚€Ìb …J¥R :N'‘H$©¡ìxîc·Ûív»Ëår¹\õY`Ød³Ùl6»¦5Ì€†@ @ @ H£ó” @ @ Ò(@@ @ @  !@ @ Ò(P_µ@ ÈÛ€Íf³Ùl†aVŸ[êXÎ…B¡PÀ’1T*F£Ñh¯ºÅ@ Èh@ ä9¢³BQ^^XH8Žat:N§ƒõÅê(8Žãæt:‡Éd4êõ-Z´mÛ³§Ãa·[,¯:@ H]À@ È3ƒ¢(Š¢F£Ñ¨Óz½FÃ`0L&‰D"‘ÉDƒl2 ‹%‘xyy{FcUÈ„~Õ‘€@ @ê¢3 «ªªªt:“Éd2™ªªt:.////7×f³Z­ÖÊÊÊJ•ªwïÞ½{õ  c2 ãU¡­V«­ª’H$±øÅ­¹\.—Ë¥T*•*˜Œðª[Yoî·g••••JåÍ›7oÞºE£ÑéTjPP``PPLLLLt4™L&“ý¡‹§'YYÙÙÙÙ6›ÍfµO‚ƒƒƒƒ‚8‡Ãy9‘Q(ŠÊJà‰Ñh0ááááaaÀ‹Åb±^NdjC§ÓéôúÌÌÌ̬¬Ö­[·nÙòUyâ L&“Él...)))Ñé´Úª*­V§Ój ŠŠÈd …BéÙ³GîÝãâââbcÛÐ7óóóòòó' oªTjµV räèÑ¿ÿ®¨(-ÍÎNNNJJH ·ÛA://™ÌÏÁ Ri4__©”ÁÐéT*éÂ…ôôìì„„&M¸\:Ýlþý÷ù%44<¼I“V­ZµjÕJ( ‚iLvvvvNξ}û÷§¥µmÛ¶mëÖþþl6‹Åb1™L&‹Åår¹¨çt:(:a„ &¨Õ%%2™X,të6`ÀˆݺuíÚ¹³Ïóù3kÖìÙß|“››••ž6tèÈ‘'&&&&&$4ìͳÍf³Y,l6›ÍãAàø³žA©T.÷÷UgðYgpݺU«–-Bjiiyye%‡#H$:V«ÑˆD<~õªHÄç“H,–Xœ–Ö§O¿~6TLêfÆõëW¬ˆŠŠˆ !‘Èd*•Ïçrét.—Ï‹Á¸ú‚XÌåòx‚aUU$RHˆŸ_‡mÛ&'[,f³ÁpìØ±cÇwìØ±c‡v»Ýîp7xúæÄ‰|0mÚóyò|ç"/ç¬yFŒÇc2N‡ÃáñÀh&I$r98w`4 rŸ;0šMúÑGãÆY­/±ê<Çë ºY¾|ùò•+Áßà›=44$$$äUûùߢf´Õj±˜L<'xÖ}[,‹Õ ¶€_¡ åÁ ×kµ • 3 !@ ¯7”¯¿ž9sÆŒú@¡¨¨P(Ãl¶fÍš5KHx<.—Åb2©T:NK£iø\6›ÅJOOOÏÈÈÏ/(ÈÏü8##//$$8ØßEN“‰B¡Ó¹\¹\&“ÉžU¹“ƒÁ ×_¼xñâÅ‹ii{÷îÙséÒ¹s§O9rèСC¦¥8°oßÞ½»w8°oßiiiiiiGŽ9rø°ÕªÓ©ÕÁÁ~~Rip°¿¿LVPP^®Õ¶oß¾ý;ï¼H¦êÖ­üñÇ<‡Ãd¶mÛ²ebâÁƒ‡=ZZZ^®TÊd2™LÆçóù|þ‹ 7àæ‡Ãárù|ÇñÚ¥Ï3˜œÜ´i|<ŸÏçs¹4•Š ,“I§¿Ì3ø"¤¥8pà€Õj4jµjµÁ0tèðá£F5mšœœ’ÂãñùBáÇgeõîݹs«VgddeI$R©\.—Ëå ë‰Å¢ÓUV––VVVUO† :tÄ Ãq‚ž z½^ïtÚíV+ðD*•J¥Ò†Š›§'ã.WÏžýú  <ñóóóóó;{öÂ…+W€':´mÛ¼¹^oµâx}<©ÿ•Vòó õz­V¡°Z­V‹…J%“1ÌÛÛÏ/4”J¥R®zfmæçgf&''%ÅÄ ƒÅàïïåÅá°ÙL&F¡ …B&#Î`Ðé GlÚ´yóŽ/^ºtãFnn^^Q‘H$Ðé»wïÝ{è¿@@@€·÷³]c oFG‡‡{{gddeåç;‡Óéëëããåµsçž=G6oÞ²e§N?ztï^PP` OYYYYyùáÃGž> <}sÏžjO»oêõz½Áô5öùª±¨¨°0™L&“Ëe2>Œ¸ ¸zŒf4F¥‚s F³C‡&bàÑ]ýû«pœ æðÖŸ 6nüí7»Ýáp8 èß¿o_‘H$‰^µ_ÿ-jöw§Óét:µZµº¢‚Ë)«#Èüùß¿t©P(òù‰X,qŒKà±1…¾gž ‹Ål6™‚ƒÃÂbbPÔé´Û_u„ @ §óÌÐl6›ÍfÛ튒Éd2•J§3ŽÃa·›Í8Ža.N§³Ùd2…B£!™ìt\.‡Ãbeeegçæfeåäët&‰Å`0tzýý‹±Ü¾}çÎÝ»ëÖ­Y³f ØÂá0™t:#.—ͳÙL¦Û> çp¼¼D"€Éd0ètw:qEQÔåz¾°‚Û ????ooÇ0MHhÖ¬¼\­¶ÙRRš6MLV«Õjµ¦§?xpû¶R©RUUuèйsAAÁÁ¡¡,›Ífs8 ÓˆËe³QEuº€??™ ˆž Mš4¬';·mÛ¢Ÿ/“ð¬VŸœœ’’œ <Ù½{çÎmÛÞy§eËÄDàITTCÆÍÓ“;8vl̘÷ßw{âï8pà AƒOPE1¬¬¬¾žÔÿJ«î ?ÎÎ J+*Ôj³™FãrïßoÕªeËÔÔIÝètz½É”Ÿ_X¨T¦¥>|òdTTDD``õâQd2•J£1™ær96›Ýîtøùùø´lÙ¼y|}úôé6mÚ´iÓ†Éd2™LMD`’ {t1‹Ã‰€u Ãq ÜNƒœ5ð}„a†¢B&ÓhàûÈj5›õz­V§3™^$bÏÚJKKKËÊÀ£…èèèèÈȆIý|(++/÷ö–Ëe20{éåûð¬¸3JÁßÕ¦Èˤîþ^ÛuÙ»wŸ>ýûs¹<Ÿôèñã.ˆÅ›íëëëëí Š¥¦6ožœüªÛ@ 4Ï,@ƒ¼ÝóçÏœ)-¥P€ÄŒ Ád²Ù|¾Ãa³™LV«Ù\UE£eR$©”ÇãrÍf …J¥ÓããccCBâãÃÃi4Á(*R(Ü?åA­d –ÕÇÇÚ§OïÞ½zmÚ´zõŠÞÞRi` Aà8A &“Åâra†i4:Á²­V›ÍnÇq'ˆÊJF§ËÈÈË+-‹‹Œ :tܸ>Ù ÏVÕ"ðù<XµœÁ™”ãà–#11!!6V«ÕjµÚ?þøãÉ“}}ýü,øî»ùóŸõˆ‹Éd0€x:GíY0žgP©T«uº“'Ïž½q#!!1±yók×nßÎË»ÿáÃŒŒÈÈÈÈÈH‡ÍærõzƒA¯'‘H$ E£Q$‚÷Þ?~È—‹DrWÍ~Ö3ø|X,V«ÕZPPXXR2hP¯^íÛ?|˜•õø1È0¢R)2ùþý{÷îÞEQ«µªªI“˜˜ðð?ÿܵëÈ‘éÓ?ùäÓOÓöíSSãã³³³² '@ ^¹réÒùóÀ“Áƒ{ôhÛvùò_ݹxò|yOµáéI÷îíÛ§¤\¿~ýúÕ«À‹Ål6oݺråôià‰R©R)•,ŸPOê¥Õ ˜[Ð¥KçÎ:8V«^/—{yq¹aaÑÑÉÉqqqqqq “ºå,¢££¢zõŠŒŒŒŒˆxÿý÷ߟ8Tî¦Óét*Œut:ƒÁåâ8Ž£è®];vlÝÚ¤I\\D„Ó‰¢.W‹ÍšM™²uëÎÿÝ´iÓ¦IIÏÚ@ß>Ï— "†aæt>xžž}áÂ¥K×®õë׳g›6r¹L&ƒï#±X. EÉð?~êÔ¥K11ÑÑ¡¡Ã‡Ü­†á8™ü¬{Ö¾ æî€¬^‹Åb±X>ýô“O¦M«ŠŠŠ‹KJ@?’J½¼$’úû ›;wþü…  .üÀöïߨãö‹ã¹ [ÃZ½\©/³FÿÛZ­Ñh4¹¹99yy`K«V­ZµhñòËò€kãÚµk×nÜ["""#ÃÃ¥R///¯·ÿßýýÉ+³    ¨H¯×ëõúÈÈÈȨ(//©T*EQ›M«=þâÅ7FŒ5jìØk×nß¾sçêÕ+W.]ârÙlƒÏD"per8l66p`ÿþ½{¿ÌxB @ Å3 Ð`’5¸}‚†ã.h ‹Ï§P(*ÜöS©4‹E¥R© F§³XF£Ëåtâ8‰D"1™,éØìÏÎCQ— ÃÜ·¦$‚0™L&N¡Éd2†á8޳X N"!AÐét:¶ëtƒÙìå%ñùb±X,½Èô a˜ËåtáÙé´ÛÍf6›Å¢ÓÏž={öüù®]»téÔI àóù|__¹ÇQÔjuKKÏ&Ç8v»ÍF&S(Ôÿ8§žg088(( @&“JårPÇùöíÛ·oß>sæÌ™S§¼½år©ôêÕë×ïÝóóóõõöŽˆˆˆˆˆ‹ó÷ ù|.W&óöö÷×é,íåä>¸\‡Ãa2Y,Ï××ÇÇ×—ÏçpX,…¢¢¢°,A–”N"¡¨Á°fÍæÍû÷'&&%%'ƒÛÑÆðääÉ nßîÚµ]»ädàINNzºF“”<ÉÎÎÉÉÍõôLém(<=8°wïÎss‹‹Ýž€Ê©©‰‰QQÀ“S§.]º{÷§ŸV®\µª>žÔÿJ«IyyyyE…·7¸ÂÁ²o&“Åâp0,—K&3™îšò`’r^^^^^^DDDDDDcd /€ Ùêúž ¬„Ùìããã#“á8†¡¨ËårÙí$‚H4Îd‚¿²²²²22Z·nÓ¦];‹Ål¶X€,û¬Þ‚¾ùàÁýû·o?xðàÁ½{Íš5oÞª•\.—{{Ÿ:uâÄáÃ6›Ãa]ºtéÒ½ûÕ«—.egƒÇBt:ÎáØlV«^FWOO»o²Ù‡#‹Å\.“‰Dd2…B§;N§H–Æ**R*Á¼«ÕjµÙÀC¾)C"ær¹\K“&ññ11»víÞ}äÈ¡Cÿ}áB\\L ¸fÈd*•JÍÍu8œN§³¸¸¤¤¼<''/¯¬,66::$EN›íù"ö|}A$‰„Â>xÿý÷Þ;vìøñ'ÀkÝ»wëVÛ•Jܾ}ûö;T*F¥¶hѢųÏˆŠŠŒŒˆ ¹xñҥ˗·mÛ¾}çÎÞ½{÷îÙ³¡¤º7 ‡;vîܵkÚ´©S?þ|Žã8˜Õ„ãã˜àêç‹F£Ri4p½m ’8(ÅDí—)È‚å7Š¢.Š6k–’ÒÐ9¶`”ž7oÞ¼ ÀüN§Ó £Ñ`èÚµK—Îö;®nONŸ>}úìÙ={öîÝ·xb³Y­6ÛæÍ¿ÿ¾aË{Rw¯ùhD,–HÄb %/¯ `ïÞÝ»w쨨¨¬T©†<¸O0N:‡Ã‘””””””••‘ápØlfs÷î={öé£P( ÅW¯^¸sÿ!@ o.ÿ÷3://;;=Ü„³Ù\®@Uó ƒÁdº‹SHàö‹JK²0L&‡C¥Òé,–[ÐA[„¢T*A€iìN'˜4 êã_¼1@J?Ð_t:„d … „ Ìf«ÕfÊ.†¹\@’ÖéA8‹Áu™_D"²Õj±ÞÞr¹—×áÃÇŽ;rŠÍf³Ùbùý÷ßÿý÷Áƒ‡ <L$Š Òh´Z­V&{¶ük‡Ãé´Û«‹ÔŽç¬¬¬¬T«}|üü5F£…zõêÑ£sç’’ÒÒÊÊþýûöíÞýÆ›7ïÞ½yóæÍ»w™L %:ÚϯE‹fÍÀw}ΠÃa·Ûl¥¥ÅÅyyàJ‹ˆˆŽNJ¢Ri´g—ÆÀ4ÿ÷ßÿàƒ>X·nÍšU«||$’  €k÷îÇ™™99ÙÙ™™qq‰‰ÉɃÜnw:]®k×nÜxøde¶h‘šš”D8N&_½zéÒñãt:Î`øùùùÉdl6—+™ÍF£JFW ÃqPÕýYúf}"VO ‹]®jA|#\¹ríÚ;eeåå …ÓILfnnNNNŽÙl±˜L^^bñ°aàÄó C bN'†‘Ɇaáïïççë[RRV¦P¼óNÇŽQQ@–r!‹ÅçS©.\¸pçŽ\.“ùø€:é4(ÓQ߈yRÿ¾ðôÏ’É={öèѽûÌ™_ýÍ7`)Ý1cÆŒ5Êó[  ,\¸hQ‹©©Íš©úE¾=AÌ;uêØ±C‡M›~ûmóæ9sæÎýöÛ#†:´cÇÚ·>ËuÁˆA¥>è_7@€NKKK;tˆÏçñx<³Ùb±XPÔét:M&³Ùý7xŒòúAa0èt:Ëåñ¸\ð7Ø–’’’ÊZ%%ÇÛ/'bÿüsüø©SAAAAÁÁà*ÍÈÈÈÈÌŒ‰‰‰‰Ž~q)ô©ƒ<|ø“O¦OŸ2Ìf¿ æÏÿî»ï¿7›M&³yРAƒ h¼üzOO®^½víúõ3¾øâ³ÏpÀ™}qOžµ¿óx\.‡E د_\\zú£G`EŠŠòòââ;vìØ¶mÊ”)S¦M3ôúªªðð°°  ðè®ñ²þ!@ —ÉÿÝÂ……EE%$x.®ò|j~€Çãñ¸\×ìt:f3e€äG£1™L"‘ÉL&‹%¸\(j·ƒZœ@¸ñòòñ‰ŒT«ËË33Fƒ¡ªJ& hÞüÅÃç …b±Íf·;,“É`Éd2‰&ÑcA€$ ^AЊ •ªªª°°¬L¥zñ[D æ:N'ŽK¥‰HTQ¡V[­ÝºõèÑ·/X‚J¥R©”ÊÝ»÷îÝ¿ŸJ%‘pœF#“].ƒÁ`0AÚ³Þ"ÖgÏ3xõêÍ› >bÄèÑùùùùùù^^b1—;bÄðájµjµJe6›Í&SïÞ={véÂb±Xl¶Z­V+•ùù99ÞÞÞÞr¹OppË–u·  77==:ºI“-À•„!ù÷”ÕúðèÑ£GŸ>>>>>³f}ýõ—_¾ÚÌhƒÉd2 ×Ë]öìÙ½{·n»víÚµwïŠË—/]úªZ z8 *•Z­VƒÇZ­V[U ȨÕjµF¾I9‡Í Je2©DiçÎ;wí‹3Ë[¶lÙòÇà—XLLtôÓ’ jræÌ™3çÎݹs÷îÝ»`m ððþÞ½»wïßŠŠŠŠŒ¼wïþýÀ£ ð©ï¾›?îܹsçÏ_°`ûö;þú«Y³fÍRRÀÕ’@¦yý¿ m6›Íf[½zÍšuë€' Vwîܹs÷.ðô£qãÆŸ8ä€OŸ>mÚ”)׮ݸqó&ð$99%¥iSðx’’’œœœÜ¹sçÎ;ÖíCÝý½¦L ö§PètÀÇ'00::00,¬I“ׯ_µ*<<<<$$ (("bݺµk׬±ÛÁC^»Ýnß½{×®íÛA«Af=”¡!@ o.ÿ'@ƒŠÉà§¼{:‚ßjEQ dCƒ›jà›Åb±X­ B®ÝN§Çç‹Dt:†ã$…úO홹žW‰ä.¿@&×v¥*Þ/^¼xõê•+W¯Þ¼i4šLVk~~~~q±——D"ƒ1A„ H$2™JÍÉÉÊÊÊ ö÷—H¤R¡Ðf³Ûív*ä ?Ϙ΋ÓétZ­þþþþ~~\®^¯×ƒ¥‹ŠJJв²Š ¥²¼\¡P©öíKKûç°Ì_çÎ:µk'—Ëd “ÉáˆD@\yÖ¾YŸˆÕ”P(JK³³õz­¶¢ÂåBãñãÌÌü| :ïÝ›–vì˜^¯×ëtýû÷ï߇…ÒÒÒÒ’ Ãqéƒ&N5*5µY³ÄDp­ççUVŠDB¡@йs§NmÛ&$4i¢Vƒ D§Ón·ZÙlÇÏïEÎ]CQUUU¥Õæääæææ‚~a.—Ëõ2Å_ yÿöÛÆë×ïÛ·ZÚûï¿ÿþGmØðë¯kÖx{{{{{¿üÈxÎd¢ÑžgÞLݸóäÝE_<åFÏ<اýõä§N¦|ZnõP¨¤}ûöíÛµûé§åËW®>ùòê‡% ëamÖ€'@º•H$±ä¤ß¼yëÖíÛO~¶ÚÂËÉ/ßt g|í¦M“’š4ÉÎÎÍ-*êСC‡ŽýýýýýýÁ÷xQQAAvö÷ßÿðÃ?^¾|ùòåËçÎ9süxãy@ 46ÿ'@ z½Z-ŠÅ2þãcT*•JKºsHèt6Ûf³Z  *>c˜Ëåp€ªy@ÚÆ0u8À-€Ýn·!ûŦӂB^o2•—+•UUAA>>à†+ Å] ãÉ[)2´ÙlµÚítz]üëƒRYYYY «a³9°œ——;»Ã0 ÄŒJ¥Ñ"<<44(¨yófÍRRªª´Úª*OI®þÇ­ÿM”BQQ¡V©]§Óét: @Ëå2™@@¡É8N§³X|¾Z­V«ÕÀoooo// CQ‹ˆ»v»ÃQ¿3&õ{^iÕ±Ž=tèàÁŽÛ¶MMU«Õj•Ê××ÏÏß¿mÛ¶mÛ¶Ò³§°NÔ]´áùYWžž<~œ‘‘™ùÍ7C†ŒQÓ“ÆxrìØÑ£‡ÇÆFDO@dÓú\iMš4iÿ÷ßG9B£‘ÉN§Á`6;;wëÖ®R©R©Tee¥¥ÅŃN§ÕJ$R©DêD;vì˜1ÀgF£Ñj¯_¿|ùäI «¨¨ªêßР#j;®ç•æå%“ùú‚ÇMµíŠøúúøH¥ÉÉII11‘‘‘‘aaYYgdH$|¾¯/&A~4(=„ áá!! —F£ÑÈd0š±Ù›ý"cŠ¢(¨´m4‚©þ¾¾þþaaÉÉÉÉÍ›wîÜ­Û€F£Ñh0€ŠÀ EEEy¹¯¯¯¯¯/Ž»\îG} /òYûf}"V¡P ôz£Ñf++S(ªª’“““›6-**,,,,++--)iÝ:55!ááÃôô¬¬7nÜ´iòäÉ“?úèE¯E°"‡w¥Ri4÷Ü›Íj5A=q0‚,vPôcòä??žD"§|=ß¹k(éêÂ…‹/]Ú´iӦ͛ýüüü|}7oþí· þþûï¿ûå—Õ«×­ûãÍ›7n|9£ ¨Y<~ü¸qcÆ€ß|3gÎüù#GŽ1|x‡:¼óÎË©í Çr—àxþjÃ]8ãå­dPàÑ)ßPÊ£þ€ÄYRRZªP€ïwO D|Ð[ëo­K—.]:u¯žÛssssóò–-[¾üçŸÛ´iݺU«ÒÒb0 ŒäJee¥R¹té?.Z]ßœëÚ¹Ò3g~õÕŒµyRXXXXT´xñ¢EßÞ}üøñ㌌U«~ùeíÚ÷¤îþ^ó]…¢²R©ÄqápÀ#aÐAipÅ=¹\.—Ç3 ƒA.—ɼ¼L&£Ñ`|À§`4@ äÍåÿnE"±ÔšùVÿ•õÆ`0,Èt&— ,¸‡¢îÊË ‡²eÁþ 3È`;•J¥2™jµVk6ƒ)/Ò ðÓü»ï¾ûnþ| 4€Š{Ç?~òäÍ›7n\¿®VWT”–²Ù †[ÒyÐ ÷™Ãa±˜L› EÉdaù|ž€¿G=JO§Ó©T‚0™ °øòë@¹ — EΨ¨è訨“'OŸ>{EQ´]»ú/„²D].u8ê³XXxxXØîÝÛ·¯YSXX\\Qa4šL6‰Ä&óý÷ß{oäHðØ€B>™L¡HÏvAÛ=¯4÷ƒº7“••••••ÅÅEEÅÅÓ¦}ú錞TUUUét7n\¿~ãð$<<<<2rêÔ?ž4 x2zô¨Q£F5¬\õ¬WZïÞ}úôí úEHHAAa¡L&“I¥ (JÓ¦II‰‰¿üòË/«Wƒr.P( <°S 2dìØúÑóJ«ÏhÆbù"‘@0|øàÁ={VVªTUU ÏÏÏ×W.§Ó 6#X–³°°¸¸¬ : /øøøøøù½È˜&–ÿþûÖ­û÷5vì¤I ‰‰2I«ªªªªª@&Ý•+W®=J(ª×¿óN«VQQ`‰,Ð7ëïɳF¬&‰DâμnÙ²}û~ý´Z¦²²[·®]»v½{÷îÝ»wÃà kž>}áÂíÛ¿þºqãæÍ­[·j•š *ê6oÞ¼y³fÏzt§Óét¹$‘ˆF#‘(”êªÖåå••§N8qüxPPPÕj·;<…B"EGGE……Ù9 äÔó»ú÷O@ŽÿŽ;wþõW^^^^~þ÷ß/X0þöíÛ¶ýñ‡çžC† 2hxÝ»wïÞýû¯_¿yóÖ­Aƒ èß¿M›6mZµzÖ£?+ññññqq¿ÿþÛo6€Gz§N>}æLQQQQqñèÑ£F¤Ò†=.(H®|°è¢{‰a‰Dï6Ô›`Ü^´è‡,hìx66`Ì}š6MLŒoŒEÁ¢Äëׯ]ûË/ \ XÀœ¯Ì̬¬¬¬­[·lùí·Æ~Páéɉ'Ož:õÇ[·nÛࣨӉ¢ åIÝý½¦@ çääææåY,ƒB¡ÑhµUUîôw8vîܶí·ßÔjF«=þÂ…Ë—ìß¿wïåËúiÉ’êe´«Ù†@ @Þ<žó‡8“Éb¹«1:6›ÙÌfóx Èõ4LÃb±ÙB!ÆåºåAQ»Á`±¸\£Ñlv:ª4´€WàfxذaÆ éÞ½{÷®]AEÚM›~ýuýzN£Q*©T2™  :äÈQ(† Æ‹ø$3®ªJ£a2 Ín·Ûm66›Í–ÉÜYᆢžk©ƒœ;.—ËåpL&ƒÁ`SAêwkM£1 ùê³?›Íf3™:¼óNjjJŠÑ¨×cŽÓé‰D"H8nµZ­‹ÃÎ ƒÁdr¹}kRTT\\\¼víÚµ¿þºxñ¢E?üpåÊÕ«W®DEEEEE¥§?|øàL&“|j7û÷ïߟ–êT‚ܨ={öìÙ·,¾2sŸÕpk½|ùŠ«VO@n¸§'mÛ¶iÓ¶­ç§@Žê‰'Ož<é9Ñ7>>..6öE<¹{÷Þ½û÷SRš5kÞxr÷î½{÷îÅë€'5#óâ<ë•‚ À°¨(8$C*Al¶ÀÀ€€„£Ñh4A/–JŸmAÎgŒfàa»Ý‹«V/zæt: ™L¡ÐhîEö„LÓöA=yЄB¡P&{‘JED„…¬^½råÒ¥;véÒ»wppppPXò A„ š4iÒ$1ñôéS§Nœpç,A€¾ Â5váw ™L&Óét8ŽÒÒÒÒÒR‰D$âñ€ˆ½oßîÝ[·b‚Ðéï½÷þû“'Ûí6›Í¶lÙO?-]:|øÐ¡C†<ßÑÁ¹ÿÀ÷Ÿ/ûùI$"‘Ù,—ËdR©@ªP …"Î`°XîÂPîˆñxϱgí V«Õjµ~÷Ý‚ Á}öìÙ³gÎäñx<¯îÏ}jÊ. …Åb±X,`§‚‚¢"‰ÄËK"y>O@eIOOär¹ÜÛ; ÀÏxnt=?¥T*•JåÝ»wïÞ¿ï)h‚,àñDÆÓP­ØÓ“ƤžõJ«G=zôèìÙóç/]’ËÅb±,9€Çýúõë×§OÃú_ÐÀÒ `KõŒ Pm,Òˆ óôEQ«”ËË`j4Z­Éäçñ"=xÒªUjjb¢\.Ûí8ú*®Ñ¨ÕjõìÙ3qâûïôѰaÇn·ÛlV+›Ífƒ"4xPñr … ư Î;{v̘1cFŽGW»^o6»\ݺuïÞ­xäwéÒÅ‹çÏ÷èѽ{×®|>Ÿÿ_òkÝCw…n2”þøóÏ; '‘?ÎÈÈÏ?{öüùkך7OI‰çpØl:Ýs4{¾ˆÕ§/”””––•úÂ7oÞºuëÖ§Ÿ~òÉ´ià¡BýÆà௾úòË/¾8yòÔ©3g@VòСƒÐȧúÿQêÓ§wï^½€LüèÑ£G †võÒÏX®cÇÚ··ýìv½Þ`ÐëÁ>@‰D"÷‚® õ˜êå”7yûßGàõÕz®ÌÖ­[·þ¯…‘Ÿÿîï5!Dèèè興¸¸„„æÍ9‡ËsY‡ÃnïÝ»wï~ý€ç¡¡ééééW®\ºtæÌçŸOœ8yrzzzúÇ÷ïß¹síZMû@ È›Âs ÐP(‚œ+Õ ¦0£¨Ó Vë¦Ñ€Ðæp¸\‡@ ‘‚}Üù¿d2…¢PTVªÕÏWï¸&$j{ÔÖ¯íÚµk×¶í§Ÿ~öÙ§Ÿ‚UæÿüsÛ¶;žob/ÿù矎¿?==#ãäÉÊJ• ,èå%‘ˆD[·nݺe‹ŸŸŸ_@€L&—Ëå ññ11ào©T&óö‹t©Í¡¡¡¡!!@X¯ûè<Ÿ/¢¨Óét¾¹g°&qqqq±± ¼FllLLL XæÔ£8pÀ€~ýj~jÞ¼¹sgÏoذqão¿Mšôá‡ï¿ÿ"ž€Ç ïxRQQQ¡PxRóLiÝ?þ¸dÉ?4TL€' 2 ~ÿýwßOvîüë¯Ý»A6e}®™çãY¯´Ú5‚F“ÉdÂq›M£¡Ri42Ùd2™´Ú^½úô6¬1ü¯ è ‡Ó‰ã ÇÙl¶X‰D& 9>ŸÉÄ0'°Ì*x0C¥²X,™L£‘H Ͻ¬¬¼\¥êÒ¥[7_ßéÀ&“ÅâpâââââãÏŸ¿xñÚµª*:Ýb¡Ñ¨T:}êÔ?6Ìb±ZËËy<6[,vÏà@‚}T…n¼¾é (¬1uê”)“'“=ï‚ÜÃéÓ§M›6íúõ7nÜøú믾úê« ¾ÿ~Þ}ÄȦÇ6tè‹Ç|CõíÛ§Ï«ÎØ£MË–-[¦¦¾¸5 &$$$ÄÇ/^¼dɲeG=úÏ?jµF£Ñ€}Àyüè£I“>øàë¯gΜ1£>ùãÈ‹Sw¯­D†ÅbµÚl`®¨Ž ’À\7­V«ÕhÀ'AÝð8¯Z¤v8Ü+šÀ@ 7•çžH$ŠºWw8¨T:ÃÑëõz½Þb1›F #M¡P(ÊÊpœ >…)Ôj•ª²ÒjµÙŽû÷>ÌÍ5 £äá¾ü€Œ'»Ó¯_ß¾O˨­  jË–-[¶h„ŒŠ …B¡ËÎሕ&“Éd2=xððaFÆñã'Ož9ƒa.† …"‘Hê±* EeeddddDD}Ž&惺ÊoߨC:{ö¬Y_}dðúȬï½÷î»ãÇ7†''øÖ§' ›²±=yö+­.Þy§]»¶mss33ïÞÅq—Ën/)Q( _æâf /hµUU:Ë…aþþAAÁÁ$…Â`ÈåR©Db4šÍV«Á ×ët „‚F£Õêõ&“Éd6[­6›ÝþøqffQQNNNNNŽTêåååõ|=x‚¢.—¿¿Ýn·;±±±±ññAfµZ,FcnnAAi©ÍfµÚl.ŽWTde¹\(Ša o¦¦¶jաËxò¬Ô}Ö@Ž3¸>ßy§}û¶m_\z®1 s¹ìvGK§ÓëÍf0šUUéõ&8w8N4ZAA~~fæ‹G¬>}A"‹E¢ÆŽÿÛÈåóÀöï_TTXXTÞõò’J½¼ÂÂBCCC¸ÿªý…ü¯Pw¯MV«Õj¦¬¬¬ḭ̀ì­J¥RUV |>ŸøðÁƒ{÷‚ù5`P¼èÏ?·lÙ´Éb±X¬V°<8”Ÿ!@ o.Ï,ñ€² Gø»ï~øaݺêâT*™L¡€åë PYTâc³96›F£Ñ¸ÜèèøøÔT b±¯/¨}üjŠáp’’žOâ ¨CÚèúÿ`ˆžÝîp¸ÿ¥¨À4L°4#°r]ëstPôm=ƒžÓ¢ANqýK”€Éþá huý4ÕUP9¡P(lÌÅ«#ÐpÒ0Èd¼~ýÖ­{÷Ìf£Ñd:täÈú-6ØP€¾°{÷Þ½‡;vâÄ¥K (AH€Å€øÎf³X,–@  II))mÛ±L*•Ë RR’“›6}¾úæo¿mÙ²w/ðÄÝ7Av8‰D"¾Éç ðôM_߀€˜à è›/âIcr÷Z¶lÑ"5µU«–-¢>ìÛ±ÿeÀÈàïfÀlÛ¶mÛŽà*«;€w_µ§ÿuÀ8¾« —¹ç èׯG°'¨ m6›L‹{N‹æÙà8Èwö|˜¶ÐhT*ø%ó¤ Rê‘0@ Òxt:­¶²òU»@ ¼I (Š¢¨V«Õ*•%%yy PUc<Œ ‹c±X,.Ã\®+@ 4/m’;@ òöfYI¥R©¯/Ž»\(ª×ëtj5XN,‹ÚPÇ‹W»\ pšÝn³ñù|¾P¡}Õ‘€@ @êf@C @ /ƒÁdr8éé÷î]¹bµZ,&“Ëår¡hCÙ§P¨TÃáp¸Üˆˆøx°Œ4\œ@ òúó4øÑL§3 ™L&»«ÜB HCêcšÍF£N÷¬7̹¹YY€[zEÑ7¢1F£Ñéaa‘‘Mšp¹<Þ«X‚@ ¼Î€UÀZ4L&‹Åf¿j ä¿©©ÿôúª*¥’ËåóÅâWíyûÁq s¹¬V‹Åh¬ ­P”—‰D^^ÞÞ"‘X,“E_u;^0úÖ­k×N’Je2¹ÜÇ'0ðUû@ @^=@zf³9>ŸLnÈ¥à!äåà©ÿPi4Éuå^µcäí‡D"‘Èd0ò8N§ÍVÛž&“ѨÓUUiµJeDDttr2˜Î ò _u;^0פU«wÞéÕëÚµ‹ÿþ›Ëåñ„B‡Ëåó«# ×äæ>zôvä}¿*@¾9›Íáðx>>~~ÁÁµeƒ˜WVVT z½Vûª}Q¡P"©«ß¾yõ9ï@ ¯àŽ Ü=Aż‰xê?$»Ýf³X^µKä呟Ÿžn6›Íz½Åb6r¹·w` Häå%“‰Å‰\^kZ­Z­PèõUURYYYR$T.—Ë ⢚4©í³6›ÕZ»”üàÁ;—/·lÙ®]¯^ [IóõL¦P(‰DB7._>q"44<<6¶°0//3300((<¼a—±‚à8Žã8JOUËýÞ½{õêÛsÐêÒÒââÜÜ„„ää6mÀvð˜ÃPEß¾V׌@Íó@ òzÂb±Ù<Þ«ö¼Ù¼>ú• âÕ''3óÞ=»Ýn·Ù@vaXXttB‚Õj±˜Í ÖOvvFÆ;AA!!ÑÑT*F§×mÓƒÉ`0™,–Ëe6¿ùù˜5R8.W @Q§Óᨬ¬¨()ñò’Jår‰L&‘AàS ™L&“H ÛÔàÛßVK$^^Oþ¼×›L&—ûú¾}­®šç@ äõäåk58n2=~|àÀºuK—~üñÖ­©©¯¯¾oß?ŽÿË/‡ÄO??þ矯³·ÈËäõÔÈ 'h÷î úöˆhÑâ£V­:|l·Û ׯïÒ%!¡kW°Åå2™23ÓÒÖ®ýê«™37m:q¢²ÒnÇŸ2Y hÞ¼OŸ^½\.ǰç±@þ §Óét8@61(òj s8\.*‹Éå¾¾IIÍ›·oªŒ™L&“шaö´¾ lk‰‰))íÚ›À° lk=xpã°éiçåÄû÷/]úî»:´k7a­[&‚|÷ÝÔ©«VååÙí¯êËáI@ƒÁ`³A…løÚ¯à+Ò3òÿ 1Ù¿5¯·×Á·WuÞ!@^O<ï›ìö²²'¢¢Z·þì³µk÷ï¿~]«u:­Ö¢¢cǶlY´hØ0ðîíÛUU(ú|wŽÂáÄÄôé3dHJŠËõ<PT©Û´éÁ£ñùŽƒã8ü¤Pìv»ýù­@ o¯³þCÅ0 s¹ š9sãFëÁƒ>}V¬°Û#"0 E•Ê‹—/ÏÎ9²M³¹´Ôáp¹|}™ÌV­‚ƒuºÞ½»uëØ‘DB—Ëf«¨8{váÂmÛ23%-)ÉÎ6™Ö­ûöÛN\ºôÛo7o¾rÅn‰A¬¬ôô.]vîLKûðC ?»\fµ–”üöÛ„ ãÆQ©óæ?>~|t4…’Ÿ¿oß²e'N(•lvIÉ;|þäÉóæ]»6sæ—_üÕWƒ›ÍwïÞ¿¿}ûÙ³Jå°aß}÷ÓOŸ|Ò¶­X\XxàÀ¢E?ÿ|ô¨Áœ”$—çç“É]º,_þñÇ \.™Œ «WõÕ7ßX­þþ‰^ýú… Ó¦mÙrè¯/Ž NgYÙ?ÿ¬Ysð`n®É”™I&÷è1þܹ½{ûø¼ê¯$ä¿ÉÌ|øðæÍ¦M›5kß `ºýÅ‹—.]¸PsÿwÞi×®}ûîܹxÑËK. ôò’ɼ½Á“+L¹(++(HHHNnÛöüùsçΜñü,øØ[|}ýüBB>¼{÷Ò¥èè&MRSëŸ  Uãt®]ۧψW®|ÿýéÓ;w¶hÁãáxUÕéÓ“'ö™Õúý÷[·öë'“y~ªOŸ!Cš5ûõ×}û._Æ0‚ ˆyóV¯ž>Ýóûö7dˆJõÝw;w¾ü™ ï”æa˜Ùœ“sìØæÍ+V¬Xqà€FóçŸÇïÝëïÏd’H(ZV¶k×Î1xðøñ4Ž[­……C‡üý÷Íš?qâ ܦ—öìþLžÜ§Ï„ ©©ë×oÚôî»ÏcÃdºwï?ôúøøçµÐqv:Ï-ž1[Žòò“'ÿúkç΃·oÿçµzäÈ#Þy§¨(#£°FkÕjÒ¤yóFŒˆŠj|ŸC‚¸~]«Å°–-%’ú-JS³ßëͳÕf2åä ԧχªTLfRÒgŸýþû²eÆùûÓh(ªV_¹røðÞ½ii.P©Ýº}üñ¨Q]ºDGƒoÔ§AKnî?ÿ¤§‹ÅÝ»»½5™îÝ›µzàÀÞ½£¢²²=ºsçêÕÌLéÂ…ë×w98nµfgÏ»zõ©S¾¾L¦É”ŸíÚéÓÇoÚôÑG†aât*•OW{-=ÚÓçóç¿þú×_CC.ܹ3$„Ju¹Þ{ïÝw;vLK;yòòå1c&Oþè£äd£Q ŸDz‘Ò à³à›âyì¸Ïôó[xY<éƒáç×µëèÑ#FTV?~áÂ;'Nš4uªË¥P>üî»ï¿¿|9‚Œ±aCã{V3†¦ÑdeY­|~Ë–ɳ<Ω»í áë+øù%'{{mØ0wî®]Æýñǘ14šTÚºõ A£GS©~~$RóæÑÑ\n]EK0L£9wníÚþÑh¾ø¢K··îO…"‘tèðóÏÛ¶uèP»µjžf@ äíái ‚{wßÝUï Þ¿ª„ÂöíG>|ÆM›&M2dúômÛ„B (,ï½—›k±àxl,ƒ¡Ó]¾üÍ7Ó§Ï›·|ù±c@’6›Û¶5?Gq8êR{0läH÷oAAÝ»++cc?ú(0Á¨ö“ ÄáP(úý÷õë÷î-(P*^¾üÇ;t‰„ ìö’ ½¸\óæýõ׬YÁÁƒ@{¹q£U«uëâûï§Oß½;!aÆ;Æ t:ïÝ++»qcÒ¤ÒRp,àçÝ»#FìÜùÇýúÉå99Ë–õî=mÚ?DG:´paÓ¦žÞB o¯³þC‰Ð‚ d²HÔ¼y×®"ÑŠGŽX,ÅÅeeNgçÎï¿/“…†²{÷Õ«:]¯^mÛVTœ8a±tŠã8ŽaUU·níÙSX(ê¶Ç`õìÙ´iAÕŠãqq$•J"Q("ѨQÇävØdÂq§S©¼pa÷niÊ”yó V‚D¢Ñ˜L‡#;ûðá›7‹ŠÚ·OJêÞý믥RéÝwi4oïnÝzô c2 Ç£¢ 3& `ûö;ïÜQ«Žßß¿ÿÏ?™L?? Çív¥Òju¹,Å0w¹tº;wúô‰ïÚLp¡P|}GŽÞ9JåÍ›iiùùƒN·jÕ/¿„ÕZP ÕÕqƒ@^oX,6›Ë}l¹víÚµk×Àß`°hÕªU«V­À°'¨ ¤T*%% ~F£Q© h½T*—ûûƒ=ÁgMÏ¡ÇÓøØô´ö,í¨)Gyn!±X²²víúöÛâânÝ–,éÞB¹|ùóϧMÛµ+!aÓ¦¿þš0!(Èé¼{·¼üÆ?,-E E$ÊË»råæÍ€› Ç„Fóõ àrÅâ¶m?øà³Ï¦L a0ÄéT(ÒÒ>ùäûïïÝ1b×®íÛû÷çó?þñǧNýá‡ØØsç¾újܸ]»ÒÒ>ûlçÎTªO>9R.§ÑFp%‘¸ÜÐо}ÁŽ B§ã¸É”›{ë–¿¿RYRrïžV;h\N¡à8Ÿß½{XWýë×_çÎýî;ƒÁÏ/4T,FÑŠŠvíÞ{ïË/££étæØ±uëV®D.]:v¼}{ñâuë23Ûµ[¹R ðôÂé,-6ìë¯4胆 ¼uë?Š‹ýý“’¬ÖG22²³=zø0$äý÷×®ýðÃÔTài AØí3g~ñŪUqq^^ÃÇwî|òÉO?-ZôàÁοü²fÍßWUõêÕ¹shh^^vvzú­[99$ÒÁƒGnÜ2€QT¡8þ÷ß/,´X òóÉäöí§Oÿì³.]žÌ|ñè×ÜB"1"‘ç¶ÚýéÜY (,üûï7oÎÌd³ét…"'‡Ç7núôÔÔôô-[rs;tøòËñãèt Óëoß2dâĽ{çÏߺõÇ“’ž<ŽRyìØüþûÕ«Z­Xl³&&6|x«VõÍþo¨T/¯ž=çÌ™4 E§N]²Äb!ˆ1c8 AH$2™Á ÓÁò™uµ=:º à·ß6n|ø°¬ÌÛ{ûöÍ›ûöýòË>’H<…aÃ;ii{ö?þè‘ÙüÍ7ß~ûÙgBˆÛùój5“YV–žž—Çã3iÒÙ³Õ6A&O=Ú=ŽA ¼éÔÔÜeÅÜÚ«÷tÏgs¿ç.?F£ùøðù$ØJ& …Mš¤¦98îrY,wïþúëlv›6Õ©TÀßXBÑú¨=,–Û¿òòˆˆƒƒ™L÷¾nßètoï¾}Ç{ï½;ìÓ'=½oß?Gq:µZ·özäȦMkÖà¸[{ÉÍ5œÎÓ§oÜ`³‡ ùüsooêÿéX¿?‡C¡””;ÀÏQ£š7‹ÉdÇqà'†M›¶woa¡Õš˜Xí-ò6ò:ë?T©–qèôàà‘#,HIÙ¹óÏ?ÿøcРéÓ/‰(M(ÌË›?ÿ£öî}ï=ÇÛû‹/–,qöÉ©ñOŠ-îçp÷Íê“û””;¶mÛ… {÷ܽkµþõ×¶mãÆ#“=oÞéÓׯ¢hVÖ¡CsæLœ¸páÕ«))MšH`¹(wþ¸)&“i4G.g³ÉäÏ>8pêÔîÝwìøë¯‘#ýý½¼„B·B8Ž¢V«Z¢`b‹{b8Šâ8X°ˆF£PH$6{úôiÓ¦LïN›öÙgUU5[¼žà¸Ë…¢æ–-$5µY³”Ï}À»`;øÃ\.­Þ£º—=ÝfmxîlR(T*˜úô,=èÉ‘äÉOWÿØB°€œ{Ë?\½*•Î;~` ¶‹D•ZRö¡ÑÈdÏ‘Ìm×s‹ÓY^~ðàæÍ……¾¾óæuì(“½ÂÇíÝ›J5êçŸ bÖ¬)SÈdM"i×n„qãºwâõ¿ÇÈúµ·ægH$¡°M›Y³<{V­Æ°wÞÑjÿúëÔ©.]&MjÕjéÒwßýöÛ‹[µZ³¦E •jÚ´fÍ"#%—K«=s& `Ú´9s&M’JÝSÏ2ä§Ÿ–,Ù¾}ÆŒ=Þ{oذM›´Ú˜˜9s¶mëÒì3yò‘#‚¢jõåËë×ß¿¶{÷òå h ‚ ˆ¿Ÿ>UU11'vìØ»7Ø:n\ïÞ| ÿöÛúõÆñxîUÿ4&“çÏ_¶ì«¯˜L «ªzôèÈ‘‚‚¬,»] hÕjР~ýþüsÏžŸ=úçM6Q´¤äÏ?>4™"1Ñf;yòý÷ß{ï?Ú´<¸G.W&£ÑŽ]ºtöìO?íÜyÓ¦gí)O‹¹çõ… b±<ùÃ_|±gOXØçŸÿò‹»LŠZ]»?Ó¦5m:zô²ekÖ;¦T6k6rä–-K—.ZÄd"‰D¥†…õî•¥Ó¹ãC& ))tºÃ±};(ãî*U&ëÑcäÈ^½ .&æÝw@¾Jmmxö¶ƒÿQ("QÛ¶ßðàž=;÷ë·`Á7ßlÙ2{v§NtºÛ—K¥ªë\ìß?uê¡C‡ç䤦Žýî»bqu¡w»Èd>?9¹{÷æÍ7mÚ²eåJwT«ª®^qëßÉ’M›† ;ÖÛÄ-+‹Í Mçm=@ ÈëÊ“¿mX,·XòóM&§35•Çs+.—ÑXP`³Ñéÿ^Vº¦C"¹ïÅE ‹Å­‡xÞ_UϺ«¿Úcµ>z4cƬY \nÍd¡ê£õÕĉlvß¾ß~ûÓOcǶlùÃ11ÕÚKDİa|0iRP´‡ƒL¦RBQ—Ëfs¹<}ÙÕO܉̘\€IDATÖÜRóŽyûxõŸp8œÐЂ‚ŽoÖL&si$RDŽß¼¹fÍ‘#¾¾íÛûø¸ë¢R("QJÊ!ÁÁz½»B‚ØlEEǎݽ¦Š×ÖÑ AÂÂÆŒùùçU«ÆŒñöNOÿé§É“0qwÅŠ-[²²èt±8>¾oßwßíÜÙÛ›Á`2Äå2› 4‡XW*/]:xÐ`ˆŽ5ªiS€LÖé—ËjuK8n0 (†™L(JTªXœœü×_ûöeg[,î[­ÇŽ)•(J¡…‰‰TU™Íà] Óé®^]·nË–W}QA õÅl¶XŒF0¢þ¯f³Éd0°XG&“Éî7à)–§Í›7oß¾s¼›’’œüd®fM›žÖžÏ!ðÉáÐý7—5räâÅ]»Êdd²Ó‰¢ ŽyyŠV’¨þ™RógÑÓ·P(,–¯/› V«Riµb˜»‚ÍVYét2~~µ[«Ïk}¡Ñ¤Ò-ŽÍÎÖh**®_¯ªjÓ&2’Ï0 >žB)(8t(+K­V(n݉ª£Œã6›R)“1™OV=c0ŽÊJ«µzäv9x‚ãFãíÛ«W¯YóÏ?7nÖô Èþžp8d2†Ùlöô™"$™¼uëš5›6ýöÛž=ׯëtRi@À¿÷ù·UÉÝ&w84‡ƒLööþàƒ‰ÇÿðéSçÍ;|øÄ‰g—žë›Ô¶íèÑ Ç¥Küqóf}ü¡PÄâ¶m.\¸püøÄĪªãÇ{õ:ô«¯6l¸~]§«Žþë ‰Äf¿û®·÷;K—.\xâ„BQýó¤ñÎ…gÜ~üqêÔqã<ãöªc@ ò²:4$D«Ý·ïøñòr÷ª8n0ܽ»sçÝ»$R‹ÕsÍk¿Ë¨.¼&%'÷ïïã£T î_í(ªVß¹ãþ•[?µl+.>t(6V ¨9w°úî‹ D ˆŽö÷g2ÍæìììlƒÁåòÔ^س'3ÓS{ÉÌ´Z ø¹mÛ¶m÷ïoŸZmõïRàçÁƒ7ojµÀ[à'™Ü²å AžÞB o+¯³þSCj “ùüØØ^½š7ïÐÁÛÛsñ­¡CCBX,).®{÷ê ¤¦u ¸bŬY þü󯿮Y³téÂ…kÖètÇóx(ªVŸ=›–vèPY™Ù¬Õž•Zý‰ÁÉT*›ÍO p: ¹œÉtg¤º}z2[™Db2½½cc}}íö‹þÙá þ›LæñÙlÏl×êœÙªª+Wd²!C&LxÿýQ£zölÙ2(ˆÍöܧ¶8€mÀ'6› Ïw1Ìá¨Î$®‹g‰ù“þP©Ba|¼PˆãZíýûî×åËe6+:]dä Asæ¬YóçŸ3f$'+{÷.[¶aCNŽÕZ×QÿÝöšÑxVêÓöêþëÞ2lØüù'FFfemÜ8wîÞ½ÅÅõ?µ§æVÏ-žq;vìС5k<ãV¿óößm‡@ yS:tÍšE‹ºuËÉY¾ü›o~øaõêeËæÍ›7ﯿ¸ÜI“~ýuîÜ”JKZÚáÃ@9wN©t:N¥òüùýû÷ï¿víС´´sçÔj 1båÊ™3 <øƒ>ùdΜ•+ÐéüüûD]j[lv8JK¾¿¦ü¼ÿ¾}W®h4&Syù{öüó›>vl~~åå+VÌŸÿÇžÚK‹÷îÍží©½$&òù$ð³U«‡çÌÞ?¹\ S(€·ÀÏ&MΞ]²Äí­N7|øŠ³f%%y'„@ÞV^gý‡¤Óiµ••¯:DÏØ1mÚôíۦ͎û÷Ožì)–C 7v»Ýn·çæfeÝ»'b±T*“ÉYOµZ¥ª¨H¤R__.—Çãók³©R)ÅÅ^^R©X_µæž*•RY^n4z}HHXXllm6krûöõëgÏvéÒ«×È‘F£^¯Ñ¼êX6|¾Pèåuúô?ÿüõØ]ÛþãÆõè1vlròš5¿ýöé§áá ‚`˜V{âÄ”)|°n]`à¢E‡Ížý¤…õëçÏÿþ{³¹ºtëÖ&|ñEL ®×_¾œ–¶yóöíZmdäˆ}útëÖ¾½··Õ:hPÏž~0räGM:dHJʬY£Gùebâĉ3gΘѥ‹Õ:fÌ—_9òÎ;©©¡¡|¾Ó©R%'9}zR› ,ÿñÇ®]&SbâôéÇwêÉb™Lýú úÍ7qqmÚ$'GGûúÒhÇŽefÚííÛéõ'OîÜyíÚ_ìÚµ{w‹rçÎÑ£ìÝ›™)òᇴjÅç«T§O¿ûî?œ?(• …QQ}û~ðÁ„ Íš=Y»º&……ùùYYÍšµl٩آժ՞û ¨RyíÚ‘#ìÞ½aÃÞ½jõªU‡mÛ‰ ÿüóÔ©óçwî¼f;}II<™ìt–—?ÍŸ±c##‹Š6oþñÇ?ÿÌÉáócbüüPÔ`ðòêÓçƒFŽLL¤Ó‡ïÝ{üx.7.®Y³¦Mcb‚ƒoÜØ»÷С¸¸±cGŽŒ‹C¬¬Ó§m¶ê2™UUÝ»»jUϞÇ2~|Ÿ>‰‰"Ñ×€½ü z™çõ†ãfsnnïÞýúÍš9|øøñC‡Ô£GÛ¶R)ê5_»¶téäÉLæ´i;w6mÊå"HmmŸ0!) EûöÛÏ?_¹2??(h×®?þøì³ÇþãåË7n¼zõÇ÷íûí7îÌ™-[–,Y¿þÊ•mÛNœØ·Å²X<q£P"#ÆÒRµÄM"Ù·oêT`DàÓO HL|Öó@ @ o¯³þó† ÐN§ZÝ¡CóæýûûøŒ;mÚ„ }ûöë×½{T‡óª}ƒ@^/0 Ã0ÌjµZ-¥²¢¢¸˜Á`2™L‹ÅâpètƒÉ4ôz­V¯×é46›ÃáñÀ`A&“É5K2¸mæåedØl6›Å"ŠD X/Õét8l6›Íf³ZN§Óá˽½ÁôÚlÖÄS€6ÞfZ ø·Z»ý:a6?x°e‹N;aB@€»hÓëOQQAÁ“B¤F£R=)@¿­xyUÿ½ì͹Þ^”šç@ @Þ^gýç?3¥^Oèt©ôüù®^}Õž@ ¯; …B¡p¹\.G£ED(ee*•ÑXV† ¡P"‘Éäroï  >_$’Hê–‰Mÿ  ˆ£ÑhÔé,£Q§ËÏÏÎNOg0X,‹Åb³y>"“ùø4nþ—²7§^-‡Ó¤ÉøñΛäóÓyÓý‡m‡@ @ Èë©ÿ@¼@y @ @ äM Ðä JÐ@ @ ooè"„äíÇsB½¾ªJ©|Õ5B¡X,—¿j/ @ Hãb4êõZ­Z­T–•I$R©·wÝû+ååEEZ­FSYéïïïJ"Q(õ[Ô@^>8Žaæp8v;x ‰Š‚ÐäÁd2õúÊÊŠŠâb°rë«ö@ @žF£Ñé¡¡qq<Ÿ/í*Õ Ð&“ѨÓiµR÷Î;¯º5ò߀d,øŸZ—‡¢(êtB¼x>ù—Éär??™ÌÛÛÏïUû@ @ Odäæfd…b±—È´XÌf£±îÏVVVT””Èdr¹¯ï«n<H$—Ûí6›Õ hò@¡P(JÛ¶;öïÿª}@ @ ú‘ PTT””€9õù˜ñùæ¥Ý„Å’•µo_zºD2`@Ë–R)öª}‚@ ¯‹Éd0ªªÌf½V‚@ o`òÚ«ö@ @ž:N§Ó].— E_µ/‡Ë¥R;·|ùž=™™ Ž¿j ÈëB½2 Á3º‚‚ÜÜG@åŽWí6ò¿ bÙl‡Ç‹ˆˆŽNL|V yyÙÙZ,f³É„¢(êp4ŒW FxxTT“& “Éfƒœe‰D"‘^Ü>™L¡P(O@ il(2™D"o YÇm¶ÒÒë×gÏÞ³G"Y¼ø‹/¢¢(”òòþùí·#Grs-–ÜÜÌL©K—ùó[µ*+[¶lݺÊÊzôøê«Q£òó÷îýóÏ›7>4™¢£ß}wñb?¿œœU«._¾~]­ŽŠš2eƾ} †•+׬ٿ¿¬¬oßÏ>2äέ[7nLO×ëû÷Ÿ3gùòààÛ·—.ýõ×{÷Š‹}|6oþùç~ýfÍzï½»w7nüä“ܼ9'gß¾Û·Ïž-/?~|÷îC‡~ýõÏ?ûõ›ûL"a±Œ®]?ùdË– ëÝÛå"“‚°°ÈH‹E«>|ÇŽøø>}‚‚âãÄå2™rsOŸ~÷ÝéÓ7mŠ‹ëÛwôè¡C‡ ëÑ#>ÞË Îˆ…@Þdj AÁ{±X&ó÷§Ñ ‹  ô ¼zÀC …B¡Ñ …JµÛm6³¹nº²R¡(. ‹ŒLHp:ív›­a½Âq0™ Ã0,00882R¥ª¬,+ƒ4@ 4v{AÁŸ®[—–6{öÑ£7oFG …Oj5a·«T…âç÷á‡S¦LŸ¶Ošôå—‚ &Ó‚ $™ì9_üÿÉ-Ê“3ZI¤'·Q©lv@›M¡¸\uyÍ`Ø¿ÿµkƒÉäå•––Ý¦ÍØ±žK,R©<^DD—.»víÚåë{úôêÕ³fM:`ÀÁƒçÏ_¾¼yó«Ž<y~j­mµZ,&´pœJe³_µ«äßÉ “YŸ:b`e‘H,–J A¢1^qœ pœËåóE"‹Åbù¯•!@ ò,p¹))+V¤¥ýñDzeÇ÷êõÑGóæmØpölV–{yC2™Íö÷g³q\§óü$þÿØ»ë€(¶÷aà³t7b€b‚^ëÚ"`Š(*Šb b‚(ˆ‰`*"*6¶b‹¤‚HÇ. Û³3ûþ1?^ÖÀ¸¢¨ßçó‡÷2{æ™3gföÙ³ÏÁåòªªïRYÿÿ …DR\,•’É_Þ‹N75>üÌ™ää»wOzÿ~Рþ10øxš#ŽK¥‘‘+V,]ù왡¡³óœ9>>M=æ€Õ`š¨õL&“É ŽóxW¯¦§‹ÅsКšG||úô2dÿþ¼¼¯ÕŸÅ°ÊÊÄÄwï~¯ÊÓ_îÿïÙçßGSŒÏ÷Ýu ‰L&“¿¥ŽñŒ&ª3+•DªøgýK£Ñh4ŠÊåË8Àï‚D¢Ñôôììöí»råÚµ¨¨5k||úõ³±ápλzµ´Çõôœœ¢£÷ñqsóôœ6- ÀßÉ’ƒŸ?'‘î܉/. «ª>Œ‹;sF")(¸v-!áìÙ{÷x<¡°¸¸ªJ xó&)éâŇy<‘¨¸¸²’˜áŒ¢EE {÷FD¬X±bÅÎÕÕóçŸ=ƒ L¦¥åðá:¡è±c¾¾~~|¾êT)Í¢²rãÆ#GzôXµjÄ*Arr6oöñY¶l󿨨gÏJJÄÏoÛ¶sçΞŽö÷7ÎÞ¾©G𣾩´;…¢§7lXÛ¶uÐïY’ ÇkjRRΜ16îßßÑñ×Ðñ'öùçÂ0©A(&Ašj|c!¼¿‡ê'ÖbIC¥’˜q ‘!2D†È"Cdˆ ‘!2D†ÈsäïC£1h¡aÝÏff#Gž8qäÈÈ‘¶sp éÝÛÓ3$Du««ëüùººÎŸ_·eð`_ß#GöõEºÂ4š‰Éˆë×oÜèímiÉ`|܃aÃ""nÜ6ìó}45µµ8±sgmíºEæ[´X° ::8¸)Gð³}SúéÓƒ-JKû÷ßuë&M²°`0D©”HfÎ\µÊܼ}{àùóû÷çÍÛ½û̇L& ãß½»k׉Ožß¾]Rbm=}úγgëêªÆ?zÔË«gÏøx&sÀW×ùó-rw·±ápD©¬®ÎȈ‹ãñþù§!j½{wöì¦M7o–—³X……/^dd¨©M›¶rå“'Ë—/ZD¬Ç*½|ùâÅ©S·o—•ë±NŸÞ£‡¶¶RY^ž”´wohh|¼@`fÖªÇçkjz{/ZäáacÃå’É(úõ6 Ö§}&¶J$ÙÙ›6EG_½ª§G£ÕÔä秦æäŒ±iÓ¾};r¹Ÿ?¯™3·n1"?Û¶¨¨K—jjˆÑ~÷ŽL0`Íš)SLLRR\·.?ßÜÜÁ8묬””'O¬¬fÏ>uŠ8kb Ù;׬¡PÌÌ44ˆ5pçÎ Š"¾òÒÐõòðÐѹzuûö³g+*<<–/÷ðxöìðáÝ»?ÎÊ"‘ìí.ܵkÕ*gg]ÝÂÂóçCC·n½}›Dâr««_¿ 5445QT,ÖÔܲe×®µk?Ÿ¾}kjRSOœX³féÒM›®];pàÉ“”==™ìÙ³¥KœfÍ ¾qãêÕôô³gwí ÛºõÒ¥'‚‚âã7oþüÕa0ÊÊ<=G^¼ØÝ}íZ—§OW¬ Y²äèÑmÛ¾|×98ddlÞ¼o_Z‡ce¥¯ãA—.£GwëöâÅÖ­;wž9SXد߿ÿ6oNŒ0±ÚïÅ‹‰‰P©J¥D’››°ysbbQ‹E<#x¼.]‚‚ÂÃgÌhßžáƒÃÃ/]*--*JO'FxÅŠ… ‡ ÓÑ)/OLŒŽŽŒ|ú”¸Fb±…ÅØ±~~C‡5nõõ¦ÿÃè÷ë9D†È"Cdˆ ‘!2D†È"ÿn‘'?r†(ZVöøñÝ»eeššcÆt릥U—~üoø¦t—.®®£G¿zõa­ eõêÈÈÐP&Ã**RSOŸ~ýúõk‘AììäòË—}|ƌٻwß¾¤¤Ó§dÖ¬ ê^’…B¢à=‚(ׯ{x?RŸë3ŽóùII¾¾£GoÛ¶k×ññD[ÍËÛ¹35õëç%êêNž¼zµ³³±11Úƒ÷í;oÞë×ãÇÇÄôèáæææ–ž^YigGœ5„ž=‰³vu¥RÏŸ//×ÖÖÔ45Å0!ÖÀ=}º°EÇc±nÜhèzÇ?|øèÑ•+ËÊŒ\½::ÚÉ E‰õp½¼-R(ºv9réÒM›ž?7.6öÔ©~ý*+W­rw_°@. ‰_»ösãC¡¨«ÛÚŽ¼cŸÿê™L&Ëd……—/_½:|øÆÃ†efÊdVV­ZÕÖª«ÏšuôèÒ¥~~_¾:l6Ÿ_ZZXÈå::®\yîÜÈ‘õË,4|×Íœéí}êTYY÷î>>½z æä4q¢¹9•jmíævøð‘#+WNºxñ† uqJJNžÝØØÖ6.ÎÝÝÔ´ñ’ÐJ¥Rùµ’@uu{ûèèÛ·/_þþ}i4ƒnÝúõ30èÖ­©Ïо)ý9$™|ðàÆ›6Q(ºº––ÖÖÍšYY©©!‚`˜P˜—'b؇_Çøp5U ãóŸ<Ù´iÍ—cdž c2©ôF$ÊÍ‹{÷ÎÌÌÅ¥ysb…¢«;p`ppDDIɨQ“'„¢úúööîî+VlÞüåõX%…Ç%a³ X¬ºÏÛ¨TËÐN—Éž<‘H ù–6Ÿ÷¹>cXmmv6§Pp8ŸŽâ·œ×„ jjwï<SP@Œ6—KýèÊ}¼2-‚¨žµR©P”—;:NêççàðñÒ(šŸÿõëõñØÖ­‡K"!•ª¯?hЂcÆ\¸°víÂ…))ššbñàÁAA­ZÕ-aù¹ñA¡Ó ìÓ'5µ¦†Ï ³³íímm Òщ‰)*ª®vv~𠺺gÏaà Μ‰ŠúúÕ!‘Èd*•Lþø3Ú/ÝuÁÁsçnÛyìXHÈäÉÛ¶egoß~ÿþŒ:}:uw—DR]ãÄh HyùÝ»{ö\¹B&Ï.—J}õJõ¡¡A£ÕÍ WH¬P¬zTW+>UVVZZZZZZRR\Ü¡CÇŽÄûWøÿÛnVUuã†Á„ óæMŸ>eʘ1=zXYq¹Ä£$ƒ¡§Ç``˜@ðñ~õËΑÉl¶‘‘­­…ÅòåǼ XüîÝ… ÙÙ&&#F´lI$¶‰ÔvQŸß¦—×µk·n>`oÿþ}lìêÕ¡¡D›†Öcµ°PS£ÑX,‹ËË% «k#•––¢(ƒalL¤#¿¥Íç|¾Ï$®£Ã`àxmí‡íëg¡~ù¼-:~\u´?íÁ§_†Q=kb ܬ¬êê…#Òµßv½¾ ÇQ”Ç++‹Û¶>= 0pÇŽíÛgÍêÓGW·®·Ÿ“ijê윘˜––žþòeÛ¶­Zijª©YZ>|xõjFFJÊ»wݺ98Òéÿõê|ý®#Æ?(èСë׉«@Œÿ›7Ÿ_~“¸»ˆ&žÄ•R}F½Qá·okkëŠar¹BãB¬P¬zˆŠ¿ôÇ¥ü%»×êñxUU••!!«W/[–˜H,¿£oœýq2‰BÑÔìÚuß¾AƒÜÜ’“ûöíÑ£uk33:ýâÅÌÌ‚‚==÷쉉Aww/¯éÓ-, ttÌÍ ˜=»]»²²„„’±X,¦RµµÇ÷öÖ¬;¶gÏÒR;»Ù³ÃÂ&Lxÿ~åÊ’’3öîíÚUC£~ž(†••]»H¡´nmo/(•S§nܸxñýû~~½zë±VW÷èam]YYZJ§ë±v쨩I&÷ì;{öîÝ7Οjnnm]YYUÕªUpp\œ§gëÖ,‚ìÙóå6TjEEI‰HÄã=yráÂ¥Kÿüãå5|8…õ¹>S©††®®{ö=J"9;»ºzyÙÚ¶ookkeedTVÖ©“»û×ΫeËkצN]·nâĺÑÖÑQ*32‚ƒ×­;p (hî\Õ³ÖÐËKJTÏAÄÉ©¤ÄÓsÐ 77±°07×××Ñ ß°B14tqùÒõª[!799>>.ÎÓÓÝÝÀàüùøøû÷‰r++¥R¡P Jkkoßöõµ·ïÚU©¤Ó54ÌÌ:u4È×7$ÄÅ%3óó×”Àá´kw÷îªUK—nÝzþ|ÿþT*‰„ 4Úѣ˗çæ<˜˜8jömW§~=ßÓ§›5sqqq¡PîÞýÚ]gd”œü溺]ëÖ&& ÆÔ©7Z[³Ù¯_«ý†‡ïÜIŒðÛ·<ž…EHÈÚµd2‚`X×®& °gO@ÀÚµááÄ3‚¸R™™lö¡Cć‡/]êì¼d‰‘Q§NÄO›6h‰ ±Bqxø²eÎÎÄ54È×74ÔËËÁ¡±ŸöŸ+Á!‘df._îæÖ¹óîÝÑÑ£F©«ggm ±j1€_-66&æàA##55//W×»w/_>sF¡À0¯­•Jq|øpW׺Bßîôéðp¨¨cÇŠŠzöôññó[µjútW×_s^cÆôé3~üÒ¥.ÄÄtê¤:yM*ÍÊ =ÚßΜ¨¨ùóoÝzýº¢âÂ…;^¾Ü¾ýìÙÐP©©INöñqv^µê¿ 4>Ÿ_UUZúéOŸ&''%5kÖª•…‚a™™qqIÏž®®ÆÆ» ZãññéÓgÈ{ûC‡Îûüz¬¿ÍË‹ŒLMÕÑ™5ë×ÔïU[ûèÑþýUUvvMuÖJ¥H”š9sæòårù´i»vùú¶o/—?~ìØÂ…'OݸqëÖöí¿¾o¡¶öÑ#'§  ßó†UW¿¯­­«k`ÐPâ=`€££»;Ÿ_Yù¹g}ãzöìñã›7»tqpè×ï¿EPís~~nnzº……•UÛ¶?»çиª«y¼²2¯²²¬,77''=ýËwC-[ÚØ´o \®±ñ§möìÙ¾=,L(äóKK'Lps5*7·°°ªªgÏ=ìí«ªªªøü””ìì’’^½úöý÷ßoï-±fÕøñ^^,Yòi"øç;¶OŸñã?wÜÚÚGfÌpr ŠŠjè½ùïþþ€ÿTª\N¼î}ÓìE©´¤äþýš7ÿž,ðuS¦ é‹`˜@šúàÁ»wd²»{«Vtº†™lkkoߢ…†ÆÕ« 'FÿM?Â>Û9Àÿ€Ï¯¨@•JE"¡ÇËÌLOÏÈhÙ²ys++cc##CÃk×¶lÙ¾½]»:tÐÒÒÒÒÖþÖèkùc(Z^ž”´wohh|¼@`fÖªÇçkjz{/ZäáacÃå’ɹ¹çέ_uéRM¹yûöïޑɬY3}zûö™Œ 6,\˜–F£YX2™µµ%%(úñѤÒÜÜ3göî=y²°P$âñ¢¢LJ²¶¦Pž=»?5µ¶vùò׬i¸·EE‰‰{÷ž?Ÿ-eggf’HùûjdÔÔW€¿_ƒ h MM©T*‰X,++?¿-~ïÅòg}ºE£YZúú6ÆòêêööÞÞêêMw.Tª±±‡GLÌÝ»ªÛ9œN6lˆ‹;{¶éúÖ~dµßŸ Eår‰„Éd0¾öì¤Ri4:]*•HD¢Ï•àhÜ^¡¨\N£Ñé¿ûkü©”J•HètL~ñ"--?ìØqãÆ{øðáÇÏŸ¿páâEgçìíoß¾qãÚµ#\]ÇŽ%‘H¤¯%—¿Å´icÆlß>ztlìéÓ3gP(IFF` ››‹K``hè¹s!!††;Ož¼zµ³³±1“‰aƒ÷í;oÞë×ãÇÇÄØÙ)7n(•“&mذl™¡a]ÇË—ccÇÿðhL¦••«ëÔ©ãÆ]½Ÿ‘1cƤIýú!Hm-‡sâÄÞ½AA õS¡(+‹‹›2eìØ­[{öôðpuUS34¤ÓÖ¬™>ÝßèÐóç›úJð÷k0mhhllnž››““‘af¦©ù¹¯{š…"“ñùL¦šš†Æ—[r8ŽšWYYZÊ`|=aý#„ššêj6›Ã©[˜@ãb0ètÍØØÔÔÌŒ˜f¤­­©Éå4`@Ÿ> †!Ⱦ}ûöíÛÇáè蘘4îÑ%a³ X, …ØB¥²X††tºLöä‰D¢P ‚”—ß½{ð`LLA…¢«kiÉåÖ¯#„a55ÙÙFFššýûÿ¼QR*¥Òòr™ŒB11™>Ý××ÏØîã³hÑÏ;*àCä†PSSW×ÒÒÔÔÒÒÕ•Ë‚’¥Çæ¬IÀ· ž‰†¢ ‹Åb±ÙT*•úµÊì††ÆÆoßfg§¦"‚HJ%QŠ£1ÿU( …¢¤¤¨(?_GGW>¸€ŸƒB¡Ri4mmMMuu6›ÃQWG‰Db0 ‹Éd0h4==}}CC CQÅ0 ð;&†‰Dïßçç‹D,‚ˆÅååI]L…B*--EQÃØ˜É¤R$0pÑ¢ãÇ &L˜7oúô)SÆŒQ]ÆžLf2õõsskk?,¹Ñ¸#Éd6ÛÔ”ÍÆq>_u;ŽËåUU?óúê}¥´…E³fÖÖõ?Ÿ`~ÄçÌlö·´årÕÔ44Z´°¶¶³{û6''-M"‰„B¢\Æ÷…F£ÑètSS ‹V­Z¶lݺcÇŸ=Ïþ7)•J¥R)|>N¡Èå4“©«K”^$¦,Ñh “ijjjjjzóæíÛ·oËd2™LF¥R©Ô¯ä‚Ξ½wÇ޾ݳgË–­[»vÕШ®ÎȸzõÒ¥ŠŠÉ“ÏžÝ»76vöìÝ»7nœ??4ÔÜÜÚº²²ªªU«àà¸8OÏÖ­Y,™0aÀ*uݺ‰ÝÜ’“ûöíÑCGG©ÌÈ^·îÀ  ÀÀ‰ss,8pøp¹ÜܼmÛÖ­­­e2©´¸øÒ¥øø7ÌÍÝÜú÷×ÕEŠŠ;wâããã‹‹…ªª›7srÞ¿g±=JH()‰ø|¡P&«¨xþ<>>>¾¤D$âñ^¿®­Åqkk=='§èèãÇ 77OÏiÓÌÍõõutllÆŒ ðövphê« ÀÿŸ_UUZÚÔÝü:‰D"‘Ÿ~¸üxL¢Ž‘t¦Ñh´¯ÍÈþĺÏ8:º»çççæ¦§[XXYµmÛÔãß§ºšÇ++ãñ*+ËÊrssrÒÓ»tqpèׯ¡öÄ»¡–-mlÚ·G.÷Ão—ïæBC—-›9³k×NÚ´QW×Ö63ëÛ·oß¾}qÇ ¢(GNÎÛ·ùù{÷8pðà‚Ë—‡„hjjjji5õxþ~Tª\N¼îQ<àÏÂb±X,VS÷À÷!Êæädg¿ys÷î“'éé—.ݸñà¶¶––¦fBÂ… /š˜›˜èééééè4kfeÕ²eEEyyUÕ›7™™™™ÝºuïÞ£GSŸà $ þD kk›Ö­/]JJº_õѺï¹s ë+>oÝڣǀóíWø~ä¿Qè"Cdˆ ‘!2D†È"Cdˆ ‘ÿ"ï) …XšFcª ÓétÖé4H@þU±"Cdˆ ‘!2D†È"Cdˆ ‘ÿÈðwø¦µµ55ÕÕ¹¹ÙÙii(Š¢rySwð;ÒÐÐÔÔÑ144667WSSW‡¥- 1`XMMZÚõë§O9²cǶmgθ¸Äǧ§Ožliùé¼f‰$+kÃ'§'ôôüü\]Gvr²µÕРP~eŸçÍ5jñâéÓcbBCÛ´a³D$ÊÊ:u*5UGgäH=½ÆX¾¾a8.ee?¾iÓÅ‹$ÒàÁþþÝ»®¥BÁã=yròdddÛ¶îîË—³Ùd˜° @#úJº¤¤¨(/¯ªª²²´ÔÂÂÒ²U+‰B§!às$±X$ÊÍÍÎÎÈÐÔÔÖÖÕµ°hÖÌÚº©û6 E]½]»ÁƒGvq‰‹;xðöíS§vî|öÌÕ54´GuõúL †ñx?þö­‘ш¾¾#FØÚª©5EŸ·l9{64TuËÍ›áá±±Ç;8èéýÌ£‹Å©©aaë×?xàà°e˶mŸO=¨Tmí®]ÝÜfÌØ´)5U$Z¸°Cç×VàoÖ`º¶¶¦†Ï¯ªª¬,+k×®C‡¦î*àw§¡¡©©«khhllaQZZRRPÐÔ=€¿ ‘e0š5“ËïÜÙ´éâÅââ“'ÝÝMMétA¹¼  >þÜ9KËñã;wþtÿ]»üýýü3³V­´µQôýûÞ½gÎ ±±a0ÊÊ.\ ›9óÜ9.wÞ¼}|ìì Ü¿¿¤¤E‹eËfÌprÒÖ./OLÜ»÷üùìl‘(;;3“D0 (ÈßèP#£ºã(|þºuË–EDté²`ÁŠC†èèTTDE½x‘Ÿod´D„DbiÙ­Û¬YÞÞýú¡hQQbbttdäÓ§R©TZ\LÄôó0€NŸÞÚÚ×7:zõê±c-,23HNÖÕõð˜;W[›˜û­TJ¥ïÞ=»iÓ¾}ii^T”–¦¦6sæÖ­óæÙÙéè‘zV(ÊÊêb–—kkkjªÆ<}º¬L]Ë©ÔÒrèPOO?¿ÀÀøø#GFŒ((8t("E{÷ž1ãäɃ‡ ËÉÙ¹sÙ²´´ÚZ9v,+KSÓÕµM "maUUII7†…:•‘!0 ìܹwïœ9¶¶\.‰„ $’†FfæïÞ …M}…ø›4˜€&j=“Éʯ­ø;P(d2|a ~CÃ!Cüý{öd±23Ø·/#ãèÑW¯ 5ªE ëÓwc8.°Xæyèt™¬¨H"Q(ˆŸ9 %+ëÂ…¢"±X$ÊË»rE"! |(•Riy¹LF¡˜˜LŸîëëççã³hѶm/>|xþü; Õ˜ŽŽS§~ÓÝÝÔ”¨M"}ø“ø™HÛI$ Eµ…H„ad2“Y¿•BÑÕ8088"bîÜ*+ãâ2dÒ¤¨¨{÷ªªˆó'“1L(T(`YITsø#Ô'FI$ .]¦Mss33«®¾xqýzmüøþýõõ©Ÿ-·J&³XÆÆåå †©nGQÃØ˜É¬ßËÎN©|òäÆ×¯SR®^U*‡­‹Àf›š²Ù8Îç«FÀq¹¼ªê¿j̬¬êj™L5f}Züû±Ù ŽK$V7f&ñùmÚxy:týz@€½ýû÷±±«W‡†¾y##ŽS(\.• Ó©hLÔñ#0¬¦&#£ÿ=F.-e±ºv wkkŸ<ñô8pÁ…¢W/gç^½tt²³>y² `à@oïÑ£‚k׎+)™:õäÉ'†×ׇç4¯­MO¿téС¨¨ÜÜÊÊœœ¤¤¼< û÷ß3ââvﮩ™8ÑÚºS'G"Éͽr%1ñܹû÷ÓÓ55ÍÌètGÇvíôõ‡ÏËó÷÷ó 57·¶&j@ÇÅ·nÍbÕ+ `ýúV­<¿ªª´ôÓž>MNNJjÙÒÆ¦}{ba±Ÿ×‰ zõ2ÄØØØX(¼qE==Ÿ=‹‹óñ!U*ùü{÷îÝ#‘þù§W/MMøêת¨(--*25µ°hÙR&“ÉÄbb»R)$'ûù¹ºnÞ¼}ûõë±± Eyù›6¥§·o¿té¿ÿþÜõlÁ·úܬ­}ölÞ¼à`]½:8ØÁÅÊÏŽ1büøV¯¾|ùÐ!;»ªª£GW¬xýzРààÁƒ›"M¼ àèèŸ››žnaaeÕ¶mS(|Ÿêj¯¬ŒÇ«¬,+ËÍÍÉIOïÒÅÁ¡_¿†Ú«æd„Ë56nê3øóˆD))«VMŸ¾kWçÎ[¶ìØá쬧Gýâ4L…¢¼|ãÆôtgÑ¢8È?ð#44¨T¹œxÝkâÐuh4ƒ#6lð÷Gщ…B¥Òǧ®<…Â`0DU¥R"ÉÉ9wnÛ¶øøÂB&³ºúÙ³‡«ªºv tw§PŽÙ¼ùôé¢"gç¥KÇËÎŽ‰yðàåËÚÚ¶m§LY»ÖÌìÍ›;nÝzð ²²uë9svîܺÕÍÍÜ\./,¼|yÛ¶;ž=“H¤Ò’2yРåË-rt44$Ö’ýß$ŠD…B¥R©R÷eAQ ##7·¶¶nN4•ª£óÏ?ÞÞ;R(=ºysBÂË—B¡ƒÃÂ…K—:;s8/_zy99­_¯¡1dÈÀúú©©11Ççåuë¶uë… áá/_nܸa…bn®¡!¾y“•µxñ–-;vü/ÿûÜd³Û¶]²dÑ"2Y]DBÕyí:ÝȨgO›#GæÎíÞÝßÿÝ»+Wž?¿zµ àÒ¥S§NŸŽŒßÜüÁƒ«Wwïnê³>O*ÍË;y2*jçÎýûSS¹ÜAƒÚ´¡Ñ*+³³Ÿ?ÏÊÚ´)6öìY55r#—«S*oÞ,+S(þý×À€¨h €ŸƒÃ±µ]¸00ðŸ6l8pàøq€OÏ=>×V¡àñ=:~<2Ò×wüøU« õ @ãúj@ÓhººFDܹsófïÞ½zùû_¾\Y©P ȇO|*UG§sç‰ýý§O÷ðpu0@GçåËÇÃÂz÷öð3†Ë%VGmÖlÈ ¢¢Nž¼~ýøqgçwïضmÙ²M›¸páèÑ¡C_¿Þ¾}Å …¢¬ìÜ977W×°°ÒRMMuu##:ýÊ•  Y³ŽÿþÓäÜŸ©eËV­Ú´!þmh˧ªª**JKét£þë8‚ tº¹¹·÷¹s—.-_Þ·¯­­­m»výûÏ{òdf¦Pho?bD¯^ùù>yRX(•*•ÂåvìyíZ\ܶm‹“˜¨¡xóæ;[¶ôí‹¢.ãO¬¥K\…¿iü›Êç® …ÂdjkÓé ÿZe0,-'O^±âàÁ£G'MÒÖV((uukkkk‘¨²ÒÝýС1c¼¼ÆŽUW‹kj„Bkë#"#Ož¼|ù΃lêó¾„É´´7nÖ¬3ž2eþ|ÿeËBB¶oˆ1âÞ=ÇUÛ‡„L›6eJ@Àúõaa›6ÍžýêUm-Ž#ŠVVÞ¸±m›Ï¶m¹¹r9Ñ^¡¨ªºu«k×ÎÇŽMN®¬,,8o^XØÂ…k×úù]¾ìîþa[‰Jåpèt…¢¼üüùÕ«—,YµjëVby¹\*-/Wð»`0,,\]œîÞjkõôââÞ¼éÓgâD##A²2âY©ºÚ0•Êᘙ5u¿€ouæLTÔ–-ãxyyNNn®B±eËîÝõo?Q´¨èéÓÁƒ×­;yrôh##*AÄb{ûùóŸ>½~}óænÝú÷÷òòô|õª²²n*UG§o_:]*ݼÇétSÓ1c|}== +*ºv?¿ysø†øßð}®£TÖ¯åêå>~ëÖiiaaóç>üö-±ꪒ’æÏ_°àäI?¿iÓ\]{÷nÞœËý‘ê´ ›mbÂáàxuuF†@P7oÇårïGV\ýÝ|šhþ‘Ô3ŠVV&''%•–Êå4š¶vÇŽžž«W/Zdcƒau×ëS Eyù•++WnØš:t¨•Š …HÄç“ÉFFªãOø›ÆÿÏÅ`˜˜89?þàÁýûÇŽ½?p`Ÿ>††~q¸þÙ‹ …X\\ÜÔ½¾•««Ïœ9S§ººÚÙI¥ÏžÝº¥:mÃx¼‡ÇŽýçâcs›awîÄļ{'‘ HÝ$‰Áxhâ4Ž×ÖfdääTT¼}½gωIIeer9nf6vì÷ï'&Ξ]^¾gÑžBÑÔìÚuÊ”Aƒh´Ù³W¯Þ²eÿþ¤$×ÓS*³²ÂÃ<{¶°P(¬ªº{÷ôé¸8‰¤ àÆ3gΜ¹¿ªJ(,)©¬¬®Îξzõüùääª*‘¨¤„ÇÓÐpt?&æÄ‰»w++kk‹ŠNŸ>v,6öÃÄ?nn^Q±añc½{¯YãäDÌýªP\|úô’%K—îܾzõÂ…Û·WW7õyߎD¢P¸Ü–-G š=›ÃIK«[vAˆY?M%«“¨~«úÿÿtð_`XMMZÚ•+û÷/^ììlg×¢Åyyõë4}H"ÉÊÚ°¡ÿU«öí;w.5U À°_ßçyóFZ¼8#£þ·ªH”•uêTrrEů(C…ã"QVVL̪UááÇŽ=|ØpK…‚Ç{ò$&fÝ:±øÃ"\€Æ@âó«ªJK?}@uÅU MM]ݦî*h¥¥EE¦¦-[Êd2™êÛ1ð'h¬+8{ö¬YW®¬Zµ}ûàÁººÄ·jkŸ<™0aÈ5kþù'&æÌ™™3--ï ÅīЀŽŽîîùù¹¹éé––Í›·k§T~øv¿1H$‰‘!2D†Èù-²L–“ö䉮®¿ÿ?ÿhh HmíãÇ“&]¸`jºw¯»»±1•Š (ZX8ztB•zâ„««¡a] ŽyóRS¯]‹ˆ°·WW‰ž=ss»qÃÔôäÉ‘# •J «©iÖÌÚzüø˜˜gÏzô@û÷—.-(èÔ)$¤]»W×øF"Cdˆ ‘!òÏ‹\]Íã••ñx••ee¹¹99éé]º88ôë×P{Õœ ‚p¹ÆÆuÔÔ>ÁÁ îØ‘œ\]aB£™švìxùr````ppxxXتU‹GG¯]Ûµ«º:ñæ”ÃiÝ:7wÑ¢~ýú÷wwŸ={åʰ°Ã‡MMäýûØØãÇ/_.+£R­¬Îœ™:uêÔ+¼¿²òû~7ÿ‰ã ‘!2D†È¹±¿wŒfÍäò;w6mºx±¸Xµ”¥\^Påøñ;ºÿ®]þþ~~6lÙ²cÇîÝ›6-^œ•%Ëê–”\¸2rä´i۷ߺÅçËåÕÕ))§OoÙ2wîöí.”•¡(±6Bbâ®]QQ[·†…ùûϘ~éRIɇÇQ(øüuëV®¼|¹´”د¸8*êÅ‹üüöŒÜ¿?)‰hMÄܱ#0pÍÕ˜(Š¢UU& :vìÑ£7oÆÇ9²mÛúõÆõì9p ¿ÿ¾}OŸ¾zuáBT”‹KŸ>C†,]›ŸOŒGfæÉɺºuïd•J©ôÝ»¸¸µk—/_³fóæ5k||¼½#"^¾¬­U*)'OLK Õõà”7_Ááp8jj¦P@úÏôcWN70èÑ£ƒÏ­¬®ÞµëÑ£÷ïŸ?ßÔg |:ÝÄdÈI“V®2dÒ¤ëÞ=5õرîÝU·îÙ³o_ÃñH$6ûñã7oÒÓ?Üàë«úó›7ÉÉ11M}öþ|dò‘# Éîî®®ãÇ3ññÇŽuérõê¼yW®ôèîíÍd8–V¿†UT$$˜™DDÌœi`P7¹hĈAƒ–. =w.$ÄÉiéÒ˜˜ÈȹsÓÒ¨T:]S³U+[[ %"bôh''/+‹‹óö;vëÖž==<\]ÕÔ éô„„5k¦O÷÷:´þ½!•ª¥õþý£GK¥8Ž 4𱱉 ‡£­moïí=¾··¥%ƒ¡P”•ÅÅM™2vìÖ­––..®®&&8^YIÄ46¶µ‹ãpÄb@*µ´:têÔÿ9ÒÍÍÙYCÃÃÃË+"E/\ˆ‰9y²m[õð˜4iÙ²´´¡CcbŽËÊÒÔtumÓFCƒHÛëŠmÜvêTYY÷î>>‡ïܹw/“IÌbGIC#3óÀwï„B{ûöí¹Ü¦¾Îü¾)-—Ëå ՀϡÓéôŸùu*ø_fh8dˆ¿Ïž»vMŸ~àÀ¾}YY|þ AS¦ŒÏb‘H……¶Çq±¸¸ØÀ@KëÃBtºLVT$‘Ô­ÄáP(YY.‰ÅíÚ)•W®H$­[[[#†I¥åå2…bb2}º¯¯Ÿ±‡Ï¢Eÿõ,”Êú˜ŽŽS§úù98hh|óÖ-!‘ÈdÕ’ÄÏDÒ˜ØN"Q(ª-D" #“™Ìú­Š®îÀÁÁ%%Û¶EF;6xð!¹»¯X±yóŒ}úèê’É&*°ŠéÐ -_Ÿ hhlõ‰QIC£K—iÓÜÜÌÌ&L8thýzmçÎ}ûôõ©TùpayA2™Å26./—H0 AÔÕëÒÐ(Ê`3™õKÍÛÙ)•OžÜ¸ñúuJŠB¡TÚº5Í65e³qœÏWŒãryU™L§ëè|ïù¨ÆÌʪ®–É44 "¦LF&L›M¡à¸D‚aĘ‘H&ñùmÚxy:äímgد_xøêÕ¡¡ýú]¸°iŽS(\.• õŸhLß”€ÎÊJOþ¼©» ø“|yI ßÇkkÓÓ/]:t(**7·²2''))/ÃþýwÆŒ¸¸Ý»kj&N´¶îԉÑHrs¯\ILÿåË;w²²„B3³†ïÔ E#"|}ýüª«'Nôö^°`ܸº˜ááË–9;èëwêDÄôòêܹ¢¢¸X(¬ªzø0.îÌ™æÍÇŽ5ª²òìÙ{÷x<¡°¤äòåóçïÝ«¨àó>äñD¢ââÄÄøø7Æ·¶æñJK«®îÙ³W/--Á°²²kׂ‚ß¼QW·³36V*¦Nݸqñbkk6[©¬®¶±™<¹Y3(¾@c"ñùUU¥¥Ÿ>ÐðŠ«ðuÄj§?x0ÀÑÑÝ=??77=ÝÂÂʪmÛ¦>3ø>ÕÕ<^YWYYV–››““žþå);“ùq"QJʪUÓ§ïÚÕ¹ó–-;v8;ëéQ¿8 S¡(/߸1=ÃY´¨CfAð#ˆ¼ñºGnêÎ|,881Q©Tý7,ìʨ½~¦Ç?~ü8%%%%%å[Ú{Ëç*šú,€ÿŽ­íÂ…ÿüóèÑÇ?xÐp[…‚Ç{ôèøñÈH__[[H=ÐØ¾©ǯסƒ©)Šªn¹xñÕ«¯í5lXûötzS÷ý¿À°ÊÊÄDÿiÓnßÞ²åìÙÐPA¥R$ÊÊ:}šÃ±±3¦©ûþ62Ùû÷gÏÆÄìÝ{øpAŽÎàÁ––,‚(Báû÷÷îµl9wî¾}NNúú.Pñ©ššädgçU«¢£oß¾|¹©Ï ø>'Nœ8qâÄâÅ‹/^L&“Édò»wïÞ½{÷å½FŽ9räÈoi9lذaÆ1 ƒ‘—————×Ôg ü/ “¹Ü6m<=×­kÓæË-©Tmm{{OÏU«šºÏü!Ý¥K›6-ZÿÿôiFFN΋ãé¹sg^žX,“aØÓ§YYß?ëùĉ»w©Ô#G|}--â˜ýŠ®®£ã–-gÏ::ÖmS(ÊËoÞ urÚ³Р±1ff£FyzNž\\œšª£3cF§NjjÄcJefæ¥Kß©nÍaàÏ´víÚµk×FFFFFFNŸ>}úôé_nŸ™™™™™)—Ëår9‘P¶´´´üÜߟDK6›Íf³CCCCCC•J¥R©$‘à·'ø_ñÍ€¦Ñ¨T-(häHkk2™üŠƒlÞœ›Ûðã(ZRâé9zôâÅîîk׺¸<}ºbEHÈ’%çÎ=zD"%&FGGF>}*•J¥ÅÅ$Ò€AA~~Ðé^^ÎÎ3f8;ÏŸ?z´Hôòå‹§Nݾ]V6bÄòåááÓ§÷è¡­­T–—'%íÝ/˜™µjÅãñùššÞÞ‹yxØØp¹dò»wqqk×îÛ—–ÆáXYéëã¸@ÐµëØ±½zeeztlìéÓ3gP(IFF` ››‹K``hè¹s!![·†…:UVÖ½»O¯^Æ99MœhggfF¥¶jÕ»÷ž=»w!¶f£ãäÉcÇž;wæLzú¬YÞÞuK`XEEB‚™Y@@Dqbûˆƒ-]JÅÑÑ×wʔݻ+*:v$Αh““C&kiÍœùàŸ¯PøøhhTU³}ûĉxþ_6}º½}Ý3A„Ãyô(##%A**¦M3æÀƒoß>{–xœ¸·³²$±±ù8Žóù7n ˆž^¯^M}fÀ—Å7ˆêÏĬä•+W®\¹òË{­ZµjÕªUDêyÈ!C† i(M´|ôèÑ£Gˆø+V¬X±bñ(¤¡|/¢”â±cÄļ~Íáüûo‹T*———šš½téî݇s8ß3¥O©LN®¨P(¾gBÚÛ«ÎïQ†ÇE¢ðð'^½š2eìØîÝ55?¿Dá“'11ëÖ%%!ȨQs渻·mËfÿ—I“ü/k´§ÌâPWg³i46›É$‘ÔÔX¬ïÿ—ˆðµãHd2•J&וøP*¥Òòr™ŒB11qtœ:ÕÏÏÇgÑ¢mÛ.^|øðüywwSS(2@¡Ô'Å©T6Û̌ͦP ‰D¡Àq‰AØl«.)L¥²X††tºLVT$‘(1wn‡••qq!!“'uï^U•Bñ­£„ãbqq±êQªG©;zý9ÌÍG1BK«°066=] ¨­ýçŸþý!õ vï~ô('çéÓŒŒ×¯oߎ‹[´ˆØNÜoĽ­Úž¸·Uï7UVS“ÝÔç| Žã8ŽÅ7T bX[[[[[7T©Yµ¤ÑRµÇ§í‰–ææææææÄ"ÁM$¦‰rM=þ$D)Å &Nü÷ß±c§O÷õ:uîÜ+V­Z³fÈk×ÊË¿=¿€ DñÏÌL‘Çþ^õê˩纘DÒ_1ŽJ¥Xœš6iÒ¸q §ž ]»º¹Í˜Ñ¹óýû;w¦¦ŠD¿¢‡ü]!ÝX5 559:Åb0Èd.—Åúþ‰ß=d6ÛÔ”ÍÆq>?+«ºZ&#¶ã¸\^U¥šbS}ƒ PH$ÅÅR)™¬¡aa¡¦F£±X"——K$V×F*--EQÃØ˜É¤R„ÏoÓÆË+(èСëׯ]»uëô騨իCCß¼‹¿µ·,–±±êQªGinj:|¸““–V^Þ™3ÉÉwïþó¤Ÿ* …ñ¶vs#>à î7âÞVmEÜÛ Ýod2“YW¾ø=ÅÆÆÆÆÆ âO%f7º]µ¤±Eµǧí?-èAâÀ0 Ã0¢GS€?Ó§ß'‘´´èôçæ<7lزeÇŽÝ»7mZ¼8+K(ÄqAÑââÄÄÈÈ<Ø¿?""2rÿþ¤¤ª*EÜÜsçÖ¯˜1cñâ;"#7oö÷ŠzõJ$’ÉÞ E‹Šwì \³f×®¨¨­[ÃÃ/]*)AQÕ)|þ³g11›6­[°r¥jOˆ2¤ª1 ª1ÃÂüýgÌ@Q­ªzð`Ïž &L:tìØ#G¶m[¿~õêY³\\† ëÙsàÀW¯.\ˆŠÚ¼yñbOO—>}† ‘ˉxJemmfæÉÉÚÚª“û”J©tùò5k6oÞ¿?**,lÍoo¥’BÑÑéÚÕÃCOïÉ“ƒÓÒšúÚðçiä?BKK]Ū­Å0 E*­{Yøþ‚ RéçGÑŠŠâb¡°ªêáø¸Ó§›5sqqqù÷_KK'§èèãÇŠððeËœôõ;u²±3& ÀËËÁØ·¨(!!00  ººGkëÊÊÒR:}þü³gcb:vÔÔ$“{öŒ={÷îçÏ 57·¶®¬¬ªjÕ*88.ÎÓ³uk A¢£çÍóòzóF]ÝήukcêÔàà™3««¯_ß·¯¤D$âó…B C.—É´´>¼S'ݼùäÉG&Ovq±·×ÒÒ×>>þþýÔT.W__$rvvvîÕËÀ€Á ÚP(úúÇïÙËᄆnݺs'q¿½ySSÓºõ¦M+V÷[||I‰HÄã½~][‹ãÖÖ..‚ ÿåy |ŸöímmÛµ+,,,,,ÔÑÑÑÑÑqu=ºá¯î–”””””ddddddÅ7>m³zõêÕ«WZXCµ¤±…˜ÑÜP!Ž      Õ-Älë””””””:tèÐááÇ>üò9îÞEü?1ŸúåË””W¯šzì4-¥ÃÄâÜÜóç×®1cß¾uë®^uw'û¶ž“'[ZZUegçímiYÿN°sçÉ“W¯vv66f21¬¢bðà¾}çÍ{ýzüø˜˜†öš8qìØÐP¢´©©)†!HRR}iÓºï—S©ZZ;Þ»÷îÝ_/CJM-/×ÖÖÔ$bª©Òé§O—•©«»»»¹wèÐÑ£+Wzzúù{¡è»w;v¼z¥£3cÆ‚NN3fÌ™óîÝöí©©µµÒ©‰”“sìXV–¦fçÎõ£‰aUUIIƒAM;vêT33 AH$uõ¶mÝÝ54Ö­;pAÄÞ¾©¯>’ßh¶mÍÌÈd±EÉäg+ åsŸÖ£ÑôôΟöìÉ“O£ÓÍÌFŽ\ºôÈ‘ºŠÉïkb2bÄúõ7ª¾¼~ØÂÀ _ßððþýêÏ–-11Ÿ{ÄÁaýú„„ñãׯ¯?ƒaÃ""nÜ6ìãÖ¾¾ááÛ¶}þzz½{{znØÐ»÷ç§R¹Ü-LMmm'Nüþ1Íа—yóú÷'ÒÅ ·40èßñâ¹s?wo÷îíéÒ»·§çÏï3ñ¦ýg|a"Cdˆ ‘!òŸ™L®_¾šh¯¥¥¥¥¥ÕP{âÑÇ>|Xµø†*Õ––––––ªÅ7TKj¨âPí‘ànݺuëÖ­:¯ƒmggggg÷å½/^¼xñâ†U-¬AÌkþ´øÆ§íUûÝPšÐIÅ—{»cÇöíÛ·ã¸R‰ã:tøð¯gˆ ‘!2D†È¿>ò·¢Ñ´µíìttˆ²DúÞêêué× x~> ¸hÑñãýû>|ꔋ‹‰ výúáÃññ_î…jiS ƒ(m*“‘É::,Ö×SØŸ"ЦªÆ$¶ tâ;ðßD¢ÑØl åÃÖ&ES—-ãñÒÒÃÃýüˆ¢©­[c˜H„ã —û/%©ß(­££««§7gÎüù 6u_>}ûöåËM݋խ[¿~íÛ#‚´o¿lYS÷ 1tíÚµk×®¾¾³gÏžý-©çoñiaO‹o|Ú^u ÑÞÇÇǧ1>ò'ÎN ‚Æ:G"¢”bBB\Ü;©©ššææ,ÖèÑC‡Z[;:._îí½`ATTpð† Ó¦uìøåžDòE--óõõ󫮞8ÑÛ›(þ9a€Têºu'º¹%'÷íÛ£‡ŽŽR™‘¼nÝAAK– üé^ÑÑÇûø¥MÝÜÄÂbÐ _ßÐкҦugPU•œœðmeHõôœœJJ<= "bš›ëëëè„„lØàïçN|||½©ïþ<$>¿ªª´ôÓž>MNNJjÙÒÆ¦}{™ŒFÓÖþ‡W*„D*,”É44pAÈd•ɤR—É„Â_¾G©T*™L ˜û Àï¡kWmíêê‰@¼ àèèŸ››žnaaeÕ¶mSŸ€ßц 6lذdÉ’%K–4VL“û÷ïß¿¿ÿþýû÷ûöíÛ·ojO”ì ¾Éçäääääôåöß{vD:$$$$$ä׌*€ÆR]Íã••ñx••ee¹¹99éé]º88ÔU:þ”jNA¸\cã¦>ƒ¿‹R)¥¤¬^-·m»j•žÞ—gg+åå—/Ïž=mÚ«W3g;С‡ÓÔçÀïNCƒJ•ˉ׽&ž]Q!—³XRiÝ—>p¼¦†Ï¯ªêÓ§ys6›¨¤DÔí!ªûÕÕ髯×Gl E"±85•XË€¥Zˆ£¡âªˆ–2™L&“}K{4 ‰Ã±µ]¸pçΘ˜¦OwwïÑCSóóièGŽŒ|þüŸÖ­›;×ÖRÏ|¿&N@ÖÖEßëRÐ"‘L†¢,‹Åd[ˆ3…RŸ€VE&S( Žã8Ž×ÖVV~¹Œ>‚ôîmmÍd¦¥egK¥<^Ó§« i4)-EÑ¦î ø —K£ÙØèèÐhryi©Xœ™)“Õ=Êfkh0vv::$’H$+• …P(—gd…Ö #“i4*ÕÊJON×ÑQ(äòŒŒÊJ…B.çpŒtu$7·¦ÃÞ¿‰H¤AƒZµb0JK++årÇI$55 S(ž=«¨À°/ßU$F¥öêeeE¥Þ¹óúµTúmçJ&“É:µjÅb¥¤äæÊd&&4ÑŸ¦®{4.ÕB·oß¾}ûö—Û¯^½zõêÕR©T*•6T¬¿2™Ë ðôìÑãËíìí==W­²·oêþð'kâ´\®P`˜êU(pœJ¥P("™E¤) …HB×σ&­÷i´O]¿žž.5íY×!‘Èd *Ç ¾–8¿7¹¼ºÞ<  [[*ÃäòúkÚ¯Ÿ©)•ZQ‘][ûì™X¬TŽÕ¶-“™››™)• ª„(öúuy9‰¤§‡¢2YUŽ“HÆÆ\.™|áBv¶P¨šV–H0ŒJÍÌ,*’HÊÊ0 Aœœ:tPS36®ªª­ÍΖ˿Ôk…î_OO¯O• …DRW§P”J‰D,–Érršzô€ŸÃÚÚÚÚÚZ.—Ëårsssssó/·'Z²Ùl6›ý-íø_ð$ ?œ…L$‘y<>ŸÇ«©©©ÔÕÕÔÔÕ‰G1 Ç1Œ¨M§Óétº¡a}úK‰\‰DêÕ«ys6»¸¸ @$zûEÉd—¸Ü´´wï¤RC]JµµÕ×§Ñ óókkïÝãñd„®]54x¼âb¡ðÆ¢"…ÂÁ¡C :½²R,¾w¯°P.oÓÆÊŠÍÆq©T©¤ÓÙl åÑ£œ±ØÊÊÜœÃi×NCAx<¡Ptu‘(=Ç ## ÇI$©EÓÓKJPT.§ÓéôNLM©T"&•ÊdóxBDCª*¹ÜØØÊŠÅÒÕåókkãâÞ¿ÿZòü|J%q‡â¸júÅ‹‚‘¨²²¶Ãär¥A0ŒøHÃp\.ÿøÊQ( …R‰¢¦Tr8::,–‘Qm­P˜—÷ñóE©D¥R¡P(êâß QôÃ>|ˆD"‘ŒŒ X¬-¸\éîÝ·o%33cc6»kW==29;»ªJ¡ÐÑáph4ccANœxñB(´¶66¦Ó¹\2™L¶µÕÕ%“ÓÒJK ¥Ói´îÝ ¨T‰„L&¾Ùð}©màwôíÅ4ˆ–L&“Y÷M>@' …ÂúúωD.Ç0.—Ë%R\d2‡Ãf³Ùu“H$’R‰ã8Ža8Žã2™L&•É<¡P*ýZG]Ba0  %…B,&“„F«­•H>,+S*?.*âpÆ·³c³ÕÕKK««ãâÊÊpÜɉNW(jjÄb _¿æñnÝâñpœDb0˜LC"Á°êjG¹\,&“›7W*åò/Þ¾U*[´èÖM]=1ñÁƒÊÊÿ?øT…‚B¡ÓŠÇÅâºâîî:ihðù%%R)­E‹f͸ܪªª*ˆæà@§+‰‰ÿ.³¹J%‘är¥ÄB©´îšff¾_wŸ“É ƒ‘’’’R]“#}®h…B&ãxÿþ:hhp¹ååÁÉ“ùù(úi:Ç•J¥R"‘É ±X©$“ C==:Ç33kkq¼¡B3ÙÙ……Ò¡C·njjB¡D"—gfæç+•mÛ¨©=|˜]SS×6›Ã12’Ëe²'OrsqÜÂBWWMíöí¼<©”D¢Ó™ÌqãÚµc2Oœxð€Ï'ö²²jß¾©¯ðãbbbbbb·%ð½0¬¦&-íúõÓ§Ù±cÛ¶3g\\âãÓÓ'O¶´d0>n-‘demØàät℞žŸŸ«ëèÑNN¶¶ʯìó¼y£F-^<}zLLhh›6l6‚ˆDYY§N¥¦êèŒéà §G£ýÌãã¸H”•uüø¦M/’Hƒûû{xtïþ¹– ÷äÉÉ“‘‘mÛº»/_Îf“ª£‰Ð2Š~8ûS.GѺ„‹Åd2™ÄŒN…B¡P(ˆŠÏu¥8ˆô4—ËåÖÖÖÖÕ£¿6 Ç•JQ(PÃd2U*‰-(Z¿…BAQ'¶Ëå(Šaeer9†ÙÚ2,ŽËd©©UUF¤Ï)Dzõ*7·¦æÝ»OëîR© ‘(ü°‡J%…¢PHuÇ%¶R(J%†©F»};;ûÃhrùÇ{ßÃç¯)Je±X¬þ17'““’22ž­OÜOž¤§‹Å½{·o¯¡Ñ¿MMeåÙ³ÅÅÞáªw©D¢P`ØÅ‹¯_cØäÉÖÖ,Öóç55 =+”Jâά&~º¥¾?ÄQd2ù° qÿS©ŸÞῲ 1P(êêíÚ sæ!Jejjzú‰±±·nÙØLžâåe`ðôéªU›6ÅÇ[[ûúFG¯^=v¬…EfæÉɺºsçjks¿•J©ôÝ»³g7mÚ·/-áӋŠÒÒÔÔfÎܺuÞ<;;'O|üX(Œˆ°·oš´=£ß LJ3†1 E1ŒËåp¸\[[[ÛˆíăJ¥R©T¢(Š¢hAÁû÷……(*—×Ô$$îmiiYÙêÕ—/.ö‰IIïߺýåËׯËË_¾|ýúsýY¶ìÒ¥ÒÒ·Êå55'N$%ÕUàý\´·;võjqñ—· HmmMÍöíW¯ªn“J»råã–àûÈd¥¥55×®ÿ~üèÒ¥§Oçæ~[œÚZ¡ðöí””ú7êàxHÈ… ……ªÛ–-;sæÓ–ßÇSSß¼©¨HM}ó¦nÛçïU¡ðÎûsçNfæÇkk…“'_½ªû¹k×þý9œŸ7æð¿ÌÐpÈÿž=wíš>ýÀ}û22²²øüAƒ¦L?žÅ"‘>|÷ˆ 8.hi}X šN—ÉŠŠ$’º©Q…’•uáBQ‘XÜ®RyåŠDÒºµµ5‚`˜TZ^.“Q(&&Ó§ûúúù{øø,Zô_ÏB©¬éè8uªŸŸƒƒ†Æ‡1oÝB‰LV-‰AüL$‰í$…¢ÚB$Â02™É¬ßJ¡èêQR²m[dä±cƒòè‘»ûŠ›7Ϙѧ®.™ŒaB!|߀ÆÕÄ h Ap\&«ŸªTbŽS(T*•J¡(•JeÝçPD{‰(¾ãqqw¦¤H$††4“I£Éë¦=#€Ÿ£>1J"ihté2mš››™Ù„ ‡­_O£íܹoŸ¾>•Š Ÿ–b$“Y,cãòr‰ÃD]½. ¢ †±1“Iýÿ";;¥òÉ“7^¿NIQ(”Ê¡C[·&"°Ù¦¦l6Ž×->OÀq¹¼ªŠL¦Óut¾÷|TcfeUWËd S&#“¿?&ͦPp\"Á0bÌH$  ‹Šøü6m¼¼‚‚òö¶³ ì×/<|õêÐÐ~ý.\Ø´ Ç).—J…úÏ4¦&N@OŸÞ­‡³mÛ½{µµR©B¡Tâ8‰ÄåNœ¸}ûÝ»ŸÛƒD"*Ð’H4šºº¥%QeV¡ørM]€?Ž×Ö¦§_ºtèPTTnneeNNRR^†ýûïŒqq»w×ÔLœhmÝ©‡#‘äæ^¹’˜xîÜýûééššfftº‹‹£c»vúúÇçåùûûù…†š›+ ½ܺ5‹Uw¬€€õë[µòðX±âÁƒ-[ΜY¸ØN¡èé99EG?®P¸¹yzN›fn®¯¯£cc3fL@€··ƒC}Q´ªª¤D$âó_¾¼s'+K(43ëÐaøðNP4"Â××ϯºzâDoï Æ«‹¾l™³s@€¾~§NDL/¯Î+*Š‹…ªª‡ãâΜiÞ|ìØQ£*+Ïž½wÇ KJ._>þÞ½Š >ÿáCO$*.NLŒ¿qcüxkkïС´´êêž={õÒÒB ++»v-((0ðÍuu;;cc¥ÒÁaêÔ/¶¶f³•Êêj›É“›5ƒâ4&Ÿ_Uõq A§O“““’Z¶´±ißA¸\cã_Ó!™L&“ɤR±X$ªûŒêë{%;45µµÿë'c€Æ¥¡A¥ËtþWīЀŽŽîîùù¹¹éé––Í›·kG<ß··ªUæ!2D†È"ÿ‰‘7lذaÆ%K–,Y²äOéó·#ÎnéÒ¥K—.ýSú ‘!2D†ÈYUu5WVÆãUV–•忿䤧wéâàЯ_Cí›*'ó7‰RRV­š>}׮ηlÙ±ÃÙYOúÅi˜ EyùÆéé΢E:p80 €Aä…ˆ×=rSwæcAu5Ÿ¯««¡Ááèëkhp¹ššjjFFÚÚÆÆ::ššÆÆººZZ&&ººZZ¦¦::::jjõŸÕþN?ãEˆ ‘!2D†ÈùO‰üíéõß§Ï"Cdˆ ‘ASáplm. üçŸG8~üÁƒ†Û*<Þ£GÇGFúúÚÚBê€ÆöÛ% ‰—n‹ù &“Åb2Y¬ú‰åÙl6›Åâpˆÿ2™ß–€‰²²NJN®¨@ÑÆê/óË­0¬²211#C,þ¾èRiVVttn®L&“^¿~íZJŠ@ð3Æü<xyuêÔµk›6-ZtéÒ¦M‹ÿþ;qâåË<ÞÇ5ËQ´´ôÆÓ§ÃÃÝÝW¯>xðÊ•‚©E««ïÝ wq™3'$äСӧoÜ(*ÊÍ={¶_¿Nzö\ºtóæ;÷íÛ¾}ýú•+LM ¿^ ¸'çÍ5jñâï9©4++,ÌÉiØ0Õ{JàøÉ\n›6žžëÖxzöèÑpK*U[ÛÞÞÓsÕ*‡üfÊøÓ5q è»E¥P(âDb]S …B¡PÈd2™ø¹îÓ(² ©+-ß°›7ÃÃcc+*‡wpÐÓûÑž*ååDL'§={ÆŒi¨…¢«ëèØ¦Í÷ÆGQ€F#“„Á050`à@SÓŸ;ö ññù,V¿~»v=x°aƒ—K¬×K¥R(ÿb£Ñ û÷1ÂÕ5+«Y3míÁƒÍÍi4/9ùîÝgÏŽÙºõØ1Õ_‡ººjj§O3mš¯o§Njj2~|¯^#F\»6xð™3£F5ü#âžÜ²åìYGÇï9rrjk1 îIøÙp\©T*>,(À0…&ÿ~_D¦ËÀ€Ë%“»t14¬ÛþÛ% ‰¯®ðx|>WSSS#¨««©©«bŽc±ê+N§Ó醆u hùÒK1ŠGE½x‘Ÿod´D„DbiÙ­Û¬YÞÞýú¡hQQbbttdäÓ§R©TZ\L" äç7t¨‘Qaa\ÜÚµûö¥¥q8VVúú8.tîììܪÕÇ»w1 öïOJ7ÎÓ³_?­þ¸ ŸÿìÙÉ“{÷VTôï?oÞ!::55÷ï8°fMUUÛ¶ OŸ>ž““‘ñô)‰ää8p Tš°wïÉ“òù7oÊå-[ìá1~|ÇŽ11‹ùù ff­Z‹ôî=sfHˆ — ŸÕý~jkY¬V­Úµãp¨T*•úMÏ:¢†˜TúömlìÆwïÚÚnØààðõ«K"1ººÚÚ Æ—ÚÖß“—.¥¤ÔÖ._¾~ýܹÄ=¹}ûÙ³Æ bcCÜ“ge‘H W®DD÷da¡HÄãEE9òâqO²X••IIááÇŽed÷ä¢EK—®]ÛÔc¶ììÊJ “HärH>~o(Ša’ŸÏçcX—.††uˆ»4Ëår¹\"­LÙ¨{„HËá8ŽcŽã8±da]ZO&ûÒË1fllbÂáhkÛÛ{{ÏŸïímiÉ`(eeqqS¦Œ»u«¥¥‹‹««‰ ŽWV&$¬Y3}º±±­m\Ü;aa§N••uïîãÓ«×°aNN'ÚÙ™›S©66cÇ&$œ9“žN$²?w\*UK«sçáÃ{÷Þ¿¿ª Ç„FÓÑùçww={*+íì¦M›;×ɉh=fLïÞãǧ¦öíãê:uê¸qAU•Ñ[ «¨HH03 ˆˆ˜9ÓÀ€B!ö1bР¥KCCÏ ±±zØ¿‰DM Çß¿/.®©12ÒÖ®¨4ÈÍ->~ß¾¸8ÿæÍŒÏíµoŸ‹K¯^ååƒGFîß¿p¡¹yÃGP*•J…B,®¨00`2kj?NMåóÿù§OÏ%¼ëïÉÝ»wï R½'>ztåJOϹsW®$Z£è»wÛ·§¦¢¨•qO^½Ÿ‘1c†§gÇŽÄ=9eʘ1-*’J%’ÏŸ‰©©©©¦f‹"?xPT$—ïð¿‹N'þû›&  D%hÇqW( …‚LV-ÅA¤§¹\.W$ ¿·ºr¥R*-/—É(GÇ©Sýü44ÄÇgÑ¢º6C†DDÌ»m[dä±c!!“'oÛ–½}ûýû3ftêôcçH¡|\Ú¾¾¼Èçà¸X\\l` ¥U—z&Ðé2YQ‘D¢PüÜkþ‹É“׬™1£þguuSSàöí/ªªüüš776V1_gܸµkÝÜ"#çÏ÷ó[³¦eËS§6m5êóå.H$‰Je³õõW¬ÐÖö𠉊5ÊÞ>0°E &óûúûé=H"}x¿©"îI‰Aê?(Ð8P´¾ðŠÖÖÖÔ<~œ—G&ÉdÕÕ…… ‚É,–šZÛ¶ †¥¦Ö¥«¿ŽD¢PtuÃÞ¾U(¾5­úßöR¥PÔÖÆÅÝ¿_[«³eË-8œŒŒ§Okj~ö¨ÒéššÚÚåçóx"Ñ—ÎáÝ»üüêj­cG{ûêêÒÒ¤¤ê꯯»¨÷›& ‰ÍùùyyïÞ©©©©©«+ вXl6›M"!‰T_ŽC©d0ŒïM²Õ!“ÙlSS6Çùü¬¬êj™ÌÁACƒÁÀq¹¼ªJ&#“utøü6m¼¼‚‚òö^¶ŒÇKKëßôèÐÐ~ýŽ=úWŽ ™Ìb——K$† êêuiAe0Œ™Ìo+ï~­š©ÃÔՙ̺ëÅbQ(8Ž¢8Þð¯9.·]»9s6mš7/5uòäàà)S0lÔ¨+WN#‚°Ù¦¦66l¶TúêUm-±Ôæ}n|âžd±ä¿~ !(Ša~Û›øN¸BaF|áLÆ0¯­­ßBèÕËÎÎÀ€Å’Här‘ˆD¢ÑrrrrÊËËÊpœJmÛ¶ys-- C¡ “E"‰äÙ³wïÄbËØXG§W/cc …Ç«®V(tt”J‘èâÅwï0¬E +«Ïí%•2™\nÏž-[2™8.ã8.ÕÔܺURRŸB'‘(ssssMÍ6m´´ÈäË—_½âó‰žôè¡©I¥jhXX0DL"5ܧOûöººDLCMN'æz[XXYéêöîmjJ¥fd””ÈdººêêL¦……¦&™œ‘Q[km­§Çb5o®«K¡8pãÆû÷DÂÞÈÈ‚É,(xþ\ulI$gçví´´*+¥RISSK‹N¿téÉ“’’·oóò  *E«ª$’¦¾/ø“üvéJbA.—Ãármmmm;tPÝNTˆFQEÑÂÂÂÂÂB@.¯©yû6??=ÝÚº]»ºö >¼S'ˆðõõ󫮞8ÑÛ{Á‚q㜜¢£W(Â×-svÐ×ïÔÉÆf̘€//¹vmÅ /¯7oÔÕíìZ·61a0¦Nݸ10ÐÚZ[[&#bnÞ|òä£G“'»¸ØÛki)éé.ÔÔX[;9ik ÉÉ /_b“)?Ÿœ\U•›Û²¥»»‹‹ƒ‚Ü¿Ïã …Åʼn‰§OŸ8‘—§T¦¤$' 99ÍšåâÒ·¯¥åðáyyþþ~~¡¡ææÖÖD½ÝàุààÖ­¡øÆïèâÅ5k&O¾wO©lÛ¶cGssiذ}ûN1ÂÔ´îË--½q#!áìÙ{÷ÒÓµµ›7Ÿ4iܸ®_=šÇ;¶_¿aì­½¼çÌéß_"©ªª®~ýzÇŽM›""zõ21¡P^¾|û–F›??6v÷îŽÕÔ>ß#­ª"îÉ’‘ˆÏ e²Š âž,. «ªîÞ-+“Ɉ{òüùøøû÷3244´µ‰{’hsóf^žDBÜ“{öÄÆr8¡¡[·îÜIÜ“ .Y²fMS=üÙÄb©”˜\T‡J¥R1L&“ÉPØLuõaúuÓÐ8sæÊ¢ð'‚ÉL¦ºzYYJJaáË—õéÒyó64>ýûkkWTäå |>†!HÛ¶íÚVT”—çå%'×Í3FѬ¬ÜÜššîÝ40‹Åb‰„ˆÙ®©©ÁåË“Lf±44X,±E‰˜r¹PˆãmÛ’É2Yrò›7<^×®††·n½zURR7>jjºº¦¦Rieå… ¹¹õ[0 Eóò”J«S'.W¡Èʪ[2™ÉTS30 “ŠŒŒÒÒÚÚû÷ÓÓår©T©D‰¤¬ŒÇ‰Z·ÖÔ‹¥ÒŸ?G€¿Éo—€&^ŽTÍD© ¢ô±E,‹Åb&“Éd2ÓÒ23³²,-[µjÓæ[âqãÆ°ao§ÓÍÌFŽ\ºôÈ‘‘#?ÝËÇgË–˜˜ï‰I£µmëäT—ÖÑqp?~ýz‡ú½{{z†„ôîýa¬~ý®_öLµ–´››‹ËÇGôõ ß¶í—_ð¹»>ìîþõ–4š¡aÿþ®®óç÷ïïêúác::±±II/ªn»q#%åéÓïïVwO&$Œ¿~=±µîžôô ©oÛ¯Ÿ‹Ë¼yýúÕ߇nn..ÞÞªm„F30èßñâ¹sû÷¯ß 5 àŽóù÷î­X±hу^^;v´jõs¿‹üÝTKp”J S* …ÄB>_ ¸s§²ROÁÀ0 «©Q*„JE …Ç“J1 EëËu¢(…B£Q(Ä\iÁq§R‰6u©d…‚FSWïÑ£m[ —J‰$lÝÚ‹øžïóçeeÙÙr9‚\½ššZVö¹s"‘pœH”×ݧ[A¨T¥’LVù!ØK©TÝK©T(ˆR®uçþáQ*i4éýD(òòŒ-œœzõÒÕ¥P$±xÍš òò0ŒDR(0ŒD"‘>½"€/ûíÐDíY …J¥R)¥R©$æ>×=J"/J8žžž•õúµ©i³f-[2 ÆçrcË–E‹Þ¹óĉââÞ½§N4‰FKM½wF0 ((8xút;;6E++ß½ËÎ.(‹ÿÔ7gïß_¾¾ysbbE…®®™™PXP—§«ëè¸páìÙC†˜™1¯™ðï¿-Ztîܣǹs÷î­_ß¶-|3 @c@Q…âÊÃJ¥BA¤ƒqœHWW——+ŽR‰ãUU ‚`˜L&—s8uiÖú4±B!—‹Å(Šã(J"á8†ÕÇ!ÚŒëà ¥õêÕµkoß3—ÛµkÙRC£îˆD÷’J„L60 P”ÊŒ …B©$‘(*•FÃq…âÃ…ûH$W*•Êú³ût ‚Ô…•Z“ØN§“H"—~¯Ççã-‚aR)ޏ™L£1'N\»öú5…Âd²X;ÛÙ™›ëê"Žá8‘‘"’ÚP€ïñÛ% 54´´´µŸ˜xëÖ”)óçûûwí*èè :|xHȽ{£G?®®žðê•AëÖLæÛ·ŠVVîÞ=sæÚµÇ—•ùø„†Nž|ÿ~TÔ¶mw‘H}û®ZuäÈöícÆ|~¡Ý_O.ÏÉ âr§NÝ·oÛ6 ú4³RY]}ïÞäÉÝ»÷êÕºõóç÷î-^\÷˜L–“µkW›6cÆL˜°páÈ‘wîìÜÙµkCå°€o%Ëdus©TGC£sgKKÇÒR&ãrkj^¿æóß¿ó¦ `ýúÞ½µµ÷ï¿s§¬,'§ºº¼\K«o_++g皉¤¶–Lf0öîÏÍ-( OÉJe¯^ƒ™›ÓéååW¯¾yS[{õj^Ž?`@³fWHð€IDATÍ›¿_[[] L¦‹K§NZZGŽ<~Ìç÷êÕ»·™™ê^.”–ººöêÕ¢Åüù"“={öâE^ÞÕ«%%ªi^*µuk++uuMMbâ¡\.—K$(ªTÞ»WV† C‡6kÆ`1kke²òr55GǶm‰˜ååb1ŠîÛwçNqqÛ¶DBiÑ‚NW(²²H$uõÎ-,8SS±˜É,(ÈÍEÑV­LMÙlkk¹œÅzÿþõëÚÚ«Wy<‰D&«K“ÉÂ`L›Ö¥‹ž^AP¨Tr88^SsçŽH$—³X¦¦šš,VUUi©ê|‹oJ@Ëd2Ù·¯¡úcd2™L&£P(‰x øxnIÊÊòòÒRâÿ‰O¼4445µ´~M?_C¥’ÉMÝ?ƒLVTtæLTÔ–-ÇŽå仹íÚµk×Àººd2…2j”½}ppxøêÕææ‰R9¾·÷¤IÛ·ïÜéîõàÁ;'O^¿^\ëêÚ¿HÈæÍ2fÌæÍM}^‚ VUõüù°a-[ºº~üW(‰¤¦Ö¢Å°azz|~t4‚ H]Z"ÉÏ¿~½U«=,<˜B™4i÷îÔT k×=44šúœüÙT > ¨@Àã%%%'óx·-º|¹®z2áÌ™ë׳³¿ÃæÏ}óFuwÿ~zzJÊýûõÛîÞ-(Pmóé^"———9’P^þå#¾z•šš›ûêUjê‡Ûïß¿v-%åÓ=ŽIHxõêÓíÏŸ¿z•›ûüù‡UU%%=zTU¥ºíáçO33>¬ß"¾|)°Ù8ŽaÕÕDz\¡¨®Þ±ãöíêêC&Óé:ØØÐh™™ÏŸ×ÖB ¾×o7º¶V ¨®¶´4664$JoÉ$‰DT‚®+ÇQ_–ƒD"“)±X,‰Äbø ÀÏÆ`˜˜¸ºúøÌ™³¿~Ý»§¤ŒP÷·ÆåÒhªB¹Ñ馦Ç×µ+‚ •ª«Û©SÏžÚÚRéÝ»M}Fõ0L").Ö××Ö¦P>}”Ba2 ™L©_Ì AÄâì옘ë×/_æp**0ŒÃ©­}ð`×®çϤGÿmêsðg£PÈdI*•Ë!éÙxP´¤¤ `Ä[[5µøø´4@(ü|N©M›öíŒZ´((xû66¶¤EQTµœàë~»4Q»‡Åb±ê–«©[„°>­ŠXžP©Äq ‹Åâ¯} B$zó&..=][ÛÙ¹[7]]íÛ{&½ysöìÙ÷Ç`XUÕåËK–ÌšuïÞ”)¬[gcÃf}?©ôÍ›-[<<–,ár7o>~Üʪ¦F&ëÓ§}{uõϽ¥?†Ï™³l—Û®…‚¼{÷âÅ”)ÁÁ{öp8ÏFÑÒÒ[·.\8yòÀÌLmí &N3¦o_5µçÏ##}|NŸFQgçž=»tù÷ߎkj¼½=<¶níÚÕÍmìØæÍéôêê‚.wذ Æo׎ËýÒ dÕûjÓ¦“'×­û¶ó©¿¯fÎܾ}Μû÷«ª:w†û þ÷HJPÐìÙNß¾‹­^=ujÏžÛ·wèÐp{‰BQULüÜзݚnjêä´ÿ£GÕÕ={öꥩ©Z‚C HKÛ¿ÿý{-­áÉ-"Ñ»w¨©œ:ÀáH2ož§ç®]:9a‚¤¥ÁïG?báÂa쬂ƒããß¼‘H ÝxŠ}ûž=“ɾÜêÅ‹gϲ³_¼hêÞð'`2ét ¥sgKKMMÕí¿]úÿºE%ÒÊR7šB¡Pˆ$týÿñãû÷_¼Ø·/,ìàAÕ´µ®.—{ö¬‹Ë”)>>;r¹2yrÿþcÆ$% püøðáFFÔŸã?~_1&&ÿþÛ¯Ÿ‰É¯M⹯TTAdˆ ‘!2DnŠÈuûQ45Û¶µ°¨®.,<|8#£º:"¢C§¡}Žö;Þ¬Ù›7ë×oÙòêÕ™3 tè@,à$§¥8°~}V–½ý²e7"Ž‹Ååå|~ÇŽ&&ÍšÕ/šÍ`4k–Ÿ¿{wß¾† ††“‚Þ°aÆ BBBBBB~Õh@dˆ ‘!2DnÊÈ*•L&“W®tq±±ùñàgùÿõ뛺##^²y<>ŸÇ«©©©ÔÕÕÔêÒ¦†ãF¼Y¡Óét:ÝÀÀÀÀÐðÛÐ(ZR²o_JJAÁáÃÛ¶I¥ææ;OŸîåÕ·/ŠVTܺuð`xø… Š“ùö­Pضíĉ Œ——wèÐæÍªû:9-]êﯭM¥"Š_¾|ðàÅ‹oߊD99YY$RÿþööEE»wÇÇ ¸`Á¸qïÞÅÅ;öôiZZmm«VžžkÖçäìÜùàÁ£G••-[Θ±}ûÚµ®®ææªý~ñâĉˆˆ+WRS…ÂNüü–,QS»paéÒ]»*+Ç[²dܸçÏcböí{úôõk©[·yó¶mkÛöíÛÓ§‹‹ÅbïѣÇ·msq ô÷g2«ª>SkëOgå‚A¥­Xáà@,hPw3™Tê—ç{‘H¢TJ¥¹¹gÎlÞ|ÿ~Û¶k×vëöõkC"1ººZZLæ—Ú*ÕÕ/^œ>}àq_-Y²zµ¯ïLJ÷Õ!ƒµjõömfæóçÄ}uúôùó7^¼¸Ý}µgÏñã))nnãÆuè@ÜW[·ž<™•¥­¢……K–,_ܸ£ùóþ¤ƒÈ"Cdˆü-Ž‹‰IJ*/¯©)*:qâÈ‘¸¸îÝ==}|¦Oo×îÞ½àà… wì04ì×/?ÿý{¡°ªêÑ£k×RS¯\!‘bc jk+*nÝ:~üØ1_ß)SŒŒŽ?~üöíòòÚÚ²2¹A èôßa4(”'æÎU*ÃÂ/ÐÑ1550HŠŠ ttæÌ9qbË–¡CõôwíZ¸0&&?__¿W¯¬¬îÝgÌððèÕK*ÍËKHؿǎŸ?ß¾ýÂ…µkgÍrr24üøì¾×’%K–,Yò«G"Cdˆ ‘!rÓE€¿Ão—€&p¹\.—K¤•96»¾àñ¹"Žã8†á8Ž $R©T*õ«çB£±ÙÚÚ]»NœèççåeaA£aXeåÅ‹¾¾GŽŒ3t¨¾>…"•fe­Zåé9nܪU§N8áêzþüÙ³™™Ä¾DêÃÊËÏ›1c„;{ô7näH.×ÐÁHL\¿Þ×wîÜ‹—,9zôرµke2 ‹!C–-ÛºÕÙEóò¢¢&Mš:uûö ®_?p`æÌ¼¼]»&Mš6-(A\]PíwÇŽNN={îÛ·oߺuFFR)‚ 4nܸq11ǯ][^nd4`ÀŠ;v Š¢Dœ©S—- ŒŸ5ëúõóç³²ˆ>³Ù<ÞÅ‹3g~ùL/\X³¦©¯ÿߦîëÆ8.— <‚¼|YRÂãõéÓ¯Ÿž^Cwî¡CãÆ PQ1pàÖ­QQóæ™™5|¥R©T(ÄâÊJ}}&³¦æéÓ´´êê=zõú|K*USSõ¾B*U[»{÷úûÊÃÃ×wÙ2¢5q_¥¥)Íšéí=z4q_M›æîÞ¡ñ "î«Ý»¯];q¢©ÇÀÏ2iÒÊ•/Nš´rå‡ÛCBnßÎÉQ•ûìÙÔ©õ?wîx°—×òåM}^Ÿ23:tá­[‡m¸£ã¬YaaŽŽog0,,œgÎÜ´ÉÙ¹©ÏÀßL¡(,|ìØÿšzV‡Æ]§â÷+~½ßt41£9??/ïÝ;5555uu…B¡@Q‹Íf³I$!‘êËq(• ƒÑð§|_F&³XFF,‚H$ †!ˆš…‚a2YYŠ2ÆÆ ïËf›˜°ÙJeuµêv—Ëy¼ß­”Åœ)ø¯ >_$"“µ´ê‹›H Š––J¥_Z<‚ÃiÛvæÌ9sÒÓ}|6nœ9ÆOHørIËÄÄښ͖JÓÒjkë>®ù™Tï«_9²ð¿ìþýÂÂñã}}i´Ù³×®=rAdãFâQ‹_¿Þ°a×®«W ™ÌÚÚ¼¼GnÜ9rçÎY³¾½ áÙ³˜˜M›.]JI©­íÒeÁ‚+p<6vãÆ¨¨/òóŒöïˆ>|ÅŠ%Ktth4AÑ¢¢ÄĽ{ÏŸÏΉ²³33I¤‚‚ºw/,Ü´)22.®°pÈ€·oO:|øñãW¯jkml&O 11yófëÖ{÷’“+*¬­}}££CBœ…ÂààñãCCíìvíÚ¿ßÑñã•äãÔùýû»wÏ»}ûٳ˗{x<{vøðîÝge‘Höö îÚµj•³³±11.lÛ¶gOe¥šš¶61%%(jhøàÁÞ½ DFž>—7`@tôñã&¨«?}zêÔöí‘‘'OÞ»Ç`ÄÇ_½º¿BÁãݽ{ð`xø¥K¥¥EEéé%%ÖÖÓ§¯Xáç×±£êXI$––ݺ͚åíݯŠ–—'%íÝO¡²X99B¡­­·÷¢E¹¹;v̘qüøÃ‡R©»ûÚµ..‡ß¼ik{øðܹ͛ÿhy/~•ß.MÌær9.×ÖÖÖ¶n%uÕ¢þ(Š¢(ZXXXXX(Èå55oÞäæ¾zÕ¼¹M›6_Žïädg‡¢Û¶Í›7¾@0~¼——ŸßèÑÆíÜÃáìß¿yóâÅ2™ÙÙµµ­[¯Ysò¤»;‚0••ªû~êÔŽZZººC‡nß~èBáééííëkn®¯¯­Ýª•‹Ë‚Í›çäœ?_R"UU=~7nœ‹‹žÞåËçÎ=xÀã‰D¥¥<ž@ýìÙ¥KñxbqIIUUMMfæÞ½Ó¦……µo¿}{t´¶vRÒÅ‹¥¥b1ŸÿêÕ½{™™÷î‘Hu‘ŸäñD¢’’sçΜ©osîÜ™3'úù¹¹}íLAã"“éô+fÎ\²ÄʪS§æÍ9©´¸xùòS§¶nmÓæãešP´´ôÖ­‹Ï{ð #C[ÛÊjâÄÑ£££/^tqáñ&L2ÄÅ¥eË fÍú÷_©´ªJ xó&::"bûö=ŒŒ(”W¯Þ½£ÑæÌ‰‰Ù±£C.÷ó½R(x¼G.\¨»¯„B™¬¢âåË„„º{æþýòríÖ Aîß', -­‚¥25•hsûv~¾DÒ»·…EÝ3(<|çÎèhmm}ÿ~ñâÀÀÆ® AD"yû–ÁHM­©IKkÞüŸÔÔŽ”JQS«®¾qcÖ,W×;¢¢’’Ξ%ö@ÑaÃ44RSApœÏÿZU;Þ»÷îÝ»wK¥8îí=yòرçÎ9“žnoïí=>‘zV(ÊÊââ¦L;vëÖž==<\]ÕÔ éô„„5k¦O÷÷¿zuùòC‡Ž]¹R*µ´:4((2räH}÷nÇ/¯ˆˆðð;wbbæÌy÷nûvI“–-C±ccb–-‹‹;|øÛGèŸÜÝ=<>ztåʲ2cãW¯ŽŽvrBQ"²—×¢E8Þ³§·71C‡;vê”··¡!•JŒCV–—׃=zŒ7nÜ¡CGŽá¸R‰ Tª–Ö?ÿŒ=qbJÊÙ³7nÜ¿ãUU—/ûøŒ³w¯›[lllìÔ©ººd2ñm}b.µ‰ ‡£­MŒ•··¥%ƒa Ó¦sàÀèѱ±§O;9P(IFF` ››‹K`à¹sgÎL™rî\b⊅…\®£ã‰sçBâüi~»4‚Ôð¯K4¥6( …B!¶ˆÅb±XÌd2™LfJJZZF†©©•U‹ß{ÈM›‡ ùx;¦¯ß·¯Ï† }û~~O}ý†ö¥ÓMMÙ¿ÿãJݺ­YÓ³§‡Ç‡U•GŽôóë×oäH?¿º-Θ±oßÀ3fÔmY¼øäÉ}ûê~rs[µêôi7·U«ê£´oÿ¹Èsæôí;räœ9u[FŒðòú°Í×Ï4&2™ÃÙ¼9:zÆoiM£öí;r¤Ÿ_ß¾#G~ø˜ŽÎÑ£—/ÇÅ©n»téñãû÷¿¿WTª¶¶½ýÇ÷qG}|_w”êÝ2fLC÷•¿¿¯/ÜWðs‰Å%%‹/XàçGÌFQgguõääêjwp¨©ÉÎæó1¬~=­:us„1ìëmþ¥R*-/—É(“éÓ}}ë2>>‹!‚ÔÖ>zDåã‚¢SªôS$ÒǑꋗªŽƒ‘‹¥:«ú{ŽaBa^žPˆa ††Vÿýç/EÁq±¸¸X"A6ÛÀ ¾P*•ÊbÒé2Ù“'ªãC¥’ɰÜ%ø3ýfE"$…B¥R©4F£å8H*ˆªÐ¯^¥§gfš™YX0 ƒÑÔýø›¥¤¤¤¤¤|KËçÏŸ?þü{Ûÿš³xñâÅ‹/nÞ¼yóæÍ_sD 1)•bqeåû÷ªÉRÍÈhÈcÇ?æó„ÉÔ×g0p¼¦æã=몓É_oóßÉl¶©)›ã|¾êv—Ë«ªšzì>ímý8äæÖÖ¢¨ê8|œìýxõ1¥R¡ Z‘H †žƒaÁÛ·µµry] “ËŠÏ)™Ìb³X"——…RA ©´´ ¥‚¿Éo7Z]]SSSóþý'O^¼h¸‰D"YY}½àøq'Nœ8qâÄÒ¥K—.]úîÝ»wïÞ}¹ý°aÆ F|_í[Ú»¸¸¸¸¸lݺuëÖ­#FŒñã 5ìÊ•+W®\!Š¹ÅÆÆÆÆÆŽ5jÔ¨Qƒ 4hЯ[àÛ hEÅ­[11Û·Ÿ;WX¨«´dIŸ>ššT*‚Èåee™™ééK–¯\9sæ²e!!‡M™2|ø˜1“&µmÛºµµu³fAE~ㆹ¹››‹Ë޽ǎ‘É_jÓ¿¿®.† ÉÉ %%"Ÿÿòå;YYâîni9|x§N(áëëç7jT||t´––žž“Stôñã …››§ç´iææúú::66cÆ´h‘_\,VU=|w挻ûèÑzz‰‰gÏÞ»Çã …%%D©É§O/^$JŒWV ééÑÑ“&…†v赿“ÓÇ5 ÏŸ¿ŸÇ ‹ŠÎŸ?}úüy¡J}ð€8Vrr||\œ§§»»A}Ëâb>_[»nÂÂ/ ÑÞÇÇÇÇLJHwèСC‡?»‡*55555µ]»víÚµ‹Ø2sæÌ™3g^ºtéÒ¥K»wïÞ½{7èà¿Ðà3Ö®]»víZ"ALݶ¶¶¶¶–Ëår¹Õ¿ÿþýûó²‰ÒW¯^½zõjÓö €? ”àÀ_ÈØØÈÈÐA„DRWWWWS9rÔ(—¦îWÓˆŽŽŠŠŠ"õÓÑÑÑÑÑqu=z̘†Ú—”””””e7>] ˜¡ÜP!Ž      Õ-«W¯^½zõ§-U‹u¨n'ޏbÅŠ+Vih=====½†zsôè‘#B¡H$EFîܹc‡‡Çøñ&4Ô>99999¹{÷îÝ»w'¶|ºt¡»»»»»;Q „(ÐAÌã®­­­­­% tŒ5jÔ¨QPš€/ƒ4àA¤$~Æ—²!2D†ÈsäºøZZZZZZ™HYnذaÆ Û矹>…L"}Ëh~šz&¨âPš‘‘‘‘‘ѺuëÖ­[«¶W-Ùaiiiii©Z|ƒ(ÖñéQ;‹Åb±ˆ˜!!!!!!Ÿ¶'$üt_ÕjÑVVVVVV 0`@XXXXX˜ºººººúÏ»ŸUûܸ‘ÿÔg7D†È"ÿí‘àï hÀãçýI‘!2Dþû"khhhhh‘?qâäI;;;;;»ÆŠ¿xñâÅ‹ÿŒÑø‘?v,&†L&“Éäýû8xðÇGCµt1ÎÑÑÑÑÑÑŸ& UKvó *¾¡ªS§N:uú–{ÃØØÈÈÈhÅŠ+–/߸qÓ¦M›ÆŽ;vܸ†Ú1UGà¿9Qš# €(ÐA$ÙÞ3åÓ™ÚåÏzvCdˆ ‘!òÿNdø;@!/¯I“&O qSÏ¢—/SR^½jܘD!Õ-DI ŸO[ª–ìh¨øÆãé9qâĉĿ?,ë©Î†&¶¥9.]ºtéҥݻwïÞ½ t hð݈BÄœ_‰D"‘Hˆ’ µT-Äñåâ."}ãÆ7nL›6mÚ´i/_¾|ùò%Qš£©z…a†a¯^½zõêÕ³gÏž={Ö¥K—.]º³¶‰yñM=ràon€ÿˆ(¬ñ-%5T q|¹åŸ®ÿþýû÷' tIÞ«W¯^½zõ×÷„¨Êíààààà0uêÔ©S§>}úôéÓ§“'Ož}ú|{„¼¼üü‚‚ooOÌ­>}úôéÓ§G=zôè†Zêëëëëë·iÓ¦M›6M=NàïËŒðS$&&&&&é`¢ô÷¦žÿb9Aÿ'Nœ8qâÓ6G=zôèþýû÷ïßO"‘HDÌ€ÀH¢EFFFFFfggggg»»»»»»vëÖ­[·nÄÿûúúúúú~y7~‘tž1cÆŒ3ˆZÌß3¹±äçççççã8ŽãxZZZZZÚãÇ?~ܽ{÷îÝ»?~üøñz?$ ð+)))))‰Ý»wïÞ½{Ûµk×®];*•J¥~ðw΋/^¼x±páÂ… &$$$$$œ9sæÌ™3M}àï1yòäÉ“'ß½{÷îÝ»D©o©ïü³³¡Û©hêqÿ[ þHW¯^½zõ*1—óÒ¥K—.]²³³³³³#RÏDº9%%%%%…hß±cÇŽ;^¿~ýúõë}ûöíÛ·oÒÿcï¾ÃšÈ¾‡O:! „Þ»`Ć ±`CTDQÁµ"Š v öÞ{E¤(ØXwQi"ˆ€ô^BúûÇýñE]ô«Fô|žg³839sæÎNnî €Nf„ &L°·····/(((((\‹Êˆè†o\.—Ëå¢R`````` šp`ñâÅ‹/>xðàÁƒÑÄèvmÒ>2ð-ŒŒ й&“Éd2ÙÅeêTW×ÏmŸ€>º@KüüüüüüÐrçĉ'Nœ°°°°°°ø\]]]]]ÝI“&Mš4iÇŽ;vì°³³³³³“v{ðkЀNãÇÍS ‘!2Dþ9‘¯_ß´ÉÖÖØXG§gÏ Ž‰ˆx½|yÛ¶Å‹»w¯²’Çû|>ŸÏçóçÎ;wîÜökÑ„T*•J¥¢’¢‚‚‚‚‚Bû-}|||||jjjjjj®^½zõêÕߣÿÌÈbñûŸ¾õ ô„äöh¹ŒŒŒŒŒ @ í÷Âb±X,šjM²qèСC‡INµñ+´D†È"Cäß#2ü`4 Ó‹ÅbÉD†È¹³Evu]µ*00)éÎéÓËË{ô°¶~Y$ÊÊnÜ05Õа³SPøÒŸq»víÚµk×çþØC£VѨg4)ÇêÕ«W¯^Ý~KEC#¦ÑmÙ:{;ÿi‘ýýýý·lÙ°aÆõëwîܹÓÅÅÅeêÔ/ÇD}-A=-ohhhhhh?W²ä­ѨçÏM²ñ»¶3D†È"CäŸ~P€ÀOC£õêµukPдi#F8:Κ…aÆã^½ºysm­‡Ç©SŸ~RRRRRRß¾}ûöíûå=¡I:’Sÿþýû÷ï&^vû€o1}úŒ3f”””–––~¹ôüeíûŒdÑùÍ›7oÞ¼)*****’öЙÀø©(}ý©S§LQPxûV À0 ãr‹ŠîÞMH6lüø/?799999ùGdÕ§OŸ>}úH»mÀ¯M²&iASmHN²è8 €ŸŒLÖÑ™4ÉÕUY¹¼œÇãpššnÞÌÌ7nÆŒùó¥øÓ¡QÏ ƒÁ`¤¥¥¥¥¥Aé€ÿŒ€ÀOG&ÌŸõª­­«ëÌ™gϲmÛĉêꟺí›$@ @c§¿4ùFHHHHHˆ´ÛH‡®®®®®.ïŒfvnkAÀ·Ð IS“ÇËÏ×Öž6ÍÜ\^¾#w'“Éd2MÄñ½&Í@ÑLMMMMM¥Ý&àça±X, Mµ&ÙøÜMÿ (@@JH¤œœ””ýû¿öy+W®\¹rå¿ÿþûï¿ÿâp8܇¥ë””””””ààààà`Éå’K„B¡P(DÑ–,Y²dÉi·ø"‘H$vüY§N:uê”·····7”žøq  €N&(((((ÈÐÐÐÐÐðÎ;wîÜ‘¿Ü[—ã¿|ùòåË—ŠŠŠŠŠŠÒ>2ðßP¹ùÆ7nÜØ»wïÞ½{7mÚ´iÓ¦ãÇ?~¼#ü$HûhøýAŒªªªªªê¹sçÎ;7qâĉ'ææææææâñx<þ?îoÊ—ûöíÛ·oߥK—.]º¥çÎâúõëׯ_•••••MLLLLL”v^€/› S1bĈ#llllllž?þüùsÇãñÚo7tèСC‡&%%%%% 2dÈ!Ò>ð%èTzFãwîܹsçN(=ÐYÀhtbh4ôãÇ?~Œ–@àæææææÆáp8Ž¿¿¿¿¿ÿàÁƒ+í¬ÁKOOOOOGcÕÑùEg°¬¬¬¬¬,;;;;;ÛÄÄÄÄÄDÚ™¾F@à·B$‰D¢……………E÷îÝ»wïŽ~–v^à똛››››Ÿ?þüùóùùùùùù£G=zt|||||üرcÇŽëîîîîîŽn'ˆJÒÒÎð1(@€NÀÓÓÓÓÓJÒt.0è”<%|n› .\¸p!&&&&&Fr*Õ«W¯^½ºgÏž={ö”öqð;ƒЀN‡Ãáp8ˆ ‘!2Dî¸ÀÀÀÀÀÀΕ3Dþ¾‘[[[[[[Ñlà\.—ËåÊÈÈÈÈÈü¸‰Y~åÖ€È"CdˆÜ¹"Àï ЀNC,‹Åbˆ ‘!2Dî8?????¿Î•3Dþ_"Ÿ8qâĉ®®®®®®šššššš‰‰‰‰‰‰vvvvvv gÏž={ö쯓3D†È"Cdˆ ¿7˜‚t¨¸Œ¦ÑxòäÉ“'OÆ7nܸaÆ 6løðáÇ_ AÚù0 Ðà””””””´{÷îÝ»wK–›ÑXæ]»víÚµKWWWWWWÚ™¾¦à¿2™L&“©T*•J¥P( ¥µiçøo0ürÌÍÍÍÍÍÏŸ?þüùÏmsáÂ… .ÄÄÄÄÄÄ ©9|øðáÃýœ!2D†È"CdøÓ@ÐiˆÅb±X ‘!2D†Èçççççç×¹r†È_ýÙ¯©©©©©ÙYr†È"Cdˆ ‘àÏh? üP€ðC@€ï¨¾>:ÚÞÞÄÄØøÜ¹ ®\¹s'#ƒÍ‰¤Ò@”vß_\ܳgÏžñx<'‰D"Çãá£÷ßЙ3§OŸ>}òä‰ÇkhhhhhxxxxxxH/#LÆã‰D%¥¿þòôœ>]Ú-€4A¿¡§OŸ>}úÃp8 7ÎÖÖÖ¶wï>}úô‘v^àû»~=(èÚ5@ ¶lñ÷ß¼YÚh‡ƒ<€4~K›6mÚ´q#@$’H‹/^¼x±´3?Š©©©i6¬_¿aÃŽÒÎH,–vü:  €ßÐҥ˖-_.í,ÀÏ0cÆŒ3g–––––•¹¸¸¸L*½\x¼ÊÊ¿ÿ¾~=8¸¨ˆÍ®®¾{÷Ý»–;;##YYNÚ-€4@€ï‚LVS;vþüC‡ÆŽ?_ÚÙð+€4àãã³t´«ë˜1¦¦JJòò4ÇÃHuÀÃ``Î`èéõêÕ¥Kuukëç·ÕÓëÕËÁÇCÿ¤;àgª©a±ZZ‚‚þþ;=-ñõuwïÕKÚy};(@þ ¨ô¼xñÔ©ˆÅbq۬ݒ?H‹’’¼<•ŠÞ«¼_ÊåJ;¯ohÀA²ôÌç B¡´3øo‡§¦vÞqÐP€FJJJJJJppppp°äò„„„„„‹Åb±$—»¹¹¹¹¹YXXXXXH;w Mnn¾¾§Nyyyx8845q8|¾P(}j¼sqqEECCiiuucc^^II}=“I§S(JJL&6`€¹¹¶ö×î]2f]‹ÕÒ‚–£˜ÚÚjjrrZZªªrrÒn':±X,‰D"¡ðÑÐr>ŸÇãñ€Ï¯¨(--,46îÑ£woig øQ~Äïî—gzzNNE‹ÕÔÄå¢<-,ºvÕÐøò;qã 24\µjÇŽë×wíZ³ÆÕUÚGóu  è4p8‡û_…È"CdˆÜY"ãñx<¯      ¹å¸qãÆ×>@ ¿kk@äŽGVTÔÐ00PSST¤ÓëêØìO}‰5..-­°°©©¥…Ç30ÐÖVT´·>¼{w6»¹™Ë­¯oläpž>wîáÃQQ ×ÒRT±cGZZY‡ÃáØÚnÙââbhH¥:´?®£#'רøömn®««Ÿ_` |SüiÚÿîîøs?÷»ûÇ婬¬ @§£wè7þë×ÉÉÏŸ£w’¥g´½¨®nhàp˜LyyíGçùs@tb’·%„[‚Žàó‚¶Â‹Åfs8ZZjjòòŸ»-áçÐé4šŒ —Ëåòù†Ãµ}%¶}L‘H,‹?_r-ŠYTTQÁbIæ @ÒÓSR ²¶¶±©®®ªª®&‘( …HÄã1¬¨¨¸øÝ;.·µ•Ëe2••X¬º:SSKËQ£ðx‡SWøüÏ]_PØ6Á@ ˆD8\Ûg …Ç«ª*/¯««­­«c³étG(7nÖ,++uu<žËÕÑápjk SRöî½xQ,ž;÷Ô©Ñ£y¼C‡öì9r$8¸[·M›FÎÊzýZEeÖ,g牶¶ ‰‹+,ln1BIéíÛððÈÈÜÜ™3·móóKJb±Øìš±xìXOO++55I èÒeïÞwïØl¡POJíüÅ):îGüîþqyJfhbbnni‰FCgd¤¦>Ž–wëÖ³gÿþ’[6445ñx?'ÏŸ£Óø“õ– í\@ç ù§*š[•¢¸\>¿mjŽŽàó¡‡#þ+æ—ã¼%Ú•­¥ÝVüjää˜Lee.·µµµµ±±¡¡®ŽÇãpš›ù|.·µµºº¬¬°ÐÆfÒ¤Ù³_¿Ž¿wOS³K—¾}óó32ââ ÌÌ&H$™Ï]_’ËÑOh‰X,q¹m×7]W—˜¨©I$N"Q©L&•ja±b…PXUüìYE…2f Ézz+V¬YÈãq¹,Vjª¾¾††¬,†‰²²²²Êʦ¦NIIc#‡£¡an>gΡC\¼èç7iRF†Íœih¸b“©¥E Œ)ãñd2Š)'Çá46òxм<‘Ehð§ø¿»\ží3lÿا¢íÀïñ~f+ü¡èt*•Bih`³[[Ñ×x;þˆž…ÇÎÌØ>¦äDí%×¢gÑéTªŒŒ´Û€_Q¿~C†Œÿøñýûùùoß¾zÕ«—••­­¦¦©iŸ>ÖÖ& -uu-,JJÞ½KOWQÑÑéÚÃ0¬#EÚö¥¡°¡!1ñÀÉe‚œœ™ÙóçYYuu|>ZÆçWTp8tº©©ž™\^þâE^›M¡ÈÈ`X}}RRJŠHD§Óém1ÚgÃá¼}{ëV||këŒ>>..rr©©µµ‘ŠF ÈÈÈÊ¢˜"¥gðçù¿»\ž’{ÏÊj›tK,62êÑ£_?ô3Z.¹%z'ðsòü9`4।ÄdÒéyy¥¥55**ŠŠtzNÎë×/_~n{cc3³~ýÄb±X,./¯©ihÐÔTU•“û\Lee }©}åös‘¡P(D1õôÔÔ>Œ @¨TM^¾kמ=,,|÷îÍÁPPøÔ¶x<Ï`ÈÉ1™tº¼¼²ò—#‹D--oÞ¤§ÇÇ¿xÑÔÔÜ\TsïÞµk"QccVVJÊãÇlvkkCCaáÛ·••|¾‘‘©)…rÿ¾‹Ëñãii¦¦êꊊ**“'»»ÏëèèííèxáÂùó~~W¯¾}Û»·¢b¿~..]º<~ãF^^]]Ïž½{kkÜÒ’ðøq^^uu}úhjššÊÉ%%íÛ÷ðaN†uéâì¼h‘¶6ƒ¡¡a‘‘^^Ç¿|Ùµ«Š ƒ!+ëâ2kÖ²e"‘XL¡àñP† Éß³,VYYVVGžÕ¥‹©iß¾ŸûÝýãòD¿ßss32’’Ðrô^B(‰D"CÃ=úöEï=Ðû”'“I§“HÂïS€ÆÕ××ÖVT´_ñòeB£GÆÆÝºõì‰atº¦¦´St&òòD"÷¿D@¯B£FÙÙ¹¹æåedèéššJûÈÐùøøìß½xñÔ©¼z•—W_/¹–Ëåry<4󲚚²²¼<ºYû8ååÕÕ,VCCccs³©©¡¡ªª¬,F£µßÅLK{û¶´´[7##MÍÏÅDåì·oóòÊʾ€TUge©ª¢qÍè{èÆ]âÿ#•–¼}‹ÆAK;_À÷÷#~wÿ/^¼z•Ÿ¯  /O£}.OôºUQQSÓЀò´´4770h-&&11;Û××ݽW/)4úWBu¡ººššÊJ ø£‘H$Àãñù|~VV^^y¹¢"“I§+*ÊËÓh­­\.ŸßÒÒÚÊå @€þ|¥R©T*õË1{ô04TQÉÌ|SVVF†LFÛ ˜uu,Vs³™ÙÇ “©¦V^ž——–Æçóù|>*@ <—Ëf³XÕÕ99ÚÚݺáñD"…"í¬ßÓøÝý# w…… (OmmuuEE …DBy–”TTÔÕÑé²²d2ÊSÚ­ûýAðGÃãñxÁØXGGI©¾¾±±¥¥¾žÍær33srJJ¨T2™N—•¥PÐ6$™ü_Å,“F£Ñh4==uuÅ,/ollnFÛ ˜zzêêrr0ꀎ£R ôø¹mddh4yy«ºº´TQQCÃÐPÚY¾§ñ»ûG@ïŒutˆD”gIIUU}=‡ÓÚÊã¡<Ñ;T:—Vž? #“)55ôø=b¢¯Ùª©©¨(*~¯˜€ŽèÞ½_¿Q£¤àÇú¿»¿/ôNàã<¥×φ—v~OŸ-@“H$™, …B¡´“t>ènïÒÎHÓg§à044665ÍËËÍÍÌÔ×ïÙSGGÚ©:“ÆÆ††ÚZeeiç€a¦¢"#ÃfÙ£¦"@'“˜(í¾Ígßx1rr L¦‚‚²2‡S]—§¢¢¦¦¥E àñ8œ´ÓüŠZZZ[y<.—Ãil¤R©TYÙïÍ$‹Åß{l5D†È"Cdˆ ‘!2øþã“==ƒ®]ù|>ŸÇkld±jjÄb‘H$’vÚ€_™L¡P( ƒ!/O$‰$Ò÷ÿãþÈ„È"Cdˆ ‘!2D?B‡¾z†æƒVPPTüï' àW„ÿßCíý¤›o4556²XååEE,V}}M´|O$‰D¡ÈÊÒé †¦¦––¾>F§ËÉI;/€4ýðtFÆ«W/^ `eek«¦¦¥¥¯Ïãµ¶r8Ò>pð=áñ€ÊÐh.¾ªªŠŠ¢"Fc0¤@:~xÚÈÈĤgO±X,‰¸ÜÖÖ–i2øþ„B@ @èŽäee……FFÆÆffÒ΀?Ekkk+—‹Ãáñ8…B&“ÉÒκÿ©}ãFDÄߣŸ]\ÆŽm¿‚‚‚‚Š ŸÏãq¹p¯ê?:ËhÒ6›Íf³¥ÑŸ…J••••% ¡ãÏB×òç®âöŒMLzôÈÉÉÎÎÌ”öü<"‘H$ñx<÷½b¢÷Ï"‘H„Û~ ¡°íßh›¶-Û–ðx\.—+Ÿ/'NœŸ/í6ûoeeÑÑ'O;öàAM‚‚––ŠJssIII‰²ò˜1 Ì™3b„¦&™ŒÃ õõ çÏïÙsçNc#‰ÔÐP\Ìdλuë’%={Òé8œ4âÎ3g֮ݳçÀ[·**¨TKˬ¬ÄÄ‹ÑZ¯²2:zèÐQ£6lèÑcöì•+}}gÏž0ACãíÛ7NžŒˆÈË#‘ÔÔTU…²²ÔÔŒŒÆÆ.]æÎݲÅÇÇÚZQ±#ƒKx¼²²èèóçQKjiijÊÊVW—–Ö×£–\¸ÐÆFSÃ0L,njÊÊ §Ó»u›<ùËQ§O·²š8ÑÊêêÕ°0//}}i©çñ Nœ°·wwß²%*êâÅþý?žö±®îåË  /·ê€\î“'¡¡W¯ž?àÀåËeeÇŽ=~Õ¯Ÿ‚Àå?|hm=aB`àˆ‹-Yâæ6eŠ]fæéÓ³f8påJYZ¾sçܹ'Jî= `ܸI“ääŽ ^°€DzöŒHÔѱ±ùšBŸV_Ÿpú4êÿššZZ$Ÿoeõ×_¿Bÿ 33GŽ<ØÙõÿuëÂÂNŸž1CW—LFý?4ôòå«Wÿý—Hœ8õSSC$Ú±cÆ]»Ð™b0ïÙ³Œ ïëú?à×öÕèo/Z}¾ö»ùò‘þ9í€ad2‰D¡H;‹?KKKs3›Ãáph4ͧ¶‘¼Š¿ €?wŒ&“•••¥R¥›¬¬¬¬¬¬™™©i÷îššššêê8°g‰D"‘Hcì³P8gÎñã¶{÷… kךšÊÊâpbqKKfæñãžžóçoØ€Ã]¼اOvöÆë×ÿó•Õ¥K×®9;‰11»wgdp8"†ÑéÒ-RM˜àââèxýúÅ‹ÉÉýûkj¾{—ÝÚ*›˜ÈÈàpd²šÚˆJJ††³fyzÚÛ£ÒÛ„ Û·WTlÚtþ¼ŸŸ¥¥¼<€a"›ýòåîÝ+W¦¤46 …)ÀÕÕ=~¼yóœ9Çëé}®%…B›Û·  ªêÁƒ]»ÂœœÎû¯ô¯ýµó9BáÌ™iU}ý#œß¾½|ùæÍøø~ýÚ>ò¡PttFRR¢Ó/_ž<ÙÕuâÄ^½ ëÑcÊ”Áƒ/_¾u+>-o¿ÿììÆF¡pð`4 ŽŽŽÍ÷:nÉþïꪩI$îØ]]ý+ôAN®Gmm]]ÔÿXºôüù3ÂÃçÏGýßÍmölIG‡³²Bý¿¾>6vûöQ£V¬X¿¾íLa†õí»sç‚ïÿ€_ßW QѰ:þµý?gò/éŸÓ‰³Îý\b1.'Çd~¹ŸI^ÅßkÏPzÀŸ@$ …Bigñ&++++'''''‡–())**(H;¯ŽãñŠ‹ —/wsëÑCV¶­¬ˆÃÉÊvïîî¾l™¡¡ƒÃ¶m7nðùÇŽ‘Éyyl6Ÿß·¯@ ‰jjVVýÕ»7€Çc†åæÞºµsçwï64èë[X¨©½{‡ÇÛØìÞ=gŽ–Vròùó;väåééõïßÜœ’’––‘‘šúòe—.>>AA>>VVmåÇ={üü¶m#tuå囚²³³²V¯>pàÈô—@PW»ÿµkII,ÖóçOž”–ví:gÎ… K–(+c‰¤¦æàèë»dÉáï^…„¬XaaƧ¨(I àpÆãuéâç7{v¿~ïKo†Ç3½z-X°t©Š ‘ø_£à‘7öîML44\·ÎÏïs-YTÔÔT^þêÕ™3<˜œ\XXPpæÌãÇ3gzx ®¬L"}:¶XÌçWU½xzìØõëoÞ\¹òèQUÕÔ©»v-Z4`€¼|~þçZ~Áss:‡km]¾ÜßÿäIccUU‘¨¨(99+kûö3gNžäóKJ¢¢:r$)‰Ãim-/ÇãÇŒY¿~åJ;;uu"±¥%;;<üÀsçÒÒH$]]'552²´T PSûtúÚVýÚ‘Ã_Ú¾µ5?¿¨¨¹¹®N 8sæÐ!.×ÄdÔ¨… mmY¬£Gw숌d±ttŒkkëë™L/¯Õ«§N55%“«ªœÖ­óôܶÍÁ!!aݺ]»6o¾s'6Vr@—dÿGKþú«wo&õ ‹9œE‹æÍ @gÅJJŠ÷ó;yòØ1Ôÿ÷ì )-;väHCCÔÿSSëëuuŸýûŽfdûÚµ¿2™L¦P””TT44¤ËŸEAAIICãË“o ’×,Ì Ð­­\î¯to“®]ML=ŠŽŽ‰qq™2ÅÉ Îþ^ñ%G|ÿˆüy¼òòþqwïÞ}îÜ÷€ÃÉË÷è1mš–V}ý¶md²®nddDÄýûAAûöÍ™cf+#3oÞŽÞÞƒ)(()õí;sæîÝöö22AuõàÁC‡®X‘™9cÆÅ‹C‡N›æâòêUM…Å¢E¶¶S¦ ýLš4p ““ŠJhhp°›‰tï^E…’“©«+b˜œœ†™T\ÌçϘ!+íîîèxþ|pð“'AA¶hÑ’%m½¡©)1Å$‘”•GÞ¹“@˜4ièPkk#£íÛoÝÚ¹óãcÿ÷_gg“ýæÍ7BCÛþn&‘JJôôGúrKFFÖÕijnØÐ½»œÜçZ2(¨¶VIiÁ‚Ù³CBBB23—/Ÿ3gøðÿ:K8‘¨¬liéì¼p¡‹ ™MêH¹ª®®¶¶²RIIYY]Ïg³Y,i2ødeétãÏ)¸wvß6´´³øÙ¸\.—Çãñ¸\ÃápZ[©T*UFFZù be5hÐÁƒ‡=zæÌÙ³/Î;gާgGž‹ÊF11Ož<}:lØÐ¡ÖÖIIÉÉ©©]ºtébh˜šš––žÞÔÔÔÔÔ¤     `e5hPÿþß7<žBQV®­åñиòGA …|~]‡amߪ$ûö1cëÖ‹…B/¯aÃöìY±"  ÿ{÷öîíÚµª*6öĉ+WŠ‹ ee==ãã¯î£±Ç’h4A hi Ñ­«ªæÎõö¶¶f2?Ü’Ç+,,,d³…¿åù¹ò|ÏžÞÞ{÷zy%$LŸ¾y³Ÿ_DD—.ï׉4š¶vN›ÍçÂd¶??ÞÊJFÆÝÝÉéÐ!sócÇnÜèHKÊÈ`—ûå–TQ¡P¾TÂc³ûöõðÀ099KË«W££ÑÖ8ÿþ‰DYYmm@à󛚄B±Ãjj>ßò‚²òÈ‘}ûÖÔLœ¸qãÌ™Gòxjjýû¿xqáÂÀ­­‚¦¦d›/Y²zuÛsƒƒ…BYY--YÙŽYþ¾­*}ýøèOinÆ0*U]JmkJUS#“[[_¾liÚZ™DúÒ’ìÿ®®Ë—§¤ôî=qb[ÿ8P^‡;q"0pß>tzô0440hûvD[Û}xDD"¦£ÓÒÂbµõtF||/ööFÛ 3Âãž>ú?“ù>ÓÏ<…ÃÑh^^ššqq¨ÿ››ïÚ¥«‹a$RÛ™¢ÑD"6[ò9d²ªªµuHÈÞ½¶¶èLMž ¥g~?ü2~÷.;ûÕ+®íW–XŒahl&<þžB¡@ÀãihhiéëK»{ð}äçççîܹk×£GÑÑÑѳfýõ×ܹ••••UUÒÊJQQAÉtu:uÊTJîøèlT6Љyò$6öõ댌ŒŒ´´W¯^½b±X¬†:F“•0ÀÒ²o_SÓîÝ»uûù‰ ff¶´´_Ëá=~\SC§Àç×Ô$$ü¤€Î%=ýõ댌I“§L±±±±1bútw÷iÓ’“““SS—.]²ÄÛû¯¿æÌY° ®®®®®.4ôÆ  ää””ÔÔ-[¶mÛµ+0pûö­[·o ¼~ýÚµK—TTTT”•‹ŠŠ‹KJFŒ°±3fëÖ€€Í›ÝÜ\]]\Ð~QQøÊ•«Wƒ‚üý7oÞ°!$$$$<ÜÚÚÚÚÊ ÝrðîÝ{÷þþ[UUUUUuàÀúõ»råÒ¥³g%óÏÈÈÌ|ó&....!aìØ1cFF“iÌŸïååí}ïÞ;·nÑét:^SSSS[ìêêâ2yrqqqqq1N§Óh'Ož>}þüÒ¥>> ~ï6¦PŒgÏÎÍ X´(8˜HìÞÝÔÔа¶6--6V è×oÁ‚ÈÈû÷MM „––7oŠ‹·m[¼xÁ¡[7MM.·¡a„'._ž9SW—DêÖmÌiíZw÷3ž=³±8PEE,ÎÊÚ°aË–‹wî\º´[·ÐP?¿5kêë­¬LL˜L¯¢bÍšÈÈ ,-Ð(K;»ÒÒiÓÆ?Ãtu ÔÔ””Ü¿ëVA]ÝÁ!((8Ã&Nœ>}áBuu%%}ýÑ£½¼ ³²NÊÍ­®~÷îäÉÓ§¯_0À××Õ•LÖÑqq9þٳѣMM\º´íØÉd]Ý£G54ΞݴiÁ‚´4¡P[ÛÀ@[›@¨¨—:t„>}Úf1‰êëcb–,?~Í‘(...îèQÉv\¹òÞ½ððŒŒ7öïG-9dHÏžLfvvrrf&jÉ-[úôÁ0 Ããuuûöåó·o JLœ?ßÙÙÒRIéÓs@««÷écjš‘àç·eKÏž&&õõÕÕÊÚµ·oŸ?߯“‰ÇS©_jù;||ºv=u*00<ÜÜ\K‹Ba±Ä✜ôôìì®\¹qC ضÍÏÏÑqÑ"5µÞ½MM]\|}çÍ4‚‚ƒ==·m[¹r„#¸\]]'';;55.·µµ¼<2òæÍèèþýgÎ1â[ZÈD55‡7îÞUU]±b۶ÇŒñø¦¦ÒÒìì“'ïÜÙ¿¿k×÷„………ÅÅÕÖ65••…‡ß¸q÷nÿþ³gß¶žÇ«®.)ijª­ 32š>šš½{£þïí=x0‹%Ùÿ››§Owr²±yßÿŸ<Ù°ÁÙÃ0ÌÕ©¿þŠˆxøpíÚ ||ЙÒÒRV¦ÓÛŸ)@g‡«¯¯­­¨vð±—/=5ÊÎÎÍ­°0//#C_ßÈÈÌìG̺ˆþƒÈ"Cdˆ ‘!òïÙÇgÿþèè-[<ÝÖvË–+Wž=»}[Úù¾ÅÆ/ffúúº»÷ê%í\þ›¼<‘ÈãÕÕÕÔTVÂL:€NãÇÝð"Cdˆ ‘!2D†È¹½ääää”*•J¥R»t1220X°`þü9sfÍš5ËÓÓÊjðà{õêÕ«gOT¢}ü8&&&ÆÈÈÈÈÐ0''''7÷СÇsrrt´·G3)KÆ÷õ]¾|É’ÜÜÜܶ¯¥# ™L¡…BaÛ—Úù|>_ Püÿ–/_ºtÑ¢‹/]ºzõÔ©Ó§ÏŸ¯««««¯GÛ?þâEbb~~~~~¾dé™:uêT4Ãìß¿o_´Í_yzΘA¡P(ʘ1£GÛØ ÇŸQzFp8YÙ=¼¼zõÊÌܽÛÃcþ|ÿ“'<(.þÑG~ ¡°®.996¶K— V¯¶´üïgàp/^º´r¥dKr¹·ÀÿÎ>@š~øðe¥¥%%yyššÚÚFFhF·ÿH6›Íf³Éd2™LfþòòZZZZhMVVVm ÑXæµkýüV®LL|ù29¹W¯>}  ¾vÍÐÐÐP_ÿÍ›¬¬¬¬´´´´ÔTyyyy994ó2ŠO ‰BPÐõëÁÁ¨Ü¬¯¯¯¯¯¿|ù²e‹£ý¢¬fÏž5ËÃãÖ­ÈÈ;w>zôĉM›6lX³¦¸¸¸¸¤mÓþ¸ðøÏß6ìW€ÇoÜxæLhè÷Ž+'giéåÕ' $‡ Y°ÀÍ­ãÏ¡Ó{ô˜ŸÏçó»tyõ*==#ÃÌÌÔ´GKË~ýúôijjjjjzö,..>§^³fõê+dddd(”ŒŒÌ̬¬‡££cb&Ovt´·omåpZ[]\¦L™½{s¹\®ämïÚ¼{——WP ­­¥¥©I¡P(m2 t.0Ê ehÔ3*=ãp8Œ~À¯ÁÚÚÚzÈTÆÍÉÉÍ}÷îÚµë×CCÑMù_¾LIA·`øðaÆ=räèÑãÇŸ>}ö •ªÑHäÞ½{÷¶°  A¥g´##CCƒ3gΜ9{–Ëåry<ô_KKK ‡Ó>«ÖÖÖV.×ÍmÚ´™3ýüV­òõ7nÚäï/ýŒiLà&„à«åæ¾}›žÎçóxެ,./¯§g`е«´ó¿›ö7!ÔÓ3445•v^è|¾í&„ÈãÇ11±±kÖ¬Y³nÏ¢EÊÊÊÊÊÊ999999W¯^»výúž=»w4p`ÿþ?ó¸ž>ÿûïþù§[·®]ML¦Owwwuý™9üïšš23##Oºv-5•ÇSVVQ!‘rrRSssq¸AƒV¯ö÷_¸ÐÌŒN—V†sçÚÛ¯]ëãsýúöíææ²²ÿýŒÆÆÄÄãÇëê¾|ÃC±øéÓêjÀÚZE…Dú\¬ŒŒ+WnÝÂáÆŒY¸pêÔˆD‘¨©)3óÎÔn²²ZZJJÍÍUUïÞ¡vóò;VYùÁ ›4iåÊiÓºw§Ñ>5Ѓϯ¨xøðøñ;‚ƒ++ét kiÑИ3góf/¯þýååÅâššèèýûýý£¢##%¥gÌX¾|Ä%%âÿ}£z÷îÅ‹W¯FkkjÞ½#÷î=|xùr Ã0‘ˆÍ~õêêÕ³gŸ<©©©ªÊÊjl´°X¶lõê©SŒdd>wÔBaccfæÈ‘ƒ;;—•áñÆÆË—GF†„,Xðq{fdlßnkëâríš@0aÂ’%K–lßîèH"-Xð×_Ožtü¬MŸne5q¢•ÕÕ«aaßz›ÊÆÆ/ޝ«ëÕëÛotÙvfy𠴔ɤPD"tf©ÔÉ“·lñò23£Ó?7‰ŽPXSõµÇþmÏü|÷&„0øjT*F£uíÚ³'»*íŒøQ† :ÔÊêêÕ«W/^trš}äÈ€ †57¿~}äȬY«VUV~®ÝTTÆŸ;·¡ÁÛ{Á‚½{ÍÌ.^ܸ±W/íÃ\«ªîß_¶lýú¨¨>}Î óòâp6o¶·ß°áÒ¥qãnÞ\¼¸´tóæÝ»SRF¾páòeEÅqã/NHèÕëàÁ!C0ŒÅJI5Ê×­­©‰ˆøë¯úz‘ÃZ[33wï^µêæÍ-[¢¢ÂÛ›ÓÒ¦LY»6,lêÔà`w÷Ï7 '×£‡¶¶œœ²²¶6WVvåÊáÃÉÉ ìÝ;p ä–.äæª«ËÉ1bñäÉ®®' :k¶¶?·§üo³«‹Å’g6$äÞ½mÛÞ¯åógϾs§¾^$23£ÓÛ¾íоݔ•mm¿öØ¿íYÐqP€_ fì4׳¡¡¾¾¿ÿæÍ7®]»n݆ µµµµµµºº::ÚÚÒÊ-%%5õÕ«[·""nßöõ]¾|éÒÎTzÆ0 ãóËËi4ŸåËGn+¡"$’šÚ˜1+VÌ™SUE§óxUU=ºcGd$‹¥£cl\[[_Ïdzy­^=uª©)…ÂbÙÛ·h‘“ÓŠŽŽÍÍ))iiW¯FGWU9;oÚ´s§¥%Ÿ?xpŸ>ööúú ìÛwòä¼yffûöMœèàPP0z´‡‡µusó‹jj“&ÙÚ&$¬[·kWzúðáZXTTܽ;pàŠkÖLœ¨®N"EDlß¾sgL gbbh(#“ýî]Q×ÜÌdΜ¹~½­mccVVTÔÙ³7o¦§ge½~œL$:8=êïok+ß¿ìØ1155**--úúýúÍœéá1|¸²²d+ˆÅl¶ŠŠ»û€JJïKŽ·nùûGDÐh>>7n|®Ý0Œ@PR4ÈÝ]EåСsç231ìÐ!KKÉÖ'˜LKË V¯VT45íÒ…J%‘Š‹µµI¤††´´º:.î]ËÈ‘±±Yµ ¿‰D2ùõëààwïš›‡ é×Ãrsmlz÷¶°@kz÷>üÕ«æf ëÙ³¾þÅ‹¤$6»íÃMOoÄ&³¢âØ1 ðÏ ÛÈÈè뻹͟O¡øûïÚµw/†aXHÈûõ<ž‘Ñôé}ú¼~½aCRZöüù•+ûöEF¦¦65Iž5 ®.6öäÉ]»<(++-ÍÈ(-íÚuΜíÛW­7Ãиë÷gíܹ°°ää¡CW­:zÔßßÞ^]ÃJJ¢¢:r$)‰@ÐÕ•—oiÑ×wv^¹ÒÎN]ýs#ž÷ìñóÛ¶ mßÔ”•µzõGŽ|¸=Ÿ_^.yf?ŽB"͙ӳ'ŽÇ‹ÅNnnDÄ¡C·n•”ÈȰXIIññµµ––ëÖyzÊÉýóä±ËÉݺåç·{wXXuµ§ç¦M®®ÏŸ_¸pöl\Ü›78Ü!«V>ìäÄfµo1é½2~7è­ øU°XuuUUhž»Îö€o§©©©©¡1eÊ”)ÎÎéé))³fÍ»gϾ}ÖÖÖÕÕ×ÿÌ|ÂÃoÞŒˆpwŸ6mêTKË~ýz÷–v }¯¬ìîÝùó ’,¯¶Áádd´´ ÒÕ••uwwt>Ë—Ï™óqéin~÷nÚ´=ää$GÖ^½ZV¦­ýåvÃá0 ‡“—75:•ÉÌ̼xñSg€LÖÐ6lÒ¤!CÐÞ7nôõÍÎvs;{öðá~ý +,äñ ss&³-;&“Ç+(xù²®ŽÇãñêê’“%×’ÉL¦™ZK&ëêNŸ~òäªUFFnn^^ëÖíÚuýúÛ·MM<^ssG{ §¢bgwìØÍ›+Vׯ—•ñù¨÷äçŸ?¿bŬY††m3ª#88X[Kž5‘¨¶öÁw÷I“Ž50X±bóæmÛ._ ;~ݺqã45ÛJÁžµèèË—GŽl;kl6†¹ºNž¼gOE…’“I …8ÜßoÚ´paPPq1ÊêCAeeD„äörrdrûíѵ yfÛGCׇaD¢’Rß¾3gúúΛ7mÚäÉ£F))¥¦^º´gOûc6ÌÝÝÕ•Éln®««¨ÐÒ5j÷î3g¢£¯\±±IKÛ¹Óϯý³¾ÿÕø³ÁhðÕÑWÄÄb¡P øÔ/Z~? ™L&£1ÑJJJJŠŠ.œ;wêNÂÏ̧µµµµµ•Á`0¤7=Åÿ‚@‘QU-/çp4Wäç¶lnÆ0*U]Jm+¸Tªš™ÜÚúòeK‹@€ah´:ðþ‰4šŽF --B¡X¬§7yò„ ·n…†¦¥54X[6j”††äXT鿇ج[7uª¼üš5Ë–mܘŸoe¥¢2aÂúõ¾¾Ýº¡™sÙl Ãã?î _ß?Äb@F†Hüðy22bqKKGÚ ‡#ee ‘¨©éËûár‹ŠîÝ?þĉ}û†USk+(“H&q8*Jâp|>†‘É ‘ˆÃápb1ƒ!¹V,ZZÐZô|mm‡M›‚‚0L$ª«û÷ß—/¯^¥R¿®%H$MM;»¥KOœ8pàÍ›ñã/nj:>-mÔ¨õëGŒ(/ÿò³‚¦¦ÂB6[($“™Ì÷gøã3‚Ã}xÖPz¿¤µ•@ÐÔtp˜;×ÛÛÚšÉÄ0ŸÅ‹½½ÛÖ³ÙîW$jm­ª’Üþsеб3‹2ªªŠ=|8* ïÑÃÐÐÀ€Á ÒÓ?¿‡¯ŽöG? ªœœ¬¬´´––æf6›Ïçóyßn\.™¬¥E& ÍÍB!ÿ¹(Äb.·  ,, àÌnëÖ­[?‡­©I&77¿{×Ô$ ®¨H"57“É&&rr$‰„aÆÆïÞÕ×·­åó›šòòLL†Ç0±˜Ç«­-)inVRÒÑQPàóÞ¾mn¦Ñ¾æÖâb±XŒÆs÷éSWwçάYçÎÉÊ2D⌻wc†]»öåx<…¢¢"##66æä46òùƒËË“H&òx|>×±Òh"‹•™ÙÐÀãY[3™d²HÄãÕÕq¹x¼¢bû¢: +«¥%¹=ZŽ Ì’ý] ’gÖÉI]ýÃqÐwïFF–”ØØXYef.[¶|ypð… 11¡¡<^AÁ‰hzø5}P€f³Y¬ŠŠ²²Â†«¶VÚéu&Ÿ+h²ÙõõEEÙÙXY'|¾Hó&K™L¡ÈÈ Q*ññOžÜ½kffañáí,$//'''§®®®®®~åʵk7n´Ý彯Y‚þ& …B§µµµMs' Bak+—Ëå¾ßB(äñx<>mÃçóù|þ«W¯^½z…ÖJ»m¾ ™l`@$ž8±nÝ¢EùùTª®.ÞÜ\X˜™YRB&èí½zõÕ«áá^^‡®\¹y³®®‰Iuum­±ñÓ¦™™¡ÒŸ@PVêç·fM}½••‰Iuuy9‰´fMdä… –– ¨H¬«ëéyìØìÙ·o»º^»¦¡1a‚­-†ñxÕÕ…‡GD<}Z]›kdäìu* €ÅJO¿~½¾¾{÷9sÚ·~MMT”§§­íÒ¥‰‰ "†߸±a ¬lجY&ôè¡¢bgWZ:mÚøñh{55%¥ƒ÷ïߺµýµ yfýý÷î UUi4<Y99‡ (&ÓÒröì1cΟ_´ÈßÿÀ332YEE,ÎÊ:räòåˆÉcô‡‹Œ,)ijª­ »ysöìéÓÕÔÂÂÂÂP»•—‡‡‡„ܹ#ù, óôìÙSÚ¯€ß®¾¾¶¶¢¢¼¼´´  ºº²²´TYYEECƒF£Óåä¤^gÒÔÔÔÔÐP[[]]Q¡¦¦¡¡££¦¦¡¡«‹F=ëètí*'''§  íLÁ{d2…B¥VWWV–”P©T*úÂø5¼|™ðèѨQvvnn……yyzz††_3VññÙ¿?:zË=¤ËÇP1”% ÕB¡P(¼/T‹DBáûÿrrrsóò,ðòòöÞ°aýúµk{ö4773ëÖ­[7i“tLŸne5q¢•ÕÕ«aa^^úú_ÓÚÐðüù¢EkÖ°XGŽ;6vì×îkï^w÷É“y¼ùóYºtð`UÕ—/Ožœ>}ùò  uõÓ§ÿþ{ÿþ^½h´ÿý¨Äb‡¹sïÝ;}úøññãUU‰þ³@PUuû¶—×Â…ÉÉÞÞ/nÚô}2ú¾ZZ^¿˜5+8x̘àà€€¤üº6n¼x13Ó××ݽW/içòßäå‰D¯®®¦¦²òÿ¾&T]]YYV¦««§gl ¥çoC§Óéòò::zzÆÆ••ååÅÅh9špCAAAAU}uG4Š‚‚’’ªª´{ø¡I<( …B¡R©TYYYY*•Á`0 yyyy99&SYYIIIIUUUUEEEEYYIiΜٳgͪªªªªªÊËËÏ/(öÑüêââ>LO/.~ó&&FAaêTKËo‹óäI^Э[×®ªªT*‘H ôî=p ¡!“©¨h`À`´¿à·Âá¶n2$1ñøñ«WããëëÑl×ÿíÙ³«WOž|ñbÈ_ßž=½Ò3† …uuÉɱ±]ºlذzõ·ž ¿¾ÿûôTKK[ÛÀMK>o—vbšÒASS[ÛÐ-A%N EF†Jšš`Þç_‰H$ 4./ßÚÚÒòå[sðk0111éÒåÉ“ØØØXcccã¡C­­­¬¤—4]¹òìÙíÛ_Þfðà‘#ÍÍ1 ÃÌ;}_ññ7nH.¡ÓûöݶíŸ"#¿÷q™›{xlÞŒ²î8++ ~íA (*²`››´3ðcý_š@ Ñm ~ßÒ³HÔØ˜’RXH¡ôîm`@¡üÈ}‰míù±O÷E¢¦¦ŒŒÈÈ'®\IJ¢Rµ´TTZZªªrs““ssq¸k×®];xîM‹45½ysãFr²’’£ãСªªßoløõ¡x~ćd"Cdˆ ‘!2D†È‘£ã¤Iöö22ÊýûàÛý_ºý7.·´ôÁƒk×._¿råï¿kkÝÜ\\ ÊÎÎÈ`±ôõ§N]²dáBkëïÊú«‹››srîݣьÇGËD"ÅâpˆÄO—N^/inNO?p`Æ _ßÊʹs/^ 7NCÍVÆç——GD,_Žn(Ò9ïkýýÝ¿¿cÇUUþþ“&Y[K;ðsý¸?2!2D†È"Cdˆ ‘;#%%EEEEigð%ø÷?¢7pmŠ–ÖèÑÓ§»»[Y©¨Ðhššsæxy-[¶k×öí'¦¥íܹbÅýû®Y3sæôé¾¾÷ïgdž…xÆŒ9sbbÜÜ.\غuÜ8uuéýZ"QCÃÞþÐ!Ç++ vu>|úô[·**0L,niÉÈ ;vĈ5k’’0¬¡!>ÞÕµwïž='N

ìë;þôésæ,Zäãó×_ Æ­[MMx¼¼ü A“&O§74äå¹¹-Z´råÎ'Nœ<¹wï˜155ÙÙŽX,óxeeááþþW¯ÎŸïééééã³p¡¥eJÊñã~jï¶¶=zL˜àæfg§©)+Ëd.X0mÚÀŠŠd²œ\ïÞ#Gšš––¶¶ …mÇÆã•• S¦Ì+?)©¡A$ª«?Þºõôé·o====çÌñó[¹rÌ>ŸÍærÅо¹Û?››1ŒFÓÔ”•%>W êë_¼¸~=?ŸÉtt0@II,Æ0ƒ úö Ÿ= ‹q8 ÃáÈduõÑ£'NìÑC,Æ0<žÁ06îÝ[I‰ÁPWÇ0 Ãáèô.]z÷–—çó‹ŠÐ³0ŒLÖÐ3ÆÎ®K±‡“•íÞ}Ê”™3ut8œ””¯Û»¦æ¸qNNb1šÑËÂbÀ.7/ϯ«KL ÏÍmh¨®¾}ûÔ©#G.]JH¨­ml,+ËÍe³ù|Éòò‚X,ÍÚZU²}0Œ@ “©T.7+kçÎÍ›çpTUÇ[»ÖÚZA‡ûïÛJû2à÷DìØf<^yùùó§O;VTTXˆÃMŸ¾}û‚†Ççäàp‚¼¼¥¥³³“Óˆzzd²PX[YT$'çàÐCFFGgäH3³¢".úvÅáp8 #‘TT¨Ô¶ùeeMLÆwr «¯Œ‰Äôô{÷ Ù솆³g/^‹9œÂÂúz6»²Ãðx©ýÞ1ìÓ7’ÃáˆDYYÉ%B!‹•ž^W÷Ï?åå§O?}Ša(¾¼¼““]¿~22d2…Âåæå=x–VV6x°™ÙðáK—ª¨|¿ù˜)±¸¹¹¼œÃ0L^žø‰3"¶´”•µ´`˜¬¬ºº¬lÛd•ª®N¡p¹/^H'/™ú÷‡K„‡ûp‘H£éêÒé‚@ð5{ÿ8NÛ¾p8 ‰Z[++¹\"QKËÑqþ|kk&Ö.]³¦më¾ás•Ñ£ÜǧmBж½HîK$úxï’KÐdlö»w55hd7WRrÿþáÃåå=z,\H"}ÝÞßNþp_$’¦æøñîîZZ¹¹þþ'N¤¤ˆÅAmíÓ§ûöíÞýòeCƒHôåmçL$âr««9œ¶žÄåæå]º´nÝóç––7^½úï¿II§OwíúÏ?[·<˜ÝÒòõg ð¿Ãÿ÷&_*Ï}zÀdš›ÛÛëè46¢èa†µ¶?zôúµ¶¶äš…Âææ÷Q‚ªªçÏ<03““Ãã yùîÝÇÓÔd±Ú¶ /^ ýrfx¼HÄã}9[ÿÞ½ÈÈwï$㣒¥HTWâDppn.‰¤ ÐµëèÑ®®VVjjd²ŒÌ·6øÇ³D++xõêš5ZZnÞ¼fͱcÇŽ=ºgÏæÍ~~k×Þº%#C"‰ššŽŽ¬[׳çÇ۷>¸eËáÃõõ®®¬]Û»÷Çaa%%lvmmllHHX‡SPðï¿¡¡!!ÏžÕÔ°ÙååÕÕõõÙÙÿ™PSÓÔT^^UÕÖFII;wnÜxäÈ®];w¦¤ØØìܹ{·­-†}íÞCCÃÃy¼ŠŠèè°°Ðи8´÷ª*‘H[{Ê”}ûÖ¬809ÙÏoáÂeËöìyõªÿ¿þêÕ‹B©©‘ŒðèQE'!"",ìѣɓ--q¸Û·}|–.ݶíÚµ/&Ó̬k×ìì;—/_·nÏž={ΜijrvÞ±cùò®]ÑÙúº¹ºÿ;\}}mmEEmmuuY™ä >¿²2>þöíðð7Nž ­ªò÷ ½xqà@…¶i"bcoÜØ³gïÞ“'ãâÔÔœ==÷ò²·GÓ%ðùÕÕqqܼ™Ÿ¯¨Èç—•åä45ué¸zµ£#†55¥¥-\èâ²n‰‰³ó´irr<^UU^^}½¦æÖ­kÖ¸¸ ½ðx¥¥ÿþ;kÖ¶mëꪨ0™]»Nœ8wn—.yy§OjïAMÍýû›7/_þöm¿~¾¾ãÆééegß¹sþüõëÁ¸qÎÎݺÑé†íÚµpá¬Yii¦¥…âoÝêï¿b†56¦¥;·sç¥K‚‰‰…Eccqquµ²ò„ sçNŸÞ«—œÜ—WIIEESóåË„„GF²³sskld±jj¤}Ò%±Ù/^L›6fŒ¿ÿ!׮ݼ¹p¡™,í¬~699&SY™Åª««¬”v.à=Ék§°0//#COÏÐÐÔTÚy óññÙ¿?:zË=¤ À·Ø¸ñâÅÌL__w÷^½¤Ë“—'y¼ººššÊÊÿ+@×ÔTU•–þÜ4šš^½òövw?tèèшˆ3g¤Ý,ߟ²²ªª––d­¡¡¾¾ºZÚy½÷èÑ… ëÖùûïÛ÷ð¡†ÆŒ>>×®­\9m¾#ã'òò **P€þÕ@ß  ÐÙuÞôÿeþ¹óàòùuu±±÷îýóOYYss}ý£G¹¹ΰaFFTêŸVú”.OÏmÛУ´sünˆïüy%hIAaÈ)S–/GÒÈAzþ„c€ ÐàÇ‹îXs"šeUÚiüž óó³³¥è¨_íZÀáp8ýÇáðx<'p8<Ãp8 Ããñx"‘@hû7‡Çx<Öáñ(€¶AQÐÿQ´‡CÏB1%×Knƒö&™S[>ï÷ݶwÜÿÁãßçÑöú?:Bi·1ø±ˆè_ÒNã÷7¸ûõýŠ×‡cæßÿK,þø¿÷Ûµýü©ÿÞ¯ÿ¯÷>óã=|¯½€ß±¡¡¾¾ªŠN—“ST”v2¿3C^^IIÚY€O …B@ÚYü/ÚFKüó¯H$ ‚––ææÆF(FüÉfÌ8ÐÚºoß™3gÎ$“_¼¸t)8¸¨hæLOÏáó²>|ð ¼|êT__+«1c¼¼ôõÉäöq„šš¨¨ÌLYY[[ssYYiׯïi±€€qã&M’“;z48xÁéÙ3"QGÇÆ†@öQ}Mέ­ÍÍõõ¯^))ÙÛ[[«¨HÒÎ|<^AÁ‰ööîîññ[¶DE]¼xú´»ûÚµ>>ׯoßþß=_,njÊÊ §Ó»u›<ùËÛÎkoÿaäéÓ­¬&N´²ºz5,ìs¯]ÑÔ”•–’òí}õÓ×»Xüôiuµ@ðóû?:/©©JJ ôïÏ`|˜çœ9 dg¯_횑ѷ¶øõI$IFF,‰D"i'øý¡é8Ð+Çãq8_÷\îG”­!2D†È"Cdˆ ‘Áϧ¤4bÄîÝK—.\8p WP ݾ}û6·pá’%kÖðx::6¼|ù_Ã+ee[[ssiÏ× [[1Œ@‘ùùûþ_Z,;»±Q(<Çá(›ŸŸÿÿžóÝ»ý5mZUÕÆ'Z[«¨H;Cð£|8<ëPYš¥€IDATôéÈÈíÛ;öL ªêÁƒ]»ÂœœÎû¯ô×Dþ:(‡ÿ¥¯~êzªª22š›¤Óÿ?õªÎb¥¦Þ¼ÙÐ`iéë«­ ¥çß ‘@ ‘ˆD‘H,†4àgA¯<Æã}ͳ~Ü™"Cdˆ ‘!2D†Èàçóó[¹²OŸÏ­%“utœœ–/§PÒÒ.\HK‹Š:{öæÍôô¬¬×¯““‰D‡£GýýíìddRR®_?w®ªjԨŋ'NTW'‘0L,nm]¾ÜßÿäIccUU‘¨¨(99+kûö3gNžl+}ðùuuööãÆ-Zää´b…£cssJJZÚÕ«ÑÑUUÎΛ6íÜéãciÉåN™âä´n§ç¶m ëÖíÚµyó;±±8\UÕãÇGîØI$ª«Ëȼ}ÛÔdnîåµzõÔ©¦¦tº@PT±gÏÎ118ƒQ_ŸÍf3™L&Çbq855ÕÕ|þ‡‘oßþçŸâ∈C‡¸{·¡Éòòjk--×­Û½{Î-­éÓÇ_¼xâÄ5k¦N‹_½Ê̼téúõ'OLMgϘ7OM-9yõê;##»w_¼øèÑ]»\]uu)tÔ‹õüù·µXkk~~QQss]@pæÌ¡C\®™YLÌÍ›!!ŸjŸ’’¨¨C‡ŽIJâpZ[ËËñø1cÖ¯_¹ÒÎN]ÃÞ¯%tuåå[ZôõÑÚ‹Obqkë»wááûö=xPYI¥¢Üää¼½÷ìñõÕÒJJBgÅÒÑ16®­­¯g2ÛΑXXøaÎúú¦¦7o&'jjž9sèPK‹¾~¿~6622QQK–>|È`xxøûß¹ã奮¾t©­­OCÃÖ­·o/YRUuöì¶mû÷GEihxzúøˆD/_&$èë[X¨©±XIIññ~~'O8ððáž=[¶\¸Çåvë†aoߦ§yéRXزe††‡ûùmÛ†Žº©);;+kõêŽ!“9œÌÌ]]÷îݲ%"âìYÉV¸woÿþ™37o>{6;[_Á‚}ûÖ­ÓÑyó&4ôر+W ììüüΞus£P>ß ‹5iÒ¸q^^ãÆ={ùòüùzzdò… ›7{x\¾üô©ŒÌηn<Ù¯ßûq©ÈÑ£~~7¶´hk+)±XÏŸ?yâí}ölX˜¦&‰ÄáäæFD:tëVI‰Œ jÔc]]ñø vï «®öôÜ´ÉÕõùó Ξ‹{ó‡2dժÇwîtpÐÐhÛWQáèø¹+îK=ŠHliÉÎ?pàܹ´4IW—ÃIMŒ,-ÔÔPÏ_·nÅŠC‡\±bÍÔóß½ Û¾ýèÑôt õ|«_¿ñã»w‹;{öàÁää‚‚3g?ž9Óݽ[·gÏöïß²ÃÆ·µE¹¥§~ð …EEÅÝ»’‘1L,æó«ª^¼ =vìúõ7o®\yô¨ªjêÔ€€]»-êÓG(œ<ùËç"$dóf”ƒd_]¾|ΜáÃy¼/µFÛÔþzWT¬©‰ˆ8vìÀ˜˜šsæLáÕ•%ÇB‹Å΢Eóæ|ÜÃKJ:wnÛ6tf'M²³ëÚõíÛŒŒädtf££Ÿ= E9ˆD--ÙÙ›6=úᅳš22MMïÞ%$¼gOfæŒ/Òé-- ­­¶¶ÞÞ66öö3g:8ÈËÛÛ»»:ÄãEE]¼x玹9Ÿoo?}ú† iiãÇ_¼ØöUw"‘ÉüÖ“‘10Ðѡѭ¬æÌññA ¼|yöìáÃ’G!TVFD¸¸Lž|ø°¡¡³³££ŽŽHT[¶iÓÂ…ÚÚææÁÁÎÎ{ö µººB!†ýý÷ûµ::m¥0”›¿ÿ®]áá..G†‡£Üddp8nÚ´¡CûÜY8|øÎ€€Oå|þü±c’K0 Ã>¾®.=ÝÝ=!/*ºwïáÃÉ“÷î7. `ݺ}ûŒ÷îÅãåä-ºpaïÞiÓÔÔ‚¹sííed‚êêÔÔììÌL.W]ÝÁañâY³BBîÜÙ¼yÇŽ¸¸ØXt,¨e**””˜LtÔrrdrPPq1Ÿïá¡£Ó£GûÒ3bg·lÙéÓ]º…ŽŽ3g>{ÆbuíºiSssM›ÛÅ‹gÏzzê꺻[Y¹¸|¹5èt§¥ÕiÓ<=þ矸¸ö•!‘¨¶öÁƒ+6o¶³SVÆã1lÑ¢%KÚÖ‹ÅD"ê±¾¾vvD"jÔcÿçŸE‹NŸ¾tÉß¿¢BKkԨݻϜ±³ãñòó³·ww÷óÃ0‡‹Û¢‘Éêêí¯¸Žô¨ÿuw_·ÎÞ>88(( @CƒHäñ ðøŒ w÷øxÔó ããµµ[[ÛŽõ«òòAƒæÌA=Μ޽utH¤îÝCCCB23QÁmÎì¡CÕÕm×,†¡ 76o–ŒŒa8‘¨¬liéì¼p¡‹ ™yrûö{¸¢â°aîî®®èÌΙ³lÙºuèè̦¦²ÙÖ¯Ÿíá1iÒ±c—/?yÒ¶Íĉrr©©îK,>p@Nnݺ˗{ô RÑ2wwGÇÿººÛ÷–ïõ |_D‘èÃÉ7D¢¦¦ŒŒˆˆ¢¢JJÈd‘¨¹¹²2'‡Juq \´¨gO:ýWžaöç‹›šÞ¼¹q#9YIÉÉièPUU˜7 üzPé9==%%.•‰ÕÔ44tu%·QSÓÔÔÕUUÕÐÐÑ)..(ÈÎf³ÙìÆFƒÁ“k?«4ŠI§3Lf×®¦¦ýúInC£Ñé zär¹\çõë´´çÏŒºvµ°““““——v«€ÎÿøoÐ/ß÷„@PV9²oßšš‰7nœ9óèQOM­ÿ””èè³g?ü» ‡Ãá„÷шDMG‡F#‚–¡P,Æ04‰ß¶PØÒR^ÞÜŒaTªº:•Ú6À‚@ RÕÔÈäÖÖ—/‰D5µ•+×­›:õþý5k–-Û¸19™Éäp&LX¿~ݺnÝÐL¬Gn;²ªªØØ'®\).67ïßßÀ€Á ÒÓ%·ú°Mпq¸÷-óáQý—¯i±ö>> ‘¨µµªªµ•@ÐÔtp˜;×ÛÛÚšÉİ%KV¯nÛ&8øãµ>>‹{{.·ýû,/=zæÌñãQnžž7îÜùå³ÐÒò5wû!“55ÇŒ±¶¦ÑBCoßÎÊÊÉ™2¥wo[[EE ±xÍšòògÏŒGŒ˜0AMDÂáp¸#G÷í#”•õôzô0440“û¸e$ÿZFò¨¿…¢§7yò„ ·n…†¾}.+;lØÌ™¨„ø=[£@ÐÔTXÈd2™Ëûcl뱇GEáñ¨>ì±_emýós=ôÛz”P(+«¥%+K$JFúòÑíßð ·÷îÝGŽ£žŸ•uôhtô’%ýú}þY^³Ÿ÷áuJ$ÊÊjkÓhŸßÔ„^[¾EGZã{Àáp¸'þ«‡·mnë{››[[+¶Ÿm»ýyinÖÓsv64¤Ñ$—u¤?·¿"âûÙŸÅâææôôýûgÌðõ­¬ ð`çÎ÷òùžž·o×× …ff²²0~}ryÿþ¶mÁÁ••þþÖÖÊÊÐ.à×óî]vvzººº¦¦žž––ŽŽ‘ºê?~üøÑ£öÛ>|¸Mfæ«W/^‰úúݺQ©Tê‡3Ó¡˜=z˜›÷ïßöØO VGGOÏØí±¼¼¸øÝ;£{÷^½¤Ý*àw&65•–^¹rÿþ–-uu»v-_ž•ÕÒ‚aío>&ùNV hi)+ãpðxyyƒH|úôãø•ª¡A£a‡SYÉá ‘¬‚PÈáTVòù22šš&ñxµµ--={.X°bÅ֭Æ)*þWæµµ-[¶|ypðرW¯ *œ=»wï¯Õb_F ÈÊjiÑh"‹•™ÙÐÀãY[3™d²HÄãÕÕq¹x¼¢â—×R©ï‹ˆ(·úzSÓ3bc--Qn[·nÚ´w¯‰É—΂dœŽ‘ÑÑ?¾o_iÅŠ¤$33cã# ÃÑÑØ¸µ5))?¿_¿!CÔÕI$¡°¶öÁuõ3/vsÓÖ&‘Ún­öß-#yÔh9‡#`XG²¥P´´&LprRT »v­¸ØÇgéR4á†aØ—ûäûøÿõ& ’ãp%áñŠŠJNNc#Ÿ?x°¼|Û¾ø|‘Ãðøúú¶{áBLLh(j‡ïÛc;Ò£ddD"6;7W2O±øsGÕõ«ÀÀ+W<=QÏ·´œ4iïÞ±cCBœœþ÷Ì?ýÚÂd¾mùšsÑñÖøÚžßz-úÚþaž22ªªè¼|Ü*´oi)(˜2ÅØØÔT²4ÝÑþ :ÂêÕ«V­X!VWß»çææê>uêµkÇŽuïN£¡ A$‹ÅbÎÁÁؘJÅ0¯´ôúuww{{'§3p8±¸¹9#c×.{{™ÝÜH¤††øx7·Áƒ'L5꯿æÎ%“1ŒÏ¯®ŽŠš;wÏžúúaÆ QW'jj<˜=;7W]}Â•ææøx7·AƒÆ·µ3gÞ<"Q$b³_½:xÐѱ²ÒÜÜÕUEE$êèÞ ²³³±ùë¯yó( ãñÊËoÞœ9³°PW×ÁAYY(,*ºpaÚ´éÓ{öœ<ÙÅ…Ç+)¹zuÒ¤‰™:uÒ$%%áÌ™ÆÆ^½¦M8PEE1bþü¤¤9sœUTöïð@GÇÉÉÅ¥_?yyŽÏ¯¨Ÿ2e̘§L™5ËɉÇ+-½}{Ë–¤$…¡CuuedÞ·*<Âã‰D"¡zF?£Çââââ¢"+++«!CtuuuuuÑ------@ àñjk««KKed¨TÇãq¸üüwï22äääå©TYY:ýéÓ§Ocb òóÑsÛ/a0ääPL<ž@ ‘P´/ÏÞXVVR’ŸohhllnÞÐP__]Íd*(¨ªJûeÏýû #Fôê7ûõ¼xqçNHÈÇ=x“”T^®¥Õ¿¿½½¡¡²rSSLÌ.„‡'&ÖÕ))™˜tíª¥ÕÔôäÉ‘#gÏÞ»ÇåÒh²²oÞÄÆÆÄªªÚؘ›«©‘H­­99 nÝ\RRTTRRZÊb1™ŽŽvv66’#åÂÃOÚ»÷ùó¤¤wïJJÊË nÝzøÏ_¸ðȑ͛‡¥Óëê:zôܹúz‰Á`045»t16ÖÒ254iÂe娨ÀÀ#G’“_½zòäÚµ—/»v]¿þèQ55<¾¦&1ñï¿oݺtéÀ½{÷ï?räôéË—#"ÊÊh4=½W¯þù'4ôÃÈjjjjJJååQQ»w‡‡ …òòººuuÉÉÞ¾ÝÐP_Ÿœ\_O"ÉÉÉËëè½|zìØ£G‰‰B¡²²¡!—›–õüyYŸ¯  ­=r¤……šùúéÓ°°Ë—ïÝËËûºãñª«Qk°Xd2ƒÁ`(+ËËß½{õêåË·OcÆÐhwï®Y³reXXlì›7EEŠŠƒ÷ﯧG¥Nšô~íž=aa±±l¶ŽÎ¨Qh­ä9‹[Zrr®^]¿~ýúÔÔª*å6bIJe«VmÙ2ož¶6: ¼y“ŸëÖ‹è,˜›“H55æŒ2,,¼víðá ^¼¨®&UU­­Í͵´0ŒLVQéÓGSóáCuõáÃgÎÔÔ$“) ¾}i´Û·{ô˜4ÉÞ^MHÄã)EÅ… fÏNNF-VW‡Ç;výzLLUUQQròË— oÞhjŽ7mš¡!“I"áñ4š±qdäÂ…ööè¨ããcc&L@íÌá¼y³~ýäÉ«WÛØ¸¹98|êŠ!äå{ö´¶&‘‚Ñ£œúôa0ÚÚK²O~ª5h4ÎÌ ‡{ölÏ?¿}ûnÞ|ù2'GVVEEN.%åáÃÄD‹ÁÐÑ9²W/§Ó»v óòrpØ¿ÿæÍØØ„„¸¸„„1cÆŽµ±!‘(EEÔcwnkÔcóò„B.µ‹E&ËËOœhdTS|ûö£G‰‰åå“&Íž=c†ô½ïc_Û£œœÆŒ¡R#"V­Z¶lË–«WŸEgöéÓ¢"&ÓÂÂÒÒÖÖÝ}Ü8*uôhOÏ={RR^¿~û6?¿®®º:99'‡37ïÞ]S³´ôàÁ%K,,Frq‘,@ÿW~uKö##&ó÷Ÿ ::-­ºzðàž=Õե˓‘Áã…B§¥¥¹W__[[YÉãž:5iÒ´iÏžmØpïÞÅ‹ƒ}úKòms]MštñbHȳgms¸ ©òóò ¶l15^¼˜>ÝÖÖßÿÊ•gÏîÞEÛðxùùǧ¤()yy  '÷~veå… û÷ǰ/¦O;ÖßÿÊ•¸¸¶g ee!!AA"ѤIÓ¦Q(ÿݱ½Gr_}ú´´ÜºåâboøððáÓ§;:ŠÅ--yyaa¡¡ùùOžÝÖvË+««WÃÃѼ9BaMÍýû³f¿~½‹ËÑ£7oÖ«WÛìT$Ò×| €ïÃápš›i4:½í«2ññññññ’Û 4hРAh9ú¹¹¹©©¡!??773ÓÀ Kss*•J¥Rß¼yý:1Q_ßȨG/Ç”ŒŒ~F11 ¡RѼNŸ/@¿|™ðèѨQvvnn……yyzz††¦¦ÒnQt>>>û÷GGoÙâáÑ£‡´s¿–éÓ­¬&N´²ºz5,ìKs¡~=4Tjß¾yó6näñæÏ?rdùòž=y¼/®^õó[¾<(H]=116vÿ~i·èŒž?¯©¡Ó €ïbðçØ¸ñâÅÌL__w÷ÎðÍryy"‘Ç«««©©¬Äc†‰ÅmãÅâææòr‡ÏGËÛ? …--eehÉåh––@²œ„Š­ï#àþä<þý6è9>‹H¤Ñ´µ[Z„B‘èköþqÉ}IΘƒæ™Z²dõê½{Ÿ¿´ôï¿srÒÖ&“Éäï³w2YSÓÎÎÝ]K+/¯moBa}}lìûöu<<^$âr««9œ¶ùkx¼‚‚+W6lHL´´LNÎÌLOùòÄ “þÙ¾ýèÑŸwbhSUU]]ZÊç <zìÛ·OŸ^½>÷ˆ¶©¬¬¬,.f2•”ÔÕÉd2™BAÑ••ÕÔ$c&$¼xñâzDЖh‰ä~QLÉhHו+Ϟݾý}Ç>#$’––«kDD|üŽŽjj¨TˆÃÑé}ûnÛöÏ?‘‘>>Ò>zйÉjjƒin®£3pàªUpÛ5@g!1a7 ¬!66,ìæÍÙ³§OWSCjk›šÊË««‰D]]''KK<~ûö¥K}}½½ïÜ9z”Éd2Í̺vÍÎÞ½ûèÑãÇû÷g± ššœ·o_±BÚ§ü‰jjªªÊËTTÐ7’“SS_½’ܦOŸ^½zöüðYÕÕªªê꺺D"‘ØöÉ:“©  ¢RRRTô¢â‡32£9§Q4´´ÍõŒbª¨¨©ikK»UÀÏ€«¯¯­­¨v›˜ˆfUFŸBK;~hg"‘H$‘TUÕÔ´´:ò¬’’’’¼<--]]cc åÃ1Ë(¦¦¦––¾~G¢UVVT”” qÐFFÆÆffyÌ €ïæ€@g×É瀖>¯ºúÑ£ððˆ4îøï¿ß¾mnn›Öðítu ºve2•”ÔÔŠ‹‹ŠÞ½«ªªª*-e³Ùl‹ËåñZ[Ñ’ìì·oÓÒPéÙÀÀȨGö¥gɘ(ZvöÛ·¯^¡(›Íf××£%(𢢲²º:Š)íö.[[++/Øl  kj¢¢ÒÓ[ZÞ¯om}ûöàÁ¼<.—Ë-.~ôèÞ½ÔÔÆFig tnÄÿ=Ä÷@&«¨ØØxxlÝjcãá!ílø@§Óé ‰¤§gl\^^R’—WUÕØXRÂår8“©¤¤ªª¦¦®®§''§  ¤„ÇãñŸŸQ ÅÔÖÖÓ36nlll¬¯onnl¬¯÷îíÛôt …J¥R©TYYãsc¨øù$o(O (+ÛÚš›K®çóÉd<‡£Pttllììtt¤3ÐÙý"hÀ…f–‘‘‘‘‘ÑÔÔÑéÒE$‰„B@ ÐÑ\ÏHGb¢h$‰¤ª*///¯¤¤¬¬¦¦£C$‰D"Ç …ò½oç~Ožœ<¹jUNޱñ!bñ«W™™¹¹YY)) }û®Z5ožšZròýûOŸÆÅUVöíëï¿k—««®.ذÿ²eË—³X::ÆÆèÎ@66ÞÞ[·ššÒém)BC·o÷óKK#‘tu55edššJKÑÍìëùó+WΫª5jñ≙̒’  S§BBž<©¯‰ár zöTSc±®\¹y“BY°àäÉyóÌÌŠŠîß Ù³§ @[{ï^/¯±cUUáý.ð%P€àó}‹Â Pn7tè´iS¦¤§×ÔXXx{ÛØØÛ£å¶¶ƒ{xðxQQ/®]ko?w.š:#-müø‹ûömm½sG_ßÏo÷nGG5µ¶Á66#GnØpøð;Ý»s8ÑÑbñ¬Y[·hhÿï/ßÈÈë×=<0ŒHd2 pp°¶>~¼¶V,Æ07·yó¦La±jk-,¼¼ôõÑ;ÛaÃts{øP ðò’“ëÚµk׿æ³gÆŽ…w¾@Gü"s@ÀCã¸!2D†È"Cdˆ ‘\dðóáñŸKtv%ϱäBaKKy¹º:•úá÷öÈäÖÖÒÒ–Ã6;7WKKV–ø?º¢PŠ‹CCÓÒØì·oÃó³¡ô tÜÿý2f³Y¬ŠŠ²²Â––æf6›Ïçóy_FFS“J%1Œ@‘QUÍÍmläó–—'‘Ð6ßÖkœœ ƒ‚ââž=SV..=ÚÂBÚ­tD6»±±¾^$’•USSUíÒEUUÚ)~"†aXEEyyn®ºº††®®´3¿GÂÃ##Ÿ>­®~÷ÎØxêT++±8.®¶¶©©¼üöíÈÈgÏ ÇWU­­mn./ˆ¸y3:ÚÀÀÕu„wïV¯^¾|óf]]4ôffT*†a•êà›ëê:vìˆ\®®nÏž¦¦&&\nkkyyddHHXXI †½zõò%O¡°Ùnn‰‰áá‘‘±±55¹¹FF“'Oš4z´¾>•êéyìØìÙ·o»º^»æätóæùóÒn9 3!VT”•©ªv颦&íd¿"yyx}ß›‡G@€Í‡KGŽ|ñ"-mäHÉe/^¤¦>x ¹Ä×wÿþ}û¾Ë–ë×ÿþûÃe[·®\ùþ_“';9ýW>F"1FFºº={º» ¨Ø±[vÁ£ 7¤à×E&“É0Ëøñx••ÅÅoÞÄÄ((Lji ågàka®gÀ—ío ó%7nDD´4qqqp;VÚGÀ·!“ÕÔtt\µ* @Ú¹^Ú ~’¥çÏ-(@~ɱÏP†ø3AðÝ ¢³dé¹ý¡°¦&**=½¥Er©Xüôiu5Ÿ/­¬lm­¬<<^¼ø~÷J‹›š²²ÂÂ>\ÚØ˜˜xüxAÁ÷š³m/Òm½ï§µõíÛƒóò¸\.·¸øÑ£{÷RSÛï‡ÏúÞ­Šðùuu/_íÙsäÈéÓ'O?~ôèÎk×z{?}ZW' …™™wîœ9³vm·n––—/µåÀãUVFG_»¶gÏœ9š›’’’ýï¿×®íÙ3sfÿþ£F½|Y_/ ãâr‹‹ÿý-_½úôéÛ·SSY,¡°}^(«;6lض 冲š9sÑ¢ýûQnÒ>_ÖØøâÅçΗ[Tqüø† ..‹ïÚuüø‘#{÷úû/\8sæ’%_ÓǧO·²š8ñË™Hnƒ^æÎµ·_»öÛŽíڵݻÛÎïêÕ'OÞºÕ~ÿã×@~GP€ ‚²²­­¹¹¬ìûeAUUFFs³X,­¬¾æî'!TU=x°k×Ç¥Òﻟ÷{‘në}?|~c#™ŒÇãpŠŽŽ]¯^rrí÷Ãg}ï³'Ö×ÇÆnß>sæöí+V,Z4wîüù^^ÞÞ«Woݘ•ÕØ(rr=zL˜àââèhoohøîÝK—ž?ŸÝÚ*“Éjj#F¸¹Ížíéi` ¤dhØ»·‰É¨QÎÎÎ΃+)ÑéZZýú)(‰è(Q£ÐòÉ“]]'NìÕ‹ÉlóK¡e5jÔŠ~~(7”•ŽÎÛ·(7iŸÇ/Ãá>Æ(]]‡Ù³g϶±™1ÃËËËkÑ"_ßwï^±BM-!¡¾¾£ý¼#½âãLЫÓéÓ‘‘Û·Û±9;O™Òv~'Ož6mÒ¤öÛ ø¾ð{"J;Îaï^_ßC‡œœ¶o÷ñ10 P¤tvÏŸ_¹²o_UÕ¨Q‹Oœ¨¨XSqìØ1155**--úúýúÍœéá1|¸²2‰„ah$ê“'çϾy3vìÖ­óçëé‘ÉA]]\ÜØ±S¦\¼¸sgHÈŽÍÍ7nlÛV]mf6r$‹•˜˜’òömFFr2?qâ‘#d2†aXhèöí~~ii$’®®¦¦ŒLSSi)‰úÞž=~~Û¶ººòòMMÙÙYY«WïÚµ~ýýû{ölÙráB\—Û­†½}›ž>rä¥KaaË–R(<^y9:¢ƒ““ Μyü¸íˆ0 󲢢Ξ½y3==+ëõëäd"ÑÁáèQ{{uu”á§ö~àÀ‘#h-qäȾ}h/ššgÎ:äì¼iÓŠ¨Ýx¼’’¨¨£G##ssQ<~̘õëÍÌRSÛò÷ôܶÍÁáôé44||ääBBŽ --0aüxsóÜܬ¬””¸¸ÔT6ûàÁµkïßú4.îñ㸸ššÛ·Ÿ=»}›B‹[[ß½ ß·ïÁƒÊJ*µ¨(99+KNÎÛ{Ïž5kz÷f0$[uÿþeË–/g±ttŒ••ùüâboï­[MM‰Ä  S§BBž<©¯‰árMLFš5kúô^½ä傟ժÆã]¾¼cdzg]ºlÚúa¿ÀãŒ1cTTD¢¶%8†98nÚÄçÏœ¹nÝ’%‡xÿþÊ•8@¡||ƒ÷o/˜óxEE]ºøù͞ݯŸ¼üûò4Ï`ôêµ`ÁÒ¥**D"‘ضuIITÔ¡CGŽ$%q8­­å娬\9z4™ìädg·t©§ç¦M®®èz9>44%eÈU«F× †½€Ú­¥E_ßÙyåÊQ£0 ] 6~¼­mBºu»v¡káÀƒîÞmhÐ×·°PS{÷·±Ù½{Áss:½cÇúa‹ÑhººÃ†eeÕÖVU‰Å!!{÷îÛwãFaá­[ÿþŒ^ ®\9tèäI33_ß‹ûõCÏ‹ùücÇ7lxý:55115µ®NOïéÓNžü°¼/°XÏŸ_¿~î\ddjjSÓ¶m{ölÜØ¶®®.6vÿþk×’’X¬çÏŸ<)-íÚuΜ Ö¯7îK™L `±Ö­óó;thàÀ+Ö¬™8Q]DBñOžÜµëÁƒ–mm%¥Œ ËÄdûöU«ÆÓÔ$“?Ý{wïÞ²%>þìÙmÛvï «®ž4ÉήkWôº÷æ ýìYh(™ü¥ëÔ×WEåÙ³Oe;»¶k§XÌáäæFD:tëVI‰Œ ‹•”_[ki¹nÝñã^^ÆÆh/G¦§ÓhJIIf&Ú‹Ÿ_ïÞ Æ÷þ°üêþ§´X,‹Å8ÜÇŸñù|>G"‘HvO€Ïçó‰D ½yø~øü‚‚£GÓÓ•”¼½ûôa00L (+»víÎ<ÞÅeÒ$uuâÿt¤¾¾{÷úøtl[ ²òÎ/¯E‹&L8}:$äû)ü pp°¶>~¼¶V,Æ02YCÃÁaölgç²²ÚZ //}ýÿ¢Ä0IQqèP7·)S22jkÛ–‰ŠŠƒ“É­­'OŠD$’¢â°aîî®®GŽÔÔXX,Z4dˆÚÒÖvð`ÔT›‹ûõãó££ÅâY³¶n ÐÐhû›12òúuô³@PYQQ¡¤Ädêê …&'§¡A&UV*)yx,^ÂáÚÊÇ‚²òÈ‘û÷zôÌ™ãÇóxjjýû{znܸsçŠ#F ñÉ&¶´”—««+(|8î”Lnm--miùxº´Z•H¤Ñ´µi4‘ˆÍÎÉa³ùü!C˜L‰LVUµ¶?ÞÊêÞ½ÀÀŠŠ~ý&O–•ÅãÛúCÛ>i´ž=½½÷î7ÏÛ;"ÂÜ|×.]ݯ9w_?‹r“Ì -?ÞÊJFÆÝÝÉéÐ!sócÇn܉Z[CBP<ê¶>€aöÏ?8÷áõ‚þý~Iû’= û§zQUUlì‰W®ÊÊzz FûÉDþÛ´ióæÍ›×¿ÿ‡£è¿Ö‡íI$ÊÊjk75±X+ MM……l¶Pøácß· Šâ3™ïÛòkzoÛ+Rû+ c×éåöÇ]U{øpTߣ‡¡¡ƒA ¤§Kîe÷î#G‚ƒ =:1íeÉ’#Ú¾Õþßøk²  ??//1ñùó„„5kV¬Xº•ž¯\¹páܹ'O¢£=òõ]¼xáB´}tô¿ÿþóOHHPÐÕ«MMlö÷»ƒ¤¨¨K—Nœ8þðá­[·nÝ·ïí[++EÅ÷/€|~q±@0}úÊ•^^ ,Y²t©¯ïСII b±@PUuÿþ–-Gޤ§ÿõׂ+V¬]»y³““@ÐÜL£åçÇÇ¿xQVÖÚÚö崥͢EK—¢íGYyܸY³\\´´h4EÅ… ÿú«­ôŒa|~yyzúˆëÖ­X±té¢Eóæ­\¹yóÚµ»v¥¦67‰vv^^3g†‡GFVUuï>mÚŠs玫¦ö3;WQQVV\\TTP­££§gb2j”›[ûÇ­­mmµµuu+*JK ¥;èÜÚ—ŒD¢¯‡H ÈȨªææ66~x;3É(‚¬¬–VffCÇ7Iãü?öî<ªõø™Ý¾ï"”-)mD %K„,¥D”R%ZT´Ðž”’4B’R´ nTÚ¤õ&»±3†YœÏüŒPêêº÷~߯?Üî™3ïg?Ì3Ïyí¯N’.‡5u4‚  ›ÝÒÒ»®èô¦¦¡Í-‹ÕÑQUÕܬ­íêúøq~~RRhè”).„†8Ð;Wüüòòuu4ZïŠ >>~þ¿vÿòÐÕ*+"¢­=¾ŒLcãõ,µÁ`°X"QDDVVZZRR@€;¹Çá wŠ÷Ä ‘F;öõëýûýýÏŸÿô©»›7>?¿œ??›M¥öÍgw7‘(/ÏÏßÿt-š74W¼ý͉„Ç“HܼõôÞR£}`ð}é×"øû$'Ëɹº®[çë»r¥Ý¯L?Æ·£ŸÃùQɘÌÎÎêjUUaáÁõ8,–D’–æãc±x†‰ ÂbýÜC/Y,*µ¼¼¼¼¿vGãøÀ{]b±ètƒÍŠkÂ÷Çéà[™ÅjlÌÍEÛmÙ™3GBÛ—7•={oÞäM¥¬ ºøрà \¾u+++3³´ôõëׯµ´ttttÐÍãÆ?qâ—/uuMMaaÁÁAA::£F)+ ¿|ùþýŸ?{ø°££Í‚¯^•”<þàÁ“'Ïž?fŒªª••µµM^ÞÝ»99**ªªjj@  tŒ?aÂĉffóæÍŸ?eÊ´iFFƒ)Œ¹¹›Ûš5“& wv¾y4wnS“&#ƒÇ#ƒQ]}ㆡ¡‚š5ÿ+<^AÁÙÙÐý?QQ+«ƒwïnjš={üx CFfÊ'§CC<þÛïñܽ{޼ÇýýÍÌvî|þ¼²ÒÞþÈ‘‚‚žÝŸzc0ª«ÓÓ—-›9sÍšž‹??wÿ~LÌû÷çÏëêb±´iK—º»/^¬¢{Mƒ611IIiéQ£44Æëî¦Ñ:;ÛÚZZѯ£AØÿƒ!‘H$>>tŒüøþýË—£G3~üp— ‡ÓÓ33‹‹™L©½ÝÕuüxaa>>eåøøÕ«ýý››=<<>ee{{==#22)©¨hõêE‹TU_¾$“ÓÒ< P>}ÒÔôð°³32b³óó::ª«SSÉä¼>²²ººhXµJOBAÛ:?ŸL¾v /µµdrïñ’˜xåÊŠh´Þ¬¬Ö­‹ŒD# cááC åãÇQ£ìí¹íåé9w.°u«‹‹«kA‰‰¡¡´4‡SV²ÿܹ£F55½xÁáÔÔÌšµl™••––°0wö…N¯©ÉË#“¯^-(()–•íî¶··´œ1ƒ÷z $¤£³}»§çÈ‘66«W£WMMuu ¦¨èÁƒ¼>óæ)(àpÒÒUUÎÎ]‘¸#7/¯®ŽNG¯{d2™\Xøúµ´ôÆ©››¬ìýûýµòÔ©½û'&¦¯ïé9wn|¼ÏŽ11::JJD"Ú¾/^47×Ö>|¸o_hèÛ·¢¢&()õ¤¢¥]ü¿““sãÆ¥Kêê“'››ÿZtE³©éŒ††»wïßclljjf†î­®>b„œ\xøž=QQ®®Ë–yz¢wnÜPÅÿõ¼ýw¦ ü]`4€aðàÁ‰çÎeg§¤ÄÆîÞ½m›··££¹ùÁƒÍÍL&ƒÑÔôàÁÉ“›68Q^Î]Ìd65Ι3gÎêÕÅÅ=«†ëëŸ<¹z5.nÏžoï%KÌÍúãÖV«oÊLfKË$&`A„Åjk++ËÎ ôô´³32š>ÝÎnË–ŒŒÚZôu:½²2;{ÿþ  ˆˆððõë}|""²²jkѼ³Ùïß_½·ukpðµkUULæÀµ4p¹èôúú¬¬èh77‡£G ››éô¶¶/ÒÓÏœqu=tèÖ­úzX; `øÁ hÃ`æLgg‡—/&Lðñ17_¼=¾h‘¡¡­­´ôÕ«ÉÉ®®NN‹¿yÓØÈ}/!1m‘ØÕuâ›ÝMJJ_ßÞÞÛÛÁHì‰cg'%uõêåË..¢¢=çâñbbS¦X[ϘqìXc#w‚™Åjl¼wïÕ«–ÉÄÄÊÊÂbéÒU«FŒÀ`h´§OA°X!! só͛ϜY¸Nÿóϸ¸… ]\6of2§L±µ]²ÄÎîÈ55{{%%6»±‘L õö1bܸää;w\\‚ƒ.LNNJ ——Çãéô/_°Ø7o\\=¨–~T.ÿS§vîtrº{—ÉôòÑÐÐРRÏœ±¶ž7û`8Á hÇûv£ AAŽÉììd±zÖÿÛ_££c°qp8)©9sôôÒÒ¶ows³´œ:ÕÌlåÊžÒLïT0ÝBƒÍîꪯïêÂᬭW®\»ÖÏoóæƒ<(*JMuwWR"Y,EE<ž7Æ_-‰$.^Qqõê‹­­ííïÞ¥¦¾SÏþ9`À°é;9L£a±¢¢ªªÂÂ܉ھç°Ùßë?Ž˜oœïc±::ªªöìIL¼yóñãüü¤¤ÐÐ)S**ÊÊ~ü BN@@QQPÍni)-mmån}ÁfÓéMM4“‰ ||lv{ûÇmm¼›~ô-ÉÏ—ËÖVB¢¼<)©°° àÒ¥Š 3³¡o'àWýï×UwwwwW×pgðÏ„ÇcáË*ð[\½´eKs³‘ј1bbtzmí–-çÎéë‹‹c±Âáè褦ššÎ›“3q¢‘‘ŽÎèÑ8“Y]––šš—§ªº`„Ä›7ááAA;wŽ?fŒ¤$“I¡lÝzýz|üäɹ¹IIµ¶ÖÔÌšµté´iYY™™ÅÅL&‰ÔÞîê:~¼€“I¡¬Y³m[jê¸qŠŠ$RK ‡3eЏøÍ›ii•• ¤¤¤¦zzº¹ÉÊ’É)) 55MM¢¢‰‰W®0™AA66>>²²ººÚÚ6¬Z5u*‚$%%'{xDDZYww++ÛÚZXÈÊvwwuÕÔdd\»–—g`àæflÜS;DâÀåãþ•îáçéyýú’%—.ÙÚ^»?Ü­ ôÀääܸqé’²ò¸q³gwfÿD22‚‚ýM@‹‰IHÈÊR©íí--‡Ãá°Ùl6›þA„Íæ=ÂÅf³X%%OŸæçOžlhhb2PºÅÅçæššZX89•—þüæÍÈ‘jjÚÚÃ]ø÷ñõŽÎËÛ¹ÓÝ]Kk¸óxµ·;ÖØ8a‚——Š lñëZ[ÿøÃÇgË–––°°#GæÍ“’Âá†;O†Ööí ¥¥6¸¸Lœ8Üyù1QQ<žNojjh¨«ƒU†ÅÏìñ úG§×ÕUT¼}{ÿ¾¸¸££¾¾„L=øgÔNXÀPÑ×÷òî|ü›‰²²JJ††›6…‡w^€þÀ hÀ¿ƒ>c"Cdˆ ‘!2D†ÈùwEC & ÿ=»KCdˆ ‘!2D†È"Ãæ ÿ0 `˜p8R( ï±¥KŒ,8vìË:ý¯§ÐÝýõkzú±c!!›7ÇÄœ:uâĉ§NÅÆ8ºxqFF}=‹õw”µ¹ùñãS§‚ƒ·m;p 6öرÇcb^¾ìèø™/SººÞ½;tèóçîîîÜܬ¬’’ÖÖ¾uøOƒÖ¿žÞ„ ffh+ õ¿lÙÌ™FFh+ oéô/_Ž7772rwò¤½}0ïé¯÷®\¹páÖ­¯^uvoyzc±²³Ñ¼ñæ¿££¬ŒLî}n[[QÑP¾´~o»°XmmÏŸ'$lÙ²jÕ¦M‘‘þþ+VlØpöliiG›ý«QÃÃçÏ_´ˆwÔ{½úýWQ:½¦&7÷Ò¥¨(7·Í›OœHK+(hjêbÿ} .ØÀ°`2ëëß¼¡RÅÅgÌ–þ=iHÊÊÖÖžžžž55%%’’+W £¯q8¯^ݸA¡ü=¥Ý¾}Û¶œ#£óç/]Z²DAß½;/Ba³DHhpd0ÚÚˆD,ƒ!‘””LL,,äåëꎯ¬äçÿ}uø×yzzzš˜ddäæ>zdgç鉶‡ÓÖ6}:¾iSCÃpçAÐÍ}vÿ½÷Ô©ŒŒÈÈá.É·p8))sóS§22ÌÍyóûö¾}d²­íÙ³vv=µ0ܹý}50nÜïKɬ¯¿ysÏžää®®uë’’ví3æþ}GG›°°[·,,.]²³““Ãÿô,Üû÷mm,Ö´i=£¾oº¿û*J$ÊË›˜ØÛ/^üþýèÑ’’‹õ\E{×pï>@˜€l6•ZVæääè½uëåË'NL˜ $4ܹ€²ôô£G¼¿¡AZº³SEeòd77w÷Ù³]KXV–}æÌµk¯^=K&?{6sæ¦M±±;v,\('‡ ••ÙÙ‡=úô)§¬,*ÚÙ©¢boha!'G$ö—^߉56ûøq336;==2ÒÛûܹÂÂînMMy÷îÕ«9sΟ'“ýýÕÔŽ Šˆ@Séèxÿ¾¬lóæ˜˜£GÑTèôÊÊììØØŒŒÑW±Ø¹s·m ¶°“ãMíóçövCOÉä®y^¾\WWL Ësgrt´¿@@K‹’’ºº”ƒQQab²ví®]ÚÚx|yyRÒÉ“))47ß¿ßÝ­¢¢­-)ÙÖvïÞýûMM=uèæ6i’ݤIsæ »»ïØqö¬ŸŸ…Ed¤‰Éôé­­»v]¿~öìŒ8œƒÃôé¶¶òò¾¾ŽŽââoß>zT_ÏÇ×Òòôé£GúúÁÁææ--ÇŽ¡5ãáam}êTn®ŽZ3Ì`Ë>Pý“Hzz‘‘Çãñ ^_ï^lìîÝh 4667‹‰yymÞì設M"µ´,Z4¾—×üùgÎ\¸°zõÈ‘Dâ¹saaîî.<|ÈÇ·woJÊîÝaaŽŽë×{x„†.YÒÒRTôüy|üÕ«ÏŸOŸ¾iÓ‘#ááÖÖòòx|gçû÷©©11gϾxA (+Óh%%UUL¦¬,š»ÓÒöq£µUEeÂYÙOŸ°X“¨(OO)©»w‹‰éÝ{]]'NŒŽ>|ØÐpãÆ-[,“#S.++ ‹å¹ÿ^ÝÛþý}ûêþý»v=~ùòÙ³%%‘‘+W¦§ÇÅÅÄ:ôìYyù—/§Oß»‡Ž>))AÞÑWVöúõ³gx¼µ5wô¡9é/­}û¶m»ysÿþ;M$^[›šºoŸÏ®]—/WUåä<{–]^ž–vþü… 'N¤¥mÞ|óæÝ»õõÜ1N£uuÕÔ ½+0ÐÔAmmƒƒÑ>ùøqpð¾}aaׯ߹SY™šzð`lì«W‚‚$Reei©ˆÈš5Û¶—•¥¤P(¦¦ëÖ¡íò£G"µ´Ü¿æLD…¢£3gÚ.ïÞ½yóì»`ÁÑ£½Û——wpHL¼vÍÎ'‘8œº:6›ÃÁãøøðøþ&öÔ7ðøòò¯_©Ô¦&&óôéÇ»»ÇŒ15]¿ÞÍmâDt]2ÚŽÃyEa2[Zþøƒ·íß¿};÷µ¦¦üüèèK—ž>miù㪪44V¬8wnÛ¶ùóÑëg­lfF$ÚÚþx\TTÉ‘‘h‹««ËȰÙ--S§®X¤«+,Ì`üÌ5êçZ‡H¬¯·±éÛ33óóI¤Aü ü?æ/mÁ1ÐÎk ƒÑßí?L&“ù;n âp:;KK¹w¯®®wüúú¬¬ 6lÈΦP~ßMUX¬  ¦&ÐÝM§ÿúm}k«¾>+ËÛÛÅåw况µ§§½ýÌ™+Vøú¬X1{¶”wZ‹ÒÐ07÷ôô÷ÎË»paΜçÏ÷ìÙ¼¹¤¤½A–,±³Û¿¿¶VRRL ‡c±0˜[·BC½½“’**þÔé⢧§¥¥®>f úÓÐÅ"å䬭׭[¶LP°©©¶v÷îÌÌüüÌL55®®.=7yy"M…ɬ«KOGsÂû*𓾩§§ß¼¹mwò䊳g7n\ròÛ·Ü›óY, %3SE%((*jÇŽ€/¯uë6oŽŒ\·ÎÚ:4ôÍGUÕÉiժŋÑ[¿~ÅŠùó]]W®ü¶‰D‘øøU«ddŸ?Çb±XŽN·³;p`þüªª]»|ýº»[DDDÄÇçܹV­š?_KkêT7· V­rv¶³35•”,)9~ÿ~Þš)/67ç­™Á—«­­¨¨§ ]\²²¸ŸÖ]\llââxk *ÊÉ©¬Œ[L¦„„ÖÙÉf÷ÌD8;{xL›F$vuuu±Ù‚„„˜•ÚÔT[«¨hjºbÚML^¼Ø»7(í?îîææÁÁβe»v…‡z{GFFD,Z¤¨Ø³BURROÏÍ-*êĉÈH´fÐ:)-¥Óååûë½$’˜Xyù£GEE••]]Ü<¦\ƒÉó÷¡½±¿¾ZS#(8eеõŒhÞÐõ¬hþ•”%$¾}Â;ú¢¢Îœ!“yGßÀiÕÕIJ4š¸SrD¢œœ­í¶m gÏ.X (H ‰¢¢cÇŽÃ‰Š††¦¤HI57s{š oïBSáí“h*x|cã½{;vìÛ—šúêUK ‰´uëñãÇŽmܨ«;b„¡¡µõŒ¼íò£ÇdJHÌšåâ²d o»DE>M&Ô. @"¡“Í--¢¥%%Åd=ÞÔÔßéû}ƒÃQUEÛˆ;êÑ©gnMößïU´?x¼˜Xï>† Âf76Þ¾íâ²hQll` Ÿ_DÄ… dr||pðüù¼×ÏþZ¹¶VXx0ã‚·Å•” ìì6n?^HˆÅúµkÔà[‡Å’“ëÛaêy i´‹‹½½Í®]ûöí߯¦6jÔèÑè”ôš5Ë—»»lÞ¼e‹¶¶Ž÷&‡íÛƒ‚6mŠŒÜ¿?:zèŠÀdÖÔdgïÙ“‘am}þüºu¼¯IK›˜8;74 ¢ß*Ÿ:´qck눣GKH0••FF«VíÜ©¡A"µ´wnïÞMLvíZºTY™@`±š›=rrruMH¾|ùøqt•ô¹s¡¡¡¡ ’’mmOŸ>|èá}øð‹ ‡9óâÅׯ•• ÷îÙÛ»¸Ìž-!ÃÑhÁÁ¾¾#FèèÈÈ´µ•”<~ìãsøðÑ£/_ž?yìXFFCƒ¹ùܹcÆ ù/.~÷ƒ¹z5''%Í?‹ÕÜ\PpâÄ•+OŸ¢éÖÖŽíé³i“¹9ƒQ]}úô‰ÏžuwwuÕÔ`0sæ{{ÏÛóM!ü ˻փÁáx7HèêÂᬭW®\»vÆ 11ñõ]·níÚïG½xñéÓÒRaa«£ãíÛ+Wú¦ÊûÿlvWW}=o*¼èôòòúz4'¼©ûùmÞÜ_êx¼„„žž«ë®] K–<®«»`Ax¸AVÖ“&uvÖÔÈɉ‹÷ÞŒƒHìꪪêìD?o–‚Âܹ3f ^½zýú‡­­ººššcÇ.X0a‡³eKVVeek«±ñŒ²²Z¯õõùùGŽdgc±ZZjjªªÂÂ8Ü«W¼5C ôÔZ3ƒ/;—ˆˆ¾þÅ‹ÙÙ ZZ••II»vUTp_£R„Ÿ_NŽŸŸ[8?¿¬,‘ØÕU\ü35€Á ýeàþÓØÈb (* ðn‰ðíêÎúúüüãÇ+*p8)©‘#……·QJoƒ+×óü}ßï«2¸]­¹z>nþ~.­oGÓ·ÕÕõõ¿|éì¤R9œìlÍÚzùrqq6»¹™Û»xSáí]99ßöINJjΜèèC‡jj¢¢ŽMNž:Õ̬¨ÈÃcûö½{ýü&Oî>‹5Ø×»]¾­HIik[[nÞüàÁ‚[·?ffÂ{ÎÐõùþüž«èà1™ååíí,VïÕÔhx¯!ßkå‹èèC‡Ö®E[|ûv7·ØØ²²ØØ¼}ÚÑ!-=ož››¼¼€€„ĪUîî³gKHàñÂbÕ×ߺ%%µfÍ–-è»üüüý'Løü™Nçæ_D¤¥åÍÞüŸ:µ~½°07ÿL&…r÷î¶m{öð¦ÛÕuïÞ•+Â`TV¦¥mÛvú4‹åììïïã³~ýôé/^>¼k×óç­­ð´qÀpd³[ZJK[[¹Øb³éô¦&mpS68œ¦æâÅߟPÄáySA¡© ¯¢9á}ÍIßh¹¹µµÜ8‚„„®®¦&‹õéÓ«W­­L&ÇÏ//_WG£õ¾{—ÁàãSPàçÿ¹½cùø””,-õô„ÓÓ_¿.-VQ±±QWïêzðàÖ­ÒÒéÓå䫱17×ß? 9Ù×wåJ;»™3GúÑžÔ?[ö¾Ðúß¾}öl))4-AA¡Ñxk€Å¢Ñêê¾­oïÄæp˜LÞ5у«6»½ýãǶ¶ž•žNï(hÈɹº®[‡Ö̯L?¾\Í÷ûêЪ´G^¼8;»¬ìåË78só1cDD0ÞÞ5ø1ÎbutTU57kk»ºîÙ“˜xófhè”).„†8PVöíã‡vÄ!“ÙÜüòeaá‡=Ä`H$ ee>>:½¦¦¿ø;úÆÀõÿ×®¢\ååååTjß]°XIZšÅjkû¶­èô_kå¾x[üñãüü¤$´Åß¿G¿vÞÖùï°ºÐÉ圜ìì›7ß¾--}ófìX--mmtE³¶öøñãÇ¿{÷õkuõ®]¡¡Û¶Mš¤¥5fŒPQÑë×ee§O;ëêêà`g÷êÕË—/^ܹ“Ÿÿ葾¾ŽÎر ,\xÿ~nnn®²²ŠŠŠ ‘H$x<O èèŒ?a‚‰‰™Ùܹ††S§”O‡Åêîf29œ}ÿÄ`TWgfº¹Í˜±bEϯ ~~<þÁƒ#G>| RÏœ™8ƒÁ`LM,˜8QD„{/&F§ù‚(£²òêÕ•+--W¬à] , Àû˨ÿïÃx1ÕÕééöö'®X~W‚Å*(89YZ¢¯wtôW NVÖÊJH(1ñÈ‘³g‹ŠFŽ3FE…@RPèI—HTPàÍ¿¸¸ŽŽ¡aUš %=ýÂ…÷磻æÎíI÷øñ¬,''ãë×Ó§32¾~òñ‘“ãçÇãEEÏžÍÌttü»º%àÿ>>eåøøÕ«ýý››=<<LOÏÌDóÖÞÎb!ˆ°0Ÿ²²½½žƒ™”TT„޾—/Éä´´(”OŸÐÑgdÄfçç74 mG&ç婪:;[XTUùù}›ÖÞ½~~¦þæH„„tu¯_ߺ5&æÔ©ôtAAôxOïBǸ¬¬®.Ú»V­ÒÓãÖÚ'G²·_´hÎ11 åÆÐзoEE'LPRâp¦LññÙ»wùòææœœs犋™L maa™Á¸ÏŸÑv12BÞí¢ªºd‰±±´4O$‰II¾¾ÇS©“&ÇÏÿçŸûöefö¾_p}¾wß “ÑQ?w®Š ?ÿð\E nÞìè`0¦M““#‘8­®îÎYY[[__ëÛ>&'gm””œŒ ,]êí­ª*'')©¢bfæå0oÞàZùûãBF¦¨èÜ9´ÅÇST$‘|| 7näHQÑï]£Øìææû÷ýüÐ1UXXXûk­ÃÛ{·èÉɹqãÒ%eåqãÐMʺ¢ÙÂÂÄdÖ¬ðð={¢¢fÍ21™3Ý ZGgÔ¨‘#CCw튌tvvsóð@7î(.~òä?ÔÕ544533srrsµtúŸž>½dÉòåË–¥¦æåõþN’Á¨ªº{7'‡Ã12Ò×ñâÞ=ÇÜÜÜ\F†{žƒƒ•UHHxxJJx¸†‹UT”ÐØ8q¢»ûÈ‘Ü æ¥KÍÌ–-Û°áÚµøøñã;;ÓÓSS ‹Å‹¹ç¸¸˜™-[¶qãµkññººRTtî\cãĉ=qœMM—- LK‹?žJMKKMe2--yã0™l6‚àñEE>>66»v=š““žŽ¾Êb55åä\¿ÞÕ5{ö¢E ƒQ^~âÄë×’’«W£éö}ƒQ^~òäë×’’«V¡é®Zåì|þü™3w簾rëŠÅ¢ÓY¬ææ»w½½Oœ˜>=>>%ÅÕUY™@@¿#¢Ó±X >>øžçÿî6½‰‰IHÈÊR©íí--è=l6›Íf÷ìÏfóáb³Y¬’’§Oóó'O64üö¾=Š‹?ÎÍ55µ°pr*/ÿüùÍ›‘#ÕÔ´µ‡»>ðïãë—·s§»»–Öpç~Egçë×ááË–%'Ï{òäŽS¦ˆŠÂÿü:Þ1•œ>eÊpçèǶoOH(-ݰÁÅ¥g7ð.QQ<žNojjh¨«‚‹•°ðÎ{öìÛ‡N=£Ç @˜>}Ö¬Ù³œ\]ÝÝÑãáá{÷FEéééë\ºtõêµk-}"QYÙÖÖÇG_¿ €Bùö!„wï:D&——wwc±ââ“&eg?}ÚÔÔsk†ÁØÚ**òñ!‚üø¶N\|Ò¤«W“’JJÚÛ¹7V0MM¼ic0$Ò«Wïß·´pÓb³;:(Þ]„$$ôôÒÒÒÒÞ½ëìDÓåp:;ssë빑°X6»»»wúÝÝÍÍ=7°Ù••ïÞQ© ‡ó½üs_AÓ51‘–¦PxÓýðáÊ•}ûp81±ñãçÍSTljÊʺv­´Ý/º¸øôé„„h4Ø‚ø{={–Ÿ?ztHÈæÍúú0õ À_Ãb55ñŽ©áÎÏ߬€ü·Á hüÛÁ hüÛýŸ^ ô{ù†Ì“'……·o÷=>i’Üc𬀠ƒiÓæÎÕן:ÕÌL_êÔ9sôô¦L16î|€®7oÃÃ#".^üãææž§æ|‡óðá·Oúïãp::ÊÊÈdÞc,VCCvö«WC™“ÙÜüèQbâîÝT*÷¹Gÿ K—-XpìØ—/tú`ßó_é-+W.\¸uëP·5ü`0dÐÐEEåä=zt÷îÓ§ü‘—7Tñ1 ƒù9‡È"Cdˆ ‘!2DÃÃÙ¶­ `ʔի—,™2E\?ˆ»t™Ìúú7o¨Ôÿ[Hg2ëëoßÞ·¯÷4'%en>nœ€ÀP¦…Ç‹‹Oêä´rå/_þ»kú¿Ó[NÊȈŒê¶€¿lÁ2è èBø×ãUˆ ‘!2D†È"CdðÏÀá´·KK»¸L™")‰Ãq~ü˜–¶woLÌ­­**&ÈÊ~ú„Åš˜DEyzJIݽ{ìXLÌýû ÒÒ**“'»¹¹»Ïž-%E ‚ÐéõõYY±±7ž;G ¬YsâĪU::_¿Þ¼™’²ÿ—/#F8àå5ož˜XK˽{‰‰oßJI1ïÞutŒwôèöíóæ=x¿gÏÁƒW®”—§¥Ý¹“œÌd65&&>|â„ŽŽ¯ïÞ½UUÇïÜyî\aaw·¦&‚¼{÷êÕœ9çÏ“Éþþjj$RO9éôúúï¥uöìîÝû÷§¤TUÍ›7gŽšÚ›7%%ÅÅ%%ÍÍÊÊdfîØqãF\\LÌ¡CÏž•—ùrúô½{nn®®'~ú”’röl}½©éºu ÈÉ¡u€ ÑÑþþ--JJêêhŠ&&k×îÚ¥­M"µ´Ü¿æLD…¢£3gNKKQÑóçïÞ½yóì»`ÁÑ£ááÖÖòòD"')ùèÑÙ³ÅÅíí‡ë니ôׂ4šÏªUááhKµ´<}úèQPЉqqOŸž=E&S(‹YXhh ©¾}‹ÁäåååÅÅݹ»qcXØ™3ïßߺõìÙíÛhK]½—˜¸nÝõëyy22DâÀ}è×z‹ˆH]]vöáÃG>}ŠÃ)+‹Švvª¨ØÛšš"ÈÍ›û÷ï܉ ––ææïÛ‡¶lf¦¿¿š‚Ðéµµ©©ûöùø\½*,ìë{䈗ׄ ååiiçÏÇÅÕÔŒµk———……„D}}vvllFÆÇïß—•a±sçnÛ¦£SRÂí9ÖÖ§NåæêèÉë×+(TV¦¦}Ó¦#G¸m=ÜWÀL@Tê§OÎÎZZ'ò®h—”ÔÓss‹ŠZ¸P^žÉ¤P¦M›9sãÆÒRWׄkkOO{ûêêÆÆ ¼¼TT¾<#ed,,üýOÚ¹ÓÉéî]&ÓËKDDCCCƒJ=sÆÚzÞ<ŽBÉÌ\²ÄÆæüù””‚‚+WÐwÒh¥¥¡¡oÞ0™NN3g:9-^|òdBÂÎè«x¼„Ä´iÎί^•”rrÖÖëÖ-[–’’™¶{waa~~ß²XJf¦‹Ë÷Órvvp8y2!aÇŽµk·lÙµ =‡É¬®NIIJª¯—’ruõô´·OIII)- X±‚û„))kë3Žklä~%ƒ¦¨¢ec#+ËØ71™3'$äÈ‘ÌÌððY³\\–,9z´¡aŸéÓ-,ÐsÌͧMsw/)11IH00Æ`ÄÄJK>}êèÐ××Õê[B<>*êĉÈH´¥JJRRÞ¿/-íî–@S9uêüù;V¬ð÷FßA§ÿùg\\IIw7·¥Ff±ll˜LŽÛR NN ߟzþ+½ÅÖÖÎnÿ~55{{ee AnÝ õö1bܸädw÷uë–-;|˜B™0a÷îÌÌ… ¿ícrr¶¶Û¶%$<èãSZJ ‰¢¢cÇŽÃ<éà`aÁf×Õ¥§;8ØÙ92{öÒ¥66""òòD"™ê휛»e ÚsÊË……ÍÍ33ýý‰DtC•;öíKMupˆMM]ºtÕª#øø0 fÙ2?¿¢¢#ºº¸míâbcçìœšš”„¶5Ú¯,-­­CCѶ£R›šjkMMѶvs[´(.náB—  ž¶¦Kàÿ˜€0,8&“ÿvC•úúüüãÇ+*p8)©‘#……{ÖG‰$.^Qqõê‹­­3fHK§¦¾?aÂÖ­B§wvÖÔP©ÂÏÏûŽŸ_V¶³spûP÷À`°nnÉb >­o7–Áã•”:;[Z~f½?š¢œœ¸xï:#»ºªªxSÄá¾­÷¾[ÛàplvGƒ1P0 æøñ={D[JKKMMUµ÷Zé¾Q1Þ¼‘H#GÚÙYY=|ØÚÚÞŽ¶Ô¬Ynnòòƒ+ñ¯ô–®.NAÁÚzåʵkgÌC_ßuëÖ®å¾ÞÞŽ ö›– âñeeYYZZNv6¦££©‰ LfWW}=š od?¿Í›ÑøEEhÏáM‡“’š3':úСš3377KK:]VÖÀÀÃcûö½{û¦ö+99~~n‰Ñ~E$vusÛƒÁ`z·5úÿ°àï{@ O£1™½§7ýý’“åä\]×­óõ]¹ÒÎîç§ŸAlm%$ÊË“’ .]ª¨03Cãpüüòò‚‚B£ñžÏbÑhuuüü½÷¡þvê•Ãù™ êŸK«7&³³³ºZUUXx0;c÷N±®ŽFc±x3|| ßO±/ ‹"úŸ¬d±ssy[jæÌQ£ú['ý}$’¢¢•oKÍšÕ³È÷ýZod³[ZJK[[¹3d³éô¦&íç¾~ÐÓãpŠ‹³³ËÊ^¾¼qƒÃ17ç¶‚€€¢"š ïùh*×vGGUUs³¶¶«ëãÇùùII¡¡S¦TT\¸zà@¥@·­Ñ~õkm ¿Ïÿ.G‰D"}þÜÔÄáÔ×wtp8Læ?ëY·€¿“‚‚ˆ£¦&!þ©ùïf4øç5*1ñÙ³ÖÖÙ³gÎCÿöôôœ;—@غÕÅÅÕµ ÀÄÄÐPZšÃ)+ Ù¹3!aïÞ-[æÎ_½Úß¿¹ÙÃÃÃcõj{{}}IÉo',=<ââ<=¯__²äÒ%[Ûk×âãÑã8œŒŒ•ÕÅ‹©©‚‚aaÑÑÇ£»$¿}ÛÖ6vll,º‡££³}»§çÈ‘66«Wè茭©©®ŽÁݽ{åÊçÏòòeeeGGcãíÛ_¾Ðhff**üü¼“µƒK«½AÐ-7""Ž9qBLŒN¯­ýð¡±QI)&&2‹ECYÙÞ^OÁˆŒLJ**Z½ÚÆfÔ¨ÒÒôôÌÌâb&“Djowu?^XXFÆÊêÓ'ÿ€€°0eå1cÐcbÒÓÃÃutp8 %7÷Ê•ŒŒüü††ÏŸ55—.µ±12BÂÂÆÆŽŽššôôk×òòTU—,™=»¹yìXw÷&•q811}ý¸8[[nKéè()‰×®½|¹ÿܹ£F55¡õ“—WWG§£©Édraáë×ÒÒcƨª.Ybl,-M$*+S({ölÛ†¶”¼|ßÉS:B©ª¢R›š=ÊÈÈΞ5kÙ2+«_ë-‰‰W®¬Xdcci‰ ÊÊVVëÖEF®Z¥§G¡ä榦¦§?|H¡|ü8j”½ý¢E}[º{·ºúÂ…[·>~|êTzº¿?·f¤¥-,¯\a2--½¼TUee%%µµ6lÐÐxÿ>=­™‡¯^%“׬ٸÑÉ A˜L åÆÐP<^KËÀ ¥…Ù2ÅÇgïÞåË/]òòru-.¾w¯¬ më‹SS½¼ŽÙ³'0mk ¥±Q]=&&=ÝÙmk4•ü|2ùÚ5´­kkÉäÞm‘qõê… zz§N½ºúÏ?ËÊÚÛÛÚš›?¾qãâEuõI“¦Oþüþý744&Ož9óþ}2ùÔ)55míׯ=ÊÉÑÒ2445Š‚°ÙZ ‹Éd³ß½ûü¹¥ÅËK]AÎ{û¶µ•Fãp0˜çΕ‘‘¨ªB'yq¸ ¨Ô††„„OŸèttJzÒ$%%týóçÏþÙÒ"+K"±ÙèNÙ,VWWG‹…ÅŠ‹³ÙhŠ/'WUE¡$'×Ö²XŒ€ƒ1~<Ç`””|øÐÒ2a‚²2‰t÷îû÷ííÜ}Ñ¢+Ð3edFŽÔÔLK‹Ý¶mÑ"oïðpt]‘ÈÇ'$”šzôhHˆŸß¾}X,‹Å¶·77S(IIQQóæ¹¹m܈Ãáñ‹Ãx<‘H"áñ€Á`0Xì Âbq8èÔ3“‰nÁÁ°Ù/_þù'ÖÞÎ`pÿ<¥R±X"G'pI$qñ;wþü³±±»»g㎮.A¸ÑÐõáx<™­-ô!‘„… ëë 4N[[SSq1z.€®/çpxë¾w¯²²±‘Nç¦Îf³X²² ÒÒÌׯ_¾0,Öû÷>46>zÔÞdþ=\ýøqfæ… ÂÂââRR/^Ü¿Ÿ‘Ñû £­md4>ïQ5µñã§Mc±Ðõ‡#&&+«¬^^ÎÝ‚ƒÍ®«kn¦Pèt‡Í&û/üÓýošÁ`±Ðý¹ääÔÕ'L@ö}:Ú÷]‚  ‹õ3ÇDJjäHMͲØ*ßžÓÒR[ûîï1­­íÖ-­÷™{÷¦¦~üÈ{ÖîÝÅÅ½Ï IIá=§£ãäÉ/_xÏ`±¶ní}¶wïóç½Ïyò„»ßs[[\™ÜÖÖ;/,‹uìØçϽíÞýèƒñýRÀ?ϰºÀÐp à¯À¢ÿA·¹€Ÿð~ÂϾ?‡û2þ›\] g̈‰‰‹;u*.nÏž•+ uuçÍ‹‹;th÷n_ß… /¾x13óر/_èôâ°X ÙÙ¯^uvw‰þ-†¶Æèô/_Ž7772rwG7¢\¹rá­[ŸÃéè(+#“snßÈK—-Xðý2h>¤Pz¶ÄšÚà545ßµµýõzà6Tu;ô8œ¾-54¹í/2¯þ[ðGï<4~ï~ÞÖöäIïÒõ=ò­nÛõ¯«ëÝ»C‡>îîîÈÍÍÊ*)ùvÛ¾ÚÚž<ù÷”ñÿ:X `HJGE­_ïímhH§ùÂf_¿~ý:îííç·e nm­¤R\ŒÁ|?'%en>nÜp—çç°X]]‚Ãññýýi}a0¼­têTFFdäàÞÉdÖ×ß¾½o™lk{ö¬Ý÷Ïþ™È?ÍC}ýöí ̘!-=tµÁk(j~ ûÑ8ùÙ2 e´¡ÅdÖ׿yC¥Š‹ÿÕ–úùÈýµàPæêTF†¹9÷X{û·­1pû·b0ÚÚˆD,ƒ!‘””LL,,””~ü®ÿ^=ü—ñìÍfwfü_8iÒ@¯‰JJ¶¶$Ò‹çνx‘}æÌµk¯^••½~ýìom»c‡…ßóç—/Ÿ=[_ojºnÝ‚rr‚p8]];vœ8¡®.#ÃfýúìYYYdäéÓ'Np§,Œ¦¦… çÏ÷ñ±µÝ¸ÑƆJ}þüÅ‹‹óòêëííCC÷îõõÕ×ïî^¼ØÖ68ØÃ#"ÂÚúñãàà}ûÂÂ23óó1˜úú{÷bcwïÎÈÀãåäøøÞ½ëè7ÎËkófGGmm!!&óë×ôôýû÷nn~ÿ¾½]LLLŒNoi¡Ñ(£wäë×sr**ÒÓމ¹q£µULŒÉüü¹±Q_?88*jÅ EÅ¥K--×­[°`ËGGçåËÒÒóç/_~ð@[ÛÓ3<|Õ*YÙgÏ6oÞ»7#cìØuëbc÷í[²DY™DBKÍd¶´üñǯÕ‚ ›ÝÙùþ}jjLÌÙ³/^ÊÊ4ZIIFFU“)+‹ÆÞ¸ñðaC÷lAãúD&GFÆÆ¾z%(ˆÆoi™<ÙÒrìØÂÂ3gzö¬¼üË—Ó§ïÝsssqÑÔ,(ˆŽÞ¹A,-ÍÍÑšyõjöìC‡&L¨­½qƒ72‚p8 F}ý“'W¯ÆÅ]¾üömbbnn}½£cxø¾}>>“&±Xvvóç{yÍŸæÌ… «WI$ž;æî~áÂÇ||{÷¦¤„…¡yPP8}úðáÎN•É“V¬˜=›N¯¬ÌÎ>|øèѧOi´®®š,vîÜmÛ-,ääðøïׯ¾5/)ÙÞ~ÿþ™3ŠŽÎœ9--EEÏŸ¿{÷æÍ³gXì‚G†‡[[Ëˉh:½¦&==..&¦w¹»Ïž-%… ÒÖVVÖÿHY¸PN³PPD§¬,*ÚÑñþ}YÙæÍ11GrSéÅBc†‡'$¾{‡ 3gnÚ»{÷Â…rrtú÷FAcãÅ‹›7ïߟ’RU…޲'OâãÏœ))inVVFGY@€‘‘¸ø÷ë¹o Ü¿ßÐ -¶Z¼¹EkàìY2ùÙ34·h |ýš–¶w/:²TT&L•ýô ‹51‰Šòô”’º{÷رþ"KIý· „DCÃ@ùᾋÅjk+)IJŠŒÜ¶­¦fæÌ³gýü,,ddèôgÏ–-+.VU={vÆ îÅ 2ùäÉÕ«ÉÍ7nÒ$CCkë-[¶lY°@PðW®¯ßS¦ˆŠ²X=uŽö‡ÎN{ûÞuÎ`45=x¿gÏÁƒW®”—§¥Ý¹“œÌd65&&>|ℎΆ “' uu}ú”šzðàíÛuuüüè5DDdíÚýû7l–.(è/-L>y2%åÁƒææû÷»»ÕÔ&M5ŠÁÈή®67ßµ ³hŠóæ-^œ°woZÚ‰“'Ë/.ð‹þ7Íd2™0 øµµÕÕ_¾HIIK+(tuÑhTê`ÞÕÜÜÔD¡ˆ‰‰‹£"€ÿ«ää$$úŸôBáp²²BBx¼††¹¹§§¹ùÂ…èkææÓ¦¹»—”'$L™bm=cƱcÜûzY¬ÆÆ{÷^½ji!‘LL¬¬,,–.]µjĈޫå ‘Îζ¶Ž kksóÅ‹W¯vwOI±··µõô”–¾z59YP°©©¶¶¼\XØÜ|÷îÌÌ… Y, %3sÉ›óçSS“’lldeq8­´44ÔÒÒÚ:4ôöíÄĉýüöî}þÜÕ555)Éܼ¡a×.++?¿îîC‡®_ŽÞ»×ÔÔÒ’72:m$)©§çæµp¡¼|YYRÒÚµÞÞGŽìß_Zêêš $ÔÙÙÚÚÕ¥ªjn¾v­‰ÉÂ…nnÖÖ¢¢ º¸>L§gg'$dfŽÇ`,\¸tiHÈ‹–– ‚ x¼˜Ø¯Ö‚ ˆ»»¹ypðÂ…ÉÉIIááòòx<þå ûæ‹Ë£GhüòòGŠŠFŒèêâÆß±cß¾ÔÔšš©SW¬@ã¯X¡««¤D ŒkoõjJJi):ዞom½nݲe‡S(&pkAÐÂÂx##ƒÇKIéëÛÛ{{;8‰«V¹»_½jooc³|¹”ÔÕ«—/ Ñh¼÷};;{xL›–œœ“SXÈfòòJJ‚‚FF+Vøúzy©¨‰Lf]]zú’%vvGލ©ÙÛÛØ()±Ùdrh¨·÷ˆãÆ%'ß¹ãâò½ÚàÕ·æ  ‰Y³\\–,9z´¡aŸéÓ-,z÷p“ž¶#åå­­==ííSR¾­1éêBï”I“:;ÓÓkk%%ÅÄ”•Y,‘—'“’** ww%%tÊ”‹ÆÜ¼ùÌ™… éô?ÿŒ‹[¸ÐÅeófkêÔÅ‹]\¾7 rsÓÒNžLHرeqqÉÉ‹3™ÕÕÜQæë›žîîþýzææ­§ª«'L@[ªonÑpu]´ˆ›[´ÔÕ{F“I¡L›6sæÆèÈú^äþ[ðGùA¯c""'.]ºsgc£³sn.‹ÃÑé_¿feݽ[Uuòd[Ûë×ááêêííùùYY;v,[fn¾sge%ÚÏmúÇã‚L¶³Û¿­s´?ܺշΠ ‰™3œ/>y2!açNn]HHL›æììáñêUIIÏ5é±±©©è5„ƒÁ`§Mû^Z«V-^ÜÒÂ[‡ííÂÂÇŽ56öÔ¾„Ä´iDbW׉0ùoô¿ hÇ`ººètØïÀÅÇG$âp½úñã»w/_JJJI)(`0ƒ½ù¥¶¶ºº¼\MmÌá.øwÀbîtNJjÎ=½†† ¶ows‹¥Óee ž?ÏË;s¦÷$ƒÁàp=ÑðxAA%%AAŽÉììd±8Á`°X‹åžÃbuvÖÔP©ÂÏ/'ÇÏÏý›‡ãç—•%»ºŠ‹ñxYÙÀÀà`GÇ›7·lñ÷ß¾ýÙ311ÍÊjÛ¶à`MM4õÞ‘¹%«¯ÏÏ?~<1±¢bÜ8UUaaîÕ+Þ³z× úÿLOÍô.Õ ¾ÆY,EE<ž7ýïÇŽ>thíÚ¨¨£G““Ñøee±±yy~~ß[ÅØ»fÖ»6ðx#q8££mÁ_ÁfwuÕ×wuáp ÖÖ+W®];c†˜‚øùmÞÌ='9ùWj£¿úšM¾?RÐñ–ågë–Û¯0˜ÁÞ\ 4ÊSσ5pn¹zF'%5r¤°ðÀŸx‡‘((XYyýú‡­­ººíí>èëO˜ÀáDEeeUV¶¶ÚÙ´¶Ž­¦6T)þh\ô­s_ßuëÖ®ýµÔÐkHtô¡C55ffnn––è5ÄÃcûö½{”Ö·»¥ƒÿžÿ]Ì'NTVEw‚†Ÿð~ÂOô§®®²²¨è@—YYEÅ?þ((¸y³¡B©©èLƒÁ Óѵϲ²rr#F Šˆ ÷ü7±XUU{ö$&Þ¼ùøq~~RRhè”)eeý?üwŠ’J)¦€IDATÉì쬮¦Ñ°XQQUUaaÞ‰E.ŽŸ_^^PAh´º:»‹Å¢Ñêê >>a³éôÆÆÚÚÎÎñã׬ٸq×®cÇ¢£Œ¹7ç÷—óÆÆÜ\ÿ€€äd99W×uëfÎ5JHèwO’ ¾ÆøøØìööÛÚz¹Æáüè©RÍÍÚÚ®®¼ñ/\ =p` ùYý· ˜XO r8½sÈá0™ßÏ5'  ¨((Èf·´”–¶¶rtÆfÓéMM4“ù«µ1\Ðñ–…–åç£ fðÖxÏ¿yGÙ`êy¨ðŽ,_ß•+íìþ®égA==áãÇôôׯKKŸ>ÕÑQW·±QWïêzðàÖ­ÒÒ§Oÿüs¨7•øþ¸ø•:ÿ¶gs8ÜsÑk:Òy¯!èHÿµöí;Žþ©c üØÿ~•š™ik‹‰¡?‡;K€9¹#Пè‘'O oß–“SPPV& éë×òò ¦M35%‘H¤áxÄ ø'{ò$33%å͛ׯ>lhho¯­½qãéÓ––yóÆc2>$“ÓÒ< P>}ÒÔôð°³32b³óó::ª«SS““¯^­¬Äb_½*.ÆbI¤övW×ñã˜L eÍšmÛRSÇST$‘ZZ8œ)SlmÑuǼ˜Ìêê«Wƒ‚¶lin623†B©©!¶lÉÈ8wN__P°±12²££±ñáëWÉäQ£ìí-š;WEÅÊêâÅÔTAÁ#Göì ~òd11,VEÅÓsäHooGǹssr&N42rs³±QTÄá˜Ìêê´´ÔÔ¼ÖÔ\ºÔÆÆÈA ;:¸m§ªºd‰±±´4º¹Ÿ²ò·5¦ªúòå÷G ™œ—§ªêìlaQUåçgiii‰ Êʪª²²’’‡EGïÚÅÛÊyydrZZeeGGCÃ))©©žžnn²²drJJAACCGGMMS“˜ØG‡óô)ï(ãpôõED>|hlTRBG'.ŽÃ}¿ž{ããSVŽïi)´xs‹Ö@mmOnÑðôœ;—@@GVA‰‰¡!wdíÜ™°wï–-sçöŽlo¯¯/)‰~aÔÿØî›ÞwõØ´)(HNnþüœœÓ§oÞ46ÖÒ20ðò"­­ÃÂ>~<>=ýáÃôôÝ»yûyn.“‘QUE¥65=z”‘‘­¡!*ZTÄ{ÄËË×—»é j0ãbÖ¬+WV¬@ëíVVëÖEFöWçBB::Û·{zŽic³zup°ŽÎèÑššêêLQуyyÊÊ––BB7nìØŠÇki ×Ÿ6nts“•½¿¿´ôô(”Ü\î(øøqÔ(;»E‹ÌÌFŽÔÑIM55åŽY4Eî˜MN¾råógyõêÑ£ÎΚšY³–-³²ÒÒFiÓ¦M[·.6ööíØX]]!¡áþP˜œœ7.]RV7®gç è!##(8¸[ߊ‹?ÎÍhšÍf³f¯&4š©©……“SyùçÏoÞ¨¨Œ¥£Ãá|»zá¯C·È"Cdˆ ‘!ò5²¯ott^ÞÎîîZZC›ðo·t©‘Ñ‚FF/’Éýíßúë8*õÍ›ƒW­Ú¾N_½úèÑ€€ñãéô'O.^ HJ’“+*ÊÏŽî:à÷io/*ZºÔÜ|çÎß1ÊèËÑ1$ä?NžÜ±cÊQÑÁÍeü{lßžPZºaƒ‹Ëĉ×Åãéô¦¦††ººÿXCþË~ÇÇWˆ ‘!2D†È"Cd~&³¥åÕ«>Æá4554ddH$11ee]]CC5511 UÕáÎ#¿\©Á߉Åjj Ù¼Y_ÿ¿7õüo‡ÿë!€£ÄÄ‚‚ë×GdAQqÉ’ôôG–,á=.$¤§‘““‘1Üeà÷Ñ×ÿ}£ €Þp8 Øv㟾ð[À4€ß&  ‹¶¶¢¢cǾ|¡Óÿj$çáC …Áèû ‹ÕÞ^ZJ&ïÙãààë{ìØÍ›åå]]Üi--§LY¸ðĉòrn23Ož 1334\´($äܹÜÜK—¢¢ÜÜ &L05ݼùÔ©ë×]] gÌpr Ü·/&&.îÔ)CC]ÝyóBBŽ9u*.îСݻ­­Oœ¸|ùÂ…ýû¹ï}ò¤©‰ÉDsÛÕõõë;¼1KJZZX,ápèôªªÜÜãǃƒ·l‰ˆ8vìÈ‘èè;ƒ‚BBbcïÞ­®FóI§×Ôäå]º´¿›ÛæÍ'Ofd77sã_¼Ø“îàó¼xqFF}=‹Õ3‰‰»v••uuqë¶­­´töl--MM}}w÷ ¾~åÖ$^W‡æpÅ w÷ððˆˆÐÐM›-ÒÕ7ÎØ˜›W:½º:;ûĉÀÀ]».\ÈÍ¥PzzÚj“&glŒ¶7òׯgÏ¢m‡a³©ÔжC[7šó… õõçÍãÍw÷ׯééLJ…99ùúFE?°lÙòå=PGÏœwîÍÞ3‡ªÆ–/ß¶mÒ$##´ÕââöìY¹’·Õ||LL´´ÔÕ ¦O?~°µú×±X ÙÙ¯^uvþh ¢ùš1þ#eedò@צþòÜÖVT4´õÖ{ý.mmOžðæ|¨R§Ó¿|9~üÉ“öö¿£`èÁІ34q˜Ìúú7o¨Tqñ3¤¥{¿†Ã kiÙÚzyùûWTL˜0r$š2“ÙØØÞ^]™ùàA}ýòå®®#FÌ›gi©£“šúქåÆîüüååïß_¸–öè‘Ý’% \ºôù³´ôŽ‘‘††¢¢ ‚ܺuñb~þ‚+W #Hyù­[õõ‹kh´´\ºtíÚ£Gøÿ}çãSV65•”ºp9q¢°0‚46Þ½ìéyò¤šÚÁƒññ[·ji `0NgçÛ·Ç/[¶j‹5gNf&‘(/olloooÿîݨQ Nž,"Â-õâÅööÓ¦%&^»öóyéôêê¼¼üü;w>~ÔÕ عS[[@@DDKkÄqqee…OŸbbÖ¯wuMM]½šH”•56vròô$””0#£3H¤²2éùó5kDD¸u!#£«« Àb™™-X`b‚Ãõ¤‰¶Ú­[ׯ‡„ Θ1kÚjMMÅÅwî m‡NÜ‚‚êêhÛ͘¡ `b‚–…æ\QQD¤µõÎK—>}Ú¶mçNmmIYÙÚzùršš’IÉ5kÐz`0ªª._¾v­®ŽÉtp—ÇãÑ3¥¥……SS—.]³†{¦µõÔ©ööYYóæ]¾Œž9t5ÖÑÁÇG&wvZY¡­ÆÏ_^~âÄõëׯÓéh«Mœ¸`?HHIɈBB±±¡¡ƒ©Õ¿‡“’277n°cðïqûö¾}dr}ýöí  W†"ÏCuUìÑ_{ý>Lï eêC_7àï3Ä+ oÜÈÈHOïèèèà~'ÑÞÞÞÞֆ˜Í›ãâ¾|éîîœÀ?A}ý“'W¯ÆÅíÙâí½d‰¹ù¡CüÑÚÊb1MMœ<¹iï e&³©©°pΜ9sV¯..njª©IO?zôàÁû÷OŸ>|øàÁÓ§ïÝkhøv $#,-ÏýMVÒéÕÕ÷ïWT891™&&¾{×ÑÑó* +km½gOhè̙ʙ3Üæ‚Áàp$‰„Ãa0Âϯ®¾|¹—×È‘••t:‚p8Tê»wIINŸÞ7]´ÕììTTèt´íÐV+++,9m;´Õ¸í‰¶Ý·eDs¾aCHˆ¾>šÿï×zDB‚DÂþ`΋åã“”ìïÌ¿^cÂÂ::ßo5"QIÉÖ6 ÀÔtêÔ•+¿_«TêË—þþ ®]Û7NIIbbPЬY::úúVVQQYYÒÑñìÙúõÓ§OŸ¾lÙ½{ÍÍ%%W®ìß¿xñ”)“'O™2c†…Åõëµµ ºÿ{cÅjk++ËÎ>s&::"ÂÈhút;»-[22jkÑ~L§××ß»íïzðà±c>>!!IIÜ•å FSÓ¢E¦¦ŽŽ¼×sçÂÂÜÝy¯‡={V^Λ‡þúqeevöþýAAÑÑqqGFDdeÕÖÒétzmmjê®]ööη=xÐØH§·¶>{våÊ‘#+V:„žÅ€¾7<|ýz4ÂýûÇoØ`eefæævõj~~VV`àŠvvFFFFöö›7§§×Ô|›—ïç™[ožžvv¼õÖ·,¼9é}u`2[Zþø#1ñàAn{¡×Õ'6m:s&77#ãô阘={‚‚Ö¬qtôò:uêéÓçÏ32NŠŒ \¶ÌÏïòå¯_»»¹ï ðóD¢¨èرãÇãp'OúùYXHI57§§£Ð÷ŠˆÈˉh„Y³\\–,£R›šjkMM£¢NŸ&“óòML^¼Ø»7(¨w^ˆÄïç™[oQQgÎɼõÆdÖÕqs‚–…7'II=óKx¼˜Ø”)ÖÖ3fpÛ‹@˜9ÓÙyñâ®.UUsó+Ö¯ Ú³çøñää?ÿŒ?|˜NŸ={åÊ­[£¢âãß½;r$$äÅ‹®.ô]ÖÖk×nÙ²kW\\rrvöƒ6xz&%UV~;¯Õ7uA4ÿ¼­€æÍ9›ÝÔ”—çînnèííåµnݦM‘‘‹!à_kˆ·àèêêêêê¢Ñ:;¹»» ÿFÿž"0™55ÙÙ{öddX[Ÿ?¿nïkÒÒ&&ÎÎ ‚‚X,‡C£ûúFDŒ¡£##ÓÖVRòø±ÏáÃG¾z•˜¸gÏñã×®UUÍž=k–šÚ»w¯^=}úúuK‹’RZZZÚ‰8‡C£ýùçGŽdgWUññ¡š›'MÚ²eÏž•+Çc±š› .\ˆ‰¹}»¶¶¦¦´´¶vôhOÏ  __CÃsçÂÙ4É×7(hî\ ‰††3g^¼øúUVöüùÇ»º”•õôV­rwŸ=›Á PîÝ;wîÀÌLNV–ïÓ§Žmm7·€GÇ/_ŽóõMNþã®.GÇíÛ­­/^|ð@[ûôéµkÕÔˆÄßSÓ0Ô°Øo§×q8££ƒÅê;Iø×L™" PQA&¿yS_¯¡ñî]cã˜1ZZ£G;:NœˆÇûù%'¿z%&fjª«Û³YÆÐÑ×ÿð¡ €»T 5¾‘‘»;ï~~éê¢Pº»Ñ%T½W³XÝÝЬ,ß·ÇûîAÌá0™lö_¿i½³³¶öÝ;cã½{à$$Øl>¾’W×óçŸ?onž:µ÷ùŒ  ——‚BaaXXPPzú¸qûö)+#Hï‰mA^¾¶¶ @DÄÖvÓ&t¥ø@ˆD9¹™3§LHL¬¬|øPYyÖ,QQNPpôè’“Ÿ?¯«SU}÷®¾ÞÈhþü¾ù Û¸qíZ´Eétkk‘‚‚æf6»÷Ä1ƒÃ ª©™šzzNšNËÊöí =gÞ½»iSNNCÃŒÖÖÜ3O ÆÏÔjßZVP˜;wÆ AÁ«W¯_/+ûðañb]]ss ‰ 8œ-[jj ÔÕ­¬de ùv=ïÀ0˜ÞcƒÁáx×ìS©ÂÏ/'ÇÏÏíÕ8?¿¬,‘ØÕU\ÜÙÙßÊÚ_ÕÕ…Ã)(X[¯\¹víŒbbâë»nïªp/+Ëʪ¨èìÔÒâp²³i4MMa2»ºêëѼïòóÛ¼A¤½½¨½]í?Pyÿz½±Ù=9á- 7'ƒÕ÷Ú‹ÆçÍmß|÷.‚ Wl&³³s°Wl4ÿ¼9çE§——üØØÈb ô­“Ÿ­EðÏñ[BØÙÙ3M¥R©Têï+›ÝÚúòå­[55ýÝ(„Áðñ)*êé! Àf××ߺ%%µfÍ–-kÖ¬^íëëççï?aÂçÏtº„„¡¡½½½½Pk뇎Žáá»wÇǧ¤DEÍŸ__ÿñ#† ,V}ý­[»víߟ›Û;BJÊñãÂdR(wïnÛ¶gOYÙœ9~~7†…ÙÚvuÝ»wåÊÓ§­­BB_¾<~\\\SƒNÆòòòòS¦¸¹ùú¢SÏÂdÖÖfgoÙ²gÏë×3gnÚ´|¹¿p°»»ˆÈåËÛ·<øòå¼y+W:;óó74”•¥¥Ý¸A¡,_nf´"ÀïÖwÊ‚FÃbÅÄTU……¹ŸpúžÃ»rð,-ÇŽÅáÞ¿¿xñáÃÜÜ'Oænóàà0v,SZzéÒøñ††²²Ãµ¬ÇØX\¼©éöíÏŸ©ÔoKÈáP©þyç΄ =Ÿ~±X~~9¹/_¨ÔÞk™ÌööŠŠîn"Q^¾gbïçuv64TVêéé舋£­A$ÊÉÍkk+*úþ}|ü“'ÍÍÜÜõä×ÝýÀÿ±c_¿Þ¿ßßÿüùOŸúFæãÃã‰D >¾O“òñ¶Új&HHàphÛ¡­öàÁ½{eehÛñÖšÞOÊhþÑœ÷Ÿ4 )©«+)ùã‡Ùl6…òä ¯ÆcàZe³;:>~,.82Ÿ’’¥¥žðñãÓ§::êêbbÂÂ**66êê]]OŸþùçäÉÓ§ËÉýüÄø÷ "VWG£qۃŢÑêê >>~þž«@ï~Åòs×AA6»¥¥´´µ•{›M§75Ñh=ÓÜzzNqqvvYÙË—7np8ææèqN@@Qлféô¦¦¡­“ïãÍÉ÷Ëò;ôÅå½b&ÿ¼9çÆa2Ñ•ÿ22||lö·äpúØ'øw°säåݽ›“µw/‹Åb±Ùl6‹Åbq8‡C ‰‚¨¨˜˜¸8‰D"‘H||||||J]]}}ggg'wÒ™F£Ñ:;Ñã7úùùøtt´µµ·wwwwwuÑét:N¥R©ÜïY°X,ÇãñxŸõë"‘Hœ:ÕÈhúô¾ùäpX¬în&“ÃùÑ7!8œ¬¬••Pbâ‘#gÏ9fŒŠ $¤ € ÜïxÐ_ÏÜX‚‚ššNNAA.P( †††²²•ÕÁƒ11LæÙ³çÎ¥¦¢°X§³“Á¨®NO¿páý{))?¿‰%$ðx'§ãdz²œœÐx7oþøW+ƒQ]™yåJy¹¼üúõ3fÈÈ ÇUU­­ÍÍñø•+Aÿ5k0<^RÒÐÐÉÉÕuöì‘#‡ú×ü^Dâ›7ááAA;wŽ?fŒ¤$“I¡lÝzýz|üäÉbbX,‚p8::©©¦¦sçæäLœhdd` £3z4ÇdVW§¥¥¦æå©ª:8hiÅǯ^íïßÜìááá±zµ½½¾¾¤ä·Ÿ‘&NܺÕËKZÚÚúÌ™ÆÆ Ð'a0ââÓ¦íܹuëÈ‘‹Í™£ªÚ{ú™L&“ ;:ª«SS¯\¹qÃÀÀÓÓÒA˜Ìææ'O²³ïÜihho¯ªºzõÒ¥+W(”É“çÎ53SPxþœ÷½Ož451™8\W×ׯ¹¹TjMMZZJÊD¢¹¹Ïõë7nTUåæž9³uëæÍ JJJJBB ••¦¦7úøôä—•µ¶nk Z·nãFaá1cF’Àb_¿nlÔ×?q"3ÓÆFCƒw%á÷òli©§×³‘N§PÖ¯ùrêT"ÑÚÚÚzÊAÁºº·odÒ$QÑ’_ß3h4NB‚H~|gçƒh‘ÉÉÉYY虋‰Šææ®^ž¹páÉ“C_ch«]¼xùòÇ ííµµh«Mš´zµƒ:é÷£Zíè(- <|811/¯ï.Ø‚ ‚‚ÚÚ›6ÉÉUU)* ‚„†zyååµ¶ZY9:b0MM¦§gf3™$R{»«ëøñÂÂ||ÊʽÇà¢Eªªh~©«;:Z[q8Ü|^¿ž‘QP ¦fi)#ƒ^£ÒÓ¯]ËËSUµ²ºz5(hË–æf#£1cÄÄèôÚÚ-[22ÎÓ×llÌÍMJÊÈxô¨µµ¦fÖ¬¥K§MklÌÊú¶·HK[XTU9;[Z¢­€Öä¡CÑÑ»váp²²ÖÖIIÉÉŒ±±ÍÊ•ãÇkk3zôÈ‘­­uu$R^žªê’%ÆÆ¼5 þù0997n\º¤¬ê"Ðéþyúô’%Ë—/[–šš—×û»]£ªêîÝœÇÈÈÐðíÛìì®®Ù³-RP Œòò'^¿–”\½ZWAŠŠ||llví:z4'‡ûÈD«¶öÚµü|ÉÚzútçîÝ \\NЉ¹yóÊ4²e+V<~œ˜hm½j•³óùóææçÏ''/^¬¨H ‹E§3™ ‘¸~ý¼yÖÖúú§O_½êî>r$àãcfÖû‹E¡Ü¸áååì|á‚­íÅ‹/š›ËÈàp]]ïÞ……¹¹mØÀb]¹rùòÂ…hnyßûwtðŒŒ àànÞ*.~ü87WNNAAY™H$H¤¯_ËË?|00˜6ÍÔ”Íf³æK4š©©……“SyùçÏoÞŒ©¦¦­=Üõ€_ßèè¼¼;Ýݵ´†;/ðwC§i×®=yRZúĉ°0#£áÎø7jo/*:v¬±qÂ//˜þÛ·'$”–nØàâ2qâpçåÇDEñx:½©©¡¡®î·lÁ!(((((ˆþ[@@@ ï¾-C‰HTV¶µõñÑ×/(øö™úú»w"“ËË»»9œîîææž›:ØìÎÎÊÊwï¨T£ç«½½çÿ ¥°0=]GGD‹EîîææÖÖînô†n„ÖVƒÉÄá$$ôôLL¤¥)”´´´´wïÐ~>|¸reß¾ÜÜúúþnßÁbÙìî®.n¾p8qñI“¬¬”•[Z²³Ÿ>Eoå Ñ**nÝzþƒ10°µí呂oa0bb“&…„lÚdh8Üyÿ^0~Ýשׁªªª¦6j”ºú˜1èuu MͲ²ÒÒ7o~W!p8 “}ûfÎüösó}ûââ¸ÿ?jw3 AQQ#£ƒ¹{tt ±„…{6ó äälmÏãþ¿¼¼ƒC||n®ƒo„ë×ïÝãžáârùòÇ..=©¨«;9mÛ¦®Ž 2wnÏÚjÔáÃwïfgÓ(xyù… ÏœÉÎ^¸7ޝozzrrÏÞ•Ú}ápÊÊ#F w>À¿›ˆˆ¾¾——ˆÈpçü ñ´•Õ¢E¶¶3g£GУ;Gwa¿ïŸž?ƒÁ`0¿ãz‘!2D†È"Cdˆ ~‡!Þ‚ÃÒráBkkaaaaî7"BBBBÂÂèñá.ì@ %?ÿúõŒŒš*µ±ñÞ½¨Txº&ÿ4¿ïC&D†È"Cdˆ ‘!2ø~ËÐÿ6‚´ôôéÎÎáádraa~þìÙêêƒ}è€ÿ{8œŽŽ²22ùáÃoŸE4´ÂÃçÏ_´èСϟ»»»»+*rs¹Ïþ`’ø)Lf}ýíÛûö‘ÉoÞP©¿s=þû÷mm,‘ˆÅb0$’’’‰ 7Ü¥~Æï FIIbbPжm553gž=ëçga!#C§?{¶lYq±ªêÙ³3fàp/^É'Ož=ÛÜloìæöäÉñã7†…9óþý­[ϞݾýõëÍ›))W¯ÆÅ%&®[wýz^žŒ ‘È­:½¾þÞ½ØØÝ»32ZZ””ÔÕ››Åļ¼6ovtÔÖÆãËË¿~¥R›š˜ÌÓ§îî3ÆÔtýz7·‰‡»õ€Á‚ІÁĉK—îÜÙØøü9‹ÅâptúׯYYwïVUíÚuðàë×ÝÝ""êêíí¬Z5¾–ÖÔ©nnQQ'NDFÚÙ™šJJ–”œ?¿iiw·œœ `SSmmy¹°°¹ùîÝ™™ùùëÖ-[Æ{<3Óß_MDB<^RROÏÍmÆU«œy£Íšåâ²d‰˜•ÚÔT[«¨hjuú4™œ——˜hbòâÅÞ½AAÖÖžžööJJ‚‚3g®Xáë+%ÅÏ/#caáïêTb¢‡‡„“‰Ã‰ˆhhhhP© NN ¼SÏ(›¸8•  ¨¨;¼¼¢¢œœÊÊÖ­³¶ }ó†ÃQUåM¦žüÁ4€aB$ VV^¿þáCkkssYÙ‡úú&p8ÏžeeUV¶¶ÖÔ´¶ ƒ õõùùÇïÝ{ð`c£œœªª°0ïv K ô}šOßã=ÑŽIHxð ÿh ‡ÁðÁáÐw~‰4r¤•Õ‹­­ííïÞ¥¦¾?k–©©¼|ßs©Táç—“ãç禌ÃñóËʉ]]UULæp·ð×Á4€a£§G |ü˜žþúuiéÓ§::êê66êê]]ܺUZúôéŸNžÌb56ææúû$'Ëɹº®[7sæ¨QBB¿¶2o4_ß•+íìþJ´¾H$EE+«¤¤Â‚‚K—**ÌÌfÍ’“#úž)(ˆ 4Z]Æ}° ‹E£ÕÕ1|| üüxØ4ÀÀÿ~‘H$ßpgðOE§wÀÓ¦MAArró燄ääœ>}󦱱––—‘hmöñãùóéé8œ˜æé9wn|üÖ­..®®­­îî3gJKs8ee!!!!û÷wwwt46>|xõ*™Ü™ü‰Šâñƒ›€..~ü87WNNAAY™H$H¤¯_ËË?|00˜6ÍÔ”Íf³ÙìÁ§‹F35µ°pr*/ÿüùÍ›‘#ÕÔ´µ‡»>ðïãë—·s§»»–Öpçü_áããí}ëVXØ‘#óæII ÕêjÿwmßžPZºaƒ‹Ë¿áyèlRSSCC]ÜÐ :½®®°ðáÃúzqqGG}} ˜zðL@C‚H”•6mÎYÙiÓ†;/À?<„ÀoÐ~ Ø‚À0ÈÌ<}zëÖ€€Ã‡ß¼ ÈÈHIY³FE…Hüö<M[[GgÁ++????'§Å‹-,=:p`É’Ó§32š›çÌY¶ÌÑQI‰ÁøòåÑ#297—Nߺ5=ÝÔôÙ3?¿Ó§SSkk§MsuutÄãKKŸ>´öï‰IK«­åç××/++*JH@ϧÓëêòòfÎ45 ÑÒrp˜=»¤$99/ÏÍÍÛÛÃHlk{òäüùää¯_ÝÜ< ù73[¾ÜÞ¾¹ùÚµèè[·::$$øùi4áþýçÏóòÄÅÙìêêììøøèèâbùóW¯vt41‘–îÛW~Z'gÏž:uñ"Ú¯V­òövp`2;:*+‹‹ÓÓïÜ9v,99<<5õgË•š}ë–°°‘‘œÜçÏ«Vee•”¸º*+sKpéÒþý+V>œPV¦¥å騯ßؘ˜øý~ꔌLzúþý™™mm ŠŠƒad´|¹ŸßøñBB ‚0™ÁÁÛ¶:„¾J¡”–~þzäHL óse?}úÁƒ‚ŽÃ¡Ó«ªòòΞ½|¹´‹àp¨T ¥ªª©ióæÝ»ÃÃI$ ¦wCGŸ†ßÔôõ«¸¸µõ·£¯?õÞZ­´TXØØXC‡«¯/-}ñ¢©éСóçâöÊocòŽD4N|ztÙ²M›êêRR²²""zrÉ`xzff67¯^­£clloooÿîݨQÖÖ""ܳ/^¼xÚ´ÄÄ´´GÐ|~[Z:]QQD¤µõÎK—>} عS[›[ Ïž((|úôþ}W‡3f C$ÊÊ«ªJJª©-[æá±h™ÜÙieµ~½··¡!þå ›}ýúõëtº··Ÿß–-tºµµ’RHÈ»wÜ««óòòóÑt;;AAH$eekkiiaáÔT—ի׬10Fkë©Síì²²ÌÍ““ðx{ûÅ‹§M»p¡§\D¢°0‚ØÛ/^üþ=zœwêE$ÊË›˜ðž3q¢˜/)ilµcGd¤¡!?yù‰hþ,ððX¹râÄ øùCBJJFŒŠ ÁÿoÎBFFWWAÅ23[°ÀÄäwLî uâéééYSƒö«Õ«W¯^¹A„Ãik›>N'þJ¹ŠŠÄľ~=|¸¢"&fýúøø)S.]Zµ mk''OOë×33Ož\¶ÌÃcáÂ)SZZ¸9¨‡oß¾m[NŽ‘Ñùó—.-Y¢ €ÇïÞ—G¡°Ù"$„Ŷ¶çíí燾ÊdÖ×ß½Ëf#‚ðÖá`ÊŽŽÆÆÆÜÜíÛ==OžTSËÎNN^µ Àátv¾}˜›ÛÔ´wïœ9¼} }=}ÌÞ¾gôᘕ¸÷Ôj%%’’h*•úòåîÝ77s83fˆ‹s§Ûyc¢#qÛ¶;µµÑ8Ë—{xðÆA£ªêòåk×êê˜L!!,mëÁ9sèt!¡ìlÞ«•úúõáÃèuÆÓóìÙ°0ss99tì0µµ›6áñòòÜëÌ… ×®=z4y²¸8·–H$%%SSII!¡ z_yÇ©³óÀSϼu{çÎǺºèµ­ÛÁ^3{·š§§§§‰ Ús\]½¼¼¼´µÿü32ÒÚÚÇgÇ]Ý£Gíííí§MCKdk»dÉÂ…¼%Z¼ØÞþãGuuIIn‰DLlpýg0©ki={Æí·ÆÇoݪ¥% €Á ýöøñeËV­b±æÌÉÌDG :²Ž¹sçÊtÔDE½yC£‘HãÇ÷)è(àŽÍ¡¿6ýW ñqq‡EGëêjjŽíæ¶d‰½=úoô8ƒÁ` —­&³±ññãøøM›ÜÜÌÍmm‡;?€þý¾™"Cdˆ ‘!2D†È`8`0âääë;q"~ïÞiiUU FÏëtú—/©©×¯‹‰õ·R’w '‚ ‡Ãf“H††˜™IJöw‚`0X,Ÿ¤¤„‰„Å"ƒQS“–¶cGzº  ¯o@À·ç+VŒÏ»êýäÇùáE§WWoØ¢¯Ïd>|˜˜øî]GGÏ{YYkë={BCýüŽyù²££§ãpX,C" ëèNš4PD¢’’­m@€‘‘¸8šâýûNNhºÜ¿ß||RR’’||¼õ=P¹¾WÞ¾çhk£ùéÿÜü›šNºr¥—×È‘••t:‚p8Tê»wIINŸ>ÐÔ3^_ï^t´¿@À‘#{÷nÝêã’”ôæMG›žéímcceå陞þâEF†•UtôçÏÝ݃+›M"ééEFö¤þ+åš>]R‡#degΤPΜámk ‡#‘¸má‘~ÔÃ?nog0ºº˜LnY¾\W—;ZŒÖÖÒRÞWñxII#£ï­:þ^ÙéôŠŠ¤¤èè§OÕÕ–,éý>MÍâ⃓’ÊË¿7ïÓ{ô äç{/oÎ1AAeåY³ÊÊÚÛ™LÞ³xc¢#ñÇ5€ÁpsÛÓÖå¢÷üïuÆÌŒ;õŒ"deçÎݸ‘÷:ƒü”ÁžßS·½¯Eß«·Zïw¡õ/#ÃbUVö´÷œŸ¿~öè?'?J·ßŽ+ ГMMg瀀ѣÑ~‹Žtd¡ç £Yç¶glÂÚç ÁtMMuuuõôé“'OœèííççïÿæÍçÏïÞ}ýZSƒþ=¾sgHHp0zþС³óÕ«Ý»çÎ52êû'èÆ!!……­­ßÿã—”44´··³ãç§ÑÐoÖA˜ÌººÌÌ•+/ª¼Òh=—þÁàpZ[ SSkj¸M&³¾>'‡Åºú€á#-mawíÚÆ8Ü¡C‹¹»#‚Ðéþ¿qãõëFF¼ë‘¿ÕÖVTä⢧§¥¥®®¡1uª»û;ÝÝ""||ßNp8,ÖÆnn cÆlß¾{·±±„K§WW߸qñbuõˆ«WOŠN[÷6uª²rÏ”‚ 7Å1c¸?µµçÎ=tèãÇþ¦4i´7o¢£#"²²^½RS›=[X8/oíÚÀÀ‚Þ³))3³½{q¸ÐЙ3gÌØ°!;»¡¡gú ‡ãã“““øÞ¶8œ€€¬¬€¦øþ=‰ôú5š.šbKKßO¤‡Ã`tvÖ×ËËóñµ·¾xÑÒÒ{âî¯ëÉÿÀMÜü“Hrr¶¶gÎ8;/^¼sgPСCmmîî{öô·\ŒÅ¢P23]\llââTT‚‚¢¢Ö­Û¼922*ÊÉ©¬lÝ:këÐPkëuë–-ljª­-/67ÏÌô÷WSø>í¶¶¢¢žö54tqÉÊ¢Pþj¹¸ëF££<ÈËãmë§ß¾×ÃÓÓoÞܶ ‡;yrÅŠÙ³Ç7.9ùíÛŽt3‘¨¬¼|9ï«::sæøù¡¯¬ÿ²Óé5599YYÍÍ ÎΚš=«ÿ¹0EÅ––[·nß®©ùv šÃa±¨ÔÏŸ32xGß@9ø™ÞÛãÒ¥“'Ož>EÅŸvþ9ÜkZ¼×¢ê¡ï5sàèÝÝh+ õ¿hÑ™3—.}Û ¿b0ýç{©óöÛokƒÕÔtrBû-:jБÅ;jБÕû¼#¥glþÎöûw‚-8¶o ”••“““ûþ™¡¡áá‘‘^^žž§N?ñâPA@@]}ñbSS~þÖV6Az¾g2ÕÔ\\tuEE1a0êëss¸t©´TB‚Á¨¨øø±£cܸ}ûvìXº´wL£º:+ëØ±Žþ¼¼üë׳gss]]ML$%ñxmÓ&/¯°0eåñãee[[Ÿ=+(X¿þäI2YP‹¥Ó++¯_ß»÷ÆŠ ~þÚÚgÏ^¼è賵ݶ-&fòäÎÎ[·Nœˆ‹+.îêêꪮÆ`LMCC}}çÏ——ç˜Lf[[iiw7‚Lžü¿ÃKJΘÁ{a¸\Û¶ÍŸ_X˜wõê—/‰‰ÙÙ©©LfssAAJÊ‘#qqššëÖíß_SsâDhhRÒ£G]]êêòî]i©‰É¥KçÏûùuþ|pðÖ­4𢢔Tkë“'÷ï¯XqêTz:úmƒQU••uúôõë>P©>¼}‹–eÆùóå凢}ÿu‚‚‚…Åúõ³gÇÆz{··75ÇÇ¿xajêííêÊÏßßî¯(}ý‹³³´´ªª’“#"**ú?ƒÁá<='M¢Ñ–/}ø°¡aÆ kk))>>>>§³³¦†Fc2DTÿƒOÊ/>}ZZŠÞŽ¢Ó¿|9qÂÚÚÅ¥°°÷¹µµïÞïÝëëk` !A§[[‹ˆ””¸ºž? ²bïÙãǯ]{à€—×ãÇK—†…¥§ý+5Цf` !–æöíY³V¯~þ¼¹yêÔÞÓ7 C ÈÈDF‰‹/X°k×É“K–L¤¢ò74ÿyùÚÚ‚[ÛM›ÄÅûŸúb±:;kj¨Táç—“ãççNìápüü²²DbWWqqOI±X;ˆ…x""úú>œ=ÛÑñöí•+»v Ô¯~ #(ÈÛÖUU Fï5ż9¨‡ãñzz®®»v%$,Yðü¹®î‚ááYYŠŠb0¼¯^¼¼~}QQk+‡ƒ¾:ø²ãp||²²üüÒÕE¡tw£ËâzO£vw#Ÿ¬l߯0NPPMÍÔôîÝM›rrÐÑ'+ÛÿHû™ÞÛÃÙyÕªU«xGeoµµaa7®]‹ÆDGbAAs3›ýíˆàæÖÓsÒ¤èhô‹ r;x?{›ýó룹5À[·l¶ƒz-BëÖÈèÛVë{͸H$%¥µ‚ ‹Õ÷Kç{_y ¦ÿ|/õï÷[«»›Báí·èÈÊɹÿüytÔìß¿qcx¸¯oAÁÁƒÜ÷ñŽ”²²«Wþíä/®€ÎÏðàþýœœ[·nÞ\¹ÒËkíÚïŸÇz>úÞ¡)Ÿ²²½½¥eqqSSÏÚ`£¦ÆÊjÔ(~~ôß7n†‡oܸ~½ÏªUaažž¢¢‰‰TjßïyÐ?–-spPT”ðö^¾ÜÄDR’@@×E߸!-íã³}ûÚµÞÞ6Nšôñcg'úíëíÛ;vDG?{¶zµ·÷Æ~~#F¼ÿê•ÐÔ©BBÕÕdrPÐñãLæÒ¥ë×oØ0sfIIttXØÓ§ß®Õ&¤¥g̈]¾|ݺ¸¸ë×KJ(6ÝÒŸ[ÆË…ÇKJN›æààà г²72²·wu:•ÃÁãåå-,¼¼ÜÜøø(”·oÇŽuvÞ¸qåÊyódeÑ¢Þ¾53Û°-iPPDÄâÅEEL&ºm=Z/¯5küüxË24- ø/ãpÐõ·è*´I“||œGŒ8{öÌ™óçñxWWcãÁOú ij::FD˜šÊÈ`± ïV\’’ºº’’l6…òä …Â` '.>~ü¬Y¢¢Êõë/^ô·ƒç••¿²²Ãéìlh¨¬ÔÓÓÑáÞ’O$ÊÉÍkk+*úþ=‹Õó »­ ‰4j”»ûþþcǾ~½ÿ¯¥‹¦È[whŠññOž47tO­€Àˆ‚‚]]Ÿ?·µõWƒ?ÆbQ©CuÏ.O$JHôÞ¤7ŽŸ_^^PAh´º:›6‹E£ÕÕ1||èƒÅ~ '$¤©¹xñöí³gKIýµÒôyèikÿóç?}ú~[÷íá¹¹µµÜµÆ‚„„®®¦&‹õéÓ«W­­L&ƒÑÐðø1ï«®®;v¢¯þlÙÑ‘bl,.ÞÔtûöçÏTjßò54ˆ‰Íš5a‚¸ø@Û¼£o zúµÞûýºGG"oLt$~/&€^1¾—ÛŸÁ{é/E:½ª íX,úu ›Ý·ž¤»›H”—ïù²å{X,*µ¼¼¼œJ彡õÀ{-Bë¡ïûû^3 o‰¾|¡R{Gb2ÛÛ+*~\¢ÁôŸþðöÛoÇ!‡C¥þùç;h¿EG :²xG :²úŽŽîØüÑÿw ø«üÍ›W¯^¾LK#“SRÞ¾}óæõkƒÉd29öÿ÷âÅóçÏŸ£çOœ8iÒäÉÞ¿oh8mÚôé8‡Ãµ¶¶´´´Lž¬££©©£3~üøñèùË–9;;:jk7n‘H$‰ ‹Åb± ‹ž¹h‘ÝâÅÚÚãÆqß5"QMmíÚ={ìì.^ÔÖ¾|ÙÁJ=uêèÑÑ£½½÷îe0ÊËÓÓ“’¾|QPèÙŠŸ_MÍÆÆÒòõëŽÑÕt•áåä-JHˆŽ>uê?TT44TUñxaaÁá$%gÌðö¶±II‰‹Û¿¿¥¥´´£cÞ¼ààÐP£ºúêÕk×ÊË…„üýøùñxQQgç nßvvî/5>> üüœœ'˜ÌæægÏRRüý§MSWˆ(,œ0¡¥åÇåx²ž_áè·À‚¤äâÅŽŽÜ-GŒòòÄDGG]Ý5kÐs±XEÅ¥KÑÇi0åå7n eA¿©Åã¾Wè‘–êTj*þñcKËâÅ‹ÍëíœüåËýû]]èé ÒhŸ>åä46vtTW§¦^¹rã‘hoonþö-™\XØØØÖöùóñã‡ÅÆ>{&*ÚÝ]UõêÕÝ»wîP(K—úúåç74´·×ÔÉÉÉYY»w;8lÙ²hÑåË>>«W¯_êTAÁ‰+Wúùeeݾ]Y™›{ö쎰X22‚‚Xlgg}ýŸŠˆX[‡„ HMM^™L&¾x!**/ ¶¶8™L&?zÔØH¥ÖÔ¤¥¥ü?öî<ªõ}ø™Õ0ö}‰¨P!’(Ò‚JdmI¥…")"Š$¥hµ”PiÓF¶J-hS)‘´Ú²±Ì³þþ8_¿F«ºuÝî}>t§³<çyÏ{Ž›gÞóžs/¶·#È£GçÎÕÔHI¯­M$.^]G‡ÅÊÏ?qâÀÚZ1±éÓíìì쌌zG‘ê닉={æï?ož·÷½{††--íí••ÑÑ;vìßof¦¤„ÿyC ¥§Çňˆ Hjê¡CEEüç_OÏÊJH(---­°°µµ½ýíÛƒy¼îîÆÆÒÒ+W®^ݵëðá°°Œ ´ºº>|()ioçpôôÄÄp8a³ÛÚNž<}º7ÿóçO:{V_ÅŠ¹sÑ\Ùl*õÉ“ÚÚ®®––[·Îž=sFNÎÈhÆ GÇI“ú‚q8YÙ™3OžLO'“cb"#ýýcc_¼èè1bïÞÌLgç¼¼´´ÚÚ®®ÖÖ;wΟOKóððó›?Ÿÿ7e&ócÿ¢9çç762™S¦ÈɉBBDâ—¶éO»ôôœµµ/]:räСׯ››ß¼ÉËkld2ÍÌääˆD´¯½¼ššÌÍ==;; Bóé=Ê·®páÃoÞôðÀá†×ÑQTÄáfÎ!“q8£¥¥¶¶µõÊ•œœ­[Ñ!shÌ––Îκ:ôîš;wút{{1±¼<ôîÛ·oçÎ%K гÇd67_»öý«wݺªª€€½{W¬˜:µ7óóç KJDDääzzf϶¶65E~Œ‰Þ‰‘‘ÁÁ¦¦hLôN|öÌßçNôŽÐШ©©¯—‘QVF³9ræÌ æÎý4ۯ߃cƈ‹s¹õõùùŸÿÔâÿ9ìåõîÝàÁÚÚªªèÏ™òòÚZ"11ñС­[±X99;»³g/^”•õ󋈈‰:TR‹íꪫ«¬LHÈÉÙ³GSóãKùïÇØØÝ»ccÇ£RÑû±±ÑÕ5.NJêÕ«gÏПEè¹%“?þ,BÏm|¼³³‚B~fò_?èùGÛ›–vêTF†¡áŠ}_„ˆÇlQròÎk×80xððáh‹Þ¿'‘&NŒ‹Û¸±ï5ÙŸëçÕ«ïÿº hiQVVVF¯[II ??//"A¸\IL¬¦&"ÂÛ;.NYYK ½kÐ;«ï‚Þ› ‰‰Âdvv¢÷¦‡Gtttô DE“˜xèƒÃ_=ÿo€¹víâÅS§ÔÕ ,-tgtó‚sæ88lÛµ{·³óÂ…‹}¾eEEyyY™ŒŒ¬¬¬ì˜1ZZšš'Nœ;wá„ 'Nšô«ãädlºÆb½{·i©´ôêÕúúò¥–²Ù iiçαÙ66óçÔû?6}ࣵµ·-GŽ\¾Œ®Eۂʼn_š= ü‰ÄÄðøþ½>´¸øÞ½¼^²dÙ2ýûwúږÇ©¥%,,""*:uêôé3füÚÒ3ÊÞ^^¾¹ùôéè踸Ž›ÞÎÀá$$ ììæ‘BwwMMnî£GÊÊ$‚|éqA,–Ëíû ÇdR(tzï¬5\.VSóâEg'›Íã±Ù¹¹ÉÉ×®ÕÖò?NÕ›‰¸¸žž•Õ AJvöùó/^ ‡C¡çKmÇ㥤 ÒÓÓÒ^¾ì͌ǣӯ]kjb±øÛÒûÃǶüÚžü‰þÒh~mmmmʪUK—.Yâë»~}`à¨Qzz£G?{VRòäÉž=;wFFR(­­--¹¹7o tÃF+-÷ôܸqɒÇÓÓq8­¦æñãS§üüÈä… ÏŸ×Ñ!“:OúF@àO# ð§ûŽ€æ'!!!!)i``hhd´pá¼y³fii ª¢²hÑüùsæ ã³³¯]ËËèæÿ^N{{iiQÑ»wX¬  Ébbƒëè &,L t†ð÷øÅÓ`¯]°aƒ——¯ïÚµOžm```@$‰ÝØ¿//?sf@€›Ûƒû÷ÇÇ<(*ŠÅvu5775 ä积?ÐÀßã·¼‡-7›˜ tÿ~X¬¨è¨QK—îÝ;jÔ@çÿdlvpðÆûö)**)ÍÍååo߆†ÆÄìÝ‹Áüêcñxwî47³Ù¦¦22½Ï¦.X`bbccbròdZš§§ªjï«×ð«ü–4ðm<^{{q±ŽÎÊ•>>NNŠŠx<›ÝÔtãúÞî×Ínj*+£Ñ$$LMedºíÀ  «½½¼œÁ@1cÐ%x¼””‰ ÷q&³¶677..+ëõë®®ÊÊŠ ,vÚ´ƒƒ­¬äåѵû÷ÇÆ>zÔÝÍ`Ô×£kýý­¬äå{G33™õõ™™ññ{÷ÞºÕÒ"#C§«ª,\èæ6y2‚ ‡ÓÑQQ‘››œ|áBiéáÃiiOœ¸~}\\X˜­­¼<‚|< §¢"&F§«ªÎžÝ÷(ø²_öB ÿˆD•%Kp¸C‡–.{öĉK—®^½víÒ¥“'KK÷NÃÅ kjZZº»ûúçç?nnþäIdd@@IIg'‚ðÍäKGÀ—ÁhÀƒÁ`0Çã‘!2D†È"Cdˆ þd®®[·¦¤89­]ûäÉÉ“ÁÁkÖ<|ØÞÎãéë3MM §¨¸zµ·÷ªUèö>>ÂdVU%&¢kíì–-[µÊÔT\¼wíÁ`°Xþ§1ƒù¸äó£ðç€oƒЀ?Æïû%"Cdˆ ‘!2D†ÈüýX¬––{÷ÐÏ‚¤äèÑ®®aaþþ¥¥ííl6'$¤¤D&s¹T*ÿ^\.“I¡ð¯-/oog2ù×vw³Ù¿.Ï¿ç(À¿ÕÿF@÷ôôô0 àŸ Ç—UàÃáH$11÷ìÑÑQTÄáZ[ß½£P6nŒŠš9‹E+«'Ξe³­­==ÕÔä䤤´´æÎ]·ÎÓsüøÞµ^^rr£G£k—/?þÓ£‘H**GެXáëÛÖ¶hÑ¢E+VØÛ«©ÕÖvuµ´Ü¾}î\zúðá‹ÍšÕÐpî\aaKKWW}}zzZZ~þ‰gÏ.]ŠÅÚATTfÎôöÞ¶íKGÀ§` ‹1âàÁ­[GŒøÚ6**¶¶/ž:ekûµµ[¶|ym_‚œÜƒW®ÄÅñ/½yóéÓ»wûnéïìØüùþþ}—öï(øŒjð[@Àoh¿ üP€0`(”ââÔÔíÛ7mŠˆˆŽŽMLܱ#(hÕª… ½¼öì¹s‡Báprr’’‚‚&OÖÖ9røð±cÝÜø#0™ùùãÆéèL˜°dÉÞ½™™OžTV^¿nh¨«kapèPVVqq[›ÝÓSSsýúÉ“ÑÑ ¢kKJ¨TçË™±XhnhV ÄÅ¡¹¡Y ô™û¶ŽŽ,01±±9pàý{&óó-Ø´iîÜ1cFš2ÅÛ{çÎV®\¸ÐÇg×®¼¼¦&«¿GúöQ¾¶Í²e¶¶AA¥¥tú·É¬¯ÏË;u**jက„„ŒŒÂB ¥oÆNKKn.z”ꃿ"<|Æ {û}ûÞ¾íééé©©ÉËû§_q¿“¥¥‰‰›ÛƒýÙšÇëꪨHKëü/]-ï n=ÿøß”Éd2™Ì’’Ç=ÒÓÓ×3†H$‰Än,€gáÂmÛBC ;VL ‡C.·³³¸8*ÊßÿÉ“ŽgÙ²¹sNŸNIyüØÐPQñÍ›ÊJƒÇÓÐ ‘0"QNnÊ55)©!C/^´ÈÖvôhqq FJJXøøqGG''[[QQA ‹9sfÏ~ýúĉ îÞÕÓÇá>Ϫ­­ `Û¶… wïÍÉIO÷õí]Çåvv&&VWs8¦¦’’ŸïûOÁ`0ßÞÂÝÝÝÝÌ,++/ïî]WWOOOO-­wï¶m³³óò 34=:6ÖÔTBâ{q~NbbVÖ¶m?·/‘¨ `f6{öœ9••ÆIIÙÛŠˆô݇“–¶´LLÌʲ´üùÿn••ޱ1‹Á(+›™ tFéG®A6»©éêÕ;ÓÒž5«?û|éjùþè¿_\€NHˆ‹‹‰9x06vÿ~‡Íf³q8<÷ððòZ½zÉ’åË=<@è†XLfuõ°aîîhé…ÅŠˆèéyx¬Y##ƒÇãñÂå"‚rrvv‘‘ëÖùøÄÄ<{vŸ®®°0ƒ 8ZªÃáú–¾\FúVi‰É¬®>~|ûöÂÂaÃBCϟﻋ™6MFͨWtt``D§¢"&ÖÕUYYQµeËÝ»ÉÉQQiiÍÍööVVšš/_–•=~\Tôⓟ_Xxþ<:X‹É¬­ÍÍ‹ËÊzý€ÅN›¶q£¶vIÉ–-Gõô,Zag—˜˜—§­–¶f‚BMMfæþýµµ$•úèÑÝ»­­cÇ8àêÚŸè{Èd•I“de9œ;+*(”¦¦]»æÌY½zÆŒääãÇW¬<˜H}øpVVIIWWDDttHHï: ¥ `ÏžS§=¢Rïß¿}»®NSséÒ£G7nœ1í…ýûcc=êîf0êëÑ^ð÷Ÿ:•Htt´²Z³fÑ¢ÐP''*õáÃ'OŽ9þÉ“ Ö¯‰ ·³SP¨©IKÛ¶-.®´”LVW—•år©Ôñã—. =ZD„Åúr/[YÉË÷æÏ`¼{W]M£Q(lvRÒþý==+WZZR©qqÛ·geQ©ÊÊêê­­mmââžžóæii‰MMŽŽÁÁèurï^pðΛ7çä ‘Y, ÅÞÞÊÊÛÛÆfÆyóx¼gÏÊË;}úöm--w÷ððåËåä?ر#+kÄo︸;œTT0˜¦¦›7îèÌ×Ϊ••¼üçýzþü¶mOŸ**ŠŠ$RWW]›Ýw›/Ýq;w_¾¿wï¾}WU½Ÿ”tóæÂ…nn“'KKãñÝÝ^^Ë—‡‡«ªêêÊÉ¡÷K``BÂÁƒeegÏ~éjé‹Çc0Þ¼IOß½ûêÕÆFAÁêêÇ+*DEW­ŠŽÞ°aôèO¿|ô ¦àhh¨¯¯¯733662Z±bÕ*oï'O^¼xõêÙ³W¯Þ½C?£Ë·m E·ÿ•àñèôòò˜˜›7û>tÓÔtéÒºuëÖåæ67ÿ3W¹tiåJ—cǪª¾þ€Sp°“Sff}}ïܘ˜;wþ©-€þ`2ëë¯_Ÿ=[CCT”¿xáÂÙ³çϧ§_¹òüùýûW¯æåñïE HKOºc:q¢©éºu¹¹--Ÿ–§þjV¹¹Tª¼<š[ïòÆÆ[·ÐÜЬ޼¡Ó¹\6»±13³¡AJJ\‡ãp0QQ"15µ¡ADdÒ$''qqBYºÔ×788**))--?ÿÄ 3³’’ÎNA#89ÍšÍáÊ•ÐЕ+íì¼½/&“)”††ª*KËœ_ß!C—’3fáÂuë–/wvž5ËÂBJª¤äرèèiqOOMÍ©S‡:äïzó¦½}rò©SîîC‡ÊÉ wwÓé\.×»µ³ó¢EÆÆD"ƒÁ`ôá1<^ZzìØÙ³W® ¿};%eêÔü|Ÿ%KNŸ®­ýô·]<^\¼ªêî݇kkŒÞØ..ööqqjj~~›7ûû{yùø9üµÒó·àñââFFvv¦¦èQÐ¥\nkëÕ«èQÐøǧ¥¡Gáï´7ù{íM´””,,ÐÞDûñéÓ;ÑÞ Û¹3=½´”JPV64œ5ËÏoÔ(aaç[½Ü7IMMY™L–”œ8qéÒի׬Y¸POÏÅÅÁ!>^U500**,líZOϨ¨ùó+*¼½íìBCËÊ8yyþëdûvþÒsïÝ#)),L§··3jj––K—®YxýzjªÍ»wGŽìßÏdNž¼lYNΉ3f¼|³iÓÓ§òsGÇá¾}Vkjú^\.…’ŸÏã-^¼ukx¸¿ÿÊ•žžÞÞë×+)áÿøä×ï¸ÆFii;;w÷ٳѳ·víÒ¥“'KK÷Ä㣢¶mã¿_ÊË{z¾tµ|ŽÃim½yí_´gƒ‚~|󿆆ää­[dúôéÓ=Ú²%*ª¢ÂÄ$2/,<|xÞ¼;;t¹Ÿß¹s·oc0>äæ&%%$<~ÜÓÃ`Ô×c0ææÁÁ+Wš™‰îî³f­];o^`à¼yíí?yræLFÆ“'††kÖìß¿~ý´i’œüôiuµœÜ±cû÷3**cÆ,_îæ6y2+ª«i4&SW—Ãéý³“Ó¨QââX¾¯ýüÚÛ 6LR’Ū­51Y¾|ËMM*õÞ½'vìxýúGÛ>yòÑ£GŽ8;××?¾wïÕ«tº¢¢”Tee{»†F` ¯¯¥¥¼<€ „†nÛ†Ç$&F£½~]Q±jÕŽ110Òð5x<™D ‹%ø Dc65ÄÄäæb±#G¢¦&"‚Õ–þH?(+;;/_¾|ùçYôƒÅ~l!/$4h™ŒÃ±X]]“ý¶ÎN‡HÿØÊ_; ›ÝÕUU…¥oîLß^àïÍÞ^@¹v ƒÁ`úޱGÿþqÉž=ûö­Z{æLHÈÂ…qqqqùù+Wò­^þ> Aåå{¯NPPNŽHd0Š‹étôK˜Ï¯“ï÷Wïß1˜çüÓvþÜÑûsVûöQgçë×JJââS¦|-w4æ÷î¸/µƒ9x02r÷nNZzð`ô~éý‚éûp8iisó={öí«¯Ÿ:uáBkk&SNÎÐpÑ¢;üü¦L‘–îo,þ{þÒ袢‚‚;wòò®]»z^ãóm’’ˆommmmiÁãñxÝÝ÷¯7€ËmoöìÊ•úz ‰ÏgßÂ`H$%¥1cTU••ÇŸ5kÖ,þÿõápãÇ====\. /?}ú²eÎÎ/67>oÞš5K–XY%(ØÒRQÁ¿g±jk326nLJâpœ}}½¼Ö¬™0áéÓýû·n}ò„F“¥RËÊNŸ~ôHZzæL  ÄÄ5kDDîÞ?tèÝ;6[AAAAHHRÒÈháÂÕ«?/=£&N”‘©­MHX±Â×÷С‹Ÿ>•‘#zÿgÀf74<>qâúõ¾¾^^K–øú‡„ìÞýì†ÃIJŽ÷smŸ:UVöÆ##+*ÌÍ}|<Œ®e±ª«ssÇŽ•—_ºô—^AaÞmd´n“‘¨¬rÄÀ@H¨µuûö™Lš´`±q]ÖÖV\|ófEEg§«ë¨Q©©gθ¹mÝàà`cƒÅª¨L™âêºq£—×ô銊üY1™õõùùiiii……—/wu±XÆÆòò<^wwcãõërrŽŽ«Ws899èQ:;9‘—·³KM=sAll,X¹RMM^^JJUuêTOϵk§Oïí…ˆˆÀ@//9¹Ñ£Ñ^X¾|̘æf´ ÒÒ.\>|Á‡††´´¢¢ÖÖ®®úúÌÌ òóee>þc¥¥ :k–½ýÉ“ééžž11‘‘þþ›7«¨hh47·¶ª«ïÝ›™é쬭Ãõî…^'C‡Îžmo?mšªª àç‘ïÜ9>=]]}Þ<;»ææ´4ôJhhÈÎÎÊ*,lj¢PîÝkm¥ÑzÛõóGÿÖYåo5z7ÉÉÙÙ½~íä4}ú”)==**£Fiiih Oœge]¸ŸÞ/uu>>ŸÞq{ölÝŠ $’ŠÊìÙcưXÛ¶¥¦>|¸bÅìÙcÇJI‰‹ïèèêZXhf6nz¿\¸PZºgºzkkïÕÒÓÓÜüðazzVz•—wvr¹ššNsóÅ‹›6…†âñ#GR©<ž‘‘—×®]~~7ÚÚ.Y2fLbâ¡Crr¿÷ëþ<˜k×.^>%%?z¤§§¯?f ‘H$‰ÝXŸßòŠ8´Ülh8nܧo4ð_ñ—^B|  üP€ð[@ðË`0 óí%à¿ Ѐ_FPPPLîî¦Ó»ºx<Ç“”äñx¼Î üýðèH¤NðOÅdög«#ttÆŽÅb±Xù,'ÇåÌãñx\î@·üÝðàßp-7ègSpø-  à·€4àNñ‘!2D†È"Cdˆüû"€_ Ѐ?÷»f–†È"Cdˆ ‘!2D¿Ão)@ïÚ¹m››Ûüùsæ Ÿº™€¿ÏÙ³™™W® t.àŸëìÙððY³Ö¬9|øÁƒ¶66A„Éüðaòd“… ·n=~öü÷ôçªø|›¿çN¿Ã/.@GEmÛ¶uëó祥OŸ&&¦¤œ8~F—tc¿×çEg(C€¯™;×ÏoëÖövEÅ!CDEñxA"QVÖÈ($d÷î \]ÍÌddˆÄÎsà}kÊ™ÿúd48œ´´¥ebbVÖ¶m::BB¿óXÿísÍbutTVvtp8D"‹ÁXYé鉊âp·¸zuçδ´²2íã*¿çœq8 nÛÖÐ`aáçèççåµlY@ÀÖ­‘‘«W++¿|YQÑÑÁáÌœ9w®ƒÃ A**¶¶C†¼ySYÉ`ôæF$ÊÉM™¢¦&%5dÈâÅ‹ÙÚŽ­¡aa!%%,¬¤äèèädkk` !Ç (+[XÌ™3{¶±1ºVOO\œ¿å½YµµlÛ†æ†fµb…§çªUhnhVÝßöýé­ÜÝÝÝÍÌdeEDTT\]====£¢üüää._Þ¼9,ìÞ½¶¶ßù|Òßs§ƒßÿkÃUT”——•:tôèñã@$¢Ÿ=</vsÛ±#"bË–€€ààn8à÷š;×ÎnútþÑÐè’Î üs ª«WV8pìXm­™Ù’%**,ÖË—«W›™iiñ—wöìñõ]»–JUVVW—–f±jjÌÌV­ÚºUKK@€J½}ûÈ‘ÈÈ/¦OߺuÅŠÁƒ‰D6›B)*š>}Μ””;22 DD>ÆãñŒ7oÒÓwï¾zµ±QP°ºúñ㊠QÑU«¢£A8œŽŽŠŠÜÜää JKNK{üxâÄõëãâÂÂlmå天éæÍ¸¸íÛ³²Ð¬Z[ÛÚÄÅ==æÍC³²·Ÿ1ÃÓsÆŒääãÇѬŽݼÙÍíøñ;wH$4«ÏÏ—K§WV¦§ïÝ{øðÓ§‚ŠJwwIIVV]›-'÷µóÈŸmEÅóçãñvv½Ù‰<^w·—×òåá᪪ººrrTê£Gwï<¸wïÕ«QQ^^[·ž>]WwíÚãǹ¹UUÇŽ?ž‘pùò’’MM¹¹û÷ÇÆ>zÔÝÍ`Ô×c±Ó¦mÜèïoe%/ßû“ÙЙ½e ‚X[[ZÞ»¼sgi©¹ù±céésæTV¢p811:]Uuölþqq!!tú ARRTêýû·o¯Z•œœ–¦¨H$"“Y[››—•õúuWWeeEšƒ……rêTVVIIW׸q~~6°XIIóç£->|Ù²;üüž>E[ÔÙik»n]|ü¬YXì·ó9~Û¶À@´I¤®®º:tœþçx¼îîׯ33÷ïÏȨ­%‘Ð3ÜÚ:vlpð+WêèðoÍfS( ;w^½Š¶·¬ŒJÕÐØ¶mýú3Ðö~ïš?|xûö·o64¤ÑžýâʼnyyMMóæ…‡ïÜéåed$&Ö÷¨l6•¸?z§ÛØÈËý¹›À?Á/(@oÙ²iSppUÕ»woß&'Ÿ8‘šÊ¿-C£ËY,‹ÉD· ˆøM ÓKK·o··÷ð ¼zµ°ÿFðóÛ´©¨hÓ¦-[Æ'ÊÊöî½{WZzÕ*só?Àsr¼½#"°ØM›öì™<¹±ÑßÿñãAƒvíš0ABÆf74ddÆÅÉÊnÜèç‡ yytº¡¡££‚Ïf75]»†ÁÈÊNúùw`üw|^b†¢3ø<>5ÕÎîâÅùóçÌ©­0ÁÈhêÔ;‚‚z×s8ÍÍ99ªªQQrr½¿q™™™›oÚ““>qâüùs攕µ¶~Œ*)ilL$2 } >hÌÖÖ›7ÃÂvîLOŸ;7..=}Á‚åË "‘0 fñbÁb……55--ÝÝ--mm]]ííããmm]\JJ¦LII‰ŠrpˆwvNOOME³êî./ µ¶¶³ E³îî¦Ó¹Ü£-26>sæÚµ¢¢Ï³B¹¹YZÛÚž9“š® €Ç3™ïßc±ee..wï~í,òg‹.±´46vsC³54Æã£¢¶m#‘Øìææ’’sç*+ËË™LyyGÇSR† ¡Ñìì"QLlĈQ£p81±ÐÐs礥ÛÚ23çÎ5+&fÈÙ³”•¹ÜÖÖ´´ÐЕ+ ÒÑ9sÆÍMY™@@"Q^ÞÎÎÛ{ñâýû››uu·oÏÉéÍÇÑÑÈhùr4‚Š ‡ƒ W®|Œàê*$”Ÿ¯¦æç·y³••´4‹ ^^>>è¾lvccf¦“Ó¬Y11“'/Xàà *ª @$¢9çåmØsàÀ–-ƒ1<ž§çÇyy½z%(8bÄôé½-ÚµkâDIÉÙ³Œ,,¾ž™\PÀã-^¼u+Ú h&YY§O÷ÆÿJ–’3fáÂu묬ðxô ¯\ +W¦¤ðoëâboçæ–ž~ò$Ú^tV{´èÙ¿kÞÙyîÜgÏZZtu½¼,-çÌA·±·7ÎÑQFæüù3g\]}}·l™?ÿÆ 6ÛÓSTTSSS“FKN¶³›>¿,‡ÑÅÅÁáØ±¯]Õyysæ\¼˜žþâ…‰ÉÒ¥«W÷–žQD¢‚‚²2™,)‰®õôTU%¤³óáCùxO$'ÛÚ2™ïÞõÞSl¶‘‘£#Ú¿ß»Æ-u_¿>{¶†Æ²eüõŸ Ξ=¾w ¡¶vð` ‹Þ"& -=uêŽ8œ½ýĉ¦¦C‡nÛ–‘±cǯúI†f•›K¥ÊËihˆŠö.ol¼uëâÅ[·š›Y,A\œÍž>ÝÌlðàÎÎìì†))qqô D¯êÔÔ†77'§ÄÄcÇ–.õõ îöî]||IIg'‚èëÓéß»/ÎËÉÙ¼¹ªJDÄÒ2'Ç×—HD˾_¿V]]½¼ú×âžžššS§B¿˜hn¶·ON>ujöì¡CÉä[·úóÓƒÁ㥥ǎ={åʹs‰ÄåËÝÜΟŸ=ÛÁaÉiéóçOŸþô¯ªº{÷áCôNïÏÝþ9þR:44((  ººªêý{t¤ó··G‹ÑïÞ½}ûú5ºoXضmõ†RWŸ3ÇÂBP°½ËEqñÞ‚lö!..£G‹‰±Ù>œ;·uë… ŽŽ§Oûúòï/+kaàêÚÜ,,ŒÅ ‰Š¾xqüxaa{»±±¹9­µõþýüü!C\\"#É䎎“'{zÄÀà'/%ej /A€¥¤4sæâÅ 11¢¢ŽŽë×ó¯åpèôúzyy ‰¾ƒ}ˆD£®ŽNÿÚˆÔoÁᤥÍÍ÷ìÙ·¯¾~êÔ… ­­™L99CÃE‹BBÐßO1,–¿xÁàpüå  Aåå{³ÂáåäˆD£¸øç²Bµ¶r8BBJJBBx¾ßÖ¿WHé›-ºGßü1˜ƒ##wïÆá¤¥9rÈ5µÞ‚Éêêóæûþ=N£ñx¹¹ÝÝvvK–HHp¹mmMM §¨hg·lÙªU¦¦âââãðõ|ì'Ó}~aõjoïU«ÐµLfUUU•¸øÇßæùq¹ Foü{õæÐ[âä×Û"<ÞÏïÒ¥7ors……Ñ¡Gø~>¯_+)‰‹O™Ò¿~CÏwSSAALLn.‹ža®´ôó­;;9"Q\üãyâï¯þ_óŸŽÚE2‡c³ét­PHHÔÔœ?ÿôi{»©©ŒLzze¥®îÇ/xøøí«ºçá[gèk÷ÿöçÃãÉäAƒ^½êìd±&Lï-L[[›˜H..ŽŽû÷ëèÄÇŸ=‹ òêÿ¾£F­Zµk—§ç½{ lÞ˜™9lØ—óåp>ÿ’ˆÇc³¹Ü/ßhVd2—ÛÙÉŸ‘(+kjjmmbréRddCƒÁ¬YBBX,‡ÓÜÜÔÄßÞO¯‘O¯‹ç ýÔ¿ûƒÁbûÞ?v­~€€²²³óòåË—ò?_òóW/$4h™ŒÃ±X]]½×ð÷|ûnÿ_º¸øÁƒû÷ÃÂ6nܰÁÆfÚ43³Ù³mlfÌX¼ØÅeÞ¼Õ«=<–-{ûö͛ׯŽ9v -.}?upðúõëÖ:uüxJ º=ºïÂ…NN³g£1ÑøÖÖ“'£ÇEsø~#H$•Ù³­­‹‹ù'tg±êëgÎ:TPËmoúôÒ¥úzIÉÏG(c0$Ò AcÇ*+ a0B"‘ÉGŽðG+,¼sGOF ÈȘšÆÅ-YâíŸ]RÒÜÌå À? -r‘Hx<‘()I"õ-Aâp‚‚ ÝÝ}çNe±H$EEAÁeÚÏ‹üãïøq8]]uummZZ®®÷††ÕÔ?ºkWr&“¤»›?+§»»±ñӬБx¡¬o•UH$.·³óõ뎎/óâñ¾½Ï÷p8­­yyòò®®ÞÞ«W/[6kÖĉC‡ ÷mѰasæäæVT<{vñ"gi©¡!*ŠÁàpBBJJd2—K¥–—··÷¾ ŒËe2)”îîþ–Ú¿‹‘yõŠ¿Õh/s¹ŸCßþe2)”¯qذ9sÆŒáñŠ‹ù[ÔŸ|p8IV¶o/ =ñ­3ìë»ví™3ügøkOH“HNGGßör8Lfo{þšïîÆbÅÄÔÔDDz·rt””¬ªJM-**,ðç¹|ùÞ½÷ï§LÑÓ“‘è\À§²²Ž‹‹»r¥  ¼¼µ‡²µ51ÑÕE "X,™¬¡qñâ¦M~~W¯¾xñîÝóçwî\¸àá±{wx¸Ž™ŒÁ ‘()¹aƒ¥¥¥å… Åů^½{÷þ}uuMMIIQ•*"¢¬æ`gçé¹wïÝ»÷î¡90wï;–•uëVyyw·¼¼‘‘žžœ:%Èøñ#F«¨ØØ¸º¢-B};NXxøð´´+¬¬Ð^xòäùó—/?|¨¨xúí#z¯(,V@@RRJª¾>77**?¿÷ S(߸¡¦6gÎ’%òò½gÊÞ~êT)##00 moCƒˆˆ¡¡ººˆПkžÉüð! ÀÇgß¾ÚÚúú÷ïKK .^trÚ¹s÷î‰?¾5ÊÔ”@8rdÍš fÍJHX¿^CƒLîû5z—ÙÛÏœ)-^Õ?{vûö©SÅÅššèU]V–žž}ëVY•J$Šˆ8:ëèð×?°Ø§O‹‰9zôÁƒæf<2ôBñ€IDAT^V–Í.-ÍÈÈξ}»¬ ½§lm‡ knNKKMÍÊBï)GGoïððùógÌøþ5†ÂáÄÄ&M¢PΞŒÜ¾ýèÑ«WKJ****Š‹<èê’—72²´4770(.NI ËÊ*(¨¬¬®ær…„ì쌵µq811--{ûÅ‹gÍ ‹Ï͵·wsspPR@Y³••ïÝÛ½;:úôéû÷ß¼yúôêÕS§Î{óÆØxëÖ˜˜U«¤¥‰ÄO+?8œ˜ØèÑóç/X0i…rþ|xøñã·n½xQ^þüùƒ·oL˜0uê A‚‚X,zgee­\ik‹^èU=s¦……ŽÎÍ›çÎ;†žíÁƒ]]•”h´;wÒÒΜÉξs§ºZ\\W×À`Ú4ô¼}~_tv9’}ëVyy[ÐÛ_ß¾Vß¾åpzz=º¿¢ý¹äà`d¤©Éßγg“’öïÏË+.þð¡»›D:ÕÀ`øpþm¾÷ÓODDYYPÇëèøðáÆ+W=zÿþÝ»¬¬›7ÙìU«bcCCMMÉd %&&>þȑޟêêRR§O'%=ŠÞéff::rróæMŸþõ»éß7Mn~þÓ§ÍÍÆÆ£FÉËt.߇V“º»ét síÚÅ‹§N©«XZþ\¸´´³gOŸ>v,99113óÊ•7¾¶eggGGGÇÕ«¹¹—.Íš5wî÷ Á?ÊÉÉØxÆŒéÓ“’ÂÃi´3gèt/¯°°‰„É|û6!ÁÑqÁ‚¥KsrŠŠú^‚,VmíµkW®ðx“&Íœ©¬ŒÁÔÖ>ìê:wî¹sh4‡áà ÐÇØì––¢"<^ZÚØÝŸÃijÊÊ:y’Á°´\¸PE¦8ÿ.bbx|ßoeÿÅÅ÷îååYXXYÍŸ_UõömYÙàÁC†hi ôùÀŸgõê={òó·lqs9r s€¿®³óáÃZ[uu{g[þšööû÷½¼6l R7oމ™>]ZúßW”à¿"$$%¥¼|Ý:=½ÎåûÐj…ÒÒÒØˆýëáÐR²«ëâÅîî­­--ÍÍŸoƒ._°`·ßQzFÙÛËË77Ÿ>×Ñacó±3ˆÄÁƒçÌY³ÆÈèΦ¦¾Q46^»¶k×Ù³ïÞõ>zA ÈÉMÊr}¯«ëùst¾i—ÛÓÓÒ¢§')Ù;÷ÀïÑŸIY˜ÌÆÆšš/nÝ’˜7oìØ/MJ ‡_0š_^ÞµkW¯¢/vìÔ)(=ð_Ã_tÿeß)@74ÔÕÕÖFDlÜø£¡GŽÔÖÖÑùѽªªÞ¾}ý=î@ŸÀù|ì3ºä¯}ær9g Û~%&³¾>/ÏÐPW×Â" !!#£°BéûΧ¥%7·´”Nèlðs¾S€–—WR4(8xëÖÈÈ¿'¡Áƒ‡ 6 =î@ŸÀÏøSmôôôôôô`0 ó;r†È"Cdˆ ‘!2D?"QAÁÌLJJXXIiÖ,gg{{“O_íŽÃIK[Zêè t¶ø9x@ : À?‡Ãåòx8û#¿æýÚ2tccCCM ÇãõçmÏ?"Cdˆ ‘!2D†Èüó°ÙTêýû§O>ÜÔdaáímc#/ß[žŽ‹ ¡Ó ’’¢Rïß¿}{Õªää´4EE"A˜ÌÚÚÜܸ¸¬¬×¯»º*++*°ØiÓ6nœ0¡º:****-­¹yÑ¢ÐP'§û÷MN.*zñƒ™0aýú˜˜;lm%$Þ¼IOß½;.®´”L¨­-/]µ*::0pôh‘]»#"p8114~@ÀÞ½±±ð»5€B«IX,‹ÃᇠQW×Òâr:)À?UGG{{k«„„„„´ôßy\2YXXT´£ƒJmiÑÕÕ×71innl¬©a0º»ét‹Éìéès~<^\ÜÈÈÎÎÔôÀÖÖÞ¯¸ÜÖÖ«WÕÔüü6o¶²’–ÆbÄËËÇ]Ëf76ff:9Íš3yò‚¢¢ DbZZhèÊ•ÁÁyy6$&;ÖР¤da•”deÅd¾{okëâÈᘘ̟¶sgzz}ýøñK—¦§}ëÖÐÐ]»,,Ž75-/oog2MMÅÅ{'Ýèîf³DPèsàßBiiilè,¾ ‹Åb±X<ž@ „„DDz¿¨ýßÿÑ™ a>hÀ?úr!))iiyyôÏÎÀ×ë×/_––²XLfw·°°˜ØàÁjjšš诬¬—/õK’Á_ÇdÖ×çç·¶¶·¿y»{wl¬±±¼¼€À³gÇ76.\xðàêÕNNNq1›- ÐÙéê:j”ˆˆ¼¼Ýë×ÎÎ6666X¬ŠŠšš¼¼”Tttttx8'#ceuâÄÙ³l¶µµ³³§§ššœœ””–ÖܹëÖijVVfeÕÖvuµ¶¤¥]¸àî¾`œ\ZZZZQQkkWW}}s3ƒÑÜ|ñbXXhè‹bbººÊÊ<ž‘‘—×®]~~::ƒ‹‰¥§;;[[[[#ˆŠ ß¾={¶nè3 àßORRZZNn ³ø1˜¶¶ÖÖ††N€®ººÚÚ·o :”Çë}¡Ê@gú/$$%¥¼|Ë7·‘#:€Ÿñçþ{þÙ Àw ¥g<Çãq8<‡èŒø3@€ï R)”¦&6›Íf³Ñ¹í:#þ ð‚¾CBBRRFA„ÇãpØlk 3àÏð¿´€‰D&‰X, À?‰˜˜„:0⟊Ëår9œ®®ŽŽ¶6ÇãñðD"‘((H D"úB‡Ëe³:Uÿe,X0cFxø‰……ÙÙÏ÷q8--¹¹K–ܾ˜˜•µm‚ ×ÕUQ‘ž.,<|ø¬Y[÷ðኮ®§§ª*‘øýè?ͪ¼\HÈÒRGGHh ÏÒŸˆÉ¬¯ÏË›0ÁÒrÛ¶)S¼¼||æÏŸ3ÇÊ*;{þüY³DEãâΜñð  ñxee3³_?¨Ç»s§¹™Í65•‘!ú|‡Ãfÿ •[2YXX\œÉìéa0ð8€Çs¹<—;Љ( ƒùûÚÝÍfóx‚‚xü‡“–¶´LLÌʲ´ì]Æf75]½ºsgZš£ãáà Ç?ýçã Yéèüýçò¯àp ÁáH¤ÎA„HTP03“’NI™5ËÉÉÆFOODAvíêèàpŒ±X F@@YÙÌì÷ŸÍnj*+£Ñ$$LMÿÙã¿ßŸUÅE+Ïxáñ„Çû“Rðçãñº»½¼–/WUÕÕ•“£R=º{7009ùôiaá/ïÃd65ݼqâÄ‹ÒÒ,VMÍË—]]::±±!!ӧߺ•œ•–ÖÜlooe¥©ùòeYÙãÇEE/^`0ùù……çωÂdVWgfFG_¸PS#(X_ÿèѳgââââNN›6EG›šJJâpÂáttLš¤«kn."âævø°•Õ¶mff&´·oÝš}ø°©)7w®±±™Yu5‘(+«££¯?n\RRTÔ²e™™ññ{÷îÛ÷øqUÕû÷II7o.\èæ6y²´4‚ HGGEEnnrò… ¥¥ÏŸ?~ŒÇÛÙÅÅ……ÙÚÊË÷Žff2ëë6Ž•‰ôäÉéÓ‡75YXx{ÛØÈËÂã1k׆…%$¨«ËÊr¹ÕÕWTlÛ–””Ð[Òf±([Û3¼¼ýüh´'Ož>=y2?¿©iöìÐÐ;V¯;¶§gÎGÇààE‹""ììîÝ Þ¹sóæœœ‚ ¦©éæÍ¸¸íÛ³²ðxyy í)OÏ€€yó´´„…Ùl´vì¸u ƒik«¬D{ɤR»»[Zš›Y¬¾‘³³¯]«©ÉÌÜ¿ïÞ‹ÛÛÅÅÙì·o[[ÇŽ ŽŠZºTIiÁkkoo› æÍãñž=+/?vìôéÛ·µ´ÜÝÃ×/—“{ü8 `ÇŽ¬¬#¼½ãâvîtrRQøÑ«—Áx÷®ºšF£PØì¤¤ýû{z44,,Ö¬Y¸PO={èըܬ­mnN¥>|øä z5b±66±±áávv h/ïÙãë»v-•ª¬¬®Ž^Õff«Vmݪ¥E$66¢½ëVK‹Œ ®ªj`ÐÛûß ý­^f±jkss÷ï}ô¨»›Á¨¯Çb§MÛ¸ÑßßÊJ^A>®ÅáTTÄÄètUÕٳѵý¯ø}x<.·UÜ7o^¾,-íêêê¢Ri´®®Ž99yy iiYYII))9¹þ·µµ¹¹¾žJ¥PZZª«ÉdaaQQaaaaqñ¡C55¿þU'žÃápØìÌÌ„ÿ;wí:¾®‹ÕÔ|ÿ¾¢"7÷ÓÍ»»Ÿ?ß²eÆ ‡'Øì3g<¸uK__\æŒð£ðø¨¨„„mÛH$6»¹¹¤äܹÊÊòr A ?Ý–ÃinÎÉqqqp8vìܹ³gÑåÝÝåå¡¡eelöüù“&¹¸89%&;¶t©¯op0º “ùî]||IIg'‚èëwuegûøìØñäÉ… EEçÎÑéÏŸoÞwîܹòòµk—.<¹72ƒ šš––îî––¶¶èRKKcc7·’’)SRR ED}ûWâÙÙ™š8ÐÚÊãõžÉÖÖ›7KK©T3³™3­¬,X¾|Р¾£© IIQQ:½££«KSÓÎÎËËÒrΜ+ÜÜΛ=ÛÑÑÝ]Fæüù3gÈd ¥¡¡ªJDÄÒrûöœ[[´§œœŽsvNOOMup“ÃáО²¶¶³ ½zõÄ ==´\]ÓÓSS--[Z¶nE{aß¾ìì={vì°°°¶æŒ <‹%%5fÌÂ…QQ¶¶ ©©«V­\]^îêš’",L§··3jj––«V™™ÙÚ.\hg'&fkëâ²?“™››’’“££ÃbÙÚ.X°iÓÓ§ÖÖÏvÿ‘HjjÊÊd²¤¤‰ÉÒ¥«W÷…@”D¯ÆØØ–]]/¯ ¬¬úöŽ™YJʘ1 FNŽªj``Tz–ÐmÌÌÌÍ7mЉÉÉ G{ÿÇÖÖþOØòõ^æp33œfÍŠ‰2dölee.·µ5--4tåÊAƒttΜÉÌœ=;:]«¢Âá È•+׺¹)+Ã4 ´–ûùr6›Íf±JKŸ<)*RPPRRU6lÄ]ÝÏ·Dçe®©yÿ¾²RXXTTRRDDDDTƒùôÙ#4fKKSÓ‡JJ**ÆIKËÉ))}¹ºúÝ»—/ëëkj†ÕÔÔÕC×âѪ¹­í¼yŽŽ§N%&Þº5hS[K¥²Ù\®˜û±y­­ÉÉ•• ¢¢""<ÞèÑ¢¢Lÿëî_G0t:' $ô3Møý0 æàÁÈÈÝ»q8iéÁƒGŽ2DMMTôË[s8tz}=† ‚‚üËq8AA99:ÿ×ñϧïÀ`zK{x¼œÜÔ©ÁÁóæ]¾¼kWlìž=mmeeíí3gnÜØ[°æ§¨8mš©)™|þ|vö«Wíí£G>b„®.·aÃ¥KµµííS¦˜šÊÉR_ßÿöc±Ÿgù3¿ÁþhNZÚÜ|̘–›… ãâ˜L99CÃ'Oòó““û–1 ‡û '“••ÉdŽÍ¦Ó9A0,–@à¯|ì)yyAÁÞ3ö‘È`ãñrrþþh/lØàëòø±¸xw7Ú Ã‡£sU¹·eMMž8QS££ch¨¦&"‚Õ–òoÕ÷œ Ç`>ž™¾­ú>?ï çJ^^B¢ïÀ>"‘Á¨«ë{Uÿèq¿ÜË=:nƒÃ)*ÚÙ-[¶j•©©¸8‚øøôî{æÌ§kW¯öö^µêï8_€ïùZ%öÍ›ÊÊÒRyyEÅÁƒ•””•‡E·¼yóæÍ¼¼Ï·Ÿ^]]NŽÇ«®~ô¨¼<2òðáØØ×¯/\سgÏžœô±š7oZ[ CBvíZ¹rÔ( %++<|ûöü| FSsèPAÁ—/_¿®ªb2i4qq7·¨¨ÐÐ{÷"##"ðx114« bb$y<ÍêÊ•ÆF!!ô¸hVÁÁúú?úÝ'€Áá´¶æåÉË»ºz{ÏŸ?hÀd¾ð`IÉ—·ÇáÈdéîî§»»±QPGéOÁŽËe2[[èt_ßíÛ}}ù œŸ#‘”•­­ÇŒ!üü23Ÿ?//753ÆÁA]Áˆˆ¸r¥¼<.nÅŠñ㤧g ÏjÿÎ|WW]]d䉗/oÙB¡”•efîܹvmEŽ Ÿ¿¨¿ÔÀfÓé>twc±bbjj""xü;ŸÆçï©ÆÆînADEq8´§X,IQ‘¿FòððóÛºuÒ$IÉïeÞÚš—çë»ví™3Ó§Ÿ<™š:q"›œ¼k×@ŸÓŸ…ž+þ³„.GÏÒ\ÕŸŸ«/÷re%‚ÌšE&s¹Tjyy{;“ij*.N$r¹L&…ÒÓƒÅJJ~{moV€ñµ9 ™L£»[AaÄUU.—Ãáp¾‡Ãápzz JmkknÆã yy‡ÃáÚÚZ[››Ñ˜è–·oß¹sëºïĉ¦¦“&¡ŸÑåè´ðýìÙãÇwî°Xl6‹…FÃ÷¾9‘ÍF¿¹DiééÓãã7nœ<ÙÅ…@ÈÎ>vÌÉIQ‘ÇËÌ?~ëVOOAÁcÇ22x<Ý—ÍnlÌȘ;×Î.&fòä DDäå‰Ä´´—/3fùòÐÐÈÈóçëëÇ_¶,=ýÀH$ ƒa±ssŸ=kk#§L±¶¶²rqYºÔÛ›Ëe³9 ‰Ñ£]]wîœ9}¬fåÊ•+cb"#KK]\ŽÛ¾}Û¶ÇÑGuååñx33só öíËÎ 1¢³óÂ… $$DEUTX,Íêĉwﺻ,¼~Íjîܸ¸ Ðã¢Yý)o“€?'.>vl|¼££«ka¡™Ù¸qÚÚÊÊDâ… ÏžEGO›6t(…RWG£Q(åå\îÈ‘²²3gž<™žN&oÞ¼gÏÁƒèl¹/^ttŒÒÜœ—wölVVmmWWkk~~c#“ib‚ EEiiiiEEÏŸËÈhh¨©9:B¡ôôtvjjjhŒ‰Á`±D¢¸¸²²žÞ;×®=ÚwF`2YKkýúÀ@yù36mºv-2òÖ­)S CC==‰D;»Í›UU=|¸`]lìêÕ™™))§OϘ¡¯ÿøñÔ©Gfg{{wuÑh¢¢ÆÆ’’µµ vv..EE—/¦¤0™UU‰‰ööóçß¹séRQѱcŸž«µõÞ½'¢¢bcÏœÉÉ©«SRZ´($dÇŸ)SÄÄ6mZ°ÀÆæêÕÇëê>>ø“ÐÕõèÑ… G^½Š>VÃåîÜRZºuknnJ {øðÒ¥6Ü»'+kiib"#ƒÁhi¹ºz{O™"-ÍãUU%&Þ¿/&¶lúÀÈײš:uÉ’Ý»Ñã¢YùùM™‚¾Êðç II)/ß²ÅÍmäÈÎ <F++Û½{ùò•+SRΞÅb»ºjk<8y20PDdÑ¢ÔT==2y óü'X°ÀÄÄÆÆÄääÉ´´þÏ>Üü½Àd®X»ví¨QL&Ú kצ¦ÊË?|XP°gÏ@Ÿƒ.:ýùóððŋϜ™6íС°0##þiTÿ>ßþ÷ Çáp¹X,×û,Ž{rï^AAj*º¶¬¬ºº÷±ô¬‰‡æo,ÿ£:¾¾^^¾¾k×N™ÒûX4+ôþ¬º»ÙìÞGQЬø‹f5З€ß…ͦRKKoß~û‡Äãq8qq•Ñ£Ç2DD^¯öwàï…áÃ55eeù{A\\RRMm sü§{ü¸ `ذM›ÆŽ…Ò3€N§Ó;;¹\.—ÃAÿ44403æk¢ÛÐhtzG‡€‰D&ãñx|oõ—D$“?ùyQ]¿ “?Úÿþ“‘qäHbâë×ÍÍoÞÄÅ%$¤¦¦¤øûŸ9sêTG‡»{r²¡áöíÝÝoÞ\»–‘‘‘>0òáCII{;‡£§'#Óûø†µµ³³§§ššœœ”Tïã#F47_¼¸iShè‹bbººÊÊ<ž‘‘—×®]~~#G‰••_z$DIé[ÕlÙ’’²h‡Óû¨Ž¦&‡ƒ ƒZ[{{oÝhkkeUWçìlm>0‚fµoßž=[·¢¢ Yáñ#G¢ÇE³è ÀïB ()99efÞ½ëäôq)#,ª³f±±¬lqqB‚è£:‰‰W®ìÙM` üé¾ýïtg<'deåä””ú³¶¶¶öí[%%uuI@ ï;Ð˜ŠŠJJªªý‰ÖØØÐP[‹Î=t¨ºº¶6ºü~DƒÿQô±)þGuà±)À‚ AC†P©TjKKccCCM ÿ´ür8›ÝÐP__]-''/¯¢òyé™?& Ýëk1Ñhíííí “?¾¿øçÉ̼{÷ìYþ%ð¨࿆D"‘H$mm]Ýqãzzzzzzêëkkß¾íîîîîêêééîîî—’’•%“Éd1199%%5µ¯•žùcÊÊ*( ÜÑÑÑÑÖF£ut´µQ©Js³€€      ˆZª?ùžÀ?ÙÿF@wvvtP© >TUÑé4Zg'‹Åb1™ü òòÀ_U\|ï^^Þ¯Š&&&..%%/¯¨¨¢"""**!ñ;rþ_ºªêÝ»Š YY99%% ‡ÃÂøhÀ¿ÀË—MMÀ_¥®>|ø¨Q¿*Zw7N£½}ûêUy¹¸¸¤¤´ôàÁjjšš¿6gü«WOŸ*+kiMœØwUGGa¡““™Ù޾¾yyYYòìÙÕ«'Nìܺ{wE…——··¶v|ü¾}ÅÅë×ïÜëáae… <^gçãÇaaææ,ÖÚµôî{üøŽwï’HsæXZÚÛ[[KI½Gd±oÞŒ‹Û¶íõk2YS³§§¡¡²²¦FTtæÌÈH þ¬NŸ..ÎÊúr³zzêë¯_‹KH(.F%%))!!«¶öþ}+«  #GTU8 ¥  :zíÚ'jkÅÄ„…-,–,IKóô´³ÓÔ\¿~ß¾ÐP—1cœuu'L@—„…-Zdf¶q£¥%‹¥¦6|8º¯ƒƒ¾>ë®®¾fÍö퉉^^ööÂb}ø‘áã3wîë×#FØØ¼{wüxBBY™ÁúõK–P©ÄÇww[X,[¶r¥»û‰+WΙ££³yó±cóçãñéé))íí“'£™|ø“³{wbb{û¤Iaaóæ©ª^¾¼v­‹ËæÍ/¾}K$JJ>mÚÚµÉɱ±K—ò_.ÎòåÓ¦™›ww«ªê訨ÈÊÊË»¸ŒÍ`¬Z˜žŽñÙ³ÐÐ Ðü=<,˜9sÌqq ¦½ýþý½{ýý7mÊΖ‘14œ:u̘ŋ׮upPSëé1662ru56¶±™2E[[YY@àÞ½ž…ùóEEŸ< MO¿|¹¬ìòå³g-²±AÛ›—wð ©éŠóæ]¿îïñbllT”µµ—úYK‹FËÈ(+#“ííG"“í…þk  €aaEÅ_KPPXATUeeÕÕ‰D6»³ówdŒ¹yóêÕóçUUuuÍÌú®BK½&¬Y3rd@Àöí!!..¿÷~—K£UVÞ¾™™’YZšŸÿìÙ× Ðÿtúóç{ö¸º®]ëí}êÔ©Såå§N­X±xñÞ½ÂÂ=}š’2Ð0ðví:y²¤dË7·‘#:àÏÃãñxrõêÓ§ÝÝ--\.ÞÓÃã t^!! ÆÈhØ0"qØ0…Crû+$$%¥¼|Ý:=½ß‘¡°0ÛÓƒÃa±̯Œÿú\Ï¢¢&&§O?{öðáïhÒÂbÉd É“#"&Ovvè|þ Øl*õÙ³üüׯ1__iiuõqã´´$%EE¹ÜÎüÙ ‹Ç»yóùóžžÛ·‹Š?®©©¯§R©ÔÎNc ³û“HHˆŠ 2™4šžÞÛ·MM“&I" ¿ºàûs~®ô¬®®¡1rä«W••åå_Û?ÐM?WTtvÎÊzú´· /(8bÄ–-׮ݹ3й€?׫W>°Ùwî<{ÖØøèQIÉ‹GFDÌ™Ãf³X,—Ëår8㟋Åáp8.—ÇÃãÝÝ7m:{¶®®¡AGgñâéÓ:»ƒ?_òµ24¼fÐÇ»wÍÍ,Ö«WoÞ¼¿bÅœ9FFLfOOw7—Ëå²Ù‚ èðgÿþär96ƒáñzz-²³ÓÓ{ûöíÛ÷ﺟÿ*þ¢óç…i ár;;ËÊRSíí§Oÿþ,z£ðïÓÜÜÑÁåÖÕ54´·ki©«ËËóÀ_Æår¹\îÈ‘C†HKWU}øÐÖ6Ðýüó¾=í¿o Ñ—ØÚÞ¿ßÑÑ»”Ūª:pÀÒRW×ÖAÚÛ œœôõÇß²ÅÙYW·­ð=•zófA•Úw_þhÂåöô ‚0••ÑÑÓ§}\ÛÞþàAP±qï¬2³úNG~ÆbedÌÍ#"¢¢ÂÃóòZZz‹Ð O `±_ÞA„Çc2)¡ÑÊËΣÓ--/3æÿÓʉéê.^lcSQÑÕõ½Ìx<&³­Jí쬭ÍË»wïÃ<^AÁÒrýúq㤤°Xár×­[¶,((.îàÁÝ»·lY¶låÊÏ Ó™™!!'jk«©ž™ÙÐpøðòåFFöö›7Ÿ8QPpêÔ¦MgÎÔÔP(ÏŸŸ8±nÍøñÓ§8áã³hѤI£G;:_¿Ž <þòeRÒªUË–mص`««³óòå>>'NÔÕ±Xß…ÀϨQÃUUµµ ïÞÑhBBÖÖ‹‡…uvvuÑéßgÜÓS[{ýz\\TÔ¾}ÄÆîݽy³¿ÿ† —Û»]Oχ7nèëkiMžì”›ûî]w7“9}ºŽÎ¨Qff+Vlß~ðàéÓׯÿŽv tþ}~Ùx¼””¹yqñ† 6ô¡?-7£²³““ccŠß¿ß¾àà•+Ùl*õùó—/{z$$ôõ¥¥‰Dþí‰Dié±c_¼hoÿÞ´8œ¬ìŒaažžÃ‡z{“•UQÑÓƒ  ‚0/_Šˆ¬^½qãªUk×úù­^-&öêÕ§ïì´µ]·nûö)S$%AÔÕÅÄtt¤¥Í̓‚|}]\&L°¶ž>Fãñ„…µµmlÈd*µºzùòàà}û’’Nžôöf023·oçr[ZnÜ ‰ýÚÞÞ×wÝ:­¬¬£ÃÁaóæ%KTTú¶€²¿wÞäººÆÆ¦&'§5köí333774=ÚÔtòdwwÿ}û¾¼›ÝÚzãFPÐâÅb0~~«W¯X±j•ÏÚµ!!›7»¸lØpãFk+‡ƒ <‘¨ 0eŠ´´ˆˆ¢¢£ãœ9Ó¦©ªC‡úøœ8‘™°bżyff¿«ÿ ±Ý·ZÃݼyãÆ¢E·oÛØŒ½|ù… õõŸïccãîîåµ|ùÊ•«W¯Yuæ /.®­­©I"Q©Ož´´0™üÛ3™--ÅÅ#Fˆ‰}oÚ .·»»¥EPpÑ¢Ó§ï߯ªª­uqŠŽ¶°=zþüû÷«ª=š2eÐ AAt{AÁAƒÌÍKJ(”¾¥m FLÌÄ$229y„ü|/¯øø¢"gçà`CC11 æKcÀ‰DiiAÕÔÅá˜L,VJjâD?¿¹s…„ÂÂvì4hñâðð‰ÑñØü~íøßÇSSsr&N\¸0*ÊÑqÍšBC£¢ŽA×Nš4wn``TÔÉ“wîÌš5w®µõõëW®ÜºuãÆ¥KW®„„øøÌûyL6»¡!;ÛÝ}ãÆwïV­Š‹[º´ïˆcAÁ#Þ½Û¸qÙ²Ì̆6»w9Çf75]½qù2»d‰–™ŒÁüŽ‘ÏþèÎϰÙÿÄÌ}ýD”ÿñxl6—Ëãq¹,—‹N™1~üúõ{÷Z[¿~½m[HÈ×÷ý_X"AÈä‘#W¬˜=[Pðòå””'Oz×r¹OŸ=š­©),ü½Ì8œÖÖ[·öí;z´¼œNG/+EE --II99}ý[·jk{gWéËÏ×Õ•”üRi›LÖÐX´ÈÄ„É<}zÚ4552ùGÏ—ÛÑQZš™yó&fg·fÍÚµ11ÞÞ£G £ågãýûÞâ7ƒñþ}NÎÉ“·nñþ´4À@øµå×Ó§/]zøPGG[{ð`5555yù^¾¬­ Ú¾ýСaô´†Àã››¯]ËͽqãØ±¨(#ÔÕþRšNohèîFIZš@Àb?ßF@Aº»ëëét§·ÌdÖÖž;·wï¹s·n=}úáÃï,;ÿ ÐÝÝÝÝ]]µµïßWTTV–—wuµ·S©_k× 9œŽŽgÏ®_¿x±°B¡Ñ>|8v,%åèÑêê¶¶÷ïOŸ>}úÒ%A_égh=~oѸwßœœ‚‚‹ÏËÈ(*jm埙DÒÐðñ9yrÃiéÔÔ¤¤ÄÄøø¸¸ˆˆôtYÙ°°ÞQËß‚ÃIHèêêèTVFDmÙ²gÏ®] ,–›[lìš5C‡Š‹N¥îÛ{ðàîÝQQ{÷¶¶jhàñTê“'¹¹—.56Òh­­èl!! ùó'OÆ`FËÏ\ngç‹׮忖”ܹSZz÷îå˽{Õ×ÓhÊ£G—/_¾Œ.inÆ`ää† SR¢Rwíš4IAACcäÈ ¼¼’’^¾¤ÑÚÛKJjk{zÐóSRræLbâ¹süŸÑµü›Œ§££ªúäÉãÇ¥¥t:ÞÓ£®>b„–Öƒååeeââòò,‹Åå²ÙÝÝtú¡C+VèêŽ9lØ×bâp‚‚òò‚‚Â`45õô|iLnO‚ [}œŸ€HTUusÛ¾}Þ<,öÜ9_ß¾³3€Oµ´44ÔÔàñ‘8h²òСMM55X,‹ÎÑæÚµ‹ORW70°´èäÿmØìNrtœ1#%eåÊ7._ž4©¹yóf[Ûå˹ܘ˜k×¶n>œDè<øwÛµëäÉ’’-[ÜÜFŽè\€?Cbâõë]]YYÙÙW®Ü¹süøÊ•T*…ÒØø;Žeb2oÞªUÇki™›‹ˆˆˆHJ¶···WU=|XTtõjBBDĆ &&cÇjk?‡ÓÚzãFp°‹KB‚ªjnîٳ读ûÅ ?¿ÂBYÙ;-,¤¤ÐbéŒ&&nn›7_¾œ’bdD&··ë麻/X—”äë;nœ¸ø—ʪ•OZZvö¾}³fõgû””òòuë\\ôô~G/ˆ‰áñý+½ß»——'/¯¨¨¢B$ÕÕUU¯^p¹\.—Ë¿=ÌDüáñrr––óæIJ9²yóöíû÷''s8‹8¨¡¥gðg@§Wø®¨¨¬\UõæÍ­[22òò22]¾êïoll` ­Ýßh8œ¤ä”)[¶$%-_Îãíܹoßqq11{ö„‡‡…<¹m›™™”Ëã!HOχùù­­]]>\¸pþüµkïÞ1™¢¢11‹ÉÉݸ±~ý¢Eë×>|÷îïhõþ¯‡_‡ÃIJš˜¥¦š˜ t.ü¿§pš˜¸k×úõnn>>áá·oç奤ìÙ³i“Ÿß¤IÆÆºº?~\ †@PR27÷ðð÷77ÿz+ˆD…É“ïß/)™<™½ªª—Wlì¥K^^¿¿íÿP€þI/_¦¦ÄÄ<}êèxútv¶ƒ‰Ä` ÊÊŠˆàáye2×®ˆïìÌË+/×щ?rdåJuu æåË3g""‚ƒcbž<ÉÈ(*ºre Ï øwâñ>Zá×JIÙ»wãÆ¿óˆàïñ)8:: œF20 ;~üÚ5§£ãéÓ‹cb\\ÆŽ6ÌÀàøñC‡üý'MËmjºpÁÁA_æÌË—ÛÚˆÄïµ®½½  ÷(üX¬ªªÃ‡gΜ4)2²¼¼»›N/-õ÷·°03‹Šzû¶ï°AŒŒ† #'O61=zÕªðð Ðå<ðtuÑéLæ† ±±“&™˜Œ=Ðýüwø¥s@ãpÛ·O™òäÉúõ6\¼¨§·c‡”‚|:²»»——‘‘¨(›ÝÞþèQ¾9ùuã|‹Š:;¥¥×­4¨÷IÉÎÎ;wJJ(6[SSQÑÌlÈ¢¢ôô'=º¿©©§‡ËåpZ[<ÈÊúðARÒÇgØ0 Åã¿–ƒÁèëkhˆŠâpè *µ½Ãáñ°X&“ÉD'Á`p8 †Ëe±8.÷ûgãËåu‡B).ÎÊzû¶³sĈ˗““SRºº^¿¦R[Zêê(”ž2äûåm† SP Þ¾ml” Ó55•• KJjkGŒPS“””ýø?ø>tÔsPP||Q‘®®––ªêàÁŠŠ×ßá/ y¼¾Óñã7nÜ·ÏÌÌÒÒÓ388;;$ÄÝÝÁá«Ç‹‰íé‰ ÝÝÏŸkj’H Ož´´0™“&IH [1™--Ž¡ `nŽ ??£3Çá0è篴éô²²C‡Z[õôBB\]åärr’’ŠŠx<§»›Ãáñx<mó§mÿþã|,ãp22AANN'NÄÄìÚuê”’’»{dä”)22½åêo‹ÕÞÎdâñrr‹¯Zen.)éååéú³g ü—Mš¤¥E"a0ŒšÚ•+Ož$%ef–•¡åÔÎîO‚N¸ŽzFKÏ'Žùß(âÿ@šÃéèxöìúõœœ‚ …FûðáØ±£G“’Þ¿§PÞ¾=~üÔ©K—ŒŒ<<¬¬ÂÃ‹Š ? 37g±döìÞ}³³ïܹ{—D’—çpìí­­¥¤ˆD!“õõwíºs'=ýæÍ¸¸õë“’ÈdMÍžž††ÊÊšQÑ™3##}|A::¾Ÿavö;JGÇë×G&''$0™--ÏŸçæ¦§74œ<™œ<}úæÍþþAA¥¥22ffII.Ì™£¨ˆÇ#‹%!QPœ¼m[lìû÷ÊÊRRuu¥¥ÂÂóç?W[ëããà0eÊóç¶¶“&µ´tw·¶>xpéRNNc#N¡””ܹSZz÷.éÒƒíítúŒ..cÆ|øpùòåËèkëyóTUËÊ^½ª«Û³çâÅ·o‰DIÉÚZOP0996véRMMa³©Ô'Ors/]ºw¯¹¹¹YWwþüI“„„òóssKJ  =Jc#ÖÚÚÚ*+ëævâD||ss@ÀüùӦݸ¡§g` ¨8}úڵ˗kkVTÉööZZ4ZFÆ¢Esç^¿~ôèÙ³ègÿ‹ccG"“ú¢ÿ3uª®® àÔ©ººÆÆøó`®]»xñÔ)uuK˾«:: œ&LX³fäÈ€€íÛCB\\,,*Q.—F«¬¼};33%%,,2²´4?ÿÙ³¬¬>?‡Nþ|ÏW×µk½½O:uª¼üÔ©+/Þ»WXøÑ£§OSR:Cþ=ví:y²¤dË7·‘#:€Ÿ’’R^¾n‹‹žÞïˆ/&†Ç÷ï-rÅÅ÷îååÉË+*ª¨‰‚€@uuUÕ«W††ÆÆ\.—Ûw‹oŒ€519}úÙ³‡ÿÆ3ùUX,™¬¡1y²³sDÄäÉÎÎÏ_ÁfS©Ïžåç¿~Áøú HK««§¥%))*úóSŒÀ?Ë/} !è<^QÑÙ9+ëéÓÞBº àˆ[¶\»vçÎ@ç¿ v ðïèœÎΦ¦ÎN6ûï:‹õ{ØÿïjàWêììè R_½zùòÙ3tICÇÕÕèìÏè’Ç>¼}»²²¢¢¤„ßo Ñ—ØÚÞ¿ßÑÑ»”Ūª:pÀÒRW×ÖAÚÛ œœôõÇß²ÅÙYW·­ÃùJ½y³ €Jí»/4ár{zAŒÊÊèh ‹éÓƒ‚ŠŠ>®moð (ÈØ˜Áø4«/åÌãÑheeÛ·[XL›¶~ýõ럮íêzöìŸU ÍÌtuµµ=z´ººw’oYYü_˜…Çc³{Ï×÷ýˆý‰ lvCÃçíü3••={öà‚‚’Ò!zzcÆLœhhhl}* ÀåÒéoÞäç{y­]ëàðòeO„„­­´4‘È¿=‘(-=vì‹ííl¶ž^oùøK8œÎÎW¯Øl‘¡CEDA¯»ûÝ»üüüü§O©TLÖИ8ÑÔTDäÜ9oï¸8OÏœœ[·èôÒR[[ŸÔTii*µºúéS{û}ûœ—.ÍÎÖÖ67¿yÓËkÊGGiéÚZnÙ²€OÏ‘#Ñ}äåmm…„–-»téÝ;w÷I“¹ÜŽŽû÷ÓÓoßF]»ŽõòºukҤ͛oÝ¢P/VR"“edLMÝÝ}}—,QQ!óò""êëi4OXX[ÛÆÆÁáàÁ†G3Y¶ÌÍíðᬬ¦&ÇÞ¿q#$$>þõëÔÔÜ\Y³,-““¯\Y²¤ï¹a2ß¾E¥K==utH¤ŽŽ1c""p8 )SX¬­[oÞ¤ÑD\\H¨¥åÅ 4ÿU«ââÌÍÑ}Yµ*.A¢£¯]Û²¥»{×®mÛ Y,uõÅ‹gÎ|ü¸£ƒÇCNTtÔ(kk[ÛââövAÁaæM›>obâìì㣤tà@q1Ú^(=€¿Çºu..ß̾DBBBBV–Íf±~d>2YXXT´®®¦æÝ»¿84Çã}üwóæ‹ݾmc3zôòå.Ô×¾»»—×òå+W®^½fMTÔ™3x¼¸¸¶¶¦&‰D¥>yÒÒÒ·1LfKKqñˆbbß›$——Ÿ:uöl™·occoÞllDÁ`ÕÔÌ̦NÕ×oj’–62ÒÖli¹qãüùêj!!t_!!¨¨ë×óòüýÑ¢·¾¾¦¦¨(‡ "*ŠÃ1™T*‹Åá°Ù7nŒ+/O"ñï;dˆ€‹ ‚ŒÌøñÖÖÓ¦)+ b±X,‰$'§¤Äã½xÁ` ‘ˆÅ"—Ëáô={_†Á`0ü™àñ¢¢ššh&X¬”Ôĉ~~sç ÅÄìÞ}æÌ A‹‡‡Oœ(%…íÓ³lvssa¡AoÎX¬¨¨¡á¦Md2ûé—ó755110@÷½t©¾^X€îéë««û¥Ÿæÿ×®1ÀÀ ‘¹\‡êåï!"‘Åb±zz~¢Í_6åñØl.—ÇãrY,.2cüøõë÷îµ¶~ýzÛ¶¯ï‹Âb‰D!“GŽ\±bölAÁË—SRž<é]Ëåvt<}zôhv¶¦¦°pš¦¢âà°q£¹yc㎟ËE?áñzz::55½§ŽÇ£Ñ^½Ê̼téÛÇ@÷=¾¸¸µ•ßúzëKÛ³Ùmmåå½{G&== ›Íå2™èÞ<›M§³Xß/FŠËíè(-Í̼y“Fóñ‰Œ<}:&ÆÛ{ôhaaì'ýŠÇKJêëŸ>]XØÔÔû²A«®®­­÷Œ|«½’’úúcÇ UW£Ð}¯];pàþý¶6‡«­íèèË`Ô×ß¿ÿõxüíe0Þ¿ÏÉ9yòÖ- …ÍFþÏèÚÞÏ€?Ï 9œŽŽgÏ®_¿x±°B¡Ñ>|8v,%åèÑêê¶¶÷ïOŸ>}-Ýb±""††AAÑÑóç÷{÷ÍÉ)(¸xñܹŒŒ¢¢ÖVþ‚-‰¤¡áãsòä† ÒÒ©©II‰‰ññqq!!éé²²aa‚‚ýlVBbò䨨S§ÂÃUU7oŽŒÜ½;111ñàÁÄÄÇ>”“C'~ “uuöìquuw÷ððö ܺõÊ!!uõÆF­µõÁƒÜÜ[·êëi4 …Ic# «ËfïÚ5>ÿ¾µµ×¯_ºÔÐ@£µ´Ü½›•Õ[ÈÆãee-,–.0FÛ³çìÙW¯””ÈäúúÓ§£¢¶²ÒÖ¦ÓOœðó JN¾v­¼¼±‘N§PJJîÜ)-½{÷òåK—ø3yôèòåË—Ñ%ÍÍŒœÜ°aJJTªªª¼¼´´†ÆÈ‘&xy%%½|Ù÷¼ ŽA"ÅÇ;9-^¼|¹·wppXØÑ£õõ7näæò‘?ÿG¨T6ÝwÍš}û–.E# ûvvN›6j”¸¸ˆÈðá—//^ýû{°Xðj<À¿[G•ÚÚzï^AÁåË­­-- _ÛõÜÖF¡47£Sp ¦©9jþ[Á œ&Lðñ1ÂßûöíìdessSRvîܼyß¾—/W¯^¿~Ê”¤¤ˆˆä䤤\\^½zü8&†Ë¥Ñ^½º~ýرmÛ23dÞ¼À@{{1±‚‚#Gvî,+±²RWâr»»ëëËÊV¬Ø¸qÿ~ †Åjjº};>~ûöÊJ!!uu£¾þÕ«ÄÅmm·nuwWRºu+=ýÈ‘°°¨¨²²›7Ÿ=ËÊú4k&³¡áòåèèÝ» ‰Dqq ¥¬L@ÀÃ#&fíÚQ£„…1˜Ï[ŠÅŠˆhiYYÍœI"EF~û¤s¹--W®”• Μ©«K&ôE¿ƒ¬¬¼ü ABB¢¢>TW¿zUQQRòù– @&‹ˆˆˆ ¦¡1jºü»Sp‰ŠŠ––vvS§âp¢¢2mš­í„ 11II®®óæÙÙ]¼xð`A¹ùðá·o·µq8"!A&««O›6¾››‚Lž¬¬,.Ž ³g»¸L›6dˆ„IJeFF¢¢‚ \nO‚ ƒQY¹oŸ³sD…²eË•+Û¶#—ÛÞþàÁÆ3f0™drQÑ”)vv3g&$ìÛWVöy®\.…rëV``HÈíÛ³g_¼xé’¥%‡“›»cÇÛ· ‡ _.@£0˜¯¯ã‡ÅJKÏœ©«ûóÝÆã±Ù —‹Ã‘H8\ÿŽ AXXXXTTXXCC[ûG÷ý‰)8ø µèg,VFfúôƒ?¶³32Z¶ìÚµ–A°X@Àbû{èP|üþý{÷úû;9±ÙuugÏ®]{â„€@P¿ÿøñÿŸVLlìXÿ-[.\¨«ûÞ´X¬¸ø¸q¾¾  ‡‡«¢ràÀǪª>>ãÆIKc± Æ‹›7—–Òéèötzié† /_2}ãðxíí……ÞÞcÆŒ^^ÞÝýðaPPPЃíí<‚´·>\]Íd¢ŸœFŒ1‚ÃAa³kk¶²ÒÖ67çr››³³çÍÓן>ýâŦ&.×ÁA_æÌË—ÛÚˆD(=þÝ~éKq¸íÛ§Lyòdýú .^ÔÓÛ±CJ AðŸÃÆÆÝÝËËÈHT”ÍnoôˆÇû~äþ–j±X]]ŸsçnÝš=ûþý™3'Nœ6íÂ…¢¢Ó§ÏŸ÷òzÿ~òäAƒ†G·4Èܼ¤„Ba³55……?MLLWwÉ’ x¼€€¬¬š"QLlî\//11 A::>-Á‰ÒÒ8ºDDDCCT‡c2y<.—Éd2¹ÜÞí0.—Åâp¸Üþ´þdñ%„<^ßBêøñ7îÛgföüùÆÁÁÙÙõõßÚ=ÚÓ×ÖÖÔ$‘¨Ô'OZZ˜Lþ­˜Ì––‡GŒÃ§\ÎåÒhïÞUV¶·s8$’’Ò¸qgÏ&$L›F§_º÷êÖÿR¶°°†ÆâŦ¦löÕ«ÙÙ$’µµºzÿæ{þ8B‡“‘±° rr:xpóæ;””ÜÝ##§L‘‘é-WÀ¿ÕŒ€æp::ž=»~='§ €B¡Ñ>|8vìèѤ¤÷ï)”·o?uêÒ%##+«ðð¢¢ÂÂÇÃÂÌÍY,™=»wßìì;wîÞ%‘äå9{{kkcc))"AÈd}ý]»îÜIO¿y3.nýú¤$2YS³§§¡¡²²¦FTtæÌÈHAŽŽoåÈåR©yyAAññ²²ãÆIKS(ÒÒ^^'O†„Œ«©)$äç·tiPPi©ŒLkkqqeå¦Mš–J×­[¾|øð»wssåò‘#›77™vïž8qìØôôõë·m0®gÍÚ·oíÚV­ðQ‡ÿ]HNNIiÖ,'çÞ½;w|ÝC9²oßï¿''wè0x°ûOzýÙ³ãÇ÷è1}z³fsæ,[¶`ÁK/ ð´^Æå2™îÝ;ujÏž >ùäóÏoÝ:~<#㯿žV}üƒÙ|ûöš5/¿}^|qéÒ>}^|ñi×Ç8:]FÆñã÷ï“ä»ïÆÅ)•ÉÉRióæÁÁJ¥Ë%“=*¤ÆPêMñEC×âñ¿þ{@séæÚ½¡±.†_àR̵‡àà=í ÿOEvöÌ™3rd·nƒoÜXXèp ƒÓÙÐ%Ùí3f,]:þäÉýûýÕWÙÙz½Óér ™™üñÑG#Gvë6hÐÓn OÔB@Ã!„:Œqñ¢^Ϥ:ß}7xpëÖ#FDMÍ™3ãÇ·k×µëâÅ/¾Øºuu5E±9èt'Nœ9£Ó¹?‹æF.—ÍFaµÞ»·jÕ€ƒÍ{îûkMÍ¥KsçvëfµzÖÊW½Ýkø¤š:l؈‰Éd29AÓ EX˜BQŸ¸Î4ít2ïÉöÂåË-Z¼üòüù?ýtôèÎ￟šªT <žBѼù°aÇK$&“ÙüäÞãñðt)I’¤û5Ú¿ÿÒ¥S¦|úé±cÍÊ•iij5ŸO’PÈÞíþ,AMÛíUU$IQ¥¥?ü°}»Ùòä9sfΜ:U©ÜµkΜÌÏ÷/„8Fáž4M£4(ŸâÄÑ£'ž:5|xÛ¶o¾ù知¥Üg†ýõ)SÞ|óÝwßúô•+·n‚‚Z´HM•Htºë×5w²Ôn×h®\iÚ40°>á-‚¦)Êj=wÎ`P«ûö‰ê˜ ‚ƒ †Ó§oܨªr:y<‰$<<=ýܹü|«• D" \.§³¢âäÉ?ÿ,.V©ÒÒ7V(HR P(_¾Ö$I’íÚ¥¦*•|>A„@ T¦¦êtEñx!!½zÍœ9v¬Löõ×_|±ukL̤IŸ~Ú«WHÈ£½”½ÓúNgyùÑ£;vÊd;FDH$2YË–+W¦§;6kVb¢;©ñäñ4J:Ó´ÓérÑ´Ëåp¸\2£k×Ù³ÿýïaÃîßÿì³ |?ûŸ ðD"‚hÖì­·ž^*=p`Æë×™_Á#yýú½{SSåòÇ©!Š*/?|xñâ.] æäÉ¢"‹~©®V(ºwoÝ:8X p:««¯^íÑ£K—„¡Ðf+/·ZN—K n×®C©ôáÃíÛ/_ÖhœNƒáþ}ƒÁá¨{ º\zý­[{öœ8a2M›öùç[¶|ýõÔ©mÛÊå$C P©Ú´iÙR,~øpÇŽ+W´Z‚ i“)'gÏžýûKKõúüüª*ð!·Zóóÿþ{óæ“'ÑkæW Œ†AOŠÒë32ÒÓ÷í;{¶ªÊd*)Ù¸qÆõë ««óó·lÙ²eÿ~‚ O¡èÔiîÜU«^x!™gÿþûÌ™}û¶oß½ûÜ9­%o%’””iÓ6oþøcµú?~þù§Ÿ¾ýö›o–.]°`×®°°O>aü•ý©áߟ9SU¥×ß¿¿~ýºu?üðãË—OŸþåäLúï¿ô’N÷å—Ÿ~ºví÷ßñÅèÑkÖÌœ™’"‘„@6`ÀçŸOžüþûkÖlÛ–“PZzýºÝžš:mÚªU/¼`µ~öÙ˜1_½eK^žÍætjµ—.íßÿ÷ßååfsUÕ§Oߺuþüû÷_ºtðàÉ“¥¥&SUÕÕ«8)••$ž”­Ó%$DD¨Õ))Íšõè1eÊÏ?gg3oãtêtׯ<¸ÿ… {÷îßõjUUuõÝ»GŽ<ˆ–R^n2iµååBaëÖsæ¬YóòËNçêÕ/¼0wîG-YrèBѱcHˆÕzãFQ‘Í­tãÆÖ­?ý´};z ¿b```````````````````øÂ¶m{ö:ÄMá¦È#Göíûý÷ää~Ú•ÿ¿§³¤ä÷ßG2dÆ¿þºyóÐ!‹åîÝ FŒxóM—ëȑӧ—,yÚuÄÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀø¿‚À@À¿Sä|ÍcÇ>ûì AÜô;„ÃááƒÏ™3n\pðÏ?ÿôÓ—_~õÕºu5iÒwß}ôÑÓ®†wp‰f_Ô3 ^Çúa<.øüààîÝçÎýãîÝŸv]00000000000000000000ê }yC£à…„<í c````````````````````<˜ÍV«!8PÔîû àEDDEÅÅ=íÄÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀx:°Ù,½þIä,P(”J•ª¬¬´ôÁƒÀ@•*4T$‰D">ŸÇ#ɧýâ ðzêY*•Je²'Q Y]­Õ–•=í—ÅÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀøßÞÓ®ÆÿN`ã‰ÐO˜€ÆÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀx"À4Æ& 100000000000000000000ž0ñD€ h Œ'L@c````````````````````<`ã‰ÐO˜€ÆÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀx"À4Æ& 100000000000000000000ž0ñD ؽû¯¿xÚÕÀøoA``````ýó©©©©©©yÚoS@ xroÊãñx<žB¡P(—¿Ëår¹\ƒÁ`0<é6zBë“ÔÙd2™L&¸n¨òù|>Ÿ/—Ëårùãå@QEQF£Ñh46lë …B¡P(“Éd2Yýs³Ùl6›ÍjµZ­Ö†­'J¥R©TÖ'‹Åb±X‡ÃáxÚoÓ0‰D"‘H"‘H$’úçö¿¯}0000000ü‡@.—J¥ÒÚo²ÙìvŠ:tèÂ…ÂÂ’’ÊJ“I¯7›$ B¡‰¢£CCåò´´ÎcbÄb¡ÏÚ¯†ñ8x´<Ôšv¹\.Šªo>OR©X, …"‘HTŸ|(Ên·Û}ý dn@Àãî@˜º\Þuš¦iš®=Åÿ;á]Äb™L&ó–û\íùóù<¤P(´P®N§ÓétzkOš¦iøëOë‘$I’$7E(ôN²Ã¯0Ñòµ8æI’ÐÞ¥Ô^zí).MÓ4ô…?úÙ@r Ývã+Xi&IXìáÞr…^ƒtÕá ãPÙ@%ÊéÝc–. .PéòGwPë‚B€æZŸZ‘$ÔÊ_+å¿ðFõo@]­¸§ >Hñeâ‘ÃÔud|€E N§ÓézöìÕ«W¯ÊÊÊÊÊJî¬Ä<¹§ÐÙãã•òxÏÖ§¬†Êá¿­,¥òñ}±èïÜT•*888xïÞ={öì g¯†}¯¼¼üüü|>_ BCCCCCAσÁ R=±Fõ$¦V'$Èd‰XL$IÓ……EE99.M?ùÙ}uµN§ÓÁ_¡P$ 5jÔ¨Q#©T"‘Jù|>ŸÇ3™ £Ñÿ¥eŸ¾Ÿ@:_»–]Yyþ|FFY™Ng4z#Úôz“Éá(.®¨0™rr>ÔézôhÝ:2²u딵Z$ðÐû ÿœÂýŸïmâY t$—@Dïy”ZôýF3(w VÑ_ѧÝÓ3÷_š«Â ýÀTcêÆ¸$ÏvgÉb’$IhK»]6à>‹¶÷W¨'šü‹Û×$éÙÞêéyÔ íq_†7¥›¡ aiú6ÿgL1Œ$ƒTÃtˆýöQZTÃ5P9p ¦›·°\ý_È HHô¾&Û¨îb(A—Ëår:‡Ã·t±O?í7Æø§ÒºK$b§¦¨îB¥ FX”zFG[®¤ æ­ìv°a¼/¢7þI+›Ñóõ% ¡ÿ™ö©?Ð… 1ÐW QxdÄx<Ôudüg’ø¤)ÚºÒÍW ú ..!!!æD.eeeeÿ=Dóãåãr„Ýît„ÕJÓárñù!•òx!‘dC޵װv.âQoç9Ën¨:×Àh¬¨¸råêÕ«WF“ÉdjÕªU«V­ÔjµZ­v¹œN§óiÐR©H$‡‡GF‹Åryd¤J%“‰Å"‘X,6j”œœ™yûvFFEEEEiiÖ£\YYyyyyRRóæíÚ5k¦PÈå!K¥AA E@@@€X,J¥B!ŸíÚåË/Êd …B#¡Årï^v¶Óá¥å}uó† ûöee•”h4f3þT·ºZ¯·Ùöí;s&?ÿÖ­ÜܪªI“žy&5õŸï6Œ§ïþ®ÿmh¨ÚÕþ¦Ì¯ÞïAéMÆK‚Uт暼g>õIcH,–H$”Þu¯!¤ tª¯ϲ¸@sµå‹°†0ÎÀ€p'ë½§ yÀ4\0iìSh´ý™)hmÔ¹{YÜÒýM1ôz½&ÒhÎܲÐ7… š.‰Åbqddddd$C©séoè_è#ï)ŒaÊJ3¥gÓ¹¦…û¿}ýê½>è×÷0ô(û´{ýÙ_D½ÿ_³·T__:›†Ö‘(_ÚÀS3À³î2æû Ïü¸©lÐt_^ðh:P3eeeeee0‰F—[Ð 6HWRRrrr2Ú ÜÞD¿n¨3êµEûúQK-ž×h¿£rå^+ïeyëwïÒU?¹ªMº¼Ñ[h¯£ïÅÕ…\éBe•® yæåKê|IZ Wº¸)………………v»Íf³qû’+]uÑ]lûøÖ]ÞÓ}K—÷ti–+]w ÿŸ¢»ê&]\)õ_w¡¹=žt¡2× » Ü[žAàþ  •J¥JNNIII‘JÙ=FŒ%Âʉû8å)E¾dmG÷±•ÛרTCkpåœÍ}#ßå]~кqó÷%UÜ@5¹/yãö:Z:ÚwÜ>ò&WhozJµû÷UÛS\MËÍÁ=g—Ë傺AØì쬬¬¬šN§ãÊ7}Ýù(à‘ÑûÈè«}ë ïíÂúé£òïýN_5i¨ûëZZž:tèÈ‘#G|Ý3hPZZZZ]ßâñjÈê÷ºäó¨r Âå*)‹÷íÓéD¢«Wm6’ÔhÔj«µwï  §³}{¡ är—‹ (ŠÇ-Cb±XLÓ!!uí ÐQ¾Fd÷±ŒMAÁÕÞÞZy;&Ôïñ¤ÈÛ»èõeeqqfóO?Éd2YÇŽðvàôP^^VVVÁZ«ªªªªª ¤Ô¿ôÚ J¥©©‰‰áá!Ñ´ÉÄã¹\H$ˆDb±@ —Êd]ºtïÞµë… gΜ?_^^QQRRÿÒ%’€€€³Ùl6›ãââã £Ñd W«ƒ‚®®v:(Ên ‹Žˆ¹¼ªªG>}zô(..(()9räðáýû[´Ø½ûÏ?uºAƒ† s:ãããã!èGêiXZªÕZ,;v;–—WSãÝß ‰DBáɓ۷/\¨TÊå ˆ¨²O?]¿þòå¿ÿNO¿r嫯¶nÍÈ;¶ÿFBBý D Ñ8b±Íf·C ’dV Y!ö¶íÝS ÙuiFtáÓ‹ˆP(„B‚p¹|¯ÀGEEEEE5Ô0àŠ‹‹‹‹‹ã⢣££Ñôóç/^¼xb47TœY.Ps­Oÿþ}ûö틦=züøñãAAlL^hù'»¶´´´´´´k×Î;wæþ ­×ÚóURÿuf­V«Õj!4·VŒ:c·æùžàREÙíN§ÃqçŽFsï^TTx¸D"—„ZírY,îD3ú,š†NðŽ¨¡’ÂL>žÓ*´OÑwA§ ¾Hs´n¾SÐ:³@}IвÐ!bú±yƒ3É@ÍSš¦i <€Ü÷5Lz8¹wÂÀ ï‚ÞÞÏ^ûŠ÷íËÿ}hÐçpSU¥Õjµè³>|XT$K¥ryhhHH` * þ ëÒ… ©-Ÿ¤Þõ>‚4l Ÿ_mË]þ¿ym¿ÊåEEEEEEèb P<'%%%A|r0Ñ|åóàAe¥ÕúË/§OWTH¥2™LBh¨Dâp زeppbbh(cü“rå_‰›kCË•ûÚPæ·¿5lX¹‹CBBBrsïß¿µ7@wÅÇ'$$$€tquN€-“þ×011!!!áQ“‡§©»j·3Ñ1…ûKCÔÖ“"ôo,ð”L_u¯=Ÿ†w‚ "#£¢¢¢@º@ºl6»ÝnoÞ¼E‹-lP{ ,Cî˜ë|cívjŒîa‚r³³ïÝ»w¯qãÄÄÄÄààààÚ—"jogúîQÏz”µ?Å P ÁÁêŸ[]á¹¨Í )))Mš4iräÈ¡C‡‰Å"‘H-½ìÿÈÈÌ LJzø¦™Ù\·nGa¡Ba±ètèuýû*kÏñI´=¶¸¼Ã×Èøx_ªš4iÚ´iÓµZ­†¥«Õb±X**ÊËËËsrrrrr`¥ûƒfÍ"#›7 ­VœÑL&‡£¤äòåŒ Âäd‰$9Ùá°ÛΦM›4iÑ¢¨¨¸˜Y€¯rrnÝÉ»yÚü‹/¾øâ‹/À~Öë·nýòËC‡JKKK‡Ã`;vÔ(…âÂ…üüÛ·‹E¯¯©1›““ïÞ9²•*88:š¦Y¶ù?4üÏjµÛ)êÀsç>¬z†Žá…çžëÕ+0P¡JacVE…Vk0TTèõv{^^E…Õ*‘¨ÕqqUU™™ìßîÜÇ@C …Ê‘ž^U…~@¹ÿ›ÜÉ%§“Yd"ç‚W lB§¨òò¼¼ÂÂ>}%’Nš5óæêŒ×’€†r¹æ/]ÿcR|A.÷<.Žkã®EÈnO€ö‡!íIÔ°ö£í eØ•_ßúÇ’J%‰ò¹÷Ôn¢¿,Z´ÿÚµ :h4¡¡N'£æø|‘H$ w¹’“h:$D.§éààÐPšNJ"I6ú¾W*Üýy¹‘é¾ÈUôß09t×]ÁL_ÑÖ½M<õ¯]»~ýúu÷`ßÁÑ WLÐ6`ÅÇ…………°X2pàÀöèѽ{÷îu¥›}#ÜšûÓã’_¥p‰No}æéõì½tßoT_Ô®koCo²í™3HêeµÚl6[í##Àh‰Šôt¥²E‹¤¤ððàà–-a“?0Ðh”HîÝ{øÇÛ¹ÓjµÙ4šøx§s̘ÚßdÃWœ_˜›ß¸qãÆ°øZuuuuu5÷N…B¡P(d2©T*-(((((ˆ‹‹‹‹‹C¹æý]¨kï°’ârÅÄ$$¤§;v»L–Ÿ/ÇÄX,¡Õ:$épØla·[,4m6SŸïpдPÈœP¿ÒýEU•Ãa±H¥Åã‰Dv;I^½š“s÷î;wîܹ<Øôéï¿ÿᇋÉdµÂ_°?ê?ªvéÒ¥K×® 22nÞ¼y–Ä`i\_$’Hø|©T©|ø°¼¼¦æöíÜܪªV­’’TªÚK!I§Óሌ”Hhº¦†¢x<£|•ÝÍAw*‡Ù¼ÏÒÍ` ítZ­6ÛýûׯߺչsDDË–¾ÖpÀŒ€ÍljX ¾Ø¾Iù†3åàñx<8$ õ#†õvÙð¤¶À»£)p ÷“ƒt ¬Ñ§¼›: YC‘H$òÝwÐJn8~ânÕ§>оjÅ›ö€†»}»¬,;»cÇÐPwnŠ"I»½¤„ÏÏÌDÓš‹ûô±ÙÞ{õÈa§„L˜´Ñ5LÒ @IÓ4³†)•zN/Q ˜;áD†\Féf47¶&hÎh( ´}PŸh_´{èïuC04¥uÐÝþQÏÞS¸¦¿¯M…0ÔN@3ùÔF@ƒ*u(ÀëæÍŒŒ+WfÏž={ÆŒsçΞ½v-==/oÿþ›7uºË—)Ê`p:Õjƒ!,lÈ&M† ©û—Qû¸¾9Ô½6ó”?zŒ*•6§Ú|çý)ëñµêãy‚ …ìnF®Ø` Ü|–-Û³§¨hàÀ~ýºv1¢W¯fͪªL&§“¢hš ,›¢â㣣ÃÂÞxcìØ´´ãÇ/_¾wÏjµÙÊËE"À7‚N®ü 4;7o=U7<®„Öf"r§X̵'¡€ê™ÚË«mÒ]¿Ñº>Òåt²Шæ÷%]_ˇ ?^ZzãFq±Ñ£TFFº/Ýy挶°?ÒÅ}o9°¿<*Ï{|mnEÇ&&?Üñ¥£Ü냎éèFWïâ>š{Ž•¾´_]QÝÅx%íïμ:tèÐÁ=ô{ôÕá.ÉðpàZ×lëx;¼YJܾcï÷¶\ᙯzûÒî ¾ÚÜSS¹×Ü{MüŸ$×U?ûÊÙ;1è›–õV.MÓ4CŠD uìÏÈX\,“……<¨Rµoß¡Cp0ãŠUSãt2¥$%Éå<žÅ"•ªTü!téòúëEE<êMÑ¿žýàû«ôžŸÿíü¨^xœ§þIÿåG•Ø0#cXXxxxxbbãÆƒwseeEEE…¯VBGFw'!ÿÞ–¦[´hÙ²eK®¦¦¦È# aÎ~çNfff&ü:`@ZZZÐÓÄŸ=Ö¾ô†¯1Ȭ &L˜0hGH÷¶ãÄå •Ê;wV­ V«·o·ZiÚl‰hšÙmÏ- Ñþ,))---Õh´Z­˜ÅB¶åÁ…,-NÓ »w'$îB·MnÝÒéBB^yeðàæÍwì8tèÒ¥6m‚ƒaÄaî  )J¥ r:+*ŠŠîÜ!ˆøø–-“’¢¢”ʇ *+½ÍІ÷¥i§n Ô³Ãár™Íð×nw¹L&»¢L&‡ƒ¢L&6ÅhäñB p¹øüêêÒR¡ðÀ¨(»ý™gø|‚ð6Nqû—Û99÷ï߿߬YóæÍ›{sôl77s@ ¶á€;Ôm úŽù[›}X;BCÆ«Wy¼À@Š2›m¶˜£Q,‹ívвÛ—Ëé´ÙØkrŠÆj¯Oé¾Ð¸qJJJŠF£Ñh4ÐW®ÿÁƒ»w­Ö~ýúõ{þy‰D¯OJЉ‰‹KH€èÜ=On!8Ž¿v­¬ìÑCINœ8z4ø>K$}úŒ¿tiEEEEUz'WUUY©T6jÔ¶-øA……·n:tñbiiÓ¦ññî[û¹‹ù|>?..(ˆ$oß®¬¤(š†AšfáÈþO’Œú1™à³¤(§Ón×hîß¿w¯ àîݬ,»Ýnw8@ŒáW_k8 ¦ÿúkÏž={:wîܹsç'qæ&Ð=gΜ9sæÌ˜1£GÖD3<<,,, jø$ê€á- ¢Æýä`E (3 _!1÷ÙhV ’$I8¥7*Ê{ h%JGͳúÔ 6_µb¨ÞGOYµÎÔ§ÿyó† ëÔ©wïµkÓÓ¿øB­§é£GÏŸÏÊZ¸püø9sÖ¬9sfêTt[ °Mk0“Rè5— .`ãÙÑ4¬ž:°îA9Üq°Ïz¾…{ ¸¿)›‡NWS£ÓÉår9< ž×Ðbè[ ~ÜÌ[@þžô4:yæ’×îGݾKhËø3©æ«\CÁ›O´ç”¾ººªªª }½¥W¸!;У4¤×~ÈO\\ttxø§Ÿž;·`H$“I$Ý»÷ë×­[ëÖv{‹I …B¡\þÉ'[·~üñøñÉË/þ.ãmÊç}"í‹AÍJèSß¾~¾¦—lY¾®áX{}Ü©.Ï·æ!@{-‡9&‹=dú|^|Q¾õDm¿>Ê{±n“OÈj‹¦0[Ë=¥+?_£±Ù^~ùå—ÇŒiÑ"&&  G””ÀÀcÇîÜ©®ÖéÌf§³K—Æ•Êöí5R(~ýõôé²²ØØ¸¸ØØ9söîÍÉyï½Î‚„µZ,†ctktrC Õö>$i2™Í&“\.“0ß,«ý 7féÚS¸¹12æÙÂþS$¨Ì0GZ±´##ul)ƒÉd4ÞºuûvVÖþýÿýçŸúhÞ¼™3gΔɔʠ ˜ðøÖ~$I’gÏ^ºtõêûöíÞ=wîŒ3fˆDž’Éõ˜£½àIIhqз¤Êwþ 1L&“©¨¨¸¸¸855%%%Åæƒò¼·7WŸoÛ¶}ûöíC‡2dL Ñ_ïÞ½{÷î]ð+‚% ©5jÔ•"æ ;¶½¸Ëð̉ lÍPËÛV¾Idn Ô;Òy>…ÆdGTБÚÀŸi<E×]æ‰G‚[7_K;\c¾ïRR³ 4À]íºëØ1µºcÇ€ 4šêê_íÞ=<ý6¯_¿¿ àßÿ.+‰$¥òçŸUªîÝ'N¬¬g˜§ïܹsçÎgΜ={ölZÚ€téÒ©S§NŒ{YíºËßñžjÙ²uëÖ­:tèÐ!R8<-66...®C‡N:ubŽš‰D¢Ë—/]ºtéèÑôôôô—^zùå—_¾~ýÚµk׸‡"úBí5„ãËÀ {æÌ™3g΄ûOŸ>}úôé¦M›6mÚ6õ£Ú   U«W^q8òò^~9)©¼|ôèÕ«ÃÃ'L?^£Y¶,&†¢ââ¸eQÌùÙ/t)”rõêÕ«W¯>337w„ ¾ø"4”ü‹&Ì_¦Í ä®Áö<}Z«u¹òò¾ÿ~Ö¬¾}[¶lÜX¡xü€½ bccccb º€J¥R©TàÛþÖ[o¿ýî»úä²U+©T")..))+¶~GÇ”ÿïÍ íª ($•J¥bè㪪ªªšïw£ëæîÞþqCuuyù;!•êtz=øi¢¦äd2xV«Õj·³4Ó“¨ h˜xvž2Ô3sŠ8jºAû?©‚¯¨¯¾ƒVò§tXÇ“½>õñ]+–ÆbÛÔ›O 7eĈN º~½¬,==3S¯ß·oÒ¤ØØ5k:w1â…ââcc™^CéZ67vâÄã8qöì¹s‡Å|x<¥2 @,îÙ³gϾ}A‘UW×Ô 2™X,ðùB!³¨ßE]  7lزeûöW_7îùç¹F-jRs‰cP>55&“ͶzõêÕ+V,Z´páâÅŒ÷kÊÃSZmU•N¨P &tz\ íŒüX,Ì&\&Ïé hÔ$â+WWšû£´Yò‹K+£_%¡oÁlF)´>ÌÄU 0™L&»ýÈ‘ŠŠýû{ôˆŽNK»s§¢âöí°0©4,¬ Àb¹}[¯w: ¥²mÛ  £GÿúëèÑ‘#Ûµ9Í“¬½Sɨ´3él]¸„/sÍÒŽÜ<}ÐìÜMÖ qé™§{+¡9ƒö”"”|{öï?|8=Ýf3™ôú    • öÛ 8pàСÐB‡¥§?¾wïž=Û·¿ôÒ¸qãÇ·k×±cçÎ\­ƒ/oM÷fÛÓ]ÒjŸ8Á»x¦¡ÿF% JD¿®t¥§gfêtÝ»ÇÄP”Éd³1¿êt&“ÓªTŠDQQ*•X¼ÿÍ›ZmNNY™Åb4Z­רQJÊ‘#™™×®½öZÏž¡¡°¨ªJ§3`IšÕH(Ðw?• bõê5kV­š?Μ¹sa7 ò T*|if÷rØ–GEaî jÚº6›ÝNQgΜ8qúth¨R)•vîÜ­[»wïßäHD„J%“5iÒ¬Y›6+V¬Zµ|ù¢Eóç/]ºcÇÎ[¶ 1ôÑÞdÆTky—_éþ£î~©žäêÏé(ÝY»Ÿ/÷«1-›­W¯FÜC“¡½ÉŒ/lÎ+]p¬K]¥Ëd2›ív©T  i‚àó[îLn¨'2û½ƒF1›­V«¨F‡Ãå"ˆ´´þýûömÚ´uë¶mÅb˜žyŽVÞz„ÑóL=Üu”Jìr9Ë Aƒ?ó H½Õj·Ûí ÉÈ.N³.Ìò-óf<×¹s‡;îÚµk×Ö­ŒŽ…÷Bkè©W™õS¨ñQ3IDATñ>F7”tD}ÇXª¾–H’$32nݺuk÷îÝ»wïnÛ¶M›6m¶nݺuëÖ¹sçÎ;&ذ¨]»öíÛ·ÏËËËËËkÔ(!!!áÂ…K—.]2 ƒ¡eËV­Zµ‚–„/°¹lfØD Çû@}`Ñ]"‘J¥ÒØØØXÆ®ƒw|Ö¯ÿí·Í›-–ššª*µ:,,<Üé´ÛÍæ—^š0aâD˜*?~úô¹sW¯^¸Ý©SÛ¶­Z5j”’Ò´)ê÷‡¶0³ÜËÊ$:Î@:³TæKªY€M³{÷_íÝûë¯?þøÕWþ¹k×Þ½2™RøË/ë×ÿöÛ·ß®]»fÍ´iï½÷Î;ãÇO˜0iÒλwïÙSXøàÁ½{QQÅÅ¥¥ee&“^_]=þÂ…Ÿ|⾌ñh Ñh´Úªªrsss««««5šÁƒ:”k;3‚N§ÓUWKx ÁÁJ*KµŒUUIp°VëpQàr­YO’;w––‚®f4v¯^11±±S§ Ó§ççSTe%I*•••b±Jl±¸ÇÄ‹`ûö;¶mS«Õê°°û÷óòòò&Mš8ñ7`¼ùa5<ûŽ;êù¶¾<[ýj}ÙÛþôד#ˆ'¯†›6mÞ¼yó%K–.]ºZ =====}Ò¤I“&MºzõÊ•+WjaùÆŸrAê@ÚAÏýÝ®]‡:€×$3ãp8˜±Âìˆ?®ººº:88888âD»‡Wòwɱ@NŸ>\.—HÂ錉ùñÇùóçÏŸ?tèÌÌÌÌÌÌÌ 0€ëy÷wGGøaPÑØºuóæK¯^wïòx·nEEQ£!Ý[¾"¶½P¾‡‹ŠŠ‹ÝßÂÞBC²$ ÷==$I’Ý»7mºÿ¥K))FcE…XܬYZZË–áá¿ÿ~âĽ{K$ÙÙùùqü¸Ù,—wëÖ¶mÓ¦ŸX,Ðt@€T*TW î.}hmÙ6 •J‹¥M6Ö³Ífµ:z=x=;.—Õêr1áÉœN‘ˆÏ—ËÛ¶ }õUÃ%>_©¤i>_¡¨ª²Ù®\ ¡é®]E"šöfo£Žk8— F[ m™¹3[sX–ƒ³ ÅÛ$Œ5°ç’•.ÔÑ­®ß !ÁéLOW«ƒ‚êÙå¢i‘H¯ ›6ÍÍ JO/.V(òò žEN§X,ñù°O^$ I²oßÒÒ j·N¨}b6Ûíàˆ’Ë!òx$(‘djjPwìXI ¸œDQ‘ÙÌ„F]vüa\k¯• bŒ{?ãçÉWp­Öÿеou|<ˆD EH'ŠÅUUåy Ö£K ˃‚&O<ØhÜ¿ÿâE¡ðúõû÷á)Pp¬ú …Œ°R”Ãa0TUéõÅÅåå2™JFQv»ÉDQV«Ñh±TW?xàpX,2™ËEQÞ|±Ñi¨Ëú7™L&£±ö{ {Ìf“ÉdbVìQ‚ Âf³X,–'ñ µ@ÿú qÓaó âßFÑÇ·e¼ýúèÒÑø¼õ©ôˆ¯Z1ƒ4—@DïñnÞI$"‘X¬×ÛlUUp E‹5nüóχmÙ2vlŸ>iiaaqq …P†¦NW^^R‚¬ÇŽ>}îœËe4VV(© †5êqƒŒ‡#IòùN§Õj±ðxb±TŠªS´w( ¼/QïWî$Ùóºö´5`C.lIóMd³$—/bÚ]¡£C»8çÞb|¾LÖµk÷î=z„„ÈåÁÁ|ð×_“'ûꫯ¼Ò¸ñk¯‰ÅHt÷nié;7–•}õUNŽÑ˜•% …"‘Óép †¶<\3ÇBB Kì¢RÁÔ–¥òQPæ)Š‚Öwßè„Ò@Ì”‰•LævÑ} ®Ñ<™@³ÁÚ,{j|5àÞÚ¬™ ´VkuuIÉóÏ÷Ê+Г7nݺsgzú{ö 0dȳÏvìØ©S—.‡>¼wo§N:uîl³AX vúÇ5õÙÈîîÆ4L ÐÍ̬îåN›¹rëÛ¤ö”(T¿1’é)]÷ïk4Õ¼¹ÙìtšL6û+IDçÎ3›.»sG§ƒ{ «•¢ø|©400+«¼œ‘[ œ7oÞ¶í?Þ|ó…ÆãñÄb‰¥_Ýe€yŠi%H_¶ìÓO—-c‡ƒ]2áóûmÛ¶?þ˜>ý­·Þz‹Y*Cû×SÎѯ&rîÂSî¸ËQ.‘ˆDBa§N:ué$“ét&“ÕjµM‡iiÏ?%®XñÙg+V˜Íf3³§rm¥2ä «K¸[Þþäà}‚êۻлŽB5Æ£Bpx’&C‡¦¦_»VTÄÞ…þzÿ~e¥ÑˆêFHG¥K ɘEw ®½K—R©PH¥Œ¡~1lÀ~2tÀh96gHA}K{¾n‚ ˆ¤¤FâãÁc4×_Õ}!Š­?xÚ[­:]i)££hš¦ûmÛ¶]»Ú·o×®¡C‡þy´†°÷Àåbßjˆ. ƒ‡œÍæ9¾C:h}¦¿XÚ¦—̷㉆–.OÝŤxÒÐïp(ÖÒ¥K—.] G'Á1J'Nœ8qâD“&©©©©z½Á`0Àý»víÚµkׇΘ1cC»yóæÍ›7·jÕ²eË–=zôèÑ£Ôð§Ÿ~úé§Ÿ¦Lyï½÷Þƒ©xh¨Z­VkµUUUU°íˆiTz¡ÆŠŠ‚‚÷ߟ9sÞ<ÐLK—®\¹fÍæÍë×ÿøã«¯NžüÞ{kÖ|ñÅçŸoÛ¶qão¿)*UHÈ—/Ÿ?Ž.žžïÞ³0”4Ó²ÌîîGïù µD"‘ˆÅÏ<3lØðáÇŽ?~üøªU+W.]º`ÁâÅË—?ÿüèÑÏ?¿yóæÍ¿þúüó£GûÕWß}÷ã‡NWR2kÖÇ/\H’Œääºu7nØàn?Ôöžðð°°ÐЀ€€…âĉãÇöFA”—WVVT„…«TàG~[B¡Pè $Õ$þŒŒYYZ]Zj±ÐtJ Ÿo6wè±bÅ¥KîA/SRär~U*ssËÊ œN™,+‹ÏW«»t¡¨Š ô‹0Íf»}Ô¨gŸ}öY±8 @¡h×®ºfÜîî \ûZ4ªÜ-%O­…ö;ó¾°ØÃ¾{CŒ;îߺ<ótj3‹?ÿܽ{÷n4Ý`ÐëõzFãÕ62‚®õ§6Ð_ÐãJ¥B¡P$$4jÔ¨ê.Æ”$«™aZjȨD¿OíÂhd¾V¨È?³}Õ館mÛví/αc¿ùæ»ï¾ú ’üë_ Οo³z½Íf·;Pßyó,ø×¿¬V³Ùh¬ªª¨(/·X¬V‡cÆŒ™3gÌÏþ¹sÿõ¯¹s-£Q¯×j+*ÊËá ½ââÂÂü|Paz½Á`6¯ZµzõÊ•‹ÍætΚ5gάYfsMMuõÌœùᇹ¹wïÞº_ñ¬YsæÌœ y2Ax<µøØ ¿rûMá¦s”AMN§Ó••••••Á7eºÿõ¬ ú/ôW¸æJš{½<‘••••‘ñÅ«W¯XñÕW_}õí·ï½×²åøñrùµk!!o¾ùƯ¿þþûÓ§OJ’:H4eJBÂüù<žTš—ÌãñùÜw­ZYùða~>„â±Zšv:Ífðµçó?þxþüyó‚$ù|“©¦¦ºÚáp:a‹+ ÁŒ³gÏœIÓ$)¾÷ÞL›ýž‰ûö¥§Ÿ:µdɧŸþë_Ë–­Y³fÙ\]­Õ‚¹üÙgŸ}¶h‘PÈç …‹¯X±bL¢îßÏÏ/.>räàÁ½{ß{oúô÷ßÏÏ¿w/3êùÁ~8}:MÛíV+SátĬY}4kJ‹s%A£©ªÒëŸyføðÑ£-› £,–Ñ£‡>|ïÞ£GOœ0ªª40j˜¡¥B˜©>g4VUUV‚^Õhªª 0á[ÿãmÛ¶luçýûÜ¿Ÿ$)Êá8}úìÙ3góŒ=ÿ†úüüÂÂÂB(¦¬ªÒj5ÐoH»wYr—(öÝ¡æÜ;õz»],ÎË«¬´ZËÊt:æÔ„¾}›6U©D"€Ç³Xìv—ëÁƒŠ «5?¿²Òj-,Ôjm¶’În¯®¶Ù„B¦NŠzø0?ÿÁ Ã`WÓûUUME…Vk4.[öÙg‹1^›åpøøëtUUӦ͘1}ºÅ¢ÓUU1:4MÓ°PT”Ÿÿà³uÏ ?ûlÍš5k`S|YYe¥^¿dÉ’% üò ôÀ¦M¿üòûïÛ·ï܉ŠaNø|ð•€ „H×Pfß;ñ’qÕª¯¿þúk>ßé4›ÇŒ=zìXhm“Ébq8Þ{oÚ´©SáÝ =Á’Y²dõêիƪ*|'?ÿüóÏ/f¨K ÈY™}Ü¿µk6ÈOíYø’””tÔ ÷ Ao½Õµktô?ŒÓ¼9|S cឤ¤ÐPfk'ZOéâóQé‚­Á¨tÍ zŒ•.˜¾[­¬t1“(Š"É)Sf̘>=7÷ÎŒ @(‰P=¶dÉÊ•+W–—æå¡eÐé.Úv;PÏ6›ÍéPgo’TKahµ £žyfÔ(ý5bĈûö;vê”^_]­Õ„Ðá (š^·nÆ_~-êtRI‚~²&€|0kÖ‡r'ù+W®^½r%ó%Â~"«Õl&IO$zÿý>˜>=7÷ÁƒÜ\ðýu—Õ†”.t4D1>B,¡£*X¢AAÁÁ*•J‹‹‹‹‹‹!üœ[×n޳篿þú Þ¶¦N:eÊ”)àË\^^QQQ¥Àèm[ã!JcrrRRR0ž’’œœœŒ.h•—k4:ÝäÉo¾9e :‚L™òÖ[o½õÛo;vüùgUUYYIÉÈ‘£F½ð€C† úöÛo¾ùúë­[wèÐ¥ œÖ3yò›o¾ñh•´´Áƒ¬©©¬,/ïÕ«oßÞ½/]:uêØ1 )øá×_7o7îùç‡[³´ôÁƒû÷A²³ïßøÐá°ZíöQ£Æ?¾°0''+ëÚµ723þù‡Ö®…åo¾ùâ‹•+ûõ6lüø ê×d¨кýµk×L›öÁ³gÜ«°°¨¨¤äðáÇlÔ(&&:ˆ44'Oïlï˹îûriëÜn·Û…B‘H,æó;Ç“He¯Y{Ø]V}é®;wœN™,7×lv¹nÞ´X„ÂÚ÷'Á¯pgQ‘ÕJÓwî8R)WŸÃnÅwß6múô•+—/ÿì³’’üüìlô ¤\.»ÝfcÈešæñ4š¢¢ü|8Xjûö½{÷î¥(‚Pë ô ×ú2™ØqgÙ²eË>ù¬$fÿ«ÿ_nm½ò­ÛßÚm›'72^¼xþüùóéé‡:„þ…tÿGFÿáƒ@n›7oÙ²eKÏ ÕºÐk 3î3Sø?¤°éŒ ÃZ2€²2¥ò¥—´Úú÷‡¿@7_¸páÂ… {÷îÝ»w/ßV¤¼¼¼¼¼ ¼ÀãY,¡¡pœ¬ÕråŠDròdr²ÑةӥK"ÑéÓh;»Ï§Ýc-œFôÿËc@•²ÿ‹aFàž )à –[m³øÌÌšš¨(±Ø`0l6‚8|øÚµ’’-JJ¤R¹\©Œ‰IHHJj×®}ûŽCCÃÃ#"޹p9ÕI¯·Ùø|¦¦ÆjU«™³1Ü÷¶zÂá (»¢hÚá ù|¹tÛ€11K–tîþÎ;ƒÝ^ZúòËMšìÛ×¢EpðóÏ›LGeåž=Lž¬×ÛíÅÅ Ãf#ˆÊJ§“¢˜}äî}ít:ŒÁ.>äçççC [€½c+Dè…ÀÆ<ר_7÷Áp«sß5˸fxƒÀÓ=›$e²ˆˆÆE¢ÀÀ°°ää„„ððF""ß%_P(d28³• (Ên·ÙÌæòò¸wúãÎø’0«TLø ”2xwhµ55z½Á`µÊdÁÁááa³éõ‡Ù¬Ó™Í™™Œ³8Dˆµ{€ w°ÞOŒãÝ\@ÍÄÚטuæG|`׿˜2kvž›"}åÀx.<º½Å%ô\Y3õ†`êÃ®Ž¢OqãÇÕ§>ÞÚ˜93=ýèÑcÇ Â¼@Àçóxjuhhx8¼h0õØuv—Ëé3™ÈÝ×ZÙE_ýå;¾3{/,eÀ°ê.4ìSLO¡)žOq%Óýˆö/zO\\\\l,ÄOƒa^¡P* zöÙ~ýL&«µ¦†¦I’¢’““’’“ssm¶‹d2¹¼E‹¨¨KKKKËË#""#ÃÃ!O½Þl¶ZCB""¢¢ ¿ÀW Jb$,,**>þäÉcÇêׯÿ´4>_  ïßÏËËχmƒÐ ?€„ŽŽ‹¯k×N:u:~üÈ‘={Žššââ ®_¿qƒÇ»uëöíš½ÞhÔéjj “I§ÓjAZ5Š‹‹ŒLJjÔhĈC‡Nœ8}:<<22:úÇãóf]]$btøÓ3´"|)¬Æ@¿h÷,(©Á~ýLo5ÅÕAðe)ІJ¥\n·C¸9% cå¾ídþôM3‘Oá8æKgÞÝӟóVh)Œ1Q›tI¥à n29à× éß~{ôhqñ #“‰Å|¾ÅâpPTuµÙìtšÍ6›Ë¥×[,Ng` Phµ:.—LõdjBÓ4m±X,6›FSZZRrñâµkׯ ‹Ã½{'æÍ[¸pÁ‚úõëßÀ€táþM±KÐ lþ[¶lÕ*%؈lЦï¸[¿iú—_6mÚ´i„1cFb–ÉØ/…½ß[¸ Èù_ÿš;wþü»wsrrròòrsss{õêÔ©}{ÈÄ„„„F`² “J÷oHé‚v`ß…it 9£F5jÔѣǎ;Ö»w¯^½z]ºtùòåËK–,Y²d Ĭ|å•W^y啳gÏ;wnÈ!C† Ù±cÇŽ; º%:¢½Ò¼y‹-Z@Ê»ï¾óÎ;ï\¾|åÊ•+pä€z·¡2[ ’dìô¸‚7zó͉'L>|ÈAƒvïÞ³gÏž5kV¬X²dÆŒ9sæÏ_·îçŸýuÆ7nt:ívf1–.’’RRRS!eðà´´´´;þøcÝºŠŠŠ æðá£G‰Î;¾²R£ÑéÆŽ=úùçkj4šòòÐЈˆ¨¨øx¥20°]»6mš7‡ Þ§G.]Ú·ïÔ©G´4ffǶ‹ù|¥R¯·Û Á{6.N¡èÞ}̘ää߇çÁ'úôéÒÒå˹½)Ñtp°ËEÓ|¾¯~çxD{ (GnˆEðyG5*:³€~Ù©¢³Y³¦M›6e\7êö](&SY'“Ùí&“Í*‹Df38Â0û«Yde=|Ø¥ E ½{ÇÅ™L<ùSš ò/Œp]Áî* ïÜ)/w8’’‚‚øüM›nÞ·š ’Hx¼V­""‚M›22¬Öà`™Œ™k›LàšŒËå-è\]Á]€k˜ã*•f³Ùl±f³É½¬R39Ô6òº…à‹ƒƒ##%’˜èòsç®]»ÿË/ù|ƒ!55>>8¸GŽSR ™L,þûïcÇnÜ€LkjŒF›M¯/(ÈÌt:ÍfÎår8¼çC8Móxh<> ;ð=ëÒÒü|ðt6™`c½Ù\U¥ÓÑ4Ÿ/“‘¤@ • *URGQìz€É¤Ó1f¨÷šp£èþ“Ã(C±³žw`£*Ò?2÷ñJ÷LA#ˆ11õ`þžTØ“¯! ÌÚ>{ ÛJþ”Æ}ýÏ|F¥…[+_!8Ðk—Rüæ›C‡¾ûnùò –,™2¥K—5kÒÓssù%/O¯·Ù„B’;îT«ãâÕêøø””üü«W™Ub&O>_ 0›M&£Q,V(˜CäÀ›üó`È °wÀ–}ø°¤¤¨è¥—ÆŽ7. @© ºt)#ãÖ­ŒŒ›7¯]kÓ¦S§îÝ_{m„_ÌÎÎÉÉÍ=räèÑôô¾}ûôé×oêÔ·Þš<9#ãöí;w¾øâ‹/–/Ÿ2eêÔÙ³2ˆ¢Ž)S&O~ýõk×nÞ¼ukíÚµk׬™<ùÍ7§Ms~Šúî»\½zÚ´)S¦MKO?zôÐ!vòÀz$²”:ªˆY™ñ/C&bÞ_$‰ÐM[èp‹ö!ÚƒŒo2èÖ»}Š{œ Zs¸ÏÝLô”ô+@¥…yGÖ»%5¸_˜ØX§³}ûÜ\‘诿Þ~û½÷Þx£°ðÞ=­V&S*‚ÂB.=½sgŠ:4>^.807·¢âÜ9ŒØÞК` 1çP³ýàpÌœ9uê{ï}úégŸ-[G-Ìœ9kÖ‚v»^_UÕ¿¿~ìßðà¾}î_.Ð0èÚ»@†Eõïß§OŸ><žP(¥¥õï?`@E…V«×»o`dêö9ø6A¿°í$—K¥6üúëO? ‰B1|ø Aii̤—ý.˜Ö¦iš‹…BÀdÒëu:‰$008´Š^o2™Í ødK$R©Åb63ZÝ'fìS[¶áZ*•ÉD¢ÔÔfÍZµÊȸyóúõ¦M“’7†q022&&.îÞ½{÷îÝãóE"±8..:::š‘—‹¢d2&HMK$ lôFµ„¯©;ºÃÒQÞ¤+))$„¦5£Ñé„ÈΞ•UZj±,_¾oßÇŸ|2jTBÂôéƒÅļÿþo¿Ý¿'u×ÔTWWUuî¬V“$cê°Þ:PœR ˆ~ýz÷îÝ›$E"±xÔ¨‘#‡­;vì‹/Nœ¸wïßÿý÷åË—.;ç®íYýÀžAÓP¢Ýn³±ù÷éÓ·/ü:zôȑǃ ¦¦&'§¦ž?åÊÕ«½zõë7d< 9®\ùÙgŸ}†zŸ±rÃx€)ËÍp:]®‰Ç7nþüeË–.=thß¾?ÿìÛ7-mØ0æÐè Tö˜Ål’„¯€$…B‘¨W¯=zöd{Öá@u`ýð8“j_1gQÿeT¯²zÙ›tL§A6BCCCCCaZûÝwß}÷ÝwÐæ/½ôÒK/½±,!0‹ïÞ½}ûömTw¡Ò…¶*H„|éß¿oß~ý@º>üpÊ”wßýôÓÏ?_¾¤kæÌÙ³.D¥ ¦“îš4È «ÇÏD—‹¢`„aú¾JVjhZ p8Àò‡@ètÔÁÔ~•H>ßhÔëkjd²À@• ZvI$B!ì1a‚Û€_îW_}ÿý7ß,X°`Á’%ÞzÕ_žÓãE‹>ûì³Ïž{nàÀ~ýú÷ïÛ·»Ý`¨ªBƒž1¤3û×}„méb–á ‚]bgeŒíå—'L˜0áСÇž2eêÔ©S/^¼xñ∈ˆˆˆˆÈȈˆˆ¸×!ç?þè£>B7&€’þá‡üñGÈ9,,,,,,<<<œY¾eˆt4÷tÝˤR½¾ºº¼\­fÅTWëtz½T* R©\®Pèõ:]uuXXhhHÈÛo¿ùæo ßd2 Tª™ÑÍ»3ª‡aœ•ËÙÍåå%%ååPì(‚]Æ@íÁ„Ù•BQ¥Ñ4nüý÷7o~úiMDòðaD„ãÑðù……QQNg\wvÏÚÕÖÙÍÔž4ú,ºËÍW;ÄLJ†J$#F й³DÂçÃ1‰Õjµ <Mgeegß½  ìDR©d2fL‹I’ék“Éje´CÔ¢¥±Že4MAE…Ùœ™) J%H¨ÓÙlùùAAbqB‚\.†…UWÛlùù@=_¿^Y¹aƒwI"I‡ƒ¦õz‘ˆ¢BCÑ·L}X‹R`'ô¾ð?`±@_£€h†w©`(NVÛsçÅþ55IXØ… Ãøñ|~MÓÉã¹\ÇС))_~)‘ðxÕÕèý?ÿîpPTlìþý %R)ž`Ï ŸßªUfæÈ‘O"´†^o0%%ÕÕõÍ7çÎÁbf&]^îtVW›L.×[oµk'•öè/éõ5kÖ‘#ÔÝñPŸÚ¢>þ0³Ðj5­6 ÎH ‚ U«…BN ÈÍÕjµZ`B˜o‡µ±½Ðÿq„¨T‘‘ÉÉ0hiµ·n1«X?þ˜™ Ÿ@°jÕ‚¯¾ 8æÎýüó߇ʟ—AÃJÔ~§ËåpÀš?Û=&“Ѩє–j4° Bˆ·Çã 4-ÂúE¹\6›Å¾Ø`üƒAAÓå¾q[:¬Ãó¬Ï¨Š„‚ÿ(JèZ4[ÂKC€:A€°>…BF~ضbÌÁ'e‚0„8òÒÑVò§ô†Z¥‡ñU+_T Í7皥2=}ôèuëöï饿Í.¬¨0™>‰ÂÂL¦%KNzá™Ìl S*££•J»]«-))//**,DÐI“^yeÒ¤'Î;wN* ù|0CI’¢l¶·ßž<ùí·m6«Õb ŒÜ²eûömÛž{nÔ¨1cЩåÇdg …$épDD$ŸßªU³f-ZìÚµo߃Ñh6–—k4QQaa¡¡‘‘aaaaåå••ZíλwÿùgttxxXXëÖ­[·m{öìÅ‹.€R+++/¯¨ØµkϞݻážöíÛµkߦ6à}÷î­[7n4nœœÜ¬™R©T8qôèáÃ<Ÿ/îØ±k×ΰ‰çÚµk×®^m×®S§®]!(¤´oß©S·n6lÚôÛo:´oß¾}ddTTl,h´_`•MáNÑo½‰ÒÍì]ܧåítæ^£¦@â˜h¡\ɧ(Š ‹ŒŒ‹ Òj·mûæ›]»ÎžMMý⋘˜Þ½ËÊΞ½xQ¡¨ªº};886–$Ç{晑#{÷¾téÒ%•*7÷Þ=æìf…B¡‹/þüóåË““5JHŒŒ‰éÙ³S§öí­V›ÍáØ°aݺuëâ㢣CC¡þþûàÁƒ>,+«¬äó±Øn·X, ‰×¯ÿí·##cc5Òëu:fþü9sæÍËË+-Õh>ýtÅŠ+""BCCC»víØ±}û¤¤ÔÔfÍ&Ož>..!!::,ì÷ßwìØµëöí»w33’“[¶„Ã^`i¤+3óÆ«W““›4iÞ|Ò¤×^{çŸ~úé§”J%‰¤eËæÍ›6-****.?~äÈáÃOŸ¾r%>þܹS§ŽoݺmÛÀ G=z¸€†ñÝl¶Xl¶k×nÞÌÈP« ‰ä“O>ú裲³óó‹ŠŽ=räàA™,004tÚÅ‹—.]º“– .]ºxñµ×^ýÝw—,YµjÕªˆµZ­îرmÛÖ­cb˜ã†j_‚z<ÔÄdH.†ºb'Z, äMwQEýðÃ?üðh<¸< §N:uêTˆ0¸qãÆ7‚ #²B¡P(7::£Ò5`@¿~ýú¡Ò­ º¤kÓ¦?þX·•® ®^½vÏ·Û †„„””V­¾ùæÛoW¯þè£9s.dôØæÍ›6EEyê±JK5š >ûlÙ²ÆãâbcÁ²=þÒ¥‹IR"Q(ìv½^«…“¦¡ZÉ×4í#¸ì´“'/^¼z•¢¬V“I© ¢(‡Ãbù׿>þxþ|ðý‡ãy"#CBFzî¹ýëÛo¿þzÍš—_~ùå‰;vìÒ¥W¯Ý»wíÚ¹3$D­†Ò.×¹s.œ?’yéÒ¥K/ªT*UHȾ}‡:º½¨¨°ðÁƒ„„ÄÄ&Mà1«««ªÐ7B—]Jº˜v Äúçp0¡öà)”Ê|öÙáÇ:tèСCå^>;ýöÚ¤I“&¡ö¼çݾÇt¸†Qæ·ßvîüë/¹\,æóãâïßÏɹsç?6oÞ²B.Y²lÙòå‘‘!!*UHHhhxøW_­Yóï‹D‰T¹mÛ–-›7 B¡Dòå—k×~õ,šúé²eŸ}Ö¾}ÇŽ]ºäççåÝ¿ÿûï6lÞ,•*Jåĉ¯½6iR£Fqqqq0ª~ôÑÇÏ»|ùÊ•_ýÚko¿ýî»íÚµiÓªÕóÏ?÷ÜèÑgÎ\ºtíšHärY­Ï>;jÔèÑb±LpóæƒÅÅ&“^_Sþï[·nܸaÃéÓçÏ_º4}úL›Ö¡C»v:”–VTTVvïÞ¹s×® }YD¾dF£©ªª®.++--+ƒ‘zµ”}çN‹-Z´j¥V‡………•––———ƒ>ýð=ºï§d—yP»¾ö‘1$Än/. )Êá Ifç¨Rù÷ßz=ä¹paãÆñ駸D¼paeå¾}ÁÁ‹Fí 4ÍãíÚµcÇöíAAÁÁEE¥¥EEÕÕZm«VðEÇÇGE©Õ_~ùãëÖ …e±¼øâ /¼ôRŸ><ûìž=þùÛo'NœøöÛì’—Ó¹~ý¦M¿ý段fÏž;—±¾V®\¹òŸwþûáKãã;uêØÑjÍÊ*)Ñé,>Ÿ¦atòÔÞFƺéCÐTAA*•J!"uÙ³g÷îÝ»!å•W&Nœ8±¨¨¨¨¨Hj!`У ÿ苯Ñ_»uëÒ¥K—I“¾þº´R’“““32:vìØ±cGÔ‰J„° P"”¥V_½ºp¡Ý.‘”–ž;¿jÕ¸qwî,YrófHÈþýíÛ›L]ºøšÝ3ÇžÖ…RÉP:£î^Ïžt3÷}QöÃW;˜ÍV«Ã1jÔˆÈå2C÷yg±X­¿ÿ¾iÓìØ±}ûöíáá°OŽML„¥¶'z´öå  ƒ¡ºÚb1› ­V àñÄâ ²²NI 6¬yóààÑ£7mÊÎ~æx âAss“ɤR¹GïGDÑð6uý.@s†‡óxzRÏ$yô¨FÓªMÇŹ\°È„ä‹Ááv³1³~8̺‚!åm6‡£¤D£q8l6§“¦M&»X&Ž÷Í›&Eed<|h³Á9]Œ,óx`-ÍèáúÔzvrC2>_ €ˆÌÒô Ëýn´Å¸4¹dÉâÅ‹ïØqã†Lš ¢4è5k>ùdÒ¤~ýºtiÒ¤U«gÏöŸ€V(¤RoĈ.]ÜO*çbûö7ÜCpæå•–2þÁ0ÑD"¦Ù·s6&®Ãa³1D5¬hÛíVkZZ‡;6mªVsK‡8nß~ûÝwß}«võ'£kjtºêêÚ3„Îã g̘1ãÃïÜÉÌÌÌ„Ž7PÙ0<Ô§>¾ÞÁ €í3©©Mš4ib2Fc@€\.—gggeee©ÕjµZÍœMŒ)VRRRRRò$j“Ì”””””ˆóéh+EFFFFFÖžl€þ­O}îßÏÉÉÉÕ?n­@r"#£¢¢¢Ð§¸Æ4\¿õÖ_-\8iÒ¤Iî÷ø|ØØc³)b±ÕªP$&RT÷î¡¡­Z¥¥Á·›{üøŸ¢ƒ(ø?²â<Þ_íÞ½mÛøñãÇO˜Dèq`|£FÐ_!g†ôçóù|Ü×€<¸\L|14¸ ¼/_ݾktjÇ< ùƒç ŸÏçÃAèš6³1¦¬ÇļcýS \ˆ~mÜÕ9®‡”7ºÙsÂÌ%¹´2êæÌUÍhžµI(Іèèèèèh_r[XøðaQQUUU•N×¢EóæMšíþÆ“&Íž}îÜÙ³W®:”ž¾iSPJ¥TšLf3A¤¦6iÒ¬™Ëåt2C8È|GÌaA$)8Fcu5'•pÉwÆçd’ X‡HcÉ‚‹Í›÷É'sæÌ™CQ ŒÛht6(…ÑÕž$>Ðèvo˜j²½ÄãÙlCUUhhLL|ü‰gÎ\¼Ø¼yRRbâêÕ_~¹bżûîÔ©6»d’ ù€doÞ¼}û®]¯¿>a¸q@?YÏD® ™Ç u¨i‹èÌÔšé_ïäÉ3gNŸ2$---íÁƒüü‡ssïÝËÌT©Ôê°°ÔÔÄÄ„‘H"‘Énß¾sçöí¤¤ÄĤ$hmÔƒŒ+±¾$"ŸBÿBÝ@BzöìÕ«W/œÂ}êë¯O²XrsI2)‰$Šðpîqˆî¥åå+WvëV\,²Û'Åb ÊÅb±˜‰, ~XìîÆ|øðásçÎ;wîØ±cÇŽëС]»ví’’’’˜ïB© Dýù|V~PÝÂH—çôÕê¬5,õˆD‹/Y²pá¢E³gÏžír …Î]¡£!a™¥/Q­N!ðŸ€éb¾#.y÷³ú«+XX¡-‰ÍxG þãÎâ-Л¼/x<¡ßcý©g®t¡ö Œ‰°àýüócÆŒÃ<­„ÚKr¹\¶.º„Ìm´}˜÷t¹\.˜¢Cï¡¶¨¯^sOgÿ…Z_àòþ¹Ÿ~º|ùªU Ι3cPÏl˜÷£)™ƒviš‰¡ŒJÜùÌ3Ï>;|øæÍ?ýôÓOaaîfYÉ?6tq͇ۃ¨v‚ÆZc#ÌrÇt4žBwÃø/ ¨ÅÄ­ 7¨ {(*”Úö,wݺŸþùgð6eŽâ´Ùl¶ÚGÆ{÷äòøøT«ûôq:†® B!A¸\+Wæå­_ïëÆH$‚¹°{Hô›EeÞF§«©±XìöššÒÒˆˆøøÆI’Ç }i-fdógˆ¡úŒ;þâéó€’¦lš¦(.3s×.±¸Y³1c¤RO'2îÈèOÐNÐ×À@¡Î4ÐO0÷a¢þýû÷ïß¿¨èáǙ㸹¡5Qxj3®—.°EEÅÅÅŃtt†û‘ÌvøÀà/¬ó€QÁã‘$ î¾jæ¨þnbÆ´;¥aÒž`?Ò'S¾çû2k†ì¯pBè~’/LÛžT уۃ ¡óèÒÑ ¡õ©J$qkD‡·MCÞÉ ¾}5êÔI p¹*+ƒƒ­ÖÄD‘ÈnW*-–Š —K,6CBЩA¨Õ¬ï52¨wI’$x'æ²BµuëÖ­[¶´iÓ¶mÛ¶¡¡aaà»Áô û(ÅéNž¢ÓÏi:ànqbîaûË“tcžE%=íq®jƒæ`+v"ô4¬Å¢†5·/jOñEI3)¬Œ¡Ï¡S4<7(‡ûDÔÓäðF@³  k_±ŽŽŠŠŒ„¿ ±±I^^qñíÛ 11`ÎBýJK‹ŠîÞ…Íïð”eµ²K… $=¶­º´õ‡|ø|€,á~›Íé´ZÑ%®t¡}‘r{ % чi9D"ŽˆV©à¹ääÄĤ¤¬¬œœ¬¬‰_|ñ¥—hšÏœN›9¹¾nháË7î¹çž}öûï¿ûníÚž=»wïÑ#::66!J†u}´Ü)7—<r´¦¦ºZ«…w  R©òó‰ž)ŠDÌa2°ò fœç·ì.Å,ÐxyhÏ2„ÛG¨±È•«É“»t‰vï¾u+'çâÅŠŠÊJ—+4´E ÷»l6½ž$õúÂÂÎCBt:>Ÿ Äb&Š”mÅjr˜Ø¢aCÐ~d"\{÷môFÁ³_ ó+›ÚVÜwƒ.tqõƒ/ Ä"ºðàK`¿<…^£o‡Jú¦DÑ0ÖšW®ÐýèH.Ìp¥«OˆÛ»wïÞ¹¹¹¹¹¹¾¨gÀ@‹-Z´hDAEGg‹Ådbb(3ô +?\Êê̲¢­Í,-H$Ì2ÓwV«o=×hÿ¢¥û§üäǵ@ÐwdÊâ.IJ€åÈ¥ºP=Æ\ûÚŸÇþÊh’Çy#ÿ¥ ¥oÐãt{l&‚ ”Ò‡w„ ÝCµxŽøîc®Óét¢Ç)Ñ:<$$888¥Y¹}Á½fÊ‚å%èMÇ›=ûƒ¦Mûøã?ž={̘Q£FnÕªmÛ|Eí„<­ÉŽ,(íŽNþQÂ…@ÀæÏ̸<-@oý…J»TæÏ>E®ž÷_N¸íé¿–FïG݆[…µj@:ü7®©yð`Æ »Ý`غ54´G‚‘È› Tb¢Ã¡ÕŽ¯Ñœ9Sû|µôH}£ +?ð&••ee‰‰ÑÑÐÌô죵VÃ;ÿýh˜÷’ËZ·.)±Z)*.Γ‚掌uIÓ4 ¾¥èR7í=4T­V«Q9“x˜¯„•+îÛ{ÓTž÷€o,¸§ìܹsçÎ/¾øâ‹/¾ßÕ®׮͜©T ±±4M’.WJJMM×®6[d$ÔŠ[’$‰D$"«ÕbÑë%©T©„7AßΗTTTTTTÀ}›7oÚ´iSttTTt´¯Ð¡Ç£(½¾¦F¯¿yóÆŒŒõëׯ_¿~âĉ'N¬®®ªbèZ_ ³ûÈÙ²P à«/d2£±Y3‡ƒ$kjÌf‚¸~=(H¡ ƒV±Z)ª¦F¥’H5‚\|IO` H«Õº\EE.—Ó ­ï®ÐâÑô6mZ·nÝöê;„rsƒ 55- ÊËјµNgq±Fça[,èð ëÕ%%ÅÅë×{‹^f(º1œ$I²I“¤¤ÄD‚ ˆÄD¸Ö3ÙÜû„È[î¾'Nµ§×~'w!Œ™yž{޶!w²Á½h#^ôNnÏ 5áúDs§gÜ^åö2* Ü_ýi[_ר§DvðOç0ù-_¾lÙ²eðo0_Ñ%AAAAh \C@ï¹2íÌ”ñèz¼õÖk¯½ñFy9×hkH˜Í,ýxð@¯‡ q Ôj•*0ú§ººªªªŠ›,ð )C† 2|8\£û!ü¯iN÷î]ºtë'!%99)©I¸®¨Ðj™º…„„„„…f3C”{/ÇóÈAvŒ­ÈxÏÑGŒ9»=j—®‘#›5#É‘# ¢¦† H’‰Åì<*QnŠ?¨LÿÿÝø§ÈVº¸rÓ]%”„IóGºââbccc¿øbåÊ•+™´G2qqqqqq\Ýåÿ[ÕMºtºF5ü%|ãéJ•.fç»c€! Ø]ð:’‚Lúö\FÇ_¶\ô[†ìf‰]oq<Ñ|ÐRPýL’$É„ƒ`S>úè£þõ/ø7Ùä­¶ÞkˆbãÆ_eâ‚"÷x ؉äë[óÿë@#T6,eéµYWÍæGÌÂ9A0ÒâÿÈl·¿óNMÍÖ­þh-oAÔPø«Á¸å+2™N§×ƒ…ÆØiÿ³´VCáÉé®k×üóO­V¥JHP©,–ââ¶m{÷†Ðëóu03Ï€0èâºlP{ ‰Ú¿¬Ú…q½{÷ìÙ³ç–-[¶lÙ{X%@Cp0¹ j5Ivíºxqa¡ÍæruízùòüùN'Aø^²ÊÈ(,‹…B¹ÜfËÉÉÌ D{õÞ½¢"‚hÛ¶m[f´h¿?þøúë÷ÞS©76,,,44,Ìw°VÏùf‹-Z´l ¾¢>cÆŒ3fÀÞh–dd€æf6³G swÞ<ª·IR. ¬ªJKS(ª«{÷6”Êsçl¶€€Ü\—K*Õh(J Ðëy<§’lÝ:2rÔ(¹\(Œˆp:].›íúõÜÜÔêòò×^s¹‰ÎáAK:’[+èÓ´´´´´´Ã‡:tæ°7}ß¾}ûöíC^Îår¹`–íÖ¹s—.]º {}-Žúÿ-(4­Ó©Õ E~¾ËEÓ<Þ¯¿^»6mZrr“&r¹^߬Yn®ËÕ¤‰FÃÔñ€æóÁZ(„s;öìéÛ÷I„àH„B¡p̘þýÛµ#‚8pýÞµeË-Z·†w‡…ìììlo_^¯^mÚ ûçêZhgàI Àá57mšššœ ‹±11ÑÑ.œ?ájÕk4Z-ÄÖj•J…B¡`Þˆ¦iZ€žh±”—?x H$rùòåsçÖ¨QDó#|v»Ó¹~ýÎgÏÖþP@›6 L&3Ô¤?/ߺuj*‚€¦›487Ô ônòx;Þ ½h,X%ð^8½zÚ´÷ßÿ}5†úð d¬C l÷ü Þ¨ß%\C*“ÂÞSPŸŸŸ÷îÝ»wïB A-¶hѲeË–LpwX_"Ifó ¤ ì˜ wìºãGÀz0[ ÙÕ¥ðp8hRXu 44¤À5x΢aæÑcX¢¢¢¢¢¢ê_wÏ5X“·Ûívh´ÑV‚ÈVŒ‡ «ìÐPÁÁlŸ÷ÜT‹ú¡D!ws"Dzš˜[+Ô{ƒûup hnНSDãjΖÈõ B=¶¼SÔL¹?Å%:½QѵM¢Ü¿<4íq‰"t!]5ånó÷Uºû0ƶ$·gàßÜ8ÎÞ¨gï¿qû‘KUׇtF¯™¯†Í"VT”———ƒÑÀ]µvϧ!§‚¾JùßéÓÐhØi¹?9ƒ€ÍV!!jµZ“““““ÃøO±ßZAAaaaarrrrrraaAAAWæÝs~üïÝ`éòOK®àä*+++++ ÕŠð+\£Òº ¨œGIÖ]ÿ-ø'e •.Ð]ùù¬FbÂD }G’$ 1RaAÈP÷ýFP —f%ÍÝê`Ó¿`Öv…|¹ûÉÜß‚k_y¾·û¯h;x—o¶z?úoïO¡@÷øúÖ¸V®¯ÜÐýOBNj‡ÿò o .ÀŽqXa% Œÿ;ðä´VëÖii#F°ÿnÕ $ (_Hó=2úË™Ôõ]ኙ]²Rê>Gð¾$æë@¼GÍõhš¦»víÒ¥K—Ë—¯\¹ræË =gÍAÜ¿?`@xxYYûö\®†[Vuulì÷ß{–Í×iµq¿8xk«Õnw8òóóó ‚‚76 ÈSæ@_ß)Û&”¼ž}µ;è"áíH’ òówîœ;-ÑOU›æàótºÎ¥Òšš-hšÇs8hš$áÜ>ßåâñ,–Œ ‚ع“¢‚šÀéT©‚‚JK_|‘Ï·ÛCB¸žæX¶÷5—´nݦM›6@.C8,pU„·3 ƒýîÀ‡eŸÐ_AJ™Ö¨›æŒŠ È˃묬‡Û¶e“0CaWà Ô3Ä5†¿(ãéþ€¢¼/EGÇÄÄÄÀžc øQ䤤”””°dÀ±¡êÔ3”d7ëËð'PKæ?’d‰Ðý{yy¹¹÷ï3ûM=÷ Ü·E;6›ÁŸŸ‘aµZ,iiN'ãìN’%%åå:Ý7ßüö[zúß>ÌD·áÔQHˆRÉã©Tî[€ý:\>j“‡àžâ F¡·{5ª;ë#‚']w› àñÇõû@_çååå1üg+Á‰ä@×§ÜÂÂÂÂÂB_¿2ë«ÞäPŠ%v™xyEQÐÚÜ…4*%³UÃs)‚{ãA왂ևïÒÄ÷,Ë=…}&O£ù ¾ºîñëÐ`0ɤiš†)ûò{ê­Ì]À@— ˜í<žÏ¢O¡[QÐf±„}ŠÙ’ï™û‚ŠçKðºàÖ„){ZäÃæ -ä5JLLL.&ærÝ€ö Œ${nmó•‚~L +Ͼrv¿‡Ý:Ö‘û4:±GfÐ~äFúF P3‹û7¸¯_Ýsfs«;<´¸93uFŸñžúohgƒÁh4oß¾uëÖ-Fw¹\ZˆŸn·Ûí-[¶lÙ²%´0ª1¸½ìK6Ü%íÓڤџ;ý¿ß½†¬¤1O¡›7QÝîùîSG¶OjoùÚúØ{ÀHñ ý¢vÙðâKZ¸ß*çÜ:³)0"À¿Ð s*:›'\£ÒÅ讨¨¨(fñ·—k×Z'-Þ4ª—¼Ã]ÿ°9¡e2W¨ÔyÿvÐqЛtyÊ·—QùA­®îrÊSº¼IEí)þJ—¯;¹š Ÿº –͸Ò#&ôÂû÷ïßßµk·nݺEDDFFF¢½Î%îß;Ú;hzêƵ‚­¡»ìø’GXwÙàJà£Ç\nÎ赯± Mçj$o:Êó)4…k½øÒ]î‡9×&óÜÒÝóD%ÊSwy;¥ƒ­'D㽞}ЃŒD±63ñÈØ°##ZŸ'ôKDglO>z‡«û¿üs?‚Cà!Æ1ÓÚžåRTQQûöl>žÚ¦öšxÖ'<<<<<|á ,ðuxh3ÀÕo¾-sõêÕ«W¯ú¾‡½í/ÊÏÏÏÏÏÿöÛo¿ýö[ô)H÷/„·w˜õ¹-‚‚rrÞ|“$†‚Ç#IŠ’ÉØ÷öÖÜ€Š\¨Õ!!!!½{÷êÕ«W^^~~~>œ Æ8¸\.,©šïKæ¹.‰þô ŠÈH¹%àšYÞîaÓ|åÀ½öý¬gŠï}çêýNï  a"Ñs[½æJ2Pù¥¥lˆ®ïvíÑ–¹×Þîõ·>µßS×/•î±0þD]Äø¿ ”àZ‡‰ãÆÂ}Á݆œ,aüÏP0ì^14€J‚ Óu4¾6è1,]ÞÀJHêcÅ=AºŸ;–~aü  ‚ `jç; Æ£C••O»}@Ó×ÿ0vmÄ õßV¢Pç æðXOÝ…GFŒºÀß‘ñÉô!ð3f̘1cîÝ»wïÞ½Ç;rÐû3uÙ[{ÿóy<øG²û[îã=U—ž¢¢<·¯}™ÄW«úzŠ›–°fÍ_|ñœTTׯC(„Ш<ž;Û®là½Î­'ºØóòÏô  Æß&Mš4iÒŽg‡Ø °gDõHÃÖ¬#ÿ5‚R¢£££££!&ÎЖ º€¯ðÅÐûÿYgkÞ<&† š7o˜êú»r„ñß54¦óãÁÿõçfý¹¾¦¡?oZÿÖOmðʯAé µSϾÒ}QÉþ<ûx GOyöç)ôN 5`Cókm÷ûŸÒPð§/üÉjÈB)ÜaO0XÏ&Ô×É×âWºÀô¥3žöÛa<-°:%¹^fè3\ébžâæ¥ëÿ:HµOÓÌ㌌A ;2‚Çk}Æv…B.—ËÁS¬.g0ü÷¦” •´É“8Ê©aÁÕBÌHçé÷ À##†xœ‘ñI€q)ðô~T„z÷w _!€¸Ú¸îÔ¶÷{ê’[í35® ÔÓ%”gVûO¢®’Y×ù¬¯½5¨”ÖµÎ6Aðù\nhÜà`•J¥òï]Øý Oè^sØ[söì™3gÎpïdKôÞzõÐͰ à­t@ ˽ î«> ÿkSè§½åÎ%tEXtdate:create2010-11-10T14:11:44+01:00ô]%tEXtdate:modify2010-11-10T14:11:44+01:00…Då¼'tEXtpdf:HiResBoundingBox959.88x599.925+0+0×eRa tEXtpdf:VersionPDF-1.3 1 0 obj << ‡XܽIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/zoomnormal.png000644 001750 001750 00000012260 11617757645 023005 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞwIDATxœí›i\Õ•ço/×Ê­•Jû.´ „Xlhƒ1c cì^"Ü_ú[hGwãè阙c¢¿LG´c‹§›Á6Æla„Í*H-¥­$•¨}ɬ|¹½ýö‡—…-lpSBáĬ—ù"ëÿ¹çÏ9÷¦Äå ÚcÒÞ@Ô¢=>¤ß}Ë%ƒDÛUUõ(ŠBˆ„"dµýyÌ5ÀoYÃöˆøˆd¨Ÿ¤¿Þ3Ú0ô¤ièK;²™-‰„uÍØØÄb»Þ,™†®hºž’eIßrœ²ïÀYàp{œêíïóùD|Z3@„¦©Ò¼žže Ë¼Ý¶í­Šª\™N%zŠù<ÅBž„©R(ÈæŠ(ªJè{4j<×§î† žcllœ±ÉéñZ­þ–¦©;=/ØåÁ±ñç‰øÐ¹ÔÑÓݹÄ4­?‘eéSÉä²% {Yºd!}½óH&M¤(¤£Ð… ¢!É "Â0Äw(šŽç4q=Ÿ‘ÑqŽ?Å¡#'87<¶·å¸/Ðj€‹Ì†KI€ˆyÝÉù½ÝZ­ÕÿR•Õ•W_u«–-¦X,bY&ÉTY’¨Î”)ÏØ )¨F#‘ÆÔ5R–"¥În¢(Âq]Â0Â÷|Í&õz•º]cl|œ={^ãÔÀÛîº?ºî*LSGŽ|‚0@È:ïôŸâ‘üˆ™ªý©rõ_¨k‚P暀„e&‹…Ü?&Ö=÷Üñ9Š)¢À#•Ð8vüÿüпP,ùã¯ÝÏ–-WÓÙÕͲ•kX»n#Ét†‰‰iÂ(Âó•™*år…0 Y0¿E‘Ùõ«ôövÓY*’ÎæQ¤UÓèîî¦V³9Ü2çán!D‹8|â\aN a™Æ6Y–ÿþ+_ºEY¼`>V2C©³‹áá¾ûè,]¼˜¯|ù‹ EuR™\´xñ’(‘LÊ–•šª–Sé¤ëÈ5³Ùl#™JU#˜~wh´5pfÐL¦Š×r8Ê¥‹ ÉväbTM‘Ùèhj¦Z;Œ´wi‡Áœ&B’$u†Büùæ «´Õ+–‘ê(b¨ i¿|aÅÎnnùüM´Üa·Äò®>{þü¾š¤È’çyé \Ó²lM×à BÍ0\Í0[ºaÚ‰D²nšfê­·Þ\¥êF÷ÈȰ~rà¬dêKÈŠd29dYeÙòåôvwjgG–ûÐÚ$yí®*ä²×^¹~¾ß‚ E:iqâX?ýÇOqå†õ M1Sk5-Z|zA_ß°išÍ0[ÍfsÂuÝŠ,Ë¢(‘¢(¡ªªBUUaš¦”Ëå‚Õ«WŸX·ný/-ïÐèø¤S®V‰ßBàÔ§I$“ó ЀÞ&@‚¸à˜+ñ™…ó»’Å\UQÉ;1t‘)›D¶mÆ'§Ë .|'ŸÏO)ªI’$¢( £(šÍë}ÀBø€+I’«ªª›H$ZÙlÖéëëîééùª¨Ó†™"ôªå1|§‰¢¨D‹n2q=1k¼:×H@B×µÕ=]%ÂЇÀA tâÙh ¢ˆÑñ‰V±XØoYÖ´"B¸B'Š"/Š"? ÃÀ÷}ßó<Ç÷ý¦ïû­ Bˆš¦iv2™¬¤ÓéIۮʹŽl±Kã;uTE#ð]L+…$«ØuÀj kŸs§’$Iº®k†&ã;M|<š3ä:òrÎ Ìt¼£*Ú»®ë&Ã0”¢( <ÏÓÙ÷}I!EQ…aèø¾ïxž×ô<¯†a˜Ö4­<>6&=3°uó†µfwgžd*I"™" \\§ÁððÇO ªŠ‚pÖûïaÎ!)²ȪN¡{!™TEõ©ÏŒÓÛSBSÆÇ'FÇj6›®ë6]×MIÏó4I’$€0 ý ša6¢(ª‡aX ðÁäÉÇågžþÙŸfÓ‰u[6,Såd]SÉwõ!+*GOíc|b MU›Aêijþ½ÞÁœ®-ǃç†iØ C%a˜(šNW!Í×ﻃýɯ®{û·ûç÷Í?eÛvÞ4M+‚”¢( !B )„¨GBÔßoø¾_­Vmçà7{úÔS_sZõ _»ïNJy§†ð5 #,Éœ:uŠŸ?·ÝÐE½ÞkqA™À#Oì Öh±fåbßephä­ A\ ãÄÍÔKB€  kÚL‰ë;K…ŽR1Ïž7püä”ÈA&@×HŠIšŠªHºhªŠ•H`èÂk`è*éTŠbOÉT–‘±Iv½´—üx{÷dÉÂy,ìíâpÿƒCãûüÀJqƈÅÏå‚®Ð\öd äLøM7´¿^ºxÑÒ„eräØ :²æuY»z)WnXO1—† N&“'ÕQB’eÂÀG a€f$ð…J¥æpøíìyí5N â:-Íïba_“e›Ãý§½éû%ÏóžBŒ{}˜Xýß× ™k λÓ@‰k|Ó2­õ+V,áÚ-›©Ú5>L¹\!aêt•ò”J%Š]óPda@«Ù¤åT«6•ªÍÌŒ ’L©³“ùÝ:,‰™j•#§†8=8r& £AìBL·'Žý‹öçz_ î¾TdIT5efA_W­_M1—âŠUKé.¦yð{?ĵ æÏ‹;D§Ï¾ ’„ªé "L]'•JÒÓYàŠ5«(–ºÂñÑa^Û88;t®å¸{½ÄÞ®+ýTûï÷-}—’ pu]_¥©ê¹bÍÊ?÷ÙÍtdsd2ißå•=oÑÓU¢Ùj‘ͤX´h!²šn ( B|ÏÃC7`brš#ý'­OLNòýàMâ‘Q⦧M¬ø•öµÃ‡´Ägp.Ý][Â0üîÊe‹6ßyÛÍ:»I§;0MíŸã'N°béöî?‚ëz¶®kži†¡kª¬¨’@¾ïùžçy’$7¢(št]÷¤ã¸ýžïŸ#nt¶.0¾Ö³^ÿÐM˜Ób±hAïµQ$¾·bͪÕÛî¾l¶Ó²ÈfRüòWÏsôø 6­[Íøä4–eN5[îÓ•»Ìù=@!!…²";ªª6€ºïûvE âDÆkßlÐl_¤m1˜d *ó[×}tíê•«·Ý};…b‰d*‹!ûë?ÆÓ;v±zÅ2ÍàÜð˜ð\o§ã8ûˆcv¦mL$„aH†aÛ¨ó›¢Îc–dø,>id Êud¯Sd塵«–­¹ïî;Èç hªL¾#CËõø×'N:iÑÓÓÉþƒ‡ Ãàí™jíE`‚X±g×ë¨ý½³åkÈùàÙ ÐÙëßk{ü“$@¢l&u½ªÈÛ7®[sŽwÝNG.‡iYä;²èºÊƒ<ÆÈð07Ýp-£cS”Ë•V«å<ãÁ±jÏÿ‚ï¾€Ù× Éù½ñI Q>×qƒªÈÛ×_±rõ[o$aH"$¡I(Q‹gŸÞÉÎ]¿æúk7†!ýÇŽøÞ ¶]›XÀ¦‰¼Áï¯O Ÿ³[_ŸUUõ¡MÖ¬ºëŽ[Éf2hšD&e’IY œ}—Ÿü|«V,%“Ô9rl€HˆáFËýEE6qÜW‰ãù’ÿq$@dÒ©E~xó•ëVÜ{÷˜ºŠŒO.["Ÿ/0=1Âöï?ŽBD_O©é #c“Q$Ä3v­~–XÁg–à·ýÃOÿd JX檢ìºÞñz?«ú—4ößgИՄ‹yB"Ó4¶*²´ý¾{ï]ôÀ·¾ÅÖ/ÜÊÍŸ¿™|±“×÷½Í¯_zÊŒÍѧٷÿ6mXG2“£^¯qr`0ôƒè{ÓÓ•ýÄFOOwîLüíø`1d½Äñ8zÁû2€iè[5UÙþÕûïï{à[P,TUEQÊÓe^yu7ÿëŸþ‰×_ßË·ÞD!—GÕT8ÈTÅ~ubrú=Ï«g}| Eu©ñA pˆ3± À}@¾ý~¤*ÊVE–¶ß¿íž¾¿ùÛ¿¡X*!Ë RûLbŠn¸á3är9Òé¡ïƒ,144ÌèÄÔLµj?éy^Øû5âÂå’ ß…¸˜Ö‰gÇßwʲ|O2™øço|ã}ÿõþ;™L–sçÎE!ª¦#Ë2š¦áû>ßþö·™œ˜äæ›?ÏÉÓƒ8:CC#ˆHü¿z½q’xºÏð) ß…ø°<À~Lü ÿ9Š¢ [®Þœþæ7¿I±X¢å´˜˜˜DS”hÉ’ÅR†’¦©<þøÿe×®çÙ¶mV"É‘#‡yãÀ!„çìZãUOõÙzýS÷>üîU`¸U’¤333´ZM–,YBwW7vµÊÞ½oHkV¯”V‚ýðÀ·þŽM›6±víZ’‰õFƒ#Gû#E?µkõCÄŠ?A,|Ÿ²÷á·þ 0³™ÔnY’6:|DÙ»w™l†+7làµ×^#Œ" …ý·àù·Ý¶×u8xàN«ùæÔtåé(ŠÊÄú2ŧ”ô\ F@ø*ñ:ý}!ÄÁ|¾ÃJ$’«Õª¼cÇ*3ºººxù•WØ·ï-^xé%¶Ý{/étY‚cdzg÷žr­ÑØÞl9ƒü{ï_¸XO0 \Aì¥Cħ* ²"÷eR©oX–õgÙLÆ´ë5:;;)O—©T*|í?}• ë׃$Q.—yâ‰26>þh¹2ó#!pˆ7&&ˆÅï²ð>ü{Tˆ’"&@#.NjQÎTíÇêF½jÛžëè訔g‰÷ê„ Š"¢(äÕÝ{(WÊGæ!p‰gÒlóò²1.³ÝÔÙÏg„€EbÐ÷ƒÍµZ½OBDŠªH¦¡sìøqÒé4Í–ÃîW_uæöz£ÙOlô4qÎÿ©e|†R DŒp=°t=/)IT3édÚ÷}|?àÈÑ~†GF_n4[϶ï¯pþxê%-u? >N1ÝÄâøñnkwEÏ6[îߺ§¦§RSSÓC~ì ½1bÕŸMz.;|4à6⃇‰Åñ  „x>Š"7 Ãk„g€§9oülìêkþÅðq:B½@?±@.v{¶B\3_Tð.çÛÛpÁïƒ.'|Ô`?üYâ™På¼WGÀBà‡Š ì!ÔÙŒoöxÚe…Úò‰•\âüFÄ,4âÄ釯Síûß;ܾï²@øè3@pþ‹ôâRââæÍöu•xÉT‰Iûÿüµæ…Ѐí× a‡Ä\ƾdø0ã!žAf¤þ[>ûþ€?à¸,ðo\!—°›KÚÁIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-48x48.png000644 001750 001750 00000003466 11617757645 023216 0ustar00simonesimone000000 000000 ‰PNG  IHDR00Wù‡sRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÛ 6}ÒÛt¶IDAThÞí˜LSëÇŸCŸŒ ¬k­ÒN-Ò*™:HA.V³94m3LK0QQzÉ£L;2‰X™p‘µDáµH3æ/èè$‘öŠW3+×ÊV44×]iZjÏ9ïþÂuܵänI?¾ï›ïó~Ïóœóœ÷ˆ!B„"Dø`°ï3x___ŒÛíþ MÓŸoݺµ/lÊÊʾòûýñï#„Â(Šú–EQ,„sêI’Qýýý’$±@ À bcciµZÍV«ÕÔû`N7888([¾|yûLE(ŠŠ"I’1Óõ½½½?W*•îG%û|>ŒÇã!•JE‡-µ………ôl–N^^àñx8ׯ_/¸{÷nü‡j1¿£fµö£££I€Å‹ ñc´¢¦¤éYM0 Ìl6ÿ Zÿa ¥¥E …°ÚÚÚÔÙ2 “ÉZ;::^étºkÿmÝ;wVæääìv;qêÔ©Þk×®IŒFãóòòò¡æææÊo8wî\bff&¹oß¾!—ËF£±[*•¢cÇŽ·’$_±Ùlzdd$ùݹ‚‚‚øÆÆF>Àýû÷9/_¾ä´´´ wuu‰›››ÛÆÆÆþ¦P(4l6Û3ù „¢’““vôèÑÜ{÷î]–ËåËÚÛÛ{*++OVWWÊåò? †`||<í÷û111ƒW¯^ý @VV–(§Ó ×ë[ÌfsžT*¥e2åñxX¥¥¥)CCCÝÝÝÕÏž=/**JÉÊÊrôôô°Ž?>& L&óekk«055@Æüùóý å.]ºô‹ÅZî÷û}7oÞüTGètºî'Ož`›7oþÒëõžr»Ý˜ÏçûóéÓ§çX,–ÏÇ®ÇGÉd² óxÿôÄæNž<9:88È6›Í¬³gÏ.(--å­X±âéééo²²²îìÞ½›/‹{Oœ8¡Âq<äv»/ˆD¢ßO¦-55•âr¹¨²²2Àd2ýabnÁ‚H  «Õ-P(Dz½~²GTUUu™L¦º… "N÷xbœÏ磼¼¼/l6[®H$BƒáV«uóŽ;‚………ãF£1 11mß¾ýá×ä²eËhÇ‘^¯{wN"‘ >ŸÞÿqvvv0..©TªQ€={öJ¥’‰DhÉ’%“ßß¹sç"©TJçç犋‹íS5ëëë¡Õjé7~ PIIIç…A( P(Ì{wA0Ç¡¼¼|Ûððð'íííœÕ«Wnß¾PWW÷)‡Ã¡:;;™‡ú•×ë“É´ïmw†”””ëMMM¼ššš_8NAQQÑ7Q(†ÖÖÖMdëÁƒSã6555Z­Ö™u÷ŠŠŠ_ã8ŽÔjµ·¡¡¡ùÈ‘#cõõõ-UUU« ‚@[¶lyµk×.\.G‡¾œ––F¯[·.‘‘Açææú\.1gδråJº¢¢¢˜ ¤V«ŸO³aÆeggSf³yÉ;ñ?•H$(??ÿ›óçÏ;pàÀHJJ =ã ìÝ»·rýúõ¯G¼ËåJäp8êþþ~†Ñhì‰D Ñh$µµµg5MÝÓ§O“T*Õᤤ¤¸„„„yóæýõ­HOOï‹Ån6›-V*•½ mj0›Í·iÓ¦F§ÓùUqqñ?/^¼øÃ·ñ«kjj$‹-²;5—˽]RR²ð½j !„íß¿ÿK±XŒ¢££Qll,Z»v-i±X憻ØívbçΡ5kÖ>Vkò_Ã0é …=|øx<Þ8“Éô†ÛÀ•+W¾‰Dz½~©\.«×jµH£Ñxù|>JKK£/]º´>œú999T¸´˜ßñ³…¸~¿Ÿ/—ËŸ‡ÓE…mÿÓÀ0l¢ŒÀópgøõë׳k€Éd‚Á`M÷ä¦;+ƒÁ¨7oÞÌø|}ëÖ­ÿÍC½R©d³jÕª9>Ÿï§E’$‡$I6A‹B?ù¤­­UVVÖÅãñš·mÛöÙÿÍ­Ä… ’Çããã±8Žû3335¶°ŸÈf ­Vûw™LV¢ì»ùï ­VÛe6›Y‘k¹"Dˆ!B„ãß„MÆ  y|IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/rotate.png000644 001750 001750 00000015361 11617757645 022113 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ  2Æ"‘±qIDATxÚå{y˜Tåîû}g«sNZ{ohME4¹FœhœŒš'3‰¢f¢æÆ¹ÑQÇ;‰wtânMDPÀ‚aqAAdºé½z«êÚÏ~¾û§¾Æ $Ä™û{žóTUw-ß÷~¿åý-8~ }êµ@ÅQ¡'ð Àÿ9à\ú ~×_]¸øLÀ4ÓçØ €áÿ#á¬ð€À ùÙÈqKPU"ázºnšU©Tv€f¹“¬Ô–ó×Ù¿V€ ÀñÙ©6N…7°à’Qµ5Ue»÷©eŒ½Àðu2$@P  JUÕá€P«iê°`P®f–áOp]ð€85PBXpÕw¯6d à`Žhhî€íNçëˆ   @ÀLUU.:dÐí“'žqQ]í+Ã!õÚ€"OVeuTª/£ä@¯ã8¥Ôeìø•çû/™:qôëûƒki@–ÇàyŒýúá'ɆÍÛn°@ß j0ÀˆsÎ>}z(™ÿã›oààaµÕ œ€\6ÏsÙƒ‡É¾ƒ ©mÛwu×74ÝÛ×—=`÷_RêF¬[;îl„#1¡º²ŒÕÔ %‚(’uC°wÿ¡½É¾÷ô0OÀ6ËL0ëŒq£¯™tößå(]×Akk+% Ì1™ª…‹Ò’ˆ5aüX!Õ*Î;zæÇ‡Vç Å^í¼“ €T­ºóg?© i! ÉVEy¹ÈÌu0éœÉÒæ÷¶LÊŠoùaÑ:ŽÍÇœ àIF5µ¯»«wQSsÛâÃGWihÙÞÐÔÜùq}£,I"D¡p‚¨ˆ±h„•”–(§¬‹Y¦këèêð<¯ý«÷åzI€~|Ó÷gW”— ²ºÚÔĉDã’¡ç lj•AÕ¬º¢¤dý[ïŽcŒ­óµÀþŠ‘h¨Ï)JÃÆœ—Ž6µ¯J¥3»»{Rû»z’{“}½;ölì*‹^H EC¡pTÓ4* —ÁŽ]ȶ{^0(Òf˜¦5ÀÚü,¶Ø¦? @ŸqãÖ,]ºTž?>Y»þòî¦Ívuu¥qÏýqÛwî»):ñÌ‘Š"¦£‘FxYxuÅŸvu÷¤ž¯ol›ÜÙÑ*´ï(^\ô"‘$‰œ{˜Ï}Ë–€ƒëׯ·,XàƒAðϧ¯®ëBEŒ= ;wîD[k÷?ˆçy¢ëº‚$rcç_yñà gŽ‘æÌ¹”¯®®´bžw‹ê…2™Ù{ A ƒÓ'O€PPÅéc†a쨡(rx $†ªÈàx„ ˜röhÐ;>Ic étFQGÅŒ)ÈeÓ pQV‡*óP’‚ÀSôõ¥>!©©t¦c箽¥¥±ˆé¸|wo’Ô×7 ‡šÛû2™Gw|t`‰ºûUè·Z¿ñ7 ú‹×dt@m< Šp¬"@áR^4Uâ|è¿bûàe|ÿQ  ýéE–uo¿K©‹ÓχP8†X4Q p ápj0Üÿ}/4eÒÙT!Ÿ/Íf³hjje Í MÏ­}gËÃ0Ò_µ2E47öû`ØÒ„ û©tV c¢‘(að\Es  Ê*|è§BW?éèðÁøÌ*Tk{ÖnøÙœÆ<0ÆÀq<ó•BÓ´þÌÑìíËv}|¸±«¥-Ö¶¾¹¹-uðãÆ—ßzë½— Ãè>žŠÔÀJë¶zAUÁ¡µ¸ô’K`&~óðÃb0¨T‡Ãˆ¢ϵá˜çXºWZVA}ÚÉàž‡í8Ÿ—úökÓŸ…¤£Í ¼¸d8âa̘ÓPQ5 Å|¼ âƒw^a“g\•·,«þÀ¡#­¦iˆ½==øpçž•kÞÜü€'¥,nÛ<ÏÃ…\€Ÿßy ÃÀo~8„¢”Ø2Báx|Îe!>€cÓ9Ý´¡ëLˆiZ(u äóØŽË!ð<Œ1¸®Ï;æ¬÷jÄ^þnüÛ0d5Œ’x)Àl€1ÄJ«À%„†£-Ùuo¾ ×e¿_óææg† ©ÞߨÜ~òú†iãxØ–ï%Õ"š*îØ´Ì#„ƒmépŽ ¬ß° ‹^^¶öNx̃ã¸' ÀÀÿõŸÀ/¼æ“¢o$å)¥÷yž÷€¤|gE°ž|€Š&’}}hinAO²ºÉL¥‘Ëå‘ËçQ,ê0- ¦iÃó<â×ñ:ßYý‚«È&ϼ& àkÜ »wÛf!Û‹†Ã‡°|ÕF¬Û°†éÀuñ‹¯%‚À㥗Á4 ø!ù Œ³Œ÷5c¬ÿcî0ȯ¼’þküc0xP%¢a I„( ýæI Çq „€ã8TW•ãæ®ê§ç󈲬Ñêꪥ÷ÿó}ì¾ûîe’$­ñW@.<’©Nšð‡%KÃ4M8ÝOdÿ18àµX7¬&‹¢Žç[ë(%¨ª,ÇÕWÎÁÏo½üë?Áo„àGÇ,ôU53`Â`¼ºäY/Õ khllÄsx kÖo€ã8œßE§•'~tÃåuÏþŽ^Z¡¶Y”Âö4·´à‡þ­pà`ýB¿Ýþ…ÎñT øÕ¢¡‚ÀO©ª¬¼oîÜy\"ÑÁö<äz®Ë::ÚL6›å(×jÛVÒóX«_GLúW›__ô|ÎQ[^ûíÿºóGeÎ>'Ä—ˆRºa‚ˆ1ÖÞÚDžzö?Ü5ë6>Jîg ùí°S P㯚7·ãåW––$ âºdYÁm 2neEœ™Ll‡!_4Ð×—F±Xtm—s™´‘ɦ³Å¢Ñ—Ë’(Ž}ô7÷1£ÇÂs‹ÐÂ¥q¤~/ryË_}//_½Âc¸Í¯IöoI¾FføSUUP(5B íëë#„°c™¦a0YQl—…ÃÑT,T‡× f¦išŒyDVÃÏ‹Ôq, Z.›,±´µ¶„“À¨„b±€X<Ê `žº£ÑÝÙ‰k®º2¯_öÒ71Lkß8Ó`ÊŸ*ï§ëˆ/PEQ`Y”€ B)a LS%¡¶¶6ZQ=Y {F!â…!„ƒ¶-dúz HOW‹=´¦Ü“•Q%Âl;OòzÅ\ ¢¬! yΟ6• ©6â‰çþ¸¦³+¹×Ï#Þî?œS€Ï%D^à‰išp”PÈ’Ï󈬨"Q•' àÂEùXJË\—c!¥‚äÒÝNX­ÍJ²÷\®çžƒB.A €pl<ÏCQ$ÔÔ ÆŽ]öì?q+õÍÒûÂzÀ_H89 ”¸®‡\1EUA(c[ð¼¥<ÇAÑJçEð‚ˆL²ƒ–ã¶´´êél!^_߈TÎb·üý quæ:–©³)ÇÒ /H’Q0£OþÇròúêw–YŽÓ?€¥¸À[ øP8Byž¥ápäX„òŒyÉærèHô¢»»‰=Ht$ôÎîîl2™NeóFg>_Lgs¹Fç\8mÒ´úCûòUåqãh@ ¨¥¡H«@÷îi4~õà¿;û5?ìÛ;ña‹™B²§€ä Eìß¿Ÿuw÷°ææfoÏî^¢£Õ|òùe=ÙL®“1Öâ‡ÁN¿?™P`„`ú¹SÎ:ÿ¼ÉgfjL‹W ¥”™L —£Á®}Gð·=îM¦nñk¦JûÇxÍSûGa'¸ZÅ«ÊÊÊ6÷ôô5Móˆ?ÑÙ¿ ¬ß=¶ýÍö'7ý-;„L:wòY¿ÿÖ­’hL=f4é§À΀º™O’Ž£ÑáÃëþôÃn.[ºÄýñó¹ÒÒ*m‰$¹éïïη'ºïÐàoö¨Ÿuñ “ ÀøJxË-·TM˜0¡uýºuÌ0 vË­ Ùµ×\î½÷öÙƒ÷þœÅ¢ÑþlÃ…&ú³"¾¡=^Ó1bÄæ§žzÒ;zô(knjb¹\ŽÍ›{%›3ëB—RúGø–_º‹á~=Î4üñûî½—¥Ó/‘H°öövÖØØèÍœ9Ãð8€«Ìð+×Ú)tì§DN°aÖ¬‹Òí,›Íz7ndÆÕv¸Õßü·ql6€ÿf"¸ÍïÜ8eÊd硇bŠ¢ì0Û/ÓOò#Œð© ÿ…ø=‡#@‰3Æû5ßù¡²Ÿ$eq÷ýW€ÿTg¡Ïâû§Ýî·ÝŠøš7N~Óïw£úO:âs„Ï­ðüw“¿8Qû¿cÊAÿÈý…IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/save.png000644 001750 001750 00000014302 11617757645 021545 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ‰IDATxœÍ›i¬eÇqß½>ÛÝß2ûÃá ‡Jä")Š)Q²-'‘EÙ (‚† $Bà að–/É'#BØ@‚dK¢$GV”(fdŠŒ¸ˆEŠCŽF\‡³¼å¾»œ­»óá¼'ލeÞãŒlи瞭»þ]]U]U.Ÿ 7÷wÿˆ{ìE÷¼­H_w( Ù<>Œ.º¶ è¯ÕèëŠÓå €!pðÀžÍwÞ Ì‡€µËìç§F— €ö´`|€vÜ<|˜]fokÚ ü2`µÒÿ€V̧À¿´+ZpÞ–¤.óùÀ­ÝN^%‰ýR‰…£×^e¤T7Nf³ƒBˆsÀ íòx[‚p¹ü¼RêÆ4M>zÕå›mdyï·pѽ¹”úÄd:¿¯ªë,^Ö/z.\f¿WŒ.|LJù‘ƒûw]wó×òâËgÙµÄv´› HBj¥¢N§Sõ ù… Ï¡”"K-Ó tó!$Á;êºÀ5•H“,!¸B 8¡”$²×8d ż`0qÿG>ìî¸ãÿÀŸ¿åË_ùß7=ÿÂéYBø}à»› h ¾\ ¶+F[@9ögyGt{½¤,gL¦s¬µØH¼£Û_dcí BJ|ÓE qÒÃØ×Ô¢®«F›ðmHÒŒ(ÒdyŠ6Ц©Ùµk©ùG¿òùíßúWê=ï¾½BøUàû|³Å—Ã<ì|;,­”¸z8èIA@+ÍÆd†4YÞØˆª˜Òôiê’(ɨʒµ×p®–ιR*-•6JAp5qœÒ4‘qS³ù4r ÜxüîºëNž<ÉÚx|×t:·À1àIà àÅË`§ŠDF+½§“YÚY ¬­é÷xWE1M='Àl£µb“ñy|S!¥Á5† ½s€Ä‡€”­#ldÉ;=b5±|SW”eÉUWíãC¼‡(29m åð·€—aß ",ôû}‚oJ³¾¾N¬¾)ñ¾Aw e1e2>Ïtc!!x”ÖH)´Rº®«‚b>11BH|S¡V2D‘A+EQÖÜqû-Üñ®› !îð,° ,é[a§~€° ”\PÂ\MSWÌçs: ðLÖÏ¢¤d>Yccí,IÖ£©J´ŽÐZ²²rž¿zè‘pîÜyoãkS¼ó4¾Áû­ Î7˜È’d¬1ÆÐ4 “É„ŸÿÙ÷räðUñ‹´ñÇb³mñ³# v€‚b!ŽÌ 2!%ãõUf³9Ãшb¶Ž‰"òQÌÇØ8æ9Ú&,/ޏ÷®ÛùÔ§>-í×ÿyô‰ÿô'<÷üwñÁcŒ¥© |p!Bêàj´6(¥À;‚oèùå¿¿»¸¸–7¢N~'ÌÃÎ\aD NŒ†Ý¿{ó;‡n·/WVÎóô3'¹é×±ß>”ixåÕWIÓ.Zkâ´KQ”ÅœÃ×áª{7êr¦¿ú”|áKœ>ý"ÖZýÖ¼sÁØ„ªœkïÏ|çžùö·¹õæã$YŸ]K#¤ðú›O}g8|ÖRyvhw€")ÄÏìÞµô#ל?·“iÉɾǷŸ ÛIÈÒ„¯>ø þàßÿß9ù=Ö7 \5#¶Yw@U–!øz~øšCöÄMÇåòÒ2O=õ|þÏùÆãO2›Íé÷:¾?–M]ERj¾ýìs<ûÜIn»åFº½ÞÕ, RNžz™ +kàÑM ~Üæé'2µ]’€Rìä)ÐȦvuU{#…_ལnž?ušýûpèð1¾òÕ¯óÀ¿ÂÁ}»¹å–wrôè±ù`¸ A¨ÄÉÅ]½ö /½ô=ñ-þð?Áù¯=õþ÷ßcï{ßÝ?~išRU%Jkl$!Jèd8¸9<÷üé|8 ¼¼æw €Œ”rÏ`ÐCK™”åt²>.Tš&2¶&J˜NÖY__çúcÇøgÿôŸpîÜYžyö9yäÿñÙÏ%Ì?ù€>zäšè–ïàÐUIR8öïßÃòbŸ»î˜ñø“ßž}ñ _°Ÿùìç¸û®÷Bh¨Ê‚ªœSc¼oèöö»Bñrám(þSì0³S È…Ë‹K»É»YÌDüÚ«§Š$±IšuEUÎɳeUYKU• G ¼÷®÷ÝwŸ;óÚ™æá‡²_øQþô3ÿƒ8¶¹öìpèÐ5!ÉóÔßýžÛê{ï½'yü±GøÖÓóü©—éäï]«¥!Žc¾øŸ=ÚÄ^Ú„ÌÉŸ[¦eÁFÑRd‘ÍHÓ,*ëÇ¢<ËŠ²˜46’©Š¬¨+/†ƒ>ÖZœk|œv«à]XXèÇ÷ô~þ·_<ÍO>ÍCõŸ}â ’ø!öírà ××û4i–‰ëáð5‡9{~ª*I“´C-‰ãŒÅ¥EŒVýªnð­NKh¥+ À–¹¦±í÷ú}Bp  û8Ë»skÓ WÕõÂpa‰$Iç!x™¤‰®Ê™AH)8p`?G^χ~öƒœ:õ=ôu¾ñÇøäŸý…ÌÒÈÞxüzŽ;ÊÂh‘Nw@’&(´‚g:Y¡ß$I·ª7†´›¤­Ķi' Ñ`ØOF 4õ”àóyA·—cã$Q‚¤ª+êº&‰#À¥Qd‰mŒ±q>Ð45!DÔUQ’£Gsäð!~ñ£©O>wR<üÈ£<öÄ7yäÑ'Ù³g×_w„£‡°g¹OÖI¨‹)Þ{”hèt²îúxcH;û6Úüæ ëe 7;ØÛ ¾BJIíMãXÞ}€r¶ÀQ:‰ i˜O×YcRªjs×[šªD)ð‘f6Û €Ë³Ü]ýµö–[oem}ÌsÏ=Ï#ßxŒG{Œ¯þåƒ\}àÇäÀî{÷_C§Ó¡×ë¦/¿r¦{ÑÙ.ó;@ZHy0ϼw­O& yž’v¤IÊK/½„sŽ$Žiê ”Åï¤ÔÎ5eRé(ŠÐJÑ8Ç|ZÛ¼HÅ#á\Ã`0à]·ÞÄmﺅ3g^åégžåá‡åó_ú¿TÅ”_ºÿç¸õÄMô{=E­Ú`G®ðvP€ÖJîÉR‹muÐÚÐÍ3’¤K’&¸ÐJ_l Jb6&ŠS´‰^žM¦}­m/²íö×»2t»ÃYÓÔ‘Ö‘tÞã•$ ¨*O]W,..ò¾ÅÅúž÷ÞÍ… kÕïýþ¿³_{èq}õÁÝ.Ë„»Bf„mð¶sóV6×J-fI‚1J VWWHÒŒ…¥ÝdÝ!QœPU5ÆÄ¤i†T ©!8ªù„º*ö)¥{Jkf“UªùÔ+¥gg¢ÈïJDhÑ,KIâ¸V2ÌBp!x¯öíÝ•Ýzâ&=™ÔuPÝdI\TUqÆØtB(.\¸PEÆxï]ã\í´±c…Â{×Ä>øÌØØcQ:Â{I¥dœv©ª9QcuUÌ"8×&‘•2ïB2ˆ“„Éd­Ý^¯'…^4YÛ`»K@W †C„ïE1—Î9Ùé$_/—³1RøÙx<&NºA ¼k”oêŽ0FØ$ǹ­`‡@G1Å|!„Ä55œ”Æ›(N•24MI]Âû†²(Ñ&AG1ÝNF[ÆúÃE:y–zïû¼S¸] ÐJÉå4Ñ6N)«†¦vôº]òÞHl¬u5Ëçã~ Œ‰Œ1±@ Êr†w¥4JG¨«9¾©@°?Ü@ Y…à#¥ :²(eÐÆ¼ÇÚŒ¦) Áûþp©îtrþÂê\)UäBÈ-v$—`K¤:Zëånž‘uû„Ð0L @§“ã]«Á çY%ŠbÀ³rî óÙ¤Ô›0_À‹MRlœð­»+%uUPWooªrŽw R)”2xïP­„!DÙ!uU2ôQJQ6Ðí¶B±CK°% ¥{{Ý kc óÙŒÚzÝN«ìš‚Nw/4RâH3ŸGIÐZ2Ÿo´ ¨«Yg8îPU3/BHéêZjAøÐZ–ªœÙ,8W{!$MSÑ4½nN’$llLIÒ„8‰©Ô–3´å»Kð“$`Ëô´Ö»†£$íR”ÅlB–ƤY)DåÁE†$i-@13›¬2Y;K]Î˜ÏÆ€¢*gm’MHg¸¦Ž¡qMÝ.ƒbÎlc…à=å|CÑÖ ­ïpMEl-Ýn‡ñd‚"ºÝžÔJ Øá~àR,£—bÛæìl’QU Þ{¬H©J!Õ™ª˜„ùlJ§Ä¶u`‚Óñ ®©Ió~k¼£*¦Úu®”¦q5Ål\·#%BJ¤ÒTÕ×TMœvŸöÁ½V“ÊÆyˆ¬e0°¶¶NUNËÄFX- !ÔN@؃4Izij@9„ÆÆ ½^bº¦¤”Z@˜LgDQ„Ñz³B¤!xGœv(æLÇ«Hm0QŒTªu‹¥¤*çïTAJ¥\S³1rÓÿGœ«o(ç“C›ÚÂ&ÙÆÒÒR¹1™5U÷zh‹ª¶|ËÖ[^à0ÏÒ´“ec ¡á•×Î2Þ˜ramFðNOf³…Ñh²öhBB” DÆ ´Fˆ6s<›®çCâ´KUÎR"„DE™Béš*R­-®©t]ƒ-3êZåèwïÚ%f³J›¼ßï#¥XPJíÈþ$Zã•RÕÙsçõ §N‹•µ ßüÖs¬®®ðß>ùâ8Â(I–§Ì‹†¦šó?ñŸ¹úÐaºÝœ…áˆÑˆùø yÞFÊùœNoNgH!x²¼‹JW_—6Éëb¶aÐ!øÖí’PR„¤©J¹¸0¤®óyIž%h­‡±ÒÉ G[†r'ð÷^|ùµìÓŸû2ȳŒù|Æ ßc4ìQU5¯ž9Gqúe¢(¢×íðÅ/ý/‚ÿʦ?oPJÒÔIqàÀU,//°{÷F ‡C:œÁ ÏÂhH'Ïl\3Géç•å]¥Zå®MDY–Ø$c4âƒg2«XZZB)+­Z›ü£ó?T¥~1°Ÿ6ß¾6Õ´Ȫª^XY©^5F§óyaçö”e•Ïç¥&Ù4 Y–&)q’ŠcôfÙ‹!„@S—TUÅéÓ§9õÝï‚À{G ¤ÄZKžgôz=ÑÉó¤×ë4£Á@-ïÞMb5£…víÚÃÒÒ"ÝNE”UÍ|VpþÜëØ·‡ºiôl6_ÎnNbC[I6Ùlo ™_¬("Þ/›.¿ |¶Fp@zzmúÉKBÐa… BhJIi´Q‰Ö&ÖJFB ”R)‰1E­Ç"[UÓ4R)¼÷xç©›†ºi|]7A)#¥ÂÚ˜áp@¯ßÇZÃêê:/½ôGÄD ~íëMUÕOß¡Í> ¼Jû)Ïù—Ò”û€ß¾”›EÀqà%`L[Ó»U²&6;© V™V AOJ9ÐAˆDJ‘))J©T"¥t¤¤JI„­ÛXb»³l˜ÍçÄÖâ¼g6+h𦠄¢(ªYÓ45mÍЧ?ž¡-¬ü‰t)OÐÒÎþ7i¿‰7ÏMs› D›çÞl~D¨ü–MÞt«Œ)¤4RŠT@Љ¢«¤ìk­;ÐQR¦ZëL—Mn­ò<ŸïÎ5M}^i½RÕõzUÕµwn¾9¦ßNmþ¿dŠìRà)ÚÙÞŠºÚõ´¶ùrň‹ýpuQÓýj@ÐÁ{íýÜ· R©€HJ©•’‘Ö*ÖóB{皢, çüÅ¢[¥1´ß0Î7'f[_¤\ €’V”êͶåÌ6¯qÓ[fç"F~àÚ›A‘ü0H?”÷^{ïU]7 Ê-×|‹áf³¹Íßéæ;cÚ¥¹­2ÚK°ÂæÚÃf‡ÓK<·µ ¶¿¸m…¬ä›ÚÅçß ÔÅßøÍ1lýnW´L_M;9—ÜÁ¥=ÁÉv_ô&ÚBþRÏ^ÌØÖñÅóf淪ķ˜¾¸*Ìó†èo;=~©Á½]¾øÞî"‚¶jôí2î·?ý÷D:'T¦¥IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/wave.png000644 001750 001750 00000021044 11617757645 021552 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÚ 4Éå IDATxÚÍ›i¬­×Yßk­wöÞgïsν×w¶'NìØ‰ ƒ€µL¢”"Ê(QUÐ|è@ V‚"TTÀ´”RZ *( %up’˜”ÄIlljãñçÞ3îñ×Ðï¾—“‹¯c*„úJK{ŸsÞ}ö»žõ¬çù?ÿç¿`}]»ôÁÿg—R2’RŽl=†Àhýš> ^b¼âëï|ÒBOAL„#p9ˆbSHqZ±í)5 ÿärUžèºî:ðYà`xqý~X°ëWþÎ  ”òÃ0𥔹Öf,¥áÜÈ:›K!'BÊSNÁÄ97”J|ÏyžaFA…¡ïÅqD–eäù€Á å‰'>ÇîÞ>RJö÷¾`¬ýcÌ#À!PÐæ6“¿áövÏîÝöJùAøJ©ÌZ;BlH)ÆRÈRrÃ9sJ¹-¤Ü”BŽœsÏó‡¾ç üÀÏà ÃÐWAè‘$išgÃá4 À ðñ•$ ÏOýËŸægú'ùª¯| ³Ã]¬©I²ŸøÄ§ùŇ~ƒ>ú‰½¦5c~ ¸v›ùùëÉë—5€¼q2Ùxß?ýÁïÚ¾pþ48Gšq¦¥ë*Ž8†)U5£.¦x~@’އF R@’‘J‚³(¥‚?èÚgZ|?ÂÚ–b5gY´¬ŠO NÝqš,ñIòMþÅý Ã<ãgæÇhÊ9ËÅ>q2Àt+VEÃ{Þû~ówÞÃå+×>`­ýċ^b¢[@ ,oç ë Z­m3ŸÏèÚM²4%KBÇŸ>üAVeËþá‚?ÿðGù¿ò äùq%åjÞ{–•dYÂ~ßwð†{ïâ×~ã¾ö£~ú «¢xÈó€ëÇw{íòvÛ@­SSîyê;ßü¦û'¯¹ûÕœ<±Å©S'ȳ˜Ñ0çÄÉsŒÇ<Ù1 ÆdiФÃSÏ“DQÌÆøs×Å3žCÒâ žam‡±£[ºz…5'À:ƒ”>F×XkÀ5Rz8A“¤¬íèÚŠ®)hªi6ÁºŽÁp›¦Õ¼ïO?Ľ÷¾–WÝyŽS'Op÷«ÎòÚ×ÜÉÆÆÃ£#ûÔS¼ÿO?Ìûþô>ñÉÏpíúu´0ð¹xþ ïúº¯d<$ŸúÔ“_]UÍýÿ™µ´/e€8@;çš²(hÛc²Á€ë]ðƒ˜ºœ#¤"I7ÐmÅÑþ ˜ ÅóB’tƒºZàtmÍhr´uAådƒm¬ÕTÅ ?ˆQ^Èüè A˜ 0<ÿÂUîºó<¯¿ç.Z ž§ÎP× EY³XUqåê—¯\ã©Ï?ËÇþâ“xžÇ¹³gxÃ}÷ð¾•ßö&>úÖûÕ½ïC_Lu|Y d¢.Ë !=ÂdˆR>a’„)M½¢\dct× ¤D( Jië!$]Wã‡1ºk0ºeµØ#ˆ2šz…ò|‚(C ‰”Ö9¬éPÊ'J†,— ÚNóåo}€,ßDyQ ˆ¢ˆéáóéÑœ¿ƒ7¼á>ööv888d¾¬¹ru—ËWvø“÷=ÌüásâÄM]±Ž 94xÓ€ª3!|ŒÖ«QÒÃt-V·ø~L[H©(—‡øAB’MhêË麭ðÃ!RyøAŒT>~“ ¶(‹)Öh¬3xAŒÕƒñ&F7«’óçN‘f9ºí<ƒ¯ž²lll0hÛš¶iiÚ–3wlÒtŽUQr}ç2³ù‚élÉîîW¯íñì³Ï#…À:wðÀ°{Û,HÏSßtöÌ÷½íí2 ‰B¦šQ¬i›’8âœÅb’lBÛ,Q^€RA¦øAŒ1-]S?ˆBQ‡XÝ£?g-Z÷AÙ÷C¤òQRE!J*’4# <â8ï=M¬nIp-Qè3sâFÃŒÉxÈöÖ„sçÎòÚ×¼–< Ý“O>m:m,pxÍ-Ö5„{)(š¦¡XÍÀm’N‚í¨ŠÖtÔÕ!J4f…Ä€À~ˆçGó]Ú¦ ©–´M”>Q2ÀYGgXc¢ ÝV)Q^€çGÔÕkžïƒ3ø~@šOP^@YÌÐ]½†Ë][Ò5+âtD>å9M]R•K„ŠAøxJ¸ßýïïmŠªùð‰µû_X—ÒOÏ€¾açœ[6MÛ§¬fES­ð<Bô.k5q²uk:ô|ÚzEµ:)ÉG§ØØƒ9VÜ÷€Ú!^B̯ۖpǹ×"¥Â9ËÑþ‹½{&ƒ~›T š¦ #¢xH×µXÛW£žç#”ß›ÚT^óÔSŸåÉ'ŸbóÄi¾òï ®VÄIŽ”ŠF/ñýˆ®)Ê#ˆrÚzfŒ·î¤m ÚfE×VTåçÁr¾KS/É'GS\ÝÙ1ëÉwëñ (1AmŒ1]gTh›’¦Z »†®-ÉÛ„qN±<@EehÝrùòeºæÆCÂ8Gàð|Ÿ4Û *øÑ©<.¿ðÿå·ÞÍŸ=ò(?ð=ßÊ«ï<Ëö© Ýbm»Þ*-º«‘Rç!M9dzëÔÕŒ0ʉ‚¤7¶µt] ÊÕ!i¾òb¦³¥XçûîvEÐÍàì}Õuî:C˜ *ÀZCœŽÂ~Ow]M¦x~€sk4¿÷ûïå¡_ý¯eIÓÔH¢ü˜gž}†£Y¶–®k¹tù*Ÿ}êi”R„QÌt¶ä`÷*MSãŒÆèk ~Ñu³ýK4Í D$ù„­ Äé¥|ŒnÐm…µ!%Ryx~HS-)‹«UÉÚí˦_l¨Œ±mY,0Z3Ü8ݳ7FF)BH¬éS˜” ‡c¹šñâ‹—xæù}æ+MÝX,’Ç‚úáçÞû~ÊbEÓhžzú*óEÅd2æ™çw¹zå2;ÔUIHó žP”+´•Äù £Ó$Ù&‡»ÏÑV º¦ *gÔëjÒ£SëX“÷Ù#P%ë¨ß¾b°ÎƘ¦®Ë¾øYõLù!q6Æ÷#ĺ*t¤ 0Æc¹ªxîùyö¹¦Ó)Ëå’ÝÏ<óÏÊæäëñ}‰fkkµk»\¾ô<ûØ£|äÑÇø–oü:>óÄç¸zå*]g@(æG×QTµàç~þ×xìSã>ׯï0o„ i>Fy>i>ÁšŽb¹O×ÖL^ÄbÒ¬'f7O\doÿ:³Ù¬;–ô+ÛBQY MµrÖY”ê'«¼€®)øèÇþ’Ÿø©Ÿaggå%4ZR”_ñà›ÙÝÛe¾(ÐVr4]²pD×V\¿¾ÃÞÁŒA–0ð”¢i Rö r” 9œüÇ_ÿ-V«‚7Üû:<¥xæ¹k\ß›Q”ZÚ¦ÄÍ`|†|x’Õbg m]PWKªÕ”ÙÁ P”Íܯ¿T ¸éÖšÚS¶m‡”>Áüð2z¸IàG\º|…÷Ðo°··Ç7|í[9±=áÔ©-Nno2N™Î V«‚¦ÕloŸàüÙ;RqeçƒÃ9÷Ýw/Ö9&Ëå’Îô$m×Ö\º|Oæ)¾ò+ÞJÛiÞ÷þ‡yþ…Ë|ãß{ã [ÛÛ $Óù’§¿ð"üðÇù³WØœlráÂ9ßc2³\ü÷ü1/<™££¨!Nxtºe6=¤h"f³MSáxAJÛVUMÛv7P þR=Ãc@Èjkm¥­"ŒNH%6·î¤m>ðÈGøÀÿBα{0çÊÎý‹OóêW]dûÄ VÅÇ98<ââÅ ü¯÷?LUµDa€–ш( A’ŽÈó„ÕrÉ'>ñÏ?…Í­M¶·¶h›šÉxƒÉdÌ /\F%ïþ£?âÌéS|æ‰gø®ïüv6F)¿ý;¿Ï‹—¯rÇvÎ;¿öí¼éM[$~FHV« ç\½öý¥<àx4RȦ®ŠÕÌÍŽ ×®]ã…KWùOÿù·Éóÿä»ÿ!O<ñ—/_åÄöã!w]<‹÷¿áuÄQÄîÞ—/ïðÀ÷òùÏ?ÃbÕ`­c¾X€€0Ýiž{îyêºe8Ì©«ŠAѵq¡¡Óšûï{O?ý/¼x•®ÓüÜ¿ù@ðæ7ÞÇ×}õ—óèÇãýø8.žCbQãMXÀæz…¢®«‚½Ý}ñè_ü%?ùy®îð-ßüõÜyáu]ñÜs O~öiVEÅ|± †Ã!ãñ˜ÇŸ|óøç rî}Ý=ìïðÄ“O’g)çΞ!‰Cʼní1Wvö¨ªš( ±ÎQ”Ö ”‚0PlnN¸çž×ðèÇ?ÁóÏ_æû¿÷;(Ëš²,xðmo"Ž.^8…”ݶ uU²·wÀ1¬¿TËü¸4Pö¤HÍæ8ãÇ· ü„( 0Ú¢»ŽƒÃ)q²»»Ëݯ¾“4ð=ï œsäYÌÙÓÛ´õœ¥©k^uçy”t”Ë=’$¡Ó–$Žð}Ÿ3§Oðg|!Üaƒƒª* |Áæx€³'1Fs×ÙQÒ¢<Åd²‰’–(ò £c5Óé܃Á£-àœs«¶Ó$iÎÉí¼ïG´tm‰¿5áî»Îr}ïå²àÌ™3x¾Ïds‹ xŽÙl†ÃR%§NäÎ;/ðôžÅ”Š|0& y–P–%Æ’$å䉜9s†8N‰â”7¿ñ^ê¦#Ž#Þú–ûqÖ’„Ãé9a‘ăÑ6N—xžÄèmS1›Ï9Vÿ<ëÜQU•”«C¶6/’F¦›“%cDšcœãÞ×ß;ç!òAÊ;|ÃÁqìsáÜIýø'©w÷ÙÚÜ@`Èc —®\ãÁ·Qœ2¸óÂiž{þRo”,çÜÙS ²ˆ$ PÊòÀý¯çž×ÞMQVA ®Ã÷!Ïsœ^GƒáƒÑIªâÝÕdù²lhZíŽÁà—2€<¿È]×jmðƒD„ADš†$éc:ºvEHÓ”ÎhΜ>M>HI³Œñä[ÛK””ìqþÜi”’©°VðšW_@¸ Ï󈂢¬Ù¹¶Ï}÷ÞïÁ}¯5[[[llŒØeDQÈh˜aÝ¥¤t$IŠï <%ÃOIf‡—”ÀOXæó«ÕÊå1ÜZ¸Û+D…sëœ0º"ŠGÜqîn¤L.Ñ´-gOŸäGþÙ÷’&ŒÇ9Q Ô¾OžÅ\»®‰£)$Y>¢ë:Ë‚ñæi‚ "î¼x‘£éœ8N SFœ9sžÓgÎ’¥!CÆ}n¯a„‚0ޱº¡­ šfI6ÜÆZÓ£U)YeÕê[ˆw‹@ Þ ˜¨:­±Æõåo["¤ IÇ8‹ù!YVñŽ·½‰élŽîJÒ8ÃW’×¼æ.Þõ ï䓟þEšN§&IÂ;|i‘$)IÅ'Ož`c4 i[Æ›[ ŸÉFÎÖæ˜8Žð<ÝV ,ažã8C]ÌRQ—S„T4õ¥ü›¤Ít:£(ë[að­—¹­c«¶mÝ|~(ÚfH]Âáõg1“k;tWŠ$ññ¼ ŒIÇ„aD±Zpj+cc”ÓÔάpÆò­ßüNËŠÁpDô…R–ç¼ë뿚‹çO‘D“É&YâIƒD÷$©mÊÇꎦ˜öü`5Q2Zs åòüéûÔ¦ªêf-ž²/ÝË‹¤•1F['}å… 'çû†Çr¿B((Nð<ªZ¡TŒR‚8Žéº–Ó§OñßÿÝìíî³1Þ$Ï2ÒlÌÅ Ùðƒ,¤­glMr¾ãÛ¿‰º®‘ƒ O°-uYR—Ó¾é„aF2ؤ©–ÄÉmSPW Â(Ø–0Æ9º]0ŸÏh;]ßÂñ7ÉU§Mçœò¥ éÚkz†¶©—aŠ”i6"ŠšjIe]‘¦ÒKøš¯Ú`owf<ÙÂΟÁX ¶CÆÑš;´t:Ã÷}Ò$&‰Cáíš‚óÃg ºk£ŒÆ9hKÂ(¥[SgÎiÊÕ!ù`B§}œµõ:v/§ zé¥stMS#„ĘþË£x@4R­ŽÖ†HðD€Ê6кA(–»dÊÃéeÏ#¦>~8ÄéçqÓ55I¢$XA“fÚzAœŒ°V㇠A˜P•³›Ý¤®-pÆ%ü Aw5ÖM¯HQû‡Óã0¸}9&è6ÖvÆ ¤ò‰Ó1ˆ–¶-iê%B)âx@]Ήâ©mA@šö –Ûz€sÎ8gë¦ÕtME¹²$ј®«‰â!Ry(峜]çÊsI>:E”ŒˆÓÎ9”×Sè(V‡}ÁëÐmÕw„áø Mµì½%ˆP6è{qŽòêrŽ[{J]ΑÊ'l¢”5)Ö9ŒîûœQÚË󤔲\­ºu¼ ƒó<¿éRJœs·í åyM±Z0›î‚ìéZº¶@·5u5§®ækÔ‚¦^ »ÁZβnfÃí›ÁKùA¯-l œ³ä§„K_x”«/|?Hhš‚®­ˆ’JùëÎo¯5ò¼à¦Åš!ûÞaß´ÉAÀþÞuÕ¶Çë€k×®¹ápÈp8$I¬µh­_YÛ9kWm«£ZMiGÃͳÎYV‹}['.ôù]ùäùˆ¦YF9Röö²!~Ð×i¾îz]âj1e1›‚ ±x\c1;d>; ªJ¬“Tu‰Ñ­ ÓéMchZÃ'?ý”zêsÏœÞ œ>< \¾Á üðÿ°}衇¾¤Ø££);W¯rÏ«ÏÐ #jª^(½¾XW 7î í:š¦boã|¦‡»hã(ŠMÓÐv†ÕâéÅ}S£n)VåZm)Ë’ºnX.ç UYÒ´š¶mé´v]Óº¦­­ÖÆhc¬5Ö4mÛUUS[ë48³^ÙÑze_OþÅu]P¯ËbZ<œ+˜IDATñÐC‰—òo ’µÂúœ1–ÿý?ç±O?Á™Ó§Lwé ´¡®[šº¦Õ–¶ÕTUéš¶µmÓÚ¦©mÓ4¦í:£;£µÖZ£»‰În -@»¿*]›cLîñû¬hZÑ:纵îø}oN®Ëì­µÝ15˜xãßè{챿vh*[KÊO¬…ÅßëRÓÛtÇ”–ͱߙc¤)2sìaÌ1¾ÎÜò¹ã<ž½å¾4ww íýÖóx7ðìúTéê˜@Âxžgo—Wk79Z‹ˆ?»>›;8QçÇô6æØ$ŽÿüRãøßõ—øÛ­F°·ëø«¾…ó»wýþÙõ™¡éznºûKMþ‹LüUJ\®÷QºÖÚV·ÔØ·>ˆ9¶ºæ–U½¡Ž»¦½å³ö1£;6‘—ú½XŸ8\Õ1÷ç•"öXi|ˆ×û©8–Fì-}ügnq]n3 þ_9‰“¡WÖ“¯^)ørçjoœ·‹Žmæoù¡ÿ6/8,ß—ë-ýŠ®ÿ ²*ªkÈÉê*IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/undo.png000644 001750 001750 00000007630 11617757645 021562 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ ;(cH¸IDATxÚíšytTUžÇ¿÷¾¥^í{RU©Ù&,ˆ£6‹ŠJ·­ Ò¸5êxZdFô8t`šÆì#­"j«Ç9 Ê¢#âiWElMÙ IHHHH¥*µ½zK½;ø2Û¤•ÖÑ|Ïy§rrªî½¿ßý}~ï÷»ï]êR—ºÔ¥.u©K]êR—~Šâ¾ÏÉ%‹I²€P‚|>ÿÓr@Ÿ>½0{öl\3z4Ž= `ŒA×õØ ö3lø`=âñ8b±V­Z‰ 8… ?bÞ8wÝu<€t:ÆÆFœ>}ÍÍÍxõÕÕ(++ƒÓéèèp"€^è—þO~Æü>Ìœ9ñxº®#ÖÜŒ¦ÆFÔן©º:477cþüù ´Cë/0€÷KÓή‹þ#Œ·XD”——câÄ{ RéòFcày”£¨««ÃÎ;`·;@ÈßtÂ|[,m—ËŠ°\,í×7ÝðKìÝ÷Òé,†ŽrÐT z^‡,ËÈf³xâ‰ùxë­·Áqr¹Ü¹†rH’å¿g?<ëîQWŽò8p°·ª(› ÃPŒ°@þ‡à@‰á—•³Ç\‰Pa/¯ZKjkO‚PŠAƒÁ0 PJ¡( .\ˆåË—C–å¯3¾GAAÁ†W^yeø¸qãYYÙØ¶^{vï¹(“ÍŽ°@s×w^sÄYl.~~ž_ø Ï.œƒû&Ý={`ÑâEˆµÄP[{Ó§OG8†(Š_7æ•Ñ¢HêÀLUUÖxú4«¯?ʼn„1|ø0`–9/÷÷8€ÿŸà¿hcsâ}ÿÁ¨÷û<¸|äÏ çóX0¬’„úúz¼ôÒKÐ4 š¦kÌ¿ôâ! É$âñ8S…ä<4MgsæŸ1¦¨2ùïh¼À¾¶ù¾ÍmðÊhQdßæÍ›ûýshªJ4M%÷üf"ëÓ·Ï*¤yód.Tt<¾ ÎÀ¡ƒû±öíPÔs–¼e%%Ñý3¦þëÈHÄx() ‘ëÓ#L†]ÜS¦TìåìBÃ0 '4Ð:±îA¦ÝìÛä€N±I)%@]C ËV½šÚ†syû€Ò¾ÿ5­â~»E²‡B¹°=›I†œnÁ¡ÃG0ïée8^Uw®q¹þ£fÜþ뛩(ÚÇÒ$ @ä xŽþ,ñÇKkRéÌoÍÝk0ÇïaF@€@oBQ"p¢Ï`F‰ÛírE"Eå8RÚ¯Ž„Ék¯½jÔן—Ïç78Ò™$è²Ûí~pò½#{÷Œ"•l–KS,I^Xô2¹wÒD̘1s»¢ä2‹“j÷¬×Ž­Ä ·þ›@€”R†áà(^¼mü˜[®5’y•ôî7n‡]IÁé  ùLÆÞ< JNýÌj“òv›äñx}vÇgå9Ãf“lœÇë†Óa…Àx¼~ðTG]}LOd î©§ž&²œÇq…Blüø_%Ö¬yã3wh€²’’èÚIwßRâvŠŒçAJŠB‚Çëa^·¶± `¡™‰Oh:qh»¦*ìÚ³f4\@ð‰aaI7N¸iDŸŸ]>’ÕFJJúÁër@²Y¡Yèš»3ˆ9ÿΨ­9ÑË"Ù­6«… #„A˜¦ª,“N¤ ¥†d‘,š–#'¦â­²K1 >—“™®ëDà9´&„û¢Ùp°HtÄ7 (í»¼³lÞ»IÓ4”·aøˆáxº =8uö—X*ôžxçX¿ÓneVI ÅE!8$ŠÇH6'Î4TÂ0(‹†}ÔP[cÐ #Ýçáò!Š"QÕ,˜rêªÌl6—®k2µXþ††ÒÜšd‚ žÿÂL«ÍÑ"ÂÌ ä›ðȘk¯úým·ç:Ëfß‹®ü ›¢ úô¼Þ›çy/@„ªêz\zÉ`ðyàrXäÁ‹(Ç!“l®äÀ‹Vá÷ûl™T¢E—ËSÀs¼Èx'”ØA(…®ÊDÉeHvˆ’—†'¢( ›•Æ (*ž'æîÿŸÎb³­¸iϦœjAq¿bâvDÚ³IsÿÃ>%§Ö…CÁ?v„Íšš*ÄZRyÎâ¢&ÜA^xáy¼³îct+Ž %–‡ÕjoòYU‘™(J>QrX,v/y|Þ3ÌåÈ…=ºûWAa8jyöÙç¸nÝJHAA:t(cÄÜxÒ¾2L.ÎhšÞTU]¼ìÒ2œO6m6ë-1!p¹\(í_*OùÝÞqÛMå÷Ü}s»}$Ÿ×¡kYêv»¿{URÎi;víÊ;eF,1Ëà*Ó |"™²$’)ï‰êS¾mÛ>q°X,–hA° {cSãH“¬ÐÚÖ \a–“¯È9e×ácÕ>]g}èɘ¡1ŽÒ¸ª¤šª¦(!!'9ü䉅‹Ùá#‡‰¦Öl&áyÊëj†JV;òjJ.b–øœ "Ÿ×qüØq4µÈøùèko‰Áf³Ãçóá/}¤}ºwß‚={?OÕÔÔô-»( …©¹4±Ûíp»½BI4”ݶcÏU²¬¬pÜ,ƒ&Æ)óʘŸ­fƒT *ŸÏšL&7æóù €'œ@y³\ÝaþÐÊ«RUýáw×´ïDUÕƒS&ÿ ?dèP·×2Λ.— ‘¢(ðÊ›þçã=öø#Óí=»‡a³y¡inõëoÛ§NÆ-]ºlIÍÉÚëE9 SYYÉ<ü~?1£‚šIŽ71áÍ’˜™¶2¤ž«äM® üSÀï{ê‘YS#eeàBN53‡+@dY6>ß·3öü’ׂ[¶îxœ1l3 è›×^{ÝYlΟ7?3wÞ¼ æŽeôõzܳ&OºsÐM7\‹%ËV3Nò¹ÏÅÖ­AEEE£Å"^¿s箃<ð@æÂ /D €×ëÃá€×ëEŸ>}ñÆš5˜0aô¿>xbö)ìoP32‚ºY­ÒÔ ·Þ8ºMž§ÈfZÑpª–«¬N½üê{V“ÍÛ±Ù¶|»¿-¦c|f5v›ªªnð€Íæ÷ý”Ò飯y½Ýé£K—.CK,ÆÖ¯_ÏæÎ›·§²²r,€«Õ*B ŠŠŠ¢(ŠDpäèìÞ½§½m>-ßtÀ̺@ êº¾mÏÞÏiMMÍ › ô¶n1öéñÊêtaa¨|Ô¨QD´ˆDD . EQ"›7o.°E×uEÓ4#—SÐÒG}}>ŒÚÚ¯4_ª¹A>A„\`r$L/_¼€}üÁJ¶ÿ“÷ÙŽ-¯³Ë‡•ë=:‡õîua£Åb)7w—lß¼¯_†v\¶E€@@Ä¿Â¬Û &BCT\pA÷æ-[¶°d2i444°k®¹ºÀ.£ÍïvZíÛ*Æ€ÒŽ²¹å½åQ Yí Ð ­ñ:Œ¥+ÞDÝ©FÈ9Ù¬ Ã0ÎbóK8zL'Em6Û¼Ù³g\»ö }ûöO¦šÇ[W˜‡±©óu,n´+—³¹œ²ië¶]ÁšÚS½Õ<4ã÷¨­­CNÉ!“É´!w.s&B9MÓ6oذÁSWw*`…‰Ì&Å&Zçõ¹€j.2ßQ6—­xS¹ó×ã B ('aÑ’—Q]ÃO,ÀÕ׌Fqq1vìØ‰Ó§O›ZÛÜv›wŠÞ5óE£©ÆùtÌ%› :Y]]}ü­·þŸ÷súô©sÎûþÞgž#x€ ij«eÙçcš¦îjlhPãñHªT,¶ÚŽèŠæz¾p×UUM(ІãX^¥RñTUó%IÅRÑÉdF ¦e°jGµö>¯6þ褼Ï5 ðÂáP}cCúÖeýU8›ËçF#¡àæÖÖÖú‘‘LG$¢Æ`@’„øI „„﹘–‰ë8D"*Ë–¤Ê3àÿC¹b–€‚Lö}¢À~ª ƒâRÛ€?‰÷¹¦H’tQª¾îËS.]¾ü*nºé&Ž=Ê}÷ÝG(bÉ’‹˜3wÁ@Ó2ñ\×uñ}Y–eMS‘$ãTÿÿЃrï½÷¸­Íé‡=~—a±b©üb¡Ô¢¨ÒlÛ}°\®ä€ Pì?&ï@xl„¶å?ýéƒ\xá’ÿðƒþþ>ö¾»]»wsðÐAr¹œ_È„$I„BAb±“'OfÆŒLŸ>¦¦&î¿ÿ¾Ç÷°·)šjk›4íÊåËYõ£»9y¢÷Ù¡Ì¿X–uȪ üQèÿ€ €Ë&Ošøo Î]ؾbÅ &MšD¥RáÅž÷žxòIgë–·ü|>çºj×ÕÅ¥X4ªD¢ESuÕ4-,Ûe,›ó³¹º`îܹþ 7Ü -[¶Œ}ûöqë­·ÒßßϪU«˜={6{÷îãSŸº™6¾àùþm@0”ù#qÁ¸€ ´Ê’$ƒ±@ ¼ø’‹…®Å_x‘C‡ÑÛÛËwþ€ ë_uRõqgÖÙ•†TGŒp(p¬¢¬éáHŽc£¨ž/D¾Xáàþ}ìÚþ/¾ø‚¿`Á¹âóŸÿ=ô•J…T*À¡C)KDcÑòØX6µy½§ŒÏ4‰ñ‡K’t®be$ŠMíêì¾êª+µ“ýÃçïÙónø¿ýÙŸqäð~ùôS¤ë£Öœù)uÉt³%‰ìH/²#"KbV èFÏu U bšeŠ…"='úØw¨—]»÷q饗ò•¯ü#ñxœõë×sóÍ7³t饇ŸxòÉý‡T¹ HÕ*œqUU'išþ¯7Ýô‘…K—.套^š¶æ—ÏÓÚÚÊÇ?þq~¹v-Û·máçÍcꔉJ$¤'’©ñÝ ^H# DP4•H(n„‘U pŠ‘p”D"ÎYÓº˜?o÷Ýÿ;vl÷¾ûÝoKápMÓð=wÄÐ pE¶…Šm;Nmœ1)€˜$IßY¶lÙ_?òÈ#Äb1|ß§§§‡ðÍo}‹üX†óÌ¢¹)E( “N§ij™„ðM\»„®ëȲ„k›TÊYUGQ4ê'£! ¹Êå>2BÒ8A¾%3Zâ§?îÛ®ÄüTìÞ½›o~ó\{õeG*¥ÜÛ¶ïÛ¾s_{¥bßošæfª¦±DÕLž’vß÷ÿg$nÒuƒ®®. à “ÉðÅ/ޞɒE ¨OÆUâÑ©TŠx,bƒ†.CaйA$YFÓDâ)t#ŒeÉ bU (ŠŒYÎb›y$<»Œ¡JÌœ9C9Ú+~±úiþöo?‹,+<þøê„ãz³sùÊÂX,>Í÷œzÓ´6»®w:œqkÇ#™Œ´qãÆ—_~¹ˆÇã|òæ›Ég‡¸ìâóˆ„uA"¦¥u‚ }ªªœ7é9¦T)å Û.#Ëžëb[e@ày.¾ç"+’$K4 Gñœ2ŽUF•%&MhåW;ÞaËÛÛýÏ}îsbë¶m46µò½ïý;çÌ_À«/¿ÔÞŽb±TÊE<×ÁE¨o˜ˆcUÀ÷ˆ'›I¦ÛPu —ææ&žZóŒïy¾Çwˆn¸žd2I}}Š—_^§º¶iŽŽå¶zžgQu’œ3€ˆÇcKãñÄ?|ò“7Ãá0_ÿú×Y8“Z …´´¶“N§‰'’ÔÕ7‹H¬^+d‡e„ ®!‘Íå8Ös’½{008ŠeÛ¨ªŽ¬(˜V۬๾çR*ŽD„"๸ŽE4F‘ežüÅÓÌ8{ªèšz†¡søðavîz'ê8Þ†r¹’åT ñ‹‡k¯½îš;wÖO›v?úÑ* ]fò„Œ@†ÆVb±ª šª"I2•RYÕ°Í {ñÊkx{û.úû3•ÁaË÷?Y×[›ŒsæœÅü9Ó©«K¶Y"‘jGéñ-¢ÑŠªsá¢óįvî÷ï¹÷>ÿò+®®ëñöÛ[Ù·wƒƒÃÉrÅJ‡©Z¯÷ób{.¸à‚Ø÷¾÷½ÎP(xýµW8gV†®‡¨K¦hhlijËrÃdG0ËyŒP’õonç‡~Æ¡ÃÇw–JåõÀª2*rù²qäXßÔ›ßY4{fW××\Â\I%‰3–dYFŽm!pH&,¿âRñ“÷÷íÛ/º»»¹å–[ˆ† 3<›ÍŸ©…“ü±}lšã8·=zÔèî>ÌŽ_mfÖÙ“IÄã$“ ⱚª‰% E“àƒëù<¾úY~p÷OóGŽöÞkÛνÀà$UÇå$pxLJ-ýsÇνñ¨¡µ¶¶bšeô@Ý¢a‚¡Šª!Ë ©t³Ø´i‹¯A"‘°x÷ÝÝ´67=ñöözž—F©Æ&gB|ß7vïÞ­mÙ²×séè˜H2Õ@ ` ÊYòq“RaIÖpl“ ›¶sÿÃO准Gþ XOuWlª›Å)¥Ô&{÷ÈX1óÀ£ko®K$B]S:PUYHhZ#%Ù8!4úûz˜=kšxóÍ,X0]7Ë:ŽãŒ+¿2gHþ¤ÞÞÞ²®ëåL&C_é4†$‘L%Èœ¤\Ŭ”Èõsâd??_ý<ÃãoPÍä©&8ú©r@ÿicÊäÖ>ÿÊf†‡Èf³HZX•"žç’í£RfÚÔ.qâDo-£3wîœÅ3gLJBŒžìxŒð‡P*•,!Dexx³\@UÀ6‹”rƒäGN>žçPÌgдÛvdûŽ]|ß[W{Fª-rÈRÝõ0dj£øÅæ­;ŸèÏR,ä9Þ½›ìè ®ëàÚº@Ÿæ¦ß¶M*• sçÎåÙç^œ IÒ7¢Ñð-BˆI@Ð9åÇüÞ¤!PÅ/‹¤S 4MÁ÷]‚¡(¡Hß­"M’ÍeÙ¼y –eo¢*‹Vm‘£TÙÿת¬Žûî»,ËÞ¶ë݃-mM Ù÷,„¤áù•R!É0ÑH@¨²$øÒ—¾ÄÂ… 9xðÐÔŸÜ÷ã©åƒGMËê£*ã^áïà+Šâ™¦U5stM'‰¡éÙÌ žc‰7b ã='<`om±%ª ‹òoXüéd×~3ìé=Ñw•ëK²¬ddžQ Û,¢ÂCqtME‘ñúE,W_}5•J…W^^lj½ŠiYÑøþÀPYBHªªÊ®ë" 0aÁ£ƒÇ°Í2é–)Á(ÃýG²]“S»mÖÆo³ N „AÓ´$IÑB¡Í0:܃¢h(Іë¹BQ$Iø•Jå½›?Îp&ãz>ÃT6ã¾À¤ %ß÷]Y–]I’p<YRpÝc#HBÂÅÐôfi IB¦*{nmü¶¡éx¦W £žË*#©•r¡¾Ã˜•žcQÌbÛŽDßSr£££ŒLÓÌPU¼g„”¾¾¾|©TÕ4­Ýs=$YFÕCÁXmB&`=£ì ˆÇU U»<¡ò[¿˜ ]!Ij©8‚&;„êë1‚l³„m™˜¦é;Žë765‰L&ÃþýûÙ¾};#™Ìm[£Tw8‘røðáJ©ẊB!×ÅræÛŽƒãz$Ò„ci\Ï¥&‰£ÊpãµWqÑ…ç/þ訡ZKÔÎÇEC–ÿ|Ù¥Mž;«KU5X4ŠÀEUUt#D(Z纔-Éß{°G,]ºTôôöÐßßϔΠõÍMi¿¶ð"U8#˜\_Ÿ¼îÚk¯Sºº¦òàC9á *7¤TŠ#Dâ TEÅu-*¥,¶YF7 Ú[¨˜Öäc='xž'q*W'ÕHs€¿Qå —pÑ”å—_¨O7‘nj%™L04¬r¾êeê!„¬ð싯¸;v_¿ýv©½½Ý»wóîž½±Xxb._ØkYv§Š%~m ã`û¿+(2Тëúu×^{] ³³CŒŒdÄ«¯màÜ… „,k—žC}ãDE£FH2ñD=S»:hH§’¥RùÂB±¼È¶í‹+€Æ_vu¶ð¦ßXwÉE‹´X¼ŽX,N8¤04‚á0¾ç éT-@&“õïºçaï‹> |èC¢¡±‰ë¯¿žT:ÍêÕkZlÛrLÓÚcúÙm­­óSõu³ÊåJº(¾øßZ4 388˜Y»vmbxx˜¹sæHO>ñ„·aã[â²K/Äõ‰ô@ð«.ñè B2p‹ÅçÍ`öÌ.ùxïÀ”¡¡Ì”á̘çûž[__§&aÚÚÚ‰DÂauõøN ¡ †pì2ÑxË,“ËóÒë[ Eë•o­ø.ñD=’$±oß>†ZimíªìÝ{ðßëëëg§Ë2ËæŠ•ŠùMß÷«­'KÕDJ5Î÷U~#(2 ;ŽÛ´uë–Ô¯¶m‹¿¹i“˜ÚÕ%ÞØ¸Ékooñx´Z®­äð#FQT|ß%Ž!+ †¦ÑÒÒL{kZ“bö¬™ò”®Nbƒp8B,^G8 Y_OcSÑX–Y|l³B±0Ê–_íñúÈÓâ+_ýª˜<©ƒîînxê©§øÖ7¿iMž<é•€8'•NO_uϽÒG?ú1®¾êj: :tè˜çy{?•Œ·J’ø«p8°lgØ÷}ý4þƒxŒ{u»]×ÙtöôéÇ;;§Ì.WÊzKS“ÿ ëüމMB‘=4ÍÀµË0F Zõ¾‡¦é躎¦ê(ª‚ð] Ã@SU¢±8Éd=ÑX”x,A(À÷,«„m–‘U³’gÿÁ#ÜuïÜpÃâ¿ÿùŸsóÍŸä‡?ü###<ðÀ¶c[·¶¶”í¹ð¶Ûnç —‹ÅÐ4Õ¿XM0¨Ô§RûÚÛšÂÓ¦Nø·Á‘¿HÖÅ.kL'O eF{jœáþ&ÆcjÏ÷ýÒ±cÇÌ™3GêééYpÙeK¥±\Žuë^ó&Ol’4\×%K!$¦éøž‡¢ÈBa|ÏD‘! ¢È i‘HM•Pcæq¬"–YB’dL«D~lˆíÛwøw®z’Y³çНývþeÅ ü±^Û²žzöÙçŠÅ‚=cæ,ohxxñ….Ñ?÷¹Ïáû>B|ßgpp¾¾þ¶r¥òÁp8¼´÷ÄàÙÿôÏß ž¨íÚµë|Iˆ]åre°&ÿ„qÍYkDð-á»™‘‘K.<_úÊW¾ÊÓ¿|&÷ú†·å¶¦gŒJ¹@4–Æ2‹Ž]Á6KèF€@0Œ¦ëA"Ñ8²!<$I ª:F0‚ãØd3} dÞØð¶³òîÇ8ÿ‚ÅÒ÷¿O?ý4w®ü~) ?ŸÍ’S§N:þ‚Ðæûè ¬]û ÷ß?omy‹ýûö3sæ,®¹æCÌ™3'0::¿téR>ýéO³hÑ"zŽŸíß¿wçº;lÇÉrª¼æý:`ɲ´Ô¶ÌùÈG#ŸþÌg¨¯O‰o¼Q³,G~ì‰5Âöd?R„,c[8Žm[¨ª†ë:ȲJ0Á÷=*Å,²¢¢é Ù ¶mRÊPÌ1’-ù?j÷ÈãÏpíu×+ßýîw)•J|üãÿƒŽŽ‰'gϙ׉D~âŸPó…½==”K%º»÷süØa,Ëd°¯‡Mo¾ÁÚµkyå•W ‚|ò“Å5×\€ªª\tÑÅ=z4þöÛowxž¿S)»÷|ˆqÏÍÐuíººd⪯|å6ººº8~¼GŒŒŽˆÎ®©lÛþ.ÛwÄv\ð*BUºIF’u„q\Ý!)¶YÆ2+UvEf,o±åÃ<ô³gÊäÄŠ+äÏ|注ªŠ¢¨Ø¶Í‹/½ëîîN‚`÷®] œ¤¹!I{k=gO›Â¼93˜3c³gžÅ9óf2±­pyùå—ùÙãOø–i‰Y³f¡i–eòÌÚµ8¸/oÛΛT©q7Ú7ƒïqC(x* ]{ÛW¿:ïß}7}}}ÜvÛW©TL à¡¡AC“رç˜ÿÒ«›üImiÁü¹R{[ &L&V(3ø®ƒò¹1¿¿ÐÏ]©ûX?ûtcÛñx\hšÊØØBTƒI!ª:¦··W¸®K$¦sr­Íƒ*±hˆtc+ª,Pd UU’LSS˜9}ûÜ?Û·ïàÎ;WÒÝÝ͆oÐ9iÒæí;÷¨ºëÊiúàÿ eu ÔÚÒ´üo¥R sr¹¬[,•ÖÿÅ_üeÿyç-üà÷¿¿25eʱbÅ Ö¯ƒµÏ¬õ>,lËÂÐUBø®o[åŠ% Å’cÛ®ŸnlQ›š›ÐT•“}}¸ŽƒëºöÉ“'¥U«VÉóæÍãË_þ2÷Þ{/†`ÚÔ:&6ÓÖ>‘ö¶u4UB×(ª‚¦s#”KÌJ…‘Ì®ëÓ78ÂãO¿Êœ¹çrûí·së­·ÒwâØÆw÷øv¾Pìñ}¿¯–^÷çtª‘]X–¥9®ë}‚j¢óU!DeáÂ…í#™Ìg>õ©›§ñ–/½wÓÆùáï¢R)£ªÕh[[--MHøÌ˜9‹ÙsçqϪU<òðƒ466Œ¡ìÚ·oo뉓}ÍS§N $“I6lØ@¢.AKcš®Î6RÉ8'N ­­•¶ö‰ºŠ, TUÅ,çPT«Rbdø`ŒŠiaÙ#Ã'é>r‚'Önàúþœ™3gðõÛ¿æÏŸ;}]>Ÿwçž݇ßtÅÓEÀ­É‡ìºÞà›@ˆjÖÈÞ¼y³¨û÷í¦ûÐA::§`Û6+W®¤··‡öö äóyillàïþîóœNÃÃÃDÃò±cG=p舳`þüóoúèGµÿø>zzzX´h££¦v¶Ó®#]£1'ᔆ°\UÕÐä(ñºlÇ¡R.¯k&7ÖO0E³H& †ã¢iùùSÌœ9ƒE‹/›7m\†—jš†¢(/;Žs 0ðëáë¸Itkڲ̩wI’$zŽ›²nÝË‘“}ý¼ñƬýåjú´©Ï/Z¼äÀ’%K* <ûì³á… Ï¥¡¡ñ½¶¹·6mà…_<Ð{bà9]S—\rÉ%SV®¼“k®¹†óÎ; o¼á×ÅÃbÒ¤6Z[šèìè U#á:e¥ Þ;»÷‹íÛw108L(Ç,çß­šxÝR.Œ‹†É6nÚÂw¾ým–-»’ä£Lœ8õë×»•Je“ïûÅ_o”ô©š¯À¸™@Ñó¼[¶»}hhàŠ•ßÿ÷s‹¥r[4|íÉÕkÿùO•¢Ñ¨”L&›r¹ì?ý7=¹¡¡ „ÀsØÇàÐȘï3ªÇßܸ‘5kÖpÍ5×°nÝKÞ‰Þ£â²K. •ŒÓÚÚJ*UG@—‰%ÒäFež{å­Ê£?ÿåØÁCGFÇ’¢³sbó•KG¯¼â2]ES•jFYѨ˜6ç/˜Áw?ÄîÝ»Y¾|9ÇŽ# ÇFÇ"žçé¿©St<ß~z¶e\kŠÑ±Ü¯FÇreYjr]¯}È´†© …\.WÉårÝšªTû.qrÚ±={p83Ü×?4äûò効ÚóÜô7¾ñå‰D‚W_}Mêœ<‘‰“&1qâdê!b±Š…\†[S¸ëžGOø¾ÿÕdÉóýÀƒG¦w>~ãÀàPÇU—/¦.™"40‚A‚á$m¦M*±Ö<µZZ¾|¹ Ë–íøŽëª€ú~­²§ûÌã"‘¯ým»®Wz©*O³v­È–í¼t¼g`óɾá뺒ëºxÞ©ÇÙ¶›3wÞšb¡xÅš5k¤¦wuÅÐUHÖ§‰Åë‰%êyî¹çÌ{xrÈ÷ý7k›áÔ8õ€ëº½¯~áÖÆt]Ë¢ Î% £ë!l«B².Åôi“•½ºår™îînî¸ã†‡‡Ê¾ï»€ÿ~ü:ûÑãùýÕps¼0:Þµ!ÃqÛqœ"§ìî¸~± È _aš¦”J¥ð<—X,‚YÅ®Èxv…l¦—‘á^V?ý¼SkÚJU$Kœª+ÀFÇõV¿µmÏgçÎ;GDŸ|nŒdª©T¢¹¡ž-¿:à÷õõ±jÕ=¼µyÓ¨$IORåZïwͯ‹G¥6‰QªõÀñ ïL©vm¼0:Pƒ€eùÙ¶}Ý×¾ö5Î:k:åRM•‰ÆëQÕjoq4‘&“ów¾³#O•íÇ«KÜ*ÀÔÎ7÷ Œäûûû)•ŠhF”ÜèP„†¦6ßqlwddE‘™¿`A¡¡¡ñ@m¾Öï[`Æks§GY§ƒT¤*¹Ú±¤ƒÁàü+þ…eË–¡(2BHD"Q‚áMíg¡\ÇÆ´=Jesü9.U®Ëžö¼lm ›¦Y*J˜• ¹± ñú6<×\L³âx®‹`èF8™¬ ÔÀ,Ÿ± Ëûuú€T©Tœ]»ÞaÏ»ïR,–PU Ç®ŸP8$+ÈŠN}ºUÔÕÕ%¨æÇÁ¶9¥ ÝÚ¹¦©r8 ¡ê$EÁul«BÅ´ð<Ï‹D"Ô'“ôõ÷ ×uíñçü±øu’€á|>ÿæ­·þCÿŸÝx«Vý×ó1Ë ²}ÓJÅlLº¦tDµûN%@Çû›‘$q^KKK8¡¨:PŒBvEÑ(–]? I M|ðƒdhhH?pà F•cÅ5‚j^ÿÛ…BáïòùìCÇŽr†††èë;‰ízÈjJ©€e–Eb\´è\®ª`SõN#TcI’¤%áPðgO›ŒÐ0Ë9ð]BᲪ³ã]…¶¶ N"ž`öìÙ,Yra T*]PRù¯`¼_ ãûþöl6_$9244Ìñž>*“b±ÌÈPÙÑ~Ê…Q¦v¶rÓ‡oL†vpÐ ÔS…7G¡»/¹xq㬙Óe‰h,¦*DiJe—ã=ý¡+¯¼2<u¶´´G§H’”ßÅ ž /©smÛùKÓr[/^ÄÐÐ¥ŠK:U¬…( ŸH4ÆuZ†¡I­Ï¼ðê? ô1m{ ¤Ó©ÄäùsgpÑÅ£«AC!a‚XV‰7·lÇó…zñÅP*•غu “&´åvïÙïyž'þ«€ª"³€EÓÏž~ÝÊ•+™9s_ûÚ×xãÍm´Þ° ÛhFŒ@(‚ŒR×hpÓÇÚ˜Ú5™îr¹ì$#`ИN  …H$B]]‘h U•é=9à?üð£^gg§ü¥/}‰ÆÆF’É$û÷í³|ÏÙd;Žx UQØ#I’=sæL5‰0þ|Ö­{™77oåâ%ç3–/I¤HÔ7ãù K2“' ÊØŽ‡ ×5ñí,¡@CS°+9²™ÿú¯?tê’õЦiìÞ½«oݺ—›¦Õ ËÒ.ÏóÞ®mBån2ú=Pillì‘zâÉ'ŪU?"•JÓ}¸Ï)ÓÖÚL(œÀs-<×Â*g‘$ˆDë%A¹0L  S_Ÿ&Ð0‹#蚊m{þ?¼¯pèhŸò…/|A~é¥illÜpàÀÁÕÀVß÷·PužF€±?P5gŽmÛg½þúëí;vlßì{Þ6Í Î]hlß¹¡á!šÒqTE ê!4#€cqíVy”ºdš`(„,ùAEæÈ‘cþ}5´ÑIDATîyÔì>:(ßyç꥗^*^{íu6oÞ|²X,nô}?OÕïh+þ©T}‚ÀNÏóÞB®OÕÏjooOùÖ[Y½úoÛ[4oî\:§L!•J±xñbÑÒÒʆ›Å¶í»Ä¡#=ôö°sÏAvŸ`x$Ï´³gKçž{žTÈ娷w¿\»Æ}âñ'ýÌHFŠ'âüí·28pÒñÓb©|”j ‘§öÙÍí¼þ=H¢ÖD¡iÚÔ©]ÿèû\ÛÚÚ.]wýõ;z„u/¯ÃulÛó|lÛV_x1_øÂçill" p×]wñoËWe±q,›ß^1máyþ¥±xtZ².ž›ÐÖúÌkë7=\,•ÆÛy3Tƒµß)ðÇ ñª­°,ëp·776nصû¥¯¾öj§êbÑ}ª®w;Ž£$â‘+^{õÅÙW_}¡PˆLfð9~ì0ÑHÈÍæòo dß¥Êæo•Êå³-Ë:yøðñƒ¥ryŒª^ä´oŽþÔ0N2Õ¢Eˆ!ê|ßo :É 5¥™ˆE&ê†ú÷¡plr,Ãqdr¹žçÉ~+›Ëwsª•NU†óT(pZ·ùÿ/@u¢Õ£ñfèñŒÓøWäš$‰iBˆ.!„*Ô%ã‰D,Îì{‡ª£ ÜxwÚx~büË$œSÝIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/bin.png000644 001750 001750 00000014647 11617757645 021373 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞnIDATxœí›IŒ&Ǖߑ{~[ÕWKoÜ)J¤$Œlm#k‰²1€eÀ6`|ðÁ'_}ôa.† ÌŒ—ƒo>x,Œ<3’F )’â4ER${ïªîªîªê®å[sÏÈò+v‹f“ÍÕxHô×Yùþñ–ÿ{--ÿ_‹úý÷gq·õ@Uè-îú£H~Ô¼O9DÇ@Uxð?ŽÞ ÿ]þÿ£Ÿ€Å=ßIÁ“Àòûx§xŸßr,!ð|À÷ÜK\îÒÛy‡%ð(pøüjôwÝ/I« GèÊŽÖÇh€Öš·¼Ë¾åß¼å÷{‰¤ °SÀÀ;ß^Š{<óVåŽ?ؾÍGÊÅ¥ãöh~‚6è¹@N«ü€ | È€û´’-8¾î郎ããî`}ñQ» å€ÇÏ/ÝõìÝ3|·ÒÎ]÷0X¼¯Ä‹XÜ—€Ž£ÔR܉Öã8Z <Ïs\—ã1ãñ˜n·ó¯ªªnªª>´Öž·Öþ„v2¶€=Z«©ßÀ»ò點û¿˜Osà‹‡ŸÎ !"!Dl­í[kû %c)ĺ…SÀº€% Ý ð‡A¬DaØwåGQ¬zý®×ïõèvB–}–‡ËD¡ç:ÄqLà{¬¬¬òý?ý!Ï=w–ð÷¿C£5™Í×wwo­ßÞ?úæáhœÞȲ|Ó4抅_7×PѺұ‚Ç€4´ö9àGw#r7%pvaÿøwÀ#BˆN_ IJ¹â8ÎÐqœÈu/ àÛU¯×£Ó‰éu#––ÄQD·Û£ßïø>ýAAS{AT9J ]e¾ëzÊóC]cLCÓ4H)¨Ëšõõ5{ô|ÏAÒ …µŽgÝýýÛOŽçO]Û¼ÎÞ­Ûf4ÏF“Ùõ"Ï7Œ1—Œ±o,t¸Ì dÀß\Lðν8–à÷€—ÿ ”|Øs‡ìa¾øù¿Á‰SgløM¯×q\eèÄ1îc4.‘´†N·ÏʡѕkšÚ•ާµ4yÔ]BWyì±üˆ4™1ŸpxtÄÊÊ Ý^]Έ£lƒPËKrúäQg™¢(ÉóBn^½4˜Ì³ÏM?wcg½Ý]“åøðp´Q×õ5cÌù¢,/oaå§þÂ*ÎÝ+: øÝ^·óŸ——úÑÖö [U•þÆ×û¥/~Þô:X«±Fã{.Ö@£ ®ë³³³‡ Ãå!~àâ¸>¾·D–Œ@àK§:ÝþJ9íM]× ¥T~£]°Ë$Iƙӧ }‰×]¥ÇLG;4Jhâ([±~â4u]0èG¤ó1½áÆã1W/_·çÃso¼1¼|eãKG£)R*kL#€ÛÀ'€ç€ͽ´ëZ–›>pê3½^GO&S÷¿ý÷ÿÁþìÏùÚW¾È·¾õu†K]‚ÀÇh¨«’µÕu¶¶¶ÈRËÞÁ ‹šºÑ,a­¡*RLúÕu·®Š¤,3­$ñl6&Í ¢ÀE`ð=‡¸Ó3Ä ‡ªª8:<`:M(6¶˜Î2vvöØÙÝa2M˜NgdY†1¥½^Ç}„º.Åó/¾25Æ\]è¦náÞ €ãàqX–Õ¹7n\gÿöíîîÞ­üóWÍÖÖMùûð=¬…¢hcŠï¹t{]†Ã!½Ø! <úƒ>Ãá½Á Ùüþò Štе–¦Ñ R¹x®ËÕmkŒy•–Ïì-Ü[ûú½, ^€pn:Ÿï–E~&tñ}×õhÓŸz‚S'VÙÛ»Å~ü,?}öç|ã«_àÁ3'ØÜ¼ÆÆµë ‡+l]¿Ælžpx4çúÖ6{·o3›gÌfsò<§©k‚0¦zⱜn7–½n—~/&ÃÕ“ActIU¤x~ˆTŠå¥¡/PJ "k4®„}–ËW·88íoÐfº†û¤Âõâá­,Ë/Ç“3k«Ë~€”y†ò\VW׈£€S'ר¾±ËŸüè9¬m(«ŠýÛ¿C†Lg y6GJAø ——9yâ>tŠ(péÄ!.ÒUÒõSßsºF—ø~€Ñ(@J‰çû8n—"U(åÐ_ZÇq]¤q)‹„~¯‡ã8H©ÊÁº\ºòмø%°MË4 îPëw Y€c_M’ok­‘JE])кÁ:eU2O3¤rX]Yæh46i:×¶ùô“Oˆo|õK,/Åt»ª"¡*æô–V‰»Ë”ù Çõ™o¡ëRyA ]Ï+”Œ]føƒá E6!îÆaLª4Qg@uÉ’N„çZ”’DBJ„òf\¹rÍkÏÒ½rq½-|;7¨€ÚZûËY’Y^ËÊRH¬-1ÆÐ‰;x®o–—†¥1Z&i.ξôªúä'F(·¹u{ŸÕµÏ¸ƒ¥%á¨!“Û¡O¸ úgp—'N1í6ì/Ÿœ.¯œöç“=QdS|?$ u•ãȈ¥•5‰rÚ8Q%×vió*w"Çø}pÌ GMc^Oædi"ªª­ÊtUâ¸.BÊ<Á bÂ0¤®JʪÁ b¬±8^Ðf"£®s?ê.˨»Œµ¦UÜ´®PÊ!¤ëú®ïÇ(ǧ®kÊ"E9Qgc4uÙ²ÏÁòI\/¢*Röv÷ؾ¹[Zk_½Kùã üÀTµÖ/¦yÕèÆøJù躦,æm®v<¤R˜F㻎ë2›Í@HÂ΀º*ðü7ˆšFײÊ玮K‚°‹ ­K]‘gâî’TŽåé×õ1¦¡Hg(Ç%ˆº”y²àÝh:ƒ5’kÛ;7M~ÕÿßVÞËÊÏEq¹(뽬hDž§¦,²E€rýb‹1 žïøiÖFæd6Âó#„Xc´rƒ¢È”ã!¤ÄZƒãøm¿ È(²dâ‘кF*‡áÚƒ O°pƒ¦1—µnv¦³¤MoÒ!™`Mí4FSiÉ<Áóc,0Ÿ)ª²XÐ`¨Êœ°3œUEâWe¦:ýlcÀÇÃ4 žuTU†µ´<@9¤yÉå«× ]ÄÍy›Ö×½äÝ"o'ÐÖÚ½º.Û’ÙÖ(G£CÒdBz”y‚£Æ\¯mr¤Ùi2®74½å=)Õ›U¢±†ªÈH“1î2®PÊ¡*s´®Âa{û{·nç¹üjîcÉüýXÀq ·Ø³³yB]LcðÂŽëcm»ð!¥ #÷÷ÉÓ!UY0›ì£¥\’Ù!U‘ÕRº³ºÊºžRB*„é”<›56KgµEŽ£ÎÊ”ªœOɲ$¿zm·šÎæç¸Sû÷þÞUÞÇÕ¡)‹ê•¢¨æó$C:B*‚0îá:mQÓ‰;Ìfs’ù˜"kAp]—Œn uUc§~À¨£ý-j]‘Îßæél^UÕ¸®ŠT`;Žçö{Ë'\©\æÓ‰wñâ%wý[_÷eþï8f…Blçy¾q}{‡²ÒéQ–Êñ¢.Îq’å9±ä錦®ñƒÎ‚ûë¹1&õÃp ¬Óè6ÈYÓPæ E>×eQŒ¥T()¦©á]{uUJ?êp8NÔ›»‰µö­e¼ ûû0hh QRëæµ+W®ðƹóŒÇ‡¸^‹$ˆzøa‡À÷(«Š<ÏQŽOcò|VNŽnª2Å÷Ã%/è(H¥@Ю&‡ÝºÈ“q£Ë®ë]Çu¥ëùx~@–Nɳ9 ÙÞÙg2]¤]ø¸ïèÿA8N‡ÚZû|fóò&çÎ]`>Ÿ` h­A‚ÀGH—¬ÐF*§DzcY÷ºJ9]?èÍGøALÔY"ºù¼Î³d„ñRS—.Bây1Ñ!$i2ãÜùKÔµ~;µÿ»’Ÿ»åýdc©€²,Ë7ºQ°ý<¼sý¦UŽÃ“O|ø5kíj]Õ·.&§>µÔk}E¼°q#ìÄ1'Ö†íj²#˜N§kq½ÀZK‘ÍÚW*f“}ü°Û ”VÊé é2ŸLyõü&—._gsã:ådÎjòë'O›'Ÿ|Üüñ¥ yõàðÖÑ®ýù´»ÝŽ·Ö}¨DȆ‹"àyà{´®ð•ÊÚß}áÖÁ¿õø£Xåñó×/b?û)N®­G“ i2euí$M£ÛþŸã“g3t5'»Ì§ãìðhýòÂu®nÞäê¥ËT“)«¾ËWN®óø'c%ê”Ëý%=«sÿêþ¡ÆÚ›Àg_£¥Á/Ügx/Ô´{lvßò{¼nó“¹ßxiÿè‘o=pšRk^yýê³OEÉ<¥n`t¸Ëp¸ŠÛFz.Û[›\?¿ÍÙ_¼âíÞ¼í’e<Ôïó·|žz‚ŽjƒGÈÜu•hÿàÜuvÆM»™à‡À³Üµ òÃà^æT·1/y1¾FßýÅ­ý‡¾ñðƒ¤eÎù‹¬¯¯1Ÿ'”EÕAÊgëÆW¯msáÒ&›—.A–ÛÓqäüÝNÊOœ<Á°ÓÅsuY ”$Ž;õ¼¬xa{;øÙ¥M^ÝÞ³Mc éïÏpÇÿï[>èÆæãw8ÀçÏõú=¿…ÿæ›k«áÃÝߨãÜxÊ ßãŸüãï2K3.\ºÊÍë[8EÉ#ƒ>O>Á©8ÐÃ(Êý0èWŠž£Òr{žðâÆ6Ï_ÝäÆxº“UÕ+UU?ü­v€ÿJkïé”ɇÀñ{†´›Çkëkÿ¼«ä¿ø;'×XéôøþÆ5ÞØßçÄʨ1<¾2äÉõ!¬ Yêvð=t>ÒAÐÍÂN·ç*Á²5™ñÌ…K¼¼½ÃA’]JòüºÖÏcž ÝgüŸhýý$ð-úKÚlð±­œb¥ÔpeuøÛg¢øéß<±B)¿ÿú¾|ú4¿ñÉÇöbÏAëåz(¥M]G~”5¾ß¿°{‹g.oòòÖ =β_hmþD×õËÆ˜CÚLô[ÀÏ€Ê& ] Í÷½Ãýƒð€·Š^ \5MÓŒG“ÿ(¥xô¹Ý[<ýØÃ¬t;¬õbbeÒõئđßó8˜NÔ_l\ _¸~“+‡ãù4Ï^¨«ú‡uU¿a­Óúúñ·‹À Åi¯¥µ€÷$&С9 «ªºœÌ“ßٌû¶·ûÂr”ΑÎ)? 8n—íÛ»¼xñ*~á²ÜOGEUÿ´®êŸh­7¸SÖæ´Ê'´ç~JÛ÷ÿÀòapÜ+˜Î|ž>ã8꿼t8ú—¢ª†!qÑë÷Ø88àùë§ã:íÙE>l 5ÕcKpgÓ伕ÁãI©¿³^fÜ( þçsg9{m³eÅkE^ü©®ê³Æ˜còRÑ*œÒ*ÜÛ?ÞÜt¯ÃïK>Ì øVqi÷¯8J}żßÓU5 ¿Èkýª5öu­_²Ö_)¸3ÛÇŠïUüÈP~”@K›¿|—ö(Ì2m ú÷´Œ²äŽ›ù[O‚|¤òQp‚Vùm®¾E{\æŸü/îÌøñBÆÝ§=>ù(bÀ±L€?¤mT( K[PÑV’mm¡yËæÅSþnå b‰‘IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/copy.png000644 001750 001750 00000016233 11617757645 021566 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ ³{¢®IDATxÚí›iÌ%ÙYßçÔ©õî÷]z™nwO{Ïâ1ÞŽ;رEÂâñ C!‘$Ä7„È–ì Û€#ˆq°a›÷XƒyÃKb{–ž™^ßý¾·n­gˇªîé™é±ÍÌ`”’Jo÷ÕÝê©çyÎÿ÷Î…þ¸üØøûvDJùwúâ[t-®û«5ÈÒ¬¬ê‘÷¾\Ö@´az­õßÙSÏÑû¤ÀÈ€10¦ý¿gQ¤ŽÅI¼‡Ñ$Iâq’$k£ÑpZÅôÜ#Æ­Ö¿Üœ.pëkS¤”ìììcÃZû­ÉDqDYV°Ej3jqRHy ÏZ¨8 ×ã$ž¥Iœ$iŒFãp2³Ù,c™ÄQG¡O&„c:=B”düêx+?òCo`‘·¼ý7Þ}AkýkÀ\Í€S§NØŸzóñÂ{_Ä[ßþ.>ú±ûišF"„Ãûç.£Ñ<_‰µµù÷†ƒ*%kκ#B2K“l-ŒÂi*™$ŠAš1¤LgsÖæsÆã!iš’e)“ñ¥@J‰ "„ð8Ó!àÑmÅ`ÿÅÿËïþÖ¯ƒwþ÷ý•xËÛÞÅÃçyGÛš_~Ãë_sÁ:ÏzË/1NØÙÙå÷Þû~~å×SÄqä­ucž›ÄZ§” ~ó ¯ûî7ßqû-„aÀ0‹‰“˜$I§8W{‰RH¢d€”¥q:ÄTŠ(JPA€55ø®¬µ¶x¡ Æ£”d¸ÎÏý¿ç§òG¹ã¶“,¶™ÎÖyøáyçoÿ!ï¿ïÃ_Üß_ü*ð{[_q‹½-œ­9{÷ë2À¾ö»^ÙÜÿÉÏдöY—„pÎxïÙ_›Ü™ÓÇåd2a0bÚ’ÁhJ’ŒÈD $ƒÁ)IšE)aŽ8ΰ¦ÅùlfSŠ|‡<_pî‘‹|üã_d±,¸¼}ˆÄñÊW¼ gjœ5«óÙÔÿâ¿û)ñÚïzÅÝ¿öÖw½ó _üêÖŽÜþ³_þÌo§Ùà°óåç›Ü÷aÞóûàü…˸gÑ!ºVཎ÷Þõ/}ɋ䩓7±6³¾>禷Džù|Îl6'”Ž(„$IXÛ8Rœ&Ž)±¦"ŠR¬i‘2@Ã,à–çßBÛÔü×w¼‡KW¶ùÀŸüçÏ_d4Y#¤„JŠ P<ÿ–›yÝk^Ö½ç‘Ç.}ß[ßþ;çÞö¿ýðÀcïxטÿöî·¸»î8Íb‘³µ½1ÿ úµ ‡ÚVß{÷·ÿãÛ]Áx†‚(ŒR û µM’8(E]-)ó=¼÷ÔÕ¼£.©ŠC¢8¥mJÂ(Åã‰Â€O}ê3Ìæk¼úU/cyxÀg?÷þÇÿücþ便âÓŸû»{ ›Gxãë^åï}á]k—.^þÁó®éW•Ïæ§~ü‡ÍÉ“'yåK_ÀúúœGÏoqx¸|¦€ 0ÆÜ}Ëéo¸ûÎ[‚ñhDš‘*B*…Ñ-Îj²Á”ÕáÖ[‚ ÄYƒsŽ82¯ã½'ÌH²1m½BŠ€¶^E«•ækœãÕßñb6lpïÝ·ñm/|wÜq+óÙ„íí>qÿ§ùÃ÷ÝÇþäƒüŸ¯œgŸ‹ÿžï~¹úØÇ?uï2/ö¿Vÿö§¬M’!ƒaÆÝ/¸…—½ô^ʲæüù‹k¿éE"x|Ù“kïåË iõðIàÒ¹séËW®`,ÄQÈͧNð=¯yóù˜ÏþËTUó· @¿œ=qâø÷¿úÕÿ(b”ÔUŽ@à\wÇn £Ý”ÔÕ)Îi¤TDéˆ Px稫Cœ³ $ƒÑÎ;$ŽáhB¨$I$” I&³u†YÄtœpó™[9yâ§OnrÏ=·qï=w±¾¾Á¥K—Äâ0ô"ëàkœÛþÒ—¿ÚþÙ_|„ÿuÿgùÊ×ÁzÉ ïz>ç»ÀW|ôo©»/ëºvmÛæÄIL™ïã¼JŨ0Æ{Ïpz)$m•“çè¦BI’M1¦!BÂ(C·AšŽ Vx$RxÃ)i6%Ïw©‹â$C4q&Sæ³!«å>Ú ´ ØÙÙqç½ôeàðràôîÞâ“À'N/ÿìÏ?ÄûþèO9rdƒ¦®ž±.ªªvMSP—K’x‚T!BH¢xˆÇâqPå{Xg˜ÌO „dµÜé²)Œ‘2F…“µ(q¸‘ 2@ Áòà {ULYì'c¢(£Xî1šlà¥àÈñ› £ç,QàðiàÁž$}ú3_¨þgÞì¶¶v¹xy›‡:‡÷M4‚§ ®KW—‡”å’Ñ(#ŒRLÛ`t…ï=Æ4”ù>2¢ D&„a‚5 …ikŒ®Y-¶ðX’tDS¯°Î“dœÕ´mÉ`´u­kT±Ê÷x¼³TbÁp´.ªºuÀp ¸ÒÃ’4 ^ö’»©jCÝ8>ÿùÏò;ïyÅ7Ñž€Òkëª@·%BH„'J4UŽ t[EM[ Âå3Â0¦iJ„è¶Æ:KhêAÒT-BxÚ¦!ã„8Rï‹K Fë€ ŒRF阢Ø'PQ×p«œ<_Z`Ù_x x ÎÒdZÕÍðMÿâß<-QöÏýúèED«µñùrá… „”Ì7n&?ÜÂ;5-ÙpÅÞ¢8Ãèš@…4MA6œãœÅêç=e¾‹ S†ãuÂ(¡ÈwIÒÙh³Ï(Élí$muÈÞÎeŒƒ¶µìcɨjMž¯ØÚÚâ+_}0ȲäõI¿"M™¦éü›%Êo*¤Ý:õ2ÅáÞß‚³–ƒÝG‘B*…wà £¨0Á;GœŒðÞFAÒT9e¾G:œ±ZÅìírá±Y ûû v÷—lïì²X,9Ø? Ï—´ÚHI+ÒtÀh8b:eoú7$I½âFDùK¿ð/YäíÙ·ÿÆ»Lk½ |îÜ}y50×e€hÛ¶mµö„阶)HÒ®Ogï N8žFçTÅÙh8"„Ä{ÏÇïÿ ŸøÄýìïo±XTU6ÐjRO&ÊÓ§NpÏÝ·?c¢Q"±üíˆ2zœ(7f׈ò¿üÖ{ù¹Ÿù×çYìˆï}ãk¹óŽÓ¼ó·ÿð'Þ߇¿ý*Q>© 2ÀÍ“š ¨6…±žrµOSMüx~LM•÷+B ¼wxÞY¬ÑÈ 3æ³5¢Îœ>ÎÓ%ßj¢~Øî/ô°s5×” ”çœS¡úáW¼ü¥§N›úµõc"Ž;ªÓmE¦8k‘á±F¨Æ"´šO}òS·š—¼ø^þ>e]7ç€kDyµA>A ?ïä1¿ÌWozÑ ï¼õìÙÓÔáqÖǪbº^¢TŒ¢[&…$J†XÓâåÁG.³»³Ã·½èNþ¾%`ž ´ÖXëò<ÏŽ’b¬Ñ¨(¥®WÈ &Q ÎÂ(A·Îzš*'NG!%«uµÂûa˜!…£œÕ GëìoŸÃZM’ŒºþáA… I6F7“ù <ž¦û‡/ggçÇ.lñù!–yqð¯€ßîB XëžeÓ´ÔuÎ*ßa¶~"P`5Ötò»cý çº lë'"¡i›†(Dùx  Aí–E³!$ûÛ‘ ×ðÎáœ!P!a’!E[çDñ¶Yᜥ.Q4MË?¢|¼\g1·m»Õ‹T‘AD6\£,ö Ô0ÊúnìPAD0˜Q—‡ÐSbœYÛ8NÓ”üC!Jùxè› +k=ºm„Ñ­ŸoÞÌÑwu ÌiœÓè¦`µÜ¢­WýÝPaD6˜‘ÄÁÓ¥s–@Exgˆ¢ k R)T”Ei§HEG”Uµ)¯¥5ç mS u…Tép†óžåâØåt~*Îz¯s¶V«ÜÀ X‡òq)ìúÔ¤¨ªŠ¢XRä{boë!œ5X£±ÖtStØkL[¡Û’¦Z±¿ó(ƒÁkùrÑç:¢´F?(­3Dq†³ú:¢œ%#Â0F (ó]Ê|¼'Œšºã“ùÆ”J®e„Ë=œk1ºfçI2&ÎŒÖiåp™7=&ë«òø‰³çN¨Ú<“µSxï9<¸ˆ÷®óû¼C`t‹ÝË'󓤃Q’¡B… /S:¢äQ:×Ýmï¹F”A‘dSÂ(c8ÞDˆÎh’Q€=t[`­Á÷¥êœ£Ìw:ƒÖ¼sLæ' ãïAë!.²ZªÙß?hz¯àªŸðÄô³øÂë½W]­éÎU1m…Ö5q:A…q¼ËÞÐTÅA'f‚.›®'J!zSUÅBTÝ/.ctRF+÷ºÀ³Ê·ºÆl-M•ÓTK¬i1¦Å;ÇáÞyªò¤`4;Ž ³^¥v õêÌ£©rª²¤ªš«°Wp£ñøÊ;ß:/â$›am‹ïéQ!FWÄÉ„Ä{G]çH;Œs䙥 Bœ·¤Ù”£·¡uµšÃƒ‹Œ§ÇŽ7°¦ÁZK6œ3œAÅáþy¬©{§: ®‘fS(…P%UU•½47Ì€~š°2F·eqH]å$Ù´=mIU.iª­+t[1žŸ`0ÚèVïÀy¬Yõ3†«D™&ƒkÆI¥8ÛöâÇ?(…”DqFfˆ èf€n ”Šð¾[Š=!%ÏáÞ¬iXÛ<ÃhzœC hëÅj2ßCxËÞþ>e€ºïOõ{µBˆJk3òH‚0Â{K[ƒw/%R†'X¢Û.}… PaLlZÒ$FÈ„¶)"ç0VcLÓ«II0¦F·*LPaܺ¢.s¢8Eëš(ÊpÎâíx¢mˆÒ!V·8çˆâ^t^)›'îäÊcC~x)C’t¾æÒ¥ ¾itÕ׿¹Þz m UL£”2ßÅšööFÉ€Áxƒº^ÒÖR´M÷7ɦl=Ëp<¡®¤Š9Ü¿Àrq™º\v"%ߢXíà½CJ… ÂîN„I×à¬a²~é`J VËm"dÐ1 ;~HG!Qa‚mk»âqDñÙæ@¨°+agÙÙÚöýò×ö=à®pWêÖy_UUE±Üe”mtó¾á)®œÿ‡{M‘Æ2œA·m½Â!Iólˆ²)–aD b&k'0ºA¯ \ ÈÒ1ÞÙ.›Âk Ö4DÉ¥"Ú¶$ͦDq£u¥¿ÎU¶7Ì!àìóO;!Eq¸Ø£mk„T*ïX-w£´Íж©À;tSÆ].–;¤iDO”¨0%­!€0Š;9D å5¢ôÞ_#ʰ¾wDPe¾‹÷/ÑTKVËŒ®‰Ó1à±ÖP®öhšÅ­5ÔÅ’ùæéÎl ðž8P ð‡¦*¨>»¬m»¥ÐÊå£ ïe¾G8“¯*ʲª¾Qbà&à,ð¼zT¿åmïnÃ0,„ pηÞûÖ{_÷gëœ3Þ{ãœ×Þ{Ý/1 0»õìéx2QJÙ1ƒ5í5¢ £GGsU¹Àèª³ËÆ›«}V‹Ë]i$£^9Öøòk5à‰¢Œ$›€$ƒu¹è·ë’Á”8É88XÐ7Àòë í-£ËÎ9ѶnÙ¶:ïM}Ý´Õô§íÿo¯{Ü7c¿ß{%:¢L*Ä´OšÍ:3EšjÉd~âQvŠPSä»TÅ!Þ{´®{0E©ç Ò*¤”} 4Ù8Âd€²ŸR7H!YuFŠ>úëíð}/Ü> ì‡@þ4¸:÷×–N<¢lëkÚÞCìÞ>Œý¥ §éÙ kÌF·dƒR)tYbœ%Š2¼ŠÈs.^ºÌuûìÓ@)åÖæÓfk{wøDÿ¢¼ÏŽkÕ/úýÞÖƒŒ¦ÇH²)é SsЉâGO¼`»'ʸ®rfÓãTnV´¾óúº·“Œç'®ù m³e±R1UqÈpr„ Pè¦BÆ’$›EÚ4l?Œ ÆóuœÑžhŠ®©Iœá¼ãà §¿‘í“÷ <Å”â¯ÿNó¦ïûîs7Ÿ9ÃÑ#Gh«C¢$#b<Ž|q…(ÒÔË~«\rm\æ¬~ÖDiKƒÑMßàZ’tB]Ò¶%‰n¨ØC…)£é±îýœÅèš¶)Ž7{ϱËç¼?X䨲 ~*»Îl[ƒŠju@;2Y?‰è'«åJÅÑÑoB*ò]£u<ßíÙ} QAH "¤w„qÊ`¼A¾¸ŒwŽ@EQŠ$›2nÐê ¼'?¼‚÷ŽÙúé®”¼GJE™ï"… » Ûë,¦ß¯h­&+±pÀuà¾nʲ¢iº-.É`N” ;Ún8‘M°½‘)d€³Ý–¬·È†k¨Áì9!Jï,BÌ7ÎP d eÚ‹°M•cmËrÿ"A˜0šlâ}·…ÞèŠd0E IžçìØ‰ §:B@YÕ4MCDx/ðγwåAVËmL[F)q2"PV·†)A]-YnñÀ?ô¬‰ãÙñÞô\0o%#L["ƒÞ !¡ªšêº&øõ3ä]DI¿ƒ#NFÒ!m[v~[SHE °¶3ÙðfªbXÓ>k¢l›‚2ßgk¢" mœ1>$LÑ4W®lsñÒ^Ä”eÍÎÖöv/Ó4šª©½n¬_…_.—䫯è£c¦Àuà³À}9èÀZÇ?ü >÷7_âÄM71™Œ9ØÛB[hµ¥®[šº¦5f¨ª’¦mi›–s<ôrúY¥õÒÕ¶uU»ºi]ÛjÛ¶­išFk­M«5Æ8k­5ÆXëœö°5O~Ü|øðžª«½à¹þåèõDùCRÊQ*x¦DÙ^Z×3ˆîÏ«ã­ëaìªÖ¿:ÿ‹€ü9ð)à¡þâ¯Î¼zŽð\åõÀe¯{üúÜè4×}Î8Ùo}¬¿ûßxx–ÇsE”öºÇ¿ÑùtGݧý•^ùoå§Uýå7øâÏÕ‘ôßaÑ¢ ÿÿxâñÿ –8s³«Ä¬IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/mirror.png000644 001750 001750 00000014605 11617757645 022127 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ  YàpƒIDATxÚí{iŒd×uÞw··ÔÞUÝU½OO÷ô2ÃqH‡«$Š4#1R$ËŽ³³úˆ;Aþ0’$ˆ †m Hb+ˆcZE[VŠ‹¹ˆr†œ™îéžžÞ×êꮪ·Þ%?úUj {8Š‹Š/ðP¨í½w¾ûs¾{Î}À_ŒŸèÁìqì~RÐ@ˆ»>ç24ý‘ (%0æc€pÚÞþ> @Õ‚sð‘ (Eo¥„™©qœ<9×u ¤D*Ì"BìÉ©EZØ×ÎÁº¾'öèþ/ùO¬¡Ÿ° pÀ9Ëö³èpìЄ VíÅãܱ#h VW—±´¼‰¯?ÿBÇfíö9coDð»`öóÄ1€¶=ô 뻤|ç?.€aSöZ%€¯ØÆ8v(¥À¡¾ïãýʯѮuxÖ(eÿ’Ð`À €ñ|>7*„(8œ .8#Œ’$Ž•LÓTJÕJR¹†Ñ€«Þp ÀîÓI5Æècf›Ûûðìû€‡ü,€€àtŸ³ûÏÇ×åˆcI¬‘Ž5Ú·¯Y籠Ìp!.f|ÿÁ|>{²RΆúpbd•JÕZ ÙLFK£‘¦)Â(ÅþÁ¶67Po´°²¶…Í­]upм†Á‹I’>—JùºÖzÍlnà Ç\²AXºÿ!x”Rú_ Á?•R¯~zwò%a/’àBcŒ`Àù|6óHµ¯÷üà@ßèøø¦§¦Ð_ë²>'‚×ËdÁ¸Îh%Á¸ƒ(hA*B…Ö@íT)í·ƒÈÙØÜÆÍ›Ë¸1k[‹»õ½oíïü!€×,…5!„c¸e\¯ pù|þïôõö<Èݸµ´öŸ´Vÿ2•ªu·t(žPÀ !Â3 à‹½åÒ÷ž›ª~âìŒ;91†Zµ!(pc~ñÚÁAów´Ñ_³¬@Ù=Îûžû·žùìg¦|Ï£ 7o-¾úúÛ¿à_Øxs[#oJgÆóŠ–æÃƘϖK…¿vñÂÙêÓO>ŽéÉq”JepÎ 8Ž£Ôóü¼ñs%®U)híƒèœQø¥òa€U*Œã Õ2QÍÉx„1IÃ@O¹‚½½mx.ÇØ‰<þ胅+ï]»øòko]\ZZýÊÞ^ã?+­¿m w|ñ¾/åoÿtîóŸ{3Ó“(K`Ô@¥ˆ‘àŒCé´E€(_ìË% œ;!2A‡ Œ)­5’¸ídr%áy9’F-@Çð}Œjpx^Úh(•bdh3Sœ¥2ýt%IšîøÂ¹{¦ÿêSO<Úÿø£š€Ë·n’«×n¬7ö[Ò[.½F1îÄj‘ÌÛ€R0àºâñ±ß}ü‘&?ùØE26:×á`ŒÁ )Sh€#ŒÖ”‡a¬6×—”ç硇~¯d )cPÊ@)5 qJOw!‡ B@(…V cð] –Äàyž(¡^ß…# .Ü7‘¡ÞÌå÷>ÿöåÙ'''Fœ/>óÏgÅA³±&“$!”Q”(ÁìÔÇС}ÖR¾ Æ{tb|ìs?õÄ#S/œój½páúPJ¡}Ð@»µc(‰ãQ9Iª( %”;Ð*…6„PÀ(¸žo2™¬Éf2Üs„ Ê÷}c!ÂÉ€Zp“$‚V1„ðáù%pN°WßEÖè)pòÄ ùÒ3ŸÎä ÃQõÝ C„1BIM?“iû~‹¼{ùý¬ã8í$I>f©Ÿ³GgF†>ùЃ÷M>ôз·'(ŠF sM»b}mUoïî¦{f\ßÝ‹ööa«´“TRëÄ(j£¥1Œ0ιp¸ànÆws¥RÑì¯òÉÉqœrª½eæyŒc%ž—¥ ŒqÊwÀÊ%€P$qc4¸pŒt$‰çeˆ!\ȃ*©’ÒMâC)A>”T×Éï€j±X¸gòÔØ©ûÎÂ-{H+ha¯¾ƒÍººyk5Z^ÝÜ\^^Yn´–£(Z‰¢d#Žã=­u @hå§ìÊ߬ë:yÎiÅq¼JOéäÄÄèÔc]zäáû³##ƒŒPJ„ë„ÀèÃ@‰ç:PJp¼<(cz¯¾†­fªvˆ2¥Q¨C¥iâ8>€nU—0ËçOŽŒ²Ù ÙÞÙÆÂÂMuù½«{×çgWW6Þn¶ƒKZëy;VƦÖXÝetG³#B* +¥ÎJÌAðúúæÖôÂÂÒÛ»»çöËÏä‡ú)%œ»Dk)SÆ †p<Ã…HÓ4Iµ…p}î e„k´a„¢â.•z[ºµ¼ àºn-“ñªžcøæú æ—£7ß¼2·¼²úÍzãàE×4¬ŽO». :‚ÉžWÚïµ}ß¹¦ L)­qÎkù|¾7“q‡ ¹\„exÄ…KŒ–„QÊUœ2ʘޝӏ­ÌaNS2‰BD±§&ÜÄðV#ŒFjMŒ!”ßwh—žÎcÊÅBÞIMß½r-|ó»ï]Z\^ýoRÊ?¶$²Æ™ÿëÿĸ® Çœ%ãïþª´³< `@;g®ëf+åRµR)õ—Š¥j©X,÷ô ý^­¯Â+åìÇðЈâ‚Ë4La‚B©QJk-Sc`˜ŒêB(cM¤"&‰@e„P()•iH)£ãU·Kƒnš¦N'X]ßV++kóë[[_•R~À*€ô_ýó_ÖÏ>÷ææ—ñìs/áÜ™qÔªüò?û×d»2Ê £„>ÎY¥¿¿ÚóÀ}g³3SÎÈð0Éçs$ã»àŒ€s†L& ÆÚ¢±» ­¸pAeJ¦Bë ~®Æ „0º ¥RLJç§Ðšhs`Yª«uR`¾#+ !U-åH„lu}ã·ZÁ0 ù¿ð×Í7þèE¼ùÖe´Ûmllî`ckZS\¹:׉%ÄÆ…uë.︜¦éÕúÞþ͵õúÖN=i¶Ú,M#J‘GPâ:ZK‡M$Iˆ$G-(™‚×Ë"›ë—)Âñ2pÝÃuF’Ä‚6¢(BÇØßo`nv!ÚØÜ~­ÕÞP?ŽºËWSÒ³_o´Ã8q’$ž° þé/üâ/ý*½MÚÍt­:«ŽÃO– ù™±±‘‰éɉáÓ3Så©Sc¢¿ÖKrùCJ9»½[m{·^yçÊõ‘?ú“—O Öî9==9vîÌTåÔĨ_ëë%JI¸@ ÖI’Dq,÷?¬ðaõe€-"~ÝÖÖ¼»­Øš;ÔÐÃ0B~ÿ_l0îøíÁ‰¾àf³¼Ýœ»Y¾1kø…_™î¯UOŸ©U‡†F²¹ŒÃŒÖZ¦J2ÆÚJ)s7cÖ;åmõÿ¨¦oìµ”£eý¸#£×µÖ‹û­Kû­Þ¹ùÅ“ù¬?ÓWí®U+£q×6·vc´)àk^µ¹{;w øxÚ†kß—ÜkºlÙ«lzß³¯ê#÷~̇îj°´-CC;± À‘…ŽÊâ;>Œ¾#ø(=´;Œý]x—­ªMÿüh„uÊìj®dH~ÒXst9œµ¥ð¼5>µÕN…§nÁ‰-òãÎ v$÷FÖoŒm}=E€Ÿ§”La ¦EëŽe íbÅCš$]ÏÜ Ý¨ .(íë­”žž™?òäÈ×uf””ý©TYcŒÓµ˜ñ, ô £SÊÙÉÔ?ìB(=uòÄÐßþäƒÃ=ü@åÌ陑±Ñþéjoï=”Ò))ÓZšÊ¬1¦£Ý;õ@ÑUlùóâ €mܪwÇ颔ÊrÁ8¡”ú¾Oûè½g'Kœ‰âæöÎÄù¥G/¿?»{õúÜâúÚæ{ÍvpÕîÀص‚#°ù9´î•vÅ“?K¸`»ÅÅ´qK}Td\—?4<Øÿȉ‘¡¾J¥DçÈd2¦Ïš¡¦&ÇØ…ûÏæ.<ð‰¡É‰±™Þrñ¬#Äi­Ìh’¦E­µßÅŒLמ‚?KW!6˜Àý];Pûý÷îãÀãYÇqãÌB¥Tq!”ëg´ŸÉ$_*£Ö?ÈNÏLgŸ~êS™ÍÑÙ‹^½6[¿>7¿²¸¸<ß8h^KyÀ–]åµ-;;[ñ0£˾u+‰/X7Ø´àk{úN (z¾÷p­Zy`°ZΔŠy™ËÉfx¾P¥žšÈäJŽÑÊ!”rG8,—/ðZ­Ê''O:çÎLOOž¬œ®ôÏqÆÎJ%O¤RµÖn×2·Dù‘ýEÿ7ÌÆ Ƚö¼Û–ú‰u‰š%Ç1ÀŒqJhÆÏfcÜQ*A¶¶\’JŽkw~qØD2F4‰LbŒŽÔhµè>úÐùú^³zkeóìì¥'gçn®¬®oÝØ©ïÏ…axÓ–Ûö»6KuލkjîÂrŽÃ3ŽãÃ0ÒJ©š­âÁmjüäHÿasþô@µúsgNOäsy¶³[‡"I’$¾]—èCàœ{¤Ä8gÆhh¥aŒ>œõ4–‘Ô)1&µµ?Ƹ`”rF£ÆhbŒb ÔÈ417—V“ÿù߯¼òúê~«u5â•f³¹#¥ÜÔZoÚsÇØNF GèZ8Bw»½`º\*|jdxès.œœqW×ÖåþA3!„ÔÄ”;¦AÆ9!&Ã)5J¦P26qØ22ÜM}'¥r¸ãºi Â!”!MBB)JJJ)åJÅ`DjÕ%ʨ4&*UÈÔwhB™ç0Æ…LS–&„ãÃ@0 B%hJ!ôתô‹Ÿ:×W©Ü÷òkoVçç—fw÷7“$Z—Rw«Æîv;éªÿ >¥4çºnç9ýžç — ¹‘‘‘á‘‘¡Zíä‰!¯¿Vf=å^x^ó7o™¥å¥ƒV³yÃj‚£šÃa€K@Ïõ çB˜”šú¹²®#Úí€Ê49ÜûÀT&p}„0h­ Ò0æ°³ C†«ì ù3ù‹ï¼µ´zbnnamcK6ûaÆ-™ÊXÊ4ˆTFB(¡œ0*8¥Ž#X&—Íd{zJ~¹Òãõ”òn_¥"‡h6ëè˜hpáagoϼ}éÝxîÆâýýƒ÷¬‹º4@z'Œ¡ÆeœÆ)‘i¤ƒf’“5IRp‚0¥Íƒb p¸7 ÁzÊ ŒK(B¥!t¦€ ‡}{Bˆçr22X¥#C5öÀùÓHSâ8åí  AÐ&q’à W”PP& e¢AtìÆ=×ã®ëB4`²¹dó%0ÆÆ!‚ ‰õͼþæåøµ7Þž[^YÿŽÞ·ôoÙ#ú(EÑv&& ‚,§:CHj qR¾´ºÉž}î97¿œÜwnÊ?wfœÔªäò¤rRøžg.`™DÐúðzŒ î€2J¥`ÂM´’HâÈÕZ­8wÁ¸eFDaÓ$Q;àRJ™1„R‡p<#‘Æ1âDbymÛ|çå××^ýîÜâ­•ç•R¯X]qÐd“îtzœ*yžÃ´ åAùÃߺô~þO߸´sù½ë_ðòK­æ——Vž<îLæÑG."›õ°]o Ÿ/ ŸËA ÂÁ¨4‚¡Âõ!ÓJÆD8žÃW@+B‡ÒB¸`ôð¶(ã(–zØÎÆ‚I’P2Jiš¦ Ä·Ì’2ÁÎÎ6Þ»:o~ëeséÝ÷ßiìü>€ïXc;Æ·î& @¹Tîu²…>H úí^,¼úú¥¥Í­Ýßð‡âV;xuîÆ­'wv÷~vaéâcݳ÷Ì€óQ|¸ã< †ð}œ»hµH‚&r…Ê£,Góüliƒ%¤&¥Ü8ÐÆhádòJ)¢´†Ô‚g'Æ:®Ï-à¿ý^óÊV½qð{ž°bi¾ß`“Û ©ÀPðáÖwëX]]ÓÏë¥Ù0Šÿ €KÉ:€ºÒú7vvëP¯7¾°°°ô•Sc3§§' ÓSã@DÈødSÀq$ŒJ”1d_7Û„.%cŽëƒq8 ‡m0áÂè$I)mb©Â@¤©ÆæõEÌÍ/âÝ+×âw.ÏníÔ/x–rÝÓÙžwpDW|ô²¸à,G)û•£ƒ_*Ý¿½³÷F³Ùü-›Nvíêj@“"1Êæî>‹…¿R)÷üÔ`u¬{o@6ã%ŒÑÐÏd<£Sʃ—ÉAÉ”qH™@ÉQÐFªIÜ¥ÙØÜñ®ÏÎbaakëÛK[Û;—šíàU;!k„ÐÓYí]9ßÜu_€s:d ~Mký7Á+~À{²=»²ºÝ¤£±¥tPp~ÑqÄ3¾ŸùT¡?Q«VØð`åRÕZ?Š…|O@ˆC&”£´±µ¹‰ÝÝ:n-/cu}»õæA³Ù¾„á2M_ׯ\³ ¬‘qWŠKî¦êt;*~À/ÙÂ⿱mòVW¹):®Yz›G\*8||æNû¾7é^ãœå¸Âq]f”62•*‘2MÓô Ùl-ÙÖÖ5svÉÜì’Áꈰù¡ *GŸÚêðs¶HÑÀás?_µ³ã{%ÝíÃLú6ý‡¬ÕñŽ=º[âßÛnkºîSuͺú!îåØ¢è­¤¾†Ã-qýöâ+ióC^L¹S²juéü£ÇÑÿ뮢ȴ†Ø¹Ø€­”4m€cÆl«ù;!~"Úc¹#lèß®5ŠVÄÔ ÓL¨ª¢ |ßk:NÉóüqà4p@®“@M~Ÿ¸@ð/¡ük7 ]™ÓÙ¹(µnµm{£¦k—'±ÎB.G!Ÿ#féäóyÒÙš®x.õj·åQk œattŒÑ‰©±jµö®aè[\×ßêùþ¸ïÌ âSC€ˆÎ޶–ýCUUþ /ZÐÛŽôtÍ!·P€L¾!@„>BQA„A€çÔÑ ×iÐr=†GÆ8ÔœýrfhtgÓi}xEД˿P4(—øœŽ¶xwWÇW+Õڟ骾ôŠu—±lÑ| …ѨE<‘DU*Ó%JÓ6(z$F$–Ä2 ÑšpiÖ§ñƒôðÝ&ÕòcS¼ûÞ^{k£\©> <L  ~ž^\R@tÏéìêì(~«ZküáÊK¹âòårYtÃÄԠḜ:;Æþƒ‡8;ÄØø$©T݈ i*ˆí… kVõ±vÍjZÍ&Šªú>ªaqäøO>ó‚8râôóº¦ýO߆¥>ÔdJ\R@dÒ©ymÅÂw#Vdãm7]Çâ…sQ´Í™‡ÓlðÒ¯^fû[ÑÛÛKOw¹l–\¡ˆnè„A@µÖ`xxˆcGsòäIÚ î¹óf–-š‹nX |ÏE rjp”'~ø†FÆ^¨7¿j6[“r÷¨Ët¸$(€èšÓ>×ÐõGsÙìM_yànŠù¾ë+v04<Æ?|†rÅæúë®aýº5tuuSlë CœV‹ ñ\z£A­V¡fWcÇŽ79~â÷Þu+Ÿ»j–e¢†~à#T“÷ç‘ï?ÅtÅþÖd©ò€ ”¥&m¶ ˆE­x!Ÿýv<½ûîÛ?O!“ ô]1ƒ#ýÇùÎÃÿH¡Xà¾|?6\A[{‹–.gÅÊ5Ä“)ÆÇ§Â×ó©×ë”§+”Je‚0`nwš¦²õ•mtuuÐV,LçДÝ0èèè Zµ9pøXÖóƒíBˆ¦LOÖ ³J€ˆ¨¹WUÕ¿üÒ7ióçv§(¶µ344Ìß?ú$ çÏçK¿wù|T“D*Ο¿ ŒÅãj4†®—ɸÍdétºO$*!Liž85`Å1Ím:œ8qŠ% ç¡Îdß'A×14•Ýû%¦+Õ=À°ß:—³Z)ŠÒñÇëW/3ú–,"‘)ÑÁ0 ~ñÊ. mÜtãõ4[ÂnŠÅí=vwwOUÑTÅuݤïû-+µ Ó |ߌH¤eD¬¦±ìX,^³,+ñî»ï,ÓÍHÇððyìÄiÅ2ÍH¥²¨ªÎ¢Å‹éêh3N /v`H„:‹ø‚uùlúÊËW-Ãóšà7IÆ£=r˜Ãýǹ|õ*†F'™®6óæÍ?9·§gȲ¬FàÍF£1ÞjµÊªªúš¦…š¦º® ]×…eYJ6›õûúúŽ®\¹êçõ¦»dlÂ)U*„ZÏóBàÔ¦ˆÅãr è"€) PÎ5³eølow{¼M£k:ÙBÓ`xÒ&‹bÛ6cS¥ÞÞÞ÷r¹Ü¤¦ë¡¢(" à Ãsu½¸Bh)ŠÒÒu½‹ÅšétÚéééêìì|Y×ô©ˆ• ð|*¥Q<§¦é„~ 3Qe?q¼>Û(@Ì4¾Îö"Aàï f$J£^G„!#cãÍB!¿;N !|!DKá„aè†aèAà{žç¹®ëxž×ð<¯éû~]Q5 ÃŽÇãåd29aÛ5›IòÙ$žSC× |¯…M ¨:v­•èRû”ÙÔEQÓ4LÄPñœ.éq²™ùlŠ3ƒÃÄS™÷tÍ8ÛjµâA(aú®ëš€êyž"„PÂ0 ƒ p<Ïs\×m¸®[‚  L†QUNŸ:±qýêVG[Žx"N,ž ô[´œ:CCÃô;®kÂ÷ã|ÌúìE€P4UõUÝ$ßÑK*GÓ=jÓctu1t±±ñaÇqF[«Õj´Z­8w]×PE‚Àó}¿A= ÃZ• ª¾ïO;Ú¯>ÿܳ_M'c+7¬^ü~©a:¹öTMçÐñ]ŒObèzÃ÷SFý¯g³º 4–83DÝ.‰èÄ"šaÒžOò•ûnç?þåUûÞÛw¸»§û¸mÛ9˲¢¾ï'4M‹Š"BˆZ(DÕ÷¼ºçy•JÅvöîy§ë§?ùÉ—fmõ—ﻓb[ß©"<ƒH$‡ª¨?~œŸ½¸3bŠZ­>*Á‡3ÛäÙªT á-Ï[Ò·¨›ˆ¡'ÀoKfélËÓ¬Û‰×wìZ884T‰Çâ§£ÑhYÓ´ªbÚ÷ý’ïûžç:Ž3æ4v­ZÑOŸ:¾ìÇÏð.pB®És]¡>kEÐûyv”qËŠ¶?ûâk¤2Y’‰$Š!‘H ¨ž;I>¡sÓç®æºÏ^MÝqÕ‰ññXyr,æ>‰d–XÔ¢­£ SWÐ EQÝ:*†&ÐñÁ¯qìÌOÿì öŸ¢oÙ"N¡V¯ïŽ¥³_wƒ³Ù h@31sÙ±XŒíoí&²xé }ÜfMÓðÝ"ðH¦Ó$“)Ò‰…l’ŽöíEbD"N4E#$™L‹F›SĬޝ°õõ=<òäfªõ&Ë—ÎgàìƒÃïú~ðsÙ cr˜zIPLØBqu[1Ÿ)rìx{ýÇN¡© …*>¦CÑ,|ß'bèèšA C׉ÆbDLáÖ‰˜:ÉD‚BgñDšáÑ ¶¾¶“ï?½™»ö² w½]í8|‚Á±]žïýDqF¥øµfN…”Y& d­Hä fÄøÆÂùóÆ¢%“N1§­Àо…\¾z…lü©TŽD¦ˆ¢ª¾‡@ #Ã:åªÃ}{Øñæ›=1@Ëi2¯»ÞžN&J6Ÿt§¦í×\×}Q1,½>$ÕÿŸ C.Å@ÄbX@á3¾µ¢«–,YÀ•ÖS±«8p€R©LÌ2i/æ(‹Úç © Ÿf£AÓõ©TlÊ›éi•b[Ýy2Q…éJ…ƒÇ990|*Â-¾ïïBLIÐc2÷/8œís_N_ʪ¢è†6=·§“u«ú(d\¶l!…$ß}ìG´¢ºç¼?!:yú,( ºa‚±L“D"Ng[žË–/£PlÇÆF†xs÷ðÄéÁ3M§µØ)½]‘J?)_7.þR -Ó4—ºþ_/[¾ôºÏ_³žL:K*•Ä÷Z¼±ã]:Û‹4šMÒ©óæõ¢*`˜4MCçºxA€ÓòŸ˜âàác ŒÔÆ'&{žÿŽ<‘CO[*~Y^;4ŸíPÑÑÞ¶!‚¿_ºhÞú;¿pù¶’É –e²é{Óô(KÎeçZ®mš†kE"‘ˆi誦+Exžë¹®ë*ŠZÃp¢ÕjsœÖa×óÎÈAgsøª\ç¼ük)€˜7·ëÊ0-Y¾¬ïÞ/ÞJ:ÁŠFI§üâ—/q¨ÿ(kWö161E4jM6š­çÊÓviÆ PPUS]×ë@Íó<; ú,d\ ¾! hÈëu,6[¨@X(ä68­Ö£+ú–öÝûÅ[ÉŠÄi"ªÇ‘ÃGxnóVú–,B3"œnËÝâ8Î.™³ÓL(A@Ì8uf,÷£Ÿ-T ÌfÒWiªöðŠe‹–ß÷ÅÛÉåòºJ.“¢ÙrùÁ3?#ÒÙÙÆî½ßt¥ú*0.ûÜ~Ψ,ÏU—ÿlR4ãúcë|:•¸Z×ÔMkV.¿ìž»n%“ÍbE£ä2iLSç»<ÁðÐ×_{%#£“”Jåf³é<ïùþ°Tí1Þy¥µ˜áÝà¶é1çÃ\6s­®©›V]¶´ïÎ׋FPD@ÌPÐÂ&/<·…-[ÅÕW®'éÇ÷ÜWl»¶O Ø”Tðú¿$^Ëô‹%x™tê]×^»zù²»n¿…t*…a(¤©D”§ÏòãŸmeÙ’…¤â&œ b¨Þlý<C[æ}Eæó%1P‘J&®Ó4õ{ë/_¹äž/ÞŽeê¨xdÓEr¹í¨@‹Z×éšöÈgÖ_¾øKwn$j™¤29R‰(–®@àòìæ—ã3ëV¡QN9†ç¶Þžš¶_‚†_;Oø.‰©Ÿàs"ß‹E»öªu‹ï¸õ&"Ñ*C8D ] yùõmüâ¥7Xµ|1V$J©R¥bÛvÓqŸñ<¿$‹[zÿ£†þR`wÇ.Šl¡ÃT*yK(‡}ß_XÌgÁoáÖ&ñ…E&m—=»…Å çQ(¶* 'O àûÁ/íZý°Ì÷sÞ÷>†¢ÿ{à;ÀFào.E ¨±XìMUþÏm·ßÖ»båJ^úÕËìØõCÖ®\Â5W®¡;cbrŒxô)jõ+–. Y¯râôYJ¥Ò@µÞxQžÔV¤÷?®ðíîzk>îÔæB„ˆÊyËŠlÔTeÓ}÷Ü3ïÁ‡bãÍ·pÃ7+´ñÖ®}üêµ7)OÛ:z’]»ßcíê•ÄSYjµ*ÇN ž>65UÞ-·ºII@ëc¦âÿ3¾˜<úú¿GÅgštÉ|9ßóVÄÜhèڦçÁ‡¤P( 躎¦k”¦J¼±m;ûwÇ[oíä¶×“ÏæÐ ={ö2Y¶·OL}Ûuݲ¬úÆÏQ}DÛ,«ÁÀW•ŸTY‰­îròýP×´šªlºÿÞ»{þü/þœB±ˆªj(ò™ÄÀ÷Éò\{ígÉf³$“ ÏUappˆ‘ñÉéJÅ~Æuݪô~U6.Á'ÜÅ4àf`ÿÅÁ𪌎¿îTUõîx<ö¯}ík=ÿí¿ÿ5©Tš3gΆºa¢ª*†aàyßüæ7™Ÿà†näØÉœzÁÁaD(þ©V«“á>ý „o¦ÅäÀóÐ}1wxxøF†Ol¸bý‚¯ýë EÌˆÉøø#Ãá¡kBA`:Ï<ý [·¾ÄÍ7ßȺukQu“·÷ì§î8gìj}›x?Ô«Éûç4,#'¾…‹!‚çÛp‹¢(k¦§§i6,X°€ŽöìJ…;ßV–÷-UbÑ»÷ìáÁ‡þ k×®eÅŠÄc1jõ:EþÔ®ÖöË:\ Ÿû!¼¾ ü5ððŸk?“¯—syÀà÷»€«¤&ü‰Ìžk°>qà?V:•Ø®*ÊÚýj;wî"•NqùêÕ¼ùæ›aH>Ÿçñ ®çó…/l ÕrØ»gN³ñÎäTù¹0 Kò‡L~„¢G‘QzZ’õººÃÀ6YHQà19„]*õÁÞúeÊ}hÒ’ñ2ð¸bo.—‰Æbñ5•JEݼy3åé2ííí¼þÆìÚõ.¯¼ö÷ÞsÉdU#ýýìØ¾£T­×75šÎÀ¼ÿal ð-àÙ).¥r]z½(Ê-0¢}xH¦Y›<•תŠËä„u?`º®—}4•Hˆh4úGéTÊúÑSOÓÖÖFiªD¹\æË¿ÿ¹LŠ0ð(•J¼úÊ«8­Ö³¶]Ý'=1Éoqÿ°V“žÞ |EF„¬Îk—[è„;(5áqIŽ lýÿE›~ˆˆJà 9×j„#Óû‰Z½^«Øög3™L¹4ÍàÐðûguB†!a°mûJåÒ¡z½±YZ2’¦?†ðõË\xò÷Ÿ’êÿOÀý2j?±6fxIã7€†bÀóüõÕj­GA„š®)VÄäH?Éd’FÓaû¶m­z½±©Vo– §¤µ¸¸vïÿŸÀ|ù›ðI{óUùÜè)”@à³2ì^¯ØÕ>Ó4¼d&5§é´Ø¿ÿÕZѱ‰í-×Ý'?o󛇔ÅE&`!ðï€ï{g£çòÌ®þÐ#„xÀu½7Æ'Ë]Š¢lÛíp—Ü÷ËœÛ.C»,·Ÿðséy8;c¼ýëñÙE&àKòR¼/z%8³K² 1f„µ…ÈÙ“ÿÔ Kvh3½¯Îãr?*ÛâÊlδ^<¿…6¯kå½^à?~ÜÚüRÛ‡1¼¸€WwäuE ž.õàß¼)àùsÂ8Wþi êoAÒüm!àwö;ûýöÚÿ ­ÓíÌIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/cursor.png000644 001750 001750 00000010675 11617757645 022135 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ  31@¥ =IDATxÚí[Ùo]Ç}þfΜõîÜIÔ¾Xr$Ä‹¼´h‚ÔyÈC‹ô±ÏMû$AcyˆûØ<ôÁE‹hSÛMc9I/‘e[¶Ë’hk!E‰")‰¤HÞõlsÎ,}ÐÜâ‚°‹¢TÛÐ88Ä%Ï™o¾ßöÍ!ðÐÚC{hí¡=´ ˜ýuX„µÁç\€ú*@7øP5@|¥Ýpƒæ•Y°@Àè=€ø•€˜»š…»çó¯¥ ãçýEsÝpÀ.ÌÐ.c ‚˜àøµ@ÈtÌß¶xÀaBȳ¥R°×µÙ¼ÔªÎyÖ&!!hiBy®b-)e@jâ7?sT÷ÒæRæþ@ŒÜ¥»z|ÿO*åâßÚ¿cïØè Î2ž†aG&IªADi+M’Tò\DZ©Fʳ(M’Ôêh­[q6¥&!c¤Ǽ)¥ì0Æb!Dl\Œ´ÜŒŸ›«kê~3ë »ôfŒ³mÖ´Ÿ|ü x;c°™ ¿4P9OE 2©Âp}aRi¤Iªççç‰PÐsZËËKHâ4RR®%iÊ9Ïn¥œ·ÊÅâªãy«œóvE¡ëº-¥T‡s𹬍F=4H»® ¤ÔqœÄ«õ²\Áu ð %ø…*(µ`»ÒØ‚ïÙ¨ ŒÁñKxäà#plyÆÉêò(!$¨ !@-V½~}~¼FˆÓŸLâà¡G188´ÇQ¶²²¢’$‰y’„·VW³«3WV…R˜pÀ*€€@v¿Ð]ŸUZ{®g/ÙŽ:®_è#¾Àñ Ä@ÀˆBÆ?(ZƒÈÍÖ*l7³,ð$ˆ…r© )…Ú:6’)h~frª808h½øâ‹¨Tªƒ7oÞD£ÑPa§C¢(Ô“““ú•W_m\¸pA*¥#žqÍ% Åu Í‘”¨ ©Sß CCÃÚs–å€2RH‘Z6´Ò`ÔƒMs€Zðì>䙥 ó´T$Ic•e¶Ê%uÂ8wlÛ%šº°íÛ J! ”‚ÖJIíy-J²ÕꄆþÙF2ÈFª¸.\J}siiÅJ¢fžÆuËgJæPR‚§!(µ •Fà—@¨ÒÌÀ¨)%”’(ª°l'ãIÜN’¨’+Ë.p…„gˆÒƒCƒB@HB(@´ÒÐJ˲!Úq]œóÞ ºï½@7hJ)×]îD¢’ ’4ëË–ãØ¥–”j „Bk žFpÜc`ŽÆ䂃ª´&<(”˜ÕX¡õF*ÏÆ!”R0fAj…$NP(°m<Ë ”ÒJ)Â9·M àªêºA®”j+…˜0ßòƒ¢ÅlGh%ײœW™íüò(eÐZ‚'!(c`ÌÍ(â¸4µc3M™WhÔW¬f£‰µfŒN«Ž]ûczj A Ïêõ:! ”bzz ³³³¬Ñhíð‹nWh÷Ôê~ ÄY–w8Zƒ9”Úð¼R‘§a’gQ§Ø®O!rH) 5Áòrž:¥Ï_˜Òs¡”RN[^¸tÙ~ïƒÓ”óCƒý°lG)%%°ƒb™ÖªUR®”ŠŽç÷eY^‹;áŠÒzÚ,¾Ë„ÄÜãžv:»×Žp£!p”Ò~–eyô›·mA©Ü›1ØŽO@(:èÍ·ß þñŸ~É)%tû¶1:62 ¹®S(«4ЍT+è«Õ‚jµ¶eúò•G²<¿i‚\Û¸€X§lŠnp/ pŒ>ÐG}ö±#ûFGú !AÀyŒ[KóºÝ餗¯Ì{}òY}mµ~¥V+ ÔÊÖÐ@ä8^àºÑаmµZƒƒƒÖ–ñÑÚÕkמQRåBÊã _ªsn ,ðÛþæþ}»·?²o(²4O"DQL޼0uÕ»zmáD£Ù>³²Zß¾et¸T*ºÊó,ÇóK`Ì&¶ãƒ§1|ÏC¥оj1¨×;ÏH¥hšòUÓå}i€a@ÀÏsñÌ¡ƒv=väÇ¡R pžéN'NÏ}6åÏ\™¿‘ ñë0JØÊZsÏÞÝ;e¥R±ƒ @=Ï'¥J?s ¥„m;(—ŠjllŒ4›­g³R*Uà8‚4Ít«ÝN&?›ö¦¯Ì]ÑZŸUJÝà™pµÆèÈðP°mË8õü–Eá%PË‚È-+•R>66ì„ðçY9Œb¸¸™šá½¸BÙ5<2òô³O=b±Ë"Ð ZäREq¦/LÍ: 7nžÊsq@Gˆ,ÌrQáiºkûÖ!K(‘#(” äíbNæm·Ö’þ9>6ìd<;À9ßÚj‡eç6Zøl&¬žbhÏ@_í™ï>÷møµD²´´œ­®ÕÅäùKîüÂâI)åÙÛM”ëõfžñt˜ <ô(\‡!K#KUPJ 'ZKš$±,®=4P#žlIÒtW½Þìð‰Iƒúÿ Ú#E ¹®óT’$þÜÂ"Žýæðö;'qâäiœýô»<3‹v;ü€ ¦S‹ÜZ«·ªZëÑþþjqltŒ1h¸ž‘%p—0æh)´(:88@Ë¥b_'{WVë#æûR“"8ÄÄ€€Ñ0Œ¿“¤™ïx%m£XéÇѧþ„lÛ6Agffò(ŒÞ”J3t׿n,ÞƒVãc#ýNµZ¥·û×óà%bQ*(¥I‡ŒbàÐ;vÛèàÒò­ƒ„£ç_pÓ6åp´·-Q*Ãýè'}O>ù$ Å\Ç…ïdæò4Λ\©¯5Þl.›"¦«ó7 Á/¿÷Ñh_í±Ññ-`–­3dy Æ\PzŸYÖÈ(¹µ´Ü)—Jsìß]˜_¸ñ½,ÏKNø÷NMàNæ™1Ó^·¹WpT•J剣GŽ<þøã¹€RJLMOë“'O&sósïrž3õ»è‘Ø¥”jµÕ÷zŽSÝ·g®@ä”ÈaY‚bÅb¶ClÛfÍV[^¸8£/N]Åî={é‘#G&Z­æ~­qλ½Ãz¦™yr¾Þ,pø”Ò Ëø³>úèÖ'Ÿxq’ ã<Ë077‡ãÇÛ}ýoݸqã¬ñÑ“J¥Ö:é„Q'ËÄ>ß÷ {voµlPJA™ß/À¢ ­fÃúàÔÇΧgÙ®½èÏþs|ë[ß" £ÓÓ—w¤i˜5 wí€?5ìh¬Ö=f ÐZ(µ1%%(¥hµZx÷ýpêôyl™ØMžÿéß‘Z­FlÛÁ¡Cá8î€ëº[’$éðmû˜¹®š"*]Ÿ5îõl_DC!Äʵ¹9¢”‚ï ”ƒRŠ4Má8Žô|/¿Ý%ëîs‰Ù`À‚â÷o¼õîöñ±ÑoöWŠîØX?@Í&Ž¿÷¼ûá9ŒmÝ…çŸÿ)‚ @«Õ‚Ö@¹\Á_}ÿûddxø`¹\*|ôÑj7oÞ¼ ÏN×LðU›»òX®µNQJR ß÷A(A»Ó†‚^©¯Õ›f<Ý^bº=f&{!IÒWþý?ÿ{`th`ç·ÿì KIãïžÂû§Îcxd+^xþ§¨T*¹€çyȲJj ã¹ï~—TkÕíÍfëûkkk‹œó·| `ùNGö›Á€.ª‹I’´/_ž.ïܹ "Ïa1 FõµÕ¼Õj¯~N¾Î¿2jÎ4›íWÿù__þ¡çÙ}a§…÷O}ŠÑ-»ð³Ÿ½€Zµ‚\hhÜf›)rd¹ÀÐÐ àûžïØvsî›8•m¦&x'´}âÄ ö /dR Ùnwܾ¾¾pròÓr}mm)"ïÉÿ½–œžù|²tkå·ÿòo¯üõÐÐص?ùñQ­Vå·O‰8ç „À²³á¸f¦§ñÆoèK—.}–¤ñ$!tUkõŒ~x_ z„Òko¾ùÖSÆ¿ ¾àdÏôç€Ø€Õ8I?¸¾xk¸pä¹þàD£QG–e€lÛ†í8PJ¢R®âãÓãØ±cÍwÞyçÜÜÜü¯”RïP|ø­õãßkè‚è™û„)HNBfŒïípÖL ¹CÅÖ=p%=ßÇ9ϳþÑÑÑ¡‰‰ Ø6»}>(,Ë‚Rår³³WñÚk¿nþî7¿<{nò5­õïÍ®/š*Q™ïL×om‚ žWi˜0Ýãã5gL~Îpç÷‡ºîÔ[­F£´ZíÑ;¶ÇÆÆá{r‘ÃvT*eÌÏ]민¬^?ö›ÓŸœ={ Àq|W?ŒL íže›Í€®6Ç å¯¸Ü#fŽn|³Wç³LpíÆë••••‰#G;•JRJô÷÷áæÍE¼þÚ¯ÕK/½ôé…KS¯8ahÞU‹eOÉÎ?¯{Ü º;—ú††I(×ÖUg̺‚'é™ßìõë cI’ì8zô(¶oßz½ßýî·ê~ñ‹‹Wgç~àõžsÁÈŒÝe(¹“ˆºô6f&ÑìYDfvEÝÅw©u,Jéµ4Mw …C‡áí·ÞR/¾øâôåË3ÿà˜§ÓÓnëÏ™î] ×ùY—‚é] ½õE·xJZ­–X]YÙûÑ©ƒ—_~åòÅK—zß2àǸ‹÷7û-Ï.mź,!7¨Üø&ˆö™Àø€¿µm»’çùxÉ€Û­ý£õÝÞýDþØî}^ɼ“=)ò0€?°¤”²|à|ËÅw»øÍ(„î&>lôÙÀVû¼oÎJ7ö²qôŠÌƒ¶²4Þ4»½`Øìxٸ݆bëK¾x·ÿ1cÉÔ+æóe“f‰96ã÷´¾Ìf›9ö†Rs· ”I_™7ÔïvƒÈÐ%éבdƒéC{hw°ÿ_ 0£ú#IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-32x32.png000644 001750 001750 00000002443 11617757645 023172 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATX…í–oHgÇŸËåOÕ½-VÂjÛd fuyÑ.¬Î$8Û9ÓA…ýqóM˜’TtXh¶2ÿ ±ñ…/ºŠ¨!-£M³u´ ²f‚®²$J„³–4‰õ/öLr÷<·7HíF¡ø…wÏÝ}ŸßçžûÝcY¼Nq^kö=€=€7ÀãñðǾLžå¦O®^½úÎÜÜœÏçC–e1–eÁ–Ø#„8 Ã𠄆ap„!Ä „Øòò2ÇMÓ@¡P$«««_ ± €’RÅôôô»{oŽ92̲ì7ALgâÙÀ0 ‡¾Ò'ÉÎÎNâ8þËÅ‹Û3õl0 #¢i:ëUŠ‹‹Çgggï¼xÏçóñÆÆÆŽ———?=|øð?ápX¶¾¾ç€Á`¸700pÇív T*Ó××Wš6^¾|ù=ŸÏÇ€ÎÎN~úú•+WøÝÝݧ|>¶%σd2™¯×ë»Àf³ñÌfó1‹Å"`çþíÛ·'m6Ûï$Iš‚øknn¶Þ¼y³Þ`0ÌF"Y4ùýþ9CCCëeee ©TмqãÆ‡UUU ±Xì­Q*•ˆ¢( T*)„ÐFaaáJ*•Ê;}útimmíÓK—.}æt:Ç4Í@@[TT4˜““óQ(R”––þ$ †A܉‰‰/‚`årù·yyy-+++M±Xl B¨ ‡Ã˜T*eKJJ´6›íxMMMìÚµk§@"‘$âñ8—ÏçǢѨT§Ós»Ýn‡Ãá1›ÍïÆãñQ™LæjooÿœNgŽV«}¶eµú€›J¥8YYY¨¡¡a0©Óé88Žƒ¥¥%ɹsç>ù“¦éy¡PˆOOO ±ÞÞÞÇ“Ož<ɪ¨¨˜;þ¼üèÑ£èÑ£G÷¢Ñh]AAÁwóóóxvvöB:[AAµ]ÝàjµºÅï÷ :4;55u¢¨cÁ`°âĉw\.—• ˆgEqI’Ì·Ûí|»ÝþãÌÌ̉D‚ÇårÁÝ»we‰„Õëõs4M—FqSSÓ’$ßr¹\ «««Ðjµþöøñã·5ãEÌëõòôz}R €ýû÷Ó~¿Ÿòäɇf³Yi2™š¢Ñè†\.ŸŽD"]ÍÍÍ_›Íæêµµ5ãÁƒƒ$I¦®_¿Þý¼Êq«Õê£(JœH$>þ«««K¾ººúƒT*õšL¦Ÿ·ýuÒ®¾¾> ‰X­V˼Ð3ŽþþþÖ¶¶¶gF£ñ«L=›§²²ò™3g`,ãœ={6°-íK: Eíàà௙z6Ç[ÌÏÏ_ »nÅûBïă¥7¥‹åý`0è’H$ B€â „°çG€â@1š¦y4Ms†á@9,Ëbéy¼^/îv»y4M3;Øt:Ý>@ ÎÍÍ-,..þr||ü{µZýP¥RÕÔÕÕÅþw€­ºuë …|"‘ÈÙÒÒÒ’±q·¿]´¶¶–íÔóŸ­Ànõfî ÷öv¢‹[ãËEÛPýIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/fit.png000644 001750 001750 00000012263 11617757645 021375 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ  #ÞÃd 3IDATxÚå[y”TÕ™ÿÝ·V½êªêª^ª«zo–ÚFT@ƒBtTâMâšA4‰éÌd’3g–8ã$žœ‘ãÄ5 QQã2FQ‰" FP›¥ºº«»«—êªêêZÞþîüÁ%‡CPÚ"æžSçUŸÓõÞ½ßý¾ß÷û~ß}ÀÉ€€ |2&!œD8Ƙ@°þdíÂÉAEžçÌsÜù4Ž#äoÅ%Ìý'Íž5¥yúÔæ¹f9•¿ì‰ð'añ!¤@ãYÓNûÉ·~oâØ†Hy¬«§~(•ÝárÉ)˲¯«xBH„RZÝPW½è¶›¯š?}ú™\8Rƒ` ´aï¾O*=¼Óï÷èºN¿n „ ‚RTºÝ®+þñŽïßxÎŒ)†èòHJ‰Ÿ„«ªàõù›?øp5<<²«ÔïÓ´/Á_¦J„ÌùáÒ›–^õíAAà‹Ç»ÛF‰×OšŽç›·¾»=£éúnæ×ÅnBHÀ”Ë/ùæí‹n¸v¼Ï«À¡ÔÝ™ã8Âq<¥¶NB•eŠ®›>úä@€ìSÝ"ÇqÕ”Ò¦™gM½å†ï,øFó„I$›Í8†^tL½(Z6 i:±Ì"ܲ„ÒR_YQ5k¢û9ŽKPJíSÕ€0¥´¹®¶æ»ß_tÍ%-š¤d2…h,®Û‘%d*KÚ÷E!I"•DAW #ŽašU©ôpéP*³; ¦UUuNE”¨pqëi®=ûÌ)~Û¶Ñï17nÞ*lÚüž3gö ¾«3f/âÿŒþþ~”—…\Á2#ªh9üXŸßowttüIQ”‚išôT2@ €jg·µµÝpÁ…Õ¿ùæ›Ô2uóƒÝíÒëë7/ÛXÛxÎÌ©dx8kïvik׿ýp.7rN^ÕI¤v<~õ«»yÛ¶'lÙ²%](> ã„1½+/½ôÒu6l ™L†®_¿ŽÎ=ÿV©¿äg®úþW½³n¥öê +è•—Ípž,‰?½ü²Kíþþ~š¢ñxœ.]zk À¼S‰ S\]]ÝysæÌ™wæYg"NcíÚµÅxOâ{ÃÙüÓ|õ.¯¿Bv¹D"5K7Ìßß¹ëÇ÷ÜsQ(aš&t]÷±¢É{*UƒÞx<žÞºuËÚ1Móß~gkæõ××ÝZQáîÀÔ¨­(ó .·²¬#,#ürÝñøŠåË—kùBþn—ì2_{mÍMºX•gþJÀÍò÷¿?ûìs—¼øâKºßï¿/™L®eÏ%IˆD"5Çqd™rÔ€Zöû|>ŸìûȨð.€»/9  Ø @Ö0ŒEÉdrè°gò‘p¨Úí90Ô<õ”x-BH¥צëºàiu OF¨§J8,ØÞ`ñL9R*w+¢©9ئ[æ%Åí.+‹GÞ+ÎîTA°È±øCðUT”—†EF²Yè¦íX¶%”¼¡Ïð(¹ÿWÊû|–&ó<¼}ü1q) E¹··Ï%90ŠìrøæÉ‡…Å_… _Ä^†ÊƒŸs€rÅã—ú† “Z–É9œ›%¹ EÒcU<ó°Zö=Ç6a„e‰cEQ¸b±èp&Ë˯²ô$²ÑGá1<€òyó/曚 KlÛ®©âÎ>òîÝ»_…JØ3÷øE]]]0oð€~zÎq5@0Òét¥×ë½æºë¾÷]×}¯½¶fw"‘èc(½o”Ï8ŽTO˜0AˆDÂpÉ.Âó<²##hjlroÀFe»¨˜ À¿páÕ3fΜ5ãÆV­Zõ,€Ì+Ž›žÀqœà´iÓ¦-[¶lY&Óh4JÛÚÚüœ¥ªcíüŸ«Ã––I/uttØ™LšfÒiZ,èÀÀ½ë®ÿê;Œ à W.IÒ˯¼¼Šæò9ºaÃÚÖÖ¶À/Ìç8®‰ñ†/ì²ã8³Æm¸-TY±`Ñ¢E’eš(ŠÐtMd!EÌJŒÔœÝß?Ðzÿ}÷9žØº¦[”RÛ4-g简%6ˆˆ°>åžC~¿ÿ¾·ßÙzÓS§NEggg˹³ÎªŠw'Âñîž§!<¥4ÉB‚~®j°Ôïã4]W,˜?ïü9wæÔÙUU!ùãOö£uòdÜû¿÷+W®lsçiÛ¶%X"2)Cºat¨jñ‰Dß}]±‡z‰»:;ýä“ö-ËÚ `#Qƒl“Ž:ùb±ÍçóÃÙ‹Å-¾ôÂ3ôò§LŸÚ2>›©ìîíKP @;Ú}Žêb~¿ÏfG‚¾sõ¿ôâ çŒWdÞÈæMñýödÎyç®wÇã+F‰ºx“d5¨þ#&ij¸æÙÂçx€‹yÍ®»Z¬™3ϰ“É캚ȓç3Ånmi–B¥ˆuv;/¬Zÿ§_}ã1oBÒ”Òþ#yÉ_x€Ë%‹…B±.ðÿpé’Å?ºúÛ jëkªàõúÌb±È½³å]nÍÚ?K§3|ÆâE D‚¾ ÉvÓdžp4”.à9žŸ ÿ£©©ñÌTjètJÑİ¡‚ŵÂ2¯§§¯$Îtg2édY0pA Ôgz}¥|Kë2¹uR8Pê?ýƒ?vLÓ „ÌÆ_`Çâ8TÖ4}b}m¸mñ¢ë®ZpñE²Ä[ÐÔ²#yyͺ7­›·ß«æ{‡P@-!¤Bq»ËJÞ,ÉQ’˪«k¼MMîÆ¦FyÕª—¸Ý»÷ìVUMexa} É;}r«0wÎÜÊÛn¿}Áàà ÑÞÞn­_»Ú.²†m#—L %ú†}½†a%tgóÑ5ëÞzÄ¡Î"ÅS¢•–ú¥ŠòwãuWG*+‚?|è‘'k:ã½O1ò”À 8ؕՇjfM_÷¯7ßxíyç7Þ2Õu“tÆÛIû¾N{æŒ3nò{=·D"5\ XF8jÂSâµÜ2/Y¶%ôööYçæ/ºør±¡±Ýñî~]ÓßþÓ‡»ûF‘Ÿ©ËåÒ8žØ@)'¼K7 455 \îAˤIå’$4¨ÅU5ÓI$zœd*kÅb]Ú`2M‡RY'ˆŽm¨¦iXp,gî¹SŸ›,|ì÷¯ŽÙ¶cÏCÌ‹Zì˜;^ÊsÜùÓ§6Ͻ~áÅfÌš¯ß]ÍSQ”!”VGBä–®§ea·Ë­@–Ýd™jžئnÚ¦ ˆò`ªÀÉ.7ü>Ün7DQà$YvF+q›†îèšn.ÙY’¨(Hp)"ð”””(¤¼"üØqã ©9—M ¼p"u,*ðœâr{`hE(Þ fÏžM**Êf<ðè3õomù`¯mÛË$!¬B&)Šâ¯ … K" ­@ ÂqÔ6‹(õJ4àÏ@mÝë/•]n8Ž#x‰¦æä‘lŠG5(Ïs°m›èºBO{Ô¤‹p¼E)µeY†ã8°m‡X–‰b¡è¨º­;™,G3yQr—C׉®«ÐTSN%ãªeÙv(\ÃW{ƒ”:á¨$»In8…Á‹Å,(ý˜…°dmÛþéÆÍ;&Šú’¯½dúôi§«.Åkij³lGV]÷?ü¸ãqI…ÊŠ il¬·*ÊüB$Rù]"çV<IJ ÑŠbZÑ š®A”DÈ.Y%y4•'ÀºÎ™¦åäòy 蚊B±hvåS¶e™¢À –ªÛùB>'8DD&¢‰D“ͬÜHÜtýB>^('Hd8“Ʀ·¶àÑÇžÛôɾøØÂ²K™ÀÒQ‚¡µºmÇž;“™ï.¹…^qÑ…ó¼¢Èƒã%'“Éåe~qíú·_L¥³ëøÔJ’‰„CÕ‘ªPyEEy9ÏëxüRSG/K’PYiKŽMyMÓ\l†êQò²À˜}û÷7Ë.™{ôÑGúc1½#Ö¡öööäLCO醞Î䊪šb$§›¡ÄãþÖ•—]ðƒ†º0¥ŽF4µ@ [À×nÒ—¯Xù|Wwß=>á8¢;UÆJ!aJiÈív]rë-×]wù·.Œ„B!tÆ¢Ø jnyo—¸zÍÆŸ3aóPÊã™Kù¨–(ç8R=qâÄpÿ@kfxøßÛÞ ÀXáž#²ÐÌ<2àJ1îPd×Oãö^Yo?wæÝß½æ »¡¾ÆÁ•αfýÛC¿{ü©™Löa—KîÖ4Ýü,`ÈBlÓ´¢[ßÛÙ3œNUùK„PeE)!ÏÛ¶m&™Ç âöææÆ-==}#¬=Äôzìð!¥ØšL&W©ªÚK)}‡¥ÝQϘÐ<¾§¡±Á ‡õ ²²`x0™ü&(hgóÙɸñÙ£¤¶®nÑy³gÿ:®$åeA¢«9šèâŸ}~Õ¾G÷ûÿÑ4ýa¿ß×_(­ÑPaû ²µö}±ý}iw°¬¼Æ¡DÜù§½Ü~ôN’¤‹ÚÛ£úwÆÐ46áûäÙÕdÿ3 À·ÆŒi\:kæ9‹ª«#·†Ã‘¥uuµ·EÂÕKÚÛÛg†Ñ`˜§Ôg)²,•––^wýõ×/»ë®ÿººûÐÓÓMâݽæ›¶oyõú_x¶ÔïÉfGœÏS Ù”b€N1·nÛ•îíK¦êj#—,ºyIÙ´iÓÑØØ¤Â?˜Hôf˜Ú{4bc¦ëùÙßj(*)++ó J)DI„eÚp»Ý4ŸÏ¢¼ýÇXt]¿rñÍ‹ï¾ý¶Û%Q°dÉ\{ÍBãÀþöÕûtÞÏÀNÎŽ|1‰›•–óü²­­mφ h.Ÿ£¯¼¼ŠJ’ô2‹ùc•‡Ɣ;ïü…500@‹…ͤÓ4“IÓh4J›šcÎfxr¬r¸ÀÏÛÚÚ£Ñ(ÇãtÙ²e™iÓ¦-p+á‹ ¢:ŽÓÍ\|èž{î‰F£Ñ…sæÌ™·uë–µ†aüÀÄ£¨¿GÓñ Ûíp …/ðóÌ3f³ÃOȲ<²rå“¿ÉårσÁÁt:mOEÈd©²@]µjÕð®]»ÚãñxšÉbåŒ^£¸×pG¬ÃîŒÅDÙåǦ‰ûöQJÑÇî1%§€™H$º–/_ñkïØ®(J.NZ¤ý<š  Ã&—Çãï²¼=žÉa£í4çûûú_ýƒËãñ@D˜–h4&cÇVÉaÚ£›ìýìŠâ_öŽ»*œgž@›wÏÿ,ð2 ]/rTóW–UBñ(ЊìþpÄa`y¬î=¢_ÿ"­²¿¶1B(O‰Ó£|T5u¤º:Œ ÍãÐ<¦-“&Á4m‹-¦x”>‚ÿS<Ìù¢}ÂÙœv4Á4;œOñIäáóû!Š<“*«Ñ—ÖËœ  ìDÍ÷D€ca¡3åæ6ß‘eùÏiIÓõ!U·)ÀÃåöB-ÐÛןcDJ€ŠŠŠù¢(>Éz#ÆŒFåý*4G Ûu±¼¼¼zܸq·)ŠBvíÚUªëú Câ…Bžˆ. ƒƒ©$ÝãQô±cÇ/liiy´3ÖQbÙvå¶mÛÖ"ï> p¨3¼xÆŒ³Ož|ºGÕT(ŠrïŽ;<‰Dâ!]˜†ÇqHôÀ²ìf8¾ròäÓ~×ÐÐ$_{ÍÕxåÕW§îÙ³Ç*‹O•ö8e;å …BžÅ‹CD<ðàB*5t÷PrÐe˜V:¢º®M-`ph˜H”xÜ—•Kÿ©ººš»ñÆPªD´#ŸÏ—*‹9çÃ's^!„ ‹¢GÁwÜPe%?¶þNYg÷õõBS‹Èe“ˆÅº ¸]ãZ&ûg¢póæÍC0ÄömÛ±zõêOúûû×08îã„“#„ îÝ»—TTTÌ<󬳄åË—ÃÔ‡Á Y–'r‚@Æ6T‘²²2¬{ãÂñ\ãÄæ1dúÔ Ø°áMh†5kÖ =ÿüóOØ c”Ló«aEQ MÓ¢}}}¡µ¯¯iõzxÒ:q¦ŸÑŠB¡@úSdJk3ÊËËñÆ[.BΙqÆ4Ö£*T‰å+Ó_ZõÊkŒjïfªÏ©ã¦iÒ@ Pèêêê°-}Ò¸1µµcªH}}ÆmB}}‘\AKK j"Uh¨«EÀ¯ ë±W¯Ùôf>ŸÿãøÇ;öO¸@UU‡ã¸t&“í–]ʌ֖沪P<ŠŒêêø|%à9 Å-ÓÊÊJR®ÁžÝâáÏ}°?[NÙ 'ðÄø ?-ÎNz÷tuu§(uÎmmmõAx¼>ˆÙ]BÅC“Cxàá•=›·îxÀ6&­Ðã±_Öû6Çq±ö½( gNžNÊËÓŽC)¿Céã Tc5É0þÆF vhExñXféžU ‡/ž¶y÷é­˜¤ò?~Q¹¿üÌ?øþýÿÇÊÅÆ÷Fœ[ö–$¯Ò5)>¥ËÒ¼J×ÄxdïpŠ>ccfÿÅ€ügøÏôïÿ?&†ÿ Œ Œÿÿ30Bi ÿÿbüû÷/3ÓßY›¦TÏmí}óæ /Û{/aFYEN†Œ ÿ™þýÿÇðçßo†ÿÿ00002°0±2p²ð|ãcz&Ì%u_œGî¦Âu ^…›¢\R÷8Åž±³püÀnõÆÿÿ1Ã9$zÿÿbüÿÿ?äµ³sò»ó&sò ÿcgcûï,Ä !ÃÆøíë?FFˆ9Œp ™þ320üg```øÿÿ?Ó¿ÿÿüÿñп? ÿþ3°0²2°³pÿåg~!Ì%y_ŒGâu …ë¢<2w…9%žp°r}Åç¡ÿpKÿ1bñÿÿl’½ Â0F¿/Ò!ƒÆAÅ]p쨻Ïâkºvp(¨ƒàÖ±ˆ $÷:ˆ[^à6·Ëv:ž…ê⇲«KS¦x¿fgL þ ©Äd¢D$‰H¡*0,0.¬¸‘ïü$¬ïí?÷ÿÿ"Ùáÿÿ10pp23|ûú‡áôÉÇ R\ê ^&> ƪ† ¢" ŒŒ _~}`xöéõ×'®¾:Áðõ÷'nV>œŽgdd`€•JLŒL ÿÿÿgøOÀÿÿ"ÉáÿÿC}çÆ†£ûÞ2T„T0…g0°³³2ü‡TépµZb ®*Ñ Ï??`Xsu"Ãé';¸Øø0‹M†_?ÿ1°°°002ýeøöû   +;^Çÿÿ":;þÿÇÀÀÎÁÄpãòW†k_0Ì.œÎP—ËÀÂÊÄð÷ß_†ÿÿÿÁ+›?3üþ)Ò$yår-úBtò¾ýúÌÀ-þÿg``ecdxõìÃ’Y<ÄKº¼62ÔØ/f0”tdøñç\-6ÿÿŒÔ!Â@@Ñ?3»u S‚D5X$¦ áxnĸ i I1]¶ƒB’p‚ÿÔÿ þ<î™ËùÊid»nèSBE15DÓ€I X¤ îdÏ4‹›ùŽ®¢b¸;ªÂ­}½¤®VŒâ”j¼dRÎx øýäÿÿ":Ä™î~Π©¬ËP•ËÀÀÀÀÀÊÂÂÀÈÈÈðÿ?$™Üx{’¡fC:ƒOeÃÚC[ !ƹí<EAm†Ÿ¾10313üÿÇÈðôñm%UQi¨cþQÿÿ„Ô+Â@FáóߦLë@ P, IuÉX Š-`p$xb ¶w°ÂŽørþ†§ âéM<Þ™M*B^д ’ðäHâpݳØL‰¶åÖÝ1ž—,×+LÂÝñÔ’gQ¯¢ö™x=ÄåüdØ|í4Ãd˜ ýàòÿÿ"âÿ!eõ+„Äü­=˜¡-0Xdn¾1‹áßÿ¿ ì  ¦æ’ rš" U3Ú¾ÿ‚„.#´6”t`áWf`býÅðòÅg†ß/ß3Xé˜ ,c``øõ÷;Ã×ߟ¾ÿùÊðë/öV1ÿÿ"èp&f†ŸßîßûÈ`©cÄ %, åÿ ÿ™>üxÍðàýU.†?ÿ~3üþó‡ASGááãû .…„æÿ ÿýe`gádàýdİbþC†dÓF†Í3v0¸˜8@RÈ)j3˜É¸3hˆ˜0Hò(`uÿÿÂ[þÿÏÀÀÂÂÈðþÝ_†ïï0XéšBñï3¤¼edddxùå!×_ØY¸ Éâïa16æ §®cð4s…çMQ3†wúTÅ´4åÕþþû u8$-e½,d<™ž¾Ïа/ÃmÿÿÂâÿ˜˜Þ¿ýÍÀð™A_E‹ÞƒDí›oÏþüûÍÀÈÀÈÀÈI«œÜL Ì\, 7߃ëad‚èÓSÑdàâãgøó÷n‹ T@ÿÿ"˜T>¼ÿÅÀÄÎÉ  !ƒ†ÌèO?ÞBš¡Pþ¿ ¬¬ Üܬ Ïß¼„XÄÈ×'%,Á ©&Åpñþ%†§¯ŸÃCþüýËðûÏ?»Ðÿÿ"\sþg`øüé7/7ƒ(¿0Ô3ÐNTɷߟQ<ÂÀÉ, ï?‚ëù INvN†ˆ(-†ÔÎdi†ÃS72üÿÿŸáÃ?fFf†í72캽‚A„[’©ï€ÿÿ|•M € DŸùCˆP÷¿['ˆ6-41ýZ¸Šöó†˜pÕwžb!ø…àç,ß‘ñ,DzSÎiâ•(µ`µ†0)…·+ÖŒzôÔNö¼‘ä ¶ŠÓóËóÿÿ„—Á €0 C_·®›ÅÿÿW­ždï!yäLjd³AW[j"c:" Z8âäºc‚ó¶“™|{zMŠTš ¬:]}™ùÿÿ"ªÿû÷? 33²ùpiõ¡»’±ÿþû u *`ebƒ&liÒ:üÿÿÎZÿÿ"²­)öqöç°—ŒP)l²LŒÄ !àÿÿ"ÊáLLŒ ÿýcø‡¥IÊÀÀ€½Z†:˜‘{¹@iÏÿÿ"ª8da…¤Õß~Ã… XY±¶ÿýýÏÀÌÄÄÀ„e€æ÷¿ŸÐ¢Ž¼‘8ÿÿ"⌠ìì, ß~|gøñ {»•™Ãþÿ þþc`eee`aFv8$üüù-"Éÿÿ"Xs2220psCú–¿~‚ ÿ‡;Ž“•›2¨‰pÚÿ ¿ýeàd瀅P X>ùúë#$‰‘érÿÿ"*óò±2|ÿñáåû×ÿG8‡M€)ô!ÿùó//Dª‰‘‘áÏ¿ß Ÿ~¾c`fd!Ø·ÄÿÿÂïp¨øÙþüd¸÷ì!Ôᨖ pˆ¢t³þüT\b‚B žÌŸ~¾ƒ8œ‰…Ü ÿÿ"âÿýgàda``a`¸xç*š¿ a.Â%ÅÀÆÂ )) í÷Ÿ?þ3üüö‡A^BîYXè¾üòˆáë¯ ÌŒÌd§qÿÿÂëpFF†¿þ3ðð11ð s2œ¼zŽ^A.Ê-à À.ÂðÚOdbf`øüáïÿ ºÊšPÓ-¾{ï.3üþû šÆ‘ŽHNLŒL ¬,, ÌÌØË{ÿÿ"\åÿc``eg`PPâg8{ã2ãW¡]6Hûúßÿ œ¬< JB: ¿þýd`d`b`bbdxúè;+'/ƒ®Ä"¤nصW'X É¥<‡ú‡Máëï /ß½ax÷ñ#Ö"ÿÿ"ª8ü÷÷?ƒš/Ãço6ÛÉÀÀÀ€QÛ+†0üûû—™íÃÏoL §Ž>`uòfP“Qaø÷ï##$$Ÿ|ºÃpûíEV.V6&†Ïß¾000@jfXmj%ïÅ`-’À ü'€!Uwƒ(4$†<ÿÿ"ªúýë?ƒ„ ƒ„Ãôõ‹~ýùÅÀÂÌÌðŸá?|äI[Ì‚!L/ŸáÓ§ï [Ö=d°Õsa˜˜× 5ƒ‘áÄ£ûï­bøúë 3ƒ˜'ÃÃOž¿{ pHó² 3¹¶0´%´18é:3À‡çšÿÿ"®­ÂÀÀðŸñƒ­“ÃÕ[¦¬›ÍÀÀÀÀðûϸÃþÿÿÏà§‘ÁPg·†aMùF†½×0ˆð‹@ÆVþ203²0Ü{w™áЃõ Ül| ¿~ýfP×ágøøñÃÊ=› öüƒå´!8,9ÿÿ"jŽ‘‘á÷Ïÿ 2, Öî2 •SÛL5lu-~ÿùÍÀÄÄÄÀÌÄÄðÿÿ?U)UU)H)I¿ÿ˜Y>ý|Ç0çl-Ãß¿ØY8~ÿþÇ $ÆÌà(Ëбª›A\X”!ÄÞŸ™‘áÿÿ Ÿ}`xøá:é';Þ|{ÆÀÊ̆ÒRÿÿbäñûÏÈÈÀðëçYEv·@Üûÿÿ30pp03œ:ò–áæù¿ Kkf3xY:BÊuhþ÷ÿÃÿÿ’6žøäãm†é§Êž~ºËÀÉÊüüÿŸ‰áË—_ /_~eP“QfcøñçÃûï/>þxÏüèÿÿ"Éá0Ë89YÞÿÌpñôGoýP†dÏx%MVhoæào¿?3¬½:™áðƒ þý‚Œ ØÂ†¬YX˜~üúÁðûÏÈŒ+´äaÄ:Ê ÿÿ"y‚‘‘áû·? 2rÜ ~áÒ w71%X1´.îc````øûaÉŸ¿Þ_ËÀÀÀÀÀÅʋՌLQŸ?ÿ203°1p°r3°³p203B' °Mÿÿÿ"kò„‘‰áׯ ?¾ýePSg”àeØzl33<Éð± 3¸©Æ0|øñŠáãÏ·Ð4=*Pz=xÛ0ÿþÿÿ"kFnÑ?†ÿŒÔ5νÊpéÞ=%È€´v ÔÊfáSexñéñ'›>üx…³ýN„­ÿÿýÿÃÈÏ.ú ÿÿ¢lºŠ‘á÷ïÿ 꺼 þc˜±q!ß¿à 1FV+9† ,^6†¿ÿþ0àÌ@#ã¿ß2¨ íÿÿ¢Èጌ ÿgà`dpt—e˜¹v1Ãö{ØXÙàÿÏðŸˆù¢Àÿÿ ÿ™˜™Ø~;(Ïÿÿ¢x‚‘‰áç Ú†< ö> i“2flšÏðáóg†ÿÿm”o¿?3üùÿçÈÓÿ322ýcbdþÃÂÄúûý÷WŒ ¡SÔEŽÿÿ"¹8Ä`eü·ï¿ž<ýÀ ) Å ()ÇÀÎÆÎðý÷g†?ÞAG¼0Ó6dbº‚ºØà?Ã?æÿ þþûýï÷ß_L¶òA+RM[bX˜Xþÿÿ";sbXÎÈÀðãû_ff51†_¿¿1Üÿx >µ fùY ÁoãþgøÇü÷ß_Æ¿ÿ~3þý÷‡áï¿¿ Œ ~,+ßqN±Ç¢\2·ÍdÜ—šËz¬‚ ´ÿgÿÿb¬zøO• pHóú?ÃÏþ32²üçdeƒ/×ø÷ÿ/óßÿûÍøç߆ÿ k^Ø ü*À!ÿX”[æ¶$¯ÂuI^Å«’¼ 7E¸¤ðq½fbdþÇÀÀÀðÿÿ?&h¬ÿÿbùóçÛ?†ßL$%?ˆSÿ322 …àæÿÿ0þþû‹ñïŸßðdafgàfåû*Æ!ÿX”[úÄJW%xnŠrKÝGv :€,ÈùÏÀÄÈ Ïåÿÿb~òôísYvfî¿ÿÿ30cw<ã¤Å.(i‚3Yaä}"Ê-s[‚Wắâ5 …›"ÜÒ÷ù9„^áràÿÿÿ˜ÿÃcº‘ñ?–![ÿÿbÙÓ¿Á.¤.nÓÅ+—tY˜¥þBS™þ31"Výýÿ‡ñÏ_È †¿ÿ¡!ÈÄÎÀÍÆ÷]”C‚<Š×$y¯IðÊßå–¹ÏÏ.ôЉ ·ÿAÌ@²„‘é/±‘ÿÿbüÿÿ?Ãëo„½J¢7?þvÙ28Fîß×oß™þ3@2Y™Ø¸Xy? pˆ=á–¾#Á£pC’Wáš8üMQn©üìÂxˆ-‰t^ÿÿbüó÷33óßWïÞófÏNÞ.¡ýVO–Oý¬¯Âui>•KR¼Š×ĸeïpоdfbÆÞâùÿùÃ?hÖi©Ùx‚ÿÿ<¦䨞IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-16x16.png000644 001750 001750 00000001051 11617757645 023170 0ustar00simonesimone000000 000000 ‰PNG  IHDRóÿasBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<¦IDAT8Í’1‹Q…:ŠÃ¬#‘5ФY˜f‹ ØXX¤¤BþDS+m,m#l¸’€e` qË…1âȲ“\ß{7UšdÃ,’·:œïÂá0"‚C¤”þ/*@§Ó9 …B$¥dD¤H)™”RBqÎu×u:Ž) f³ùö7">n4Ù?}éõz¯ Ãxð3Üï÷5˲äv»V«Õ>{žgE£ÑëD"ñÎ4͘”òJ×õ‹étúѲ¬O¾ïkŒ1}EQŽñSÙlöR],V½^?‡ãd2ùl6›=Íçó×ãñ8¾Ùl‚»Ý.‡¯|ßOÏçóÛ¶ €\.G÷J¥Ò«årùr½^kÅbñ\Ó´ÎùWιašæ·Á`ðd4½ ç‘H$äºîó`0x–Éd$T«ÕïårÙ#"¸íºÝî Û¶?Üæ1"‚v»=‰ÇãK!„Ê9W…*"Æñh¿ßë«Õê‘ã8÷'“Éͯ³»¦\©T”t:ý%•J½oµZ½¿Ü¥?åƒ?D¯á.7Uô©IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/grid.png000644 001750 001750 00000013730 11617757645 021540 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞŸIDATxœí›iŒ]çyßïÙî¹û½sg!‡³r¸ŽH™Ôj‹¢SjKŽS§NÇñ(hZIJ´µ¿ðÇ~©öKQp%6d­Õ€."©Vd‹±DÊ4‰‹¸Ì g†³Ý;s÷å¬o?¼ç)…‡’»NààR£{ÎyŸÿûlÿçy/|0€þïý­Âÿ÷ÒUäv”é~Wþê—ó/×Ñ¢ëýD ü–ì>\SXaô©&7cÐò½¿1¾WI‰RNÛ€¾èÿí>,Èwм÷×&ÆMþîW€ÝÀ—0 üXÝà³5”UÝHnö÷ty¿TæçQñŸPQAÖê¼;vwVY tnð¾ àßÙH.ß›Ëåøüç?¿º}ûö{ëõúµZí °5º¿†”òIà^`ލèV•_Éêr+,à/:ôɧžzª÷ᇶ}ôÑÄŽ;F;ÎÝ«««ÿÂ÷ýCš¦J);(0þ%°xð¸fî=Àï'¹د]nÀétú?|ùË_.ìÙ³GÔj5lÛfÇŽ<þøãÖÁƒó===ÛÂ0|¨Ñhr]÷1àwÿr‡O¡\£ü)Ê:^þ(º]¹_Ú»wïç¾ô¥/‘Íf)—ËSõz]·,+644Äèè¨Èçóìß¿ŸÑÑQóøñã#¾ï€6p eÿø"j÷ œ‰þ¾Q1ø‹.›W‚y˲~÷®»î²,Êåò‚ã8?èëëÓ†‡‡©×ë\¾|™N§ÃÈȃƒƒ1)å*S _AÊÿìÍçóÃ…BáYà¯gû€ô-Ö—¶ðÐMƒ&ªÂË¢üs¸oÓ¦Mûzè!z{{¹xñâù………ÙÁÁA[J‰¦iÄb1vîÜI¥RáèÑ£–ã8³ÀQà**®ý¹\Îøú׿.2™ÌÖŸþô§[ÏŸ?ÿ™ùùùåZ­ö†çy/¯—ywlH÷Q)ß@¢¢õ0ˆ b»½;wî´wíÚÅÜÜNçÁ={öŒ8Žã•J%Ã4MÊå2W®\áĉ¾¦i§Ã0¬£¢üªføóÉÉÉM sß}÷ñÎ;ïˆsçÎm:sæÌï_ºtéS333W=Ï{Ëó¼—‚ x%ð‹€ƒ*¼ÞU8 !€¦i„aˆ”²[Å~ ºâÇ·€ |áòåËíÇ“““ÚÀÀ€¥iÚ¶0 1M“N§C«ÕÂ4MæççY^^ž.¢vq •6kšöØ<ÀÞ½{ét:èºÎŽ;äøø¸xôÑGY]]µÎŸ??~þüùñS§N=qþüù·Ç©v*•úãžžž§–——?çºn]J©[–‹Åbº®ëº¦išã8~³Ùlo/¡²Ï†Á¸Q%èeào¦¦¦ªßüæ7ìܹsôСCÆÃ?Ìää$AL&I¥R8ŽÃ™3gpçT†U ‰²O×õ{ …ÂÞ‰‰ ‚ À÷}Êår˜Éd‚‘‘³Ýn#„à‘GáÀ\¾|Y?räÈžï|ç;:0500ð±mÛ¶=ûàƒÞÇ˲ÌV«¥9ŽC:&‹áû>/¼ðKKKF›8Ëm¤ÙGž¿jA;{ö쎳gÏîûÞ÷¾·ûÀ}÷Üs“““Üwß}œ8q‚#GŽT\×=†ª+@U×u‘H$þ`rrÒìïï§R©`Y€ˆÅbF­VÃu],ËZ·ŒƒrôèQ]×õcAœlµZŸ\YYÙûÌ3Ï022b !DäŽxžGOO©TŠ .°´´ôwÀ ±!Âv#Ò¨@vE„Ê'Q.—‡>|Çüã;7oÞ¼åþûï7—––ô+W®œPém ¨Y–5fšæ¡}ûö‘ÍfI$žã8F¡PžçQ©T‚€0 Éçó„aH©TâäÉ“¤Óé©J¥ò3Çqzêõz8??Ðò<¯œÏ燉–eÉR©$*• †a iš†a&Ú@íÃà¿@™‘‡"ByTj«—¥”GÆ~ô£Ý <„Ê À4Ê}h·ÛŸÍf³Ã###ÌḬ̀¶¶fìØ±CT*:Éd)%¦i²ººJoo/gÏžejjªÔétÞ¼V«µ–Íf;===©{ï½×_YY)µZ­áÕÕUb±˜0 )%RJÂ0”‘â7#x7ཞ ×Ê×6ŠÐ¬¢m - R¥‹²’«ÀÝ(ÿû¾P©TÄk¯½Æ¾}ûÃP,//“Ïç1 Ó4Ñul6˦M›H&“<ÿüó‹ÅS(kª !„ã8~µZennÎBÓ4ÃnÈår¸®K³Ùìö3ºëÞp¿¡›»Å=äz*+#…¶£rr U ä€¡ ŸcÑ÷}TþÞ8Žãü¯Ã‡¼öÚkcccc¹»ï¾ÛØ·o£££lÙ²]× ‚€ÞÞ^êõ:GŽ8²¼j´«n³Ù¤ÑhXÅb±–L&=˲bAà8ŽL¥R"‘HÜ–Òï «$\ó›0Œ2ýJ¤Ð>ào¸–›¨´yåíè3< ¨,#ÀŸŸÐu}{§Pr8‹*x®Ï»"ÿå6Dß=†áÏ‹Åâ`±XÜyäÈ‘½ccc4?ó™Ïðâ‹/ÒjµNG€7j±N§Ó‘R’ËåH&“Ã+++´Z-’ɤÐu0 Ñ4ÍGm^Àm6[Þ/`”¿ÜX,ö‡O<ñD~xxøNž<ùP¹\6–——+¥Ré|ç ø ëú)×u)åWPõþB@eIÝX1œ ÃðÕ©©©mÓÓÓû~øÃŽ»®Û²´;PM ȵÛíÆë¯¿Ž®ë$ ˜žžÆ¶mr¹aú³³³-TêÞ„²N‹ 6]6b.¸uëÖÿþÝï~7·yóf‰D°ººª¿ùæ›\¼x‘K—.1==ÍÂÂÂêÂÂBÝ÷}ø#”•t%<}ÖQERJ# C˜þ5*ö”€W€ÿmÂ_hšöG–*"!„ô}_„a(¤”A†)Ôî¿ ü «.G ¾¯l$eÜ‘ÏçRJ<Ï£T*éApçw²ÿ~„Ôëufgg ßþö· ?ùÉOÚÀ¾ü=Яëú¿²ÑhdŠÅâ¢išZ,kš¦Yït:Ë®ë:®ë^^G¹^+RÈ~†áÅN§Óƒ ŽmÞír&Ð7ƒ ¢3lÐn@˜Üµk—Õh4Èf³‹E„lß¾€ÅÅE?ŸÏëCCC⥗^8)ñÙh#ÃÃÃ_ùÖ·¾•µm;(—Ë¢Ùl¾þúëÌÎÎÒh4¨T*A»Ý®ÔjµÕjuÞó¼w¢{ÿت5‘’®•Rz¨€ì¡,KDÀõ¡¬¬ÂµžäM¹Á­è7 cüî»ïf``)%CCC4›MÖÖÖp]—T*%¤”rjjJœ9sÃ0.ù¾ÿ*ª&¸<166–ž˜˜0¥”æÖ­[Çahhˆv»M*•Ð/^¼X¨Õj…+W®Œ?÷ÜsŸ¬×ë bÁxÿ½H§R)Ãu]VWWea½^=Ï §§§ÍZ­¶ˆJÍvÔÛ@ €ñL&3ÔßßO.—£Ñh¬×àÍfÛ¶q]WÏçó,--±°°P ‚`e¾k¨Þ¼ys¬K b±™LÛ¶©×ëáÒÒR 0³Ùl|Û¶mÚÇ?þqqøðáf£Ñø?RÊY`brrÒûÆ7¾¡OLL „`uuUÔj5}jjJ¯×ë<ÿüó;vì\­Vû+)åYT°ÝP6¸Õ€b|`` “N§9sæ š¦‘N§Ñ4 ˲¨×ë$ VVV8~ü8µZm…[ÑúˆÅbäóy‚ `ee˲ÃPÓuÝ«V«s¶m·}ßçÔ©S¸®ëÆãñY5ŸïëëBqáÂÚí6Û¶mcllŒ¡¡!\×EA&“É躞CbæF”¿°khh(ô<ÏóH§ÓT«U|ß_WÞ0 …³³³T*•+RÊÊ÷Z(¿íÉf³A__sss,..ÒétX^^ÆóÄP…DXmÛ›˜˜ˆe2Â0äÒ¥KÔjµ ™LV3™LÌ4Ít½^gqq‘¹¹9'º/@í¾lêéééÇã´Z-úúúH§Ó”ËeÑÛÛËòò2õzxÏd2™x<žL&“v"‘°úûûÍT*¥wIÍèè(Åb‘ééi×÷ýtô<ÐÞ~ûíúsÏ=—Ù²e‹éû>¥RIhš†®ë¸®ËåË—©V«™0 ïFU¯:ŠŒÕ¸Ekìfþ²å×QÙ êÜmÅ¢KGµÂ¾€r7PÔwU V€{€ODÿÝA1µ4jÓ#„H)!„-¥—R¢ ™—€ÿ‰š(ÿ¹išíd2™ÒuH©P×u 8µZ-Öét’(«ýð"ŠªW¹EV¸‘em v =¤'Rú jw⨜ë£vûÇ(Ô‹ÀƒÑ"Ï¡xP‹@Ó£ghÝÜ1»Ü°„ªñ¯ÿÙó¼t¥Rš¦5P±A !B)e†a.t Õ’›âC4E‰z}K ßÞtb±XÇ4M+jKia®FÊv‡ž{QŒ¬8 iÚb¤X|˜µµµ$ê Åýû÷ïìСCzÔþî’0Â0¤X,ò /¸Q;-‡êX_eƒ±Þ €@ùŽDõåŽE—̽{÷îzæ™gH$‹EÖÖÖR®Oj¢jϘŸŸ7WVV¦7ãñxïþýû~úé§éííí¶±ð<¯[Àà8år™0 ‚€“'O6ÖÖ֪ь<ðÀúW¿úUÂ0ÄuÝnÚc~~žR©Äo¼Ñžšš:Žj¨œC1Ñ ÉÍš¢7= Cfff0Msqqqñ\*•:Ù­ã‰A`ªÑ±$|ßAÀÕ«W)—˵‘‘‘ét:6 Ã,•J+Bˆþ\.7Çq]—Z­&Ã0tQ;h¬­­É••aYB|ß_Ëu]4MÓ£ïf¢Oq ]n ÀÍDônéY,Z­f ™NÇqÖkúf³‰çy"ß÷]×Ùºu+žç )åÀàà`.­\.ÇZ­Vbqq‘X,†mÛd³YaYV ÕêA«Õ¾ï£iZ÷;´Ûm,Ëbuu• º5ƒÏ‡,…ßOÂf³‰aôõõ d2™-333$“IÆÆÆH$ÔëõõaQAÐjµ˜ŸŸgdd$mÛvºX,Òh4h6›ýÝ‚&šócñx¼;°qÏ4M²Ùìúî‹ElÛ¦Ùl’H$H§ÓB×õ ˆ^|;²Ñ›B!¤”4›MÂ0ŒÇãq3™Lǹzõ*}}}ÝYÝú.AvÇ`ív{G@¢iÚúyÃ0°m]×»ç–CÀWLæççY\\Àqb±ØúÄYñNŸnؤ”2•JaµZ Ïó0 c½–×uÏóÖ¹=×Fn²{œÆqœæüü|;•Jõš¦IëæÜÓÓC"‘ ÕjaÆõ‡.ƒ.K쟈ãyËËË´Z-M×u­Ë1>  <Ï#•J¡iš,—Ë´Z-aÕj)¥ŸL&µz½®EUÝú¸ÊqToÒu]¯ÓéüH±oyyùc©TÊDJÉÚÚš3;;k ݲ¬n¥ˆiš2:COOL§Ó¢ÛIö77g»®kG'´¤TlDÚ¶-…²V«³³³&° u02wâÄ ñôÓO»±XL·,KA€aA <Ïò,‹ÅH$4›M÷رcªþ‡aXyë­·j_ûÚ×Rù|Þê»D"A÷¸Þ•+WŒV«õ$Š™¾]Ó¼û¬Ð ­ãf„(Bt US_>±°°Ðj4/Æb1µ³žçy²Ýnžçu§³qà÷QiÐDåñÙ7ß|óåèoÝÆ¥Æ5VØýÑšŒÖ‚F£á¼úê«ï Zn x„‹Å,)e¢Óé܉jâQ³Å*×ÓûÊÍÑB‹Ñu¸OJyWµZýEô÷ÝêËBYÎ…h1ÇQÓáŸGŠz\£ªïçËhMiÔîÕP ïç¨M8Ýë‡a(;N=;†êüoÔy…[EoÀälô¢w¸–£ot ACÕ䢫;¯;ƒçúã¹×GîëÿýK”åGíæ‘è¾ËÑ3$ "æÙ@M¢O¢6ëvÎ!ßÇP͉‹\ûQWÞ ‚‡âåK(R•@¹S÷øÍ¸^¨2x:zÖ+(«¸À5þßµ8=úó }òäJzeÎpP0™ÎÈóœ,‹w-QP¦­Œæ I’¢”Bég ÎvdÅ!ZkDÀv R ²¬@+EQ®B0›Ÿâ•×.óþñÏóOîgùóösìÞÆ»†r8åå—¿Í~å×xñO^¾ÓvîWœs¿ Ü|Èü’~òö‚šÏ7¾ô·æ§O:I)S dy‰P&H%!x”R¤iN’¦˜®"¸Ž$Éñ¾c½:d¹îX­;´œ:}†a™PŽ6ù{ÿŸ0™ ùg?ÿi«C–‹»ågV¬Ö-¿ûůðë¿ñ»\½vó+ÞûŸsÎ}í}&º4Àòa–ÐûÑYëÛÃÃL·Ép0`Xfèdˆ35y1`UY¤”Œ‹ 1Ù&Ë Ò´@‰NòrˆV Jëþwy>Ät5ˆ€i-y¹E^Œ©×ûŒF#†«·níðêw¾Ë—ŸUÕ±³»à…þˆñ…_ ŒÉóœ¼R­£eyÉpXò3ó'ùÔ³çWí·þÒ‹òíO­Öë_qÎýkàÖ}7÷DoòaË@E #­ÕO}ö‡?=êÉ'8¹½Å©SÛŒ†Ó阓§Ï³\54Õ;Ït:g8"…AKÖ’@I…i×(¥Ð:‹€T‚#M.<ƹ³§èÚ†ÿü_~ŸåªâÛß~¯ÿÑ‹\¿qƒ,2ݘ‘ç)JB’h›5çÎãÏüÈ3lnÎÊ+WoÿÅÃÃÅgú _Àç€ë@×Ï÷= ô)¥þÚç>û©“Oâq67ç”…F K¢4Y^ðÖ[—X.WÎçä3TUó±«W¯ÿUëœxŽÈ,1T¾'ªþ˜h%ê“ÏÎb±äôém>ÿÙgxúO0›MØÝÛã[¯¼É|ùë|éË_ååo¾ÊÍ[·°²4áâ…³ü•ŸøsÌfãò•W^ÿ uÝ­ÿW{ èÞ€#`Cmµ^Óu ÞOÏ"h`­ãpQsëÖ¼ Œ¦'HT`ïÎ;8áÑ:£ÌhšI’ °Ì·Î€®Y3ÏÙØ<‹÷–z}@š&(Q¯o“¥²TríÆ>ñÔãx„H!qÞ#¥!x ¤$„€Tš¦©0Z'´mË;ï^#àÑJpòÄœ“Û[œ<9gP&Ì6JΜ~ŽÎVëŠ[7¯rp°ààpÅíÛ;\¿y‡Ë—ßF áiàÇÀí ÖÖ:fóm6¦#–ÅÁÎl°1ÒÜÝÙã§ú¯óÄO&)Bà½ÅYƒ”€à!x„Ôh•Ä,%X‚Ðû`Ñ;c•d ÎDøišò‹ÿü ´mÅSO<ι³ÛL'%'¶O|E–&”ÃBhÖË}6§ëªb]·Ôµ¥i=¯¼òÍðoý·Üºn§ÀOO¿¼ØƒáÞã€uÛµÔõ‚Íù”ÍÍS ‡Svvn²½¬ ¶··9wö,i– UôŸÞÇ$L‰µ-ÞY¼³)ÑIRïBj˜Ð_#¥FH…5 !g ³Ù„ƒ˜Î·™Í·É3‡wyV „öK£j®EoIóBJ U‚Ò ÖÔÙ`]‡Ö)mÛ!„b<³µµÉ°Ì˜L·q¦#O޼œPWì^#Í Ò¬ÄÙÓUŒ'sm×™€»ý¾èMßC¢ä1!¸ƒÎ´ mVæ F›khÖûxïPR¡•Dà!8¤Ûu€ÂI‘ p¶Á{‹R)A²l€éÖ(•¢uŠV­5Áëž&(/éš5δ‘0¥å`Lšy9¤mVË}ò<#I ¤ÒÔýØL×—cL^°¿{Gv]×ÄPx€ Òbßî ¬ ÔÕÓÕxﱦ$J§(¥RâCèMMá­%I,ûÔMGž¥€B'iüNçýDðqyx‡µ-R*œs8ï®è#‰”hC,o¡TŠõ)‹ŠSÅ€¼£uŠ’4ĥΖ«•!´DµÈS棴ù~} È{¯EcŒa½ZÒµÅpœ3ŒÆ'*9v^Á;4+ñÞâ,–k¬µ DtjÞ£“<®õPýÑšç ][H¤÷¥S²|„:†Q¥OO‘$9عs•+ï\Å{OµÚç`÷*iZR”²bH1˜‚Tìììy" l¸Gƒ'}ßÎ1!„& º¤ë*w¯‘¤C²|BÆ;{ì¹3Óô¯um@h”JHÒ¥DŒûÇâGWã­Aëï,R)„xׇUg }²dmüþÙÖÇoœÆ¸„Ëo_á`ÿëÕ>Öv,os°wõx*m½æú®Ÿ¼é÷‡Jb÷,@Ð8çœ1Ž4Óµm½`yp›Û—R‘¤Þ[‚whö‘@°^/9\bŒ‰¾B%¤Y”Š,+Éó!ÁÇÐ(¥ÂtÆÔH)¢só!Á;œëð.ŽY éš%i> ­—ܼyk7vè¬B§²l@pT«èä•.Ø?X ¢fx¤>’&Xc¬1Neå©R|pƒ)YVB‘ñIT‘Ù9ï1]Çr¹`ÁÎÎ.ÃÑ"/PZ£µCI‰é:¬iޝ÷>Ð6Uô%Þá;öBJºvw-Y1`:;‰T/¾ÁÍÛ;¬V+†¥Bä :IHÒ ¥SºfEÓv¬V=GÞþ¡’Ø1Q;ç»j½ÈœµŒ7Π“˜ J•õñÙ³^¯Y,–ýñuÕpëöËÅ’o¾òFt`¤!àX ˆþ³\^T’$Êi·nÝ¡®+~ç‹_eúâ«WQJ¾óÚë¼ûî5^ü“—xêÉsáücŒ§3¼†\(ò¬@ûŽõº‚èõøp ðÁ¯smÓT£¶YQ­ö) N òb„’â Ó´Ö(%)òšÅb…÷žé¥4J©žëèmz콋¤ÉX|Çž¿i ð!~OÛY®_½Î U… ¤‚àÙÝÝ%Ç—þð%¾òBÌMNŸ9ÅéSÛœ?w’‹Î#uκjü}`É€Ê9_'ù„b0e±ƒ Y>¡©1v„€Rš$‘ƒ2¥(2F»ûÔuC–DáTk„ïñ!&D1 ¸>ŠÙÄð(!Ó v{‹O=û £ñ„, ñ\~çm^yõ5>û™')‹œÙ4g>›°ybÂÆ$c6›qåÝkìïïbÍÀ>2BÈ5BÔÞC[¯Â +„T)ÎF†¼ÔW´ÒȼD']Ûô×Cš¥EÖ „ì'ýFðŽp4Žž>#RH|ïE/Ý ˆD¨0( Šr€ëó ¡4åpÂ8·Ì¦#ŠL’ê€3+–×8Øß¥ªÛ£Ø?ï]㜫º.*:ÁÁî»äå¦k„x½Åû¨%iŽ”‚G+M–¦eI’h¼³€@*1Ìyob˜C eÖ«H²V „»È5ƒ’­­MÆã!YšR¯!eÉãO ¼3Km-àŒ¡,§ØÑt6p?Ç›1fÇ:G^ EY–”EÂh2c]½ËÖ|ÄÇ?vŽsgϲ¹µ‰Ò Á„PH•Pä9“ñéÆ˜,M!x„T(•à\,ƒXáµ]ó„^Ž 0Rmk ãÑ<˘mLJ²TcÇ:Çh4fc~šr0açæ[$Y‰Òñ7ö÷X­V¨îà¡yÀ{V‰”RhéØœo³yòqÒb“w¯ßâ©§g{kÎl¾ÉhrÓÕܽsk²,e8,˜MÇQæCœíp¦C§'PRãƒÇÙç,ZçS!¥&ÍJ¤Ji›š[·FœÜ>Mžk²,c¹\å)]³dcc+æ¶CHÉj]SÕå…G·µ±b²ƒo)Ë‚“§ÎñÜs?ÄÉ“§ i"i«ÚzAp ι¾_`L–Ç.•D58ÑŸfQHé³CÛ ¬m£Ö——X_'‰&„Œíí“$Z¢èDG9NŒ1$‰ÆvkSêõ>R%1 žýýÖUó þÀípÎ×]ׅÃ]Ѷª5ìݹL`ÈÉíRX„ÐXÓF¸Wx#…í0ÝÛeXh›%BÊÁ¼—´À˜ö¸4®¼‹ï}¯:‹éjœulooámG’DÇÙ6+Œ4ZK^ŒHóå `µØA'2IhZK]7-1òÈDéŒÉü:)°MÅt\e Z+”Rt]…”kVÇ¥0!$Y9"ÏsÚzÙ¯ó@’–@LsÚf Î"„ Is¼3øà1&æÎd0}Õe•æìí/c¡d”Êz¹=/ÆdÅÛ-8<< 3öˆ~( ‚û%1À‡PëL ©ba38ƒR |…Ä!…@§y>Žl.)ûÜ_‘$‰1uLž”Æ:ƒµÞûHkýº5q:EéX\åHÊêýÄ!Š¢:Aë„®]£Ó"STÔM×Käu]a%Ë ÊÁŒÁh“²,±¶%x‡ wwiðCû>ТÂ{㼈¡m0Àv5õz!E9¡©ãÅJ÷–:‰Ú5 RÄ€®­0]Õ ¢±"¤t‚Rš4 “<–ÓÓò¸œFÇbMw¬F ÁV‹[˜v£‰5½b•°³³{À‡Š¡ïkRÊÊy×Uë]WÓ6+†óMlW#u* õѹH•`ÚŠI’“¤:É¡çc!´kbwHš PJd‚u…F':)b„wŽõjg;”Ž-8u.RVo£2R%äi ŒiY®jø,ð=AóÓTÓ!¤"+ÇØ®†Râ¬Á{ÒG*®"„®Ïï#ÅõÞ—Ë]ð¸6öxgû»n0&&1ZçÔÕy9EIž06Z’R ¦k0}Âh²Éxã4i> ÍJÚ¶B&)Be,—»AŽÂàG³„h…]Û’l@^NP*NÂt3-R©èôÒ‚4Ù^ð±qÒte9Œ*QÒ;RïHÒ¢7ñ{…T”±Ø’)R9À4뾬žõÕã;N‚Ã9¼”T¤Ù€¦^P çxS³8Üeݘ# 8J…?šx¬VIk ÉxçXÞ‰,Mj’TBˆk;I ²|D}ë¶kPB‘¤9骾Ä%ÉË)ζÑûãéš5Þ’¬$ɇ}M jIVÆ®2Ó¡tÒw6ÆŽ3cºø»‰î;Ì:T¢i«CŠr„qšÅáþý¡¾B.ß´Å´5ÕÊSæ3ŒiÈ‹I$0*ayp‹ëoƒÁä΋¥¤ÔdŘ<Ïú¶8×OÐÄlAQN±&V¥Ò #QÒR±t†=&FR*Ò|€%%YVİè,Ùx£/ÖHöövY®V÷«ÁJƒá(8¥u»^-8Ø¿Û\’¢¯½¯q¦¡k˜nE9˜àm…w Öª¯Ò4e8ž‘&)R„He”Òµ’ Ç3ò¬d±w•Õþ ²¬€—l^ ÐIµ­IÒ ­“Øk¤’D’¦ù`Ü 0cp÷Î šºëøyÀ{,À{o‚÷«ÎDÊ[-÷é¦C&³³ mÓ°{ç:ëõ’¦µ,¸yk‡kׯ3oðÖ¥K\»q#†¸´À˜Š¶Y‘õž@ªèؤXÛ û±[\I…smßMncÿ1 IÚ²Z.°Ö°Zµìíí±±1%ÏCiª±NQUUË=-ðCIÐûPUõaÛ6øàÉ$iôÖu´MKÝ ®ß\põúMnݾËÕk7¸»sÀjÝD,šzú:€èÕãHɳKî±7¨;®I©ñÁ¡¤î£Œ‹!Õ»X:XRÕ5ÿýù¯óÆ›ßç왜9{†óçÎñÉO>˺6tÆÔD'xTûh¾ª›;mÓ¢Tv,kïݹŒNKÒ|ÈÙ³ç˜Ï7yìÂîîÜ¥íËUM×V|ö3ϲ±±AQ„ °ÎD‚Ízsb{\µì« ÖšžVg€"0mY^€,+øÓ—¾Å­Ûwyö™§¸pá<'6Glnž`¾¹…>¼óÎ;GRXEŒß¬³»qXkPI&³38«<]³B (‡3ʪƹãÑ€.• óùŒr0Âtõñ³!Lk„y9AꄦŠdÎ9”ÒPIF–—1ÄU V‡·£ò£ ªªºb<*ØÜÜàÔé“lL7MÆhpíú Ûpÿ·,€àÃŽ±Ž|0BE>BË@®"_÷Ú¦¢È§OŸfÿ ääö“é&Ï<}‘­­9i–Ärwoæy1Á¹®W‡%]Wáì¦Y¢uFVŒR3ÍQ*þ¦^²w¼8o rΜ:ɉÍóiÎÖæF|äFzºæ0ܹ}Ó‡D9ìèY¢°¶ÎcL¼sÞYd’Ç>¾p¶Å¶ ‚ñä$I’òøãO0¹ø±Qfñd˃[èdB’– ǘf›¡¼¥©û”vÙ]1Љ ÐÔÏŸÀ9ÃÎí+\¾t™Ç¿À³Ÿ|šÙ$cTF“9Ji®¼{-ܾ³+‰Oˆœæ^Kܺ·†Š{Nñ"Ãûö÷ØÛÛçâ…³XÓáu¬ñåŶÅ¹È tŠgÍÅÇ.’¥’é”Ù|Æ`0Bª„j:£kÖd}y]*M(KL;Œ}›g±¦¥mÖ8Û°>l@fx4{;{,v9<¸ËábÁ²²¬Vk^zùÛ Š‚õzIÛ9ÚÎò­WÞTo~÷À)à/g€ïß®òÉÑûà÷öö¹qý:O?q3Éi¨ûî @²nj&§éºŽºnÉRA@séÒ%ô•Œ¶YÓ´-q¬»H]Ä5Üt¬WËå‚Îxªª¢iúçuUÑv–Îtcƒi»Ðv7ÆzïƒwÞ»¶mMÓ´sÁÄ~],±4ϯõ“¿BÌ š~âGнÇd,‰ÖçóüáWþˆo}û;œ=s†ÉdÌþîmŒƒÎ8š¦£m:ëi[CU­CÛoLçÛ¦õ]׺Îg³ÖZk³!““£Ý °á^îÞrOɽÿ›;æžG=ä¹8ú²ûïR¸ïóû÷ûÏ·ò¿A¸ÿ¼÷ ðlÿú2ñ™¡ý¤G¦Âž{yÁ’¸ŽÄ^Ûš̱ȃ ÜWê~¥6<ðþ~ ï³óϱ~·ß‘GzŽø~ŽÒÇà›@A\OGìêÁ;x4@xÿà$à÷ˆ›®'_óˆZàý¿ßg'€œ{Kà‘ÌéÿѦ Ü‹÷Ñó?Òö¿±ù@ØqŸWIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/redo.png000644 001750 001750 00000007664 11617757645 021555 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ ;8ÔXÜ4IDATxÚíš{tUÕÇ?ûœsß!{{zd>Ÿ—­­­²Æ?",8™±Õj¥ººš5kÖÐÙÙA¸ŸM›7QßPÏ7¯ZÁO7Ü ülÃ-lþÙÝÿ« ¸Ëœ÷ ÏɨûW솅P(¤f2é3gÎl”BBU5ÚÛÛå®]OÚÆÔ×-ï:ˆ†Íf£¥¥—ËEOOwÝy ÎÂùMØm=þ$¿ßõœçïw ­ù¨ ô¢­x …«¾d­©©™töÙ³e{{»øö·¾)¾²èBcÖŒ ¹Ò²ŠKZZ߬öï©Z&“!•Jñç?¿Äç÷qæø‘\ôùs)-+ÁiWYtÑ<ùí®¥5ÆÂü\¼r vÒœ¸¸…¯îßÿü¸òòÒÚ›ÖÜÄŠåËd­¿Št2Vœ8~¼eâÄÏ5z¥¥©P(üÈ „š”’l6G6›eá‚sh¨«Ái·àvÚÑTÁ²Å[¶?™ÖVVT,¿qõw/¸âŠ+åYgÍföìÙã÷îÝû¥T*µ ˆ| PË€]§hk˜Ù@—R–‹…–]»žµø¢&Óœ¢¼ÄeØ,ªR4 Å¢æå¬™ÓF·½ÓùµX,¾è<®zƒŒQBÝè*|#p{Ê8ç‚KU“iõÓgL_±níz™Ëe…4¤8sÒ$¾øÅ/Víxâñ+â‰ÄKÀ;ÖÀ*3®Vš (5×XLþ_IYQ]J™6/+7Žïœ0cR]Å”i9Ç‹¢šÅ꥕ÕÌ›{VI[ÛÛ_ï †Þ5 §÷‹'éèêcÆôÉÔøý ÷n|ð#iÍ©: 8CUÕ‹kjF|uåÊ•+ëF¾ZÑ´ïTù|«t½ø­B¡p¥¦j‹ ô/#™c¦À)å0sŒ,PD>_xê•–£3æ4N°Uøª\ŠÂát’Ë$Ñl^9gÎ k>“Yt´í ðìà?ŽÆ9þv;uµ•”z]l¼ÿ‘¬5§šö,@ÝÒ¥KnßþhiOOÐu‡ÃɪU×ÉR—¢×Œ¨ÐІF4ÒOA—$’¢‘élZ/êJ: g¢‘p*•ÎF3é¬j³['?ñÈF*}Õ$¢!4›‡X2ËÑ7^EQ­rÏÞ}bëöëW*Š’4 ã½2`|ÛÏccÇ60qúB‹ÉÒÑŠ¢Xm6ûíwÜqëìM7sõ¿~CVUxe¨¯;çñV:Žïâž{7íK¥R_⧪ä.À­*ŠˆE£B+Éf3Òáp —K1ª«ý!]Ï{FÕVËl.›“†¡¸Ü¥n‹Õª !¥'ÔÛ-Ó™œÈeS™ÚQõ†ËãSŠ….o9«MÕ?q ïŠóΛ‡]M/kþÍþ©Ùlþ< œ8€gÿr¨…ñãÇòö õf÷Šaõ™LzÃõ×ßpÃÊËÏW_-6‹á´–D¦Èˆ*»üÞ¿_=oãý·ttt-J3 *¦MŸúõ¥K¿bÏærX,TU{ö<#ýÃ<Ú¬YŽKTVV ·Ëî¨Vm+)-åå>áv{PdoI‰0 É‚×ãÔkkFX­šÅBF””'ŸM“ME°Y­Øí6Òé$š‚œ9mbåÑãË“©ÌùÀ~à…{ÖÝb̘1òrºžçÛW]¦ÿô~­yxãï1@˜´sY4Märyôb„Àét`ºp{Kð¸¦I!Ô²2?šÕ4 iP,Xd©Ç"âѾb©»!áò”–kšŠÔuй,©x‹ÍŽfµ# ¯ÛAey)ýA¯x­õ8 ʬVkS±XÜ®©ÚÑU7þ , :€£@?ºÌÝfPH$S×ݾþþ5²ªþŒñ¥^»ÃE0Øæ.•ß»éz×Ö-ÛÙñäž;›ÿ^¨€Ån·+Š"Ðut:…ËéD…B.C±X@³Ú1ô"F±H:FS5„f!Úß-²¹‚ÞÙÑ™‰&2åmo·O䚯¹TDêÅ|.“އ‹…ŒÕ™É¤J²é$¿ßu©:Ù¸é¿•ææ‡¬z.î«(÷ 5ªî”´&Îæ¯øöËkMCÃXbɬ8úF'K}Añzœÿ±uûŽ1ºÁ•@rpW°0@oI™Ð4 EQð–”"‘hš* …¼…‚d³’=ݺ{‚=™¾¾`¢? '’ÙžD2•H$’]À¤‹/ü§sbý'bª"„”†Ýæpù<^ÑhPm=òª¼ï¡ÇļùrÞyçãóù¤ÛíUµzýèÚh±˜sª=ó´h6(hH)R©$¯·¾.ûúúä»ïvÈ––Wô=OwåîX»©/šHô"鎙ÅLY…ÌqÊ„àìysgÍ]~é—‚%å#*‡’Œ‡¤ÍY*úC½:t„ÛÖýÒX»n½ðûýTVVRVV&E•e%.ë´iSÊs™¤¡YF:÷jV‡ІÕê$ŸÏq;ëDow{A»¬©.W²©°Ì+†ðU7M'Èe"¸ívjýÃéìêdìØqò»ß9vô„^68ÏRÊ&`醟üDlÙ²õ©¾`_{.—ë2ËÖ$6š3ó½n~ü–€C1mÖÌ©7|åËçÇKJ¼•ÅBZèV ›Wô{ä}÷omýÍŸ›šæNœ0a‚Ën³áñz?q­ ‡Jx­õ8…B±ÏÔ—YÉ2à€VàX>ŸOuvuÞmj‚2P©š ϘO:o.¼`~$àË˼·¯øÚ¢Ì˜3ê\n—•x¤—X$({zƒbÓ黟yñ1à_¥ïG~¿Ÿl&C*™ÀãvìZ£ªV[*•(ͦâwxAìyîÅ…‚þc³Ì·Ì²×ü è6CbðBž´Èþþ~Fihh€Ëf³5²ö—+V\îÞöèúÝ·¯Vv7ñb˜·ÛbÍÍ?Ju÷o2ëõ’þéõz)äóŸ˜ÖÄb!å7g7Üû@ñÍc÷¿53J8`²À; y“æÏ™"¦ª477³déRÞzëM"‘Éd’H$Jss3mmmÎÆÆ™r¹üÎõë×WÍÛD 7¨>¸e§¼âòKÅS{þȽõj$ûOàMÀ hª¢œ­iåæ[ï†úë€#æ6?b>L¸ïï•›Ž`ÆŒéŒ;ŽÝÝœ8ÑE("Ÿ/ ¥$“É8€ò†††'Vßxãô…  !å¬Xq9©DØØµ{ßNÃ0~dz¾hÒn‰Õj?¬jؾ 5çÌš9uÝ7–}!3¦a´§Ú_+œ®ŠEƒX,,ﻫhÞöÛ]™Lvð®÷ñ¸?Y0Ðw‹ ¾ùòˇxýõV CR(äßoçîºüòËg,ûçKe:•Æ0túúúdXöÙgÿ Øf>½¼¹Ã|8z´æà¦C{Í1åÇzÈ|øËÂ…Ä€ŒÇãÆ¾}ûd]Ýèp0ÓÜÊZ· ó~50Â,mK͘´™ÎUqàé8øì¶¦ºm6[ãØ1gôÞyÇmòܹÅ?í{T¶¼ôy`÷ù«Íëåˆá¾$ð-`ª9¾õT7Cv3u®~úéÝg.^¼hÝâÅK´[n¹åµt:}£Y¶€èûh÷žÖ(Šp:8ì6jüÃXñµE|nÂxJÊJщ$›I‘Ëæ?¨Ö´!“ÍÅOâpTgš ¬4·ªw'€õ&åúœœ åÆU…Çœqß¼æj6ÿò~(¦øîª+>¼ ‹ÅN¡P  sîEË?¨Öô˜zò±Rþd¬f꼸ޤ]Iã¿w´¦N›6§žzŠ\.ÏóÏ¿ÀäÉ“ùú²K8|p/ØÉ½Ì5 h¾õÖ[e,3€|ø•¿3C.hŠèi{AB1‹¦˜©²Ù“¥™AýCˆF£\vÙe,Y²„D<Ž¡ë†Á¸±ãP•æ_oáö¶=ò8ñDÒü °ùøñ·[xáüd2¥®\¹òµ`0xÙðè4©ÿé½eqj/FØ©¯ÍêÕ«ioo§««“ööwhk;FÇ»D">Ìä)“kÍ$SgÆó€íÀl ÎÌ‚¨ŠBSÓ\‰d‚ÞÞ^‚Á @7=û÷ïgÑ¢Å8öKk>{¨®®fëÖ-ÄãqúúúˆD"D£Q¶üú×L™2«Õ‚'Ý©fÛ¾Â<#´üþ&3jÔH¶mÛB&“¥³³“Ûn» ¿ßEQ>ÎZ峋±cǰyó&®ºê*¼^/B|zaü©Í¬iRJ¤” :†0„! aC†0„Ó‚ÿ ³âÎ;J:IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-splash.png000644 001750 001750 00000051433 11617757645 023706 0ustar00simonesimone000000 000000 ‰PNG  IHDR@ }£µœsRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÙ ;PyiP IDATxÚì]wxTUú~ïžI›Iï $Ü„:R¥%âbAqÕ]tWWëŠþÐ\×UPQ@H¤†–Bê %!½Lz2%“™L¿¿?ÈÌ&a ½ïóÌ™;÷ÜsÏ9ß{¾óï|À‚ ,X°`Á‚ ,X°`Á‚ ,X°`Á‚ ,X°`Á‚Å}‚m,î 4Ms¸ð0›Í>J¥RªP(ä Ã%&&ÊØb ‹ß"ñøa˜‡ YSSƒ¶¶6èt:$ ‘Hj¡Pø‡ùóçg°-Æ ¿òso0B¯^½Š’’ÔÔÔ@«ÕB§ÓÁÙÙƒ†‹‹ |}}™   7Ç·žm9–Y°¸ßÉË0LreeåüäädÔ××£¹¹F£ñ†ßŠÅb̘1Ó¦Mƒ»»ûnPea[‘%@,î lذ …A,5 T*•aJ¥’ÓÜÜŒºº:Èår0 àp8ppp¨Õj—ËÅC=„ùóçÀçE½À¶*K€,XÜ6V­ZEèúáôö7I’<‡ÃŽ<Oj±X¼Ìf³Ñhô0™Lžf³Ùa_†aÜÍf³³Ùl™L&žÉdâ˜ÍfÂd2f³ÖÉd‚Á`€ÙlFGG´Z-Z[[!‹AD"†­V Fƒ––h4€££#Ö¯_©T c)ŠºÈöæ¯îýTÙmÛ¶ÅÖÖÖže»íFX5뿽üŸèú†a`±X`±Xl[¿ëzÝZNçÿm¿ëò÷Áz½Ç‡èyÍz×ïíý¦ëÿ+++{ý}Ïv°×&=aµÙ1 c#5­V ’$ÁårÁçóáèèh#Áže©T*$ '''ÄÇÇÃÉÉ  Ðh46looGuuµ•ß°µ,Þ,K°B¡477Ûþ>@þÈ{ºž,úƒÁ€––Èd2»6<‡???Û²¶'L&ôz=‚‚‚àãトˆþùÏ¢¥¥ÅöÛ‚‚DGGÀTš¦ Š¢ØNd ð¶I …Âö·——W¿HåV¯ý^Êø½‚$IètºnäGœœœàææ©T ‹Åb[úö„Ùl†Ñh„T*Aðõõµ]7nrrrlËårX,$é„ë~ƒ-,±د¥ž®®® Ö”9Ðmûkø/ý,½^ˆD"X,øùùA,ÃÁÁ|><&“ íííP(hjj²‘!—ËÇCKK †AMM ‚ƒƒÁ0 Μ9Ó­^^^ I”E±äÇ`ÿ4À®J¥m‡UeXÜ6‚pjkk#ÀçóÞÞÞpwwGhh¨E(†!t:ßh4‰P©T¸zõ*ÚÚÚÀår! T*!“É R©——‡ÆÆFÈd²nZexx¸õÏ£lë³8 ( cW¯^]Âv%‹ÛEJJÊ•²²²a]¿‰D˜4iÒ#þóŸèúý–-["¸\îj¹\¾”Ëå:ÆÅÅ¡   …0›Í8þ<¢££¡V«¡R©ÐÖÖf»ßÓÓ!!!ÀøÛú,Ș‹;P(üŸ0p¹ðññ¡{’<óÌ3…þà‡~¿°°ðuµZ ‚ lK⎎deeÏçÃh4ÚìŠ|>sçÎ…««+¬£(ê2Ûò,ˆÈ‚Å@ ǃÙl~óf÷Ì›7ï š¦£¢¢þúã?‚Ãá@.—C«ÕÂd2Ád2Ù~+•J1oÞ<Œ5 6SõÛê,² ‹{"‘Èö‡ƒ†††‚[¼u··÷”¿üå/Q¥¥¥¨¨¨€\.GCCŒF#„B!‚ƒƒáìì ³P(|–¢¨¯Ùg ÕYÜ“؉[Ú¥(JOÓôT.—ûVxxø2___÷ÚÚZR©TB«ÕZÄ1R©4‹$ÉGâââÊØÖf ÕYÜSèêàL’$>Üq«÷RÕ àoþFÓ4áìì,à¡ÕjÉÚÚZ@eBB‚†me–Y Å=¯vúèõ §:Z;?,î÷[…Y Å@B Øéï„Y°Èj€,î;ðx<²õ,² ‹ßZ5?’$ÙÁÅ «²øý€ ˆ®È6K€¬ÈâwsçÒ—[,Þ³5Áj€,p<ëGà: +Äà½M€ì,ÍbÇ“¡+²“+K€÷ú€%{R‚ „l7²èçxÒ×7BXd ð~°;Á.El7²è't] ]³x?j€l7²èçxÒ°CµòžK€÷Ò€%X Å@Ïç×ÿ;¬ÓéØFa ðþÒ° ‹~A,€@¯×ãƒ>˜Ì¶ K€÷feI’cgXÀv#‹þ€Çãåòx<Ù|«ªª>c[†%À{UäöÔ†a5@ýÅe‘H‰Dàúî 0€çÙ³gŸ:~üxÐêÕ«¿qvv.ÐàEQMvîã˜`jqqñ£---^jµZ¨ÑhH½^OX,$ ’$‡Ã…ÂŽŸ†þEQÕ¿k$"°çw:NÊŠ1‹;$Á]4M׌1âk''§Áiii i­­­P©Tؾ};üüü&'&&Ö¥¤¤ìÔh4Ï&&&ê~ïm¦iZàEHNNFCC²²².'%%í {˜¢(}/Üñ¿ššÈd2”––>ÙØ!¿A’/_¾uõêÕ^ý.;Ò „V«···/'IrMÓó)Š:þ»\Ó4=‡$ÉОßëõzÞºuëcŘÅ’Á#BBB6>òÈ#ÆxqqqpssÈd2lÚ´‰ü÷¿ÿý¸V«U=ztöoä½ÿ `CYY®]»f•)”––â»ï¾[ØÞÞ~œ¦ižû.˜n0ÌF£---¨¯¯G§ö7›¢¨–òªÑhòöìÙ•››Û§Ó9I’àñxptt„T*…Ùlæø¿ßHÓ´Àè²²²­¹¹¹7\ohh€Åbùæ‹/¾pž8qâvŠ¢Ø,\,úKÖÐ4½uÞ¼yŸ^¹re¶Z[[QRR‚¢¢"477ãêÕ«‚Q£FùꫯæþùÏ>úxõO«««W·´´Àõ¸ˆ|>ÕÕÕØ¾}û¤?ýéO{išN (ÊÜ£½®]¸pa?€%*• ƒvtfËë•JõÑÆ®›ì\\\šu:Ý ÃÈI’Ts8Çk$¢€":::ØÝÝýc’$#:‹p[ì=G€4M;xÔb±ÄÕÖÖN>räH`EEa]ŽF0 ‚ @:::ÐØØÈ-,,ü"##ã‹5kÖ0îîîOOÏ’!C†vttü‰¢¨,V¼YÜ^0‡¦éW¼½½?ÌËËCSS“UÃ( âÊ•+)ãÇæüùó[ïó÷­[¿~½Ñh4ò­Xtt4.^¼ˆ‚‚¤¦¦.œ5kÖ{^·³;`IG‡-›èN;2=|ãÆ åååðõõEdd$ÿ'Š¢¶Ü¤j…4MŸð&€×\ýÍ MÓ>f³ùæææ§óòò„ùùùÉdhkkƒB¡€V«…Éd‚Ùl†Éd‚Éd‚Åb‡Ã—Ë—˵ªÍ„››› 888ÒÏÏ/ÒËËëÕC‡] x ÀáÎô…,XÜ ”B¡!!!ؽ{w· :GÝú[xQƒÁ“Ét¸\„††jkkù2™ ©©© }•¦éŸ(ŠÊîz_GGGUss3,‹5¢vaϲ;::^ºt ÀõèÛ'NÜp äg%g€·išþ@ìo’Ož<ùbyyù‡gΜ@&“A©T¢½½ý¦Ô­dØsY\TT'''¸»»£°°pxTTÔÁ˜˜˜bš¦gSUÁÊ6‹Þ““#R«Õ{ª««ç:tÙÙÙèè耣£# ((k×®=?xðà)GýM¼³Éd"­rÄãñ>N©Tæ´´´ ©© {÷î%žþùŸiší$%€\.¯®­­Ã0°X,L§¡ªªªæªT*ˆÅb8::2A¬ï‡–Z è7E€ÉÉÉΙ{÷î ¿|ù2d2ššš¬¶„n …‰D … I ÃØ>&“ íííhoo‡Ùl†Ùl†R©„R©Dyy9Ο?øøø!ÑÑÑe©©©<<<^cµA=qìØ±7jkkßJIIfeeÙ&`±XŒ¹sçbܸqÌĉß#IòíßÒø1›Í¤5dz$$$änݺ5­¥¥eZvv6***œœì—˜˜øoOwÑ„›[ZZ¬Ëa{+;299yTMM ÂÂÂÀçóÛ(ŠRÞ+ïý«àfIKKã–––¢±±ñmÏÁÁ‰‰pqq±ˆD"@ h …:³Ùì¬Õj]´Z­P­VsÛÛÛ F•J¥R‰¶¶6×#ýÖÕÕaß¾}ÈËË#®]»öÊ”)S»páÂи¸¸vVìY;vì5½^ÿÆþýû.^¼h‹"‘ƒ ÂÈ‘#1~üø2ggç•Eø­½¿Ùl&¬ ‹‹‹ F=³±±Q_[[Ë­««C~~>ÂÃߺpáÂçqqq48;;·ZåL§ÓÙ›$%%%B«Ù@¯×÷)oÙÙÙ1jµú/f³9J§ÓÖÖÖ: µ¯¯ï†¶¶¶O-÷=îß¿ÿË£Gþ9##eeeÐjµ7_`` Fމøøxí°aÃþãääô-EQt_åæçç?XXXøééÓ§CKKKQYY‰êêj[ K£ÑˆââbÔÕÕ¡¾¾ÞwáÂ…ÍgΜ ¯b)àwK|¯êõú7<è”™™ «1_(bРAˆŒŒÄøñã5îîîð/Š¢L¿Åv°X,¶„cžžž¦Îe§åÈ‘# ”Jå‘ÖÖVÈår¤¥¥‡@bb"ãååÕ« C¥RÙäZ§Ó9ߤ*SõzýŠööv´¶¶Z•.—»ÑÓÓÓÀêûšüñÇÝ»víZš››Ûœ€ë»O>>>˜:u*°À“]UæÏ?ÿÜU«Õ^#IR/‹ÃŸ{î9{FGGp¦é†Y{øðá 'OžD~~¾M€ööv¤¦¦¢½½]¸hÑ¢²S§NÅO™2%c Þ‘¦i£Ñ8T­VÓh4ayyy£/^¼8´¾¾ÞI(r<<<Ìþþþmááá•ãÇ/!I²À)g(ŠRßv_½zuf^^^HcccôåË—ëð]]óòòÆ8pàáöööX“É$1F£‘o4¹&“‰´X,Ç#D"ãàà`‹Åf±XlGGG‹‹K£D"¹ææævÆb±$?òÈ#uw™øVëõú·RRRœÏŸ?o›„ „ððpÄÆÆZ‚‚‚¶ø;EQÍ¿”ŒÐ4íXSS“ØÑÑ1¯££cD}}½´¹¹YÐÞÞÎmjjâ¶´´*•Šì\!YÜÜÜ b±XçïïßUÜ Ýù)£(ªO͉a›,úùù­ßÏ;7å›o¾ÉojjжÊì©S§üOœ8±~æÌ™¯w%>‡cïnnnàp8prr‚^¯w¤išì­><ïŸ>>>ñjµzasóÿšÜh4‚ËåÆß×KàüqÝ–^¸puuuÝò°’$‰ˆˆ¬X±&L0ñùü×(Šú¸gJ¥²V©T:€››[-‰ƒéqÇiš~`ôèÑIIIINûöíƒR©ìªò###z½ž£ÑhÎ¥¦¦Ž™1cFö¼_nn¦¦ÿËÍͼxñ"YXX¹\ŽÖÖVXwÊ:µ n@@€GzzºÇÖ­[G‡„„à‰'žXl iz EQÙî=ôòË/¿t‰D:thçT½^9;;ÛïàÁƒ·šW—@r¹\®D"¸¹¹‰ ‚ÇóáóùÑ|>ÿa—½ôÒKLDD„ÊÓÓóg‘Hôæ¬Y³êˆø ×gΜq?yò$ÔjµUð„aÆaĈˆˆˆ8 àEŠ¢ò!Òójmmý¸¼¼|é‘#GxÕÕÕP(Ðh4¶qÓÒÒ‚ŠŠ èt: p8ðx<Ž———ÈÃÃCTXX(IKK* „Ù³g#88rhšžeÏ?¯«üÄõ”(ÝÈ)&&fR}}½²¶¶–lhh@AAüÊ¡C‡6ùå—ªôôtë¸6Ø‘EæÍ7ß4ñ,  €ÝcvE14M?åääTÀçóýŽ9‚¨¨(¸»»C,“÷-îÙ³ç‘#G޼•žžŽ®ÌnmüáÇcÅŠ˜MÓôú¾vÑ)ŠJÛ²eKµV« lnnÇAÊûŽ“’’ÈÊÊÊÿ9r„°G~"‘³gÏÆÄ‰Áår?¦(êToe]¹rååÚÚZÛß555àr¹›|s!½LÓôË–-ûX&“áĉ= À¸xñ" äèçç—AÓô({þLöÐØØ˜‘••å¸yóf›ãää‚ °|ùr 6,ÕÇÇçAŠ¢ºnqÿýðáÃCŽ?ž{úôiqWÂètõ EQÖ™ürçç-𦧠4hWEE…×W_}…¦¦ëD4šë'³²²ð÷¿ÿ»qãÆ4M7Ruò&ãÎI$m­««{èçŸ&jjj`TWWW 6 ãÆCLLÌ¥NâKº™l€É/áÔ©S»wíÚÅ©¬¬Dkk+„B!(Šxxx0Ó§Oÿ|ĈkºúÝõÄO<ñ%€/iš~èêÕ«?dggs.\¸€ææfX7ôz=Ö®];µO"àr͇#‹A’$Ñ ‘M«¯¯omllTVV¢¢¢jµz¸UKår¹öîóññ9ÉTUUc€¿ÛûÍöíÛ}_xá™L&ã÷¼VQQá¸jÕªÒmÛ¶yܤ*Ÿ¸¹¹Yºt©Í¡µ+t:ÒÓÓqúôé£Ñ¸éVÞíìÙ³nÛ¶ÍF~àììŒÀÀ@„……½5gΜ™=È0oÞ¼âÏ>ûÌqÞ¼y-Ç–“Âd2!999l,"33s¸5áOW( ü÷¿ÿ}·3Ò@!ÝËËË" máå»þ .üOò»aÆçóùQC‡=ùÚk¯!((Èv_—¾Frr2¡P(~î<2ÙùÍÔëõ‡^úÅ_UUU°X,àñxˆˆˆÀ“O>‰çŸ>/&&fÉõGS{~aò{áûï¿ß»eËNqq1Z[[ÁårDEEU¼ôÒKœÇüžȯGûí6lØŒùóçkxà›iE}}}Ÿ¹sø|¾™ÇãÁÙÙ‡èåš)S¦Œ9r$œœœÐÐÐ`³«“$ ³Ù|¢—ûL¡¡¡ÙA€$IÔÖÖâÊ•+ÿ—™™9º¯:µ¶¶zóù|8;;[MJY÷?~|ÐåË——fffÚµ ‰D"Œ=jý£];{ëÖ­+6oÞ|mÓ¦MíçΫ½zõªŸF£Z­¶98«ÕjhµZ ÊÉÉiú׿þÕ¶yóæK_ýõD{ÆUÿ ( “'ÛOüU]]ÌÌLü‘¦é7{¿ŠŠŠ<™LÖu&…ƒƒÆŽ{zÁ‚ïÝÂEðŒ3lɹ`ß¾}£ï´í«««·ÔÔÔ ::®®ÝM¥z½—.]"[ZZV T_Se ¨»}üÚMÊhð€——×»ùË_àäätƒözòäI¤¦¦:šL¦GìŸàÛo¿Ý][[{ü»ï¾>}]|Û°`Á¼ùæ›Gý EQ1E%ÿÒÎÌ4MÏÿá‡>=|ø0QYY µZ ‚ L›6í•>ø ´?õ¢(ê”T*?oÞ¼ÆåË—w³C ¢:‘B¡Ëår!‘HÀårz›`(ŠÊ‹‹‹û466ƒÁfS'gΜIíí«W¯#‘HlÚÕ«WÉ‚‚‚3gΜ÷2‰¹h4O@OOO8;;›p=ÌÖýC€uuu§ÿEÉïLII™SPPàk1foI…ÈÈHÀ×]¯-_¾\2~üxï!C†ÀÛÛ£F²+T]øèÑ£áîîŽ1cÆ 66vèòåËE½hŸ[\íA¡P ??õõõSiš^ÔÛ3¿ýö[7™LF(Š$I¤§§7Ýr'äÑ7ß|Ó6c»»»»ßIÛëtºuUUU I®®® Á°aú‘‰Z­FFF† ??Ê@õ9Ã0—­Z°Óí’éÓ¦M»a¢2™LP((..éq‹Êh4f°ŒnC|Ì IDAT9C‡µ™4 öìÙã_PPðF~~¾ï¯D~"¥Ryìûï¿Èd2ù¹ººbÈ!˜1cFösÏ=7P6Ù SæÎ[ñØc ˆ´é.õòðñСC!‘Hàëëk‡ïÓ4½¸·gÄÄÄDÇÇÇ«­›(8wî\ŸËõ÷Þ{/!66öp×>mnn&sssßR(¦wß}×øÎ;ï˜rrrjZZZ¤f³¡¡¡nðþÝè—»F€ …â?§NêæèÜsIggç3EUöèÀVGŽ www 6 ‹/Fhh(D¢ÿñšƒƒ°xñb :C‡Epp0`EQÚ^ª¶ÝÕÕµmìØ±½Ö½´´™™™Ð+Êåò±ÕÕÕ7ø¾q¹\X,Œ?>ø6šëG‘H¤^¹r%¸\.ÜÝݽî@Ð333Ñétpqq››BCC1{öìnK"(++ÃåË—· TŸ›Íæ|kôÔܬdtBœÍáp’­ÙÚº<ƒuuuÝuÍš5…kÖ¬yÀР  Ú#F`üøñ6{¯\.dž &}ýõײôôôÃ999>¿0®üùçŸCJJJl+"‚ Š &tL™2eÚ@>Œ¢¨*Sž{Y³fÙ»ÚÁ&ƒáììŒN_QàØAÓ´O/åË'L˜à™Påáá‘HtK;çýë_ç7.$44´@$1Ö3ýz½J¥’«V«9ÖMA???ÕÉåò€[µ…Þ˜——ç!“Éü««{áïìì ???ñu/ ü:ߨ¨¨…B¡™Ëå"88žžžðññ¯¯/<<<‡ooï–°°°ÇxSõa£ ˆo¢££oXvÕ a±Xzu®§K¬°îZŽ5ê¥Û¬Y†.^¼xÁÔ©S+A¿5@‹Å²Ìº¹áåå…9sæ 66~~~ˆˆˆèö[¥R‰'N ¦i:d ú]¥Re÷¦ñÝ.Zç"ooï&†aÐØØˆÜPèš5kJcbbÂg̘qbäÈ‘˜2e †ŽN'\¤¥¥o¼ñÆÜ'NÔž*++ëÕögUý#""ô~ê£ëlÚ²eËO Ã\óðð—••Ùˆ‹ xxxÀÕÕuÿã?¾è6ªøEppð ®®®„ÕÝ¢§–QXXˆ’’’0š¦]ìÙ®¼¼¼r»n\t%@‰D‚ÒÒÒhš>IQÔ[¬õ8¸jÕª¹ým{™Lö÷ææf899!<<<o€KÑÑÑoËd2nAAíôƒÉdBnn.ZZZÖøÃöûŽ;j£¢¢À0 ¸\n7@‡ÓŸÍ† žš¤•XI’Ä‚ ̽Mr4MÏ;vì›#FŒx-33Ó!00ÅÅŨªª‚Z­ÆŽ;ˆ#GŽÌY²dImjjê1GGǧâââî†< †×ÒÓÓEÖdKVtûTS•z·œ¢¨š¦ãxà¯óóóÉÞì®ê&L˜ð÷O?ýT{»ÏxõÕWÿÜßú%&&šœéüüâ¸+`]]Ý233û<åêê ©Tz”¢¨›Fcyæ™gjE"Q˜«««¾ëX,#$$äÔ3Ï<³è6E‰X,¾äáÑ»çLcc#òóó ½íÈÖI$’œFÛÛÛÑÒÒ™L†S§Ní£izÁí¶ßÇ|¤ŸšFøùóçÍf3<==1tèPÀ#E½çààðbddä îuuuÈÍÍ}ˆ¦i§è{+aõÔøÌf3Ñì!ˆÇãÇãÝT£ìÜLyW$…L™2åŸ ºÉ“'cÚ´iI’ËåØºu+¹~ýú9¹¹¹u'NœH9{ö¬×@ËCKKË*«»K»/|||0qâÄïî¶S%ãóùKžyæ™Ú¾~wîÜ9-~gpÌËËsihhöµü®»%‚ŸnµÜgžy¦~èСãlßEDD0‰ý©'ŸÏÏð÷÷ïõºR©DCC éeæ2LžþøãÙ………u©©©{/\¸ ˆöÈÉɉ½zõªƒ\.ïv S(bøðá°ÿ—ô[Q4~pT«Õ3´Zm7Ç`{èÜ-½v;e?ðÀ¹O>ù$½`Á,]º‹/>Ý×ï›h*¹}i€&“ ´âÞ~ûÅСCovhmmEUU¶oßN|óÍ7Oéõúš¦_¤iú®˜hšæ–••=¬Ñhàáá°°°ºQ£FåuÕˆþ:fÌXÃuÚ QXXˆk×®½EÓ49Ph¯=oã]ßÖ×׋»ž*àñx‹ÅðööÞv›POQÔ NNNƒfÍšõÕâÅ‹MS§NÅ„ ºe~ûüóÏÉM›6%–””¨RSSß¹Óöhkk{¡¤¤=½D"æÌ™£Çõ(@,~C¸@.—Ûüƒz[&un…—õã;ãâ⠻¹Ö\"},] R©zÝ Ðjµ¯¿ð C† éU‹,..ÆO?ý„×_ÝùÌ™3ŸšÍ暦§t»ëõú‡ÊÊʸ"‘‰B¡ð†H:111Ç<<<#FŒèi³Enn®€ùwZëÒÔžØIl·‚¿ †içÎë+ÒÑÑb±R©Z­¶_qá(Š’QµÒÍÍmðƒ>¸mÑ¢EæiÓ¦aܸqpssÃ0(//ÇÆù_|ñÅÛ»wï–Ÿ8qbqÛC£ÑÌ®©©±mŽuÕd…BaÑ@½`q F£ÛØØwÀ.— >ŸoéöFQÔ˜NQÔî ª—ù|>Ó—-I«Õ¢¼¼|ho×͉$qÕªUŒõèVO˜ÍfÔ××#33Ÿ}öÞ~ûíˆk×®¥åääì£iÚo Ú]&“½¯×ëáååWWW¨Õêƒö~'¾‹íæ_§ÑhŸŸæææ;öµêm ÜààfÇAÓt,€õyyyØ·o_·rÝÝÝáææ†1cÆ|÷á‡vÜI=)Šª¢(êiŸa‹-úqÞ¼yÌäÉ“1nÜ8H¥RX,”””àý÷ß—lÞ¼yßÞ½{‹Ž=:üvŸÓÞÞî¦V«íF;'BÁRÐoOôïyßž–Àãñ w0xQ•v‡ #ÂЗØÑÑúúzÿ›,Ë„‡‡ÿé•W^±øùõÎg:8wîÞ}÷]lÚ´i±R©,£iz½ÄÓ·ƒüüüÀ²²²`ëaÿÎ%®]¯|±Xü–³³3ÓÕ½„a”––âòåËÃoå`4@­V‹¢¢¢¸›ßN_½zUŸŸââbÛ5‰D///ÄÄÄ4¯Y³æ‰´Sµ,888:!!áàÌ™31iÒ$ÄÅÅA"‘XO,à½÷ÞúÍ7ß\Ú·oß‘¤¤¤[2cÐ4íØØØHêtºLÎÎÎ ¢¥ ßvttˆúr±j€$IvÜï¯íK4 Ðét.7+düøñ[FŒ1íƒ>ÐÛs8îaBqq1ÒÓÓ±zõjÁ‘#G>2™LWhšî·#lkkëGÖI‡$I899Ù=N7zôhµ@ hìy>¸µµ4MC§Ó½~‡ÈØ#@8|øð½…€¦é¯ÚÚÚ¾={ö¬(-- {öì±y…BDEEaÚ´iÚ‡z(ðn Š¢ (ŠZ0dÈq=ôPî„ g#B³ÙŒ+W®ëÖ­›³sçNíŒ3çr¹‚›ë-—Ë¡×ëo @ww÷»މůL€ ÃÜt¤Sëúշ܆QÛóå³Âh4Âd2 n¥¬qãÆýwذaAO?ýô…+V`âĉJ¥v‰Àl6£®®%%%ؾ};Ö­[ÖÖÖ–JÓôm“MÓœŠŠŠ„®þe‹&“é´=›Û† Æ644¸öœ¤:::påÊ”——?DÓ´Ë`¯×öïßïÿÙgŸ-ëQÿÀŽŽŽ¬ÂÂÂ?%''cçÎHOO·E …˜>}:esæÌñ·Yg€‰ð€ø‘#G&Ïž=žžž3fŒ+++qðàAÞ©S§¾sssËŽŒŒä÷QœÁ`°±sl°ø+ã®ìHÞÌåÃဠã=@€&{Õõ=Ìf3yÂÓ`ÜÅ‹cFõsFFF@nn.Š‹‹¡P(nh—ööv”——£½½/¿ü2ñ /¼OÓt(€•·š|G«Õ>VTTÄÍÎΆF£Ã08uêH’ôæp8–‰'Z8ŽÇd2;vì ***nHD\¯XPPÀ6lØc¾èO›Z7¿ìm‚i4¬]»vר±cwøûûkø|¾hÍš5\µZŽŽ›–D’$¤R)0oÞ<&>>þCkþ‰_EiišNtwwO^¼xñ‚C‡®ÇNðööFFFF×:0 ר{]EØÛW*•°X,f–‚~ƒØÛ³®Z"Þ¯ýòf³¹O÷ ‡‹ÅrÛ¶Ê1cÆä,,lG@@ÀKw+QÔM°Z«Õοxñ"ªªªP\\ ¥R @.—‹±cÇbåÊ•O,^¼ø`eȆ±«wj¸A,ýöé+r‹•x,˽@€d_Øyî´ßKõ)S¦|¿ÿþ=“'O>2hРi……… iW¯^½ÁLÐØØ‡7â½÷Þ[BÓtPçö^‘››’šš 0nÜ8(•J´´´@­VC£Ñ@§ÓÁh4ÚÅ[ ßš›¤çIƒÁ€²²2\½z5¦é1E]ì¯ößáòx<ˆD"888@,ÃÅÅ…ñðð`‚ƒƒ5ÞÞÞ2Ÿý~~~ÿ7gÎݯ1&hšvR«Õ‡«ªªâ>Œ®Gù|>&Nœˆ™3gšf̘1+::úfq­VÂì‰Î8€ƒX ú I’Œ½ˆËvPøk¿¼ÅbqèK3âr¹àñx­wòŒ… êLß·oß¡P˜ìíí-À±cÇn Áºº:p¹\¼ÿþûÄ_|ñ(nH¡P|¤P(  àèè$ ¡PXO’d®V«=S\\L´µµ Öét!‹%D¯×ëõzB­VC.—w;ŸÚ鈸¸¸¿XÞ_´§J¥RÄÇÇ«I’œ½wïÞó÷’ Ð4ÍU(VWW?üøqAVV–­x<¼¼¼0|øpL:õZ@@À Š¢d·P¬\(Âñ»ëXët‹ d)è7F€ŽŽŽ®®®N·°ôüÚ/Ï0Œ¸/ ÇãÁÅÅe@ò,Y²$%))ɃÏçår¹ãÅb1’““mÚ…•4d2x<’““_ë‹išædee-êÜ©†P(Apss«2ã×®]ÛkÉØØX®¯¯ï---ÏŠÅbTVVÚ„S­VãÚµk¨¬¬üMÓÏßîò³7 I’˜4iRmRR’ÿ=F|„\._WSS³êèÑ£¢¬¬,›Ó2ŸÏ‡ÂÃÃ1nܸ¶°°°çìºÕhÍE6nÜØÁçóE ›ÝU«ÕÂb±Hz ¶Áâ>%@@P,•JGu¦íë•F#÷×~y‹Å"èK <>PÏKLLT˜ðÃ?l6Ï.]º;wîìæ$k2™ —ËqâÄ 'š¦ù½ÅAÓh4+d2W«ÕÂd2A("  èÅ_Œ¸Y=²³³Mþ´cÇ|þùçÏz{{Û"([,ÔÔÔ ??Ÿ7dÈGlîöl×ΔˆSï¥ÁŸžž¾º¦¦æ#GŽˆ³³³»%G·F+‰‰1GEE}`=EQšÛ}†ƒƒÃ‰D+‰º Z­FAA&Mš4¿R$wÁ F(H$}†à¶X,Ðëõä¯ýòF£‘Óב=WWW… ö®%%%¹&%%õ' –-[ö§ÐÐЉƒ¾áºJ¥B{{;êëë#{+£±±q­F£AEEàêêŠáÇGßf_ýyñâÅF©TÚm§R¡P€¦i´´´Üöq³Þ4@‘H„ƒ–Ü ƒþôéÓ9r¤eÿþýÖ­['>}ú4´Z-ø|¾-û¢E‹°|ùò}QQQaEý½?äžžžßùúúÞÑ\«ÕZƒî>ù iºš¦ù,åÝe´X,{% ìEIéªj4â6Άޕ¡Õj{}>I’ DBB‚Ý%°‹‹Ë#uuu—ûû|‡ùAAAm#FŒ°ö]§Ó¡¦¦æ{÷æää *++ èèè€R©—ËÅàÁƒóg̘¡¿:$&&2#FŒ8éïïßM@u:ÊËËQ\\<˜¦éq·K€ Ãô í×Âùóç';v¬òĉ;Þ}÷]·ÔÔThµZðx<cÊ”)˜5k{챫±±±Ó£££:ÃË÷aaaßÀÃãÛ$cMZ]]ýMÓîwy¬¿ßÑÑÑØÒÒ"ÏÎÎÌÒÞÝ%À"'''¦¯´ Ã@¡P@£ÑP¿¢ý/Þ^Dç.OÏÞ#XÁ¯««öí·ßèÏó srr²›¦Óh4‚ÏçÛET*Õ'­­­¨¨¨I’‰D …oö§ÎÎÎEEEÝ3¢©© ™™™0 ïÞjY?þ¸#Ã0vM·k qñâÅ!©©©¹gΜùï?þñ «í•Ãá ((Ó¦MÜ9sðÈ#TMœ8ñ)‡3âNZv±ªÃÃÃOúûûß ÔÔÔàСC|ÏÞEòó•Ëå¯Êd2žB¡ëõú—XÚ»‹˜˜˜ÈH$’&//¯>—Á­­­¨®®þÓ¯õâÕÕÕO÷ufÙÅž¾¾½ú* ‡ªª*”––>xâĉ·ûYýŽŽŽv3Ô ¸»»WÚÐåååóÕj5êêêàèèwwwÆl6ëO&Nœ˜ié9aµµµ¡¤¤Óišs‹“ßðÞÈî× @š¦ÝÓÓÓS²²²ŠÖ¯_?rÇŽËå Iþþþ˜>}:æÍ›‡eË–UOœ8ñ7˜¢¨oºÄP=3jÔ(ô ¿ÖØØˆÎ1´ên…Ikllܘ——GîÞ½Àçó}XÚ»‹‰äßaaa½f¢lGô§üäädÿÜQ.‡ššš)---½^wwwG``àå>ìH£8€Ó§O£°°ðôôôú1YÈ9ŽÞÞrÑÛÛƒ!·ç÷íííŸUVV………0àñxJ¥†ÄÄÄ~ ­ºkŒ@ëR¶ººçÏŸ€·o‘ÃìÙÿ¬í/H|üÌÌÌTVVÖüñdz¿úê+¢±± ÃÀÓÓ3fÌÀ¢E‹ðè£ÖM˜0a%Ç £(jë­ž¾¹]Œ=º",,,+::º›L˜L&”––bçÎÒ†††÷ú¹?ýôÓ#UUUË~øáÔÔÔ€ÏçƒÏç{²´÷?Ü•YG¯×¿?lذ·ÓÒÒÈÞHF­V£±±Ñ»AL˜¤Ñh––––.ÔétRƒÁ 0dii)à“O>dzðù|½H$j2dH’P(ÜÓyž³/ïÞ½Û©7 ÇãaРA‹Å?ô¡Á:éõzdddÀÕÕîî={¶mâĉßÞj;%%%I~üñG¾½Ó¸¸8Æl6ïQï°¬¬¬„ÚÚZÔ×׃$Ip8¸¸¸Ü‘…P(lñõõ½áü¯\.GNNfÍš5—¦éÑÉ›z…Ùlíìÿ®ÝN@Ô;$¿ð”””“ü±¯^¯‡»»;Àáp…±cÇ"&&¦ÕÑÑñ[(ŠÒÿõòññIˆ¯(++ã\ºtÉ6!TWWÃËË Û·o5333wìØ±{âyIII³ÛÛÛwüðÃP«Õàr¹V;o9K{wYLLL4yzzž ì–Æ²+t:ÊÊÊÈsçÎÅÙÄf³9§¨¨èÔ… žkllôS©T¢ŽŽŽn'7L&:::H•J%jhh8wîÜK%%%yyyé}…˜jjjJ°jPö •J ©TúMoe >ü°5CÙñãÇqúôi¢µµõëÌÌ̧n£©jjjˆ®¾€ÀõDÙcÇŽ­HLL´ôÐþ>-++#ŠŠŠP^^ƒÁ.— ¡PX‡(svvFÏÀz½UUUHII€›&Qg&ÐÚ·ö–ÀÃï2ùMnkk£¿þúk_…B­V ™L‡ƒ‡~øÃŒcÆŒyÛÑÑÑŸ¢¨ýRäñññ5ƒN˜3glA2, òòòÐÐЀ¯¿þúGš¦ÇÞé³RRRnoo?üóÏ?………(//‡L&ƒX,€l–öî2v’ÈÃñññLÏ´†]—Xeeehjjú—˵Z­«©©Á`€\.Çùóçqüøq8p{÷îÅÞ½{qàÀœ8qP(0 ¨¬¬DGG‡ @¯*GKKË+—/Û_ÝZÓo†„„ÔO›6­×S 'ÅÅÅÅFÄûöíC^^ÑÔÔ´-;;{Í-ÌÐÞgΜÙÜÖÖÖ-Z°ƒƒ–-[†€€€½=„{dAAÁÜ«W¯¢ººÚ– œÇãÏçßÑn:I’vÏp777#++ ³iš~µ¯r ÌްÓìñÈ]ÏÏ …B~ÏÿUUUèèè€N§«®©©Ùw·#Êô†x`ttôîÅ‹#88ØvFØ`0 //ÅÅÅÄ'Ÿ|raÛ¶m ý)Ÿ¦iÎéÓ§?+++ûñäÉ“dZZš››m;óÊÈE–ö~œ>}º"66öh`` zÆž³B&“áÚµk1=##SešŸæí·ß†OWÍ»wïFRRÒ 9ûöí[þk ÜâÅ‹ÿ0bĈªÄÄD„††Ú6 Õj5ŠŠŠpùòeüôÓOIëׯ¿š––v«W}išþSsssÕÙ³g_ÈÍÍÅÑ£G»M¬ý{êfæ!Ö8°vçæÏŸ_^WWG´µµÝ`—Ëå¸téùo7Ö’%KöØ3u***úω'{á x<<==1eÊ£··÷¿oVÖèÑ£MÕÕÕÜòòr0 ™L†£G¢ªª 111«OŸ>ëââò,EQ6àï¿ÿþ±üüüo=Ê1 èJ€Ó¦MÃã?¡P¸ž¢¨–.üÍ›7¥i­­­6{šU‹6™LFõgv§iZ `N}}}¯ÄÕÚÚŠÜÜ\¤¥¥‘Ó§OßEÓô2‡:óÉvµër”Je¯>€§Nâ'&&~BÓôò[=Nv; (JIÓôT×÷íÛ÷öÚµk¹ééé0™LÐjµ¸|ù2jjjø‹-Ú~èСç<6þüÒ_ZèÁ˜‘#G8::z=z—.]B{{;š››! ¡Óé””qöìYㆠ.ÅÆÆ>-•J/S¥µšˆ„ázjˆJ¥2¶¤¤„(//G]]ÒÒÒnH´råJ3€•,åõ˜ùïö²³³ÿñþûï¿qáÂØKBˆ^x™:uê ;u:½6lØ@Êd2ÓÎ; kÀÍ„ùóçãÙgŸ]?räÈ7nVÞ‘#G¾Þ³gÏŠììl”——ÃÉÉÉæêàèèÃÁÁÁÈårµµµîUUUdKK‹$ª««!‰ðÔSOaÁ‚ppp(0®Ë`÷JJJª9p௵µÕšªÓ???$$$à‰'ž¸„ëyRšoƒüH[FãŠU«Váܹs½þÖÍÍ ÁÁÁxñÅáïï@PËçó¿4µ.{÷î}%--Í·¼¼Üî†A2dfÍš…'žxb€åwÓGÓôH‹‹‹§mß¾eeeàñxèš6`É’%Lppð’$—Ïž=»ê—¼¤¤¤P‚ εµµy_¹rÇŽƒL&³å î GGG#..Î(•JI>ŸÏ±æ5nllDkk+är9ÚÚÚÐÑѼ¼<´··Ãd2Aº_¸ÐƒIDAT `þüùÌo¼±Š¢¨OXÊû… ¦i^[[Û•W^y%ìÒ¥K°—è:!!>úh•¯¯ïл)7n¼²eË–aee7&£srrBTT>øàƒ&±X<èVò¨¦§§Kd2YsNN§¾¾r¹J¥Ò–ÿÕh4B¥RÁ`0@ @,Û|þ8ÜÜÜ0mÚ4ÄÇÇ›]\\2 ‚Ø`sWwŒ—_~¹*555P¡P ¾¾Þîâè與z ,¸`ê­&›¢iúÿY½z5ªªªP^Þ÷ahh(¤R)þú׿vóñ¬««Ã¶mÛPUUÕk4p¡PhKÊ.•J1oÞ¼3¯¾úê¤_`üÍðQAAÁðÜÜ\ ©© À$I 11‘ñññIçñx˧OŸ^û ’  €÷I’\ ×ëýrrrˆ‚‚(•JètºnçªÛÛÛa0À0 àââ???‚nÑ|‚€ƒƒ¤R)<<<Yþ EQe,Ýý Ø9G\øðÃIëîeWx{{ãü#æÎûýرcïŠ}fíÚµ{÷ïߟXZZzƒ›†H$Bhh(ž~úiLš4éIŠ¢¶ßj¹Çw±X,›u:ݤææf/…BAÖÖÖ¢¼¼Ö%‰õ}œœ0nÜ8stttÓĉº¹¹eQ »·ˆ K—.­®©© ¨¬¬„Z­†^¯Ã0àr¹H$ð÷÷‡P(ĨQ£jV¬XñÛ)Šª¹¾ñ]»vmVkk«w]]©R© ÓélÂf*±XŒÐÐP899aÕªU@Àe†`®¯¯·¤¥¥qÏŸ?OªT*h4Û;‡Ã““"""ÌNNN>Ÿo$IR)>ûá‡>ú…ÆÀ ³ÙünFF†÷•+WpåÊ›-•Ãá`РAHHH`ÜÝÝSE"Ñã“&Mjü…5Bž‹‹ËT‚ f*•ÊI………ÃŠŠŠÄr¹œhllDss³-·‡ÃŸÏ‡T*…··7$ D"œ»»{¹««ëO Ãü˜˜˜XÈÒܯL€ƒðŸIII/%''£¬¬ì”°°0,[¶ ³gÏþ‡@ xk lD4M»|÷ÝwçŽ?>¼ªªê†Pð<¡¡¡Ö¥Y €ymŸ²nP Ä ƒ|P,‘H¼£¢¢*Ö¬Yc¹[ýõàƒzVUUIÔÜvDf.—ë Ãd2î•ÁÞiï\ÕÞÞþÚ¹sçDÅÅŸzõªÍËãñ0lØ0,Z´Èâìì¼S¯×?½`Á‚{¦þo½õV‡ÃñÐ’••ÕÀpøðaKc÷:8ñÍ7ߌ?~ü8ÊÊʺ"I‘‘‘˜9s&æÏŸÊÙÙy EQŠ;xžÈ`0¬Ü´iÓ†ììl²®®î†äÔÁÁÁˆÇóÏ?•$ÉqE±© ã iÚÀÚÆÆÆg.^¼È---Eqq±ù|>"##±hÑ"½H$Z¯ÑhÖ%&&2l˱x§ÏÀ‰¯¿þzÌÉ“'QRRÒy<BBBèèhó˜1cÞõöö^ß[L<;å“&·µµ­LMMM8uêYUõÿíkpTešÇÿçœ>§/Içj7M%jRfà”!‘1¶˜‚b§!Ά ¢Žƒ5‚S2ŽS®Z¬úaw@)×Y§ôÃTm*U^jÖMÁDÙÁuB ЉM$7©\LÒÝIgHH'ÝéîsλHg;W"‘™túùUêsïSÏyûßÏ{{žNx<žiãÓÝ~ûíp8xúé§ûAøá­î„!œfx±§§ççN§SlooÏýÂ5kÖ ¤¤d@’¤_>øàƒ¿'«‘ηХ8sâĉü“'O¢¥¥eBTdŽã‘‘;ï¼V«5º eggœ™™ù“Ét>‰tè·Z­6EÃÃÃ÷y½ÞbÇó—Ë%vttÀëõâêÕ«S:]¢÷ÏÍÍŽ÷Þ‹Gyä²$IÛn”ƒXôá ÝÝÝ¿¨««“:;;ÑÒÒ‚èQ±víZìØ±£S„==ôÐ_Èj$€ó)p™>mkk[ûÞ{±]]]ÚÇ¢¡ 99yøý~i£èõzdgg#77›6mBqqñII’vϥǗH!´ø—ÎÎÎ_Õ××ëÝn7š››qõêÕ B¸uëÖ#‚ ütçΣd5À›-lFÿ‰D^xÿý÷ MMMhll¢0Y¸L&ÓøÐ‹Ø ›‘H@`Öh#cS••»Ý޲²²þ¬¬¬_ʲü?Tˆéþ ‡‡‡_¹|ùò3===B__¢ó¯UU…ÙlFaaáȪU«ä—^z‰†—Ϋ°-ðÛššš ˆ¦Ž¼vmþyb$IBff&ÒÒÒ°téRlذAÛºuë‚pèfCœ‰ƒÓéL¿xñâ×®][ýõ×_ãƒ>oFIOO‡ÍfcIII¿©©©y‘¬E8_!Ü~\[[û·Ûêt:át:gX;ƒ™™™0›Í0°ÛíØ±cÇÉ»îºkÏ\ TTTüi```ˇ~ˆ þ?˜ ÈÏÏó<ŸY]]MM($€ß/'NœXçõzqìØ±‡>ÿü󴙿©ÆÂó<²²²¢a`2™àp8ØÚµkÞ³gÏzÝÄ\ùä“Oöù|¾7/]º”T]] ŸÏ‡®®®ñ ªû÷ïg›7oÞ"Ëòi² à-E§ÓéÇßjkkSnY8##V«ƒË—/ÇÆß~ê©§ž¥WMÌ…³gÏn©hkk³ž:u n·{|úYtˆ–ÃáP-ËOeYþo²X|£‹‡‡TEyôÑGW¬Zµª÷èÑ£³¶Fs>¬\¹F£&“é(½fâF|úé§É‘HäTww÷†Ó§O£¡¡ªª"99Ë—/ÇwÜY–‘——÷'ÏɲÜBV#ü»±wïÞ¾¨ëׯšššÐÕ5ót×þþ~ˆ¢‹Å‚äääø+½jb¯ï~ŸÏ÷Icc£ôñÇchh)))X±b¬V+rrrPTTÔÄóüs²,ÿ™,FøA¯×r—d·Û‘’’‚¦¦&Ì”ØÜãñ ¡¡/_¼xñbAAÁqzÝÄ4žßÓÓóçÚÚZé³Ï>Cjj*Ö¯_´´4¤¥¥áþûïïMOOÿ5€ò[•4‰ œ«^\Ï›a4ár¹fØÖÖ†ÊÊJ.;;û˜Óé|~ݺuoÒ+'b‰D"•½½½¦/¾ø·Ývî¾ûnð<üüü!»Ýþ"€wæ:“ˆ?øxzX½^ß»™™‰‚‚‚h¶«)0ÆÐÜÜŒ×_»téÒ:Ί[••ˆOB¡Ðö3gÎ@Q”ñ”²,·Úív‹,ËÿEâG¸`0 S2¥¤¤ °°pÆÄŒ1´¶¶âСC¨©©ù™¢(ŸMÎAB$lõ× ±‘ÊÍf³¶fÍšÕ$|$€ ïayþ*ÏO|ä%K–Àh4âž{îAFFÆŒ×vvvâðá說* ƒ³%÷!MÓþ)OÐk±X¾¤¶>À ÇqáÉ™ËòòòP\\ì·Ùl(,,ÄLi8 ··åååxë­·RzzzþXWWWîr¹ T V7ºÝî i’$"Ë.TB“=À”””¶çŸ>¥¤¤dWQQ‘úÀ //oJ’ï(ƒƒƒøè£pðàAœ;wnïððp“ËåZME!ñ`Œå|ûí·ö%''We‡¸êà8.4ÙEñ+àz M—Ëu,77÷lNNÎ}W®\AMM <Ï”è2¡P.\@gg'JJJr6oÞÜpþüù“z½þßeYvR±H¤ØAõÇa÷îÝ}dÀ…Jx²àDtE–å‡ËåZéõzÿXXX¸ªººÕÕÕœ2f°¯¯ï¼ó¾üòKn×®]Ûsss·Ÿ?¾F¯×ÿN–eŠþ»ø=@)šÁ/*€ àBftr!UÅ=ù$Y–[\.—Ýf³ýÌápÙJÅdÑ"Î4“ˆ \ˆLiÔ4í†ãµÆ&®pÐårå.[¶ìöeË–YD—.ÿ+Ër/‰Äª“’Æ»ø¬Že~£ìoy€DÜ ƒÁ4m€”˜†¸éâ4i„µ’.ðžä*ŠBS–ˆùTƒÉ$€ñ+€AH$l˜ H ò b ÔHH ‘h c >ŸŠBA`HÉ$ŒÑÑQhš†@ @ÿ®$€ä‰Et>pì´8‚<@"!ˆV}© LH ‘pD=?ÀÄ#î‘H¼ñÆüØŸ÷¼–ÑÑQ)V© Lwà’%K6?~|cŒcŒñÓ}âú”§ñ}±Û¦œ³o±é>cÏ™æºÉçÎv,º=Û± ÷™îœöMøÎöó7¸ï ï5—kçpüFßó½U®\¹ÆØxœHòIãÎìéé©ðz½ô&‰q¢ƒ›cLÞÝfŒÅz€Ô¾B_`´ðÎVÀ£Ÿße_ì ïz™~|s¹ï\î=Û3Lwî®éØ\Ï¿ÙãßåºÙÖ§Ûž+Á`p¼ QdÀ¸ð£^ c çΣ·H̋ɚ àBEÑétX¹råŒUŸ¹zyó=v+ïý}~/ý¨ç.€ä&Ôæ‘¼òÊ+’(ŠéŠ¢¤hšfâ8.UÓ´$)š¦™cIŒ1#c̤iš€‘1f[ôš¦éccLÏÓiš&1Ætcûtš¦éƶuŒ1AÓ41&0Æø±u~líŒÒ4cŒqÑÏèúßÓ6ýýýp:¯'´Ùl¬»»›†Ä?ŽmÛ¶ $âØçäeò~#€Ì˜å¶è:ÏóKXc©Œ1aòwõöö⫯¾X­Væv»II bQ «yLe“Éôó`0ø£ŽŽ477ŒF#ü~?ý&™€Hªªª$UUŒD";ü~ÿú†††Ü®®®h,×{„u:]Ž¢(d1@‚ˆ[*++ w‡Ãa[(2µ··óŒ1´¶¶bppªªN@زeK{qqñ”û‰¢ÈDQ I’tMÅ.ƒÁp¨¬¬ì8YšªÀ± x÷Ýw/û|>{쾸Ýnôõõ! ¢¿¿mmm…¦¦•ÎÏÏÇöíÛa0fþáp¬Vë¹Çü>²8y€±p µN×Éó¼]UUttt ±±~¿Á`¡Páð̹´êêêP__£Ñ³ÙŒôôtdgg£  ©©©ãÈóüY› =öØÖªªªäp8ü‚(Š»ƒÁà’$‰‘H„ ‡ÃˆD"P…SÑEÓ4‚N7¾ˆ¢È$IÂØ¢™Íæ‹ÅÒi0þ Šâ›¥¥¥ÃdmªDÜRUUeÑ4ÍÎËæ8®›çùÆÒÒRY† ‚  G]‰DžTU5GUÕ¥ªªf(Š’¬ªª^UU Š !N7,ÂUA<‚ ´I’T¾sçN'Y âŽ#GŽìñù|åÁ`P¼™¹ÑÇÁh4F,˾²²²wÉ¢‹ê!=Á`ðÙ@ F·=:::044„@ €@ 0žÎ`0 )) f³©©©X±bÒÓÓÄ`0ø,@ò "¾¨¬¬|idddKK‹åôéÓºP(Û# UUÁóü”^àÌÌL<ñÄ¤ß=üðï‘%I bQPUU•¬iÚ5M[§iZÏó<Ï;yž¯.-- ’…‚ ò b1òꫯþ[__ß3ƒƒƒiiiiƒV«õ7/¿üòa² A,j^{íµgjjjÞŽ-ŠŠŠ~ràÀß“…?ü‘HX¼^ïÁp8Œîînôõõ! AUUôöö¾IÖI h ‘°tuuýóÙ³gÏÄz€«W¯ÆÆe²U bÑc³ÙR6mÚô¶ßïßf³ÙŽ”——ï'«AAAAAAAAGü@“ÀPqSÈIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/new.png000644 001750 001750 00000017303 11617757645 021404 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞŠIDATxœÍ›Y¬mÉy×Uµæµöp†;õè¶¸íØŽ“8&ƒˆ(y@ ©Kªª$ÏsÒT²ZQ9JAðyÙ¥$ÞY‚w¨$#Õ=IšS5kÀ!Bàÿå¯â|à_üÓŸf½^ñàÁ ÿæ×‹_û·ÿ‘;wï}Ê9ÿO¦iú$ ŸÂO  ”üpžçðþ÷½œ\¿~%=uUÐÔ%«õ!EQeE‘‘*¨ê‚ÃêžzqB¦J)T’á&‹› yÙ „ ID`2#R ò¼$Qвª NƒH!8<ºÁ¾üMþÑ?þ~îg~š¿ø#fszïFªfÍg?û~þ~…Ïüágïkã~Á9÷ËÀ'¬/?½©„à{ŽŽ>öwòo^}Ç‹ÏBÔ‹Á¬Êúˆ<¯† cwN’fTõyQ!Tõ ©$RŠ,+H³ kz‚3¤i÷†®Ý²ï mgH”àÆ3ÏÒT)Õâ˜ðS?ËjÑðs?ûSè~Ë~÷€²ZàlKÛi~û£¿Ã¯þÚoóÚÍ;¿ã½ÿYçܧÞ`¡W€Ø?Éæ Ì4y½Ýn°æ˜¦®iªœ$mpf ¯*Êr…”‚n7 Ö×Èò’<+B’¤)EÕ¨•$óÿ Eƒ5ˆ€ÕEu…¢\2tç, švÇÝ»'|ñK_åãŸø]ÚÞðàtÇï}ú3üÒ/þs‹Ê¢ ¨úv=ËKš¦â'ÿö_çƒï¿ü+¿ñW>ó‡_ø`Ûu¿àœû%àî#›{uöù¤0PÑÄ"IÔO|ß÷~÷Ñ{¾ó;¸~í 7n\cÑ”¬W ®]ÃÃ#iY.W¬×‡4uÄ’(O’HŠ¢äàð’D‚CG^Ô(©°ºC)E’äÑ Á#UÁ‘¥_|Ï?w£Gþýo|”®×üÑçÿ˜O}ú÷¹uë6yѰ>8¤(2”„4«ÑcÇóÏ?Ï~ÿû8>>¬^yíÞ_Þnwšü Pnf^ï·a6¹Rêo|øû>xý½/¿›ãã#ª2A2‘&м¨PJ ¤$ÍJ¼·˜±%Is²¼¢lÞ1[ÚÝ£†î=î™&ƒ[Bðdys–n²€Ä9ƒ#¯¾z›ÛwNùñû‹( ü¥/ó‰ÿöi~ó·>Ê'>ñ»|õkF×÷EI³XP uSñ÷½‹|ÿ‡èûñ¯½vë¯NÎ%!0 ⇉X*¿­ªù1M”ü‰ïzßw>÷®—ž#KCšU$i÷ç'Üd°c‹wŽ À‡”)nñÞAï,R&YVRÕGxo±fÀê=쨛#|°,WWÑfâcÿïÿ˼û/pãú5¾óÝÏóò{ÞÉÁÁŠÓ³3þèó_á¿|üÓ|ìãŸä³Ÿû"wîÞerg)/½ø?þ£?Âáá²úüç¿ü—†A_Äÿg0od€ 0…tßu3â\E³|ÑU4+û-B*ªú€É œ=ø.3$INU0;BkFÖGσ3väÅ‚fyï'†nCš•¨$g{v“,¯8¾ù­[¼ë/ò]ï}f‚$QˆàGM×ìÚÓ“3nÞºÍk7ïð•¯}ƒ?øïŸ#I^xþ9>ø÷òÃ?ô~è¾—Ï|ä»ÕøØ§~8ˆIð x„û~@È„¼Z¡TJ^-Èò=¶ôûªæÉj„”•5fìBbíHš—LVã&C»»OV4è±E%)YÑ „DÊÞY”J)ªûýc'þÂG>D³8F% E¦(Š‚óÓÛlÏïcÝýâ3|ðƒàþýÛœœœ²Ýܼu×nÞæ?ìüÆoþ'®]»‚æ°¼ ¼ô`°. DŠ›&œŸP2ÁYƒŸ iZbÆ)ýþ”4«¨š#ôز?¿ÍdÒ¼FT iV"UJš•4Ë+ôÝ9ÞMøàH²?Y–‡Ç¸IÓµ=/¾pƒºY0K–8RH”çàà€õz1#F´1<÷Ì1ÚÚ®çîíרlwœoöÜ»w­;÷ùÆ7¾‰Â{n÷ÞÈ9@&‰úkÏ?÷Ì~àˆÕzE‘'èaCמbtOY­Á“f%Us„Ñ{T’¡TBå5iVâœÁêð¤Yо;ÅOý˜”Ó4Gª%E‘£¤¢ªò,¡,ÑÓ„ÀO†zyÁPä)«õ!«Õ‚2ƒõªáèpÅÕ+G¼ðÂó¼üž—Y4yøò—ÿÔÙÉyà%à=DP´#rˆËjð¨tZkºvá˜Åú:xËÐmðÎ2;„(•¡]Kš•€ Í+–iN’tÛ{Ý¡‡=FwH™RTK‚äeƒwެh˜Ì€•d$iÁ8ìð^¤)GšfÔ‹#T’Ñw&;Îp¹Àš«[ÊzÍb¹¤Y,ÐcÏÐ晴’(~ýß}Twƒþà³³û¿ƒH¥¿ |8¦ „Â^kK–nÑCK’"º¬Ÿ(«|pxg$ 2I1cËО”,Ö788~‘qØÓ÷ç@@È7Åê „ Y]£lÀ~sÁ —¥@Š =¶èa‡4-û-E¹"Ëk†öœÖ°X]Å螺Y±>¼J2¤„o½r3Ø)èy‘¯Îçé¼óÈçÓ]²A)ÔN±v[s¾Ûe YV‘æ5vì0&&;'Ò!câ‹ÏU#B¡û-i^±ÛÜe6äÅ‚"«ð~ï±v„}{J½8@%%盽 Öû ½ð©4ÁÁZ;YëT^­*Ã{GY¯B‚X;’å5!x¼óïq“E»9A²¼Fª”É $Y” <ÞMôí iV‘e5Jeôí9R%x™¡RI’£Ç›“–¼\’— ªÅÞ{6§¯"€iŠp;†‰Dª„$ÍÑí-mÛ3à"Û?Q»4€@ ÎyÓw»ÜM«ƒg£zã¦Xž„ŒPÖ;’$áÐcäWn¼k¤JPiŽãÅ{?áœ!Íjªæˆ²Z19K–×ìÎo‚ª9¢(—dY ë'’´¤ª(›C¤L8½÷çVw8gqÎ’¦i^‘ IZ U‚”’ º®‡˜õ/ ðD¸L‚>øÎ9§Ç±ä§‰L¥9esQóâ!I òr‰” £;Šj‰wï,esÈО’å5õâ J%¬_ ¬Úí½KPT” „T¤y…sB&Õ £{öÛ»Ýqtí]4«k䳚”Ì2V‚Œà=Vw?1Œ†®<±b|kzçü+ÊzÍîü6«õ’*ÉèÛ3Ò<Æ]š×8«ÙínE·M2R•bÍBàÜ„v,ž!ÚsÆqG^,°º'ÍJ¬¢'©œý&æƒzy…4«°¦ÇM1¨ágR&UJ½8Â;K·€5#ç'¯f%u…Ùãk/qÿÁ]6›åax:!;„¼=´¡ÎK¡T†› ÉìÖÞÅLwn” kŒnÉ‹Išã&;ƒ“=vTÍAT„H!©š#úö•ddEƒ³ï&’¬ M#¥ÎІ$ÍAD8nÍ€wËÃçRqûÕÏ“$fìP*#xÇF ÎNOèz}Qû/Jà ð0¼s½1)S‚íék´»ŒÝk²¼bèNÙïˆÏ¥T8k(ª5!øyQ5C·`yø Eµ¢(—ÝþÝï(Ê€› 9óI^.ó¢•Jñ“¥ÝÞe{úZ$P2áðú»)Ê5 ¢Á!„曳3Æq4Ä$èx=x309çûÝö DÂúð¡‹¹ I &gI³:¢µ´ˆ»¨R¤Jæt íÎYò²!+D ývÎÔy3{’æÈ¹ºTÍY±@Êcz²¼ŽðXH¤T¡8¸òiVáƒc²šÃ+/á&Íd•‘— ¬è†cì œx‹žá#@ÈOÁûaòм\!•X¾É‹³@`ìwH©"ª#ÄÒçY^cMŸË`ðžzq„÷ôí9y¹À9‹’Åê:íöþ¥<– &ÉÉócäL¶ŒîB`tªæˆ,¯1ºe²#õâ˜ÅúAQ.£Ì&=]7Bgx>Ù‡z5]· íöï\üb;;e½¾¬Ûi«îHóê²J(• ¥Bëž,kX?Ãd2!éÛ3̸gì6dE ï,C¿ah£Šœd%õâøRQòÞ1ö†~ƒwQˆú-y±ˆaâºßâ=<89ƒ˜5ÐG«€“RŽ}·Çjó£;ª:bxï,UbçHÒäRÖ颸¡’‡™Û˜žàÖô!⎎]\X^£T BÄú?M¤YÑ}{Ùe’"e9†ˆ=EkG©Iš83’f%ÚŒÜpraË[T€Ç 0½1–aØ =æÀ5@ ¤$QzhI³ B$5Je„0¡Ç=iV|ú“¼ÉêT’a†–ýþ>iÑa°>Ƽn/Ëœ›¥2!ä%Èr“‰•G%”ÕŠ²9bì·såp87¡’œ4/èû–óómà! ~ËxÔZ;9¤Ê1zàÁ¯‘YV¡‡)%ÝþÁ%O’czʼ™µ¾ALlÙ,ŠôíÉ¥œU7G1Ê”à'ÆaKÕÑ,¯€ì7wH|>+ÆÓ4â\ÜDIdƒÖ¼i¶TTõ!Ó4â±ôí9ûý†íf iðÛò|gãÐÓíðì—©ššÝÙMêåÕB@`vYq}Þ`uÇ4™ˆàÆÈØ’$cöH)£»'±ZdyM·?»Æ9R*vç·™&ƒRÉ%ßp>VžÅzZŒnIÒŒnB޼X¢’„ÁNΆ *ðÖÅyŸHA‡¹=V‘—ËËçzlc™[#„dì·H’ØÉ1ºÅ9Kßž!L“‰ßEì:gEg ‚"óË‹yµˆ¡R4WA^ÔQ C¼£oOÉ‹%vJ ÞÄ$xQßôx}€!¬Ö#BHœ‹Ä£(—‡+†öŒqØ]ÆuY¯™& !°=»ÉÕgß‹÷S\ôwt±¾ÎÐoâT˜J13*ôÞã&L ²¬¢kO£¸:ç4/º J*«;üœÓ¬dºÐ&3‡dʃÓKüÄy€·0€èñÞ:/æ‚0Ó£Ç=B)ÊrÅØo£’£ò4“_Iû‡Äò•ͽ¡Û‚£ªRø)Á)KQ./Ñ`Y¯1c‡w«cG[둲š9Hpè~G·;!ÍJ’$Ç9KU¯p.prrza€·CßÐRÊÞygúnËÍØÒ3™fÊk‰ˆ‘‹‡(ªy¹ÄM±Õ·g@ øÀ8ìH’Œ®=„jq„”Š$äX3Æ8Ï1Q.Á¹‰óßD]¿©£ðbüd1³.˜¤ylÃç °V³ox(ðÛ=@0 Äè¼ÇŽ=ÖÆnM^-™Ì€ !%n²Q—¿äë2*F~ŠnbšF’$ÂZëÝ%­µv (WLV3öòjEQ.Øßbyð R*šå5̸¿Ô̸g²£;ë롘&M–W3 Ó ¡rvÛ=Äi‹2øö<!´ÂhmIóš¢Z¡”ºdt³©RJ’´$Msô /ä³¼lÈ|9™ ÞMårî‘-&)E½f²¥2ªæ¾=EÊtSjB‘æ†XÍ„”X=— ò¼föQ2·»í)Ýh/<à‚ ¿=ð>L‰Jõäi^ã£ÝÞ'Ëc÷&Í$„¨ ÇJ°`¿¹Cðî’»O“fè64««H•°:x=‹Á;ºý Ö ”õ!õâ8¢É … ¬év÷1:ÎÄdµ€$‹`•Gþ!°è~KY-°.a·=´#ôöC „àBð£6Vô­§*cÿ¯\EÝ_¥ì7w¹ùçÿ“ÅúEµ¦¬—„PI”Ðе§x7á›$souøzØGoÉ ”ð8/¨$‹%tö”±ßF5xy…WãCÀM±ÏYÔqíöUsDRàœ¥ÝÞ#Í+žyñCQKð. šó$G^43hév÷aví¬h*aì7,Ö×±vdsú*Us„U=Y± &kȲ*ÊtYÅ =&6).:Bo ƒ¿Í€ï‡ñ¾Öz–»ÁNï~4¯(ÊØ5JB[Õz +cSÔOã°›+AT*"9•"„`¿½³šzyLY_§ßŸR5‡8g±fœ½`Ëàâ öH!Y¬n0M#zlÉŠ&bŽý BÒ´À˜1¼òê+RXO¬oYßÈLn:5Ö1M–$+@V‡Ïâ½'zŒúÂ}'Û\BFLf%IVbtG–• í9ˆˆçãh½æNP‰ôžª9¼œ#.ÊEÕ齯ϲÛ0w“Îfˆ-ÈÊ%I’E\â·^»=͸(ƒÿ[@ðáÄNŽ¢^#e¥gâxFw(™eõÜý-©š—º3@^¶®ÃüSU±©áaf„>8vg7I‹š*ÉH’Œª9&ÍK"6= 3é —2[·?ÅÚ1ê‹Ú0YÉØwáÎÝ›Øå°‹{‰Þòx¼ t“óXÑžsR¥„ÞcLG¿?e¿½OÀ“¤Õâ BHÒ¼AQ”R²?¿ƒ[úîŒ,¯çY`–È…”رE;Ò¼Dà1ã3n0ÆÃãç88¼Ž’g¶äYÊz} n ßÝFŠ€”pÿä,ܽw"‰ÃÏÏ/ïXñúÛëÞÜ€p~¾áì윗^|ŽÉ|Ç_‹²AkAY.2Îÿhc¼ÑÆk=z­µ3ֺɺiš¦irn áœ\œ“€)<äJóB0˜„&„`ç¸G?÷Àuâí2÷‰³\àâ¦J_ü…àˆØz 8ôÞŸ|þ‹_Éæ/x8os1uõè_¸×ôØ£}ì¼@fCŠ>Šd ÂC7½¸Pøõ4B¸`x×pñúÙyÑß Þ"s—‡Ýá'Þ-raCœ¤<#ÿ 1q,y˜Q·<_æ{ýFç£ïOoñÞãFxôs?N¼^ó{ÿüüÄ{†Îç zj(ìyXöÄ8ª‰³¶¯çØ_ÈÅBÂcof¨G]Ó?ö·¾ÿº¡Æ'ü^ï8Ï Aä©î#~Ôôq|(‰ñt®ßÁðØë‹ ä±×/žòâžòÀMââžR |ôßèwW‚‡!ðTîôÿèH€‰×ØÏçø´ü¿uÁT´«ða¨IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/cut.png000644 001750 001750 00000020133 11617757645 021401 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ 641­ÛIDATxÚí›i¬mgyß=žsî9÷úN€mlƒñ@lc'PhpI+µ"R¥8TdøB*Ò’(•¢J‘Ò ’"„D@¨"$(!‰‚(©â‡KÀ¦±›Ø3Øf°¯ï|Ï´§5¿S?ìµvŽ/6S ê‡.ië {Zïÿ}†ÿóžÚëÌ™3ü¿v¹®‹ã8?Ôï?ŒûB  ¢¨_UÕØ ö€Àó< „Àq„¸®KdY†”ò‡€÷ý¼ÉqœCŽã\eŒÙtç„ã8×ÇÇÙ Ãðª$IÖ“$IG£‘³¾¾î. ç‰'žpçóù7­µ¿d­ý àâøñã&Â0$Žc}ôQñÆ7¾Ñ¾üå/³½½ã8ììì`ŒAkýÃàäÉ“7gY¶Þ4ÍX)5Ž¢èˆïûG}ß?Á0ŽãCiš®%IÒã¸E‘;ˆã˜Á`À`0 ŽcÂ0Äu]Â0$IÂ0ä7~ã7øË¿üKûØc]ó®w½ë÷Ïž=ûNàƒ¿þë¿n\×e0àyŽãðè£òs?÷sœ>}šÏþó¼ímoã–[ná}ï{Ÿýìg0Æ`­ýº@EÑÎë^÷º~¯×c<³¹¹Iš¦$IBš¦ÔuM¯×Ãó<‚ @kã8ø¾ã8cB¬0yä‘G˜N§¼å-oagg!„}ûÛß.|ðÁ7MóÖ{ï½w·®k|ßçÍo~³ØO|âúƒü ÆÞóž÷0ØÙÙáOþäOøèG?Ê¥K—ÐZ£”úY€ñ}ÿü«_ýêë·¶¶Ç4MÃp8ÄZKQôû}<Ï£×ëáûþêa­EJI¯×£i¦Ó)_ÿú×yòÉ'Bpï½÷òðﬢ®kñÞ÷¾—|ð§~ë·~ëÕ÷Üsϯ=ðÀ¿/„ئu]ç§OŸæïx›››ìííáû>¿ø‹¿ÈwÜÁ>ð~øa¬µÿh—è,Àñ}ÿoÞõ®wÝqË-·¬Lr8’eUUa­%Iúý>UU­v¾iâ8ÆC]×dYF–e¼ûÝïæK_úãñ˜×¼æ5¼á oàèÑ£¬­­—/_æïxŸúÔ§>Z×õ/·ŸòŸýÙŸÕï|ç;)Š‚ù|¾²*)%yžsß}÷qï½÷rîܹTlpÛèk1ÿúî»ï¾úèÑ£DQDcPJ!¥ÄZ»ú_QXkQJáû>³Ù )åÊMÇÁq¾ô¥/ñÆ7¾‘C‡±··ÇÇ>ö1~çw~‡û￟ÙlƱcÇøéŸþi{×]wÝxß}÷ý¼RªþPýʯüйùæ› Ã(ŠR¢µFkMEÜvÛmÜpà L§S¶··QJ}_q¡àM¯zÕ«®¿úê«Y___í¨ã8ôz=²,£ª*’$Ak”’Á`@UUlnnâûþ œ$IøÂ¾ÀË^ö2Nœ8ÁM7ÝÄK^òn½õVn¹å<ÏãÑGåOÿôOùøÇ?.꺶MÓÄ—.]’À)`òøã›|óçÏEãñ˜(Šp‡ ¨ªŠãÇsûí·³±±ÁÙ³g™ÍfßB̵Ö!‚à`Êc±X0¹pá»»»ÄqŒçy+«(Š)%A¦)UUqâÄ ¢(Âu]’$ammme¾wÜqyžóôÓOsùòe¾ñoˆýý}€kNŸöØc|æ3Ÿ! C^ô¢qóÍ7së­·rã7²¹¹I9r„{Ûo¿øÃœ:uв,1Æ|÷ÐðºÛn»íÎ[n¹…4MY,+â8^EøÁ`@Y–L&\×]áº.ZëÕ‚»×§iÊúúúê9ÇqH’„ñxÌ‘#GØÚÚâ¶ÛnckkË<ðÀßràÏ<óL¸X,ößò–·Ôãñ˜ýý}¾øÅ/rêÔ)N:Åc=¶ÊApòäI^ÿú׳¶¶Æ¿øEʲüž‰Ðn–eEÖš0 ˆ¢­5žçÇ1“É„ 8~ü8³Ù !Qáû>ãñ˜8ŽÙÛÛ[¥Ë<Ï9wîŽãPUišRÅŠ3\sÍ5ÄqÌ3ÏŽãPƒÁ€º®q¥UU±X,ØÚÚb2™àp8ßf(Ø£G¢µæäÉ“ÜtÓMloo³»»Ëb±Xrÿý÷ó‰O|‚­­­Õý~OXk§‹Åbå?žç±¶¶FžçDQ„µve ÖZÂ0Äó–oï"pY–«×4MC¯×[1ú®ÙÛÛ[Y‹ã8¬¯¯#„Àó<¶··&@õð×¾ïE/ùË7½éM^ ˆÛ=¢(¤Ô#­ut9PM§Ó¨:ð¾ééÌz:®YUA¬¢}Ó4¸®‹1† ˜Ífh­én|±XÐëõB µf4!„ Ïsò<ǃïû¤iJY–<þøãª-ž®¿óÎ;=`øÞá 6ß? Ã`3Šâ5!X;sö¡ªªö±ÿø+àéÖ‚öÚ¢Ë~/Y`Q–%Ãáp•ç;¶§”"æóùjaQaŒ¡×ë­òpg-_ßÛÛcoo²,ÑZsáÂÒ\çó9óÙœl‘QÕJI.^<\ÝKþM¿?¸gÐïƒÁÀãÀß_ôÏ2®Ó®qß_ÜÏ+o¾Ž›nºéª÷üöïþóÝËÀß´VôB»ß?û|1`ÞÀ8Žñ}!RJ<Ï£®kÂ0\.ú\¼x?÷9&“}.]ºLU•äyI^d(Ùà8–8ŠH’ˆ~¿ÏúúG¶ô®>BzŒF¤I,¡×ý Âq=\G Uë--NËŠ´¿fWˆí]ö÷§üÇÿðk\{Í‹yÅË_ºñŸó}¿úÅÇ¿z—Rú—>ò‘|á­o}ë*“¸ì·ÖZíº®;ŸÏíáÇ…k-ÆʲüPÂ0$Ë2î»ï/ø»¿ýn|ùu>”0l2Hâ˜$éøaèa­Æ.žâË"Y—„qŠçù8B`­B«Ïpp¢×1¾+m烿÷1^ûÚWsíK¯gºw›n¼VüÁï¾ÛþöûïÇþìÏO}êg~æÍÿ ì·ÖpðŠy f<Çf@]UU$¥têºF)µÚíÁ`°¢£qç9žç1 ¸îÚñcwÞD'ôúdãù.ioÙdTù>a2"ŽzG'½Ä°A¸Œªj §”<Ûc6›qþÂEÎ_¸ B Ü'9uêÓüÁ‡?@/M¨Ë)5®0âWùçíÝ?þêÿú¡?þíÏ=ôèO4²ù/Àç¬q ¸|÷ <£Ñèßß}÷Ýñ`0]Ó MÓEJ©•ùA€‚'žx‚ çÏðŠ_Æ‘#›lÚ`4ìqôøÕŒÇÒÈåÐæ&£á€Ð3$qÀx¼ÆÖá“xžÀw—¾-¬BCœ Cà‡ø¾KÀ`0`{g—ß|×ûxöÌΜ=Çd:ãÈU'Ù8´Žç‚ã„bsc`_ûšÛœÑK¿üÄÓÿ²,JøÛv‰·g[았õõõ·¿þõ¯O>ìôz½UŠëR^—ÇY•·®ëòÕ¯~•óçÎpç«nåÈÖ&Qh |$íã{.AYç„qJÚ_ÃE‘í"e”E¶”%u¹À…$(UcµF |ËÎåËÂm?r#/>yŒo¸†;n»‘ÇŽ2™ÎxèóògþWœzà!¾úÕ¯±»;ãÈ‘-ûSÿê_ˆííëž|êéÛ¬åt @ ¨+Ó J©Bk-¶··9tèZëUE†áª,Îó|¥-‹%Ó+K´6Ñ€´¿öM‰’%Q2\´bÆ4Ÿà›˜ LqðPM m[— z£Ã8Â!›mPd{ô‡8sö<7Üp ÇÇ%CŠlÂþÞe~ì®[˜Íkž}ö4§Ïœã›OŸá‘¿}Ù4âØ±#ÖÁ‹¸ìzË5öžW­ªjÒQÖýýýûs]wUtBHUUE±ŠÚ„`­iÓ˜‹´@‡b±‹$„QŸÙÞY”¬ðÃá„ã€pˆÓJÖ¨¦D¸‡áúq”¬®»î¥Xm‰B8Žô69thª*(ËŠ—ßðŠJ³½½Í… çÙÞÙçÙ3ùÚןîÀ/N?/ƘÌZëh­íÉ“'E§Äv¾ŸçùŠÖv:AÓ4ŒF#´RxA‚ôhªœÅt¹ƒi „`¸~‚|~™¤·†5×ÁZÊbŠÑ’Áø(ª0Z®8‹EØ„ LÙ<´RÏð\AÆHYSs†£C„Á>AÔ<6×S^tâ‹EA£„8{î‚}Ç;ß«w'óuàßµ±à“À7ò¤”Õb±`>Ÿ‹ÙlF¯×c6›Ñ4 yž¯ ¡.5ÎçsÖ×ׇh­É¬=J:8„ãz­Pª!Sš:#{X=ÇÅhI™Oñƒ%²Ù6QÜÇõ„p “ž„ M•ã8à>ްXkÚÜGÊk5žSåSÂdÈh¼F¿ßgkÓàG=¶67 £¸†ù)à‘¶q5<Ǥ”¹”’ÑhDUU«w])%Æ\×])3]ݰ¬÷ e>¡,3³m|? î­#ë|éŽ‹ëø”å -kòlAL¤(]Q• ’þú2kXM$4uŽRžâ¸.®PsŠl£%A£Tƒpü &_ìâû!io× ð<—8íS5².ß.´„¨qAcÌ¢®kš¦AJIÇEïû+Q²+‰çó9u]c­mÓ¥^W3ª©ˆâQ< *çh-ÑJãºÙl›ùü2JÖkвÁMœ ©òÓÝ3¸žOÒã £>ZIš¦" {cÈÛìm?M]-˜î,k`»-¹/;ÀÂ;àÿ!æUU†KV¶X,p]—ù|Nš¦„a¸R„]×EÁd2A.‹ù>JÖXkЪ!nà{U9'ŒúX,6“g»¸"ÀZM p=á8ÇÅÚPwóù6AÜC• e9E¸q¸†ë‡xއ “Ýgð‚˜ Hðü€ HñÃ¥Ui­ð<Ál>Ç[‹¶J¬;"ä\À¬3ý8Ž ‚)åÊü»Ú 4¬µÔuÍl6CiC#-U9G8.®ÒlQ³ˆ1M‰±†Þ`“(îD=ÏáÆ}Ç%I×°Z1Ÿ\@©£aÜGÉ× H’1¾‚$½5Fë' Ã>Z54UÆ|zb±OÓäa‚çG\ºtcL§È*†ð<¯¨ªŠ^¯GUUÏéþ ‹ÅJñB0±Ö.’ç¡´@8U>Ũšùäƒáa”nPºÁóBÀRs¬QQŠçDñYçÄÃ-òù M¹ ŒU9ÇXòÅžF}ª|JÚ?Äö…'ü°‡1-—`c±?™c¬ÉÚÝ׫Âçôž…EžçÏ7F£MÓðÔSO­”ßÁ`Àææ&UU­*Cß󨪆(cDIi†Vã¸>¾.+K¥hê¥ì&0 eÆá`­¡Èöp]?ˆÉæ»èÖ­ŒY~VYLÈ;¸~DÜ3\?†çÇ(Y¡›zi^ˆïGTÅœÙl޵v~€çï{ž·˜ÏçEã8DQ´ t]Àó¼•Ê;;;ø¾ç,æûh¥ˆâÆÒþJ6h%q¼Ç±£Ž.Ó¤ÑK‰ÂÏq]ŸÁÚ1âdDYÎMIUÎoœ ×?„l Œ1$é:AÔ#JäÙ>M¾ØÁq]¢xHÚ?Ô¦Sðƒ²RXk'­ï¿0Óét¯óÿ.vš~Ç;~Ðqâĉ¥Rì7k™M/qäØKQJ"\W„` y¾‡Ö ¡jÏG·¤'ÇqR®ZeMÓ<§*4ư»»KÓ4$iŠÅ¥©‹¥œ«%ÂY¦?× q—0´¦¬¨Ë9Q2j]Á¥Ì'Ëf§Qh£ðƒm4XCõ–Vä8øþ’8EñÚéÕ” ÖŽâygŸù;|?ƃêºbo2UÖÚ²-€žÀ•ó'3¥ÔsúûBööö–&¦=z”0 ÑZ“ç9J)ÖÖÖèõzEçETå‚ÉîYÊl,EŽùìMµXº”„ñk4~S— Ÿ/]&ˉÒ5ú£®£1Vã`ÐJFËà„ ²Îq\Y—ô†›HYQå3\?À "áU˨¨‘K.Ke%+|?Fk…Q At­*êbÆ¡Ã×rùÂDQŸ0°¿¿G]7ÍwÀiËÄ£{{{|ààú믧,ËUP–%yžw­o繪ªJÖuÝh­)eòÿìuƒ,›³±Ö£¿¶l \ÇÈe:¥e„Io!@ƒëúh£‰¢&P”Å!š:§Ê&àŒÑ4UFÓ”¸®Ç`| £jÕP—s¬5«BMÚßÀq}tSÒH(«ªn[nÍ àCÀ•RþïOúÓöÓŸþô¤Ó ÛGÙ~€l‘”íß Ð8®û†<›ý¤l*[×…ãºÖ‹ÐJâzÆh\oÉôêr†ëGDá’РªhUcµÂ ASåøQŠïGXX²:×§®3Šl0JñÃdH­¥©óe•éùaº´°0a:»@ž—u{ŸêJe¸ iyòøÃ–1íµ4Ü)ªêÀO (GˆAÝÈŸlê‚2ßGÉc8®‡5«ÕRM®‹ …P •ª[ª—– @,©²ë²`-Âq‰’áRhõ–šCU̲ZV†~„Ä4u¾:[À–ùlJUUE»‰òÛÅéyžTJÝ×¾°Ë›žn¾üå/ÛŽ/kA’$Üxã竲´RÖX+˜ìžf0:‚VcÔÒD— LQM‰R ~Q—®çSd„€8Ólb´¤© ŒV$éh¥XÀÚ¥N˜ö7uR5³Ý³4MFœ®Dé2°º!J ¤TÙóÑào ‚ÖZ¶¶¶NÿÂ/ü¯|å+ÙÜÜd8®Zc] ‚Çq(Ë’0 ©ª ¥ÔnU78n ¼ "Š”Å%’t ÏA,“NœŽ©ÊùRéq]”l£× ˜îža¼ùbÇ©À«Xà8^›Ušå.k½,ƒÃ ëX-™ïŸÇóB¬5L§sš¦É[þ–©ªoÃ<¸»Ý$H×(í ]÷8MÓUfrcJ6B6•®çðñ›HûX ª© üYgdÓK£Ðºkq\‡8£UÃxãž¶ã=´Q¸n@t„Áø*¢¨O’®/ˆq?ZZV].ˆ’A+³ &³TåØõíè$°nBš¦Y¥ºN#è@èúü@Q×µ-Ê‚º\ˆùô"XãA« WÌ&(ò ÆŒV+(ó)qoL÷±Fá¸~¸ôk×õP²¤©20š ê#›vN©.MA6ÛnÉ×’ŒiÕ €édaŒ±å•¡çuNÏóœ¦i¨ªŠõõõU'¸®ëƒ…ÓjL®KJ)¥ªëÆ “1F&»Ï"Äê ¨¦B8®ç!›× é ±˜]n)qJ÷)²=òÅ‚¥Ê#e…VŠ"Û,B8AÔÇ êbŽ#”„Qе† ì!ë³ù\·Áýy¸²씡U¥×´¸®‹µvåÝï0”T øX»¤Â²)ȳ½VßO ¢®ëÓÔž“ö6M…5Ï‹hªZ5Ù,ËÔf!ŒzDéÇq°¤, ãB8h% ¢ÂñˆâRÖáRÂxDÝ ÛÙäúù\À{>ºNp·ðn k“u³>]û¼È(±4u#qÝ¥jâx)lÖÕÝ–§ÖPME6ß&ˆR”\ö×YV”Ó‹ALU-Ž ‚6øi„áºá$(U¡ê/Xö=©z~ÔnÎc;»{º €õ•)ðùdñÕ°SÇ÷; °Oëv>â8f:vY…Öªªª+Ä’Œ4 véãQÜG¸A”Òm¡•~c´&_ì.&ŽG” [^ÀRu<\ÏGÉšÙäŽãá… A˜´V³OUÌHzkøAÚNšçÌf Õ ¿m{¼ËÖZš¦YM|vCŠq¯âétÊÓO?Íh4ZÍ¥¢¬ëŠ*Ÿ#67‰Ò„º˜!M‰V Äø®‡ã½$eËï+ð¼%kÊ|†µšÞ`× )»Dé×õðƒå‚ûƒÃ(YÄšjA]føa²Ì$ZáùþRóy&[-P~G èz„Y–1™LÇø¾OY–«Å«Y N#h%G8U# q:Æu¬Yö´Ö­y„ñ’Ñ•-uõ‚˜^?êQ3J×ȦÄóCÒÁJք阦Îiê‚0îá1u1Cé„EÉßñýc ¡0\¢¨¤lë€ú;Z@—›¦AA–eŒF#666V2ŸÏñ®ç‡ÃeÖ)fh!€V ½áF+.Ÿû Žë1Þx1Æ(’Þ˜2ŸRWA2Øá ›kÁ|?Âó}Î}š²lÊÊÏK„ʲ¤®ëUÚ3ÆpéÒ%æó9MÓQáyRJÂ0Ä÷ý.ˆÌêªAV­–·y’8¡eƒëx ÖŽÅòÅ.RVȦ¢Ì—ÖF+ŠùÎÒª„ ŸïRS×Çh³lCSå”ÅlÙtu\ªrÑòþkZ×ÔÕ  ª-`³Að;ÐÑßn2LÁÚÚÚjZ¤›ï©š¦Yõ ç‹l§ª*¼°G”Œ(³ U9'ˆú£ÃALõ—jïô²ÎÑZ²˜^ÂóC¶Ž¾Œ ì! Ú3DÂÁhI6»L6»Œç‡xž±Ku{1»¼K±„Q#%ž×ìþ,·- *¾+èÜ@)Eš¦+e¸›é¸@×îNŽA@¯×£,«óuÝ,;<Æ¢T‰p}gIkÇ¥®±$OKšëc¬A5‹Ùåe«L5Œ6N dE˜ —iÒ.s}õI›ìo?ƒÑ q²†ã:ȺÀï¯ã‡)~c­ákO}­“ÂòVÐÈè(oNž/ëîµµ5|ß_Y‡µö¢4¬X_àÚÁ'ISçxŽ$¸Z2Z?F™O@8mîÒ“ÞZITSÑ49U>Å{$ñˆ¸¿NœŽ¼ ¢X´ý-cˆn–òycUaOŸ~Z¶'Õ¦m üî˜L&ìïïsòäÉU5Ø>u]Ç1Žã¬¦HÃ0ì¬c^×¥4Z+Ü8ÅhÖ5U>C8ýÑIÅó#Œnð£˜Åä~˜Ò!N‡ÔÅ×óðƒӔظ‡ç84å’xù^@¸Åd÷4ZÖ„ñ€"Û§Ìf¤ƒM.mïrúÙs.°ÖEØŒyköØßßçüùó\{íµ+= ;Ó×Åñx¼:%²½½Ý¥D}ñâ%òl†°[`Ê夗×'IzÝîZ BJÖ` Q (zäó‚éü,Ò”UM‘çHe¨Ê’,û*R*¤ÔR3Ýßa6Ù¥¬*¤2ÔuešZÉùbn”2æüÅïÙ3çà×´ ï´A§+Œ^Ðxàþþïÿž£G2ÙÛÛ[¹FUUÂC=$ÚÏq­ËÛ;ü·þ×^óÖÖ†L÷w‘ZP”5JªZŠ,Ë(ë†b‘Q”¹-«J7RMS+­­ÒÚh¥µ2Úhc´ÒÚ4ZëÚSkc¤1F[kuûSZ‹´ÖÖm°“íB¯®><ÖŽÅtŒPü Oކí] Ü üÛ6àäPoZ¬y…ÖX]M»CúÀïê@IÛIt¦}¨ÏWmÚ{pø#à‰Vó”ßnRôû½jàÙvñ  ß~ÉØ? ªê+Õ+©®xþùþ¯hûWd®á0ðT{øâr[ÿ`ŽÎ>Ïe[¿Ê€Ï¶7МæÀÍ\àÁ|¾‡=ÀÝí¾‹Qø³­%t÷ðå𴎵 ˜¶7`¿Ý´öñzQ ô¼õ}Ãÿ¿¾õú??®®Û"}µIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-splash-ng.png000644 001750 001750 00000352607 11617757645 024317 0ustar00simonesimone000000 000000 ‰PNG  IHDR@ }£µœsRGB®Îé pHYs × ×B(›x IDATxÚ\¼G—%Yv¥÷™–O —¡##U…j4Ñ‹Äââ€ÿ˜SN8`Ýn P*32C¹zZ™V×Ì8¸Eú <Üã…Ùµkçµ÷>JÓ4-´4MCÛ¶4u m‹¢(òç¶P MU1t¶mP…JtM£i[TEAQꦦmAí®Õº¦¡(P7-mÛ¢(Ð4r †¡Ó~ý7U¡©[TMýÿÜëëZÛ¶E×µn}@ uÓ i P”¶e¢(P‰UU»µ(((ªBÛÈg¬›­[wÓ4ò³ŠÂׯ¢ä=›F>gKK]Ë{r^FKY TMÅ2 šn­eU¡**¦¡ÓvW¢FQ”óÞÕuƒ¢€¦ª4MKK‹ª*T¢FëÖ$?£ ©_÷¹@ÓTºmBD]ro¿î»"ÿ ®kš¶ESUTEAÔ5º¦ÑeYašúù^š*÷¿nÚtM®£ùÿ½“¯ïþë»úº‡ŠuÝð×__ŸMÚ€‚ª*€ü,Ô|ίëSU•ºûþ×6E÷½íìVùlšŠª¨çëhªŠ´õö¼ošªÒ´Òö ³Õîû_?WÓ´ç=nº}ÐT•º©Ñ4Mî}ÓžïÅ_­G>o·Mò¼@Ó4 CGéöðëÓ~½Ž*íû¼fùfëZÚ¿®©òÚ}}ýnúù¹¿®£i[,ÀÎ.¾îkÓ­ñ¯Ÿ_ÔõÙÆE¾›¯÷o[Pù¹¢´mƒe™((çë~ÝÓ¶m¡m)+aèèÚ×ßÿÕÞ´-ªªž×%÷X>óWßÂùœ¨ç}jÏgQUy]—kýzŽºsûõ¹PT4MEQUEÚ¦NÛÒ¶ uUQ×5eY@+_B%ÄÙÀ¿nd’æ8Ž…cY”Uu>Di–Óó\êÎyèšJ–òðu “/Ç Ò|u~u]C ­e"êš¶»nÓ4ÒQµœ Eˆš––¼(qlKnž¨Ñ4!jLÓ@ÓTÒ¬€Ú ¬* ]ï® ªª`è:MÛPU5uScè:š*¯¡é* ÊùEÕMC^”´m‹ëXÔu{v(uÝ ª º.oÝ4ÄI.škÉ—‡BVô}¦mhꆲèºvv€EQ`šBÔ4Mƒ¦©dy‰®kºFQVru ]Õ(«Šºi°Ìw¶šª!j®ée‰e¨ŠJÓ6èš¼FQUX†Ü«¼(1 ƒ¶m‰’ßuл{™†Ž¨ʲ’F£kº~vFº®!D5†¡S7ÒX¿8UU©„8¾é·¦ªUEÛ´X–‰ªJÇ\”®muBÁ04ªÎÀ³¢ÄÐ44]þ®i›ÎY©ç=5 ƒº©± C׉³ ]•ÎÚóþ5M+÷³ªÎŽ^×¥ãU•w–¢®©kœÏA¨©1uRˆn5ò¢$/Êó¡lšUSÏÎAU4UCQÂ8ÁslìÎÞ¿¾ÿ$ÍÎÁTULC§nZê¦îÛ¿/Û2iÛ¢uÓÐ4-žkwöŸ£**º¦!šÕ±iÛ–8Íq,€J4M£®e€UU•4/pºu} F•¨»³­`ê:ûSˆ¦iô<ZÈËÃÐ1u¦i:¬§žccYÒ¦+QS×5¶eÒ4Òa7mC–—hšŠc™”•8ÿ äy‰ªÊ÷ü5ÀæE‰ï9èÝÞ[ݹ¯ëFú®iªŠišT¢Ávl Ý@Õ4PTô¦mUE’$”ENEÔ¢BS U%p»k‘/n4èÑ86‡ :gq’Q zˆJP7 =ß%Isв¤ç¹†N–ض‰$YŽc[((Q‚¢(Ø–cY±üÙ2 D-€¡ëºNQUgGx c\Û¶Lâ4Ã4tÊRà8¦af9I5MÅ0t¢8Å4ô³‘¥|ƯNÛ4³³miå!ëAšhª‚ï¹dyAÛ¶]Ô‘×7 …4Ï]ÆÚÙøËJ%Õxˆ¨kªJÓ0PUUU)ºÔtF'Ž-ÿà9v· ¦©S‰š¢()+A¿çÊÃ&j<צ5BU9†}ßCQ ©ú=*ËÙîOL†=t]GBîÏáÒNF8ŽÅ)ˆÐ4 Jèù.=Ï%뜆ª©ø®MÓ´„q‚Þ( Y%X¦I%Aã:v­5ÛâÅ´-Œú>mÛD qšá:¶ÜE>sY z¾C%j,CGïœaÓ4ÔuÍ ç“åyQÒó]ªJP›¦ip<hšÊ°ïS–A”à:ªªÕ5q’³ÁïQTBÔ”Bœ3WMU¸˜Ž@Û´ìO!žç „èiËîpB×u\»Kš–žç¢wÎúkF§…cãÚYw›¦a ö}Û$L2Û"Ë Š²’g°‘-x®-F%¤£¬å^”©%ÏG¡ëÚÙ¾„ëP–Ç(fÐó¹ß=Ï¥®k\ÛFQv‡€Ñ wΟ\ÛæÆ4]vwÖýbëØ(“³­Ú–ç:ÿî„€4+H Ç2iZ™¸T•`Ø÷϶i[Ò4GUz¾+“œ,Ë Is‚(Æs<Ç–µªØu{Õ÷åyL»3%)•š†iØ–EmÛ$ymÕóhMSЛº¡*KÒ4¡Ê3ÂÓQfô\‹¦®)²¥29E º¦a:Ñ1§Î,û£¾c[4yıˆØì*!˜O†g^%6º®%)®cch‹ÍË4PPØüîáZ (J\ÇÆumvû¢nèù}ßeµ=’%Ç0"Ë |סßsiDz¨ëEU¹˜ 9ªªâ»–ef‹ÍS×ÏÎâÆTµŒæãaŸ¶mYï´oa}ca±c¡imÓ`‡ bÐóÐ54Ë9F1–a k(`›&Ž-{ž—ô YB­wlË’ÙrQ"DMœ¦X¦ÉdÔ§©ž6{,C§n\ÛÂ2MêîÐ_Î&¤YNVÒY”=<Ǧ‚´2d„VUâ4#<èç —ªÏîp÷¸ÆyûÛ4‰Ò ×¶8Bʼ ´šB#‹LÓ¤-sò¼`è(ÔY…¨„4æJÒ¬ N3Ú®rhÛQËìÌul„l“a¿;¬-}ß!É ²¼àæbЍkîk„hx÷ú–¶+;«¦`¹Ù³èÊZ½ ja”v™²tBižcèãað=‡¶iùËÇ;=Ÿ·Ï¯iÚ–ðPZ&–©“åÛC€×qH YQV¨Šâ{¿|z`8ðÏÁ¼ï»ˆº¡(J,ˤr…sö“f…,]GzÙº¡®öÇœ²¬¨„̺V»®m1ê÷8¡\Ã_ed›Ý‘aßÇ0tfã"5ˆ¢USˆEƒiʬ´-c²*Eô 4E2&¯‘‘çŹM³UUô<*!ˆâ”4+0®çÔMCÕU˜Ûý‰ª®ÏgɵMTaqw·`»?qs1!î*¾8Í £1ÒŽúlu]cMÓd9YVà8&}ßǰ,Ò²!ËgL'SLÛÁu=tE]S0ThZA™EÄÁ ¥0 ƒí!àærŠë:„QJÖ´œ¢˜×4iÎ>p-‹Í!@U~þxÏ»×Ï)¤QÂî kƒ¾Gœäô{.¶eòåË#ÃžëØœöGjÏÁžÙB™}yE¤±ßŸdæ£NØE‹ YQPwÆäõ.HO;,Ó$NdŸe4èQÆÒ0DSTš¼+íâT–VeÆæiÏl2Ä¢B¾Ý#Ø-QU•ãfKU ôù„ºn8…1”CŠ¼àæ²\Ò¢àr:¦®²ÐdÜï&)m-ÈÒ–4/(KïÚ\ÌÆÔeI[ òФij²àH¥ëÄiF”¤!¨„ì.Mƒ4-â„«ùUQyH2.g#*Q“fyx`µ;Ð4 Ó‡ÍÓ0ÎÆ¼Üìô<ò¼¤ìú—¦®3è{¬¶§ˆ¾ÙÐó\–Û=¾ë°?…X¦^gÜ/7O!®cc™²—ª‹”´(hš†0Nq,‹8ͰM“Íáˆç:ç©n±õ‘çô†± Q¡´-ºhÑEÎv¹d`6¸Ž…MI\f4YH§Ò˜uŸßb<ì3øÜ•À¶LY"µ-óéˆ*I8¥9z=!NÒsY¸\íØºHuÇû'Fýšª’—%ûC€e™<¿¾ÀQûдÔmËz½c: š Ypâ(’,çDÄIÆhÐÃl=ʬÀ4uô:E« ’"âxŠxq=ÇÕ@ˆ”ºlØìO”•`:êvôŒ ŠÑD1aÝ êš ˆÐD¶nøïÿúg~ûý[¦£›Íçæ‚(I)Ë mÐcìÎN+‚C2ð}šL¶ ]'ËK¶‡Ï®æTeÁ),É‚ˆ}–stUaqŸ3öÉË’ùdHœÐDÂd8 9–¬’”åö ³ô®ŸÙ÷]’0æiµ“Ï­ª¼ÿüÀ çs5±Ü0Mƒaϧ,JvǸïÑ÷ö»ªªŸ¢$Å6e9¾]ïØÞ¼¸Á±L–]eøÓ‡;Ûä²§“•Ë-Ç ¢ç94y@ I²œý1äöjF– ´Ø ¤§$ØÓï°Ü>qÒ÷},Û–=Dhi›†Fêª@k+ÂÖ:Vx\nøp÷HS¾AA!/Kò¢"ŽS\U¦·Ÿ–„qJ”$Ü\ÌP„€""kr>|¸ãi½Ãsl|Ï¡ï¹ì75¦¡±Zï)†=®f>üúžÑ OîÙÊRðæù5EY±?…²” &„QB”ȉc™LÇŒ:c:bû( QŠ£ÕPèlž–äeÉxا®k|Ïå°9 ª ûSHÏhX펂öú‚Ÿ>Þq8E|zXòòæ‚íJfJ–i\Ψ„`¹=’ç¾ç0XW)ºª²Ú˜‡Ü/6¤yg›dEÅtاi[Û1§0’Ñ5"N2Ò<ãr2¦nþøó'.çcÒ¬àr6Æ6}D[6Ѫ–F7´eô«„`U„DIFšÔYÈîÒs\ÛBU>Þ-ùæÕ ›ý‰íþÄ?üö;„(IN9z“Óä‡Í’“ªðÓÇ{4MCWNQŒªhqÌÅdĺø®Ã!ˆöØ–IUÕˆº&ŠÚV6°ƒ(a>’e%ýžÇ¨ï¤!"³PY¶Ý}>ð´Þ±?ž˜OÇÄIÊýýOüöû·|ûê¥lö'FË>ˆXïô<—§‡%WÜŽ,N'¾¿}ÍÓz‡e ­–õâ@™—(•o´ì!YQÐ7’,¦L™ñ'IS k†¡Q&'â“`âj¨UBYU<=® šb¶9›åšOiAÏs8E«í‘Ó Ç çQ‹]×øô¸Ä³-®æ>Ü-8m§Ìg#é¤`·'J3zú5ž^£‰”Ý&âãÝ’ùdˆm™ÔiÀ2:â»áa‹Ù<ÃQ+”2! vä]¦]&«ÝAö¬ë†ûÅŠ¬(y~uªÀ)Š©ªš´(P€¿ûẦ¦Š*i¯Çvâñþ‰ýÆ¢iŠhBYUì×%Á OšçÄõF& ª¦ò»ïßS~þå3Ÿî—”ñ‘›«Çí†Ý²æ´—%¶eRö=ÊJp b½lN!³ñ§<äpŒð=‡có´Ù1ìyhbDV&Ti&[yšM•…h]pÞ­dŽÅNÕ(¢ uÓ%Uß$#ADUU¤YÁÛ—·Ô¹†P5|ß§©š*³N½m[Š¢àp:‘œö|þ|ÇâñKmXm÷dIB]ä‚÷Ÿh[è÷6k—ý)d±Ù£( Þ¥µÇùÉùdÈûŸXo†Æo¿{Ë>OÉŠ‚Ùh@‰£ZSQf a[3r ”º`>ìáš ›ÍãAFÍÀPPT[oQ”šÅrÁŸzeY”eÉ ïñò抢,ˆÃš¦ñáîUUØm]ËÄ0 þù?¡kaœ²ýá-qš²=l׎aćû'¾}ùŒÍfMSå\LÇ8¶‰¥µªÊÈ3ùrØóövÊ»××òú‡ÊÈÇut¾uÉÿñþ?L†}^?¿Æ2U¢$#8í)ËŠ$ÍÑÛJ‚/…`»(ªÊ·/.qlƒ»4á¸ß£5²W¥S“§9Ÿ– {>ž©Å)Qœ0ŸŽxXl@S©y¼_p{5ÃÒ¨ºÆn·¡gk´mËõÄg¿Û²Øè{¶ ªŒßÿñÏèºÎj³§‚Û‹yžK ©x¦Êï¾}M–—ø–Ê‹‹1Žeð´Þ³ Cò,'Me6¨m…i¼_,x÷ê˲¨ óÜ{«„àîqÅÝrÍÿúÿ–Q¿Ç›Û¯®Æ(Mɯ¿ðù~É~·éù%óñP^ûfÊ~¿•m†ÃžõÚ%8†de‰Ö þðçŸÉó’±o’ï?=`:¶eð°ÜRe²ôåË/n.hÛV¶=DIÔå„M±Ú |ê"%<1•†õzï_ùñ›—ÌÆÚÊ£ïÛø®Á1ˆ1h¹¿¿—((ëÕ’,°ôׄQBÏ÷ˆ£CÓHã€åöÀf#û…†"¸¸GE¡èúžËJЊ‚4xÈcþø—_¹¹˜bY¦´ Må×ÏOüîÇoHÓ˜"M¸¹žôp,“¥2XmìŽy€¢F þ¢ilÖîkÊ,e¿ÛbÛ&Z+[OË-·W3þòñ Ç æåí%›MÉõ|B…ÉS|KaÔ³QD…R¨m‹F…g(8¦Šk¨ÜÝ-Ùš¶åí‹k ¥f¹xâaµe½“Î~6²Úî)ÒŸE‘ ˰ï³Ý¬É\‡(8atÓ?ÿë¿q53èûXZƒï:¤qÀj­²ÛüåÃf£- ÍõŒº,Øç{ÍÄ iêš¶mÐ˲"+ ,C§ÔUâ8!IR¢*#K3â8aw8`ê:†¦òúÙ%ŽcãÚ&‹¼ Ksn¯¦\NGô{.qñùq¦´ø¶‰u9Åsm ²¼àt ñ,ƒã)d{8ÑÖ5›Ã‰o_Þ0øL‡=ÒL‚1šÒrÿ´Bˆšß<£¥%eYõùnžcñüù%Š¢àX:Y–0êÉÈÀs(«Šß¼{NQ”lö'¦ƒªªr=ÑsLnf#.Fz=ÇÒ¹ž y~}ÁþàØƒž'óIÂÃR>QפiÊv·§iþôËg~xû‚ù¨Ï)ˆøŸþæ-šªr{9a ‰£˜(jéû¦®R ‰¾ ¥åóý£O‘Ë>ÙþId´®XlX¦Á ïñ›·Ïùîí |׿ï?Q–¢,鹫í‘ÿü剦i¸¹±Þl±,“õfÇlØãÙÕŒ»Å]ÓØB>Þ% Œe¿ñörF˜Ä\NÆŒ–¡²?E<¿ž1õÈ‹‚»Çaœ2ù…AGDqL]78¦ÎådÀŸOš—Ø–Á|Ôãr:âDˆª`Ô÷ñlƒ?ýò™ëùÛ4øþÍ3ƃI’ð°XñöÅ *-E‘3ê¹ô|Sá»&£ž‹ç¨JK]U¬Ö;|Ç”Íþc@4ôeIÛÔ(4ŽGþí§_ð]‡‹ÉˆÅjÃr½åÅÕœ ŒøK’²?x®Íz{är6&ޝôß% #®¦#~÷ÝkE‘mDY¢Ò`vèô‹› \Û CTKúÇ2ÏT&]U$ı-Ua:ÇG|kÀz»'Ë lÓè g‰,êUÅýbÍÝbE”d¼¸óëÝ#žc“¤Žeà{qšñ¸:0gÄÕlÄxØç„èº ò¼`Ø÷ñ‹¼(Y®wTB°?†äeÅ çò»ïßȆ©¡Qä%eU1¹˜ ÙU¾óŒé¨OQ UR/²¼8#в\í¸šOpm‹ÛË)ãaQ×Ì'CêºáF\NǨŠÂîH:‡®a[&Žeòùa‰iX¦Îj“ðþó§ ”}ß%Ír¢$åÓýâÜÈ "‰ˆnv~ùòÀxЧ¬„Œø†ÜI­)¸˜>CAöC CãÍó+4 ½CÉ ¶‡MGÇ8EY1ö¸œ™Žú¬÷&Ã>¯n/)ºÔÿoÞ½¤×sQ…wOÌ'#&£ß¾yF§gš…h4Má·ß¿Å4$âk™ÄYnv¨ªä„ey!©+EÅîp¢(+Þ½¼EQdKAUþé_ÿÂw¯ŸÉ^Ù)d:t|/8…1EY1èy8ŽIÅ8¦Áþp¿Ü ©*7ó ¦®ñâæât ÃÀÔ54U£êöxàu=®×u¨ëšëù˜÷K–›y^òýëg,·ú¾‹®J”~<êá8xzýìR¶7^æ†ÎîðéaÁŸÞær6ƱL|ÏEÓT~ÿÓ=8ÍPÉbøÓûϺŠë,×{–› ßåþþ‰åî„üËtvAÌvbY&›ý‘¿y÷Ïu(:{½;ðáË--—³1y^Æ)I’Ò;† z>¶eòîå-QwÿC‘*Š’4Ëô<îÂ8ÁÐu^Þ^žmȲLšº¦ï»ºÆëgW’ÃgšèšJ”¤\ÎÆ |Or[…àFlvGÂ8!Í >?.%À³yÿù‘žç')ËÍž·Ïo¸˜Œ8…1yY°Xï0tc3ð=\Û±LÂ8Æ4 ‚8a>2öh:NãËÛ î.gc&Ã>—³1Q’r}1Áw¾yyKÓ6ÄIÆdØãÕí•Dö«Šuš1èyg¾eÏwxZm©›š0ΨÐxñê £ýâÛ>º]£kš†®k$ài½§5÷»=u]‘å£A¯#DJÂâÝÓÇ2¹œŽ™OZž]ÍÑT…0Î$áÒ2(ŠS×ùþÍs@RV ÃÀ±-þí§üé—ψºæÃÝÓ‘ŒÀ`è:×îcóßþð3§0F74Â0‘`™CWqŠäË1t ×±±m“Ý1@Q$ŸiÐ󨛖$Ëùéêª2xxÜt¨¥mšdyÁþ'¿àï?ñíë瘆Žaè¼y~Í0𹽜ñÃ7/1t¾y5—Ó1®cI‡·?Q×5–ip BÞ<¿&Í NAŒëX\LGÌÇTUå~±Á¶LF}u³\ò«ºf³?I^¡¢Ðó=AÏ#ÍrîŸ6Œ>ÇSÄfDÔõÉœŒN«›ý‰·–DÍFƒ¾ç`›&EQr1I‡¦©QÂ)ŒÉòUuøx·`62ôØNìŽ7—3ú½DUã{Wó O«ŠªP%þå o^\óúÙ†©óÃíKʲ’(¦.‘òŸ?ÞÓÒò›o^òûŸ?r8†äEI’åx®ÍxØcà{DIJ§ˆºæãý‚Q¿‡çÚÜ?­±-“Åf¦§GI†EQHÒŒñ°GšæDiFÝHS%•¨™Žeˆ“LòÕLË0zØ–E)*V[«ù˜Þ¾äb:¢¨ûcÀ·¯ž1 Ðu•ª¼¼¾ m+š¦æOï?‘¤)#ߢiJvû¦¦¢i:ºRóövưçQV ϯçŒ=†mçùõNg³¦aÐ÷<^Þ\v¶t$J2¦£¶i&)zÇÙT…ÇÕ–Ùh€¦k”¥à~!ƒÈõÅ”q¿ëX<,·„Q—‡%®mñ´Þr1“%EU¡© ®c‘d9UUu„eiw‡ BÓ5zž‹¦iE‰ïÚ¸ŽÃ7/nð\‡¼(yÿéÛ²øæå-ûSÈáðÍ«[ÊJPV·—3ÊJ°;̧c†=ùdİï±=†´B°ÚXnx¶…¦*L†}TUáa¹áa¹á?ýÝ÷¸ŽÙñ% Ý0t¢4e¹Þ³ÙË€lžë0øl÷G~ýüÈ÷ï^Ó yóö…¤ÿ´œŸSoi¡…ªªñ\‡—Ï. ÷*ÑéH%®cQ -?wZu<©›Ë)mKGV¹˜Œ˜MDq†iêÜ?­Ñt Ë00 ƒ8I ˜ÛË)ËížéhÀÿö˰C—>ß/øíwoè÷<§ˆŸ>ÞáÚÖ™"#ù€ïüßÿãO4$K‡}*!xq}!yb¦‰çÚ\Í'(´¬wG,S¢|i–s cŽaŒÚ!ÆMÛr¿Ø°?…ˆº&ÉrŽAÌîÐ4’8{ #ÖÛ#¾çÆ1óɈªäe‰eIî`œfˆºæÍókNQŒ UÝ  0õùñí †ýÞ™$ªë×ó ¢nHØþãÏüú剫٘Ùdˆmš\Í'qÂÅdLg HjȠ硨 †iЖ’±õñ~ÁÅtÌÓzG§ÄIF'LÇ}.&#æÓe)|±Þ%)¯n/¹½œ‘¤ƒž¡ë¼zv¨EU1 ô}æ“IšÆ)š¦ñåiÍr³Ç÷~þxÏÓzÇú»ïz÷LçÄŒ>Ÿ–üúå‘ Š¹¹˜ò´ÙñÓ‡;þæÛ׌LCT®-Kôc@QVÜ-Ö¼¼¹à›·LÇ}¶{Ùô=¼f6Òsвb{8!DMÏ÷$¡WLS§§8aÜñ;5^=»Ä±%÷Ïsò¼`½=RVEYá»6ãa×±yóü†Ñ ÇÅdÄöxÂ2%µ¦é”MMS¡*-i–r8Y¬j¼¶6 IDATV(m‹¦)4µ ŽKÛ l`·Ó%¯U5Ó‚¶Uú$iΰï³Ùñ]Óéy.-’[j[Ÿ—QãX&i^ðñ~ÁxÐcµ=P”e)xýüǶxZíøð剛Ë)yQ¢)*«ížŸ>ܱ;ò¹›§ÕŽ4+ØŸ’N¼0ìy(ªŠkK>­ª(Di†m™|÷ê-²}õ¿ýžë‹É™l­AÓó\‚¸ëï>­°-×¶©ë”0JøT‰Žå ¹¯E)ˆÓŒÍþHšK W'¼~~ÍÕlŒß­Bîвb½;Jñ…QóéaÁâ‹Íž Jhi9œd%·XK»T•Viõ=ƒ>ŽeáØ¶¬n:Ñ‚® ¥#Q’D A”P¶mÑ6µLÉË’ºnº2Ð`Øó$Ri™üúå‰ñ°G]·äMAQTœ¢˜¾ï’—ª¨Q»hò•Й³ñw¯ny~}¦)C™É»2éï?ñËçGn.§üãï~ ç»,Ö{Ú®‘z¿ØPV%¿ýþ ®m¡i*E)Ø<­I25{nM’ç|º_檪`™&†¡F óîýžËv"Ís&£>ßc{8aÛ&¯n/éy_×ìŽa’% qšs8ÝcuÙ¡¦ilö²™«* ïX¦T!ÔBrǪŽâ"  ’œª$£¥å¹:‡V²øÿçßýÀßÿæ¤d9¶iñåiI’¥]FrŠböGÙ8~~5ñ,^\_ðáî‰aßc>²Üøíw¯yy{IÝ´,×VÛÓ±D+!°Lß“%‘ešçòtØwùò´f>±ÚHs4ªŽ·?<.6<®wgBëóë¹<´+Ò<çÝËg<¬6œ¢øáí ²¼Àsm|ÇaØ÷ñ]›«Ù×µ¹˜Œ(+é¼&Ã>º®q1Rv$uº¦¸ëØ<.·ô}Ã0x\n¹º˜têÁ!J8¶ev<>™+ÎÆNaŒ¥k,E!é!_³ ªÊé{«íO+æã!‹õ„ L0 Mf𶉥«´…Î1Š¨ŠŒûÅŽ0Œ˜]в>«¦Â(%-*h†i±+‚¤ìªAÅ‚Dz˜M†ÌÆš¦!+ žÖ[&Ã}ÏãDx®Ãf’„ߢ䇷/øô°ÄulÒLJê6‡#yY⻲µòùiÅt4`:ðã»—L†}lÓÄ0$1ÿÛ×ÏÉó‚éxÈ1Œ¡•äîõ©üñýgþñïÃþ²ÙQßsÈ‹‚÷KTEáËÓŠ²N!¯Ÿ]s1ñ‡Ÿ?aYeUÑó\v§w¯žñóÇ{Ò\ !¤òEeÐ÷È;åÓÍÅ Ë0(K©ŒÊŠ’¦•àÆß~÷šÙx(Ù ¥JZçLGCú¾ÇÍåŒÕvO”düý︽šQ× ïdyA”d¨Šä ?®v4¦Okº *iµèM'¥ql‹ºcpÿñýg¨KTZâ4åÆqÂz{äÙõœ¼(™M†Ò ‹íþ$¥,™äûüáý'f£¾çH"rG„ýp÷ÄÍÅô¬Ü81›ý‰ NäáŽÓs)œåÏ®ç¼{yƒaèl÷'¶û#³qŸº.™ ]Â|G'ÍR>>¬hš†JÔDIÊr½¥ª%_Nʈ}/ tMãç_¸˜öQ€¬(eÿébÂr³a øAf ‹õ†Qß§©+ê¦ET%·—c†}ÉÞOÒœ¢È™ =,S*1§!j~ûýkLCa<èQV)ŸäEÅÕlD% ‚0¡(/9…1?¾½e:àXQI…MZe)a1êûhj˨ïD!ëÝCÓ“”¬(Éò‚ÿòû?3ð\P`:ê³ÚJ4µnJ™I¤1e‘bh ª_ùéã«í‘ß~÷Ï‘„í»§ ?}øÌ7/®YïN8¶‰k[DiF–—´mÍ?þ‡ï¸žyXí° … ÐÔ†8ŽI³˜¦©05xv5ᥔeF’F4u‰mªÐ ë%?øLEô}÷lô£Ï~_“vàÕ§‡•|÷êßÕq,íáHY¸–Æz#írsäÙÕ”4ùýÏŸ¹˜ )Ë …’, N{Z‘Ç¢L86¢ÔUÅq¿f½Þñ´XÈ8î7”•À2e-Í æC!*’¬8+êºe$¤eÃxàST5qZ`¨ D´¸¦Žiú¸–Éwon‰Ó‚ÃIR@n/gT•¥}“Ñ€¾ç°;$™TW<»ž'RÅ´Ü$6ˆd@qmL]çæbÆ·¯ŸIRö^¢¾ª¢tòDI.*Á¸/ÉÕ_Õ#Bë=B?I2¾<.9… ¦¡s11ìûÑp bþö{\ïžÖ˜¦Á·¯n% j2äör†¨k>=,¹¹˜¢© ß¿}A”¤|óâ†_¾<Ò¶-ÓÑ€S”H»ÖTAÈö°Þ¹šql‹8ɘM†ä´-TM•-.¤ôΪ¤ Ñu,<×FW5â4ãörFœdˆzƒï9Ìçs†ÓK _¶ÖTUEQIƒišǶ¨LƒËÙˆÿýù$QÀöp`½9âØ&?~ó²c¿+gf–üù×/̧#lÓäËÓŠgWsž_Ïy÷ò¶k‚F\ÌFÃË4y÷ê–a¿‡®«2*Ù&y){žë°ÚJäsØ—$é¯Í÷JVÛ-ûý¶‹Òk²¢b¹^£k*‹í‰Û ¹ϱȳ„Ù¨ÇÄ7‰’Œ¾¥P¤"OÑLƒ¡o!²„AÏ!KrtÃàtØq S’<Ç1MNMSPꜦR0h©Ê’ÓñHžÅœŽ{šºáçÏ ÆÃ>}f³9F óñ€ç—þéŸÏ¿þü…7·sY7ô¡%ÞøBßµY>=qbAÌvkc:›cÈ|Ü'+Jîžv¼¸žb«‚0ˆÙl64-ÔUÞ!Ý‚í)¦(KI:ï2…0ɸ˜ P€0Îô\’¬@Q ]Ãs,} ÒT,×K4E%J3TEE)‹å‚Ã)ær6¤))*9QððPpØ­ùð Å—û4Ma³YoV8¦Áf½âxr¿ÚsŠ2|ÇÂuLV»€èt@7T6»qòÛk„hÈb/_$0Æ)qZ’ïž_ðë‡äEEî„aŠ­Õdñ‘ðXKé•(¡Le…Ö ÂàÈf%u¶?^ñþÃGLC—qQãX: -ª¤ø%QR°¶©Q7H•E!³É“"H²²“:BQUäeMƒ…ª êø¾#‡p´CkiAVTÄeÎß¼B×eÔ:u„¦iì’!ù”1F§œÊ‹’8ÉMÃþâwÙ ÓeñEY±Ú;g'¦ºnxZï$àÑé—ǃ¾ìç÷}n.ç û>A”ð¸Úâ:Šn‡˜{®ÅáñöÅ v§¾½œ±Ú(+Áß¼àr:Æë¤|ÛcÀÅtDÏwy\meùz y~=GUUþÛ¿ýÌÀ÷Pò֋ɈwO¨ªÊ/Ÿxý슋éˆÅzÏålÂ7/oø>O«-Q‡ ô{i*«4£Ó²·m{V€èâõ‘,/˜Œ|¼{¢¨¾çQ¡S`ñvrqîi*€^×rÚEœf¤YÎþb6MS™OF¨(hn:`è:yQ2ôΚFZǵ |ò¢âb2êÀ‡†OK>?.ÉËŠ,Ï91ûSÄÿøÓ¯<¿žsŠ®fÉüýO¹œN˜Ž‡²!Üó˜‡ÐM²°-ƒ,‰(Š×T˜ûŒ}ƒ²Ì6C©YNóß‚žuÛˆ‚8:¥ëC„ª*Ü/vDQÌÕ´Oœ˜†ŽmêèªÊ!Jé»6q¢© A’㘦¡’ä%»S°çb«‚¬TeNJ½2­`èP—¬6ËÀÒ¡,R~þð…ºiõ\JQs8IbC¬Q§9UÉK©Mã0-XlT*Š4"Ê ’4aÜwq†FdAŠÖÖô©…¬Š”Yßaèj:¨ èŠN^$èÝDVT<,Ž™OÓ¶¸&Øji€ÖªÔu‹Ö¤a‰(K¶›’––,—ò°¢¬ó„0)xÚ†ÜÎXŠM’–N¦Ú ù6y)¸ËS¤ Jrê2çx’“>¶û=eU“$)ߤÌÒ®Á¯( YÙJõQ^áÚ&ežRW9»SŒcd… ÍK\Ža†ªÉé>»ƒœ~RäC¯GSåršI+p …¬,$I6/•JšK©˜¥+Ýp†<¯¡•賊†©A’U4®oë•Bœ¥lm4¹@74ËøÛoß`‘ÿ:ÑçƘ†ÎÝÓZÒžÖQBØ ´øÚô=§kuIù+Z|1‘f9Ï®æÄiÆh £c™gççXÖY£“AŸÏËóï¢XÞëÓÃ’(Iy~5§µ”Ñ YîÖÔÒïŽ!žcóòö’×Ï®pm‹›Ë£¾ì?¿¸¹ ÍKÚ¶áï~xËÃjÃv"Œ3&Ã>§(Ʋ ¢4ãîqÍíÕŒOOk&£Y^²Üìy~3GUn¯ædyÁx8 m²¼8išFN§ÒuÉ—QDè°¥,kVÛ5›Õ ß•Bì0Nxv9—ÀªÈ)´d™¤›T•À±My£†þ:öf4èQ75v%{¡“6 ÷{ø®¤’|-}n.¦R_\7Ø–Až—ìOMÝ`*CÏD£‘Ó>4C3úŽlÊ&9A”1è9䥜’²9DÄiŽeJÙT^ÊJž}Ë©Ýä“}Z’—MÓï GïÜÌeK^ x$9“¾Ý·@YÕŒûª ãž# Ò§„²ª¹÷˜}ùÿ²‚¦©ùü´£ ¶§³=FœÂMS÷]¦—ºn°-–Ç6x–9¦*šJßµ iIË’a_Dª"5ź¦a:¶I7jK%-¤.ÛÖ4lK§©[z®…¡«ÄY-X†Š©«‘è²#WFPÇÄwLâ¬$¨2Žq†Š‚ïZÑðòrÄläáÚMÛ0z |Q7èÝ ŠéÐŵ¿g&§åeÅ|äc›§8ïCÑM‘$/9b…ŒúªªbêIVvï­Æ2uâ¬ÄwM4U%Šä‰ºiiZ(ª×6¥,qlÈL/ÍÑÕ–Í¡fÛU!ŠªâZ5 ¶eá9¥èÆ’iQZáX:A"«ÛP0tß÷@³xu{ÉËgWäyΗûRªd: ­ªjв`½?òéaÉ‹› ~|ûßs0:úÑxØg<ì1Ÿ ÑT•0͈ҔÕöHß÷p)s›MF´Méã>¿žóÍË[\Çb½;2ÊöŽièÜ/7ì“QŸ‡å]Sùp'{d×ó Žm‘—%»CÀ®ÿŒçXÄiNZä¹tž×ó)•Ü/ÖLGFƒQ’žš‚Ë0Øæ%¢cAäEÉ/Ÿ ¢„²ŒR~ø¸Þò´ÚuÓl N$%ëi-•`Q*åqÞ‡çJæx¨3ìùäeÉÝÓ Ç¶Ù!®k'Ö\_Lµàヒ¢À?ýË_º)=ãрRY%–Ó kªJóU\'Œ‡>&cQrš`Í~ÿíkªz)R–QàñÝÛ+)R<‡,Ë }~§‰®ÊåÚ ~zÍË‹cŽ»-6»=ÃÉœåfK’ 9h<[£é’Ç‘xÏ÷iF3¶ahTTœö:÷ÚâÆ)*>}y)Xè¡m…EÚ ª²B×tñk« ÍÐg8™×ø®œ8IÐTùjƒìñ²œ$I UÛ¶jLU‘¦ÙaC[ä¡ç2(K²¢à¸ßÆwlNúÖ5š)Ë ÁNÙ¶¬á-«¶™äyQ³ØtÏÁ;˜ÇÆÑwÔm³Úl)ËŠN+: £dËå¶MW§}Ѷ%^½]}ÿùšåbÆÝãŒå6¦Ó ñƒ€É*¡E8®GXˆàõ¸ÓjÇ<& CŽû]|×>@ ß™Òí´iD ´šÔñëçÒ¢0ÂuLtMã8Œ°k^R.Ќ߱(†3úÝ6žc¢h÷üîëئÁpº¤(bŠjà¸Çý6O“¦íáa°™­øûß}Åû›Gz­ˆVä³ÞÆe³ ;Í&†®£c×'ð¦«qV±œ¬ùûï_aZ§=¨à~8%+U\×% \vq‚WßQ¨âû®w{<Ëa²X“U:qž£&® 6qZòò¬‡iŒ¦ËÚF¨QÅ)ËÝš,‡^»!ÏRYáz­v‡åz‹íø¨šÉI¿EšŠŒÊs,â}Ê.•*Êó M£‰€^ûèÀ²ÓkŽ£çÊ,ÔBŠJô|9?~uÉãpÆ—§ “µ¸N–ëÛ¤’ãY$…B’+¼~qB3pÎV®ÍÉQE+òÙ%)ÃéUOP´»–ℾƒ¢ê8އë{Lç[L žKV阺ŠJIǘƞªÌIóŒÝ.¡êì÷ nîØìRâdO™‰3%p-ºM‡}%nÛ¶ys—%Ûíž}"LDßs>KÅp\ßs7…>·C<×a:_Òm ’í(jñÝ›+4MåþiÂùqW¤$£)ñ^F]û$åq8áÃõóÕšN+"IRf‹U Â0\G–,iF»²ÝÅ\ß?ý/ÉV V}x³Ùîh5BþðÝk,ËÂwm†“EQòæò”F$ºX×6‰÷)Že‰E°t]žÊÒ0¨·ÒaàÑ|.lcî‡TÏëËSˆV»‹ë»D‡ï؇笗•PKöIŠçÚ,¶ T]­•ê5Æ&ôjâ³Zëù⺒ªøô味£n-Œ£¨*ƒÑ ßuhEaÝš D1®7´žë0œÌŒf$©ü5Uáò´/‡šëPQès}7 ô=:Í€wŸ®Ï1Xmc²¢BQ ¦ë=o_¿e¿ÏrµÅò|«}Åb—±ÞÅ4[Í6 Òu2&l4ùý7¯Ø' ª&L½®ÊwqÂh:çÕ‹KλLæKBßåa8mÆëW/ñ]›êa¹¢(|¼}¤×jà»6Óåšþ—ߨìb¢H> ß}ó†çÇ‚JsÒ,Ç›\žö˜/×øn}s«*):ÍÐ'ô½š¶O£AàÑløŒ¦K±’©;ŽºhºÊÿüéíFÈÛË#y–½w“-§§"»˜ÌÅ‘Ók7±-C*Å$åòB*&›ʲb±ÞrtrÌz³%Îâ}NžnåÂRBׯtÎÏϰ—êæ‘¢(ét{,¶¤e…oÛX¨´š²„N—”UÁnŸ2ߌh×v¸¦g‘iIV¢ qšq÷4¥RtÏãþiŒièœô;¸¶ÅÛg"òÏeÞn†Ø–I¿Ý`'ÜßI² ϱqNzø®ƒï:hšŠeŒçKlÓä«—ç‚+…°cÖ¢ß_>Ü$)WgÇ$©À}†‡Sú&žk³Ü+qºXbš‚ˆ[o·2ži\? °-“ùrÃQ·I·ÕàÃí=×÷i¥÷ FHšf¼¾wHœ$LfKÖ›˜VSsO“9YVà{išq}7`¶\ðëIšR”ËÕ–8Ät¾ªAª­( / jÀ`_îH³œÁhA§ñëÇ;üßyx® •Êq·Mú|õòŒ}"Cýç'Äû=Ï µÙb…i 'Tm•FÔ`0šñ—_®ù»ïßrÔí2œÌ¨*HÒ‚ùjGU©¼ûtÏ÷o_rÔí°Ý§ôÚMNû=¾zyNUU|¾â/c|×åü¸ÇÙQ‡ÛǑЫ5‘?8¶‰ï ]$ \îc¶qRc£ BãÓˆÞ˪"É ö©Ìz×ûÏ€uœóáNÆ1½vÇv©Ý>¡Ùìó’RIÃEUØnc×`¶Ú“ì÷4|›Õv'pÒ¼" =¼ ¤e»¬¶ ¶i2«íŒžcÓŠ>}yän0¦( ®ÎŽx}yz lËÜTHä"7Xm¶4BYD†È7»˜v3’J(ÞãZ²ÝÍ‹‚“~‡«³#îGtÛûíšóãçµv.Ï…ðó8œ²OܱÚnÅÒØŒ¸<• jœ$üôîš~»)x¹üHæË¶ÅÝãEUé¶šLÂÝîöµ£J£Ó™ÍWœö:$YÆÇëîžFhš˜š@æ§ ¯.Žéµ$iÆbµa8óúâ„¢(Œ—œôÚTUŧÛ^_žqÚ—Bìò´/q¦‰ï9h†ÁÃdN¡9Lç+,¿‰b¦X^í¶L“|/¨ïfèc%ƒ=5_®qmAl/VòReyN+ ©*hEQàsyÚg0š¡i*ÝVtX‹º.0ƒ·WèšÆl¹æ¨Ûâ¸×æn0â›W—øžÃt¹:(ÔߥÙŠœË³¾l¢u ]S9j‡´CV¾9ïòæÍ[~üvË›Ë3Ô–Yãù’fä}Á¹ç9³åšÑdÁåiŸ7W§d¹XȆ“¹ ûËŠ›û!I’aÛ?¼å¸×§ªÒŒîcâÚJ&Øô]­dß¡kß½¹¢Ù0uÙrSoÖ×t[ ®ïõv_ãüM,ËäÝç;†“º®ò8šÊ‡™fLçò,îžF‰ ÖulNzm4M%ð]TEÈÚo_œ3_®Y[Bßa8]à;6ÛXœ½vƒ¿ÿñk,Cg<[°Úìè¶"®ÎŽhEð·w׬·"yÑ4Î:ŽÍv0æi2ñìr[ç­(,×Ò,ñ-Ò4c½îž4ÏÙ')×÷Oµ\Ü_G‡K÷yéuÔmSV%Ðg±áõÓx†¢(t!o…ÄìØøÞ†ÕfËùÓÏèªÊë+Á~µ¢(ðˆ“D>Ö}Âq¯c Ee4]ÔUãŠf ïu'òHÒϱÎ6üzû7<Çæ»·Wüîë—\žöÑu§îÿuõJ5I ´T)Ñ }½FMÙŠBVTØŽJ»Ý¢ßëbÙIZŠvÏs资ž¶;M©šUåÕÅ  ð0œ.ËÙÕõ]ó4žR”I–Ó e4b:£Éœv#”g_V‚¤2ͺãþi|ȉBY-,O³ŒÓ~‡Y 6u ϱùó¯S´&)×wO„¡KUH^‰ÀU-ãñ>¡×iÖTðóå†<ÏùËoŸ14(ð¸:;b½Ùa[&ݶPjÚõoUV%£Ù‚åj[ s¾<Ržõ6f<”ñêËT%›H“ï%Ë úÝfÍ,eSšæLfr)ôº² W…(ðê<#É’ÑËšà»÷ÌëCöG#ðð,­VlO+Þ}þB¯á:6û:ph³“F×4®ÎNæ”k1YûŽC§Ñ }Ú !>ÄqR;"æË5yQðáú“^e/Ê IDATEUÄÙ¡ª|þ2`ï™ÌW„¾ƒc™x–B'´Q• ]?`3 ä&Þ‰!ܶLÚ"/™/7x®Íûë{žÆS†‘¢D¦¡á¹6ûÀZoUñÍë ¾<ŽyNjL¸uÈkpKÊüDœ1I‘Ñ}4U¥ÛjÐn ?0¨àšª j*ªªÐj|yâ8Ö¡byNãïè÷$ÍxxšÔ^ÏIs!ZÈv#” uxuyÂr³;d¢lv{®ïžYçÒjüå·Ï‡ú3Ã6 ,Ë ÓŠ(«JÀ´®Mšì“½A\qzÔå¬ßÁ´ÄÏëØVÄq·uÈÀ˜-ׇªOU’4åæaÈý`„c›òœöÙÆ1?|õŠ,˸¾{Âе%¸Œ+Úͧ¶>ªŠ\HýN]ÓP5•óã.Ž-~j…n»Áÿöûo)Ë’«³#i³¶1½vƒùõ#†®sÔmú.íFÈr³c·ßs~Üå¸×¢ÙŒGOì·kv1´W/z\]\ÒïxÖÐ5>Þ>r~ÜÃ2Åéb™¯¯.hGÃqÈp<% lÆÓy‘‹dJר²’ÅrG5Ý’+»ý”Fè£ë¯{öb§yŽ¢¨„ËQ§ÍI_6®i–¾,a–2ok†û4ã´ß>ä±H8•|ܯ.Npm‹›‡!¶)ôçÙrM\G 4BŸß>ßññöW'(ŠÂx¶¨9œ§}/b¹ÚJÞ1 ¡mßÞ‰÷M•<]×Ñt±¸ýÓŸÏòzKQ ¹úÕ›+¾s…®‹%P@%™¼÷IÂl±â´ß¥ßiò0œâØæ¡#=;êx·C»'¹:{Áé§IFšåõ,P.‘$IxMXÕäõ‡á„ï¿zÁf»c¶Xc¸3@,‹†®É󫪊4«u"Ô6•WSAW5¶ñÙœ´›2°þÛ»k4Uå¯ï>óþ»ß³¨µCªªºã)ŽeṎ„Uy)´âÙB*ÁçlŒ¼ÈYn6EÅbµnîŸh„>_½8'ôVë5ù~Mš§lâ”ù*æþiÂ&Ι¯6¤Y.4Ëài<#pƒ?öâ¤K·Ý Ë Þ^quÚçùðï·Œg tMgŸ*\õŒ¦˜†!wS˜o›­ˆ2G³¥Ÿi-¦Á§»G}°ÝÅ(í&Óù ß“!lè»ÌWŽ»-‘/²†ZZP%¶-/Ñi¿C3òq‹ÕzÇãhŠª‰x¶YûHÅ2—Pä…x‘Ë’–Ф®Älˤúì“”²¨øË»O¼8;æöaÄ.–ê§w×’§°Ù‘d{wM¼O1tÏw\S–%ÝV£®@ÙÔ§ƒÑ´žC™ÜÜ?á{.¶%I{ï¯ï9î¶ÉêÐÇáXÛ¶\RÏr©ÉlIx÷Ú‡K쯿}&ÍrÎŽº˜†.¨ÿEÂ÷o_àØ&†®óÕË3Û4ø2Ñk7yy.¤V¢jò^ß?9é·ñ‹÷×÷P¤µÜ#'+J6qÊ:›s~z&ÝrÍbµa:_²‹-Z_>Üpuv„ëXø^À÷_¿f4žP9ï>ß¡PB½æöiÉ÷_ŸðÝë—Ì–îŸÆ¨ªÂb%ϹKC²`RñY§iÎç»GlËb¾ZK>ˆ%ȳ,ÏqlKä/«-Žm2ž.°-“»Áˆ§±¸©¶»=ÛÚMeß¼¼`±–B ÎŽ:LæKZQÀI¿C»òe0"ô…îR%ƒÑ”y=“3 |¼¾:å¨Ó:äáüòñ†²¬øò8䇯^òåaÄQ·Ér#‡çE=§¼Œøôå‘]œ5â?aïÙÅ «íŽÅjMQÊ6Þ§´›!¯.N0tÙò~¾{<@ 4]ºÌÁH›¯/O1 ÉlUÇO<‡]ß q=‡íN|Ï ã„ç|½,KtUű-\ÛbZTx¦I# Øl6 TÜ Æ¬7;<ÇÆÐ5¶k©âN:ôZ Þ\rÒkó—_?qvÜcµÞÒi†rê¯7øõa¡)êAØ);fŸŠn(Þ'l¶±@rÛ>‹(OŽ:”O\%l71†&þPÛ2™­÷l¶1aà’—›EÌçúàc¶˜É?\?0M±-©J4]ãîQ¬bƒñL‚fjªË`4Ã÷)Í×[â}J’¦Ì—kN{í;/yOãùÎk[&Ÿïœõs~ûüå0Èî4BvIRÏ%réëWÄIJ3ôŒf´A½Q×èµ"!.oc²,§Ûn°Û'¼ÖOùæÕ%‘/@Ú$ÉHÒ”Ûû!–iˆhÜ4|—ùrsÈ`™Ö•vœ$u[³Þl±m©jÅCÜ¢zì’„V#àß¼Æ÷îŸ&4Îñ„/VëC{–¤™àͼ¬Ö÷¨ŠE’¦üÝwoØöùjƒm[\öi7CY¼96( ¬JÑqÕ-óf*”dÒN=Ós&³%­F@¼Oøò8âú~ÀÇÛ ]«³Zàýõ=—'=lËäãÍ#y‘ó8šÐiEt£)­ÀÆÒUÑ8–“Å–ŒŒÿûÿÈöÿùG&³%½NƒW'X–Ðz¡Ïq¿Íë‹SFÓÃñ‚ÕFfµ†írqÔÐjƒaû¼È þø‘n»Áûë‚ÚÃ컎¤÷i¶e0Ë¡r÷4&ò=ÎOÄ­±Úlñ\Á·‡¾Ç_¿d±Ú¢ª Qàs7QUe¦Úóe0:8‚t],bi–sqÒ¯µrÚ 9\:ÍC׸È(Äw.O{ĵWµÙÒnŠž°ÓŒkŠË>Iyyq\ÿ®"éqmÑ@Z–Éq·Åv·§ÝŒHÒ”$‘"aµÙ±‰cš†ç:üùçƒ[Ul㘧ñœínÏOï¯é´u–Œ¤Èýõ·Ï4ëÛ±-\×f¾Þ°ORò<çÓÍ#ÃÙœÉLÆF®-„›~§I·Ó¡ÛU8=*c[˜õ‚Qÿ×Ù¤ÏYÆt±dïé¶"Ƴ%«¤Gýó_~;Ä8¹˜”µõ毿}FUU¦óO“y]5í8?éQU%Ëõ®Ö{Iù0œ0™/™-VäEÉi¿#b^p}÷„¢*4B™»Mf ž&3|£d±Ù³Úî‰Bi ¾Çj³#I2–lÙîö²=õ\V5…˜ª¢ÛŠøíóAK…>³åZ€–‰eè4B3êšÆõý£éÏá(_P•%gý.GÝ_ÃC¦q£†j5B .2 V[ñP>Svf˳åZÐßÃ1y^Ðï¶è6‡Ô·Él‰¦iuû%†ù¢ÅÌl¹¡( ùû;‚Yßìö÷ÚÌ—kîG¼¾<=dgY~@Í×[þÓ?þ‘Àsùúåùa.VÖò’¢È…8úlc±e5‚:ÿ¡CÈu¬:”j&íÍ>­ó–….“®2zí®mòâü„$}NªpF’¦\öyuqŠmTÀ|).S×h†¶e2œÌùtûˆi<§¨ª$~y”þÅÙeU2_mŒ¦lv1ß¾<ٮƉMæKú5°£ßmÖÙÃBDÑuÍ6FW+ÞœµY/ &‹5*)ÇÇ®ÎN™-×\žôéwšÂ Œ÷8¶Éß¼>äÑ )'/JV›ªª“W*j¡°‹sB?àa8‘ îϹ¾b8™ÓmEœö;¨ªÊb½âü¤‡¢*žK¯Õä¤.,VÁ”yŽM¿Ý¶MŠ¢d½ÝÕ±™ázÒïù>EYqÒkcÛ&‘/ìÂß>}!ð<ÒL¼ÌÛÝž¥/Iu·O\³ÙÆâþ°M¡-V<ÕLÁÅrcÛx®TQ7÷n‡Œ&sû4"Î{¸–Å·o.ysOÿ¯¨*tUåa8áÛ×—l¶{**ZQÀj³e2ói5ÂÀ!þäVCÆH§ýŽä&ë:ÉJ|âÐGU,CGàd6ãÙ’Í6FQNûm¨Àu¤ö}Í{bVüë|fЕ•û›fŽe¡d²¹ùôåžß>a<[°XnxuyÂt¾¤Ój°ORÖÛPxÏØÅ1i–‘f­F(àey®Q€i¾fK Nà9x®´Qß¿}!®Kà‹OÏVU\Û’°M§ÕȲ=ãá€Åz®IŒænŸrqÒ!NRiy†aðåቷ/Îè¶ÜFø®‹®éüû?|Ëå‰ÈmtMƒJ2|Ÿ±_ëíNPéQ€ëXüO«øsY–³‹×¥ÛnÖn‘ò@.뛽Ýéwšu檘ҟoãÕfGä{eÁd¾<$¸=ÿ·çØ\ß ¤ªÑµCøÐç»ãÙ‚¯^ž3YˆrS#¾¾{ûS×YÔU÷l¾b¾ZþAû¬Ã¬ªŠf(úÃéb-Bð}ÊÃÓ´®/ùíóišñ0Õþz½ÅsþËbµÙ2œÎQ•ÅzCYÊÜ·ÝN¦¤iÎÙQ‡²,™-VüçÿñW’4㇯^òîóÜîEAQXu[Ü=¹Œ%4«ÞäN+q)Õ‹]×xyqB#ð‰ÓÐùüå‘‹™Ïýÿý¯œô;$•̇V›»X¹¾çòîóÿý¯¿ñ¦¾(†“Ž©2^ìXlZM›£N“^»!ï°iÒmElv1“ù’N3Â2Ì:NrC’ɼöÅÙ1Ÿï™ÍWD¾Ç2Ûò˧/Ü F²…Í%öàöaHY ži½ÝqÜëˆÿ7Ëñ§ö¼JD¥8˜LK¾~yN³0šÎÅY’‡”¸ÁhJ’¦tÛMö5ÿÒul‡S™nc9Ä ƒfÈ»åÚ¢…½¾Çuìú07ÐTñlÁ.N˜¯DpÝjD²¬3 !ª·"^œÄêa ÞPTÑo.WÛš(£1_­1u·dy.ÁL™ÈéÛÆulŽ»-z&£É‚ªªð=‡—ç'x®M¿ÝÀÐuzíËõîpýôá†,˱L‘ãÌ—kªª:0Oû¨©X0š¯™,ǜ姗 at_VzõœÈ®(´Z¾#Û*üðÕKZ‹ï9ÄIÂ_~ýľ}M3šòp:'IÄðúê”8Iè4#¾zyÁh:' ±ß£©’"tãuM“y:è’úí&ãÙ¼6§[lâ¸VÉ»X¦qˆ!<é·9$yžcY&¡/ÏÖ2M–ë ¿|¸¡Ûj`ÖQ„Ï™Å24—›°Õ\àÉ&þi4ã?ýç?rzÔe<[²\I†ïÝ`L3 Øîb^œÓn†|õò‚W'üÇ¿ÿ?þôϱ |—ÿú§Ÿi5Bº­†l%}8I±L],±n«A#ð˜-W†A§)ÞÊ(ðùxûp°:5B±.©ŠèE¿{}E¯ÓÄslz&yMÉòß³i„ƒÑ”õv/ƒí,ƒJ¬«íNf‚Ý6íVÄíÃ'Ý6žm“BNÙÅ{NúF³Ûíž»Áˆ^»QÛ§ ®ëª6«ýŸð‚ÈwÙœöØ'1Çíx=g¬ŠóDS×zÛÝªŠ“£¦a»ï¯ï¼ÆÇÑ”/Ãwð¨Ûän0Æsm~÷õ+vû=—§GœwùúåùAGÚiFL—+^œ“מ޼(Ð4§ñ\r‘Óü ª?ëwû®©\ö‰ÓUQ¹8é1ž/ISœ.×B!º}|ââ¸ÏÕÙ1P:¤²*y{u†©üé§¿2ÏøáíUÝîî°Lƒ¤öìÛ¦Éj#RžõvÇhºÀwmæ«5«Ú¿~Üe¹ÞâP¯ï\ß?Õ"lYfeÉb½¡µ YowÜÜ?>‹Õš¿½»&Ër†Sf‹ëíŽÓ£.û$åæAzFm‡üùÃKYžãtEÒrÔi²Úî˜ÍW¼8=fŸ¦”UÅÝãˆÅj+{Š·Ø®ÛX3_¬0½5MÝÆ° ™jªŠ5úÇ@ËMÆ«9£ù’0ðäcñ\’ú¸¾°Üìè6C S¯ò¬@SµCàôóág[&QèÍy^¦£)ã™Ü(aà2™/ÑT•^§y¨HÛM’wZ ¢ÀåËý#g½&¦R¾kaÛ&I–q~Ü“¶+ÍØîbÙ,%ýN‹ádN; i7CþüÓÏ%Ï3òBìTª¢²Ül¡]×xûâŒÿú§Ÿ1ýþžåy/™“e/Ïq‹gšŽa蘙Žmšô;MÖÙFÚ¶…[Ë6ñžÕf‹c‰¯w±ÜpyÖ'Ï ºíçÇ=NzÂÀ¥,äwy^ÔäyI¿Fø§YF3 øöõ%gudéÍÝ€ózγ¥5öjùÒsÅ=œÌxÍxx³­ÛçÕvG·f·Í—kÒ<Ç2tžÆs’,£ßj (>¦i°\oñ Óv£F)(¼8?†.zÒéb-1ŽY&äËä¤ß!Þ§5öËb4™ã»6vKÙŠDx»Û'|ûê’VSΛmL$\? ˜Ì–Œêáÿ‹óc¦ó®cqYëç¢Ð‰ƒ®óã7/Y,7Œf þðíNúm¡Vë:·÷÷4C—F`sÔöqÉcÎ QÏŠË2Èòœfä“e»à8ÍÚY±ÝíkGFD^ˆÇÙs4Uå›×LfK¾}})|Ì$ãæa@¯ÕÀÐeÌò4ž ýN‹ùb-”îÕæÀL,ÊŠwŸï¸ñò\>òÿ÷¿ý‹ ÿMã°ìøýׯH³¬^ÐµÜÆf³ÛóñöMSQ¥Æ§%|ûú‚«Ó#&‹•tj¦qð û®Ãj»«£)<ßÕ.iUW|º}d¾ÚàÚóÕ]ÓïÄn¿âì¨Ã¾}ƒW˶TUe4]ˆ}ÖsäðÎrž&3ZQÈͽ¨Ê¢<,jdt0ãü¸K#ì3_®ùáíGþ壉€m-Ë`·—xÌfèË\Ósy{uŽF|ýõŽ{mѪ"ûÓ«:¿uŸ¤ §3V“!éfÁl6ái4£È š‘xìžõ3¿|¼ªÄ« ã)”’‘Њ|×!MbyzÔűL4Uh2VݲÌGõëj³ ¢*8õ°Ù¶L¡5×à‰¦©‚±U ÏË:Q>!ööì÷)scÍ`<«E«R=ET J¥¤EY±\m¸8é À1Ípm›³£®ÄCê:/ÎŽplÙXku”f§Õ¼?IÆz^O³ jø¦øRMÎ{¼¾<Åó¬•Éh¶<å²"ͳC¦°Rg±†Î§/âÉ, Š1 P[¡ç © O“…dS¨BMÙncÁ ×ÏË2ŒC&DEŪÎ~ÏÙÆÂWk7+κ¢šo7ð\Ëh2æùIÏsÐö óõšûÇ1üé=_½8“\SHR©Ü¾yuyÈ.RÑ\åyNä{ÙPZÓ€÷iÊt¾ª—OSz-YðÌ–k®ïèµÀ>NRÞß>°Þl™Ì—ئÌwû„¾zÁj³‹EVá:§}¡g?Mf|¼}à¤×áæ~È—Ç!ï>ßqyÚg8‘¼ÁHäPãùšÑ|Çb³§Õ‚]œÐˆ5`Uˆ!E^2¯˜¯6D¾ËI¯çÚœ÷˜.WüáÛ×uå¢ÕTIíÛÆ{&³åað¯( ýíÃé]׉€ÀsØl<#Y|•µ¾R‚Ö÷uþÊd¾8T‹O²Bà«®mÑk7øåã-'½6›]Ì>˜Çÿøë»ugÊ,ÑÆàÃÓUU¸<=b0žñ󇿫 Žm2¯øË¯ŸÄÎjÊ’£œ‰›&ð]UÁslž&3Þ_ßñÿáÇÃ2£Y£þ·;‰¯ÝÅ{>}yDSUŠ¢d¹Ù²ORÏå´ßáß½¡Q;¾Ê²b4]puÚEHó“ú^«“a:O“9ÃÉœÍ6®ÇlF!Π³£.GÝ&¡ï²Üî0tv3ªiìu…®) º¦Q†¦sÔkñ”lhF–¡rÒmãXæ á¹§ý«Íދӳå ßw8=î²X­yNø|÷È«Ë|×fµÞÕ"a™,7;Þ\1™-‰“T0Þý³ÅZ4„EI^È{¹ÚÔ¹ =« ·|¼þ•˜ßUmD¿Û% C®ïŸx}uÂÇ/uŠ›8Š¢àæþ‰v#äâ¤Ç>ͨªRD§ŠÌܼ½Í`4ãåÅÉaè\U5üÁux÷éŽUó?=ê’çïoîi„>ÍÈe¾Z“g9ñ>áò´O«2ž.P4•¢(HR©6Û:9žõLI–ÕybG¼c:¡ç²Üìh>†.•àp:çi2—ŠÇ¶ë<†;&‹§ýÎa&tóð„a¶l¾\ƒ¢Ðk7IÒœ~»I»1™/Ð ½®Ft‘6”E­ô= 8o„>w›‹Ú’ôoxËÛ«S\Çáç7(¦B§’×!:³ÅºÆ&‰hÛÐuÖÛnîk¿éXlqYNPo˜û&@*¬çö^×u]ãÝç;ÖµXÛ¨«šVpÜk£ªs|×Å4t~ùxËß¼"Ër¡š§RäuÔós¶\1[­É Yʹ†àÀöu»ièBeùéý ÝvÌÛ2Ï—|Ø'"ëB€Ãñ\æ|5î©×nðâìˆõ6>€A7ۘǧÉ!™ïYMñ—_?ãÚ&¯/NXn¶“À.N8îµØl÷þ]U´›"VÇÑ”“n[ÄÅÛw7c¾ F²ñMs&óŽe2Y,yu~ŒëØ´(2ViF//Ž =ÃÐé¶¼¹’èxŸòñËgý.—'­ƒÌf4]0™-øý7¯øæå†)¬Ï¿ûþ-o_œÉV‰„KÓ4šQH¿#ë.méQW9¿~¼­¹-©4×[îGœô;¢ñTà¸ßá~0æ´ßæü¸Ëÿüé=Qà±O“zac±%‚âì¨Kà»8¶Eó9õ±ß‘¥ˆªp}?" ºÇ¢NEWsÐ,«,¥”HI“^§A±SpÎØmÖŒ&SÙ¶% ?}¸¦Ûnòêü˜ûá˜Í6æâ¤ÇÅIŸFàÖQy“ÙJY©è¢â}Âø7ß3™-iÔ´†õ6®çk¦‹%'=º­£éÓ4Ø.7¬7[æ«5¿ûú%fÄI¿c*ÌfSª"£:Ì7ß¾¹À4lšQÈåY¿¦RÜHH’m‰‚Þ²(Ê’ÁhÆl¹BQZ¡Ï/oDè¬k|º—A軜ô;‡°žùjÀ¿ûñƳ¾ë ( aàòÃÛ˜¦Øï¿â噼p˵l£ë à üÛ;ºíÍÐã·Owb]ÚÆ¤Y·Û{ZQXW½!¯/Oˆÿöç_°0›sSЗë-Ãé‚ÿöç_Í<¦„Çz³ã—·üöé‹ ëëÍåp2#/Jã)·CÙZ悜:í·‰“ô óé´$£ú‡*ÜÒr±ORú'½öA(}~Òc¶X–]ëm,9õ,m½‘V+ ¼Ú)PrvÔ¥Ý- i7BBߣzTÌ+Ij[o¤ UQ8éuØîb^^žòâìˆéBtÃãzQº Ìwû=ižã9Ž´ksÙª>'Í–"ò-ê&Ui°Ûí §Ü?MPPêD»5¾çÒmE¸Ž%’ƒ]ŒkÛøŽ-ÿ¯*ÎŒ¢(y(Q ¿]¯Ý ÓŠXmv|÷æ *iulÓ`4S–%Išñ8œF¶eJ^‰apqÒC×T¾ FäyçÚôÚbàOXu5ëyÃ/ÕYϰ³Zè¯Ö}çX,ó¬†Ï$YAœæ(±dHDÇI¿Í›ËSÖõ%ú¯/%Vt½‰QkÜj½§D¼¯FS™iÚ7÷O$¾O}—‹“.·#@Á÷\TU•4¶¼`»ÛsyÚgŸfuç²g½Ùññö]Óë%…)£ S¢%u]EaïñCiÔs…=¬»…í.fŸfœ‹ <Írîcy®Írµ9Ìà¢À£ÛŽêŽ!cÇüþÛ7´£€û§1ËÕ–ÍvÏl¹âi<öLZ€áxN¯-ÙàO“ Ï­‘þ{nîŸÈê÷rïù|7À²Ìú‚L™Íåµ,S¤\eYK®æ<ަ‡CÚеµùD¡ÏùQ—átÎõÝ€£^‹³£Û]ÌŸ~z'–ÊÕ†«3™×‡¾‹ªi ê!érÚj¬ŠA_Ð IDATÃ@ <öIV£§AS•ª>¨Oç~»Á|¹f:_R£ÉË2)ÊßqêVFããÍï®ïØlc.Oû¤Y.s¹¼ ×n –FSÙïS>ÜÜóùË@ÂÇcAeUUÅû›;lC€Ÿ¶qiº!Jq¡'ŒgKi—‡œôÚÒι"•<Ù€N3:øw_œ¼´ÏžTU•Ë4tÜZ‚RU¢òßìb<×f2[Š‘[UqëxåER%u[’>_ûu[ ©¦–ëÍ! õ¤ß&Ës `ªÅázíŸ~v:|¸yÀµ-þáǯÉòœO·DuÉ?_nØî÷5óy¿ORVëû}Æt¾BUUÒ,ãêìˆËÓ>£é‚ Æmã=·OtÛ 4U9 ËÞ¼8¯å*gÇ]f‹Õø.»ýžÁxv¨œŸÛ]MÓ ªjŽãŽÏwuƒÂQ§Å|µá—74ŸùjÃj³ÁsŽ»-ú&Ž#Hö^«Áp:'Þ‹ðÞ0t¶»„õv‹¢ªhªzþéO?Óm7øéà ÍÐgŸf¸¶ÅŸ~þÈÛgÌW›Cµ4™‹Ü(ôŠªd—$e…k´#³£aq7zÎÇ۞Ƴú½¨ˆù÷—eÉl¹&Ë >ÜÜc[&×wO¨šŠm‰©@ÈÙI’òÏÿò+EYÖÀIY+Ê‚ÁH0P®c‘¤’žVÕ1®ãÙEQ$¿×0è4Š¢ üÏŸÞsyÚçîI4¥û$9<«f$سÅjÃf·g¾\³O2 Ê2Žº-²,§Ý ñ=—ªBrzë0­,ËYovì4•ª¬0um¼g0’€¬ïß¾ ¨ŠHÕ¢Àëe8lz­íFÈhº NÊB(-£ÉÓ‚¢>“}RÎŽzuü¨u ¡ÌòÙÒÆû„¿½»& <ãéáÙjšVÓØõ–Wf>­¦ÈW¾yyA¿CK^²XÌ^“å9¦¡Õ.„¾xdㄳ# ÏÒu›û'þöþÓÐQYdô;òá§²‰6uÙ¢NbS ïõœ/ÖüÓŸ®u¥ŠaPUÒbŸöZ,ç3â8FSf«5“… ­ž[[ÓÔ1tÁh†Rgc/×[.ŽÅ­ñêü„$Ëøûß}…V+®NØÅ’ðfè:ŠªpÒ9Tè{R(¶eÐï614]ò´Ó”F Ë»¼(è¶ø®Ãz»§õ¢EÃ4eéù®øî]›ÙrÍý“X Ÿ¥XÏÚÕfè£éÚÁßïH…g«Í¶–] TuSÓÙO:\ß ˆ—²ª(ª’gǵe6G­7âãÙR 'E!]HY|Ê–iÈa©Ša¹Ùr}7àë—weiÕk5ØlãÃï;šÌÍ„wøæ…è‚à Ãé\rž³œN«ÁÍýËÛ«|;rñgu´ínŸ`–%³õÏWÙÆ1¦_¢S¡Ô± ºZÓ+4MH«†®Ñ }LUòm¥ÒkÊüƒÏWRÝÖ5 $çþi‚ïÉp¸,*9hLƒ­¹g2_ÊJ»ŠÜã¨ËÃpÂ.ŽëMªÂQGàŸEYpuúŠóã.‹• †¿yuÎvóéæ–VäÑ L²¬ Š<Æóÿý§O¡sźVÕŠxUQ/º¦’ågǽßm5Bßå¨×¢( –¡ŒØ¦lâžó’$ÅsÒ¬`µÙÕÚ*!æžË|±®ýÈB½Œ§œuX®¶Œf ša@์ç â}ÊI¿Ãß}÷†ÁhÊ~Ÿ°ÞíÄ‹œHÅà:6Q(¹*TrcµÖ±HàÚŸn¹8ésÖï ÔUzUU†N\ëËÂÐuÞ\I išeÌ—[ Mãi.:Æ£nêPÛÁEµ"áf¹´S³åšV#àâD°Hzm%ÜÔ¡5ýv]ט.V¬71FȰn“õåóë§[nž}1°{®Ãj³;ÛK5“г& ±­XÚó>žãG°ªˆë¥œ¡k¼8?¦ÝE޲i°ÝI,êq¯…aèü›Þ’ÿ×üt]ãóÝ@€µUÆb>«cbtM%I2¡÷äRJÒŒ¿ü&r¢Fðòü˜é|yÈæ-Ë’¿½¿® 4b— }‡<³%χ†eò69ãÍ‹S¢@d4Qèc›fÝíäÌ2S\o….ÔŒäÏ}¾Ði†œôÛb)´L~û|Ç¿ÿ÷ìöI ‘û£N“~§U=J 7#Nz-&³íf„¢(|þòˆmÛ\ß=r÷8ª%W›:Ãw8™³OE[h™BñÖ M¾'Cõç°ß§ãé\¤W¦Ax\žö%O:ôy÷ù]×8?îшL]4²¢MÅWQ–|õòœÝ>áþiD’dÜF‡h•]Z¡XºÛÓ“(‹ªBUÉ"Ä2 C§Ý Iãm­ý“|ÎÐ÷0t£Ö *üøÍk\Çf0ž±ÞìÈòü`IyȦŒ§ \Çâi2çq4!Ï ÚË5WçÇ®ÃbµáþiÂs&IYU˜†Ád¾¤dy!מÃ6IDQ쓜ÀÖˆ\/p¹:é¡é6Í(`µÙñýÛäEkÛµU«À4t¾~y‰e 'sDê‚;¿³Û' ÆS~ýôå ç |W‚t…7â!¾8éc蚨ô§ Ý Ýpl[(¶–)†ïB2Rd+;#ªÚª*IzOÅŒ‹“Þa—¦¾'Û²ÛÇ!­(d±ÞJx¯#UùÓ„ÙbÅ‹óc™ÆAr³ÝÅÜ $þïn0fµÙ æ(Íøÿ©z“fI²k½nyï}qû›]µ(àà{¤H‰”I&‰¦‰ÌôoÄ‘þ–šP&‘¯^¨6+oæmâFßx„{„÷®Á>7i˜•Á ¨Ìp÷söþ¾µî§è*.§òpoüÝêÕd±¦, ùÏWürÿL»QãÝí†n éÚ©ÞX–pÖïª2@Y–8¶ÉóüHñ²]®Oô”’ò$9Ó”Ÿ>>©›FÉŰÍj»ãû_î‰T‹g®$ç/³¥4ÍY¬¥!°ÛK{EÓ4µJOf1Ë4ž'¥™Œ7f«-I’òîö’V½Ê1I(c9V\‡vC2v†)uQô; ΢dôU8Snë8NØ©Ûmš§—·´D\õÙø{\GZ7Ǩd¹ñy{ûáAzº³Õ†JÅÅs]‘Ö· õáaÌå¨OYÂT!Ѷ;ÁJm÷wÏ|ùæ†ñt©Pb6Ï3Lj§éBª†Îå¨ÏŰ‹¦æ{y^p}> IÅÇçŽeru>P£—FÕcÐi³ CŽGqô»M¹ÎÛ6ÏŶ$ˆßi6°Mƒ¼,8F þþ”´›un·*aš2/Ÿ-â Ýœ_îÇ4ë5u(î>8p{yFYŠ×&JšõooΙ-74ë ݉iP«z2Ž9F¤YÆ›«s^_ŸÉ|°V%²S^#FýŽjºX¤¥çÊmÇNÒS8Þ”JH!3®8êÈtÁ§û¾ÿùNVÒƒ.W£(úrãs„Ô+.‹µO³QUÂó„w¯®X¬„¹wŒbÞÝ\ˆÇS×1 ]$×Àxº¤Õ¬ Ž*N¸{xÆSŒÕv'1K‚ÈB‰yš®Øî¤‰NìÙÌw1W—ÒYL’L¡Û…~+WÒTÄ5ŽÃ_~þÄ››sú&UÏ#<Ùl´–F‰|fKQ€ µÉŸ~º#Ïs¾ýáƒÄ)Âhíï¨zBì½ÏTWN¯¯ÏÐ4+\Žä¸¹’çâ 6 ÙŽ½¼Pžg|ýî–Q¿ËÃxFpˆT“¥díïy{sNžçŒú²±•0yÆÚ_Ãt¹Æ¶-œA—ÅJˆUÏ¥êÉßÍKh7I3\Û–êÚnÏx&ùÍ÷cá:¶ä¥k[&«í^¶}šÆd¾æ'D±„ØëUf«-ÝfC³ôÚ 4JÅ5ljc‹$iØïðêòL1 ضÉù Kœf¼º:ã—OOj™fa[ß|þ JÔâL®NyÿÏq$?6ê1ž.yš.È‹‚«3¡OÇIªÐPðááù -Ë‚7×燈ºziU=Wœ;Ïqpm›ùzG«½eÑØ%›ýJ˜­6’lÔäw©ÂÇq’p6èâØò2|iìÈË;£Zqùý¯ÞÉË÷c:gƒ.išñã‡Õ?—аë84jU\×a·ñ÷’—k7kÔ+on.xssŽiè'òÒ×ïnUs¨ÅÓtÎíåètÝü4ž±Ý¸¶Åù K’fT\‡ù]åjs_”%³Å†4K9Ht¤®Jš®q}>À2MQX´›ÒôAÃü}xj{ì‚aOÀÁ¦iÐiÕI’ôÔƒ÷\‡çùŠ§Ù’OOS¾~{Ãþ œcjšIšRþy½»¹<]ïý}ÈÝÃ3ËÍŽnKê¬á1âýý˜÷Ÿ¸öøâõßþx‡cY”E!£<ËcpêùhZ ‡(yŽÉl¾Ç4t9¥,׌gKn.¤]`º3U‹C0õ-–ë-gý.Q$Rô³A(Uû@îïíVé|ÍFñä4M4¾'Çg]×°,‹Ùjà ¡újÔ“eI£ÆÆßÓjÔ9xŽE–%Ä©ˆzëŽ+WŽZÕÊbµ[ÓlÔÈó‚ªçáyމ_£”í>à›/^Ók78cºíƒn›·×2Ó9#ooøßÿ—ÿNfV72x)黎M[á¦.Ïú§zÀ.bG£. Ë4ðƒð´ Îr¡ýšj.Å1Á1"Ïs®ÎúÔ<í>¤ÓjâïÅj?êw”À½ÇÚß¡kºÒ è4ë5ò¢À4 's,Ó`Øm‘eçƒ.©šñš¦À/Š¢8m¬MC§£P\išc۞ꢈ/ßÞÒk5ˆUW|¾Ú k·W#îŸflý@eÏ CçíÍ×çŽQBxˆÐ‘¿oÓ4NÓ/ùÝóPÁßÞP­xŒ§ \ÇÆµmʲ”ßSYâ+@ïg¯®”Ð[f“Ã^›F½Êd¾b¹ñùÍ—o¹õyÿÄ_~úÈç¯.…çHI«QƒBzÞíf(É£„m¥ã¹O”}"Ç Yo`™:Žeñ¬úк®|?~xPe“ÅÚçpŒøø4ábÔã³[ÓîU×\FFP›[ \WS~b+@ÈHQT'sü½:Å«tE£ZÁsmú¡kwšuâDúø_¿»åÝíÅ©Rjè:Ó ¥/ ‹ùzK³Ve¹,ýK&Ó¶LÎ]ù(Y&®#ÿž[Uu›ïxž-iªF»QÇq,µý¶hÕ«ÇË2™ÌWä*ªåXµj…ÕvÏg¯®IÓ”$Ëè·e/àyÎiÉX6ãÙ’í>gÅ2±M‹(Š$1[àÚòQ™¢08ëËʱmFƒîÇÌk½6¿<<ó4K2¢Y'Î 6á’v?£ÚîÓT·M]×0_"š¢ÿæ…yG½ö¯>ç_|óŽn«‰®ë‡“ùŠßÿê3>}E«QUJÙš•ÀÕÙ€<Ï)Iæ&ÓåMÓ©èÚ©˜]¯Šû#NR<Ç–†B«ÎåYŸùrs4ªü}ÀÃóülÍR§Òtí8íµ›ô;MŽQŒ® )CNM¶eq9êŸ"6ÍZ•¯ßÝr>èÒ¨UøÿðDm:µšG­¬a¯Å1ŠÙîZ:oo.8*òˆ®ëÔ+W*GçÃ>õj…ËaŸËQŸF­ÊólɨßÇ1:Ez­õjEèsØú{!üV*œ »8Ž}‚°zŽÍÆ*ÆnòÃ/DIJp8ª¥ÊþyÍóœÏT<ï4ß}œ,Ôlì~,Aì¯Þ ˜sÐi1êwXmv\ » {m,Ó ß}9èÌ–ÛR´v³&áåAÆÍÅP ¦ŠÜRQ‘Œu´—åLÅbÍdA¯ÓÄÐåSÉ2&‹ÝV“Hte»ÃµmiRl|•?l+0BEf¯û†i(±\ß;­Q,UM±©Iíeû¬!²8“ñeæ6žm0M‰íÔ]‹fE#Ž#³¿ç·_¿£×mQq„.2[nð÷¡scYì|÷þ#­F›ó!—g}LS'Íe¦×i68D1£~‡ï~ùD½Vá‹××ür?¦Ój h³%ŠEùèïCzæÉ«ã:¶\iq»ÓªC Ã>Ïó¥è+ŽGÖ3!ØlGò¼ Ý¬qÖïÈø(Ïi6jÌW[¡Ï ñùë+^_Ÿ"þüÓUÏ£Y¯ñð<£â¹xî?W [õfC‘ç%QœpŒ "~u9ÂU¬ÂF­Ê1J?3<]Å ]ÒD`ôvfƒNK)=¥õ2¸l³tÛ šµ*“9Á!"MSlË5ÞÒ´”"/x}%Œóaðë/Þp9ê“f9³µÄ¾®F}i§U½SÝÖÔ4M‚¼JçÃËåBŒVÕ †©“&Ç£`Æç«-ϳ%‹Õ–½º®í^6£¶Ít±RåpñL¼Üÿu½­_¼¾"ÍÆßc™Æ)>ã86eQò<[r5û\£^e ”r¹ñ©U+2óÛÊK¡Õ¨‘Ò0 7Wç¤iÊvÊQ¦‹ÍI$•$)³Å†Çé‚N³Áb³U¨*¡{èš~B‰ÖÑFCg»“¬Úíå¶e0]®yw{!ÅxKæ˜UÏá¨f­âLŽù¿þãß«4åÓ“ÐuÎ=tMãú|(/kõƒÎ²Œ]xÀ4M6»=ááÈx¶T ²…ÚÖéwš|Ï(‘kN·ÕTíŒñtÉÛë JJ>=MåƒÖnr>êóñqBx<¢i:Ç8æããC7èuš||œp6蜮¨R1;òñQâT¿ùâÍIò½X ìÂ:T<›/Þ\±\­øp ¥ÚG,–s^ßÞH¶o¹Ásª®C ‡#¿Üñ\çÔŸ½{œ0]¬UØåããC×ùñîMÓpß àVS°éBj¥ÿø—÷|þú’Q¿ƒçºÌW½¶ÄxT«£VqO¤ñ¢„ð‹¨(h7ê"Š$ ¨þ²­\ÕéIúþÓµj…(–%MQh'³[’Š˜èq2g²XóêêLDXk1ÈÉÖâDb,ºúÀtšu Å2;|œ,äöÑp®À$Êb›&¯®Î؇G!~«ö>R…ç:>M¹ϱ-“Âê|uuÆ7Ÿ¿¦¥Ô³ÅšÂýr-îáŸ?ñ\—(Í)4Ë«Rk4©×ØŽ#AèsÓ><°ßîØ’Qëª Z¯Ýà|ÐU&°„‡ç9¯.Ïxu5b±öÑÔÕ·^­àXWg:͵jEÐú†Ap<ª\’€K,ô‡¢„(‰‰¢øÄó\‡¢(ØF½E‘ó§–JÈRó,¶ûn%düí·?% _¼¾> P^Vð½Nó”þ®j²té¶äßIúAåŽògp1ìɌΔ‡ä%Œmºh ‹BLMgµ•¹éxºd Rh» øOüž›ó¡rô¨V\^]žI UQr@#JRF®ÃÇÇ ‹µ¯´~"*ÕÂcį¯Ä𤬷{4Mè=/‰ö¼(™*=à a÷y^HL)hêKqºXq}6P\¹øtrI²ŒÝ>äîq"õªZ…ZÅåË77h‚´Ÿ¯˜-7P c±ÚJŸºâquÖ§â9ÌW[†½6ß”¯¨U*$©zJ4ŽQD·Ýàj$ …ÅjK­ê‰ñ¬Ý4‚ƒôǵꉚ³Üìä¶—P–ôZâ”öûÓöZ|ÿþ^ 7!Ž…6¾Ùí©ºr2[n}ÖÛ=çÿÜ?3[®ñw;v¥ÑÃñÀ!JÈóŒ›Ësú½ãõªÅd¾æþyʧñ”+_k6jŒúÞóÍg¯h«eK–Wøæ‹7Œzm6»€õvG·Ýä¿{/7'¥ÚrõK4®,ù¯s€­z§hÒr Ü‹!ª®’âr]•¿$JÁ÷|zš²T5–4Ë8ëwäJ”e2'ˆU†ŽH’”nKfooÎÉŠ\flüðË=­z•Ï__sˆ"úÝ–XÌê5Aã%AxıLÊ—–F”ÒªÛP–,VüàÈíňÛËõJϳɳ‚ñ|©8ƒ9EQru> PÕOã©PG¢ǶYmwØ–pð.F=\Ç!Šå˶Úì( ¹­·{â8EÓä í*P–ç'øè«Ë¿ýê›Ýžz­B½Z¥ê9ìÂF­Æ°×¢,%S™¦¶e±œzlv{ò,ÇßËËß±mùïß¿¿?93êU(IùöÇ;t]ãq2Wâ¤=®!gK&sɺ5jUL >uÅx¶äò¬/™GE‰â„í.àbØS0ë.“”µú2{m*®DHRÖ}ÁyýøáAº¥û8Éh6tÞœŸ3™¯ÅïqÖç³×WT\Ùè^Žú´5²Lá1&8D¼½¹dÑçÂ,K Q¿žã4åa2µd«®æfršŠ“”…¾e?=`›&çCyìîm‘ªñ ÛF×@Ó5ö»…n³X­Ñ51œy•íOïiš1èµùô<£¹“Üæz»ãÏ?ݱW¤’WWgrMÕuZMY&ìѬË|ðæbÈ_}õ–Q¯M’fŒgKÚÍwÏ8–ÉólIRhheIQæüåý#qVb[6išpsÖÁ2̤àúlšÌöLC ÿ%oîlÐeíïyÿé‰gUçËò‚ñt!~Ë$„‡#Ÿ&§zæ·?Þ±Ù ‹òîq‚ç9ìÕ|÷Å˱ DqÂ|µ9=_Žmáyrʉ’Jy–kY~\Ÿ N1™Ã1¢êÙ´Uþð—1Oé‘§ç)IZ0UýêJ­N£VW¬€„åvÇúÃwü÷ÿò¯Hó ßßòßþÈz»£Z­2YíÂWúøki+Ê‚Škóð<¦È2fóƒv•Í6䘤üp7ÁµM:*I,»ÕfG¿ÝÀÖK¢ãF³Åx¾Ä±mîÇ3Z·#î‹ÞÎá~,#ŠÃQn’óÕ–a·M¿ÓDS}â—”äŸK!èºNYŠk`<_2?òü<¡^« ?Ï‹Sµâ £õZå´•µL“›ó!º¡1_oO¼¯—9ÏK¯ñÓÓ”n»Á»› eüêѨVøíWïhÖ«Ì×KÌ€ÔR²öÙrEÈrÙ,kš†î‰sHsN»Å|µæ~<%<Ф»Ójðñq‚©JØO³%çÃûð(œAÏåü׿#M3ŽqÂRÕä.U'Šùj7êüúó×4•Y­,¡R‘î£ì‚«ížínÏá3_ËrèýÇñ ˜Z9ÏsºÆýóL^ü¶ÍÙ CxŒ¸>²ß‡¼»½ÀB9ª±À1ŠÉóœFMµªÇãóœ4ÏõÚä¹Ôú6®c)¬TN'œ»”¥Fµâð4Yˆg·Ýd±Þžlq½¶ä…ùXœf¢/:Ó8‘ªQ»!‰üÃ1æx”@p–ål÷‰uìêl@½æA dÎ8[®9cáK.Ö§ |µâ¨Íe·Ý8µrž¦ Ò,çBÍ—kŸ,Ïi7jŒg+®ÎóS‹âj$§¡$ÍØ!ÓåFNèþþô‘«à½ ÿ@ðò1-‹××W¢¤Œ_'GÈbV›-Û}HžTÍŒåbB½ÞÆ©T¹‰¾Òód\³;Fô»í£®Õ¨Òûv[ŒzÎ~¼{b¶Üðë/^«9jNYÂë«sµ ¿ÿÕgÄIÊÝÃ3ÁáȳúÝFqBIɾûY²†YÆÍùC”p6訖Ÿf‡c|ÒC.7>ÿÛÿôo¨×*Lçk~ûõ[z­Žmñþã'êžÃ6ÞÑpuöeIÊ|1£W–äyÉ›kI>HÀäãã„A¯Él¾`(òŒ^»Æ°ßåb4äëw¯8D1ïn.ÙîöDIÌ~ç³ÙìˆãC‡ÊN–W1M Ó²™¬vÔ«.Ízn»AYj jpÎù@P|i–IJi+ÖÛ=ÿúw_óÅë+VÛÁAÆ3š¦±ñæcί®i÷Ϩ…GªQŒa»˜/}Ê4ËO8mDzèwZŒºML]GׄG·ñ%ýßnÖøOüÛ²xœÌé4ëøiÀÕYŸT ‹e¨c[â¨hÔäs{98a«I³Q§âÚ iïâ:– (ïxž-é¶êãˆ(Šö;âH~¬yQ2êT1tAÓ#- â4&Š ~*5—Š+bÔK¨Tˆ%Û2ñƒþ.äz4 Ц‹Á!¢êJöj»—×Ñ Ã/ŸÆb—ê¶OôÞFÍãþüž~§I¿ÛâñyN»UGÓ4º­»}(‘Œå†²,‰âìt˜Ì×,Ö[žç+þú›Ï¹O¢6—£sÏÔuA89¶…iø»PH$Á?Ymv£ˆZ¥‚×i²õe†ë!axÄ4 Qf*»Ö»Û вPÚ9U^žÉŸÊ')YV`ÛÓÕWÍo C#/uâ0å{5oêµ¥Íð‚Ê´»ÎN‰Èçë­ˆåuÐàú|(nŒf~§%sá¾Æ^ýͲœ8I(ÿ _Í IÕk7OÔ’8¶)¹À4ËùìÕ¥œpž¦lw_¼–—š® ®Óª„‘ªßɰ^C(ÉY–aÙ.ºaðÙëK‚ýžý1ÃŽ Žùûç… Ë»h¦Ëן¿¡Ùjã9.üþ­F]×$>³ NÎä}p`Ðmq{9Ä2uê5ï”Ù³-“ùN„W£½v“^»Åjëc:¥B_µšULKÆA¿þâ5UÏãrÔcÐA–¦i's¡(J-¹ê«šÙ»ÛK¶~ ËDCN§BX*ÑuÇ6(²Lñ…È6ƒóQOF$IJOI‹þ›ß}MÕs¸ól=c¾XÒ®{Tk-õºñÏ‘—8Iö;Šô€c–ä™Á¨×²Ò¼`8°ÝËìÝóDêØ6Q’àX¦¢ÉGeq‚¿¸£÷‡#÷ã™ÐlÚ 5—ö™®6”*ì-¶Å)vÖjÔplIŽ˜ÚË:X×Ov¸a¯c”$±D4åé˜.Ö\žõØîBƳÿê¨ß¬×ø4ž !e²À¶Lþåo¾´Ó‹sãïy}u®65)÷íâÎH3,ÃàÇüßÿßè4ªPŒ§ZYÄy–¢‘c%š eN·nSf1EŽaòñã]ôH²’ãÑÀÐ žgKéªöÛa„ëÚ}Ôïð0óÃ/÷삟¿ºRè˜ç™8'zí&Ç(a«ËfnîopˆÐu¨U_½½QÔ“œŸ?>òó§'Õ*wÏÌ–rU ‡H<µº.ýcÓ4Ð6RšÊ¼õ§»G†½Ï¡U«Qœ"e­F Ë4OWY]×ÔB«¤^óN[އɌn»Áo¿zwZÌ2•ÑmÕkäyB °\y Y¡b‚hÅ · Iržž×˜–ÁíňЇ´êþnéGâñ’B÷y{Sœ¬|I’'ž8†õz•J¥N»ÛçþyAžÃõÅÍpi4d^7êXne¹ê¹6ËÍV ³jTÜ µj…è I×é´ëêT½{¢Ûn0ì¶yš-¨U<êµ “Ù’cœ°Û ù9ŽSú&º¦ÑjÔNÙ/ǶäÏjÐå7_¾9áû/†=Ú[õPÙ–¸‰MÓàLþÕo¿d뇊ġ3™¯øâõÃ^›Åf”DqÊÆpT¤êeùÅë+ñ½:¶ÊÀ50MzE¶ôY–Sñ¶û€ûñŒ¿ÿÓO|ùö†,ËäeS«œ–Ó…gÎúX¦Áûûg¢(>ÍÈ^ðYI"[öŠcâÚ­ª…cŠ‹Ú´«´›uªO„ñmQD†‡ˆýá@Cå3¿z{«k¿úü5ŽeòÿþOôÚÿt¶MSx ï³ÙÉiíjÔÃs‘|ŽQ,ˆ©åšÉ|%`QOÔ¢¨dñ°·¡³Û8(œØK¼ªÕ¨r÷8ű,΢HF9EQ%9–íÒë´ ÌȳŒŸ?Ü3DL×ß|þö„Š £ˆùÊgíhyÆy£‚áTù›_«N·«¿!|ž¥8žGËuIRhÔ"k/å”?ž­h6jìƒ#?|x M3þæ7_¤ºaq>yöó|%þc„ýêJ(% pQr8ÆVÉ¥ ‘d².K¡øhNH¥Þ´ LCוgC=EQ°ÙøÔl% êOø e'©  µ‚Ʊ-:Í:†¡q{1"IS‰dPâØ6Ç(á꬯fMûðÈo¿zÃÝØ$i8°Ùîðô”Éóy–¨þ¤Ätæë#º®‘¤d%»cª–"Û ¯I” “„{¨`¹ZÑmÕA·A·ô»L <·‚iÈÂãj4`ã*å3Q5¿·75ü]@¢„8ÓùZ€šF·ÝdØk³Ý¢˜zÅãWŸ½âáyF¯Ýäöb„cÛèaÈ.80R8)«(t[ìÇH;y\G‚²º.Gzù„r%Öv0¯ùððÌb#ÝU™½æŠh°Øøhh´šuÞ).Úg·…¨%•/u´÷ŸÆP¡vÇ–ÐßK&Kß鼺<ãörÄ1JøéîÛ²°LC¤UÀ ×’SIYð8‹Ûs™.Öèº.ZD¯BÒ9¿ù«7tš 6¾¨ú ×¾|TÚ*ļޏ¶À>ï×3($Úíº¦©P¹G½&bñ(M”lÜd» 0 ƒ~§ÅWïnxs}Nšæ¢ˆªçÊŸ±aðïÿí_c銖%¦aŠÓEyžW› º¥ehEÊÓdKÇ膅ã:tºƒµz“n»#~™àÀǧ …d?S×í4͹½2Y¬éµ¶,®Ïë¢SUó—gͱm:Šlóæêœ4ËÐ4y94j•S2âw_¿c¹ò©U]²,Sžè#i’1™¯ù7¿ÿ•ªì­¯e¡ü¶Î¾xÅë«‘jÉèø{Y~½À?ÇÆq=Yô)q W––% ÅÃ1"M#ÖÛ€š£ãÚ†cË<}#ë <ðø<#Žc:u—a¯…mÛÇ€F­*u X+=ìQÕëËäjÔ'8åêêØ… ¾²,gØk³Þî•ߺ`±ñÙ«A§U'Ví —›G­*È7OšMMÓ$•]lý€4ÍIÓŒ»ùC+X®}>}M³V%IsëÊÇÉéÅsÅV“l[”$☈cjžG½ê1쵩WW%)?ß=Òk7(Š”ÕjÉîéÖ,öAÀÓ|‹N®•dE‰†N^””šA»îÒ¬{„QŽegêú ®mb ½Ä±t¢$#Éò}J–ĸ®Í>‚]°'K:í6†åP«Tpl™±ýøá‘«³þ c_”ÂH|š.x{sÁÍÅMÓOaJäEvŒÕìGÇsþô㯯Ï( ™¥íéY¾°ÿn.†„Ö«lÓÄT8­—ÂýbµåîqB·%×Ëa’¥kºvª¾ÙŠck&íF MÓxž­è·› /ŸPâ-βœ¢,0Mƒ$‘9é><°ñ÷2‡­¸\{´ê5 ]S}Pñp¼Ì"mËR éR‚§oo.OªQ”ò Z&£^‡Åz+µ/Wô‰l@wûW¶›Û]ÀÆXn|]™ ®7»“äýpŒY¬¶¬ýÝÉ(ç!ãÙ’¿þæslËd±ñùþý=£~›/^_+Ã*ïuÆ #›v ê#õ¯F•zÕ#/2žÆSÒøÈl6¡L#öþ–,M¹>ïaÛ.ŽW£ÛîpÌ ²B§¦‚ó›Ìü*®Cšå$RU,SiW›¯®F4k …®Ê•>1Šþé‡_˜,V*ø+|¼8I•üÈro«qìÜœOÐ×1üóL,_“ÅŠ¯ÞݰÄYüÂ•Ûøb4{©Í–kêUïäºÕ4Û6ùÓw'—qY–¬w«@TÛM9EÔ*—g}4Õcr›ó­“DÂÄ»}ÈÙ°ÇQ‘¦?>M%ŽdÛRÈ=H=Íöjôº]’¬dÔ\µ9^êHuUɳLC\AÈå¨'AmµA|y±¼@]ÇÍ¥i`êE‘3žÍøÓOw¼RÞ‡šça6«8¶Ä‡^z¥I’ÒUä_×uè4ëX–Ét±æïÿô½vƒÿá_ÿN¡ùs’4e¾Ú¹(Y¬}q3:q’È•3õZè8¶KQJºÓª«ù¡lê³L5¶%žŽðñþãi–“d¢Ý\¬} åúš®qs>$Cþ釟ëÉõ\פ¼ZïÈÒ˜õfCЫ†{Ê"ãi:¥îÙôÚQÈ>”LZ·Ýv¡"Æ”@¢PkûPÄ9§…Ú¸w[M8¯Å1Wl„÷Ï3áóÙ6WgÂÚ{AWU<‡ßó–ÝnLJ»œõv‹NNG”*•0ì¶xuíp>ìQèþ.¦ÓnS¯VÉöµªœE…§é‚¾ÛäbÔÄ•.ÛSJ8Æ1«ÏÅPÂõ¦apŒž¦s>»½’>zòŸÿøIšò–aðêjD­ê°Xm¸½âªùµ¡gheÊYO^œyQæ%¦apÖëPuò²EÍ“j^æ#¡Êض…¡kü¯ÿîo¨V<ž§žžÉŠœ(•.ñd±aãÈ‹Ë]Ìd `ÙÇÔÀ±]9½Žhâ”㟽mH-5 õ <Û`¦*wXãýý?|¸§â: ™µg±ñ9Žb,4tíI±ÚlwF0 ý¤Ì­U<É&®|ªU—_îÇX)Ka8¶šW9ÀÙ §@¼¶­h0¥bo½`±Û:Ç]L'ø»€Q¯Í—½[²,ãêLh³•ŠËl¹aÔk Ol¹aØï0[m°M“•¿g½ËÔrã"â8aåûiÄLJG’cHš £ˆFÅk.&­¦G¯×#-tn¯Îùõ×ïˆcÉìEIÂt± 9Æï˜†…çJÉû—Ç%yžÓë÷ ñf•S³L¼CJœdEF¤tzuJ½ÍÕå€J¥&PàjÔ’lYò4[ò<[ÉUTaÚg« “Å ÏqÔÜS€y^¨ÊWÎr-°ˆùjÃ?ï8FGöÁ‘íz¡è†Éw? Z©àºÿâ›Ï0u› •>ó°/Û¿_°ç8Ž1†!¿ùrÍfr8DÌVåå¨*ô€¿ûöÝ6ß½ÿˆ®dG…6MZ6•ª§ˆÃõ“§¡,…ùf†¢ ÓîÝí_¿»Åß‹ŒÇ0Ä…¼\û¬¶>ã1?ÿò×Òp,,+xzøÈ>ŒÉŠÊ’ÄL¹ûp$NåtˆRjU—‡ûOÌ7¡Êç,VKÝ6ËížÉ|ÉáñæêLô† CzÛw‚ðÈ—o®Aùh__øpó•ÀU C ®ÿðçŸO±-M+¸{C1[.øñÃe™ÓªÚX–M³YgÔïñåÛ\¯B£Þ$N2Û¿þü5Išây.«­OšJÜ«Õ¨Æ –i²òwª‘ç"UZm| ؇Gjž”öcåH^û{F½þ~ÝmàZ&ŽmPfGVsŸ8MøñÇ-‡ã‘§ÙšfÕ¡âÚ¬j,Ëf½?ÎG=ÆÏúÝg\ŸäãˆÆ1Nø4žRñ\><f•ŠçÒi5¹Zn¸>bèÿçŸè´š û²ø<1Ylql¢Ì°u =°]Ï’j=¶Å%a[ZE†ìFð\›V½†ëÊV²Y«‘g³Õ†8NiÖ+èzA'ܺÇßïÑ(Ø)§®¡•tª:#•íZ‘">ܹ9ïñ'£`Ôïó0[³Ü|þꊳaW¼É£>"G—< ¦‹Âàó7Wè†Îù «Íƒ^ ×¶Ym|^]ö˜>?óñãã¥Ï>*ùý¯¿bØëñùë+â$åp<’ç9¯¯ÏNãªç*3ך‹aË2(KÚ'©ô™{í&‡c@°óÙï6ìò˜,Òn©ÐõY^² žlVÕ!+ ˆrÐty€WkV»#FEzÄ‹œ(ô1 ÁÔŸZ4khƉ{Øm "*IR¾xsCš¥*w*ÂmC7p‹ß}ýŽA·ÍîUͰÃ>ØSæ9i|àyò„¿ÛsŒ"êU—n»Í!-p\ÑhDa8“’ñÝõšôÚë-ÏûOcÔª„‘Ü4ÊRª_B]Øl±Æ²,žç'¦¤® SpØmQòü¦«EžD²…§@£ Ïrõâ8RuÅú†zs 5f‹RÖÈK0HØØ6>ÁórOG¤X–C–´ëû¹¾ ˆÂ†ã¨×d¿Yaè×g]¾þìÇqùõoˆ“Ðô4 Í ‰¾góþæŸZ¹üõùª¢‡„"£«š¨[í÷¨Š‚eè|NÇ]þùßÿÌÃóS¼5E4¯ÉŠß6™Œ¸½ ½^MÓùË/_0]N© ©E‘ÒHû(¡*K,M*çáîÇõ¸:êñ‡wWØ–ƒ$É û>ËvqR”¯y:A~üpÃl¹"IBò#TZË[ÙRâ݆õvÏb>c¶\q6ò0]0må&Š,s}~İ' ù_ƒž5ÖuÞž gË5ëí†?ñùæNtA³ ±­*+P…×WÇ|÷æ†å0yš­Dq0_mˆÅjI’šŒ¡ÉhŠD–&,7T]G’TdE\Óâ¶”'©˜»íblÛáxL°LS×Е7÷<Íæ:$Á–`·f‹å†hQxŒ‡} ËÆu;˜¦IUI8¶‰ã€ª`ÚJ´A"Œb>Þ=òßþéß9÷q,“$ý7¦Ë ƒn‡Óɬ¥5ÇiF]7LF}Þ¾<'MEEÓT²¢$ C–«%á¶f>Ÿ±ZÎÃ]6qm›JRÑ —ÉxÀéñžçð8Ýðó§'t]#ÍE0¸(¡¨$Tò úÝ.Ž©°ßïÙ †ÚåM(±ÛmXn\&£1oÛÑÇ»——(²Äj½ÆwmÛd&qÊtûŒïy­(M<|g[VûœZ’‰ÓœÕf‡okHM© ÙzÐïúþ§©kTeN-)BÊ^ŠŸ¿,+Š¢`¶ÚˆF™¢ð<_Ñ4‚ýç9BJ§9Ë]‚íuÉó‚ÛÇg@â—Ow­E°äæqv°JÖ-Ù÷\êºæËÓ ¿ã¡[.y^’çšEU où×ãù×Μ£t©’!r£)×gG {Ú˜ç9ŸïŸ©«šª®xxÅú0Š‘e…£ažï‘¤y‹V (³„$Ú³Ýï “ ]•ñK“)•¡nðÝë\ŸâÅ÷lªºÆ÷l«5îÃf½b»Áº®(©©Ê†ûÙ#MU£gG#žf ¦Ë-—'cvÙ…!óUÀ|âu|âýŠ$"¤Ž­ŠT³ßmøóϸ¾ºl3%ÿëý?9;a[ÀùîÕåð°Þ¬xÿù©J)Ó¦©¨* MWp—£É„ÑpÄÓbCƒtˆîúÇ$³ß9<==Ñ$%U]±Øüå—Ï\œ—hšÚ‚*à—Owb°_ׇ#?ˆˆc[ŒÝC¹Ý±MŠBPlʪ&Í Ék¥âq¾FýëGzƒ»0c2ìq<P`®m2ìùüæ›x®M’¤ä9² BVÛMÕ-Ë0˜¯·<<ÍøáÓŒÝ>¤cIHÔ¨âùDÓHèº×é’dÝFÒ\ÌŸËĵ®N޹}zF’–›ˆõ>!ÉK1ßË+¦Û YÑXlCjDõöiÎw¯/ÑT•¬(u;|yx$ö(UH†=È4–e`´Þˆ¬åKvZ¿{m<ÍV8¶ÉËËêZP¬»—ɰ‡ièT•0§…X‰r¯õ»|ÿîÛ] –>uÃ|µ!Ï ž¦O<Í–ÔeŠ¡ˆ‚…„i8Ž‹ãºêS×M{U’yY–Iú>yžñü”a9y eU’åbƒšç… ëÆ¢¥(ŠÁ#0[Š"„1žcÀ¯]Ïá×OSTN†>û@!ÉÄç¡ÊPViQ~û`¬¼§ÙR`°LÍ.äãíãÁ;qÜ ™üŽËÓL ‰„»9l©×+ú]Sm(ò”,*ɲöuXÞL±m‡a¿×†©á¾u=üãßüŽá°Ïb³§ãôºÝÖR°‹2öqŽmè8ZÍÐ7ˆsEU„8|F<Îæ¨R‰.—Äážt/¾S³MÌ›Ë “ÉI1h$…,¯ ºÌ–›C­ë¹âKU( ñÿЇªi04•o®Ïxs}†Ýš÷\ÇÂ÷Â8Å÷\Ñh)J6»×¶X¬6í¶·@Ue¢(`¹X°Þlqdƒ ÎØ„9 `ZWççŒGC C€J]Çf»…p¨,˜ùÅf‹,É8–ÉÍã” ¤$Ó2)ÐÐt Ǖɒ}ža¤ù¡%ë]Àr½ †4£ÈK4UÅ2ı×q¢üÀ Ͳ‚ÞÈãß¾¡çYÔUŰë²$ Z”ßgÆš+ 0D§ã1[êt|ŸçåžÕvß©)21‹´MDZø|/š4¾k£)_)íµÜR#cèB=+I“aŸa¿Ãl)Êç'#ñ"ÌE«ç«!òôxBZ‰†ÚxÐÃ2…ñP’%A„VdÁë7  qÍ.7øŽÉãTDKë­Ø^) ÝŽ#h¬—ß¼¾b»X¬· {~K¡ÈÙ»í†Ï7m®©AWEVU%LMÃu]Óãúü˜žßò,<Çd¾lhª’²ÈÙmCfË5 5 yQ‘ç2Фä›}LÇÖ©‘õvK¹Åm‹ÜØ—‡g,ÃàâdÂj½Fñ-’hO’ìXeÕ¥%AÑqv¦E·ÛÃ2´ö—Öm5:¶¡§)YžºÜ [–®Ñ„%’,cÃA,¯Y¬·"÷•d û>ûP ÝUEZº®nؘ¶(¥G¡8yÿþÝ5³­Àrµ®®'—MÛ}€ï9âzÙR´'£>_îžYo7䙈5MÍ.­EÞÊi|U‘Ð¥ Uªxq>NŽZT=ÇÆµ-þòË'>Þß½¾"É|G#OcŠ,!K²LT$ Còúý>y%¡* ðÍ‹ ^\œ¶ƒi&ñ®c‰yc³ò¼`:Þ說؅1ß¾ºd¶l3±uƒï‰ÙÞÃ4£ç{í@?â»×W¸Ž¨•=NgÌg3Öë%ºRº*£(*¯/Ox÷æ%¯_^cèÆ¡\U Ó…H(2’,DOóµÈoîE ¬Û”j]Õö¼{uE•Ç,y•‘—ÕA|fH]ÏÁï¸lƒ«½ýÍ〙å.D{^òã‡{ʪ¦iÄ©Xkëv?||YÅ$-nç1I¹¥3˜qRÊëà·¯.q[dÿã|ÇrÓ @4bž¨ëÍEî²\¯Ym6hŠÂçÛ acš&“ãÛ°Ä4 øi¾"ÍÅÆÿŸø¥ |7¼¹:ãhܸ³ªÍ„Q0Ì*ò² i’4ÍD5JÔ¦~ iÂû/÷üøþ ¿{sIßïˆ¹Žª°lóJ//NYïDÊ:ÉY·ªkF­=m¹Ùaj2óÙ”<‹PäU–(+‰$oPA%q<Ëõ‰â‚¼Übš ¯ìCYfÔïF1½ŽCßÕ©Ê‚å6BWE=N•eñCJ2YQ3ìX¢% ©üôá¶eÉ É²âàe â”Ó‹íºìƒZÖéØ*QV“ëíŽýÄ»7/[ºuÅfbš:™m‘¤ãÇÓƒ8MåyÉ.Èü(-q‹ I.…~‹àñ=‡8Méu\ƃÞAšf²ªq<™p—gôe±q ˜7‡zÞÙñCÓ¨êªmí“™¡kB ÓÁç«5a¸'Bò¢D’,ËÆpMÊ4D– Í+Â(&›-³†×—<<ÏÅ2ìÜ (KÎ&£²Z<0¦i´9:Ág{÷ò¢¥¤$ ü”)‹…B•hŠŠ®5h*؆Âñ ÃùõkÆÃžk ¨a0[lZI]S¹yœ²Þî¹<SÖË 'OJò²Äw4’,ýNU‘øpûÈåÉM°ÙºTQTñÀ'hkfU Ežqû0EVu ÃBÓ4V›ÏóeéÚîCÒ¨k¢8¥ßõ¹GUQÈò‚ß~sÍ«ËSlÓàóÝÇcaÓûåó=MÝ0ø ¤™aèx®%ÔqÂz³a»]G!MS’ä¶i3:üÍ÷ï8>>f¦4MrèLçEÉ?ýëOÈŠØB {ÂÉh€çÚ¤YMpН¡ã¯Äçù²Æ÷{,6q+ÈjÚ°qÊû›{Þ¾¸@Ud aØ÷Iâ×E·€ãQË Ñ/S4Ua:_Q– žãÐ ÐßâØç'c:žèëšmóESUÑ‹ö;Ü<<òó‡ÏXšL”$⪉ìg(MÉr½^bM¢ãšqÁfŸ²‹–3ênŽe²ÞÈ’Ä·¯.‘$IXo9õ…®£}6¬‚ÿæ‘NB×ôÛñ &Írv¡@EI^Š•òxÐÅÐ5öík¶Xó4[ò³}CÖÊ[Â(÷îžg«¶ÐRæ)w3Ò4C¢!+Ä 0ÉkÄøJ!-ê´àÃÝ3¶iðîÕ%ÝŽH\ŸŸbi«]€ijx–Æt¾BVúKÐã¼­B¹\ ûȲJYËûDdçðK WiHò‚OwSªr@Ь*¨ŠDVÔt,ñ3”eŽTåØºLÇ6pm“Ý>âìX€Ã(ð<_óéaÎÃ"µdÔV-Ðq Rå¶ã{¢-¢È2ß¼¸@Q„JSÈŸLÖÛ=î©KüòéEMËÔÉ‹’£Qq«¨¤%Ú>«í^HÊ«v~kƉ ±˜Bmi-vL×wÏKV»TtlÛ`´DÃxÐ!ŠBjYTO‡ý>‹-‹ÍãAè„z‹çÚ|ó⌗'Œº6ŸU…›éEô•0N©[Câý¿þ™£aŸ7×g {>YQ£j&º¥aYÛ0cÜï`A”Å ’Ô0b’é\] ˜mb¢›gzËÓI ‘¨yq~ÌÅɘ4+xûâœÿû_¤ã ÜÙ. ÍóÃLÖïI¼¼8Á÷\RtËÄ2 TÚD´®iºN°Î¨[ŽV– dx’f|¼}äîiΗ‡g^]2vA ùtûć›Áõ‚2 (²„ ɨk!íÑTS—)*è¸6££ Ž×¥ã‰kWJäeÙ¶%ÄÕ¥® Ó`ÜÏ:¶‰®)bv#UȪFYAÏsxœ‹e%L†}ÖÛ€¼ýѲ(õºâšå8HK‘o“¥Š²jÈËšM˜“•nÇ™¤$£ã–(-w,ŒY¢,K Mfâ ;’Œg)ÈÔh t\Á› ã”õ6@ÕlÓh‡ú9Р«®mcš6“£Sîf[ª þüËEkkâ')¶%¶Y!N¦†&èÏy)HÈQS9«]H”–L&6H*ó]Î>…(m(Êš$Oqk™n· NÂFý»7W<ÏWÜ<äøÛt<‡aOü>¾Æ‚~ýrϨ/^‚M§ðùæ†~Çá6¡`Hòš¢ªØG)Ÿï§ô{}±¤)kžæ+¾Ü?suz„ïIÌ–kíE–ôŽI¸Y´&A M‘¨ª† HIïf$•XQŒivùpûD×sñ{.aZâuºIAUæ4DGB8n[4ŠAsu„¦‚ij »Ì–[½'£iž£*Âbê:û(æ—Owüoÿý_xs}.Ð[ûÅzËÅÉY–[Õ‚`ÆI&èËË ql7ìö;öAMAÕ ÞÉñ„Zµ@ÒPIàÈð(Û­uÝ4¥àf6ˆÄF’å<ÍVÜ>ͺ¯1LÛ¶ ßó8èv<¾{#\#q’²Üо²mt{}ÎNÎ0M×q©q*¯k±ÔoGt{ÓŒóã1ŠÜQ QI¬Ê’(cÛ2Šª!«Ò»ÜE˜ŽG·RùÍ7o^œ#·g]ã A³/œU˜ {$i~Ðú­½©Vضªª Z·l|³=¡„QÂ6™¯¶ <ËÒ14a¤oZ†ÝÛ—‡ UQ” úÞ½¼àÛ×W4uBÁízJ”¦ÿ¿°¡i*²R”Ì5M§¨>ÞN¹>—Õ–ÕfÇíãL Ý»_ô|Ûv°-‹Žk‘º¡!#áyo_^¡&ª¢±ØDxŽÍ¨ß³“ d¶XÓqmQÜ?r2ò¡LYϧl÷Á¡Ûlê YQcëEž±ÞlÙG½®Çó|%|Å»=]ÏA× EaØ1ÑÕ†¼lˆÒEÊ1L™7wœŸã8¶»€ É÷¦ix˜.´Þ6ˆÉ‹‚ Î04ƒ¢–ió#:¿ž «X¿Ë|%H¹®mñ0]´èþ¢%«äN¹_&¤y†cªTšºðrèºÁO¾ýTðï?}¤Ûqù÷¯H²Š )(Özž§ñ0]± ²þÏ?þÄÃ*&ÍJ®OFL†>¦iÒíx„Q|}•~}ÿöUÛܸ•’ ÔY^ˆ:éٱ÷¯.ñ]‡O÷ÏŒzâ( McgkÊ<¥¦¦idj‚´áýý ë½ €7@¿×ÁµÔ´n²¼~O¼ ?Þ>òîÕ%ºª¶iŸ nÝ^Ç;€M÷QŒmê\œŸ2[¬Pe•7W'hšJ k‘Så}Úäâz9ìvÐ4•ïß¾¦ãÙLý}ºãÚûìö‚/(òz¾ç²Ú `ß÷Ȳ„8j¨òCïr|ls~rÂdاª34æËËU†DkɘJÍbµáæqÍÉd$º›©Òº¶`èýå×Ï4Mƒc™eÉ¿ýôùá=o_œ£© úëG’4Cj*nï–,Ö1¾%cêbô!Ë Y!â,«ÍÏu„×Xý$(ÐÏ󕸒ɰ "¾éS×5¦&£ÊªHÿ²xÓºô{}dYÆ1MFý.WÐaþôóGˡ㺘–Éo^³ßïYí3â$ÁÔd« RÙ0èXdi€ã¸Ð(hŠtØâêm Dx4Õ÷\"Wiš“j9ß½¾Äsm,Ã`¹Ùqy2Ú}ˆeЇÒz+ˆ)·3ÎG‚Ÿ¸ÝÇ)73æë€wiΠïóë—îŸæHí¡çÅù1U-?¦JD IDAT¾Ãïîñ]‡åfÏÿ󧟹8óóÇ[þþß ½¢ÐëxÈ’|Èþí£Iç³w¯.èz.wÏs6ûQ“$ëÝ^tú³œ¿üòé X½: ·ã¡Öƽ]¡.Dóã«Röó½Ð†FqÂç»'4Måq*n©_‘aeY1èùrö¨ßãÏîyñꕸ]´Ûýº®Q M£¶M¢½‚Ñ… ]ãÅÅñAj´Úîè¸7SÒ\Ì‹ MØ£Ñ@PT˜Åz‡c*s¾Þ±‹дnÄö×ÒedIÂ2MÎ&=ŽÏ®ø»?~ÏÛW—äyÁóbÍùñÓø†,/Ú\Ò¢ªŽÆ7ä…H–KÈ\=´âh4@‘Ûtëõßu˜ { ÊQ’q~2¡(+†ý.eaš&}Ï ÍÄ|2L+ U”ù³"%).OOiš†~·Ã¨ï³b~‡Qßa·Y‘D{V›-Qšcé2iVQ×)yYóë‡/'hºISW<>o…a¯CÙ €<Ç&ŠÅ@8N3Â$eÐíP7 Ï @pÒlÃ`Û {ªYU5?¼Áw쮉ªˆ?èõfE‘‚y¨Ë¬w!WgÇDqM”Uh†IZ€*ƒ Q„jº¼¾˜pz|Âoß\“¯.O„ýïRÕþOU‰%L¿×9ÏeYÖÃýŠªLѤ Y³°¦†å6}C’Õ±vÙbùËÄwŸCtzEÔâëµO–% MÅw-TÝâd2äd2D’µÃ|µ®kºWè,±Iu-“] •ÃnÇjŸð4s6êe ÷Ï+,¹æñþ–ZÖÐu›÷Ú=Q*Ø~Û½ %i†e‰ù®çXL‚TdèçG#13l¡£·S±( Bâ$bÜOWB\¥AÇÖ°L—á G”üãß~cYâ¾e>Í–L†½ƒÐéòT̶Ò<§ç{ìØ›‡)Q’pû0åîiNQ•X†ÁÃt!¶÷²DÇqp-‹8Íð=÷àGqm‹aÏgÔ÷ùpó@'Ü?Ïéù¶.·Þî[ÒQM]7<ÎV„qL–¢%ÒÉû¿ýø¾]8Hüý¿#N3¢8å§÷7¢»nè|¹B–^]œˆ¸]·Ãçûg:®Íëë3h$EP©lËDj-øîµPÏúav4òDáPÖ¹:;¢ªGxvÛáÏrüŽ*ÉŠÊüí7\Ÿ£»N ¥/6Uܨ%TEdl ]cW5 û]’4†¶ªfµÝSÕµX£ë¶iÒóÅãf0_oèû.*îŸÌ7!Š Ž¡R”bóë˜ÂÈåÚ&¾çÐë88ŽÒ®«MCÃÔ…Ïwµ °,×—g†ŽmYL†CL]Åw áˆHkÛaÝ"<×âáy‰"+m­ËÁ±,þôó:žC×jHϱ(4IpOC›eõ‘‘…£IŸ7WÇThØ¦Žªª¨ªÂéÑ×28>š°X-‰ba©ò,qš©ë†¢ÈQ$‰h·ÆïöX.,¶qZ`è*û0óÀA"Ëüúåþ i”€Ÿ>Þ¢©*ÿé÷o]eº$Ó`ÐíÐõÒ4oýÅ:ižbj ƒŽ ’Ìx8¢Ûð<_%i íŒq,MרK±™Ïó‚ Ø£›6×D’`<èá99eYRÕµ¥w¡E}^2îûxŽuØDN†½–4d»|¢ÎcŠ ûöžcñ8]n$u]@²ÝŽ`þæÍ5º®r4èpýyQ†1G£>YQSÔYž#•%rkP”$é¡ó²$IS‚0¢jÄ›×±ÍRzЊs²<BÇI¼Ýg+Ò¬À÷š*£çYD®Î.È‘@jˆ² IK1„/™.·äSŒúåó=EYòêâ”åfGÝ4ô}O¨˲u5D¬·1u]Ï£«”eTˆn¹ÞQ75I*:²wO3vaÄ¿þøžÓ£!I›!Šâ”o± RqEÏJŠª&H*ò²Æ5úž‚DÅ|µ¥¨lËÀGIFQ6(ȪŽnºX¶Çt“`¢ã—傆RSÓìj’,E¡‚JÁw .ŽúèºÁ.ˆ1 ƒõ> /J^œó4[òåa*¾ôI(r˜µxêšz íš†!´“@DZ)²Y&<Ërð}!ÎÖ[@¥ï9œŸG{fË%›M©Ë@M%ÈÚŽ/÷Ox®¸6þúå¾HˆyÜr½#JÐj[y)êD¦¡³Œî§Kâ¬`¦„a‚¥C^VÄyƒ›æ<ÌV¼{ý‚]ñ<_ñù^xpÓ$É2žkŠ¢àþyÊb¹æöþ‘é|AÒæ Ó2£–sZMZ6DIÆ.ŒÔ躮¹}œ1[mxx^meQ¢ëšP$Ê_Äw¢nĉrœŸL ¨âKiêœ" ØonïdòJf¶\±jQ’Qÿòã{Þ\1îû<-ÖÇ¥ªü鯱LCЯŸf”EN^”””ÔH¨²Šn6H’‹³c Cg½ýwCÓùùãM{Šp]@aM!ß÷_(ËJlEÏ&\Ÿ È‚ÔR¼×Û€Åj‡iêH-ýD„D½OµîžžŒ+ÈA{®ÏŽ9õØî#TUTYíó,ÓÀS,lÓ¤(J^]±#³0tÞ¶q¨ß½}Á°ç3_m‘$ø_þîìÃHŒoZÿöW+cV¬6{~ö„<é+ù{½aÐiébÍj»g»„$Ó0hê†8I¹<`[‹•xAÆiJØRang­Ÿçø^×ïò8[¢%oÞt…ª¶iP꺡,Å›sÆx¦Ea‰iQLkqRˆtUåóÃ3]/`µÙ#I°Ýüî›M={¦c‰ª[ªŠ·"ƒ®Ê”Uƒ¦ëT’•(iFš‹ùÉ7×ç<ÍWÔðùÚ–A¯ãró0åãíãa>©ižãñûo_cš&» ±M¢8EnßÐ=ßåhÔ'ÉD<ãôhÄþ÷ئ*+¨ª‚LÕâ€T¨d 6UI^ÖØ†NCMœd¬6{úýº.H²ž#ìiyU£*:g§'QÊ0JiêŒ,O©jÈŠ­jHÒŠfŸÐT%Y¥V}פ7è±rŽGbP[UAœð÷üŽ£ñà€³êùÏ‹i–s}6!Í †=‘5³Mƒ»§9¶©%1yY°Xíh¤W²AV<òÏ?üÊdØgÔï !‰!¿ï‘¥1²\RU Ë]ªA†‡7üÃóMSyq~Ò íÅ¢Ìn3¡}ß#N2|×ASE@v¹^Qg…€€†&³ Kªº!ˆ3j5âÃͳåŽ_?ßÀ±¶e¢(2—'²,g¾Ü†!RSà[ ª¤ (j«Uð¹<;æìä˜A w,©uO}øüö›k¾yqq»þæÍ’$ÓmÁºç'#Ib<ðúâˆ4ŽøòðÄv»åi&æuM½¢*RJIE¡â?~÷šžßcÝæF}!ç>;f2êÓ÷=AIz˜òÍ‹sTY"6$iJßÓÉ2†P Q;?È4³jϱ¹{šqq:iQ’"ËÂê7쉓wœdä¥ðò¤yNU×x®M%­E ðËV¡'©ð=S‘çHGÃ>šº³³4äËÔÅzÇþý;¶ûˆér%ÊAÄdÐ¥jê~Ñz»gË5®eòñö‰»§÷Ó_¦ÄIÆ_?ÞòæÅ9y^ðñö©Í«ê‡¶ÙåÉ?¼ÿL’æDI*ôŸMs ‰‡¾Xö…Q",ª‚ª)Ty-š+e…mÐÀ´Åý—UMÚ.èöa$|ßyÎhУå\.}»K^ O M#š _ë.=ßÀSµBi â(:t꺾8yÎÄîN_íPŠ"³Û,×[¢$¡(K¢¬¢nÀ·UöqIU¦Êèš`òz>‹u(äÜ©`‚ýþÛW”EEUWX–É›ësNÆ}Fƒû0âîiÎdØãh<$Œ Ck)[\ËâÛ×—È’ð%|÷êŠ(N™ û¼º8¡jjÂ(AÓ²,f2è+ªR$º®Š,i :U¥ H £®åX¼¾<o–f9ºmâ»:žG·?`³Y£iPe9P‹Ž.‚˜Û0dUDYÍŸTð»>Y)ÑÔU›•”÷;⃡!/Šöša±Ù yú°ßCSežf+A=‘E,'/,ò4a½C`MU±Lƒ8°ñY¹âú“‰ÊÖb¾$ÎDÀ¸ªjšª@¢æþiŠãŸÇÕé¶m´×O…åVàß-Óàôh(¼Íi†"Kâê%\\ò4$I3<[BU„²ðxà`w»|÷ò‚á Kše|s}NYÕû,×Â8Æ55zŽN•XZlIÈ’A£¨œyûæ%ÇGÇä¥$riŽ †ìüãß~OFbn싟y¶.߆Ïupë­º;–Íh8BUq%NK¯`¿Ó’]¼&ÉJ:ŽÅÍí ùQB-©mHø”(IÅ<3ìõâŸñ@HaE!É2^]_R7 ]ÏA®3Ö›5ó PSÖ º&a¨ªÜÐw4)C«bTÕ@£`·ß0]‡HÒ™‘Î×B’dNŽ:\ŽARÉËŠo_]R¢±²Ýo¹¸Ç25t*Ò¼8±ºl»™Wgò¢d2ìE)†®‘f¯ZU¨mŠÍ¥¡ë”eENJȺ*RÌÒéØŠ\‰9cY§)«çë݆~KJóY’¸šr÷4e:_`¨2ŸïIã"O©ê†(oHËšËsƒáp„e¹ÈEÁ›«sʪ!ê\,NÒ¼ ik†N˜0[nxš¯èù¢ç{û4§Ûq­¯AhY’¸y^£è&¯®¯À"OX­wÌV[©aµ\2[¬@R‘ªY3Ù…ùAî¾—(Š |¼yàÓݫՊ8]Û$¯x\§Œ{.qZGÎÏ2ºžÃ/ŸïÉr±x¹8P”%Û "Šz—e±c¾Þ2êu)«Jd÷žf¼º<Åu,ºžË>ŒZß±C'IÆÿ×øí7/ÈŠ¢ψe[”ˆh“¶ªœB­uÚäEÙº|Rîžæ z:—,Ë™.7\žN8= ‹ ,óöÅ9£A—‹ãñA uÿ4çâd‚çZl¶û6Aar<î³ÙÐzPú¾KéÚDIÊéd@žçô|Ö’„»§9—'ÂArq2A’ ,ÏùþÛ—¸¶Å.ˆøö•¨Eɰï³Xo7PSA–ÆèN—L7KU‹Dµiþ§i*<”b@ ÖHUŽ¡ ¯èÃtÁ¨/ ‰²$ú©Óņº®qlÑíŒâäPbN3aËŠC§ Çèû¢Ëoñ§Ùª¥í QÐ>ˆ9?óúò”ÙrKdzYmv<Ì–4í¦o¾²ä«³#Ö‘ :?óo?~àýÍžcóúê”AÏg¾Úa›¦ÐN¶€Ê~Ç&IrhÏ*tE¢n;¯yYS «}Âû/Ïd•DϤ×ñXï‚ ¦÷Ïs¶A„ªœû8¦Ìlî‘”2J]PU9e™· !$ ‰‚ÕvÇ.®Ä¼×#H”ëSk'õEÿ„¹Ìu,4MáîiE–ÀŠ ŠÈòI­ùë§{¶AÄñ ‹®Ê<<>ã¶´}/†ÎólÉû›G’8E“Jd¹ÁЄ€žª€ºD’j]Qà× •ãñ 5Ã)¤i.@©m8~ØïRTa”à:yYY!ˆÆeÕPTئ–)¿¼ÿŒ,Iüôë'þÃo^ah*a‡{â0 Râ(D•*/o4KG7-¾ÿÍ[ú½q"<·¯¯Î)ª’í^¨Z5MåþyÎz0êûôýÿïŸÿÊ|µ .O&Œû]:žÃË‹qÅŒ1“j…Aƒn×6y–%äZ@+|Ï¡®Ä©pÙη~ú9ÇéôØ&X2( 7S CãÓÝ“0ü¹&gã._â¨2–.ãš*]GçxÔ%ÇâdÔÇoOUÇc!Ü ‚ˆºªyž¯°ZyÏ÷04Ë3K»}œq~4âo¿‹ÛÖ3—€WUQ[RÍ)“a'šÊ/Ÿï0t—'®øpûÈÛë¢8#N…ˆz•hŠÄ>.9¨ÔMÅrþÄ] e½»ùDV”b~KJE–•ô:†ª¢è" ëzÆ£'Çhª RF%Ü=Ïí¹¥ga"N£-*=N3ƃ.ß\Ÿ ˆD-¼-Û}Èj»ãt<$ˆ4UÅ÷:žC§lv1g“ûýžõ>ÁP!+JñRP$Â$a“4JÅx®€ÿðë—ƒÚ2”¡.vQF’äªLבCUð;¢Öõ\.ŽÇø®Ã ë3+×äEA– áÕ»—hªÂóbMœ¤„Qà 6µ¨ö|1>Ù!Ïš ßm}Ð ²$º¦Óí¸¢Êy÷Äw¯¯¹:;¢ï •fšçt<¡S=ýÿˆz¯&IÒ3½ò¸Vá¡eê,Ù Eœ5#m9¼YÛŸÌ‹µ]Û¥9à`ÐZUWuUê -\kß‹Ï+æ¶Û¬²*#ÂãûÞ÷yΙ ¹>›±Úî>ª©höº®è¶Ç)ž/þó•pƒeEÇuøë †N[X%Gý.×fç…<-Ö\Mö;ì½€4Ëi96ã²Dj¶¸ŸóŸÑ÷Išò´Ø`è>Aqÿ¼<êNWÛY^`:A£* óõŽÓéÅfO¯ÓaЀe× €Ïµ,Kâ4ewð¹yœÖüÛ_ÿοüå¯ôÛ³±ø‡ pNqœ"I6rãçå†^ÇE–„— ++²\\{YÂ1Tв&Α"o¨Í2èõøíW¯šœÆ—//x\¬t;‚/^^’âèüéþ™ó™HË;¶¸¾X¦N‘ oê·?~`¹ÙÓï¸üùï?1_mô:TeEšåÄiŠ*+œ4€„ï>< Öi“¸‡¼¬(J(ŠŠ¢äYHŸ²'W]Ó°›E‹„Pƒ¶]E–i»Â/ëØIó×ïߣi&§“ÏKª*ewQ¤Û€,¯qŒš<Øîsþþã{~ûµ„ç‹o±^Çeç öžk‹,צ™Ã}ùò‚~§Å§Û²,£ªÄ›'ËRü8…ºn`’$Ä2¶¡à…¦RQ”%ª©`2Š Y^ò¼ñÕ Ý09™æÜ>-P…»Ç§“!®ãÐrlº®C»á†ÁfïA@(í"’¬ÀÔdÒ¦+©)aZâÇм£.Ö~Nû”5”¸¶I^Õ$Y…m;8—¢€´”éj&U%ó®)¹a,2\ °´×n‘—%¿ûê5Û½OšçÇZš,KiöÅK²¼h¢R+㙈M«ièì¼€~§eè¼ÿtÏ ÛB‘jòL|64¹ÆPÁ¶ $Y¡Ûâ%5×SÑ î´Z8–ÉÙtDÔHzò,!v‡-»:CSE:`$¬÷>]µÅ‡ÛG’TS·~¯Û²iÙ6«í¸!ÚüãçOøÍÆ{Ôï6Q%axû,<ßìjêíõ9EUñ¼Ü²Þ xïöà±÷BÒ4ã>Ϲy\P”£A‡ÍÞ§( LS;ÞðŠRTæ$À>%)/äà"f[M FoÙþ±Af[g“!i.Dj›G¯ãRšªð»¯^QÕ5»ƒè1÷Úµ#´°"%)ó&ÂUU5þû\M±M“Ÿo„où3 ásà BEaдcdEfÔëb·l½hiö®?;Aʲ'ÛD¯Ä‡øêlÊ?ýæ--Ûææá¹Ñ( eáÅÉ è´[|ÿó§£·vµÝòþ—؆ÎF8t Ä)ÌÉò M•iç%Ïë=—Ǹ@^âAìü?ÿò-//O›Â²N´KšŸ;æâtr//NÐT¥1Ýåb!Øäõ6Ç2ɲ‚ùz‹mÍu4C=›â4äæƒ/̉ª¢pû$nOª¬ðý‡®ÏfxaÄr³$F½6Ã^I–ˆÓ”Q¿+…ƒž`ª*—'cÖ;ÓÐô:tÛ-ÖÛšª4~"1¸}X`Z.½Ñ„ö %R/e‰ZÕBŒnèŠëw;øeÌÙlH™'âô•å<ΗLÇâj:_o1uý˜?›˜¯„•=ËS,C#54†mK\.K“1T ]Qh;Ž¡Òv,®O'ôº"Ä©…âEÑ4•«³×á›7/¸^ ù’¡ ®Zœ§)‹5–©óÇ;,Cgµ=p:5ëª*Ý¢Ä2ö8 áÏÕéÛTØnV(…&e$ 1Y\Q$Ò¢¦Ý²ÄÖ°ÝÅÐ4¦£~óì‘e½N‹º†0JøpóHÅ<-7D‰W§YÎúßà[%ïï×ìö“¾CZéäµ€|ZºFiŽ£Ayä û=Þ¼82öAŸA¯}ìœ*²Är½£,aˆeêtZ&~”p2§%ª¦F)û âj6BQ%‘…óQ]J"d:¶""?iIVÖ´œ’4‰Xn¶ôºBà£k*ói–óýûvŸ§ù𠱋ËÓ A³Ùùlqš ÆbZˆ¿KÓj·L¾xõ‚ÓÙ%8 IDATûYô³u];¶M ÓàìLk’ú«½‡¦*ÍüQm b¶mX†Áj·GSÄsïÍõ-bñ8¡¬*‚0âæA,\ž–[nžùêõë81ÅIʨï²\mØîv¬7ªÔG¦¤ª lS£åºÈŠN§ÝFÑ TÍ¢ÛÖŸQ–â[Ãmô‘bë‘’¢ * ŠŠ*b6-KE–À1TUFWeä&×çG1¶eˆE…$ªFA(П“Aa]¼0¢ªj²< /,§úŒÑopæÿ÷ÿü–³é×W笶~þt/6ɚʇÛG4M#}ñMÙ,BêºÆ15‘W¬jdIôMUEÁ±,¶ž"‹SòÕÙ”ûç‹õ–ÓéÍÎÃmÙ\Ì&´]›åfwLï<¿ù÷Ù¼¹>£È3¢0äi.~ežQ–W#/s‚ $Ú§d¥LQI$YÅc¹&Ís±lª+TUgµÛ‘Æ!ŠÛC€k[d  F-Ò¬ÀtÚ¼¼naY:¦®Ñëù˜ºžÿþ†*O¨‹”²Š¨(É‹Ší!¦Ûö؇…@Ò'9ýn]S…:õà3_où?þó©*1tÛ8¦Éjw ˆSü(G®aç3¨×²9?q}}Íp0dvzA%Tu¦*G•Âb½£Fk\G,¿†ýމ/7,7{>Ü=’fí–Å¿Ü3t©šd@Y–ÍëdÑrL,Ã8’ÎŽ8!ŠbL]Åu âÈÇßoy÷áV›=uU*Ži⺮ 9tÝ`0 ?·–¢tå“É€4Í›ÍýÓQE¥Jt„¯¹,E,ªeª´L•R8)¨jÐ4…2¬ØìŒ=ËD‘e¼0äÃíº¦eðYQðáî S×yØÝ=3èvðƒèx(øñÃ/dlCçþyɧ‡ãá€ÁpˆÖTH?·b$‘úÀªªØyšªˆ§®©sðC>Ü>ró0g2è‘æâp÷´˜ðªât2<ŠLâ8fçE¨@U#ƒU¡‰–åu]¢(¥0¿÷;8¶År³c³ó(;bFòð¼"Jt]e¾ÜDqó„ßq6A]£ë¢ˆ~q:!oì[eUq2òöúœÉ°ÇõÙ„ JHÒœÙX€#¿|uÉvïcé2›Õ‚*‘(ªº£ÖdeÕH›d$Y¡×mÓk·ùøðÜD…ö|ºFÓÄ•ìúl 5˜†Îo¾|q4k û~¹}ÂÐ5Îf#ŸWäEÉdØa±\0uÙoV<>?Åy)fi–²ØG(š„üôé‰Q¿Ç¸ßE, "®Ï†vqà±Ê Uaä¶ ³’®f¢ª5®m³ó}ÎNƸ¶¢èLG]Úí‡0¡mªÜÞß“æ–VàGUqó´¡×¯ùâÕ½n]ÓŽÙ±‹“1ÏË øæmÓ]s:ðí° —“a‡: ¢oÌnKãdÔçO¿ÿg§hšøà‚°)«wôÚ¬wwO &£>²$ÑrL Mc³?å%Ô`[&'LC§ë:Œbæ's½6ª¢ i*Q$Q–U<cӵƪ.¡ÎÙo·l7+A‘ލJKçt2À²mâ¬&¯$V‡˜aW?Jµot\ANQ™íÞ?>(æKLCÃ1u[Ë2umžÖB"䘲$N¦OË%§Ó ¶ið~÷ÀW¯.i·œ&ê”Æ)øÕŒû¹À‚ýðþ†ªAX]†÷ϤyÎÇ»çcwßu,t]À#ºm‡8ÉXï<ü0bØkÓk»´lóhFs,S¸±m‹Ñ 't‡Ï1t•ÅjG–蚊¦©¸-›õ^HÞß}¼ãõÕYƒªÑšï¾An®ØŠ,㇫ݞùjÇÉxÀ‹‹Žm6&‡ù Y–¹83艞¯lÈt;-Ò<[ðÆE ~ –¯{?8^‘ƒH#Ësá¶Ñ5¾{C–å¼}qÆx0àd<¤=#›m†½6š%–+ª¢ˆbp˶èµ]ÚºMdIèšh>üî«×¤Yί¿xëØüç?üZô…ƒíÞC×4X,+Ò4Å4M-©Ùù²"‰mp”çe vQ²÷Bü0fïg<<¯¨jmŸÏxq1c±ÞñÕËKÒ4Ç2 f“8ÒŸŒÙÇ04¾xqNY ¹"ËTuÅë«3ºm‡Q¿K/dÑo½>ˆ)q…·Ø­Ÿøä­)«š^K¥ªA™hŠRBV\×Å04ÒT¼_½º¢Óv¨«©ãórâ$,°ê?o€fV2ôèuÛ|¼{¢^ÕÔ’JœU’ŠaØìƒM“)+¨êG#ƒ·W'tÛ^\žr1“E³Iɳ”²Ì¢˜ºª¹:0ŽXlCÎfcZ¶ÅûÛÆý.u-q?_ñ¼Ü°=ˆÂÓbGûå)Y­’• ’˜cÕ5mKÆÑe4F½6E%f¡ŸËö/.NØìt;.{O`’ü(F¡$Í…àº,…ÌÚ1TYˆ·tÝ - :—¶ks÷´¤®a±ÙQ47Š4ÏÙî=Ý6E!2Y^°ÞíI² #ט{eEÞüÿQ¿‹D|ùêBøh ƒÇ…¸¢W‰€ïw\‡0JØíc6»þÛ :u™sð":-YV0LƒÑ°ÏÉt†bXT5$IA·#ú×-GÔõöÏšÔ$Ié¶[ {›Š"£È2³ÉªLùé矑d•ª’,¯ÈüÃM«ÏùZÁ½Ú÷Oüõ÷j»6¯ÍS‚0ƶLÖ ƒðë×—üæË—TeMšæ\ŸOYo=dEâd4À4 â$mêf]E™MC×EfµÙ‹šm5QS•¢Ž·Ý{8–…Û²ñC±€ÑTÓ4Ø{¢$ÑqEh^ÁžW[^\œ0 ›þ´s¨üo¿û’«SÀê¶[ô»mžkQ[Säû<¯Äx½9›BóÕ–a¿Ë»÷aH˶@Ç4Ùí}4MeÐë0öøxÿL§es2¢¨*nËÂÔ5¢¢$N2d½ú÷-p’å ]X”„õ¦¢¤i Š*s6a™Ýv‹0JÄl¥(9ŸŽðÂH¹‡=.f#Â( vxÛ5ª"z¿Yóà+«š²¬‘¤šÕ>àÝÇ{Z­6ÿøùÿåO¿áâtÒP†'eIÇmñ§_I’¦ I|ûÃ’4#I2–Û]³Y*9›Ž0 ]Õ°La½zóÈãbƒëXô;"¨ýýû[@SÖÛ5óµÇ|¥9mKDìB\Ù$YЫ^Èb6D›A·Í ãb[*ws>Ý?2èõ£„ÇÅš(Ix˜¯ÐT±4JóFТ(œÍÆL]Á "djŸ²’ˆÒM‘° Y€1Ä¿|ÿ·ÕHþƒØr¿¿ydØsØîsÖ«-ïï–8ŽMUË$Y…eèì=Ÿïßß0_mt]þÓ~-@œpø û]LC,7â(Ä–Sªº ÉJ¨2Ÿª`w8—‚ÌQUµ˜Ç´ltUØ·‚HÀ\ÛbÜwØ,Xí"¼0¥( SeæD[f[þòã³ñ€ùjËójCÇu(ËŠé¨ëØ|ºÆu„Œ|ÐiS–• ˜bÃjQ’`™Šë´®Ï¦<Î×´Kˆ±‹’~ÇÁõø°ÞˆOwOÄq„¡ÔHeŠ&Kº"Dí¦…YËÈšE¥di‰ª¨¼º:'Ës4M£ªa2è5n…²ªxóÀõyˆ®kMžPÁù&6LÚm‘%\nZ ‰FÒ —2é9(ªD¦œN‡$iJ˶ÄÌZœÅ沪kË`#ËtÛ-ÁßË /+Үߤ·eS²,±Xot¬æ¬“å%Qœ°ÚìYïÄi†m‰¼a¿ã¥)¶ipöö//Ï8ø4_èŽepó¸@SUÂ8áÍÕHÛ½G¯ípy:á¤É3þtðèé.–¡Ç)I–‘æÂÂg4{ÃÐùÝׯhÙo®Ïñƒˆ½4¸|MP±m“^sØP™W—'ü€«ó)YV *è<_møpûÀj»'I2QL%ªJô£]ɤT.KQäÏbtq=ÕunÛ¥ŒÜ>,x\l¸>Å)ïŸè¸’$ñǪªf6îƒ$ßBÓn4–Ïᬄ ©ˆ’ E–ÐUSS€š$+™ôjûÕõ•Ǽ¹b2ì„ ™úù!„Ó{?#Í A(zyÎxÐ#I3ü0æ§÷„ÍqúâdÂÿ× ª 'fã>£~—mƒö;PWlvbËú™2\”5Š"‘äâ—£( -Û$ˆüH¨W›=iš¡ª2»;<ïÀétŒmh¼€_k櫆5Vs6ñ·E‹£ß„Û$Å4 Fý>rßÅÑkÂàÀ>†=M‘‰©‘%8ôIrY\½º®é¶Î'üÃYªè·5ãí«K²\ây½e½;Æ1WgÓŒò´Üë‡A”¥`¿Mli\žŽ ökALšgÌ÷!- >Ý?òÚ0)k ]Ø©“ÉPȨ³DZhÙ‹ £^GˆÚã$è::I.¾ð¢´¤å*åKŒ.ž–kþöãGþøë·œLGIÔãbM–âµQü ¶LN§CžWtÚbðÝoÄC_½ºÄŇFQdR[l#³æÑo;<Ìl·;ÖÛóÅ‚²ÈÑ Ë0™º’’Ép€¬ê,¶y^³÷c¦£²$¯ëŸ1›‰ ð¤i~l©ŠÂr½ã/ß½ofÒ-â4ESd«5Užƒ¬P9yQaë is÷ðDœ×LÇcü Âó#ʲfÐm3ö VÍïoÁh€(IÈ2‹?Üâ‡ÿ×ÿø7þ~Á7o®i·Îêy¹a¾Z†!‹åšÍ>àa±¡e;dy,Ë„qÒh(m Mãq¾>Êkèbþ4y>MUévÜ£šµe›,Ö[²BeØíåaœ ˆÆîp J?-ÖHH$YF§ Ázwàõå—gTY˜£X´cÆÃaÔ!Ër†ÝöÑ£óó§ú6³Ñà¸Q¿{ZòÐdTý0BÓVÛCÿ­TTG,ÓTEùŒÃ’$ù <!ª¢p1q2°Þy 7L€A‹¢äòdB¯ëD"$ÉÐm;Ü>-X,·|¼[ð¼ Ø9a’£*ý–Nž•bˆÂ ]¡,„\¹ªêãZþþyÔlû~¹{j‚Ïi–¡Ê2iž_´óÆ+p:"IRãŨè;.³‘Ø–V‹5_½¾"m|Å· ¡õ”D?YQ$LMÊR"ÌKŒ¤@VÚ®v|“[¦¦(”EA…Ü=>b4¬2Ë4èwÚŒbh¿Ú˜ŽzG’¶Ôlo?Þ‹yMYæ¬1ëC‚T•Bd”¤9¶ÌtØ#Ée^\ïlše˜º‚\„QDÇÔH(ŠŠ$)”UÁlݶCQ”MË'=~Àþû¿~ÇÕÙE‘¹¹âÇ›ž3íªÈHD¹Ø÷Z¦r¢:õùçúÿôÛ/©kÈòœ²¬¸>›±÷|N&Cv‡€$M‰â”Ù¸/pøø"øþ½˜­·¼0âà‡Í)kOœ¤Èl÷;vÛëí–ÝvGG(”´]UÓÑ Åt¹ºÈªJ·ÝæÝÍB4'ÎOplÛ4y^ zuž\œLX5Í ³1ÙÝ>-šŸßb:êau-I£^é‹+nïïxÿ¡äÃ]Òœò¡*s¶û=i%ÓëvéuZeI‹«cðºèšÚ‡=~Hœˆ ^¯ãÒﺼº8a:ì‰/x ÞýrÏÇ»'Z–JUæìvBÏY¢òêâ” N¢ˆ½çÐvl~ÿõk!'_méw¯òà‡DIBÛqØy>»ƒX0¼/ŒØ{>óÕ–ñ s|øŒ]æ«-»ƒOYUôÚ"4-Ë2ß½û$T”ŠrüBõ:¼¸8š‰ªlHÍgÓ1I–‹Òƒa°=xÌW[LCˆ¹Þ\Ÿ‘fº¦‘f¢dY&¿yû‚N»Eœ¤ÇC[-)ôC’ZC5 ´æ÷YÕ5ª$AU5ó—F”§ Y.ætâÅQÇ6ñC¯Y7ñϘöåfÏýÓªùEX8Žƒ¡Pä]‘P‚Lò ]‘… w¾bå%eÉß~ú…NËáq!0ã~SjN³Œ,ËXm·QÒh3·t;-q=+rΦ®OgdEDL‡]®ÏO˜ T³ßqɲœÓé€Ñ ÍÓÓ#þ~E-WèªxøÙ†J”ŠÓ§Û#»m—ÕÖG–e„Ç¡®Kª2#‹}êBãáé? Eîðú”«ÓIC²Hxs}ÆùlÌ +†üç3ó“ †¦ò/ß~ÇfˆÄ¼£6voÑ2ùñã󵇦iŒ=¾ýñŽ©a(ûýŽåÆc±‹ñ”$Ëy\néº-V›=§“!ËõŽ§Åš7×g´Kd‹¦J¸Ùs?_²Úî¹o©P„«¦¬Ê‚ ð |ÝtøåöQ„Á‹{½‹µˆœLô;.Š,£©=עȒ¬ÄOÄf¹ïê´ƒº.y˜oyq6Û¢D–dÂ$áÛ?0èŠêßý󊪪9 5I’¸Z#+ŽmqÚœ›= §“›ýºÊ9xÞáÀápÀ|’$µv‹ÓéE3éw»´Z-’¼ÂÐuÞ\Ÿ“åËÍŽ‹“±˜_i¢]pq2¦®áçO÷t;-ªZœÒþöÓ/MßÕ¦åd”mhMl§í:¤iÊt4d¿ßñ¸Ücé]iSÖBYý¾o¥YÎÓbƒª(<ÎWÇŠÚë«3œ«ëc³ßmN¯¯èw\\Çnn;Ðo[hJ‰NŽ®h8–n:t\ÓÔÑU• '2“¢1q"¬&cYU—'ŠR0!÷^ÀÙt$‚Ï_,%â„Í^æýÍãñù`ê:¶e6(}Ÿ~¹;2 ‹¢¤ßmsð¾zuÅÓrÍr»£Ûjqó¸@–%vžß,r4{ð|ÞßðC±ñýóßÂ#þðÍ[žÎfb4òöÅ9§²,'/Šæá˜“•™·µºH²t4ý¨Ÿ?tâÔ0À‘sÊØ£Î;Ü><5Ì®ùj+ºÀ²D%˜†Ž¦ª¼8Ÿ‘¤'ã!EYá!¿ûêŠtª<¬0–—§S ]£0Ë&ªRò´X³Ù{TUuì—.7;áÛÈ L]l%__Ñi;üðþ–‹“ Q$úª-Çj¤î2Ï«-ƒŽ‹ÛîÐi÷³šqÇ„:c$hZ‚çxz~fïGl½ä‰Íò‚8Íøô0'ËrA ¯jáÉVdf£Ï‹ yQˆs»ÅÁðƒˆ¿|ÿŽ.8yZlñã„ׯ^2ôÆ"Ý¢6–jˆ.°ièÈ•F¦«ø $eÉõù UU :´[6Ï«-·Kv^H¿ëò´Xc¦¡!I ©ÂœÖvÚ¼¸8e³]³ÛDq%ì²D’•H’èoFaÀÅhÊr2è¶±m‹ÝAx 6»-E3_zÜ<,©ë E’8H%A”°?ˆÁg–D”H,WkU¥Dæ‹ë„à%Í îž–(ŠÜäþDìq!ä8[$ó‹TäÖü¸¢–kƶe™hšÆtØG–dú—‹Ó1›í^b ©½VÛ4i²$èÚ1¤š ‰’ªb;&ç'#Ò,çÃÍ»G‘$”eÑ\Ý!)$\ÝF’5Ec6vy}uÂÍý3®e°Þn‰ü‹G·e±÷ V;¼ºgsðE\)Íxq6#Œ¢$ÅóC’,C‘elÓÔŸ0æÕÕ)»½Ç««¼í’›{AÿP‰®£bh*¦Zãš2o¯gضK&œŒ¸{Zbé:Šªðcr‹¦«èšrä²UJÍ ¥áEb¹“¤bâ:6U-¶öó×çB½%»X€ Ú-›^Û̓4£®ûïòtІ|÷ó'N'C¨õyï {.Yâ3Ÿ/x^®êSW1-›ñhÈÙlFBUËxA‚¦¼P UUnlöËÍžï~þD¿Ó¦¬*þòÝÏ‚z=yÙºU̽ç#IÂò8_1_mQñyúx?ç|6b4èÒv,$ ’8aÔÿ@¯kâù;Ê*&ŒSd)àîᙓ“jÕfÇlÜÇ4uÇ1MUæÕÕ)ŸñušªÐuÕFQÿ¸<Å046Û-“®Íba(%®£àº†¨:6¦©1³T• ½‡‘BëšÊl2IJLÑÞ¨*¤Æ+2hšI*®›O‹5ÓQŸõNx|»mËãI’ˆâËÐŽ š4ËðÃH=Zß¼½f{ð§h]U©fBå:BÙz~2"kú†¦‰Ìk^P•5¿þâ%f“ôˆóÃ/ˆDFÑÛ`³Õj(Nbˆ&ˆ$‰øC§ì|¡üùæ8Š©ªŠÉ Ç¡Yùzm^œÏðqÔ•$±Û{Á1ûg9µ¬Òï÷X­wxQ…¡ ídt$)oç„… ²N˜ïÌW[YâæaÁé¤K]ˆJÓöàC]á˜:š*³SjdEf± pm›aÛÁ±tâ¬B– ˆâX#lÓ`ڰº‡ÝnI–&´ U¦8=eqÝ·˜ŽúŒ‡#,Cg±Ù‰0g)Jâ‹Í§ùš¬”H²‚0 ÉË%ª)æ1y‘5?}¼c»÷ùõ×X BÊ4E^ÊÒ%²4¢ÌbÊBäåtMEV Æ£§ggøQA'¢ÖãèdYJ”…,×;ü0ÁÒUáoÞ¾ê§"ó¯ÿø¹I÷Ç"ŠÓZÑë´É‹¼IÜ—ŒŽy9õÖ'‰2ò¢F×dñÀÊ+%'Nb<ï@†AÇ<Î×ìö>=Ÿa¯K”$<™º*¨«]† Á­3´š¶­2hôÛ6ß¼nÑë¸ì=QÚ¯kŽ­‡¢(˜/7´l]ÓÐ5…ÅÆÎĘÿñîæ«-eYñÍÛ$i&¶Ä–A^äì!5G'IcÂ4c•è¦ÍÙ‰pdøaÆý–^§Ío¾xÁý|E’fœMGœÆi3~™ðæê MS…ÇÆ0 :¬vâ*¶=øL‡Bp_×4[ØB‹¨Y¬wL‡=‰óC4Ue¹ È+ Óq›iØ„q ¨RüýÍtõ: ºE)ÐkA7NQäy•鸬ȤiÆÙdHQÔUNúèr\%¨´ ~ÛâåÅŒá`B§ÍCCÓTö~À›«³†¬- ‹Qœry2&#NÆç¸Žeü;¨·ßm“eA$ôY^ðÔ¨’4ã×_¼ ®jVÛ=ÿøé#£È²þ廟qš‹Ñœ°ý(bÐëð¼X³÷Cë¿ÿú5QœðÝÏ7ô;îq%)_½ºÄ4tQ»3ÑÚ0t^]ž`™&Ž}˯¿x®ëÜ=¯¹: ™.èâá.ŽŠØ…‹ŠÚPLYV$iN¯Ýb6*¦®‰SŒiÐu[GRí '$Îqš‘%½Ž‹c›t]›ùr…娍Aˆ" øfšW Ï«àq¹ÅOk^]_ò´Ø°Ù{ür÷ÄåÉ„WWç´l$Žå%£~‡0 ÕQ¯…¥kdE•ˆä˜ IDATI½KHKhµ\U%ObÒ¼Æb+lÓ¢ªkæë­x'!¾ï“¤ 5š"7~cÛÔlÃ1¿zó‚$GôJSei»óÏ« -Ǧ×msû8Ç3âC†¦'8–ehÔ’ uÍׯ/Ñäøwï>qu6aµÙðó‡Ol6l­ Fh(ãDÂ6†Ã!šfÒn ¹Ëf³ãÇ÷ £µJ)‹˄Ժ×âíõ ¯.N±-‹,Ë(°Í^ ÇÛ-›õÎÃ2;”Em[„QÌ_xOYV|ÿþ–ó±x –ŠXIÍÆËØ‡1+/'«NfSÖ‡˜W—§ÇtþÙlÄb½eµ=Pgº*‘%Š\ä5UY‘åûõîã¶ÛÅ0…Êà‹缺<Å44¶M!¿×qÙî=N§#Ún /ˆ•¬4ËQt]׸Ž(ãü€Ió0ºZr~:£JŽÈŠ’0Øn×$i†¬êt;‚®ü¸X“¦yQPÕö%)ûCÀÞ5CEUÐ á¾pm/¹}œóã‡Û†Þ‰(Ú|ëÚ¬¶{žWºŽ×:ί®ÑU›²’'A„–$ªº&´,§,KêZHÆg£Ï Ç´ ?+²Ìb³åÃÍ#ùþgÝÃ~‡“ñY–Ùy>ÿøé–©óÓÍœC\QÖ YQ¢+ ½–„¦Ê „³¤,2â8f¾Ú%_¿ºB’%ç+tMåüì”^¯Çf·§×«©êŠa¯Ý ëeâRcÔï0žLQd…Ï®y#ºÝ&.“¦9UYq÷0' ·Ç8ÂÚ&¸Ž£¡«:²b0Ž˜Œ†l¦®©!ý®HÑK@Ï5ié5‡ÃžåzÈJEž„ÜÜÝfpy:ES*¢Èça>çÝ/÷ì;Š<áöñ™º,ˆåS•AÕètZ(ª°¶µ$™²ÊQd‰8 ‰Bßó°µ (‘%ÐUhY qÆQæESõÙ¨„Ä!mŽ 9Õ—UÅzçA]Ñë8gTxQŽAˆAÛV°Ôš*‹ð}–iÓí´˜úìý€NËæ‹gÞ<þÛÿû¿h»ó¥»þêÍ5Ï‹ Ÿîç|fQ†blˆ*•Ëkƒåz‡¬ÛHª.‚ÐUU‰Ì*Œob…ßEUÂ0áÇ÷·Ôˆ´y¯ãI«º&ðU¦¡s> ™QYcè*?ÄÞbÌ»¿‡c ²®„'ÄQ$]B‘* M„%Y¢(KdYAUUë=–að´s«¯^]â:b6³=øøQFVì©j1|^nñÃC×x^ni9“ã:Ï£ÊBžkʲ É“¯ªj²Ú-˜ïBþÛÿ÷o†Î¸ß¥j0䦡#Ë2÷OK:®Mžå¬ü’´ÒHŠ’Ž!“g)Ôa\°ßʼÏCv^BV”´ (Ê©.t,Ñ‹Ötl·MœÁ`ÐCk–-Aó×ï¢m«¬–â$QY.Þ0R]“&yñø4§Bãy½ãöqÉr³Ç± ¼¦6ôâ|vœ{d¹ ¼¼˜ÑuMžŸŸùø)!<Ô´LKW@ÊÐEב‘êœ8ôi·Š4f¾Z²Þù$qÄÃ|Én·¥ˆE¥(*Ôæg)²Ø*몄&Uì¶f£I*°é†¦±óÜ–…¢*tZ6y.²®mQScYmÇAΦCëËížë³—§:n‹õn/–uë˜e)A&3OYû÷$…Brˆ¸_Pd…÷–J-khšÁ wM×u° ãhö:8¶Éî Nvy^pó8çy¹á›/^ÐqmE¡o[¨ŠB^–\ÎŽ8'MQØ|ÖÛ¿ûúµÐÈ!–Ýx ¢4=Ò´=Ï'Ž"ÊZ|É{~@Çì÷‹}D·í I QšãÚ‚t´X.¸y\F1–ZBU±Ùû|z>0hLûm*T^\_³jN&cfㆮ GH]ó¼Ú¢ë:EQÐu\®Ï¦Œ]6;Mì‘ÃnÛ4¨êš$Mñƒ˜«³ ãANÓî5ŽMU­¦È…–!Nùí—/Åõ¹Ñ48V|duºŽèÌ_M›ß‹ƒó¤íÚtÜeU‘$)?~¸C×U‘¿ÌDö²ª*±ù.§ÍÉdÀ?Þ}¤Ý²9™ˆþoHŠÅùlÌùl|„ÌjªÚlË2‰šøE·Ó" k¶»=ùîa”p2ð›/_Ò²,dY¦¨JºnëHŠÖu1‡ºt܃žK–fDQÌa§Q×%ež’%I^Ñu K6Û-ç³ µ¬ówó²é¨Ç ÛáöIxVõöš~ÇåDÌÆ}ZŽ}ÔÛ}ñâ\˜äº¢·;t9›q,‹çÕ†ÇùÏ;à¶Q$\³’„cɸ¶FÛiÑîôiuüñ·¿"ÉJæ+±6u:­«ížª*i»6y^0è÷h·ÛȲ‚¦›ªD eMUìw;‚ÃŽ ɉ’ÛÒ±UñFè´]N¦}Ç%-*N¦¾ÿp"kBªÈ˜¦J‘gÄAD…€¨—DEMYÃúá¿»åÛwϼ~yIÒÔŠ .Ϧ<-Ö¼¼8Ųt\ǘ¦0"N3úóåŠÿñ×PkðÖJU•°tÇ”I,‡¢”pŸrˆr¢8'H2“ßµØl÷¤I@ìƒ dÁ…Ì> ±e¯ëŠínÏíý=7 ŸÙxLÅ|F²IÍ)â3=XSUÒL4²¼8R¶û¦!Ünysu†çGüÏo<ž"M]ö[LGnç;Ãbжðã‚~Ë Oò2&Su‚Þ<ËH³„§åžùj‹m ¤ÓdØ'I3ÝwÏ…6êwYoö|¼{±Mâ$e<ì5~–¼ùò1)+q]««š,/8eUc:†nñ«·¯‘(Yov,×[¾ÃóJè9uUF“$ö~ˆT•ìw{zm‹jsPK³œQ¿ËÉtD%ÇÖW¿+” ß¼¹"Îr~D·7`6ê7¡n1žB’ÄX‘e*I,wžÏöà‘Å!7 â4ãÅŬ4›´]‡§å†Ë“ Aóîã=//gøaL¿ÓâÕÕ)ÓÑ€÷7Ü=®0t•çÇÐmcš›8'L2²¼¢(ª:G Φ+ìV—¯_]`b JMÓáÓùÝW¯õ…‹c¹ÙAŒ²,qu6;šàW›=eQ6‰yqšL’ˆ$ôqÔ‚„ K¯Qrµ¥ºf2¸¸¼¢× ¨*þΧã:|ýúš Ù¨Ïè0€õþÀ°×æÿü¯mæ‹5†*ÇñQ(U{’²ÄTd¢,ÇK Pt ¿ ‹…¤Z²M§Û礴Zm«LV5ëíCWå&O°í†aÒ25¢ÿŸª÷ê‘$ÛÒì–¹iåZ†)*«®îiIrä?å+‚ A€˜!g8Ó=}U‰ÌJÚµ677͇má—ó|«êVe„™³÷÷­5”ºMR()X–ˆšþæ7߱ކ乴Q®ÏŽÑÔ ëíŽ8N°mé‡êšŠmY(…V£†oUˆã:£žm€JœÅÔ‰Réi»ieZÚìã Ë4ÑT…8‰‰“ׯ¡›âe؆1uÏ¢(Às-*ªÆrq3Z¡Û×§}ÂHèÁãOã'ý6ŸoŸPU)ÆË0¢Ý¬1œ.øtû( ‰N‹§Ñ¬D5eüÓŸ> ªjžÃq¿Ã·¯ÎKfNÍs™¯vT]“×§]ºí&án+'®}ä<ŸH ßóɨü½RɳKÌûI¿M·U§ê9¨šFšI ó%#çØ&ß\‰p§(vòsXmLSçÏï¿ðñöAT® üí¯¥æ9ž-©W¯Æ•ã£k yžáYûRñêX:Qã9¢P” gG-©.–›â`ŸRgƒ§G8®Ãl ×ç.ž#[ÕûçI)Z–p)ì#YÞ}ÿó »Ýž^§IÍ÷HÓÓÔOϱé4drÿ4&ØíÝFգ깬6[LC§×nŠq®XòûŸ>qqÜcÐm±XmøáÓíÁEt}–•šM“!É…ó“ªÔ]¿¹:C×5öq̇ÏwäyA½êIvq0™-Ѻ‚ÀÏxw}ìI| ™Ô£ˆ|€áá¦F– 5/Šòë%V©V½Ê<É‹œºïỾç{¢(áæá™“ž ç݃n Û4ÑJ[ÕóDÞàíF•8Iysy†k©X¦Šcj §3T%+æÂ¢›Œ'œ[I"ÃÐ$µ´¯9¶Ybw컬۪KNèë®mòéö‘Ÿ>ݲLëMÀr½ÁPa2›²YN ¶+öñþGQ°tÓrH0-vl¢ Eü#Ýfà$$Ž¥Úó0œ@Q`ê:ŸïŸxu~,'—ŠŽiÛ˜ŽÏb÷ÄÛ7¯9;‹P¡IÿþÇO¬6!—§=*• “ùšhµg³‹¹-¸{š°Xo‰“”(‘< ¡K×öx0 ËSNN|Ç$Ër~úßþ.Oz\øxûHÕsÑuª_åq4ãþILbǽ6ÍšOQ,7[²,§©û¼ÿr¨ ^Ÿ‘pyÒ%BüÏ÷ÔäWo/Øl>Þ>ÑiÔ°MÉbÅp² ^õxsqÌ×'¡ ]uY!Žë0h ùhìØ†ÝU%Ö6 9Ÿ÷ùë_} üË÷?S¯Ês~û8$Š ¤æúåþ™ÅjÃl¹áîiD«^å›ë3†St]ãßÿËS»Y#ÍrÒ4e¶Xá9ö¡=&Q—®x‰5•‡áUSùöúœ£nKæúŠB°ß³ÞüæÛWôÚ †ãyù¬k‡9mÕ“ÖY»Y;À!²²¡â{r;ÍìÂ=ÏÓ9i^>ŽhuØ`U´—.°ªVÊí®…iê2ØLC|ßåíå Ëõ–f½JµüV]·¤N¬xNäåJ¥Âj³•®nœdÙ¡ÌìØ65ßÁsJ2q’’'!y³KŸ>[.Ñ´ “ÅšVsaY\Ó¨z’…²ãrŽ ¾Ð8N©ù® î7b£{My{yЦVH³S…å|Êr:b¶XÇ{&«ˆzB«ê€j’ S¯7xuy!´ˤÛnPõáËi,K:¬à W§.Južçüéý «M ðIϧQkÐiªŒ¦ ×çâô”4ËøåÛKVë€Ë“”×[Žº-lÛâÿø¿ÿ™~§Áé [–ÀµÒIhîmÓk7Xm¶¼½ºçúÇ¿cÐmÑúó\Û¢( ö¥´žr‚Fº–“Ù’?Ý2è¶°ž„+—çyéˆÐ0t‹å:Ee±ÞcYq*3ÙÝ^à_î§4jžè@7{dÈìö|ÿó ¿~wM¿ÛÅs}Ï7ZœuxÎpcAÔÇå˽ÕlFÂþ›.V4ëÕRŽ-½Óõ¬4‰ 'sú&³åšßÿø‘ÕzË|¹¦Y—íuEFÕã§ÏwpWU©/jËuP~”-Æ3ñ¦‹i»¬Ö[‚½8F\+¡BÎj—àÙ*C[#Êæ«5ÿÝßý–J™ñ“¥á_jA¸?4'¾Ü>³Û ÁüEÿš—'¤d¾¹<ÁwôùÒõ=î·KɘXö4Uåy*šÙÏwŽ4]CÕ"nžf¸‹ÃtØìbauZëñНSVkÉÀåy!zÙ’º¾/“ͺOÕsiÖTE FÓаL“^[GU‹„{Zõj©D°‰º§ <×ÆÐ„Ó×k7Vk ¼6Ï æ«d{-ÆSAa9¶%æ»#Ù’¯·“ù²/Éb®¢Àx¶$ØEå•X>Ÿïžq,S”IÊz×çGhªÊz»c_†Æû&ª¦R âV«˜†Œ—4UzQH æE’$B–ÂÝv'>GldªªRAá~8¦Û¬ ç®ß¡Ó¬±Xo ÷rR[®·(ŠP„ó¢à_¾ÿHš¦ôÛu¶IJµÖÂõ7¬–óuD娕Ë(ØlÖd›ébÅwo.ŽGئZ"–*e÷OÞ<—®âíãˆÉlÉ·¯Îxs>àõY›»Ç!ÏO¤qÈ|¾`µÙ²ÝïÑ+JIލ`&íFÓõ1L‡·¯/é6[ §‹ƒ×x_Æ#‚PøÕ&À±LŽ{¦ó%E^$¶eHæ¨|á÷Ú 6ÁŽÝ~OO“Añýó˜ÅJf/«Í–Ñty¸æÕ|¡hœ z$i&ÿl$Ÿ¨©jyò\póðÄÝÓ˜ùj+¦rkï:–”ï÷ýN³ÌÆÉ `2_"NIšqu:`ºXÅ £éœÅrîT º-¹ÆÔª’®_mè4ëäEŽ®é„ûˆF­ŠçŠ>ŒD8Tß½¾àtÐ%Ž“µÃµ-¶AHM©Ðm×™ÌVìö{~ú|GšHìäôHæ€Çª@LàuZESeäRy¹Ñ¯ÒªWù|ÿD¥Ráüǿű-n‡T=Û2ÐÛn»AQH v2[b[Æ$ó4žÓkש¨:žçã¹.®¥óñëu× Ïb¦ËávÍp˜g6pó0äúô„V£J·%°€Õfw6l‚ËuÀÙ@~®³Õš<Šåä¥k„ឪç^5ߥæI5-ÏóÃ"@SÕC—õo.p›³A÷pRâ„‹ã>¿|{%~M£Ý¬³Ú’ÈèµP J]A…¢à¿8à¼Ä~F“о܄‚ÚútûÈùQŸó£.–%tË4¸8é±Ùî¨ùq"Au]Ó8îµÉ‹œšç š­È)ŠœzÍÇ2u<Ç¡]O‰¢S×Øí£ƒGG©(Lç+ºí­†ˆj¾‹© ßOÓ*Â=lÖ149] éFÄkíF•Éb-q«,çÇO·ìörÚÌ—Lk›€ëËKö…Ήjcù ò"— Ð•¶»ñtÉt4¦n™¬Óņ]ÒmÕq,ñï£XÈ®-0ŠØ¦fKñL+j¾wxIaÈÓhŠiê :-ÔÀ ÓéШù(•Ë5i£« ‹uÀ>ÝÐùðs†f˜¼ÿø™Qh6êUÒLxþy^Ðo7¸{’$ †*²ûî˜-VdID¸…|R,ç4Ê"|½Z£Ûí ã…8:FÓ5³ÅZJð¶˜Ï^,uy^ V*Ü?é&Œ§K‚p/R¦, XòOú@ViGÓ9ýŽø'¢8a¶XAù"Í‹œ>~åÛ×Ü>ŽdæÉLã…ò+ì®mñöêŒ8‘DF¥ŠrGšå|}ÑmFèºÊsI}¹¹2™/ùæúLú¯½6ýNCשùŠõªÏÙQüES¢Ô…œçÒ÷RëR5™Ç¡ÐdTUå´ßåêôϵ¥ï<_ÑjTË­œÍ|¹áõå –)_mßq°JY‘c[\÷™¯Öô;-‚ äæá™$ɘ/·¼:?¢R‘—ª/7ßux÷êœÓ£?}úÊbµå¯~ù¦¼‘LÑ4áÆ=gÌ—›òd"˜ýÍ.ä›ëSéwÏxŽK«QÅÐ+쓜A«Êx:ãæyÅd2^ g[ÚõgFÓ)“ÕžõzÃÕé1óå†V£J’¦Lk9 •mšelw!¶iâX&š¦Qðúâ„›ûgzí&Yž yžC»p K+q/_œˆÜ¾(©ÿø·¿áü¸ÇåÉ€ßÿøÛ2 ŠV]Rf™“Õ5–ƒDBÜò¶vT‰HõÚ\ŸÑ-«£ãÙ]W‰"9±Ï—k¶AÈx¾bºåÅq¯#=àÅŠéR„KÉ,rz­:µªÇQ·®ª‡Ó¾i€WEr††¡SuË”H[«Ál¹¦^õé—‡ C×Nç2©úŒg’¸>=¢Ó¬±\ɇ|2—¼iè2ÖØíé¶¼{uA½ÝÃòE^uh‚d¹äq«-ÓåŠÝnO¸Þ1šÎ¹}¢©NKÞÞ>Žy}yJÍwØ!_‡úF’fxŽÅÝó¤¤îZ|¾“¯u¥R¡ÈáþY¦­zƒºo±Ršõ*“É”(Ú“1‹mHÓ/X­×$ Tð Ã40*Éa#iêû5«•ÄþôÊŠI2á‹÷Žç,Ö2Ìõ=Wà‹¶ÅhºÀÐ5v ‘Ò¸ŽEVäÜ?OȲŒóãýN“»'i†ì£ä:p“£^›¯CÛb8ž‘¦_$b1Y¬PÕ ëM€®kt[užÇ3Ƴ–ipÜo‹Ø:´›T]GH$UµC\”rí0Œ¨8–ÔâÂýáp,‰k,×[i¿ØûHúÃQ’ðçŸoÈË*T¿#"k×¶Øe{|Çæy2'MÓr *ƒõazTò%³,G/“þ­z]×ÉRñ¾¾P_ÒüI*uÀÝ>*á—3NmÑ”>ÚínÏt¾¤Ý¾ÞÓH–'ƒñœ$Žt›œ :ø¥,[­¨üúÝ+î‡c²4ããí#¦®Ó¬UY¬…&ì•1Ó´ðªU Óä§›!ǽ:»`Ë6LœÅ|Žo[dû5ñ¾Æx:e2—B¥¢”¨¬DzJ nNݵKÝÄ‚«Óþ ½X®±,ƒ,ÍØåÒ[×U•/wO,ÖBa#=f¼ÿrOÍwiÕ«¬ƒ€NS1‹õ†Ÿ>ßq2hӮ׸¹–›G•Ò¬”ñ\`Û](aò(áÝ«3Ò,Ç/?°yž èµ(Èóœ7„ÜxºÄqLžÆS4U¢3›`Ç:Ø¡ °\oDªV©Ðoˈâ_ýâ 5ßc<_ð8šáئx\v{ÆÓß\R Ø«~»Išf†¸™“4+ù„ÖAåú<ž“å9ï?ßR-c7Ïyn ]!Sšá:6ÿÛïÐuU–)ážN³†aXx¶|€_ˆNj¥"@TQÊ9%WEIv<>>bÛ&o/N8;îbfùeÛ‘ebxò]‡V½F·Uçã튢Ðë4ql“Š";q…¬p“ª'Ñ8Íð½¦í@¥Âé©År¹$wT¨{²Ë‹CÕˆ£J*1aœIŸØÒ ©PÉ#ò4#++pMW$¼ ÁwtâÖ{™£Uëuþú—ß`X6žë—K›žcñúâ„çRÎüéë#¾ÜqV~iÓ4åëÃPøÕ7Wtšuú&NùB\¬¶õD ݬû؆l² ]G¡ÂóDš.ß½¾ Û¬œýv““~››Ç!yñ—<曋–›­D.æ«2<šŠ÷a¾âì¨Ã.’“ eTØl¥Bä:6ͺ/>†½h­RܳÞì¤O»Ý1 Ö¢RnêGSú7k>Q—ŽëS%A¥î{ئÁýÓ„ñìgI ”K°`òÝ›‹Ã÷÷ëË IDATÞ4t’Dên¿þæU­¥9 –©FËõ–ã~G¨Ûóqœ0èµx}qºTì#AoEqÂç»gU—ã¾PÇuM8Š¢Ðo7$A’¦s›ïŠê2Ï ªž Ôª.y.# µR ¹¢23]¬„¾d[ÒòùÃûÏÔ|UÓx{yÊõùþpsø3oÔ<,Ó`„¤iFšÉÁJÌóõm:GsÚŠ…6_¡Y.uÃþKØ0tjU—l—’í%âÐm6$á¾Øî¦<§Br(Oº&Ç6©ºOã™)ÛM* œºÜ=p,ÓÐÉM²ÜÄiãxÔ}›álKÅð(Ô=šf¥1›]€¡eZHɲˆùFNíšÁ6/X{â4GWE9ØòuAÓ§®eÒk¸$…Šëy´š-,Çáõ«kÂ}‡/S–åepW¥Óté¶êøž}X>¬7¶iÒk7hÖkLfKöqRÎÂbÚõ*ýNƒ‡ç)“Ù’$I™¯·¬Ö[~ü|Çíã˜vCDãŠ"¹^»Á_ýâ ŸnÑÊ`ùQ·…R©°ÝíYmGÒ,£Õ¨rÚïðïÿ#á>â¸×ÁÐôCoö…Ò¨ù_Ð%ïôáË=ß\ñöꔇá„õ6Àu-Þ^ɳQ¯EªÏÝÓ˜šïâ{‚Tªºa1¯\ÆzÕãã×{LÝ@Ó*Ø–gþþwßáX–èw!×g dãÙ­¢rvÔe:_Ñï6 £ˆïÿtÃl±Â¶ a¿ÍWè¥çÈ8åîiÌl¹>l„ß^òîúŒñly…¤YÊÙà”0ŠÏV¬6;Á,Mô»-†ãû}, Üéþòû½Úˆ+#IåJVõ\VAÂI¿G§üéý'’,g± ؆{'KÒ¢‚eùå7¯° ëpbCš¨š5_ì‰jÓԳʗ§iè<–ÐÇá”ÅjƒïØø®Ãz»cÐmqqÜc¶X„{T¥B£æ3™Ë­Ë/ç‰ußc8Óm7hT}åIì%ì¼ ¥qñ8œ jk2Žâ68­‹\ØýN“A·IÕ“e„‘t‡]Ûfä,XmvueÖ÷‚'Ëó¼ô!WØïcô†ŠiÔß=ѬWùþç/ü«_¼@ó|EÝw± ƒA¯M«×Á­û8¶…®«ƒI³LêbqÊz¹a3Ÿðãǯ»€·² NÒTˆÄ5ŸºïaǬÖ¶m–¤h!ÓžõÄY‘¤¨ªÊx¶äý§[~÷‹7üôùŽñl¦ªüâõgG½²¢åâ:6Ióf½fîOæI…J‘¦)»(E«(è*U¡P(mj–QÁ5eH*wÓ4h¶¨ºM§Ýáõõ9wOsªžG¯HÒש“e‚ÿÏßÿ\Rm4šõ*º¦fœŸoeNW•µm›Ü< Mç$i†óîa1],™-Ö´ËëdYÆé ÍõÙ1­zÛ³\EQ$b\÷é4ë@R65šuÓÐÝÉbEQäu[œ 䫽Þî¸:eÃ)Ž-i{PNæ,×ÛR®.›¹}c[&Yž¶o0œ,ø|÷ÄQ¯M‘l¶!ÿóÿúÉ VQøÇ¿ý55ߥÝB»ëZTPØÇ A¸g2_ÅSþ÷÷O\÷Ø…›`Çúã{þáwß±ÛíY»ƒ?f[ž€k¾K»Y'Ž~úx‹ï9P~$ã$#NRNÎŽº‡ìnî#n†üÿÍß0šÎ¾ØÑ+®Î4k>Y&ÕËÓ#¶¸SnŸGr…teßç¯/މbé{Ï— ÝFÓ%£Ù’›Ç)MO\˪ ¦®²ÚuŸ4+È)Dÿ¤>Pbt]ø÷Ïë@6ÐÁnϬ_ŸÊ­jºXªnw#Û<ä.;Í:íFçñŒ ÜãX²dNæBƒßîh5ªÄAJ#Š ÷Ÿ¾> VTürI3_®¹ªÉÂÊ,+{qù³VPÐ*•ÊA´m›«r%ÿ÷>~¹ãâ´‡ZQ9îwDˆRòÙä*›bº®Q¯z‡MðÕS©Ðï¶8?‘—Ýl±–ºKɬk5¤fãX2˜ÜÇ{*JÁóhJûqHïˆvrª (…× ‘R‘(-µŠ‚bAEÕQ…JE¥êy–‡W­SÑmÇ+>ܤišñæò]SIÒ”f­*žîÉœÑT¶¹y^ˆÖ³€ádÎ÷?ß')I"u×(ŽùÍ»kNú/LEß½EQ*\ ˆ¢„`2š.Ø!û(âÕùŸïžèµT*¥"vµÁеRf|\ xžÌ$jeLæKÒ4£ßi‘$ò¡{{qÊç{1%^Ÿ•ÝmÉòþáÇO˜†Îx¶äöqÄ>Šù7ÿÕ´”Uå:[”’§—'} ]g³Ûa™­Fûç1ï®ÏÊÛDÁ‡›{lÇaÐð8žÑÓ]–ͨ!‰zÍCÓTª¾‹¹X¡@ù¿‹"3Ë…÷ùö‘ÅjsÈ=§B0ññ¤Ãéœã^›‹“>Íõ4ž‘çš&/ã$ÍX,7‡™c½&¿tI’¡ª Ž%ôl¯Ìb¶Ë-Úh*ôZÕBµëìB ]çi4åì¸Gî©ù£éœmÙçTEª~YÊq£Ã«sÁñúú(ó«`‡UæÊ,CçÏ?å¿ý›_¡VõÍõ®->Ø«Sùu› ' ¾Ü>–RñÛÖ<Ç6ñ\›ªkñ¯ÿî7‡P줜)ŠBâe|º}`:_±/3…çG]Þ^b—³Â,ϱ,ßsJyu`Ã}ørmšŒË‡çŸÿü3Že2œÌ°m“ Ü' Ÿnù¯ÿêžžŸ Â³é … ­¢`Z&ž_EË\ÏÃÈA×Mt]—–L™€8;úK×4MS:­º,¢*4U;H“4 ’4+Êúá8™¯Mçø® ÀùqUU™¯äôdè2®R” ÓÅŠádÎÙqå:`4[ò»o_Q¯zx±¡ óÐsmê¾ÄnÂ}ÄÃó˜/wÏâŽ)`ºXòõqDVº>ªžx™g‹u©PøãûO¼½<#ŠÂ/÷¬·RÑüÍ»_s:èdÕ4‰“„F­JŠ«Ù±MÂ8fWê,–›àÐØZmò¼Íu"ðæq$tž‹ã>W§ƒ’€ðþË=Çý6wO#†~ùöÛ²04ÖQ]Óðl—L“®ï xUU+2´Lƒ<ÒK#ÓžJ*Ì®§Ñ϶øùæ½üÞG1¿ýö”Óõf‡ïVèwšlw!à û›wèšÆÃpÂq¯Í&ØQó]’,E9œ~ô; @®|EQ°\oå ÅÜ>HÓ”v£F’¦ çkÖ»” M×]+°MUf[q†¥WÈÒŒ(r•ºgryÒÅqªıÌ1†cUßs™ÌWhåÖÕ¶Lö± Ë÷‘l$×Û€Çá”fÝGUÅi0]®ùý9-=“ùRºF–É&·Ûj0è¶øÍ»k<Ç*%.R£z9½8`5Ÿý>f¾ÜP©(4j5LCg8™³Þ¨ªÊt±¢U¯ „2IÊk…ûës†“9ß\1š-0uÙîõÚ Î{¬PUa@®·Æã)ãé”áSFž§L–[Z5˰¨Ú~ÕïòrOEQñªãÙnîiTeãþâÇy!$‡QÌ×Ùî/7[ürî˜å9¾'\º£n«¼]¨r%_oÑuï^_`úágÿòázÉßnKíïü„eüæ›kP”%IÔÉœ0JÍøŽëÈíìÃÍ=›`ÇûÏ÷õZ¤I¥gd±–ßAC×yÏx{uÂë‹c4]*l¿ùöU9 òØ!—åÜR×E+›f²Tñ\‰µêUªå©3ŠÚÍ:yž3èÊ‹3KóCÖU×Eæ®k*7÷CN],ÓÀÔuº-õ6àŸþôMò8¶ã—ûgGSŒ²³m–±)MÓÏL+l{Å««K:ÍnyÀ Ì*‚Ä×5²"ô[Kj=iš¡jêÁß24M ‘¡ô|·AH–¿@N3úí&ÇÝvy훕"è„ùá#Žm¡i²¼(Sþ·# ]“lœ°Þ–Û¹T¾’Wå)F­ÌÔ‚Õj…¡WpÍ a)Û0%ˤöóò +ŠÊÓp"´cK»ÙâÓæ‘8ɸ{sÔmæsÝ–4[²<Çslz­õš'!Ù~$É_rJûHjhõ*ǽ³ÅŠ8IÑT•´”±ø®©kЦY¢Á¥Ô.³}‚pZmÝïoÄÃà¹6 »}ÄõÙº&þÙ§ñ”N³Îr³e:_ãÚ²•VÁÅ›†~Phž÷Dað$ó”×ÇŒ& v{ñÁÖ}—Õ& N,Óaì0uy‰†N’úãíþð…]y]ž-×lw!ußåþy"¹½J…?Io|Füýo¿•mr™Q”늋ïŠÀz±Þ°\êHÍÑ|·]Ç2ŒR0/CüçMÀn¡( žëpÒ—}’¦åËQè a$¹ÃÕfÇOŸoi–§Mµ{¾œœÔŠÂû/÷|} Tô»kÖ«5Ãшé|‰kd¹B”BE3©Vë¤9ض[ºŽå%ÿ®Y§R©Pó\®Ï¸:=âý—[*Š‚¦jèeã¡Ý¨•7›†®óêüC×ÏÌóx†©ëX†F«.óå`·§Ý¬ñÓ§[nîŸ9ê ¬ê¹´5Ú†®á96¶mÒnÔð}—`Òk7 v!( Á>"޾GAA¸ß3œLñ]ù(ee› à¨Ûæ×ï^1],´[,7[ú&á>FÓ4lS>ÖO£iÕÒøøõǶ¤å¡@£*¤ë,Ë vò^°ËxŠÀå¡ ¢3Ã)Ëõ–÷_îØîB« ÿñ?±Nú¢Øîv|ûú‚ ”óÅIŸZ)k—–Z×j£îBüýv“f£J&¦þ—9îµ%Õí»hšÊzsÜkcèû(Æu,L]DZw|úúÈ ÛæÕù1Uß))Ìžxu×±$Èè94<ƒ©³ÝíXl6¨*¤DIŽ¡É/ýÝpF¡T¨7¥gy~rD£jÒe–—nÌ¿2žÉFôtБ^¨k± B¾Ü=q:è°ÛG 'óÃ,ôïûÛ’J˜e™èšt'-C'Í2ª¾K’¦Ü?¥=Òib–õ(~æOÄüöòË2Yo´‡ùËWm½ HÓŒzÕǵ-¾Ü=qóðL«î„{þã~*•rýiÖ}¾Ü=A‰fßlw|º}’{YÿÏßdºX²Þ^¢(² î·›‡ÆÏç»'ªžK·Õào~õNjS7Ù”Ôìrþö×ïÊQ…×Ç\ºc ~K>° °%$Š%Þ„R÷rl“ÑtÁÓp*@È5Ãé¿ _žöI’ŒÍn'sŸ4åÃÍ=­Zõà"î4¥–7舘۶M ]g¹8tÑ5­~}Àµ-ªi–¢V*4ë>–aʇÏ49ê¶ñ›~¾!I3~õöŠ8MØ—[Ù·×g¸¶U"Ä"jUWúå¬O~æ)á~ÏÏ_Ĺ+h9Ÿ<“ÿÇ6Ñ_î¹}R½vó^ç_ý²Æt±:ôsûí+îžF¤YŽZQ9tYoÞ¾GÓäD¹XmØG1–ipÒïÒjT}Tµ"®èá”zÕãi$‡†ãžÌ‰MàYÁXÍóè·lõÄõ5jB’Næ,w ߘ>Ž.)ŽJEâZ– ¿(„÷<[°˜-p is¼ÿ|G°'îódÎõùq©®ÛbšO£ß\Ÿ2™IÀÙ44nŸF¬·çÇ]zí&¶e–'1»¶#ïÊ¿îâ¤O«Y£ê:ôÚ’«z¶l抂šçÒo5Ù®—X¦¥Éõ;Í jªÊz—f ¶®àYŽ©²äT¨¡¦;Â$ÅРêÉC٪װly™Mæ+Û¤Q÷ñly©=äºøþómi+Ó0 é\V*–ë@ û‹5EQ0œ.˜-ÖÄIÂÍý§ÉŒã^›$͸}qÒï2qo.Nøå›KÖ[9ý4j¾ Ä…Ó#9¦ÏWÒTN•Y𢔳ÃátÁ«‹4M“Ué_U+®Ïb˜^»ÁÅqŸ¼Y•m‡ëm^À Ûd Ø;½–< ¥¿¡êK-©Õ¨á96×çGœ÷Ø…!»PN`Y&Òì^»Éw¯ÏÞ ™9ÆRUš-9?ê¡Ê€ýaÈ6éwš\Ÿ1_mxw}Fœ¦tÛ <צ×nbYÆAy:Íù.Œ·’(J„i¸é½jJMïÿ×=þöÕ9µ"‘¨4=HÆmËbWòåäÏ5ã~6æÇOwL—ª®ƒeÙøžÏO_§ðù‰(–ÅYÍwY®·< ÇåÉÆ±LnŸF<ç< 'Ì—¶AHKsìÄï›Ü=) ìÓºÜ=éoÄqBšæÜ?¹:°ÆÓÃñ‚WG»=iž3š.¹:sȲBÐo‹%'ý5ߡ¹<Á±-NúÂP¢hÍz•×ÇL+–ë€WçÇh¥%Q×46Ûm&3îŸ'èºÆÓhJ§Õ`<³v¥iíi,²f}Àj½¥Ó¬ñÝ«sŽû|ׯs,ê¾G–f8Áq¯sXfÝ?Ù”uG×±Ð5õ°´:êµP+ —'}ŠBÌ–aðëo®¸:=¢êÙt› >Ý=b“ùªL9(8¶ÍÓxF»Yc4]Pó\ñk:ë`ÇãhÊëk_¬uUµ¢ GTb0"ª”<¯”ÁË=ß\±ÛGlƒzÕeÐm2™¯xM™.V‡kÎÕé€,Ï$´ªVhÕ«T* ®cquzD–çdY~Àú8¶Éj+.VŠ‚zÍãa4a½‘–D¿#×™É|ÅéQ—~9·»{„’©Z¬6uÛüî»7ºÆß&Ï ~øxƒmš%l4£Ý,T'|½æÛ×ç4k>­ºëØ¥ø¦}éþl< Ëϱ¥öî¹}Ò´¦IëàR°* 5Ïű-²òEo›&³åJr”wOÄq‚eÊ‹õå Rõ]*Š"¥ÛÆqL‚ýž`·/!”£‘iš¢TNû]|×÷„¦²ÚlÉÒŒÕvÇüÃt5É€Ö}®NÍÄIF’Ü?O˜¯Ö¼>?&ÍSâ8FUrjŽI·éq<èb;UN¤Jg”àÍû§1ífUœ­úAÛ™$™¼ðêUÌÖ}.ŽûضɟÞ¡×i T$ìö„j„®i%uYnP?} #âDÃéœ °ÀhºÀµ,Þ¾=`ÂNºhºÊx*²®°ìÀ®ƒÛÝžzÕãŸþøž?üô™w¯Îñl‹Ç2Å}>ß>qqÒc%|ør‡m›¤©ü̾¹>£î{D±ÜÎÔòÃ(§ëœf½†´ê¢ÿNæLf 4M%[H`}8]–ª\p<§x®hä#× êŠGùi<;´L« ( a$ ÄMòKç’¢Èøú0S^Ù#¯yîá¦âÚ²u74ÉlIì1L©tš†Á Ûä›ës\Û,;ìÊA ¡e™ §§ó%›ù‚,Ëhø.³©`€d¸)›­?øÌ—»'*ªœFf‹Že²Úl¹<éÓªû,7ayWWPØí„¿·v¬Ö[Â}„¦ªD‰Ä@Ä{÷4f_§ŸÆ3†ã²è“fÏÓ£ùŠ K×è4=¢$§PT¨h¨jN¶KYíä”SQ )…OŠ’ïV,S·F§î°ùçÇ= MhÓÅŠÛÇ!'ý6»0µm<צæ{lÝ]Y硜›´øÅ›KþüáF¾Z¥lÅЄ“÷æò¤ÄR)4ká>.3\>žcóÇ÷_ð]9aU]W¨Á›-fÊǯ%L"a}£ógyé­·¢p,ÃÐØîÂÒÓªWåôWŠ­¿>Éó‚?üôùðr²,ƒN£.sUe¹ P+ û¸mÔ<§|°å±Þîø_þÏÿ@Çô;¢Ttm‹¯#Â}$>ŒfǶ^>Ûb-NäzͧSžôã4%¦si‚üüåªï–$ž¬¼ÞÉHÅ4Ä?=™/Ù”ÛÖ ÜcYšZ9̾¹'Id‘³ÛG”ï®Ïè¶êÄIÆh:+·ÁOü›øªG”¤‡Š¢c[(ÀÃhÊ÷¿òöò”§Ñ”_îù«_¼8t¾_à§q’âÚIšb[æaænÛ&õšÏ¯Þ^É­l2§Ý¨ñåqÄt±Âª6Q¬E©e/p£æc) Äþýÿ;ƵLþõßý–ébI¥¢ÐnÔøí·¯‘æˆô)«ž+ù&­B°+»®#WÙò´‚ÁnÏÍýs9cë² £²= b]S¡l`¼¾8¡êº˜¦N¿Ýàì¨WÖñ¶4ª»íS‡ý>aµ°—n§ªä(yÂ>É p-…laj\K!Šs6›5Ÿo*ºEžg z„aÊód†¡é‡®mÕ$ýË\ðhÝ*2ü-WLç’æ¯¨6x—kñリ­LCvàIŸûá„`·g4]ðõq„¦ÊrIšRsm‹Ùr%›³_¸|¼yà¨+§Àšï²ÛíÙG1ãÙ’A·ÅÛ«3(O»p_Öìd‰U-+m/¸ù—Iž‰w£Õ¨RQ%¼;+½¯UÏ¥Qõ¢Å\ž„ë¶”kþI¿M–çü÷ÿW¤YÊOŸï¸8é“”ñ›7'‡Íçr-CôWçGœ”ÈòùjM’f´›5fË5žm•ð„´Ü<›$‡Þ³ï:¬¶[tM£Ó¬a2–Y;ŽzmTUåý—lS®?Ž%•°8‘+ôíãˆN³Æn·G)rôŠ|¢$£Võ¢tC׸}bê:»]HI]¬ê¹úñ6Næ‡lEÅЪWi7k% HPc5Oh&£ fé\è?‹Ím8!NR‚]Èn•/qJÊMrÔkñÿQõM²eWšÝºúºÖîá¡ãÉÌ|™ÐUÕUd³i= iœÒŒ¿“ÒºTU´j”R>:Âõº~µà`ŸðB`€—™î÷ž³÷÷­UäÃ~‡j¹¬*ƒ w£š.§±OW÷<ÍdyÁrã*…e¿# ‚¢(„!تs8èªHÑŒ8éòòô4͘/7œû’å­–jP)1ž.(¹͆dûêUé-/V[šõŠð«nGþñO¿ð›o^bèõj_ÑÜÿ·ÿô÷¼:;$Qž”a¿³Gìjã¿Úx‚écü0dëY¤iÊãdmßJCj¶ÀcF“9EÇÞšÓÎdd„²0KR&Ë5íÇ*‚Â* Ô-c¦Y†Dl<ŸõjÃíhÂl¹¡]µyš-ùpyG«Q£Û’/ȧëþô˾UÔ‰ÅzK–eû/ò›'rýÙî¤$]交IÊpÐ!Ž/Õ**Óë´„æQryú‹¼“††®kŠÂ|H–øÞŠåzƒ¡k$™ÁÉQ×-³Ý…v™^ÏÆqKEBv;B+Ò4Á2d;¬“P¶ ŠØc³ÈÈ —¢YÁ¬”¨”ÊüøñZ*Dvý¬úÔ‘`›N†^ž¹{œÒnÔ8=ìóö℺ €Ç‰äß^œ€AS«”èuE£DÏ}ÙOW÷*'V¢Èå«kçh:DZm4à /?¿ç–ŽðäÁ÷w[¬¶ž:ÚûÓŽ®ë|óêœzµÌh²êöbV•ƒGmºÊóœ§é’ÍnÇûÏ·¸®Í #¤êN«¡ømð0šâº6‰Â%iÆr³CÓä‹ßkËI(Ks¶;ŸŸ?_óýã÷”\‡¯^мj4Yðåö‘jÙEqȲboT+dÏpLÛæ 'ÛñºRX®6ß¾¹`Ø´–·“íŸëXÜ<<1/÷(6aJSã™ëx:쳫Ú|¹º–Ó·kQ©×iTK”\‡Ÿ>ßì3mŸnT=2ÁóC~üxÉt±Â2M¾Ü<„1Ç].o±L]×™/×\?£Ö¨U£˜åz‹çû”]Þ?MéwZˆ›Óó,CÖÏÞ\KËRAUÙvýÓAሆ½6ŽRöÛâ(þêÅ3Ÿ‡ À±MNÚò*L5³(ÉæJ×A+ÐM‡Z¹ÎW/Ϲ‰£™7¢^¶©”Mü8 MS¢Ðg6-Øz>«ÎŽúÌ–[^œRq¥/:šÎ…t­æžH˜y»ã?ýý?Sv]>ßÜ+BåÚ#Œb²,g¶Z£ë‚õãtÿ3¬”šö; m%÷žÕ“Ã>íV]²r®l\ë›-wOSz­¦að8îóC6žx‘ß\œF%ÇPCš©kùóüìû÷—ô”t&/ мÀ2Lªe—N«N«Y£VxEšå2³MùÐ7ë*ðZ°ÙøJ_9V® ºN¡€³£_½<ÅT‰gÀÃs8Ö#5§Ñ1M‡4“/±¡Ë|ùýçÞ¹•žh“ù’ÑdÎzãñåö‘Ùr½ÿº%ÿ<ß0†½ŽÌ¤›£©W*l<ŸÍF)A˜Pà'[ôË{‚(•«iò7¿ùÓ”ØÈ Ûâ«—§†±yüôéšv£Ž„{Åzëñ8ž„cmÉ·o.Èó‚úá=“ùž#¹övÜ>Žqm oðþË-­†ÐŽ¿yuÆjëqyûˆñÌT %Œ^rÕõÕé¶dû,7 aº ÁÇ«; ï'É\`šÆþ }z4ØßvtõÒ CyPŸ øæÕš®)ü•d¿ÿ…~¿M»!È»§éÞ^«”ÑuÇÉœD Ö CçpÐaçx»Éb)£¢Í–§©Œjêµ2i*Ï€—·8–ůÔá+c¡êª­Fä/ˆÛ³åO™÷*%I°ô8ö(»¯î0 “,Ϩ”’T®Ãyñìi቟î)¾íØào}V*c&5/ CVË%v~Àh²`ç‡\Þ=ª¬YÄŸùÂßýîRzô;-v~ Ñ…a_&—1ã9š®ËL1Iyš-ñÈÅjÃÿò?ýwtÛ ]ÐæQœðîÍ9§Ãž·¢Ð4Ò<ßÇ`ü0b±Ânš ÏÍ4 t]£×‘XËà`ˆ[©±õ<æ^Ϋ“G½£éR]·JTÊ%ÜR™ûñŠõvÇÓdÁÚ¹P}}~þ|K«^åÍÅ1ãùŠ,“­o­Zææãÿñßý–óãišqó0fãù ºT+.ËGÙ‘Àóû/7¤yÎ/Ÿoxu~„e™ÄqÆOŸ®¸ºqq|@œ¦LbÖò4ŸÍv‡¦ÉFìòæ‘"/ÐÔìjÐmÑTM€WçGŒ& ~ÿíÚÍ.o¹¼{”ëHQì…ß» ähÐã·ï^‹»¡äbþ‹ÂXøo“ùjOÒÕu ¤®VrU”G㦮c™Íz[B·¶M­RVˆ4ñK<£à—+y±äyA–åü¿üZµÌ¯¿zÉÚÛqrÐÇq,æ«-–+Ò¼(8öyu.MŠa¯Í»×çtšuÞ½¹àóÍAñöB®Ø—w#šµ*m5ßÔ4 ? Ù…!º¡q>8À÷JÄÁ†ñtŽcðwóWxAÎEav]i2È ­ÅÆŒ×bµ¥Ý¨)Œ\ŒmY©pñv°Ül)—\\Ûb¹Þ„1ÏçõÙçÇâ~)Š‚Fµº÷lœ ûò"«U‰©‡>ofµ OÓqšþWƒò0™c*ªw½*#a?úÔ«e~ûî qK×jÐr½%Ïr²Tœ2a³öbÙØ§–eá:ÛÄîFS äî´j´uÒ4ÅU]÷vCšawOþôËgŠ¢P/H‰„}¼~ŸOš‘¥qœªHl½€É|ÉÚÛ1è´¨×+üõ¯¿"Ïsõ÷“ò·¿}GÇÜŽ$)bۯΎèµÅ%ÒnÔDòn™¬6Ež«Ýœ4•†PFØQLKĆ€ÔßlË$VÁѲëp>8Ã4`µõ”§ &Ë ¼@pث펓aO0Z–EµTâíÅ ½¶ˆtòÓ4ðü$Iùåód‚Æ3¾~uJ·Õàái¦¼Ù>¨kY&ƒN‹ÑtN­*:Îõf'„Œé„»§%Ó ¶e0YlYúŸ°,‡¯_ѨV¸Ïè6JÐjÔÔ¿šì‚„‡É#LJTë5Î/ΩÔ×Ü/ò\Pû µ½ÖuM–iêß§IF­\¢®æÌbˆóñvµr™n»N¥ä2Š<ª%ϵcÉôeYÁx¶àöqÂÿú?ÿ÷X–Áj³c¶ÜPv] yxš1ž-ÏWüÝïÞQQÛßz­Â ×ÂU¿{? ù/þÀéaŸ“aOiQ%jå*gˆëÚ\Þ>r:ìS)˲ Œ"|UüóâdŸ«ÓÔ2-ÍDWêBu®–żÅ kÕ;ò³MɵyšÍ©/Vû@y§ÕÀuleê+Ø)Èéá×± w/$îÙBn/Õr‰(–‡Ù•+îíhÌÖ“¾Ün¢(¦Ójp:°SN¡Sõòj«}ÂÑA——wTË.ífƒ‡ñ”(J8VÏ”PAB–~§I£VæËíšzU&ÿ–³"Îb½UЄˆËÛGêµ ÍZ•—Qš«çR£äb[ât6³ 3ÍòýéO<‚™F‡ ŒprkÈ,Ð0 6Û½¶š!Ôˆâ˜éb­  •ý2 ƒ»Ç‰\MC:|Ê?Z¯–÷àCoà‘pÒ\G fئ#Ÿßº¶eQv-šµŽ-Eö‹‹c¦KOåŸ|ž&s<ÏßÇo^‘¥Óå×u8>è)ú¯F䨶KVT«5LÓa³‹„Qv7B×4úÊÞUvò,çæQ~ᚦq4èˆ –cùh"Ô”<Ï ¢˜ãƒçÇÖގDZԾ²¼àôp@½&3‘f­ÆÖ÷ùxuO§UWýcsO‚9?¢éÃ^›zµŠ®éûíbÇ|¸–ìÛÍÃD]·3Nû¼<=¤Y«p}ÿ$Ê$QWD w&õº¢µàÕÓ”—gGR 2M‰w„¡4 ê5‚0”Å@ÅÓÅZ†Èš&LEõÂ{ÞJP°³¯·¾Ìƒ}YT<ŒgôÛMuu¾Ý|½ÙWâžÍi†!€a¿Ít¾&B‚ &J$4û<>I’? …L^­àù‚œ?T•Ë4Mql›ñüA·EžBÆ™ ^«( Áy¹6£Éœ_>Ë–±¡ê›õЏ…Oû,”°çú~ħ›t]Û;&Ò4e½IЕ½Ì¶EÈô‡ïÞ² BqÀd¦aòæâxÿ@:ö™-ײ\È…È^rŠ{v8P§9É îEB/ð4]R)9ÌÕËO€ÄKâ$a³õùåË­dcQ ­] ÷O*%—×Ç´5¾Ü>ðêTr‰ƒnK<#º®^êB¦^¬·rCñCšµ*ŽcñéæaŸpl Û¶8èÉÉ_×t*jU­W Y¯ò4]¢+:}¤}Y–ó¿ÿç¿—¹çÚÛ¿|ºmy‰nvLæ+þõçO4ªNûtU{éBW?ß>bš¶Ì† ‰‰eyú˜š&¡Þ8TÙu˜ÌWô%šõOÓ%½v“jµD¥"¢£—gGt[ U‹Ï0Lƒ$S%|º~à‡ö=?ÊJ?Nø4¹§Õ¬1_JäÅumZN‹bÈt±¦Q«PR'ŠjE¸^/O†tš5)¸Ф¿»Í*§‡‡<Í–\œ ùÝ»×dYFGe›Zµ*7cë-ÿÍïÞQrFӳ冊ëâX6¶%3­^§I¡è4—w#¾~yF·Q'ÎRùe)Ü‘e ëmîF3îÇS,Ód4Y k² «†Ë³ŠR×4µ*ÇÃóÕf‡O—Äi¢<¶:ǃº¡3ž 2WÛ5©I ÿÓÍ®m±ÚÈ|ñú“!§Ã>‹ÍfëÚlÞ¨UðƒˆÑôZ¸q‡ƒ½ï5NúÝQ’*,W"Wà0Ú㌚µ ¦¡ï=¦aPq]%Ù)'â0Ym帇†À)ä…z~<ä ×b¥ü~ñúìˆf£&Í›íS— åùñ@åN›üÝo¿ÁuäÃ{Ðmó4[Ъ×h6jûE‰J˜¦A¯Ý$Œcî'$iÆÆÛ‘çù!æÚ²L™-Ö8êçRß3 ÛŒûoß½æåé!¦©«ƒA¦d<>¦¡“…€Ê%Þœó«¯^àùãÙJ-r|ÊewùmÔ*‘$&âTl~®kS¯VØù¡2¡É"±äÚ¼¹8pjS–0A2™/…žS l¹äà‹õvÿÀ¨H‚e™\Þ>r;šÈbCÝ®‚(â7ß¼¦ZrùçŸ>òÿògGúí&ƒn›‹ãiD‰°=«êVä*Þ³ö<áýÅ q$WÿãA’+‹“aS-ê •1 M9‚F“ùþ¥°S´¥v³Æ.ºía©KŽŒj¢8áåé!Ã~—ßûFÕ-%7[løróHµ\ãÞÅ1%Ǧݪ3ωb!PgYŽã,×õ펚%,Äšª`˜†a¹Dëà;`$;B.;i&Â)è‹ø¼ÓªKåeº ŠÄ‹±ÚzT+%9 Mçl<ñ2hšl¶úJœì8i._š^[X_ϾQ[*lË’£÷rÃãX:~º®ññêÅzG½$wø­ñ0YÐnÂýÓTõ"+ûmf’¤DIÂA·ÈßÇl)ø«³£&ó%©')Ëõ”S}€· Õl«Y¯b;Þ2ÜמÅ7¦iòãÇKV†N§UgÐi±URê’ëðùúÕvÇç›{ú¹æ%±d#ÿóßÿ3ÿã¿ÿ+¢8& cú•¡ÿíhÂx¶ ×iÒ¬UøxuOÅb3åŸÿæa,bÛÄ4u&³/N†ŒçË}]+Ïs)«;¶àŧóÿê‘')ÞÎǬ‰:3ÏsþüËÆó%ƒn›•r!'iÆãX¼0Ï(ûf­Æd±Âql´í3áC°ôOÓ…  ³œ7çG8¶E·Ù Õ¨ñýûK¹ ÎWŠFcÓª þ`³õ¹¼{ :í®mñùæ‘Ùrë³cªJ[jš†®‘f)«µÇÖ÷1W†Ò´®ùÝ»W{t׳gWN}L]#M|SÉÙmüíqƧ‘Çzð?üû¿Rì ³¥Ôù,ÓàËí#.ï°-“V£ÆÃxÎÙÑ€Z¥„ëØlw;Ê%—F¥B^äª2è0ž.UGXüÍ[Ïçiºàýå-'Ã>í¦8YŠ\Âí¿z+ÿŒwO3jjß<*êoZU2Z» 5 ðö┻ф³Ã¸U¯òÆXre[רUyœÌöÙçE‹ëXœ ûjà\¥ä褑‡žÇÜM×4š;ª•³åš»Ñ„Õ¦Ìíã˜F½Š· ˆ“Ã?º‘ÀjE ›ë­Çf»ãq2çwß¾‘‡A‘Óm×Y®·*`k±Ýè†,l*%—ÅÚ-àöß⠯ωb<7¢X®œw£‰ÌDš 5×Ë•c%Û °~ùrKÅxË€ÇÉLÊæ­¦\o¥øêô paεBƒyyzÈríqû8¡Õ¨bŠ7¨D8³Åšûñ”N³A¯ÝÀ2M: i (?ïlµ¦Õ¨’¦Ù~iuÐmáùòç¡4wª¡îvšu¼@–`ÏB©“a_æ‘›a”'þþá‘e9Yží{ÁŽmc:OS^_œ°ZËÒ`¹ñöAl]á’D¤#3±ÑdŽe\Þ8ô¨WÊÌWæë £ñœ²ã0ž/¥ÇkIÔ4J%ÛVâÕýÛ\ÙÚIÒœ•a;™žã‡1®îøæÕšlŒ»í¯ÎŽ$ƒ6è‚jv¸ŽÀ€o'Œ§ 9Ý&ìU§º.Œ­çsœLæKŽzt¹M•eš8¶Å—ÛG2õÒz^ ÖkU¦f9ÿÏ¿çƒÚîûmÞôN¨VJ|º~ ì:œðý€µçïMzš©/JÔÑdÁt±×ÿ! IDATâÇW2qléˆG 7c:Í:‹Õ†ÓþĜÖÞþs‘ea ðdÈwo/Ï–dyÎÓTò»OX…¦)‘˜çYm¿ÛÂó|êƒχÆó%ª8ªŸiÐO39<•]YÀ@Ád¶äÓÍ=ž')íV iƒ¹¶àÀª%É~!CQp7š¢é&•ZËK0+MÌR}€ÙK‘|?T}RÙÌ”[\µ qœpý0æã•àyÖï·þå ŸoøöÍ9Õ²ô/[õV8N%_EQÌ×/ÏHÓ”8M™/7û,Ît±b¹Þ2_n@“xC†ÊÏQ¡RrY®·8¶%o z™õZI*pÉA§%ÓùŠ,Ïéw›4jòK[¬7¬·;¥bÌý³~ðÇW”K%Ò$åâø@4åÒ^§g˜5·¬Ró冷/ŽeKÅQ¬DÍU’,£ì:\ÝD&½ÜÈÏ«ìRU}_M“Ja^l¶;þêW_)º‰žë<¦:áȆÞ"²,ããõ½Š,$V^ÝjEæ©ß¼:ã÷ß¾e<[J‡sµ¬–-ì8M“|\·Õ N¦ó%—wOÒØxüøñŠvSY–ïÛ'‹µPNtõ÷Ÿ¦C°M‹é|¥";²<Û/ƒ=a:*!P.9غÅѸBZ*¿z+[ßf½ªN)Ã(FÓ5¶žÏ|)§¯jÙe½èGýŽçïÙãÄ =è´hÖ«X–ÉR=LwA¨‚»y^&4äDâ:ÍZ™ñtLű(b“zÙâä É›×o‰Søýwo°-KØ—aÌa_[Qc™&¯ÎÐ5ÙrM¤®ÝÏ—1ŠÂ­×ªeÒ,Sÿ%Ï·­ãƒžø’£ŠCÓ˜/e®ºÜl¥%À¯B‹IbÒ4SÊ„™ªÅœtšu&3‚0¢¤"hµj…ùj»‡oèºF­ZÙ÷¦EDÕØ?°^ŸÓk7dkíXüíïÞɈf¶’ÄV¾/5…[¬¥oì:õj™ÙR¾{ß¾•|_§„qŒc™8Ž,ÐJj¶¿ÙîÈYâ¼}qŠï‡”Ôw Y¯í_¤Ã~›De ]çÕéqš0™‹åͲL'÷2·6 éÄ)uµJÒ”ùjËvp7SÝŸõœ“s!+BâçyŽ®I©>pE`üæü˜’¥‘«­S»Y§ßm Ò)Iq\{ÏÕwlK˜ûYÎ|µVšÁ;?¤äЇ!ŽSÎØxò :èµm8“Òº ÷Û-âXê1¶i’©?ëyÛYäâI³Œ(ÉöY3M×éušœöùêå)“™\Ÿº¼©O {=páåÙGƒvƒ­bîej@.H/A2u[už¦ >]ßóÿöw긞Ֆ_?p}ÿÄX™‡"öÚ/O†¬½€ÇÉJâ^YN§VÍåô¸õ„T„1§ÃOÓÅ~„"•G¹ö/ÔBæâä€ÃAWñ+ šµªšCœ {\ÞŽ°,so_o<™©–K삈A¯C«Yc4A”i ð#Í$ªò8™Ó¬Wyqrˆm› zX†Á/_n¨”Å…lè:kEÚî|^1šÎyO‰âCרׄöÝk79è¶÷ìJi„TK%!’Ï–Ô+eÚ­úþá¬i¯N©”d¾ù8žñÇ+²\Z;õj…ÕÖÃ[<)ô}®œ­zЊ9=Ðë4ÐÐø‡ù‰ùJN€®cïM‰º&1¸p| 7 ?ˆ˜/×øaˆŽFš¦¬6;æ«5ŽeQ¯•A •²Kµ\¢×nq||ŒY–LmÅuþ"£é¦AI z4™óp{O§î¢r"y¤z;Ÿµ·£ì â=PÄâ·'‚n7%n`™®î¨W+Üß<ð4[îÝ,ífÙrÍAOt’½NMÓøÃ·oˆ“DZ÷Fµf£Fɱ÷IÛëØÉ°Ïj»£×ó·o.˜ùùíF•,icÒpa¹õª›flýùrÃÆÛññêž“aößz>o_ž²XoÕ©Eœ7•’‹­øz“ù’Ww¤i®úÑ’‰›.W¤é±òÐHþHÂH”Ž/N©UËûå@¥,ã$ ö`\ϰwÄ 1'µ²œ‡ÙŒ­J]èºÄI®ïŸÐuþ¼üµ2›mUÝ2¦ó÷ãß¿ÿ‚iôZu@̇Õr‰4M÷.]F" 3 ƒÕÖc<[(ù¹e¾)뢠×i2ž/™Ì–üê«…P™K úð4[PðöÅ1µJ™ÙrÍV‘Žþ¿?ý¼ï†Æbµåóí%Ç¡¥^ÆÏÁú8»áíãd¿X;öX{qšsr"ÛmW-`da ¦e ?P=¿óã!uf“1W÷c«5'‡= >!ßøÂùÑÁ¾Üüéúž'³žV]S­z•·'bþªU(òœ³£ªå2«íŽn«eø~ÈÑ ËÙ‘ÁÕýƒn“‡ñœÙjEÈ"âY ´õ¤t¾ó|kŸ¢€v«N”$Ü>Œ‰Uøx©>˜®cñéêž Š0YöùJ°RHgxè—Ûü0"ŽÞ½>ßK‡~ýõK¦‹5ÞNܬišñíë 6ÞŽ,ÏÙì|Žº¸ªVS. ò}:—L_£^MßG6 ]Ã6MÖÞM×MæüúëWÔªª•;?Ä6Mb%\ÏD±hkåYž1_mdæ±–e„‘ˆ¸-K¡Y–±õÒ4c<[Òm7Èü\ kêZºóCiΔJøAÈÙ±,€ºí­z•‹©æ=Wð‚ Ú‡tŸqOŠÝ< ¿Û’­d3èü[/õï~÷ qšrzØ—¿v¹ÄÕ݈a_þÍzÓ0ÙB–ëfJše¼>?æ_úHMY÷6ÞNx:®#4î4äÔÖ“—t¿ÛÂulÞ½:ÃV”nùÜ™l}Ÿ³£¿á1Ëå žädiNÆB²6=»\r$³ØiÂt­€Êæ$YšFÅ"rrl&‹5g•²Ëj#Röf]š×OºqU w„ܦԫe|?dJ¸?¾5*ðýPœ,²¼À¶MY6n,LÓ!yÓm7÷síí.´[3äóÍ;_âCµr‰F­Â×/O±,7™³…`äwž ¡Ño7…,­>Bc©Sve©§)'‡}†½¶ê½[\©ìéá Ël±æóÍóÕFÔ¸AD«Q%ŽSaGÎ{ÄU»Q§( ]©Éµ{Õ‚e™Ò É ˜ð÷ŸG]ÓHÓlϬ×JÒÖ$П+ |Q€™¦"E‚Ï—mg–e \Ûä§OWâ¡u,†ý6ífN³Á Ûd<[à8Z•/·I"d˜l¾¦Ùª˜¦ŠðG]^q[°/ÔTC×9=’¹Ñãd±÷KÏ;Çu¤aÅ1›‰¿ÇNišdµîÇ3*å2~âí„Û÷¬sœÌ—ûœ­ •ÏW}MÓÙù¢tZ|ÿá’~§I¥\¢Z‘ójãqz4ÀóCüP²˜A(Ë®4M±•lh» h·œˆãW®¬rE·L“a¿ƒ„ê$0QWd×¶öé€Û‡1×f³ ÍÖl·a”°özê%ùéêž]²ÞúüëÏŸ)¹Ãn›(JøñÓ5[IÓŒ]°ñ|!ó”K´U֞α-õ°¼(dÖvq´ù·ê‚BÛz>…j[ö)—\¾}sÎh2çhØÅÔ ¶;_ñ=Æ*îõ8™ ¡ä„òÅ¢d_|>|„QÂc2'Nn§ÄiŸßá‡W8¶\ó] Sš$σç™ïýÓ”’cã¨9§ÐlG«0ñvÂLÉKµÕ¬íÁ¸A1ßÈËÿíËSÕ2OÓýN‹×çGûȳãX×5^£iHŒ,Ëxu~¤ÀÄAsóð„ãØõ;ôÚ-Úei$=;_†½¶ò ›X†mXLfIÍMŸÉbEˆM×tqJ™h1-u\¢Xa™2Ö~°ïvšuúy‹˜¦ÁÍǃ6®#›<×±øÝ·oX®½={½õñ‚€»§)ã®mqû8a§5ÇC>ß<0èµT:äÇO7¬Ö[Þ¾<¡ßmr7šÊS]%ÿuŠLÃ4uEnhwz¤™F¯Ó„”*Þo¶>ŽcãÚ6›TÉJ%‡a¯C’fLfKÊ®CÅüôùšùñ¿ùæ•D9Ð¥ÿ™çû&A–çlwºâ´›u\§ ŽjÕ Aszt°' :MnÇ{ß \Ý?aY&/O‡T+ò¥,«àê§ë{zí_n¡>ö. Éó‚×碞Üz>"’²LSå·št[M¼ PoÓ—w#Æó%ǃ¯N…»X-˸">YÓÔUTÇÚwµ£¢ AŸµs•óôÔLÓçÿø¿ÿȯ¾zIMSŽšõ=ÉfØëÇRtšø*²ãªú_œ¦{„ëH-®Ó¬s§²jÕŠxPVJÙåîq‚i™" "á-n=Áýwš‚N[®÷uª,“x¯ÓT¿7[IÔ·TËÂ|~9¶5µ*£'’cAjQqtje‡RÉ¡T*ÓlTÕ6¶É»×üõ¯¿&ËRVÞŽWwèšFÅÜä3­¡íO,añùæÛ¶ö£ÑdNµ\b4sû8áúþ ? ÷3»ýé#õj…(‰yûâ]— ¦Œc ò8¡äÚØ–E·U§¦n)éÔ(+ÇñåíSÉÌ& éªûaˆÙïrÐ7ÍÃÓŒ~§E£^¡×nüE˜]°m›ƒ^›G%¬Ïm2EB߬W9ìwÐÑÏ—Åá†Ü>FE®Hî1†®ó8žs¯¾ÓÏ1ºÅZæçãÙ’¯^žP)—øéãµú3D#àû‹µ,Æ3,ÓT·Ÿ{õBYЬWñü€§Ébÿ]hT+êᇑT}ÒŒùñ#¦i*Lœ ûEH¬6>¦ãr<ì¡ëY‘«‡±të• /N†Ò™Õ4.NÉ‹|Ÿ—굸ÊU-¹¼½8VDäˆÞ_É U×ÉUßøúþi¯°-“n³ÎÚlúh:‡.Ž {-¢8%TóÑç#ûÓtÁW/OÙ![/@×t¼@€ï/oÙîäZö|Rn7kdËß—¦@ÅûÐn·ÙPÛmOɲoé¶By±Læ« :š†”VSºÀÆŽcòËçÛ}îOC“¤=ëù¡ h’ñÇ_ÞÓk7©”\ÎŽ¸êÔgèBõ=;Hh8GƒFLæBåø|óÀÚó¨×*B²,~ÿíµŠ:º¬ÖÃn‡(IhÕ%ò„‘ü5 ƒ4Kñü€­·c2~^Ùuùó/²z¡Ü(Z…$N˜Ì— :-™›úÍz ×1™.Vä¹À=µ I’2_ûE†cÊðýæaÂÛe&ó­zïÞ¾`ØïP9°èwZœ ˆ’”“a_f»†Î¯¿~‰¦i<Žgô;MaÔ º\Þ8=pyûÈÏŸoøÇ?ýBAAǼ:; Êe—B~Õ*eúmYdÍ—îGSJ%‡éBpP7Æ‚¸uvÄ ÛÂT^á/7xAÀA·MšÉÈ$Šb~ýÕKlÛb½ñÏ—ô;-Þ½9çø ËÝhŠãXl¶R<ÈÓÛ*K®¤-…}ûæÕÙ¿IÙ•XlØkóæâX8㙤•\Ótž¦sv~H§U—YrS žÒ*:üðþ’Ÿ>å4j®ž°-“ÃA‡×çGr‹Ð¡ÓlÐi6øúå©d,ƒr‘°=©🮨”J]ýî-GƒYV«2®kB²ò¼$þs•È6 *%-å)•ÖËÓ¡è#ÿBŠ.wüëíNÒíIJ¦Žq3§\Ý=î3ƒi–2è´Xow„a¼÷É~ûæ‚V³Æ—›Gއ]::Ã^‡j¥¬†Äò{ûâ„—·hºFel¶aœÐ­ ZÞ²]1©êS¥$ܾzµÂç›GI¥9A’ÙŽ-@ÒVCjFõj‰8ItšôÛTK²qëwš\Þ=±[ˆF²¤4”ãO““Å’8IÕÃ@çü¨O’¦<ŒgTJ%Ûd±Ü°Ûù$iN«^a¹ZÓ¨W £ˆ0Œ)òœ^»N’$´êv¾/ƒ|Û¤Y­Pv ]ÃÛùLf ²"'Ib¹ç9›í×¶¤ÚSäl·¾"eTÊâÎ}FOeiFÊvþ—ÏפiB¯Õà~ËÇ-_n÷8´§éB’®-T“<—Åcsv4ØgF£8¦V.q½ºx–å4U~øpÅÓt!•Ó’Ã?üóüá»·èšÆv`Û&Že ÜÁ6ùÝ›×X¦°+å;Ó¤Q¯Å©ØóŒz­ÌÃxF[-Ë4eÿ;Š )Ë2.N†B2ªV8=Hz¢$²zÛ÷q[Õ;5QCT\Ó2¨–d~§i}uŠ“”(4WÙDšå¼}qÌÁ²Ã Û¤V-Ó¬Vù§?Òn ÍêaîcdBÀ*ä üLù°-‹,ðÑ4TÆÌbÐm©HJŽãÈ•m±Þ²Ùù7Þ†W§CÆS(ø«kë˜z FN«j&1I¢Sày‚ ?èV™¯¶8fV$đϠUA3t´<¦V2)ò˜Š£qú,3j®AÅqñ¶k&ó5Ârë·*ØFNž†¬V Eú±Ð‹”óCo4ku XQ¶åK²XH }µZrÐ:äÖÛE\t›ô›%Bߣ^6!³H“˜"HÂY"ÛÊédÌÚ ö®ñl‰`ÀÆó5ÝV J˜-7¬=×ÈM—¬6;ªe—<‚´Ô¬ –‹9wã½Vn«Êd:CÏSvÛ5Iðùò†NSº«_ ƒ ŒiÔJüryG%ìt Šœõr‹nIô*Ž%òÜa.—\U‘{KO£È ½xvK(‡K¨Ü.²h{ƽϖkQ dŽ-0Y ðy!Y¦Éd¾b«Ò¦iì7¸gGÎÐu’ëðîõ9e×Ù÷hw~H­*>n»Á×/NôZüÃ?ÿ„iô;ò@~÷ú€ÿ‡ïjkD,kåçGûjÄdiF»Q%NVò4]py;bµñhÔ* ºmF“išñ§Ÿ?ó±$ìÁ­çS)—TÏ9£Ûÿö³ˆèú~DEüòé†o^Ÿc×ä†rØïЬK~w²X±ž‹jÂ#Þ¹Ý=+‰…=M縎C’¤ :”Kî>šTGì„¿ÊìCzÝÏø.ÃÐ1ÿ’í·Ý¸ZçL+V‰¼¿¼Û¯—_œ1 ƒ/7‚_:;âìð€(iQBë0MI¯+îV½Ráåé êð‡ïÞ`¢ßKq¼Ú¶P`f‹õ>ÿçù!šjLkL]gå‡8–kئÆåýˆ’ã0=±^­”z3b>¯Pr,Š4FË4f3ù"WJ;?´ â0a¹ÌØn ÆÓ%IÅ?|¼ÃcŽ-V[ŸÍ. ~q´×2†qŠW‘?›¢`»Z‘Spíð6;Éê™c©­ º v~Ä|%]PÛ2 wŸï'tUje—úù KÏi5äÆ y.½äérƒcYtZUvADžÊÐ;ð#²4b½•O¥ìò4›ÊìÈ0õšV0›¯:=cºÜÐR’r·#OcÚuWT®A–…ôš‚…BS“Òf+>²­ãíBlÂЧV²˜o<òØG¾~ÿÝ[ C`«­ÇÖBœ¦Ô+e9p$);_šHQœpu'ŽëF½J¯ÕÀ=?RÀ ‹ùbÃÚÛ1_n-'¦ÓjJævº¥Õr”ÉÂQÓ&H¡Q’PdÂÀ{~B^Ý0 )…t[$©Ð{;­ºº.–øæÕ×O¼:;¢¯èµ“ÅŠƒ¾ø_Ÿ&s¢8å ×"Œ5›‚t¥ìrÐkË JÉ­»í&eW<¤ÿí¾eЕ~í6^¢çDqÌÚ ˆÂˆVµDµd¢‘2šlðƒo''ɧن·ç9Q,VèšôB­2‹íŽ,‹)9õ²Éz»áònÄj+¥w­¨Q²u´Â&C‚(fµ ˆÓŒ8™¯dAÐiTð‚ˆf½ 9yÊv»aãm™-=–ë Óå–•ЬʶëònÄb-„áÓƒµ’Év³f»]³ñBåCH÷ôë®QdÒ> <­r—T\‡Ñ|ƒiè¼8ê°Ý…øQ‚¼ÿ’áX&Ó¥G–g*V’“—L Ãó¶EÁh¶‘mk–Ó®Wx|šJWwéá:¦`•lS®=‘˜g ÆœÈÌ$Y$ûVwõµ–L¦éA?Y¦ɤ+©»ow«H&“9؇Ãá³ëaŸ@_=WY2p?gïï[‹Ç¥DΆ-Â(ÅwLz-ŸNÓçn¾åÇäEÉjá;E^Ä1á!ŵ-Ün4…,æÚþŠõÎ1°Mƒ²È)‹‚ºkÒoÕd»{HXlª Úu—škÓôM¢$#RnYÄiFÝsT["»ýבN´¦Êýû$e³‹iøEYѪ9¤iŠç˜t O®ÿóÍÛÔ‰ãS¯¨9‡$§* S‡2'ËRfËVÝaè4<Ò4%Ï3\K§r-!d9Û]$¹5WdJq’‹íÎ4ñl“,Í8¤e)½UËЈӂª,)réµÚ–AQVl¹y˜ZI^–DqNSYÕlµe\¬·¤YFÝ÷ô$Ö´ÛË|õ/¿|àq±xEœ ‹uÀ»×¬¶gc1¬]ßM1LƒÏ7¼Ê @j–_nˆcÑô»2cïud.„{Zº¢¨hÇØLÍwk]ªéãØ6hpó0cºÜðÍ«K2Õéwš¬·!ûè@¦DK½N“`/Ÿá³³ …ÊÊÙ–É—»Ç£áïa¶¢Ûnrˆ%´ÚÌWªª:ÆM†½QS÷}¶;í,7ËM :‡ÍÛ4y§zËíFÛÇá>âÅ…ÈÞqÂá0_®) ñǼzvJtHäY¤b“a›ÇÅV²_MÅjGVê±ü›__Žð]‡$×±hÖ\¶{A€ÕëÒšYmC*Í¢ÛiÐëµ1ìó átÐfÐkáì#,ÇåÙIOD=¦‹iêäy‰ã(ßÃ6ÝdT«£kÐj¶(ØãØ&ýn‡›éšï^ò¢Â4t\7¥æÙ´’?ÃØ3ì ×u=F=AIÝ-f¢7­ÙŒûmLCgЩ³Ùpm“fÝžiÐkùì¢KA!Â(¡]OÈòÓŒTœæäe…çXê6!õ»‘ZÌ7TâŒ$ÍiÖ¤Jµ;¤´›ö · CÃ2 ƒ\o»ML¢8£Ó$~«æbºe»ƒ<ˆÛdÜ­3ìÖ  û8Ãw-LC§(«ãÐs,Ò$!IKöIŽi茇=j¾{œZ¦ÁÊ•“r– óñãõý‘9_®ÅsróÀþ ¶DǶ¸˜ r[X/7´”rT:é‘Ô½t_ñ.MCã86q’e73.NFÊM]Ø‚n€q*Ðлéâhg‹ išsy6Â4ô£ÔWK³¯ŸÉ«’SÙé¸ïÈÌ©*óüþE’ÞÏÏÆ<ýù×÷3V©½Tó!„”â„_?~ªÆÝ”^§EÍóH³ŒùéAqý0Ã2m^¾x÷tB‰Ä…Îó³1£~‡ùjÃr³ãù™tr7Ñ#ã±Ï³³ÓùšyÐ ˜ô;Jð’ Jþ³9T¸~I½Ùâü윬´è¶ý]oŠØ»Ö0äɤÏítI”il¢„Éä”Ía‰fY¤•N¿ÙaWLÞ¼8#+ t'¡æœOhÖ=Ì`Ï&zäÙ³—R.Oç\ž äØž¤lC‘œâ”F]º™£~›ùr‹¡ë4ë>ÕŸß1>¹ <Ä|¹R¢Ñtéw›$©TƒÜÂæU³G³.!bÓ0÷ÎΤ±Ónø¬¶!š¦1î5©oB,SçdÐ¥Ðoqm›É Í!Nxÿå4ËÑmŸËnß³Ió‚ûÙ†~Ó¤Ó¨©“vH·náb'ƒy^%)W÷K**¾yq‚©ë<,68ŽE·á3[É ¹Qs0õ.b³‹¨×M0Àv|Ï—¶ëS¯ ɺ( ÂC‚iælv sÈJ¢$gwÈXm#ÆÝyQaYº:Fò°44¹x±bþ—û…é|…iJVl„,Ö¶òÞ¶u‘Ù×kÜ>Î9ôøÓ÷oŽZÆÅZh*«íŽN³.3aW¨1»}Äz»ãùù„a¿CÝwùtóÀ|9WE“ý!æFÑÌ¿Ü>2öd5_ñ¸Xó§ïß`PîX–ÉÛ——üõ·OœŽÿ¿Þw·ÝĶ,t]c«¨Ö'CtM¹Q%œ§ÍórfÊ/Ê…Øþ¶;Ý6i&é†FÝÇPí¦`±\o¹<Ñk5Yl¶\ßÏ•eÔk³ãAËSá·_=§×nð0[Ñï¶ŽQ¬šë2[npÕáf³ 9É‚tºXñìlÂ!–Ío°hÕ}¦‹5õšO°Û³ 4>g£¾* xýòœ›û9®çÑîvéÆX¦¡ªuâ6Ÿ\¦‡$!NJUO1 ]z³·èš„Ó,ã~¶<žÓ,§Ý²öËËS±kxûR¨¿½6E)нVÃçdØ“ª\«!íÛÆ¶¥÷[§ã>'C±¥)WwSÕål‹ƒ5:°ÞîÙ™³å–ÙrÍjШ7é´ÚX–KYIV,+@7Lþüë•_ãŒn»C½ÞäýÕ{îg+ÎÆ}qG´Û✠ÏmÐhìÙ„ ­¦ÎÙxB’eX–A‘‹<ªÝîðæå qB·ÝäÙù9I¢NΚÆx¸Æ2Mºí&ËõËri·Bº.û(¦¬ ¾ýúy©Óít9¤%þ Ókµ¦åŠãÀÖ™ŒFTe…c{ø¾ˆ]êõõZ×­aZ.¾Òë4t[<;³Üð4wªÊU± 3^¿|.}ÕÕ†“Qºçr2)Ø…VÛ¿Þ¤¦~aÜiÀÃ|IeÈÕøv±cÜï0ê·ñ]¹fá×oòõóSª²ä×·äUÌ&.q¼:§£VÅzË›Ë.íîšùrK»7’¤ÁLCçPš„Ùž‹þ€$ËÐlƒfÛ¥Ðl:½®mãÖ¶t[5 «M–ç4|— o‡ã…̶:í6õf YcZƒ¾ÜbÒ<Ç6* !JvyF”ä$™ Æu_têÅ>ô0 NSºÏº¡Ó¨/Ñ<—nx·Õ`µÙ¡é°Ý…|¾)¬Õe¹ ˆbüöY4³ÃžÌÊ×Ûv£N¿ÓÄR›dÓ4¡‚¬9úåéϱør7űLõrœ¯6\žŽðÐSð\ϨA’¦°Ø…8ŽEšYlv!óÕ†(N8‹Oûæ~Ærp7Mä¯NÁ‹ÕV)!D6è¶¥âFÅz»£ÝH¦WÑâg ©€>?ŸF±x¬]eü—û™ÕfGœ$¼û¸æÏ¿~àíË ÖÁŽCœ2[ ɲLqÊ>:ðùæËÂO‘4ê>at Ûj0ì‹s¨Ó’žµ¦Áß‚ÏüóŸ¥*+NG=¢8¦@ÃØз;ìzW~nEQ”˜•Byˆ*I2VÛ€4/ˆã”²(ÉJ:¯6BƒøöÕ%±:ÖžŽû »möqŒkÛ˜†Á|µål4Ù¶†JÊÃ|µ!÷ !”ñ8_Òi5™-%g×i5iÖ$`m:o_]ƒ¶æ‚]x Ónr÷¸`¹ÙŠîЖ+W½æ£)ìS5Ì0tÞ}¼áq¾âÛ¯Ÿñ÷èÓ¬ù*¸k°XÇmž¢ƒÔu†=¡¥”e…ãX’½Ësç+6jÞ1ô8÷Y¡ú!<ÌÅ»ë»ûCÌj»ãa¾d¹–ÞcøíÓÈb1íVãHa)Ô e¾ÜˆøFÓøó/8Ÿ ÑèiYq4Ý<.@Óp]‡0ŠxýüœJ«è4ø¾‹nèäEÉʼnGèul‚½È{ÆvÊÒµÚìÈ‹B†Ü¥D4Z “åfšN»Ùä|2’M©ãÒï´øöÕ%«­dô~¿zädØ#Íäµ"‡8ÅsmæëÏóÙ –ÛQ\PiIZF¦eK«`УÙl2tEwøù–“QŸõ6àòT:ÀþýŒ¯ŸŸ±‹²YÕô#î?/SºÝ>o¿~IZjüÓ¿¡á{û=‹e@¿Û ÜÇÌ—+t­âqµG×4šu³J±Mp-ºg3è*¤¾kÛj6[°Þ†Ü<θ›Îž¦®w×÷Sв Ó¬ƒ&œ4˺Jí:#ËKÛV ˆ ÿòÓo躦+} ékr²ïw]Zú±++æ6iluZ ²\ ¦)‘ž»Ç9Iš¡§·sN†=æKiaÔ}v£¡NW9®-¹Ãeì{ê'kšü JW‘e™ÔC3ýxeµm®Þ=.èuZtÛ¢%8Ä ýN“Óñ€v«Îÿóï¿Ê2¢Yç§wŸpÑ |¼ºçq±bµÙûÑ‹õ–÷_nY®&ƒ.ÝV“²¬h7Òï´8õ®Üi'RÕs,y ?ÕþzóÕ†n[Ædq’Êž`Òl‰Y2ËsÙrëÒ&3%*…C’²Ü&|¾y¬»®FÞ¾ºÄÔelè‚— “!ö‡XÑœuŒBjU{ÿ™q¿«ðâ§´›5ÚÍ:?¿‡®itš ©Í9J½ŸÎYëtʲ”p¥®Ñn6zèºÆo_*g¨K’e„û£~‡ Ü3êwøñí+z¹®6;Fý6ÿËÿøŸÙ!ŸnØÇ±l¢wÒQnÔ<Š¢d',V6»=s9¢oá§Í—›cTÀ4 ÚóÕ†CË—Qùž˜yU%Þ¼(ºÔ|ßsé4²R¸øQ¯EË›ÚP)õzÍ“+·'þ„ÅzËAA—Ặ Éþ·ÿë¿’¤éQ~ë.ÄäU”Ü<̱LƒfÃGÓš´[ò}BÛŸO†ìö}ÿ™¿ýö™·¯.0 “»é‚«»éot:pˆS¶A(q©(fÅ膎e ]£– ¾—eIx8p:(J‰ø\ê5v³ÎŸù€ëHD#R&BDZé4bk[ÖQhe™&ó%cõÂÑ4 ]íišçx¾ ±N¿×f<è’%®ã¢k&íf‹}œÒïµØ…I"Þ½ÊÑ4ðS"5z…® ¥äáqÆ6<æ%E‘Sóþå§w˜¦ëØäYÁ|±¡ì”Ü+AÓ:yq>ÁV(±ébÍåéˆÓÑ€}$2&Ï•*£l“ÅợA‡]x îyl‚ý!fþa{ìÿÛßÞs}7åtÜ—ÑRKm;•þôæ^¶5ßc„\ÝOv;øž£ºÅq’qHD©¹Úî•HW±AÛ•ŠH.Z€ÃA8žNUíߨßÏ¿f¶Øë‹‹µÀHåfXòÏù•šïI³Åó öBþùþô=§ã>xýœª‚N»!ÆÙBš.Ë o_]ÐëHýöIz¿?ÄŒûòBÌ×3©Ð*v¦i¬65ÏåíË þþ¯évš”UÅíãŠõ6äìò?PYe%íÓ4 lËTétŸü`Û6¾gÓiÔ(Ê‚_?\ѬהrR®óµp䊢ÏÃlu„XvÛ ,ÓàÇo^ñý›‚ÚGÔ}~§ÍÙxˆç n^Vïr »}\ÐnHGs„G&T9±¢±ú›—çœO†2³RZÆÎõÝÏ•üóó ŽeŠLˆŠ—\Ç¡ÕðÙlwÔk.ÿòÓoâ®mÔ)ò‚U°ãöqN·Õ@½mQ÷ÝãüN×u–ë€G…UªT·÷öQæb¯î9Ä)ƒnKÈ3Ž-ÑõV^ÜÉX6j>®ïøýË-Ežòý×ç<ÌWPŽbÊ¢Ÿó~Vå¤YJ–$l£Œ ÊX…Kâü7&ã!wÓ Ÿ{-ž؇;â4ÃwmEŸFÝáùÙˆ$ÉÔ&Õ"Øí¹º²\oùáíK‰aíL†=9Qå9Ã^›ÓqÛ4iÔ}j¾Øþ\[ÚrªK@ƒš'ŸE¯Óä»×/¸¾Ÿqu?åtÔgî…‹™¤tÛMy)·ÔBýž…{Éóž {K2²¢`±Ù¢éƒN‹v£ÆÙdÀïŸoY«®u–åŠ+Ùa¹Ù„÷ÍW4j²0Ô5N†}6AÈÏï?óÃÛ—,×qšr: ¡q6 éâ[9D)‘ç­F(Ž©48º=4DQ ëú1L>[n˜/×,Vn„c¹XËév<@ŧ›þóoY!· ^^ÇgQtÚB‘–9bŠ×(Z¥ñ›5Ÿ^§Å"Ùq}?%ØE Ô›…r«Ê“³Ù¨ÑUâ#á‚éD‡„m2[Jøõâdˆi˜øžÇ¸ßeHžçæa†ï»Dñ…U‰¦t-U7K3qâ.Ö[u”·]YVJ“§’’o)˜#𠳤‹(.YÉoŽuµÿûßáõó3:­ºÂÙX–àq™Y¼¼8áß}Å÷Å <åEmÔDÇø¯ý Dzh7jÄqztíΖ%l*±m›¢((Ê‚ùjËJßqy:¢(+æËðπɠ+ƒ(âóÍ_n§ü釷x®ÍþP÷¥*ØTf±óÉM×D½X¯Ñ¬{äyª%Ò%NªªÅó3™žŽûÇ_²ñ Ë_ûÌ>:p>‚‚`ÌW5§[ž¦iB¸Îr&£Á.b¹ Ð48QÒÓÖUS©{ÃЉâ„Q¿ÃÏ¿_±Xoé¶š¬¶»cíÊ4 ùÂ{.óõF0ükÉ¥¹ŽÍdØådÔCCÃq,>\Ý‘$)· Ò,ç÷/wŠ2ê·Y¬~z÷‰É°Ë^¿à¤ò23MÆý&£n`°"ÖÛSƒ0ŠIÓS[/ÈŠÛª¨¹:5Ç!É+LâpKY¤xVE¸Û¢U¾£cêà;ã^ƒI·Îé ÉlɲÁ6i{uþñÇ·<;óöå…œVua¯­ô®!¾çqˆc"E0>Ä,K¢>+E²îµTU…ï¹ :-j¾‡çØòò°,†ý£Aç裩¨¸¹Ÿc:5¯NÅÒÓWc—»é‚ÛÇ=`þåý^¿¸ M32ÅÜ+±»®ÉRHY–SÕ1qï{.«ÍŽûé’²HÃÃl¥àúá íFû©¸Çƒ.Y^0è´örMª€“Qn«A–åòÙ˜&•ç°Ý ª"É2 ]DJ7s>Ý<à:6÷ó¥`þ“D!Âe6Ôï´˜ {2+šÎ‰­æ¹üúášÅz{ì;¸¾±|¯‹ç9tšué’¶˜ºè*ï4ëbÚz¢°œ ûüão¨yÂ0\­…E÷êâ”Í.¤Ûj'rz®ù.žë0_m$ëȉõi^ÕiÕUì!gÐm >ÿ©U¡Q®r±´›u4`½Ùà:ºEž‘§)û$fºÜa›¾£c›¢G,ÑÐ5¹õ&:%yqØÇ„I™:¼¿Y1ì5q]¶ ò¦YI°?H×Ù÷øþµÜvÊR ¯.O©{.†.64SA~»-K2ŽŽC½æ1]¬˜¯¶ÒÌø|Íó³ i–Q•¢†ÝEx½Ÿ.äç×m¢·sT¯÷ý—[Á­ùBÎ^n^]žŠ{{*?ŸJÅn C²º!æûÙÏu@“ÍW/.8öT9BÇ2z&š®±ÚÈèpHH’”Í.d8ðý›òBï¶™.ÖbÈž«! 0Ë4Eù©æ—–a0î ^O^¢‘ÌäضL²¼À0DžUó\ž ÷±rÊ‚šëÐï4…â®Ziëíîhˆô]ñÃ<ÌEheš†Z&JO»ª*ÌR;}Ï!¶mÆÃ.¯žò‡'Ô<[$Þ5ù‹ï•7dºX‹ðZÕilÛânº`¹ 8õ©Õäíþà”‡ÙŠÅj{ü°u]"4®cÑnÔIóœm((}Ë4ÕDŠâ½v“ó“‘ò¨Æ|ÿú9†òÔ<—n»IQ ›¯Ñy!AOG9 Ý ŽSR)ÿ¯·;é]ª«ØéxÀõý”?ÿüA”ŽuŸÇ™Ð/OF»½<”¡ÕÔ}‘:=qæªÐï4%D¬kœ‡üðöŸoÂ=ç“!i–sý0ç×WœOÔ}_ÍjRvûˆý^$×÷S>]ß é½N“ºçáÚÂè3”AÎ4 <ÏÁW§Æ$M©J9™®6º¦óìlLœ¤üåתê¸eºX)ýbS¹˜]v:êóVÉÙÿðú…ZÔØ†{žŸŽdÖ<šìžÁï?ߊDÛ°qš Å%<øxuOFX¦©q¨×ÁRJRôXì¬ÌTК穱Š|ÍzÕf{T ÈÃA’ OÚÅåV€©5Ï!JJLÛÅ0LžyÍšK͵£sâÚº¦± "Zu]”àÕ=œh‹i{Ôê5ºíœn§çzøµ»8ceJlUV«`Çj»;ºXžxˆ…« £sÑBvZrãyÿå–‹Éà¸ûþíK|×åß~~O–å|ýüœž"‘÷;-¾~~.£4£Ój0v Â=ó5ÿôŸ¾åq&Øþu2z~>¡¬*žŸ%ÒUóX¬ʲdÐm³ÝEôÚM–›-E!³¾ÕvǧëÒ,“ëãŒÿõÿüWÁ_éúQíê¹Ã^‡íN­¶-óôÇÅJNdí&YQÒi7I’”ŸÿÂÕÝ#ÿôÇï0t¿ýþ…—ç:m¡†~Tá6ê>‰ú3—Û€,“%äv·ÇsVÛ@Œäg›¢wø|ó fÎ&žcóüLÔ Qw]*GfçºRÜšE!¼º<—¹ÑëòÙµ1MSHËY®ê1Y±„SÖnÔÙ†2lßoE>²d[æZöq Ó¨ùìöâ;]n‚£]MW‘ƒur6°XG.àÕýÃЩ*ør÷HY yœ/‰"I7ëþÑxu2’ÓÌ!_@¯Ó’íëtAF´š²À8õ©ù$MÒŒn»IOa×ëmóɀɰOCT=WÝE^py:¢ßmÑï´tÄ‘ñ¨AíÕÝ”×//DI˜Ô}ï˜K¼º}d£~I<׿Óõûƒ ûk¾Ð.ÒT®Fƒv£®Âàv]jY׊ò1è¶y˜­X;^^œp7]p>ÈB*NôÚ û]LËı$õž†)ŒÃ³É€?}ÿ† ŒøË»ò ÷=z¦„›u¾z~&õ7Ç¡ÛjH07NöÚ†Îíã\I§Ä§)͆O¦ žëðÏþ4ª,yX¬pm‘l zm¾ûê9›]H'¼9±Sð×¢(Žé‚4+„ÀÁÐuIŠïÚÌ—V[yÀL—ëc<£,%ÆòþË-ƒn›n»-pÝ zí¾+'Ê×ÏϰLƒå:à¼(iÖ=\Ûäê^FºaR÷Z7\LŒ¼ß¯ø‡?¼Æ´Lâ8'PyÊɰϰß%Ie ruüOß}­œÊu íB<×fØk3[­1tÅ*›”.[Ô¸Ì1E^#b¯.Où¯ý×wÊÓnÊiNÊcúë^Èóó ­FõvG§Õ`¬þ^»0Â6 ›¦Z€éŒF}va„¡k¬‚óµlm[uzí†aL‹óÉ€÷_›r2”eÞõý Ë49õ…^j$*ÁFW·S¾{ýMÓqmƒ¿üú‘‰¬;¶Å°+'ÏN³N£î²Àh©Ìäíã‚V£Ær½ÅuYvÅù IDAT‰‘™&wÓ¥ÜÒZ  ¸§ÊÐ÷ä³Y²÷²|rl Dz‰Ó”Õ6@÷Eà¦ÄDLîû›ý–$Ë(+HÒDùf%8b†Ý¶ÐzMƒu2è´xõìTN"†ÝƒNëš|ª­ô»->]ß³BÊR:§Án¬Õ,7Âr+Ë’Ó‘dF=¹jôÚM¾yy‰©(ÓÅŠWwG΄<7LkÑRö:l‚ë TΊ5Y–Ñk‹.ïÍˉ¤Ñ=ßse‹æyG¿jtHèwZB…ÙJ¯óq.äìu Ö©§í6hƒmYdYNÅJÐRcÔ8•Ì ÛæùÙ×µùýóíq‹ž¦UU²U%û$ͤ£;—¼ÙùdH·Õ8^-KŽðR¿Ú*„~Ä.'í§›{þå/ïøþÍKhUW¦™\_—›€f½ÆåÉ¿½ÿ‚¦ fO‚Ƕ8*ª£ÖRäP-ò¢àóÍç Ýþõ·ÏŒ]Î'š ÉhMF=Æý.–e¨r‰m›ôÚMúÖqÀÝm7ÕLÓ?–àÃýa·Ã>ŽÕU[g¾ÞÒi6û¥í_¦“aºï%I¾'ÿû>:¨ðí3š5Ÿ_>\¡i‹-asy6dÒ—Ì>Ψy¦V±Ý'Ôü¾_G×mFý®+Ð[×õÐt‡ˆ&Uj†«M€e$IJ’¦\ßÏt[Ç蔨wć”v£A¯Ó:¶f2…q?öÅzC³á£ëš,Xl“^§Åkõbz2æyÎíãü[½º›ñùö}K¾,ùéÝ'a)±,ƒW—§„ÑztàÓbÍrðõó3†½ÎÑÕÛ¨Õ÷åŸå9A(õɰG·ÝMz¹†®ïi Ïqð\G®Ü !‰çEÁl¶á÷«»ãøÇ±mnçjnÞÄ4MË Q’P=,ß¿y~E‰mi¼º<¡î»4uU¼(iÖkûˆÝ^6%]³- Û¶ÈFÝSd›&;0)‹²T8,]S¨x™s=QyWžI’H˜RCãnº Ó”íešüüþóqãªë2ï´ûy–óúÅù„U3YekhLFý‹u ¡Mµˆpl‹Ùr­¼°&­fM„GÁNêKºÎɰ‹†Î>Ѝy­†P{¿Ü=²Xoñ=f/ÖþòëG¡Â6j€ÆrÐk7™­6 ýí«ë¶¨ CWÍ‹„,+øð厛dzÏÏÆ„QÄb0t ‡Ÿ~ûİÛb¶ÚìöœŸ é·[’„ŽÖ8*+Gƒ.—gcâTºŸO¥÷¥&Ô²¬ø|û¨´„%a•àÔËRÞÞj}_UýNó(-úã·_«mì óåF˜‰™ø)|×ál2àöaN£îóOÿ©†i>-nV¤y! ­Vƒo¿zÆíÃüˆ\Ò5åVt†“AW<«€çÚ\œ yyqBQÈ/Ñw_??^û߾Ŷdiã¹¶Ê¡¹tÚ ™I=.Ž[ü/·¾Üîöĉ,•va¤2i'š-×l¶!i–1è´ë§ÿÆóó «MÀ.”S“¥þ}ㄳñ^»IYf¬ƒ-­ºi˜zÉz¹d¹Xp}?gº”eÐÓ6²¬*úmÏÖ1ôŠë‡V¹½zv*ÝŒ߿ܑ©Ü&Šžç꘭ð<›ÅºàêaʧëqG{¶eP•%»èÀ.:(„Åï_)US¼ÕvÇ«ËNG},ËäÃÕ‹õ–ýëoüðæ%ç“€lÃ=_nÙE¾ûê9VƒåZÊ“!§#Áö:üòñ Ƕ©ù®Ê¨zÜÜÏT+KüÖi–¯µï¿Üª*Zçè“öÚÇkkšåôÕFù»¯Ÿ± öضÜn M9¨ùwÓÿÈVUÉÇ/w<,VŒ)`HT.Isf×÷²Oäàõ8_Ó¬û<.VÜ=.”). ŠNÇ}>]ßçÁ?¾}%ŠêpK U®*+t]-AªJ6" ›§ºçr7]PäÙ1³÷䫀Ыû£~‡——'Jv.×£a¯MW•¹Ÿ²kÛ0":Ýá l(Riÿø¥²Mó8ûûðå–ÿüã7Dv¦i†cY<Ìhš¬ËƒPæ–iï#\Çæþð†u°ã«ggèš&ž~‡?¼~ÁãbÅ—›G± Õ+å}˜-ql‘p'i†1‘·Ú2 ŽÈ9¢WÄIÆx €ŒiFÝ÷ÔðÝ¥Ý8åxÐÅÔÇõˇ/”UE¯íîì€y²¡ÕÜ8ßsevÇ*³Øa¹ h7êŒz’÷z\¬ùö«gDqÂÇ«{ºíeYòþóÍñ¡ˆ CÇs]b]È=I–qˆuŸ³É€Õ:`µÝ©“©ÃØvb½æQ÷=R xE*¶Øoñ]‡^[6’ífCf3ë€Q¯ƒi¬‚ï?É—×uæKLCg±øýꎳ¤† ˆNTµk¨Ô¥žkó¥Oó-×±ù|ûÀ§›/.EY¯‰°(ÏsU]Ûp7]î…Ù÷ñúN+,ËâîqFíøt}Ï»O·„»@ò¶Éº”—ÍÝlÅ.JxqÚdzP/‘’ívÍ> Øìb6á$/é¶Zª‘´ã|2äú~¦ ¾>mqä »-Y.!gã>‰Â› {44®î¦ò{òû[tÛ$YŽ®éŒú]þñ‡7’ \n¨×|¢CÂùdÈ—»Gê5ïÕï×i1[m°-ƒ?ýð†è0öÄh¨ˆÕ_??;zb4 z­&¾çÐlL°LS‘ÓEr5êw@…“wÑßpùêò”VCÀ®â9–ùì|µ+^]*Žò®üôÛ'¡æ¨9öaFÀ²¢¯,•TKoêœMrZÛËŒ¸Ý¬óÕå)–eòîÓ wÓ9£~—FÍcГú ëÚÌW[Þ¼¼ #V›o_]ÐkÉß±Ój k›0ÄqäXª\nQ”èJ¶vl‚hhG·@«Y£á™Ô=áxQU<Ì%¾aÛ¢«øKYJ‹ÄTÃ`×¶Å„tÕÛ¼Ó¨ñéúž_?\ñ‡×/°,“‡ùŠï_¿ÀqlæK¹¾vÛMASI6l¾¦(äøìt„aÜ>ΕáL¤áýn‹f]2qŽm)‘x)9$M`¯g“Á1¶Só]LCfbŸnØí<Ì–|R«sCYä«¿U}O|×ÍfÍÃwlú&—g# ]g2è± Bç+<׿—WtU 7#uŸÕzK»Q[ÖÍ¿~¼"I¤™å9‹õ–›û9Æ™ ¤& š¦êó¥’ÆÈ ¦,KÂýA]s²,$Ø(KYjØ–ÉÅɈ Œx\¬0 ãøB[¬.O‡l‚=ÓåŠmR¯y¬6òРˆɠËþ -Ã0Xm~û|ƒïÈè Ý¬sHlËb¶Údq*ŸÿS{`½Ýq2ì±ÛËËPS[ußs+¥¤ëX"²ßìŽ"ú‡ù Ïqøñ›—Ô=D<-Ý6žëò—wÙ…‘ §”“÷|2¤æ9 ´Œe‘ÒkÕ8uq-ƒ]’Ç–¡‘D1ƒ†…oVXUJl¬(ÑÊ˶™m4ê>Ýv‹?~ÿ ¶%}Ýë»qœ*œÓn Q/Ç»éBØjôú]¦‹5ç“?¾}É.:ð·÷k\Û>Îñ§å°Ùîèw[Œ=Š¢/s^à{®œ¾”ʶLê5Ÿ¢(xœ¯%[Yó"ò¢çöv·§Vwu’fLkîg .OGì# ¸ºc„ò@m5ÙEÚÍ:šO«î³Ú|¹›2T³ÖŸß¡Û‘qÒönzl§Ø–Å_Þ}<ÂZ½v *¨ÊŠÇÅŠ8 y–|¼¾gØkS 5ÏÁsm6ÁþˆÃÚ…{F½ß¼ºdˆ¥ÛÀj³Sæºè8:*Š×¶ÐuzÍ#ˆdIUd9á>¦Þ®€ÿf ’¤‚œY®’pK–x–el‚™êï•0éÃùÀFƒ¶)á×÷ôZ é îöô:-,ÓàtÔÇ47DÑAÞ¬yÁ÷o^€š_=!ìoS9E}õìT׆Ál¹ù§%mˬØîDKé96–eG)óbËf·G»ÑØG91R±Üîäa˜Œšõ¦®óþË-ŸoÈò‚¿ÿîk\WJ73²ƒøŠóB\¨Že‘$º¡s}7c± Žs• v‚/Úí#Ö”Ä5A‡}ýüMƒÛÇ9Á.¤Ój°B¹>V2›«ûÒøõí¦5äÔlѨûhšŽï‰´¾ª*Þ¾zF’¦œŽú¬Uhùl<¸.­Œzͣ湼º<¥×i2¯Ñ4'JÄ#ÐHÙ¼&qD_^L8õùéÝ':­£~—v³Áo^¢i° ÷|õìT€jaõãÛ—Äi¦^ìBhéµ›‚¨ËÕ­(ËI3Ÿ•ƒ8Ž6Ûa³Ý‰<ëI¨')¾#N¡ÇÅ Mש{®Tt]Oèáž®>/Sq$¾aèhºÎ Û"Ò3–ŽÍýóß8KqÿtÔ—(I.«xYG‡J/)ר~§Å¿ûšÝþ ,0åˆý·ŸGÓàý—;tM¶¶¾ëð¸·V£æ3¯ùË»ô;-^ÖÄSë».†¡³ÚnŽ_™9ʵ­Ûjr6 s,º‘ mM""q’ðß¿ál<8¾ÉvûˆûéBê2¾KY•Œ=‚pÏxÔ¥×R!àVƒùjC–œŽúŠ4—d¼i”E)ô uu}ª­éº ¸7A(%ËTáÖ€~»Å|µ¥ßi*~aŽ®N9'Ã>—§#ɶgã³%ž+[Ó§\×.Ü ÊG*Žõ½CÌŸù€mYüòáJ‰fÕé­‘å‹Õ–… 3WUÅï_nÉT}h·?È E…T§Ë5Yž§)ÏNÇôÚM¨SŸ²è9–É·¯žÉœk¾B×4ʲb» U¯89ª Ò,£©º¥eUa™²=­ùëmpD©Mk©º¡‰uM+‹¢”¬šc©?·¥"²€±Nœf¤ÿ l´,eYä:Ž,xtƒ~/&ËR&ý–%Ë™ë{Q5ÌW—§ê–‹íËpx®IË6É ÍfËç›ÙrÿôŽ;cèƒnC× •ô¨ßiñ·÷ŸXo4 Є¦óÏ?½£*+ƃ.Á>â××ÜÏ–üÝ7¯8öØìdAºÛð‡mâ9ŽÀs=—pqû¸àâtHœf zmú– µê>ÏÎÆÇ+–ùï|½•ßË0F·\.º ÃYº„™(´ihºÈ«ç+‰,44ÆƒŽ¨£š& ‘§yGŠg£ªÔ7–,ÛÍÃŒ¿½ÿ,Eæaï¨^÷»ÜÍèºÜö‡Sõp3 ƒý>‡gU„!Žea;&'˜Ìò\ô–Ã.¶eªX‚eJÈÓq,ÊmÅdÐååå‰ ¢]9eÄIz„IEI·ÝàòtÄÙh@šfÌV|×U®ñ?ìÒ{u„—†è"½³¥Þt9Nû®œ’>Ý<’ærªø|óÀz#<¹fÝÇ4Mjž+^×ålÒ§Q—Jœ¤Ôk—gcz­I&*IÓ4hÔ|:Js¸Ü\ŒGäz»ÕÀsEþîó /Î'¸êX©¢§<Íq’„Ò^x¢·ÔÖ.NR<Çáùù„ Üc{ÿ™$ƒ—ëÚGrtœŠçD¼'†êdÇÇ™ptˆ4ªÆó¥|ù‚pÏýlÉ&ØS”]u"þ˯yóâß—ù’e¼8?a¹‘x”mštZ îgK’$c¹Ùb&wù‚ðóáË+•EâGÉʼn´^4`E {].O‡Ô<—}t ^ó¹8±Ú¼~qÎtЪ‹– ßþÜ!Néw›ÜÜÏ™g[R;÷»ìU'u„èºN'hHÌëÙ٘ɰ®küüþ3–eò[õp{y>¡¬JâD6·­FÛ2šª Q“ðt¾¢P8÷,ËùÛoŸyqyÂÏ¿Áu,ù7îø®#ÎbõRÓ ]º­:yVûû½N“N³Îùx€i†N³&WÞÝ^Ì…¾+3lÓ”(ëXTUÅÝ£\£Ÿ ï>^sq2ı-~û|{¼š>õàM]'LbçkÁùºVNyÁ/Ö[–›ÏµyûòBfueÁ©*dyÁ¨ß!ÏË#Òêãõ=‡$eµ·®ë|¹{Tm¡&M—ú½öâljDž‚Ðձ윱ކD*Ì{:ê3õ©ª9ËÄ®î¦8ŽÍÝtÁÿüßý=Ã^OmU²¼£û&àÙɈzÝããÕ=ý¶‘ Ãàùلɰ‡k;l‚Peß2Ò,c:_ñ?ý÷d¶ÚÒS%épÑi5vÛ‚÷É2ö‘œ*6AÈÃ|Å¿þôŽÇÅšï¾z&s9וP°ç² …W¶d6³B&ê4{>ʃ°’/óáp}/˜šï?ǶXm5Ç›¢)¿ïÓ‹ãËí#ŸoÈ ùE/×üåÝ'ú–S§üáõ 5´OÙ…¾çŠˆJ…8qÊíÜ›Çó•Pn¨*’4¥(+šõ£^‡4 °e˜ø¾2ë-ÏÏÆÔ<ÉE}÷Õ3&Ã.†.Q¥ÍvÇ̓,­Úat (KVÛ@~Iòœ,ËØ¢0:pó L·n_ʆ¡óòâ„ɰU%³ÝVƒu ùÏ]‹ÕÓ4Ž>]ÓÙ¬¶ûӔкëHN멱ÐmÕYnÄ5pý0UfÁœv³Že‰'ÆW'²^»AÃ÷ˆâDDB–)}ÛùŠåjËz»c¹ øx}ÏùxÀ|½ålÝ<ˆ/úü„ñ G¿ÝM£Èe1tÙGr}LÓ[%&’,Ç6-Þ¼8IQ¯Ë.ŠÄ;²xyq¢¼ÉÒz™ÎלŒzô»-¡¬´[BÒ)J Ã`DÔk.®#öÚçÊËCÓXm„G8Pßùggc5ŸO×÷´[ þ»?~ËxÐ*¾ý‚²,q›‹É€åfG½æñòòÛ²õ»˜†Žï¹Ç—m£æ«ÏÌW¤i$­Žžíÿíõ´¹›.ŽË–¢(ùx-sëñ@úæšý¢I§Ù¤YóqlëÈN¢.W`Máœú&©™óâ|Âv³f½ÔÖ9~(º.l´¯ŸŸ rZõß}ºTvWž¶¦aOaI–I^¨YDZ%í7³Ùíù׿þÆ&ùrû(ÿß4£U÷±m“»Ù‚ÇÅŠ4Ëøtýpü`Ðàݧkîbá—í"‘°O]¨$OT¨B'Ç \³æF1q"W%¡hÈ|žæNãã\ôû7/Ä™œˆP§ßm¡ëQtÍ_ÃW⣎Bl|ûÕsFƒ“Aè3Q ál< ª`¾Zs2ê9‚¾òîzª5p}?Ã4M|×áênŠièŠ@“à{ÎcÔjÔ˜-¥h¾ äª[Vÿþˇ#g®ßiÓnÔøçŸÞEÞ®#”ä8)¹~˜Ñn6¤_\¡®Lk¾Ü=ªqB_²†û·sÎ'ÛVU§ Ÿn$Œ[÷Ñ5¡~ÿôÛ'¡m›A!Þ|6Uű3îwˆâ”N³Îr³e’~Ðikoi^Pª›Æ°×Ƶí#m\×uFýã~—ñ°Ë‰¢ÇÔ|í.¤U÷yýüŒÙr#0Œ]Èz³âËí#5×àîA@Ã~—n§G°Oh6j"3*J)èxu‚p¯–­F]åBC.OG!ÛÊì±¥ŒmóÕš‹“‘ÐΛúëÇSõ ÛÆuò¢À÷åTz;M(ò‚×÷²Å¯ù\?LÉ‹’óɲ,Ymwôu4“ù/®0tƒwŸÄ÷\ó=þúþ3išcš:¦n0]¬Ä‰L¾s)Ë‹M²Ýɲï§Ç¦ÎdØc½Ù)Œ]Äo^ ˆ·‚n[œËÁþ@¯ÛâÛ¯ŸãX&ˆx}ºd½Ýñêâ„V]ì‚ã~—¢-À°×!/ ‰JÅ Ë4#/d1òõ³3ÉVnwì9,©çl¹Á÷Æý.¿}ºaÐmÓi5HóŒ¿ùŠÇÙ’ï߈ŸYô®¨žp‹0ÓiÔd™V>mKX®¶Ûz–ÈëþŽ<ÏÔà¾NÝ—¬\¸?È›0ÏÙî÷lÈV³£ •·s™%Ɖ’+É«æ:ô:-µ8¨¨*% ®#¸¡ççc.NFÔ<—»éœA¯Í6Øsy:bÐmÓnÖ±M“A¯Ãn¿çú~Æ·¯ž©E…dÇ®ïg4ê54McºX©ô¸˜äÿõ¯¿ñã7¯øù÷+ʲàöqÉþ À“aŸñ C’f|¸ºÃ4tºíÿþË^žŸpû8çÙÙ˜‹“!_n¦*´Ü봨ʊóÉ€~·ý>ê]Ç:Ö¸>]ßóü|rtÉn‚ ŒX¬7Gè£cÛ²”ˆcLÓ¤Y¯áªEOÍ—ëõ‹‹y)¹2·LƒÛéœ4•Fžç<ÌWD‡[ѸËR$ôi–¡kÁnÏDÕš^œO8Ä wÓÅ1“—dâ™/7Ü=.ñœÏ¬Öô*g+®n§üãoñ\‡ínO»YçÛ¯d&˜e9³åšÿýŸR_šÇ—ãHÎn¹dVxH¸P×QË4XlDìn[’4xº|V¸ù_?˜¦Î¯®)˒ɨ'˜£qß¹VžìÂëtDžKh{¹ 8 #!å4j>¾ë°È3²,e\ŒÛ‚kx´QœSs]¾ùêÙ1‹÷$/j5j<;›ðûçvûˆ²TdÃÄsm~ûtÃ.:ðLIâ»í&ÏNǬÔM*Œd;²Ldaš¦á9ó­zFÝ—e†¦ýUY“ãF–¥?ì;Hp2–\%e•TÕÕÒŒõL?ͯž)«–©KUZR¹DÆJ2¸€Ø1×ÊÖƒÌd22ÀÝá~ï9ßa<ŒÐ5°l&üï¿ü•ÿøñW^^žñåósÇï¯ï©«Fº«ù5ËÙ˜ñ0±í>ð\S¹½êq»ëu¿Wç‹>ôÈ4 Ý=Š{fœð°}âÏ?üÄÿú—¢(ªÁþöà €šñ¤ºdï®ïp«Ï?0 ƒÅTPü޲ªey!øt…1¶"zqyÆýÃÔÝwǼ¾äÓý#7îT-n12nQJàPúB ™Œøùý5«Å”g¦ä=,¦ û£¤¿-f#âÐÇ2ÅÇ}Lõó)Ÿi¡še¯ž­øöë/ø?ùMƒÈ—D¼f|õâÛ±˜Ž‡øžÃt4TŒ>‘bEdk¼¸8ð„'VТ¬”~1¢(ÅÏü°VÝVŽÃòœ Ò¬àžÄ –åJ6–JDªë(?¶ÙŸ nî7hº†å¹äEÉÛ7£Õt®Vs"ßG74>Þ<òÍW/©ªF4W¶eèdeÅûO÷ R /.Î@7@שѸ¾ßòöú^%P•|ÿ÷·Ü>>ñí7Û}ÊýæÀl6åÙjšÁë—Rx{Í ŽÙ<¥üüþ–ÿûŸ?³y÷I:v¿]?`Û¢UŒ£Û²xÚ§ÒŒÈw%,|»ÃV©xÃ8¦lZ6»#ïni5íáÄãvÏãæ‰Ë³OÙMù®ï;ıG?Ü=ò·_ß³œOX-f„§œ¯^>SÔ¯®V ‡Î&# å{#Ÿ‡õ:ÿúݘ‡,&#þíÿý@Š›%ÍrÎ'Y)Eõ0 (ª†é8æãí=»Ã‰ûDY–}‡{ÿË\Ïa—f ‡n”§·E#Í+4lÇ% ||_Ôüi^á¸.uOûßÿý=EÕ°ZLûf@VÖÜÝ=H<…f°ÙŸ8?›öSň<å5¦e18d%ï6 "]A¶q1Ë…Ç>MùáïoÄ1¦%¨¶m Cq¥yE™žøÓ×_õº»õ–f³ãíõWç&IYs™ÈbÝ4mÏ4 ÃÀu]¢(ä° 9”9ƒ$a¸; Y.V*Ý4Ùï3âÁˆOzÓ¼åÌ& gÓ‘˜þ1qü³n™Íg|ºåó‹%I2&Œ$±¸#EA‘—4mƒa{8^(yØnÀ«—ÏÉO¿Ýòé~ÛÏÉjðˆëÇ=g‹3’Ñ„ASëÓùŒh8`4ˆùéú‘Í1g:Ÿqµœ«„,ƒíþH£YXžäà¶-¸…¤R%ß?>Òh&OiIÙêÌæB‚1-A$ZÁȱ(ZƒéhÀl<bóþÈr¹d±X0 1z2Ý29›™)9ÃöX’·:ºéà&e¿Þl”1Ü h öyMÖhLü °>Ü3&,—+Îçc¾ùúòeçd§œÙlÎ)ÏegrÌxÜ>1vè£'F“šÖ°˜Ï†|¼}ÀtÀtlZ]v{hˆvÏu1íÍ*¸}J…jí‡h–Ç»»'Eá&cjÝbµZ þ3™™\­¬Ÿö’–Œ‡ÏÎÏh[iFmŸ<¥'LZÃáË/žõ Ä«ZïkOeU1ŠÉi9ƒºæ‹mÊ7_½Ù†ãóÅós%äݳ9ä<î3ÊV§htîw'ŽiŠDŒÆcNyí Gc ]c›–<[-™”"½Ẍ#ŸÅüŒÝ1å_½T˜«†‡Ífk`9ŽçƒéðîÃ=ëC.v¾²% #Ö‡‚·7k0l¾ûÓ¨«Z<ö¶ý÷ï©u Ý„åÒïÏ£Vç¿Ã/_0yÜîøt¿fÄ ††&µÄª®¨°0“¯¾xM¤ìw_ú!¥ªCžj™;Aàò¸Ý“7²{®4‹³³3AÐùfÒ6Uk7a0O$KÝò¨µŠŠ–xè b Sç”–ìNµŠ\Õ¨0ÅSëX8^ÀÕ•Ïãz‡áx4šÉÝö¤<Í)7ë£xɯ.xX?‘Õ:É beØÒà¹p¥'ž?»Àµ- Svw­î0Ÿ/ð‚ˆ(¢:¶iòþaG’$䵆ëç¬VK×ÃqL¼ "ŽXïö<;_âù!ºis8•TMK`J\«tuÝ01lÝri€Éb‰m A×5|ßÃÎv‡×ó‰Ç‰¤zEàE ¦Së%~\Óš–«³XÚTºÇ…çòåósáû§'Ú¶åÝõ‹¢ª˜ÌÏH¦ e¶>ñ¥cYÏVs>Þ>òòuÃÙlBQ”ú_¼¼b0ž1šž³³ñ¨d­´Dß}û-º¦õiñ¶%Mš ©0°;òéîgç ÂäD Œÿó_bFÃMƒÚôyóòŠ p¹¸”f‘çÚ”EÅ÷?ýÊb2ZZ]g<ð߃AD ×]î€!®Ƕ™kyQ0(ÕýøçŠð\§/z×uÃïÞÈ›*Lpv%§ÆÄb¬0!òj4Ó$r#Z3•@¢iˆŸâÆRT¿\-М{..Ÿ31 “¯‹B²4®¬ëêÕª(½Ù°+1·Oæ%îûO\]œõùÎg3¡°¸ŸîÁ`…7ÈiO9ë¬Á\^­p¢Dœ£™@&òŒ_nÅy ¼(¡ÀáX›hvÄxîö]ô#Tžòx [éøº6ÇÊàÍ›×Ä¡O¡ &+ }¼Hô©†ãn÷˜þŽJwLbƺN©›¤M‹&X^Œ®ë,V—|ýõD¡Ôèæ“×¶¹ßˤ‹ê:Ðâ ÆJ\ík.‰ÊD© ƒSYPµ®íàÆ¾çâØMÛ0È˾<$ØÑ]ÓXÎǤ§¼'H[¦!ÜÂÀ“€òCJÝ´,šFPG†HifË éº Bç9¦)ñØãD@ª­%w!û˜ £!ýꞘÇág­Ó3¦g{âHØv–)z¾*f{ÊCkÆsùyQðì¥N4šS7 áh¦’Ë*’0_–±¼wÒr6&Ž ’ÚìhÖ[ì !Ó, ]g¾º$Ï¥¡&L•WÆkƒE¬Â„ªª¨ªíp$™žá¹¦iò­áqµZèô˜’—‚ã_]V²›sU2¨š;Ì ’)¯ŸŸc*S@UVRãtØa€å¹ ØßÜQ¶56¥ÑˆMÎ3©MKÊ–À4lWj\ò\=Ʊ…“PeY1h%Þ²Lʲb²p¹[o’Í¥(J¬pÈvý„ŽˆÆs^'Tµ4«N§M“Œ˜ªªñ‡9ƒ8ì!¶mRUµÄB(ÜT0ëã9„º‡[×,””îý§{Æê”²;±‚_IºžG,Ó”Æ Esã1–%:SÃ0z1/¿¨xuµi]šIÔ…š­ÒÑÞ>¬ñ}?މ‡ †íbX6†i œ£,˶®JÊ"çxÿý8Ò4ާ¬Ï¤–Ù?¾/=e=Â_Óþq]†¡Ë‹ÇÐÉó4úÍC¥þVGê)ʪߦ|ò¢ i[\[ÆU7W4uÚ4âµ–²‹Ž¦é”eI¦ uÓ|W]O‡c¡¹}dãPÈ¢ªRê,K6 ç¢éê;U÷Ö4t‰¸Ðd±¥ýGƒápªLÓ4äeÙ?yz<^YÊ®¹»g¥Ú[–”t]S~{±»–j‘å…ÌU]Æ¥ë84µ°0;Bx·±ql4ME¹š éhMÓ´mÛªVÉQ‚¶à"Plû…­n•ËJóûI­"ås`šzÍìv=úg¯s¡ AU‰9ÿóïkÔ€lZY Ç’¬î3=Ê U;“âlWGë$>Ÿÿ­Î%¡!ÐKCýÞF݃¶•]B÷}†aô d·R<‚~V꺻ÏËBûAѪÑ­Kê¾§{`Ý=í©üíV4ºÞ_OwM†Z,û神Y—{P÷"]£_ŒeG¡Ñ´ò{QŸlyw;KhiZhê¦ÿ»u#ˆýZy»ÁÙ½±;dwMÝýë>+‹”¦C³·Ïu¢ç¶mÿaXWâØîzʲì_šòœEd覩÷ˆ£ZåóÙßí~cwD*UƒÂT;À>)LÝC™r-šFƒÐ=£¢ªÔ¢+ϲªd‘­kÙOVÔN¿{Ý8üü¹hŸ=§îû»ÿn6¿›# ý×1 þÕ%&v÷ûó…»ívîêß=§FÕ\;£­NEYõóÂPGТ¨°,£ùt V‚mÕý’ûÑö»7Ë’yõÙÚÐ~,KÝ{µÃï0iÍgã€n>öú|=’;­¿–n®õ§)µCÕÕæCî…¡æ¨ÎÿãXŒŸ·cû_IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/print.png000644 001750 001750 00000021246 11617757645 021750 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ IDATxœÍ›if×y×眻ßwë~{¦»gߤ­#G‹eÅv+‘ãlå*($¨P ¢øR1Tá“ „Š‹¥R) $!8('–¬%²d[²‘,y$FËÌh¶žžÞÞ~·»{ÎáÃíÇ’%Qp¦NÝ÷ö»Ì}þç9Ïó–[ãòù‚ÿφR2’Rέ­Ùz[×ðñ6ó=ÿëB !ï(¥P^€©5¦®ãB<ÏC @8êª@*AÆxJ')Δ Rfû‹|çå³|æÿSþù?ýu>ú‘»Ø\¿‚5I«ÇsÏ}‡ßü­ßáÏ<·RVæ·Œ1ÿ¸üòù[Â×ß!ø@¿?óÐ/ýÂ_Þy`ÿnpŽ´ÝÅ™ ­sŽ8í†)y¾I1àùIÚB@%HIÚE* ΢”""ü @WÎTø~„µÓÉñ´b2­ð”`q×nZ‰OÒžãüêgé¶[üóÏþ*e6dt÷ÍÌÍÍ&ç.\ùØp8ºcKàs@ Ü\ª-y¿„-•Rñ®;o_¸éØææú$±‡¤Æóq” ”@I‰ÄX«)ò18i·z8k(ò!“Ñ*GUæäÓe1¦®+Êb‚s– L1FãœÁÔS!\ÁùóK,]^çý(J‹/½Ìcöþñ—x챯rêÕ×™fQÓj·‰¢i+á¶›sÏÝweÅ¡ .ýxmŒçp ¨i\å÷¸Cµuõ=%æ–›oÜsøàÏ!©ðƒߨêgj¬­©¶)ËŠÉdBÚJ1ºÄZ¬ÑHÙØ?HHÒY¬Õè*G—SÊ|@Úêc¦ÓÝIYÕ<ôÈ“Üzë1ŽÚÇâÂ<7Ù˱£‡˜™é²¾±Áó/¼ÂÃ<ÅC<Ásß>Áååejaàspÿ¸ÿ#ÌÎv’^xù‡ò¼ÜÞÿ'¶4 z;¶y@íœ+³é”ª*0&¡ÕÙ8”òÀ:&Y…/k|ß#NgN4ÃÍót;1J$é E>Â9Ð:§;³'@—aÔ¦ÕÙ‰µ5ùt?ˆñ¼áÆE‚0A`8{î‡íç–›SÕày á EQ2Í F“œõµ .^ZâÂÅ˼òêižþæ·ñ<}{÷pûm7ñƒ÷ÝÃ}÷þ߸ç¸úï=y?0fhŒàÛŽm,BY–#¤G˜tQÊ'LÚ„aJUf 6ÞàÒÆ”£7ÀΜ9OH¬©ÖÊpuI™g Ö—P^LUN£˜n˜¢T€” ‹ÃR>qÒe<SéšÞóZ>žòCEFln,±9XA×3Tûwqûí·±º²ÄêúÃQÎÅ¥+\¸°Ä—~Œ?zðO˜ŸßAYälÙ€Ðæû°Á«äÚ8„ð1u±5JzÔº¢Ö%‹‹»yãÌ3|åÑó|ä¾ãœ={ž{?xœcÿ2ð‡_æŽ;n㓟øÒVHäµo®!%8gQ^ˆ³5™ÝTUÎ`sÈîÅt:]êºFb‘(”ôév{´Ûʲ@늪Òì^œ£Ò–I–³¼tÍáˆÁæ„+WV¹ty…Ó§Ï"…À:wðƒÀpåíØ¶ÒóÔOîݳë¶{?tÝ^—(ô(óM¦“uªrJœv˜ßÙçéo¾À³ß>ÅÆ`À‡î½›$iaœCª€g_xÏý«ÿ*æ•WÏòÔמfÇÜQà°¦g1ÖPUçÎ/qáÒòB uÍ¥¥&Ó‚n¯…««ëL³œétJ·ÛÇš åIÒV‡N§E)º”^·ÅÎ}öíÛ˱cGi·"÷ò˯] ŽÒ¢M qÕ\«Ó²,™N6ÁÍÑî-€ÕäÓM¬Ñd“!AðS?þ£ü­¿ûkèJóÓ?ù j]²¾±Áp”ñ»¿ÿEî¼ç>~é‘W_}•_ûµ_ãÄ‹'YØ9ƒôB¤²´;}ΜyƒßøÍßæâ¥+ÄIÊž]st»m¬S×üÄ'ïgmñÚëgÀiŽÙÍâü€/þÉc|ä¾ãÜrÓ”—pîÂEœìYì“&%AØÂ÷<%Ýüá—Êi^> <·¥þhBé—7€5 ÞÀ9çÆeY5.«œPæ<%š&( AÔÁ‰œ0ðyú™gù¥¿ý«,.Îc-ŒFc†Ã1Ý^Ÿ¯|å+ÔuÍl¯ÅιãñÏbê6…P»}à'‰"ŸKÏñì³Ï±²²Î­·cnn–÷Ûÿ €[o¾É4Ç“ |åÑÇ™N¦<ñäsäÙ”—^9Ë‹'ßäÈ¡Ý|ê§àСC´;=Ò4æÜ…‹N×®ÜòüÖ\ßZy„[Ó\¥P£²h|·®Ȧ›G¦ÔVñïœà©¯}“o~ëÛ¼pâ$Çg:’eóo~šãÇoçÕW_åÑGåÁd0ØàþÝMšÆŒÇCÚÝY–¯lP׫,îÚÅ=wg4\gq¾Ëý»9î«cÞ8}ž Lص¸k¡ÝJøßý{÷,rÇñ£<ùµçøÓGžÁ÷`ßî.œ¿ÈŸ<ü$?ÿ³s íö^!eUé-V·æˆ† h—h¹mPJÜÑë¥?vÏ]Çi¥v›™þk›<üð—9}úMæ¹õ棼yþ"÷ïý}>ýéOsêÔ)þôOÿ„×_o¼‘O|â|ðƒäܹ ¬®,qô†ý´Ú=6kœyóïsâÄI,MT(… NZ 5N}æú]ŽÞx»©jK¯Û¡×ëpÑCÌïœc®ßfùÊÇo»‰»î<Îî…öí™'ôj¢8$M^z餸ï_zd< œ¢aƒ^Ps 1ºªι©1Ž<£«çe™“& ?ü±Ðïï$Œúò—ÂãÈáÃÜtÓM|îsŸã[ßú>ø Ÿýìgé÷ûÜsÏ=>|ˆÿú…çètžã|Œg¾ùmŽÞx”4mñä×¾È#?ÉÇ>z»wÍÇqEžàù8vô(e>¦?ãû>qqøðAvï^$M»aÈ\†v§KøDQ„u†ñt"œs%M¶HÓ„ÌÛaóµùwMBDZk¦“1U™·fÁY_²ãЭXk¬/ñâ˧hµRæÉóc ·Ür àäÉ“<ôÐC<üðÃh­)ËŠ‡ý:—–V8tp?{vïÄ÷ŸüÄÇyäÑ'xìÏž"ð<î¾ë87Þp„`fv‡ÅY‹„„QÄæz BàLIœ´™éâœÁÙ’™þ.ÚÝ>ž„0 PJ°¶6°[«½½âæZ¡¯y͵P8$ÂK¨ªŒáúEví;†” cj6VÞd4žðÊ©78vôíV›<Ï™L&TUC‹{½Ÿüä'¹ùæ›Y^^fmm•‡¾üe^8qŠû±…>E1fÿ¾üøO<ÀÉ—_ãô™7ùêSOó‰—(ŠŠÛn»™û?þC$i¨Q^€¯ö"DßsàJ|%âEzH2³ˆ’‚²³´´d¶„×[ó=¤Ä…1ÆhmTv¨ÊŒ2Q뒺ʉÛs Ç›œ?‰ŸøÉ?‡’<Ï©ªŠñxÌp8dss“ ´ÖÌÌÌ0l kÃ-7ãÙg_`éÒe>tÏ­,ýnÂ}º‡^¯Ë‹/¿Œ5†;Ú\Y^f}u•o}¥÷Ü}ÝnÉð ŽŠ éF'ñ=…ÏSTù&I{ÏlŽ¿ßξ§œ`®µ®µ6*Lº`­!IgÈ ÇÙ7Ïbà†o¤®kŒ1äyÎÚÚãñ˜ñxÌ`0 Ë2´Ö¼øâK9|€¿ðçŠG}œS¯œbc}•{?øŽ¹‘²4Ütô ó}¦YÆ¥‹Ë¼yþO<ùuÀqò•×9}ú,÷ÿÈphÿÒe(åatIíÀW1ByHÏCù!e>¢,5“IÆÛÖþSbWˆÜ[eÓQhêšîÌn|?ÂM¤hSóâ‹/±°¸‹ƒRY–Qƪª"Ë2꺦®kÖ××YZZâçîÏsðÀ>þÃåô™³¬¬¬!UBYŒ‘BÒí´ˆ“„ÑhÌÊê:YžS–?xß½ÔF"=Ÿ?{ü1–n<ÄÙ³g8~ëan¿åªÝ&ˆRZíîOñJâDÎtšAãö¶xw °ÎN1eQdí²˜MÄÑaÔÆ†ËK¼tòuŽßq7ív›Ñh„1†²,±Ö"„ ª*ʲÄÃk¯½Æî]‹Üu×ݡϡ#Ç8wþ2ÃÑ\‰1áA§;ƒuŽ4ICŸds4! BæwÎñæù Ìôfyõõó\ºt™éd“cG÷^ ¼œEWS‚0&/*¦Yni<@Ecß]€Ì›ûQ—8í1,ÑíuI½€éd•Õu–—Wø¹ÛoÇC–eÓW­5ÖZªªºz½pá"ŸúéO`ô˜n»ƒ”Žþì,—–VJ±8¿Àd´Ž”‚0é°c®O‡ì˜ë³9rðà>”ç!¤Çáƒü{©Š+WÖÀÖLGKtº=:Ý(¥˜›?ÈÊê2›››šïöùïa 9EˆÜZ(ó‰KÃX(å£u‰”>ßyáŠ;Žß)%Bœk~»( ¤”ø¾Ïù çiµbŽßz”ªœ²cÇ"RZn¿íU¥yñäæçw ¥Ä ¢«[È÷CZíÖÔ´Z)¥6L¦9eeÐuÉË/¿J¿?˯ŸâÞØÇ‘ƒ{À59 %žl¬¯1ÍÊmß¿íßkMaŒÉªªÉè8›ëçI[}®¬nòûÿå |ì‡?Ξ=»™L&cð}¥Î9”RH)‘RpñÂn»ù0ý³´Û3ÌÌÍã+Çðyæ™g‘±kq±y.g‘BâXëÃgrÂ(AŸVšP/¼É§Ï°²ºÎüü"_üÓorï=S>þ‘;¨Ê’0 ØÜØ (ŠŠÆ¾›|?¨±Ùh¸£×߇³#&ã þóï?Hm=þÆ/üÎ9Œ1(¥0ÆàyÞÕ•¢˜åå%òl‡?üaÂ0!ŠB”¨IÓ.U‘a©ÐµÃóÛÑî΢kC­kŠ<#Œ¼ "ðšZD¥kÚó ‹,]¾Ì¹syàûQv“,›Òj÷Â]åLó‚ªÒÛ,°æ]j†×![;kóÚ*¸ã@ŠÞÜ>ž}özäI>óþ û÷ï'Ë2|ßGk½µuJ)êºI—½yö ìãð‘‘Â"(I“<%£ˆƒ‡óÆés G›<ñÕÜ¿ø81uSpcÙdŒ ¶±3=vîèÓi·H¢ýûv‘O.“Ä1IÚ#N»¾`:ÍqÎ[p= |gƒeQ”L§›n2c4ÿö·;ïú ŸúÔ§¨ë·êÖ6…k-a››®\Yá#þ ÎiÒÎ,ó „¡µ%¾ïóá{ï ß XºÜ$hvîì£u…§,ÊU ÀÛH¥0¦ÂS œF¢ñ”bÏîyv-î`´¹BìÏáy ” *Çø^—Õµ h `É[D臼)e‘MÇTe‰5†/|áAÎ_XæW~åWˆ¢çÎ9êºÆ9GQh­›4–”ŒÇò¢`qa¥|”pXS`ê ¹U>ëϤtºÞ<¿ÌáC‡¸²:äâÅeÀ’¶R_ ¤F G„øA´5Bß#ðQsý>3³3tº=¤°ø~HY¬¬®m yp½Ô@VUš"Ÿˆ“¯¬ñß¾ø(Ÿþ[‡»îºûª—RR×õU—W×5eY"„àÒ¥KxJПi‘OViÇ[GHÙ¡*' Ë8ëxõõ³½ñ ‡íç|é¬ÑìÛ»€³5Qàã…q³Å„ãJ€«‰“¢d2at‰®<ª*% ˜,›0 oÑà÷µ¸Im,UåøÃ/|™½ûò³?ûsXk¯’­õU-°Ö¢µÆCQœ?ŽÅ…ÄqD·‰“¶.(r‡ïG´:sL'#>rß]<þÄÓŒ67ؽk‘#7Ü„u‘BG>I$˜ºgñ}EÓ ¦Ã%œ³)IÒYŒ©°@60o2ÜÂ[aðûÒ¬eP–ßøÆ×Ź‹küÆ¿üu¢(¤ª*Œ1ÔuMQ”eyˆí™eëëÜùc8[­È'«Ä3]¤LPžÊ‹˜æh­9}ö"Ê 9õÊK¬¯]â¾{ïDkK«Õ*‰H[3Ô:ÇÔ9RÙç aÔiX `tE’ô¨]HQÕŽ·hð»p­ À˜zc0ñäÓ'Ä_ýù¿Æý÷ßOY–TUuUàm¿½úÛc4RSì߃xJÒîöéÌìBÉúÊY„TH©ˆ“„»~à6ß[ÑnÇìÛ³k8µ%aàãœF GwPÊ£Ý[¤×ßGœöX»ü*¦®Pž1›ƒ &“‰²kxÇ8à{‚i–—¬ol†eYÒn·ñ<ïê6°Ö^åÛœ@JÉ¥¥‹D¡Ï\x¾¢ÕžÅ¹SkfwÄó¤òHÒ³³=z3³¬¬­3Øqáò*/Ÿ:O«3G$¤­ÚÝHA#„ ŠÛøaL]WäÓigÇVöH ¤d2ÍÉòªæ»!ïg ¸"McŽßv”Ïþ·8}ú,Ÿù̯³ÿ~ÆãñUm°Ö^µZkªªâÒ¥ËìÜ9O¯7C§t{;ñƒ¦ Æó”òR†>º*Ø»g333Ü|Ӧ㕑ÌÍ-"•O”ÄX§)ò!BH¤ôÀÕLGk©È§¤T”Ó ”ò‘R³ ›L³âzü}Çw`ŒÍëºv·Ü´_ìß»ƒ¯~õ+ü¥¿t’_þå_æÃþ0išâû>žç]µ žç¡µæâ¥‹Üyûa„«q¶"_aìUÄ‹‡ñã(³Î9Â0!I5¦Ö,ììbú¤T$­.ÖH™bŒk²Qµ&¯ãG)E6!ˆ“Öü !¯"}Ÿ¢¬Éó¢¤iž²¼‡Î±ëš¤\fŒ­• üÜqˆÛo?Î#Ï|沸°›ƒ‡°oß>î8~œ( ™N§´Z-–/_¤® öíßKov^¯CY’V€$ÅaÁÁt¼Š³Ïóéôú”E†Öº*PÂ`ª1£AŽTÄQ‹¤3G™‰ÓªrJ‘£ÆT„q‡0nSW#†ÃM*]o³Àw%A߀unZ£ý ö[íiòW~æ§yýÌ9Nž|•Ë_ãÄóßäÿÛPJQ–Ç߯x4`ùÊ '_9Ãx¢éubæwôÙ³wýþ‡|â¤Åt¼jSm\£ßnz Œ1˜ºÄ9A]•¤­øa‚³†Z—„Q‹Ò9¨2Â(Eë)ÎÖd“uÚ>ºöqÖ4FpÛ ¾wdΡ©i%)i⣔äÎÜÎí·ÝÊpsƒµµU..­£µF׎ç_8Áò•Uò,çÌÙ „aH§µ›(tÛ ó»p&g:œâùºÌ,k5žâGm¦ãuÒö,ÖÔØ¸Æcòé&J*]N±Ö%ü ¦® SW8kÒguý* ~Ç~€w@äX«­„QÂìŽ`r*­É³ÕkÓíuØ·oREcù¡~ˆçŸ?ÁÃ<Éßøë‘£7av¦Eûøž ¢È2’Ö,B4žCÖÆj¢¸ƒ”ÞVñµGUL±f«XZ6í²,ˆ“RyXg(³ÓÑÚÕc4IÚÅÇÚÚú6ïš }[¤”™±¦Ê§#*ctÁìì,e‘‘Ä1Ó鈺6T[–׉¦ÏoÏîÝ9r„c7ÝL¶&ËFcê Ï ˜Ž×âv)ž ÑUïGa‹(î@Œ©¬ž¥,¦aBœÎ"¥BW9¶ÖTåcÍ‘ÊÚþ„’ñ$‡÷Á¿W9BÆ6Í‹u]¡¼€v'¢ªrçº*ð‚©”ô˜æ–ýûéÏvHÒ˜ršcM…”!Öh´5Te8´Î‰â.µ.)²M¤K· .љم”ŠVgžª#•‡çGTŘZ—Tå”vo!u]„ U•#ý¡BFÃ14Ý ÛnðýiB”Bˆª,5~%݆ðXC]e 45aÆ QÜ# c£1Gî&N ÒVç AÔ¦È6±¦&Š;ÔuI­ ¬­QžO”ö¨uٴشfÉ&ëHéÆ-‚(mÊsÙëo&¤D—9aÜt®ù˜¤ÝÇêœÑpiÓk0á­Pøýi€µ®ö”_ÖFà‡)Ö&Â0AJÏ—à9 QÒ!]!ôöï!Þ(Ï6iuw"•Gwfe9mò‡Ö0¯¡«œ8%mÏaŒ¦®«¦HšÎ2­P•ü aÖŠlo+8R¡µc4BJÊlHœ´ÑÆc4\[zÿ[À9gœ³EYÕè2'›X’h­ ¢¸‹TJùŒ7—¹xæYÚ½E’t†ÞÌíNåDiC…§“u¬©1ž¦®ò†²ÝÙ=”ùSWxA„²A£UqåÙ·¥)E6D*Ÿ´3‡R>Ö¤Xç0uSçŒÒœm¨øÆÆ:ãÉDÓ ÷DƒáºX0ÊóÊédÄæà HÏ1ºBWSꪠȇù jQ#Š|ˆ”–8ŽAˆ¦ä­¼F¶Œ—ò¬m ˜s–öÌ"A˜pþõg¸ôæ·ñƒ„²œ¢«œ(é\¥ÍBz[Ö>šF k4BzQ{k;¶AÀêÊE^U¼8à{4ÀZ«µ“ªªÂ#Ÿ ¨z-ºs{œ³LF«x^Hµ`+%žMÖ›¦i Îêº"Š;8ç˜ —IÛsx~„’"5M“ÖÅ]¬5äÙfóyk(ó1eÑ”è“t†ºÖ”Åkk¢¸‹ïGh]`Œjì‡TOmY–•¼• |Wô¶dY>,ËëQ:Kµ¶˜Z½Åû˜«+¡°¦FW“á I«—Î`Œf2¼‚&ìÚÎZ¬5T儺®ÐUFµ°¶FWÓÑ l©vµÊ£È6i÷к`sýjö¶!•j˜œòB0®`tIÚ™#NÈÆë$­YŒÑèªØÒ‚nãÛ;ʼ©¶»‹ÔuAYL¢aÜÁŒ×B4¬UáÎ?· Ëh¼À»ºÀ·€ÚÔë•6ﵮ šX»;»» ²h,ô¶úÖU޵!%RªfÏ1U9%bòÉÔº¤i­—`›¶9/ˆ‘Ö’´f¯öGq—(íÆÖ¯¼ç…TUNÒê“M6¨Š âž ¤ÄÃ¥ KõÛnðKpÖ­éÚ¥=¤ô£6J:”ò©ª†ÇWå%=‚ Ř ?ˆIZɧ€ÄÔRz¸­I2ƒ$Xkp[¡u†ÑÆEü(%ñº¬¨µ¤È¦îòòE iÒaÛg‰Þu\例±WS`ÆÔHå7¹?k©ª)Ùxñp‡Åó#’ö„øa«){K٤ɗ©Š Ùtƒ L‰ÓBÐdp¶²8º˜P#ü0F`©Š!U±I•o2;·‡™Ù”´˜jHøôzs`r²ÑR8¤„•µ ·|eMÒ4CîöûhÎ tùîãuß_7l²±1ààþ=ÔºÂz©<¢¸EY ⸃Mÿ¿Ã†ºÊ|Ÿóÿ®|Úíe9!ŒÚHÙáÑ~2aIDAT쵺øAH]W¤íÔºéKœŒŒ6 C,k—m®3Ü\#Ï3¬“äE†©um Ö(KCY¾ýWÔ+§ÞX~ØMÓöpï½vccÀÒ¥KÜtÃt7¢ G‰É´ÈéÎì¢Òš²ÌY]YÅ8ŸÁújã˜NGMúL›¦üíÅdYAVTL'ãñˆJÛ­‹’ñxˆ±geÕÔt];]V®¬ [×ÆÔÆXk¬)«JçyYXëjp†ÆÝ5gwà1àÅ-áÏÑÄÅ–àÛð=MRrëšÐtXï3Æòèã_ãùï¼ÄžÝ»év; Ö¯  TÚPeQPÕ–ªªÉóÌ•Ue«²²eYز,M¥µ©µ©ëº®kcjç®’“íY ¨Ý[±{É[™Ük?g… Q !*çœÞj»ös÷ 4ÇeVhz·cíC•\/ü6Ðæi‹g­µk/œx%Øú‘œ·úm¶»®®}àmõª¯»êëæ63³Û‚¹æÞ\÷½kóx°ÎáÀçÜv„·ý Û÷»·„>MÓ¹Ì[Õáw<-² @EÓJºAÓD|’ÆptxË¢y‹\lÿ˜¹îþíæµï×ïòÞõ \û¹ë¯5ßó»uëõiš3Cƒ­zÏTØò–GÓ죔¦×6ç»cìëd[wÝõûu­jÚë¾{íû×NÞáï‚æ<ÀúÖÜNˆ¼§sÄ×°>nßbšý´Í®®_AwÝýörÝýõBÀ{|¸÷8p‘Føœ÷˜ ¼öËo÷·@Ä[[à=©Óÿ£áûiž1ÛšÅ{ýòÿ=kíN›œDIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-128x128.png000644 001750 001750 00000017170 11617757645 023351 0ustar00simonesimone000000 000000 ‰PNG  IHDR€€Ã>aËsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<õIDATxœíy\×úÿŸL& IØ„M6EDpÔPD· ^½µ«?µE®Jý¶ÞZ+ת·­Vïµµ¨Øºâ /(( ¨ˆ¬JÆ•bE-Š5 Ùæüþ€p# Z/ÚäýzÍ+3sÎsÎ33Ÿ9çÌ9g&4„Ð_°¾vÀ@ßb€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žc€žƒ÷µFH’4—Ëå1Ož<™(‘Hp·"$$¤°¯ýÒ…A0—/_WQQñŸ´´4“'Ož†aàááQÀb±vŽ3æÃ¾ö¯+o½âââ0;;;#:nD£ÑX!#„ ˜!&FcXÀ¤(ŠI£Ñ˜!0(ŠbªÕj#Š¢XE1µBLŠ¢E1BxG\ŽL&³Ëå–J¥ÒR©Tr C.—Óe2­­­ êëë¡­­ lmmF£Aaa!0™Ì¥æææ· ‚ØÞ§'¬ ½ÀŽ;~¾zõê µZ †B4_ÑõÛußóÖ{»­½~ãÆæý"¿zKkk+ܾ}ššš€Éd‚­­-°X¬Î0333˜3gÁ–-[ ²²àx{ÐØØìììzYO„ðG¬ÿÑièŠóèÑ#077[[[ðôô‹‰ª««A"‘EQ •J¡¹¹(ŠÀF¯€ƒ¡þç?ÿùÖW¯Bll¬úÁƒ˜›››êèÑ£Œøøx¦‘‘Ñj±XüyNNãñãÇ””íç,00àß}ê´z};”¬÷€­­- ðá‡*`=I’ÿöôô,ÌÌÌô¸wï°X,7nŒ7îc‚ Ž÷¥Ïºx©À›Í‡sS{?AM0dáÂ…3Åbqpkk+Ëå~2zôèú¾ðóEð’p8ÀårÏw #B Ç;–7š^÷ª€v¸\.(Š}ìÊ+Ñ+¨ÕjúërämƒÇã©i4¨TªA}íË«Ð+PÅêX¥½_Þ*¸\®ÇqP©TóûÚ—W¡·% ÀÐÀ0¬™Éd‚T* èk_^…^  £‹Bz_`ö”ÅbT*í××¾¼ ½-˜°X¬»l6jkkmrrrÞÚaõÞ¶Œ^—#oßBMM í‡~Pfff.þ_äK’$-00Pçu2dˆÅsìè‡ò\µjÕ3¶/%Š¢ ..ŽÙÛ?A\˜6mÚG“'O¦ªªª°/¾øbתU«ZÏž=;áuåI’äç•••Ê'Ož¨7nÜX¦µßäÊ•+¿>¼ž$É[$I²òóó]víÚ%^»v-uèÐ!UYYÙ-P¯[·ŽÊÊÊ:@‹‹ëIÆv§NŠ¿sçΘ¦¦&EQÀf³?®ªª²¢(ꆽ½}Ëk:æ7>Ÿ_bcc³ÏÝÝ=T&“YŸ;wŽyêÔ©÷‹‹‹mgΜyêί¦¦ææÎ;?½~ý:M&“Ù*ŠŸC|>_qåÊ•àôôt€€€”‘#G¦’$ÉNLL|ÔÚÚjÂf³k Æe‡“emm}ÙÛÛ›eooïokkûÕs{³³³7¥¦¦þ_II .‹¡µµÚÚÚ@©T‚‘‘‡Ëå®´±±YéååEM™2eÿ Aƒ¡o=EUöööY&&&ƒkkk¢(H$Ö¯##‚ ê[ZZÃ0°¶¶†äää‰NNN BCC÷¶´´”‹Åâ©uuuy---ãóóó™+W®Ìœ3gÎä®i‘$)è¦+8##ÃùòåË7Ž=jüèÑ# ( LMMÁÔÔÃ0J¥ÐÔÔååå ‰°ÌÌÌ'N|êÔ©þ‘‘‘ůã¼i\¸páÃS§NýûÒ¥K Ã`áÂ…ªˆˆˆ ??¿¼×•§L&Ç!$$dÇ¢>ü£±±ñi‰DR×ÜÜ ---{öìYÓÐÐ<o£Æ¶¨¨ˆ/‘H–644˜}KÄïpìØ±Ñ  @.—ƒ¥¥%„‡‡«fΜ9ÏÉÉéxNNN!‡Ãù¤¼¼ü°aâ w¤§§³«ªªàرcôŠŠŠ"„PÔìÙ³÷?ï@Š‹‹½îÞ½»,//oìo¿ýÆwqq¹?iÒ¤¯oqóy¶çÏŸ7Ú·o_jYYÙäëׯwÛ1A’$ž˜˜¸´°°p!EQ6*•ÊÇq†‰‰‰ŠÇã5»»»?666~hffvÖÌÌ,aÖ¬Y/ìäÈÎΞ‘•••˜››Ë …hÆŒ»¬­­c ‚½È   €ûøñãIõõõ~÷îÝW]]m/—ËÙ\.·ÅÖÖöÚ¨Q£Ž988ü ·‚jì Ëå¢E‹–=|ø0êÌ™3ܼ¼¼›uuu; 477? ÑhL&?~ÌÓØ2 ÔÖÖ¶æÞ½{ WW×y`Ó9C!çÎcQ, á8ŽœœœÐþýûËE"‘)BvîÜùéŠ+ЦM›´í233wy{{#ÇŽãH  äää¿hÇÑ,EEECþþ÷¿7 : : äé鉼½½ÑСCQ`` JMM]¤ËV{4hšÃá ðððýÏ‹'‰Ìbbbš¸\n§8Ž#;;;4vìXu`` H(¢É“'£ 6üzá¾®´.\¸à¾}ûöGãÆC½÷Þ{())©X$9¿È_-Œ<˜;}útjΜ9húôéè½÷ÞCsçÎU‡……©ƒ‚‚Ј#@ @ƒFÿú׿ò´í'L˜@ >œê8ï.sæÌA!!!háÂ…÷ÌÍÍ‘&ÞŽ;~F‰‰‰?kÛ_¾|ù£Q£F¡¤¤¤§!xƹE‹5k.¾™™úî»ïd"‘ÈL¾lÙ2yxx8š3gúòË/‡iíìÙ³Ù¶¶¶ÇqÄ`0Pdd$UZZêª~VV#66VÉd2‘­­-úøã›óóóû!„ ..n·²°°@žwüñÇs8„ã8rssC"‘ˆþ‚“n2tèPÄ`0ŽãˆÍf£sçÎí³IOO?Œú÷ï š7ožª¬¬ÌNcŸ””„%&&ž›>}:6l G(‰D=½ðyY¯X±Bâàà€ú÷ïæÏŸOÅÇǯírŒî11 Äçó‘vøÌ™3©ÐÐPJ³ýóÏ?¯ EcÆŒA<¯3n||<+22­_¿^——×)èíÛ·Ûzxx S§NÝzF‡úÖ¢óñõõE%%%ã;îü¢  ‘#G"???4bÄоýöÛ–ÔÔT«ŽƒãEGGS{sss´cÇŽg.äây<Âqyzz¢ÌÌL¦vøO?ý´ËÑѹ»»«žw"—.]ªöññA8Ž#.—‹¾úê« /:ù“'OViŽOûNÑ,¹¹¹« ‚@8Ž#>Ÿ."„àûï¿ýüóÏeùøø µk×þ*‰ú÷æÂk–Å‹KÌÍÍÇCË—/oìN¸"‘ˆ–™™™êììŒLLLÖ~Þ‚ ¨E‹!íR'11ñ’@ @|>ŸÒNçÓO?­]¹r%Ú°aƒ"%%eZRR¶uëÖ+cÆŒAùùùKBÿíØ·oßÊ––ö§9 Ã`êÔ©RŸl///š³³3p8hkkWWWpwwgºººÚ´·P#""Ni†I[[[!99Ù‰$Iw­ú8¼¥¥pªÐ®}||Ö|ðÁ2“nëáÓ§OOª¯¯Ç€Ãá€\.‡Ó§O&Iò¹½“L&S…ãíMÍlmÆŽû•P(”¨Õj(((ðÉd•666÷<<<!.—.]šú¼¼t±sçΙ™™‰Dþþþèƒ>à¡Ö— :cÇŽIÔ>óÝÝÝ)@€àošÞÞÞãCCCŸ˵ÓáóùŽýúõ+“J¥x~~þÉ‚‚uuuõÈñãÇ?ár¹?@{ pñâÅIšâÇqÄãñPJJÊwÚj:vìØâÕ«WSaaaèý÷ßG‡>(‰ð.ÊÞ¯_¿gêÙ3gÎ|  Ÿ?þSM1ìáá6mÚô‘õÓ£££ÿ_wwц ê–,Y‚Š‹‹/Lž<¹óŽMOO_ö¼»/""¢•Ïç#Ç‘‹‹ ¥+Κ5kÊqGVVV(""â™R(##ã›7R“&MBÆ C³gÏV¦§§GõäÎ/,,´›0ab2™ÈÁÁ¥¥¥…÷´ÔÈÊÊÚ®½=jÔ(ãŸ~ú ×÷£>b>/­mÛ¶ý®äÒÔ©eL&³óÂ9::¢üü|÷®‘OŸ>=ï/ù Ú¼y3Ù]&ÞÞÞÕ€‘‘Ú²eË9MØwß}·ÑÌÌ á8Ž8òóóC 'D"Ñs×,EEEË–-Cñññõ!øùçŸ x<b2™(::ºíy¶sçέ³··ï¦áqcbbšãÿðßèˆc{êÔ©Ÿ?ùäˆ|||Pttt[vvöäçå””´×ÉÉ á8Ž(‘HDë©^÷‚ ÖžéÃd2Áßß¿¢kÑäààpô³Ï>K›8qâ’îŠ:×™J¥‚›7oÓlÛÙÙ­›2eŠ Ã0P( ‰`ýúõ?üðƒD$ï¾m§¢¢â“É{{û]¶¶¶³EAnn.«´´”èΖÉdÊ0¬½ÆÓTcÚH¥Ò½©©© ÃÀÞÞ\\\âºÆ!âÉ”)Sf¾ûî»N111%®]»Æúì³ÏN¯]»öIVVÖ]y‹D¢©IûŒðÈ‚xcÆÓq€ªª*†öN]u$A*˜ö¼y<ž8šíªª*3Íú¬Y³Týúõ(—Ëïdee1e2TWWáC‡ðâââóÑÑѹB¡0” E×tI’Äùä“Ý#A¿á;pàÀ ………©………ÆÙÙÙüÜÜÜŠ“'Ožúþûïõã?|øÐB#:__ßÇÏ;ÿkp€ö›6FFF/­P++«Ð@[[Û3ÓÈüüü*“““Y»ví:uàÀ)7oÞ‰D$IÂgŸ}6nÒ¤I-±±±‚®Aµµµ±×¯_§ÕÕÕH$JÿöÛo¥OŸ>5‹Å8€D"´´4÷‘#GZñ´«_†Ii´öv¢B¡€ˆˆˆŸ&¹\nV[[K«­­øè£/_¾üÝžë°aÃÎcfåééy('''"''vïÞvëÖ­›ÙÙÙ^šxr¹œ¦R©€Ïç7öødþÀŒhMó’Ëå/=Þ/•JŸ)Mp×)¦%K–„õïßPIIIñ‘#GŒù娯¯‡´´4¦Íµyóæq;f×À/¿üG§Ó¡±±1™Lf,•JŸ)ÎE"ÿ¢‰‰I§(ÚÚÚ€F£õºœ"I’ÖÜÜÜÙ¹ÄåraàÀEšíŠŠŠ={öì)Ðeknn>ÕÕÕÚi …¢#M×ëׯ{ÔÕÕ««k².[¡Päææ<’$·v£T*™š€Nïýìv’$í÷ïß#..®èĉfvvvð·¿ýíöŠ+ܧOŸ>… ˆnëv??¿%¾¾¾Ã0xðàœ;wNçqtåâÅ‹£òòòÈåò½½v¸‡à&&& œœÄíÇ —ËA, GH’t(//ß×ÚÚ:X©TšÑét9‹ÅzìààðÏ   ÃšÄšššBkkk;çñx`ooßùQ„'N˜p¹Ü666{§M›¶@Û‘Y³f©¾ùæh/¢}}}Ó*++ã³²²€Åb“““ÎÆñãÇ7:tˆºrå &—Ëa÷îÝ<___AE¼R©d(•J]æ/dóæÍÛ?¾L­VÓx<,Y²ä±P(œ" E=±'B:iÒ¤´ÒÒÒi?†½{÷z›šš®Z´hÑ–îlNž++‹{îÜ9K‘Hä]YY¹“$ÉÎÉeeeëëêê ý.;v¬zêÔ©5šp‡–k×®Á¶mۢΜ9óÌkS›7o>\]] íë>>>ÿ IÒüàÁƒ¡·nÝ©T ¦¦¦Ý>B¹¹¹u6ÞÊËË!33ó I’ÓÖš¶ EQ@’$OG2¿ƒ$Éb±8š$IZ]]„„„<°¶¶öôâkX¼xñôùóçˬ¬¬ ¢¢öîÝ»yóæÍ?銛=µ¤¤¤j×®]øýû÷Ãá¤õ&¯^¡© rrr5ƒ!šQ¶äääyÚõűcÇì?qâÄ Ÿ„„L;lóæÍt__ßN{ggg”œœ¼G;ÎÖ­[ÿÏÁÁÙÚÚ¢   #ùú믓£¢¢ž …Bdee…† ‚._¾|!kÖ¬¹§é½svvFiiiûtÕc"‘È+**ª³Çq4|øp”——w¡¬¬L¸nݺ¹®®®a(66¶áE£ˆZéøôÓOÛìííѰaÃPXX:xðàîÞ¶“Ž?n³}ûö@€¬­­‘@ @áááê/¿üòÚéÓ§ã322RvìØ!ŽŽFnnnˆÁ`    •H$â¾®6@çœ@—‡l6; ??¿¿L&‰DÆÆÆ3œñùü//¯//¯[ƒ®îèdïÞ½²³³MÔj5p8ˆŒŒT„„„ðùüα¿¿>›Í~ÃáX455Ñ®_¿Î¸té’gKK ÛÑÑ‘ŠŠŠ*) ·åää°öîÝûmee%0 033…B1ÐÙÙy7ŸÏ—jç]SSãsøðá¿>}ú”¦V«N§Žã —Ëûñùü…µµµïcR©0 +++hiia544HCBB.¿è&áóùlll6‡……19ŽEE-''ÇG"‘¬ár¹nnn=ú”———¤ªªjGPPÔÁÁÁ8‰ËÏÏ·KKKy6440(ŠBŠÈÈÈ«QQQýÁk«º*³eË–&++«ÎÖòâÅ‹ÕYYY^Ý)())iìôéÓåš¡V‡ƒfÌ˜ŠŠŠºµy›‘Hd™žžžƒÐÈ‘#ÑêÕ«[Ïž=;±¯}{™…†Ð³ý4$IÚ¤¥¥ÝÛ½{7·ºº¸\.xyyÁ€ÔÖÖÖO¹\®ˆN§›µ¶¶ºß¹sÇŒ$IZuu5¨Õj033ƒ´råÊ~~~ÿymª} I’_^^ž˜››;A$EQT02,,ìa_û×S~'’$­«ªªŽìܹsB^^´¶¶›Í6› †J¥™LÖÙ gddvvv0kÖ¬ÆÈÈH@Pû»Dÿ¤”””ØÜ¼yó?EEE#²³³¢(ðòòÚ”’’²¦¯}ë :g!&"ØÑÑQPRRòÍþýûÇ•––ÒëëŸýÈ›Í+++ptt„ÈÈÈ}111 t¥÷gF(ÖÖÖÖþÀ`0|kjj0Š¢`È!#úÚ¯ž¢³ÐÅ€,Ùlv}yy9hlX,xzzÂÔ©SñÅ=@ù3‘=èöíÛyÉÉÉ<•JB¡EFF~áïï¿¡¯}ë)=þDÌÝ»wŸ®^½ºÕÄÄĸ¬¬ ”J%Èår(//‡¡C‡Î$I’©k÷ÏJvv¶ÛÉ“'oݹs‡6xð`ð÷÷ 2$Œ ˆG}í[oèÕ7‚ †ÒÒÒ ¤¤$ Èd28~ü8ÛÆÆæ©L&ó1bÄý×äë…\.ßyùòeÚĉ!88X0~üøk}íÓËЫ—Cq—´wñN˜0lll ým•mÛ¶q¿úê«{_$ùÖ¾.ÝS=zÔ_¡PŸÏ¿ñ¶^|€Þ @ÐÞWÿ׿þÕkÞ¼ymÞÞÞ@§ÓA¥RAzz:-**ê•••÷I’úz\~3‹Å–t:ý·¾öåUèmÐùð¬Y³nÍš5‹²ðüùóßgddÕÔÔÀ£G`áÂ…ýÞ}÷Ý2¡PøCMMͲU«V½1sàþ(8t:ý­ªó»Ò[4Ðh´Î ücppðsçÎu€ õõõÞ­­­¦*•ê\SSS‘T¬Û}OKK @§Óïöµ/¯Bo qûÝMÄ=¸÷G8õ6 •Ji4ív_ûò*ôª @£ÑPÇÄÊ?]‘Þ[4“<Õjõ[ý*|¯[ëš™µúŽJ¥¥R K—.­îk_^…^ @3·Þ€T*}q¤7C ð ¼Êìé7…^-¼ã¯bè,Cÿý^ fLÖÝú‹Â:¿?ø»õ—Œ×m>Û:×»‰Û¦ÉS©TÒôRt:¤R)tª  ûÿyž÷û²q^×zwy鲩««•J ÃX©Töøe’7^ €Åb1bÄð®û;D@ëò«k_OÂ:G()Šz¦ÑŽÓ†Q…i¶;öÑ:öiìiÚëEÖ¾®ëyimëD«þw€~ÓèM¥ÇÃÁúJxx¸)XYZZºXYYÄ0lh]]Ý´üü|£Ž›¢T*3úØÍ—Æ €œœìÒÜÜœ×ÖÖfõ믿2+**hW®\††;v,5cÆ Ã0 Óé ‹õÄÔÔtô;ï¼óF½ÜzýÏ_=!4P¥RÑ222XÐÐÐJ¥¸\.\½z»{÷.fgg£F¢<˜­V«‡À[!C 𒤤¤X"„úÓh´ûï¼óޏ¯ýyY è'Nœx·¡¡!^.—sÕj5¦ùUÇ)‹%377_1{öì=}ígo0T½Ã0’ÉdÖœ9sÆ¥¶¶–&—ËÁ`€‘‘´ðx¼·nbˆ¡xI¶nÝj&•JÿÁáp6ÄÆÆÖõµ?/‹¡xIJKKšššh&&&Ëá-þ-ÃÈÎKÒÔÔtûîÝ»F#ûÚ—WÁPè9†@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@Ï1@ÏùÿÊd¡"×,ÞIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-ico.ico000644 001750 001750 00000130006 11617757645 023146 0ustar00simonesimone000000 000000 ‘K ð¯(‘– ì©  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ!!!ÿÿJJJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿVVVÿLLLÿcccÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿšššÿvvvÿ:::ÿ(((ÿ ÿ%%%ÿ888ÿkkkÿžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿšššÿ“““ÿŽŽŽÿ‹‹‹ÿ‹‹‹ÿŒŒŒÿÿ•••ÿœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿ›››ÿxxxÿ555ÿ!!!ÿÿÿÿÿÿ222ÿfffÿ˜˜˜ÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñññÿ———ÿÿ|||ÿVVVÿ555ÿ ÿÿ333ÿƒƒƒÿ‹‹‹ÿ‹‹‹ÿÿšššÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ°°°ÿgggÿÿÿëëëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿîîîÿîîîÿîîîÿçççÿÞÞÞÿÞÞÞÿÞÞÞÿ×××ÿÏÏÏÿÏÏÏÿ¾¾¾ÿ®®®ÿ¨¨¨ÿ£££ÿ•••ÿÿŠŠŠÿ„„„ÿ~~~ÿzzzÿwwwÿrrrÿpppÿjjjÿeeeÿ___ÿXXXÿRRRÿMMMÿKKKÿKKKÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿcccÿ```ÿ___ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ\\\ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿYYYÿXXXÿXXXÿXXXÿXXXÿVVVÿVVVÿVVVÿVVVÿVVVÿSSSÿSSSÿSSSÿSSSÿRRRÿPPPÿPPPÿPPPÿPPPÿPPPÿNNNÿNNNÿNNNÿNNNÿLLLÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿ(((ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿ\\\ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿ†††ÿ†††ÿ†††ÿ†††ÿ†††ÿ†††ÿ†††ÿ†††ÿ†††ÿ€€€ÿÿÿÿÿÿÿÿÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿzzzÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿvvvÿpppÿpppÿpppÿpppÿpppÿpppÿpppÿpppÿpppÿmmmÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿhhhÿgggÿgggÿgggÿgggÿgggÿgggÿgggÿgggÿdddÿcccÿcccÿcccÿ...ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMÿ^^^ÿáááÿáááÿáááÿ×××ÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿÕÕÕÿËËËÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÁÁÁÿÀÀÀÿÀÀÀÿÀÀÀÿÀÀÀÿÀÀÀÿÀÀÀÿÀÀÀÿÀÀÀÿ¸¸¸ÿ···ÿ···ÿ···ÿ···ÿ···ÿ···ÿ···ÿ···ÿ¯¯¯ÿ®®®ÿ®®®ÿ®®®ÿ®®®ÿ®®®ÿ®®®ÿ®®®ÿ®®®ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ¦¦¦ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿ   ÿžžžÿšššÿšššÿšššÿ———ÿ666ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿ:::ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿBBBÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿBBBÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„„„ÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿ¿¿¿ÿ»»»ÿÁÁÁÿñññÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿBBBÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ„„„ÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿóóóÿ¥¥¥ÿlllÿ///ÿÿÿÿvvvÿÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿBBBÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}}}ÿKKKÿ]]]ÿÿÿÿÿ¨¨¨ÿcccÿÿÿÿÿ...ÿ–––ÿÍÍÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿGGGÿ000ÿîîîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{{{ÿKKKÿ\\\ÿwwwÿ999ÿ ÿÿÿ ÿcccÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿPPPÿ000ÿ¨¨¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿKKKÿKKKÿ...ÿÿÿÿÿÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlllÿ000ÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqÿKKKÿ)))ÿÿÿÿÿ”””ÿôôôÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿžžžÿ888ÿlllÿ•••ÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿjjjÿÿÿÿÿÿfffÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿÿAAAÿCCCÿsssÿ¤¤¤ÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ}}}ÿÿÿÿÿ ÿ...ÿeeeÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©ÿjjjÿ555ÿ888ÿ___ÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓÓÓÿ•••ÿSSSÿÿÿÿÿÿÿÿÿ***ÿdddÿÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿ“““ÿÿÿÿÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿ§§§ÿPPPÿÿÿ ÿÿ"""ÿ"""ÿ!!!ÿÿ ÿÿÿÿ777ÿŽŽŽÿêêêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ×××ÿ˜˜˜ÿaaaÿ...ÿ%%%ÿvvvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿšššÿ***ÿÿÿ%%%ÿWWWÿ{{{ÿ”””ÿ®®®ÿ¤¤¤ÿ’’’ÿuuuÿ:::ÿÿÿÿÿqqqÿÚÚÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿÿ```ÿ777ÿ777ÿuuuÿÑÑÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›››ÿ!!!ÿÿÿ888ÿžžžÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóóóÿÿ'''ÿÿÿÿpppÿæææÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿ¡¡¡ÿ^^^ÿ666ÿ888ÿuuuÿ···ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³ÿ)))ÿÿÿ%%%ÿ§§§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÆÆÆÿ'''ÿÿÿÿŽŽŽÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©ÿ~~~ÿUUUÿ<<<ÿÿÿ999ÿ\\\ÿžžžÿÏÏÏÿÿÿÿÿÿÿÿÿJJJÿÿ ÿÿ333ÿšššÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿ]]]ÿÿ ÿÿ ÿ***ÿŽŽŽÿ±±±ÿvvvÿÿ ÿ ÿÿ???ÿ```ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèèèÿ¥¥¥ÿhhhÿ777ÿ444ÿmmmÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿºººÿ———ÿdddÿGGGÿ222ÿÿÿ;;;ÿUUUÿbbbÿ|||ÿ™™™ÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿIIIÿÿÿÿ|||ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“““ÿÿÿÿ///ÿ¾¾¾ÿÿÿÿÿÿÿÿÿÿÿÿÿóóóÿHHHÿ ÿ+++ÿJJJÿsssÿzzzÿRRRÿ...ÿÿ888ÿ¯¯¯ÿÿÿÿÿ¤¤¤ÿ111ÿ ÿÿAAAÿÍÍÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿªªªÿÿÿÿ ÿKKKÿ®®®ÿÀÀÀÿµµµÿ###ÿÿÿÿAAAÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿ¯¯¯ÿHHHÿ&&&ÿ222ÿaaaÿ­­­ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿšššÿ;;;ÿÿ)))ÿ777ÿZZZÿŒŒŒÿžžžÿœœœÿ}}}ÿ]]]ÿÿ ÿCCCÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ•••ÿÿÿÿÿºººÿÿÿÿÿñññÿ›››ÿxxxÿNNNÿBBBÿKKKÿgggÿ–––ÿÉÉÉÿÿÿÿÿÿÿÿÿûûûÿ<<<ÿÿÿ ÿ}}}ÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿ ÿ ÿ{{{ÿ¸¸¸ÿÿÿÿÿÿÿÿÿüüüÿ|||ÿÿÿBBBÿÌÌÌÿÿÿÿÿÿ!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³ÿÿÿÿ%%%ÿªªªÿþþþÿÿÿÿÿÿÿÿÿ>>>ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿ³³³ÿÿÿ999ÿžžžÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"""ÿÿ!!!ÿ^^^ÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ¡¡¡ÿNNNÿÿÿ²²²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿHHHÿÿÿÿBBBÿÿÿÿÿÿÿÿÿæææÿ¢¢¢ÿ“““ÿ‹‹‹ÿ‹‹‹ÿ‹‹‹ÿÿÿÆÆÆÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿÿÿÿ777ÿøøøÿÿÿÿÿÿÿÿÿaaaÿÿ```ÿ¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿ555ÿÿ ÿÿÿÿÿÿàààÿ___ÿÿ„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­ÿÿÿ ÿqqqÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿÿÿÿåååÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦¦¦ÿÿÿWWWÿ¡¡¡ÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ   ÿ###ÿÿÿxxxÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°°°ÿEEEÿÿ¶¶¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿÿÿÿÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿÕÕÕÿíííÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿÿÿ­­­ÿÿÿÿÿÿÿÿÿlllÿAAAÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNÿÿÿDDDÿÿÿÿÿÿÿÿÿ™™™ÿ===ÿiiiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜˜˜ÿ ÿÿ'''ÿ­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼¼¼ÿmmmÿ444ÿ888ÿiiiÿ£££ÿÞÞÞÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêêêÿHHHÿÿ ÿ___ÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿFFFÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿ ÿŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæææÿÿÿÿ ÿ‹‹‹ÿÿÿÿÿÿÿÿÿ¡¡¡ÿ‘‘‘ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÿ>>>ÿÿÿ666ÿÿÿÿÿÿÿÿÿÕÕÕÿiiiÿSSSÿËËËÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\ÿÿÿeeeÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿiiiÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ­­­ÿ```ÿ222ÿ;;;ÿjjjÿ   ÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”””ÿÿÿ ÿ±±±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ···ÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿgggÿÿÿÿÿ¦¦¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&&ÿÿÿÿgggÿÿÿÿÿÿÿÿÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿ†††ÿÿÿÿMMMÿÿÿÿÿÿÿÿÿÿÿÿÿÿaaaÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿ'''ÿÿÿ¢¢¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿtttÿ ÿÿÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ¥¥¥ÿXXXÿ111ÿ<<<ÿlllÿ¥¥¥ÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaaaÿ ÿÿEEEÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿHHHÿÿÿÿÿÁÁÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,,,ÿÿÿÿJJJÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÅÅÿ„„„ÿ(((ÿÿÿÿ›››ÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿsssÿsssÿÿœœœÿ¥¥¥ÿÿZZZÿ***ÿ ÿÿEEEÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuuÿ###ÿÿÿDDDÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿ¢¢¢ÿXXXÿ222ÿ<<<ÿkkkÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñññÿFFFÿÿÿ{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ;;;ÿÿÿÿÿÓÓÓÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóóóÿ›››ÿOOOÿÿÿÿÿnnnÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿzzzÿ888ÿ%%%ÿÿÿ ÿÿÿÿ ÿŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿ###ÿÿÿÿ ÿÿ333ÿLLLÿ|||ÿÍÍÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ¦¦¦ÿSSSÿ222ÿ ÿqqqÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿ777ÿÿÿ¨¨¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿÿÿÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ000ÿÿÿÿ===ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿGGGÿÿÿÿÿÿxxxÿÚÚÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜˜˜ÿXXXÿZZZÿqqqÿÿzzzÿSSSÿÿÿ&&&ÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚ÿ%%%ÿÿÿ ÿ………ÿŒŒŒÿhhhÿ???ÿÿÿ‚‚‚ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ±±±ÿ‹‹‹ÿYYYÿ ÿÿêêêÿÿÿÿÿÿÿÿÿÑÑÑÿ666ÿÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿÿÿÿÿ¹¹¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ,,,ÿÿÿÿHHHÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿƒƒƒÿÿÿÿÿÿ>>>ÿÿðððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒÿyyyÿŠŠŠÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘ÿ ÿÿ[[[ÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ€€€ÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿïïïÿ°°°ÿSSSÿÿÿsssÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿ›››ÿ___ÿ777ÿ666ÿrrrÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿ???ÿÿÿ§§§ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\ÿÿÿÿÿ¨¨¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìììÿ¹¹¹ÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿ$$$ÿÿÿÿgggÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‹‹ÿ ÿÿÿ ÿ///ÿÿÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰ÿsssÿéééÿÿÿÿÿôôôÿWWWÿÿÿ™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿsssÿ###ÿÿ ÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿ±±±ÿÿÿ000ÿ™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿŸŸŸÿbbbÿ888ÿ666ÿlllÿÒÒÒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿTTTÿÿÿ€€€ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰ÿÿÿÿ ÿ’’’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŸŸŸÿUUUÿ‡‡‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÌÿÿÿÿÿ‹‹‹ÿÿÿÿÿÿÿÿÿëëëÿ"""ÿÿÿÿ[[[ÿ½½½ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿ\\\ÿ   ÿÿÿÿÿªªªÿÿÿ...ÿÚÚÚÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿsssÿ###ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿFFFÿÿÿ\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÌÿ¤¤¤ÿhhhÿ999ÿ333ÿhhhÿ¹¹¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|||ÿÿÿHHHÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ£££ÿÿÿÿÿ~~~ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¶¶¶ÿqqqÿKKKÿ\\\ÿ¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬ÿ ÿÿÿÿªªªÿÿÿÿÿÿÿÿÿ¤¤¤ÿÿÿÿEEEÿëëëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿaaaÿ{{{ÿ¶¶¶ÿ|||ÿÿÿpppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmmmÿ!!!ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿÿÿHHHÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ¤¤¤ÿrrrÿ===ÿ111ÿ```ÿ®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­ÿ&&&ÿÿ###ÿÎÎÎÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼¼¼ÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿ999ÿÿÿÿMMMÿèèèÿÿÿÿÿãããÿ®®®ÿŒŒŒÿJJJÿ333ÿ===ÿ€€€ÿªªªÿÅÅÅÿÿÿÿÿÿÿÿÿþþþÿ“““ÿÿÿÿ???ÿÌÌÌÿÿÿÿÿÿÿÿÿ’’’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóóóÿ¤¤¤ÿ***ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰ÿYYYÿŸŸŸÿ)))ÿÿÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ___ÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQQQÿÿÿNNNÿÿÿÿÿÿÿÿÿ½½½ÿ„„„ÿCCCÿ...ÿVVVÿ®®®ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿdddÿ ÿ ÿlllÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¾¾ÿ999ÿêêêÿÿÿÿÿØØØÿ³³³ÿnnnÿ¶¶¶ÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâââÿŒŒŒÿ~~~ÿxxxÿvvvÿvvvÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘ÿ ÿÿÿ###ÿ«««ÿÿÿÿÿËËËÿ„„„ÿ>>>ÿ,,,ÿ,,,ÿ,,,ÿ111ÿyyyÿ¡¡¡ÿÿÿÿÿÿÿÿÿÃÃÃÿ<<<ÿÿÿ ÿÿüüüÿÿÿÿÿÿÿÿÿÈÈÈÿÿÿÿ„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÈÈÿ...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑÑÑÿTTTÿXXXÿ ÿÿ???ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRRRÿÿÿ ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ½½½ÿ)))ÿÿÿvvvÿÿÿÿÿÑÑÑÿŒŒŒÿ333ÿ---ÿqqqÿåååÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËËËÿ555ÿÿÿ†††ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ½½½ÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¢¢ÿAAAÿ£££ÿüüüÿÿÿÿÿÿÿÿÿ˜˜˜ÿ,,,ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿàààÿkkkÿsssÿ‡‡‡ÿžžžÿ¥¥¥ÿuuuÿLLLÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿCCCÿÿÿ ÿ€€€ÿáááÿÿÿÿÿßßßÿ•••ÿNNNÿIIIÿJJJÿzzzÿÐÐÐÿýýýÿÿÿÿÿùùùÿ§§§ÿ ÿÿÿ===ÿÃÃÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqÿÿ ÿKKKÿíííÿÿÿÿÿÿÿÿÿýýýÿ[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿvvvÿÿÿ ÿ”””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿCCCÿ ÿÿÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿºººÿeeeÿÿÿ---ÿ²²²ÿÿÿÿÿÿÿÿÿÙÙÙÿÿ888ÿ000ÿYYYÿ£££ÿâââÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿ000ÿ ÿ+++ÿwwwÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ±±±ÿbbbÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ"""ÿ•••ÿÿÿÿÿÿÿÿÿ»»»ÿJJJÿ,,,ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿ\\\ÿ”””ÿþþþÿÿÿÿÿÿÿÿÿºººÿÿ¬¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­ÿ$$$ÿÿÿ ÿ§§§ÿõõõÿÿÿÿÿÿÿÿÿƒƒƒÿYYYÿnnnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬ÿ***ÿÿÿÿ™™™ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿYYYÿÿ$$$ÿ\\\ÿ”””ÿ‚‚‚ÿDDDÿ---ÿÿQQQÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÿÿÿ+++ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¾¾ÿ"""ÿÿÿÿ777ÿÇÇÇÿ¼¼¼ÿ‹‹‹ÿFFFÿ,,,ÿ$$$ÿÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®ÿhhhÿ333ÿ777ÿkkkÿ£££ÿàààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¾¾ÿRRRÿÿ;;;ÿYYYÿÿªªªÿÙÙÙÿªªªÿˆˆˆÿKKKÿÿÿ***ÿÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆÿÿ˜˜˜ÿÿÿÿÿóóóÿiiiÿ;;;ÿPPPÿ ÿùùùÿÿÿÿÿþþþÿNNNÿ```ÿáááÿÿÿÿÿÿÿÿÿÿÿÿÿ¼¼¼ÿÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ˜˜˜ÿ"""ÿÿÿ)))ÿ£££ÿëëëÿÿÿÿÿ«««ÿtttÿŒŒŒÿÿÿÿÿÿÿÿÿ÷÷÷ÿžžžÿ333ÿÿÿÿ‹‹‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚÚÚÿ˜˜˜ÿZZZÿ888ÿÿÿ+++ÿ@@@ÿ„„„ÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZÿÿ———ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿRRRÿ ÿÿÿÿ ÿÿ...ÿ777ÿ???ÿUUUÿÿÌÌÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ¦¦¦ÿ\\\ÿ000ÿ<<<ÿtttÿ§§§ÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñññÿœœœÿzzzÿ```ÿRRRÿAAAÿ$$$ÿ"""ÿ444ÿ@@@ÿNNNÿ………ÿ···ÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿ ÿ˜˜˜ÿÿÿÿÿˆˆˆÿ555ÿqqqÿ———ÿ ÿ½½½ÿÿÿÿÿ×××ÿ+++ÿkkkÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿªªªÿSSSÿ¦¦¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ–––ÿ333ÿ ÿÿÿEEEÿÿÏÏÏÿãããÿÿÿÿÿÍÍÍÿ}}}ÿNNNÿÿÿÿ%%%ÿ’’’ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿïïïÿíííÿïïïÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿïïïÿïïïÿïïïÿïïïÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿ¢¢¢ÿVVVÿ000ÿ@@@ÿ{{{ÿ°°°ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿèèèÿÕÕÕÿËËËÿÜÜÜÿîîîÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿ ÿÿ¯¯¯ÿEEEÿHHHÿºººÿºººÿ ÿ¤¤¤ÿÿÿÿÿËËËÿÿhhhÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®ÿ¬¬¬ÿŒŒŒÿ¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼¼¼ÿcccÿ%%%ÿ ÿÿ ÿÿÿÿÿÿÿÿÿVVVÿ¬¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿóóóÿŸŸŸÿUUUÿ000ÿ;;;ÿkkkÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿ ÿiiiÿfffÿ777ÿ–––ÿÿÿÿÿ§§§ÿÿ˜˜˜ÿÿÿÿÿÔÔÔÿÿcccÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿìììÿîîîÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿ¨¨¨ÿyyyÿCCCÿ&&&ÿÿÿÿÿ ÿ555ÿkkkÿ›››ÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿ¯¯¯ÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‹‹ÿÿFFFÿ666ÿoooÿðððÿÿÿÿÿ™™™ÿ!!!ÿ™™™ÿÿÿÿÿüüüÿ<<<ÿ^^^ÿéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿ³³³ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿ¯¯¯ÿgggÿKKKÿRRRÿ{{{ÿ½½½ÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÔÔÔÿžžžÿbbbÿ...ÿ"""ÿoooÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›››ÿÿ&&&ÿMMMÿÈÈÈÿÿÿÿÿÿÿÿÿšššÿ666ÿŸŸŸÿÿÿÿÿÿÿÿÿˆˆˆÿlllÿ}}}ÿ†††ÿ‡‡‡ÿŠŠŠÿÿ¢¢¢ÿÈÈÈÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿwwwÿKKKÿZZZÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ±±±ÿpppÿ888ÿ222ÿgggÿ²²²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒÿÄÄÄÿ$$$ÿ999ÿºººÿÿÿÿÿÿÿÿÿÞÞÞÿµµµÿTTTÿ¾¾¾ÿ×××ÿÿÿÿÿøøøÿ¢¢¢ÿ………ÿyyyÿtttÿsssÿsssÿyyyÿ¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿKKKÿ[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ³³³ÿmmmÿ...ÿOOOÿ¦¦¦ÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿáááÿÍÍÍÿëëëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ|||ÿKKKÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ²²²ÿ===ÿIIIÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýýýÿ®®®ÿ111ÿ‹‹‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿ–––ÿ---ÿðððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿƒƒƒÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿ‰‰‰ÿ...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿ{{{ÿ...ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˆˆˆÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿpppÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŠŠŠÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿiiiÿ000ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‹‹‹ÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿbbbÿ///ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿKKKÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿ[[[ÿ---ÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿµµµÿ©©©ÿÿœœœÿÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿLLLÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿVVVÿ---ÿ   ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿgggÿBBBÿ666ÿ===ÿrrrÿ²²²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿNNNÿ^^^ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿPPPÿ,,,ÿcccÿÿÿÿÿÿÿÿÿ½½½ÿÿbbbÿ,,,ÿ111ÿPPPÿ777ÿ---ÿŽŽŽÿ¿¿¿ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOOOÿZZZÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿwwwÿtttÿtttÿtttÿtttÿtttÿtttÿtttÿtttÿtttÿqqqÿqqqÿqqqÿqqqÿqqqÿqqqÿqqqÿqqqÿqqqÿnnnÿnnnÿnnnÿnnnÿnnnÿnnnÿnnnÿnnnÿnnnÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿkkkÿhhhÿhhhÿhhhÿhhhÿhhhÿhhhÿhhhÿhhhÿ???ÿ$$$ÿ111ÿ\\\ÿhhhÿbbbÿIIIÿ///ÿÿ]]]ÿ¨¨¨ÿfffÿ,,,ÿNNNÿ¹¹¹ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\ÿZZZÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ^^^ÿ]]]ÿYYYÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿVVVÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿSSSÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿPPPÿNNNÿNNNÿNNNÿNNNÿNNNÿNNNÿMMMÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿKKKÿ888ÿ ÿÿÿÿ,,,ÿ,,,ÿ,,,ÿÿhhhÿÈÈÈÿÿ,,,ÿIIIÿ¾¾¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØØØÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ­­­ÿ§§§ÿ§§§ÿ£££ÿžžžÿÿ›››ÿ˜˜˜ÿ˜˜˜ÿ˜˜˜ÿ˜˜˜ÿ˜˜˜ÿ’’’ÿŽŽŽÿŽŽŽÿ‹‹‹ÿ†††ÿ„„„ÿÿ~~~ÿ~~~ÿyyyÿwwwÿwwwÿtttÿnnnÿfffÿ^^^ÿQQQÿPPPÿRRRÿMMMÿCCCÿ777ÿ###ÿ777ÿcccÿBBBÿ,,,ÿlllÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿ–––ÿLLLÿ...ÿ...ÿ///ÿJJJÿ°°°ÿõõõÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿ³³³ÿ¦¦¦ÿ‡‡‡ÿ”””ÿ£££ÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQSapecNG-2.0.0-source/src/gui/images/qsapecng-256x256.png000644 001750 001750 00000047334 11617757645 023362 0ustar00simonesimone000000 000000 ‰PNG  IHDR\r¨fsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœìw|TUúÿ?÷NŸIo“„ôJ9„š„Þ„.A°¬½¬Øuu¿î*Š»®ºþXEtŶ«»"B/!”vSHï}Ò&3“és$3›2 XÌ}¿^y%¹íœ;sÏçžóœç<Ų,888Æ&ô­®Ç­ƒŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0œppŒa8ààÃpÀÁ1†á€ƒc à džŽ1 'cN88Æ0ü[]Žka>wÎåååf³Y—””Ôy«ëu»A±,{«ëÀÁ1,† ð³Ù¼ ¹¹Ùµ±±jµ&“ "‘ˆuww/‰D¯\¹ò­®ëí'· øÈU«Õ>ééé(++ƒB¡€V«EQ†¯¯/|||ØÐÐз¤RéŸ !ÜÃ}8àøŸ‡a±ÑhLÉÎΞ›’’‚ÆÆFttt ÿ³Ëçó1cÆ $%%ÁÛÛû{÷q"04œ €ã†M›6 <<<ÂÌÔjµ “ÛÛÛ£:::Ä*•ŠjkkC[[t:€ÇãÁÁÁmmm0™L8þ<¤R)yä‘uEUøý-½©ÿq¸Àÿ07n¤ÝÝÝE@LÓ´˜¢(1˲B"bÖ¿„Ö}=¿=ûù=¿,ËòY–ôìã³,ËïÙÏgY–o±X‹Eh±X¬ÿó-‹€eYžõ–ey‹…×ë7ݳfY–êµê9Ÿg2™l?f³™o6›yf³™êùÅbAïßF£f³f³&“ ƒÍÍÍðòòMÓˆ‰‰““Z[[¡P( P(b±~ø!ÜÝÝ !U7õ‹»•ÀŽ;ž(--ýÌú‘êÿ‘û¿rîõ\Ëú7˲¶ŸÞÿ—•• Øfïï«íî±7­V‹––tuuA©TB§ÓÁh4‚ÇãÇãA&“ÁÝÝÝî¹jµ®®®ˆˆˆ@TT‚‚‚À²,öíÛgN‡ªª*¸»» ¬ðúM»¹ÛŒÑºººPYY  ( 4Ý×å`$ †ã—‡V«Euu5,‹m›Éd‚T*…T*ô<“ɃÁ€ñãÇC.—#&&  ñþûïÃd2 0eʘ:š÷q»3j6€Þ_¬““|||®ùZËk}KÆ5oDy×rÜh–s£ê`4Áçóáìì ‹ÅWWWøúúÂÑÑ<:jµZ­Ö6æ·BQt:Ìf³m›Z­îS–H$²þiÇ Œšôþ2(Š‚P(­¢8n3P__¹\ðòò‚»»;|}}!‹a±Xl/£Ñˆªª*TUUÁd2A @(¢´´îîî8wîÌf3Ž?ÞG¬^ºÉ·w[qSz|>ßòÞ{ïñF«,ŽÛ‡cÇŽ½™žžþ§Ë—/è~98;;cÁ‚Z¿~ý[°mÛ6/±Xü{­V{·J¥ò‰D<___dggÃÙÙ|>µµµptt„B¡@SSZ[[me¸¸¸ ((º|róïòöá¦Go$‰ío>ŸŸ³ÖÆÏ?ÿ|3€—{~°k×®]%%%÷h4ðù|´··ƒeY\¹r555•J i .„««+üžÒ|Ónì6dÔq†<ŽÁè-555uüÚµk×®X±bç²eËàëë OOO°, •JeküR©wÝuæÎ ÿò·Ñ¼_\€ã¦Ó[x<,KÃÕΡ(êŨ¨¨¹ÁÁÁáyyyhhh@mm-T*hš†ŸŸ<==1nÜ8³L&{”òÏQ½‰_7ÅÈÁÑ@š¦a±X@Ó48`¸Ú9„ Ã0ñb±ø©S§.hmm innvR*•”ÉdbE"‘ÉÍÍí8€õñññ•£¿ ¸ÇM‡ÏçۀǾm˜Òà·½·1 #"„è“““©Õ«WsoÂÙ8n:4Mƒ¢(ëß×õ Bô””Ä=p×À¨ ×à 뛟Ïçs ÷ Ç-ÁêÎãñ8¸…pCŽ[‚µÀãñ¸7Å-„ëpÜT(Š2݆Àžÿoi}Æ:£"Eqq8ìBQ”èž ‹ÅÂE¦¾…Œ–ð¸Ç h؇õ^ÀÃqó5è·$”ëçq(Šêþ+ܳqk- {÷¸á‡Š¢Ô@wØ.°X,œÜBFEhšæsžÃ4M+ÿì°Fðá¸5Œš°_€Sy€³³s MÓpqqh4îÙ¸…Ü”×à°BQT£H$BPPhš†^¯ÇÖ­['ÜêzUFEzBGÆ¥9ns!j¡PØéáá¡P–eQQQ±óV×k¬2*`6›zÿωGo¡PÃ0q'OžŒ¸ÅÕ“Œ–†gÿ 7nt¥²8n3¤RéiOOOkÜ>( ìØ±ã '7ŸÑ·þX–õ¥²8n?¶¸»»·-Z´^^^€üü|zçÎE‡ºpòäÉñ·¸~ÿ3øøøxŒæõG+ È€J …£TÇm!¤…a˜—cbb¾^²d ~üñG¨T*äää ¸¸8nñâÅW Ãyš¦×ÜqÇõ·º¾× Ã0 „·yóæ{*++½žxâ‰ù<ð@Æç…𯨨˜»xñâߥ¤¤¼íãã“  c/á)Ã0R³;;;WÕÖÖÆµµµù©Õj'­V+¤(Šåñxfg["""vB”7M„BáBGG©<ŽÛ BÈ7 Ãhî¼óÎíÎÎÎòS§N¡¤¤Z­û÷ïÇùóçî¾ûî³Ùüƒ^¯tÕªUÚ[]çk@†î䤳 ’’‚®®.|÷Ýw—Y–ý‰²†Ò'q Ã0|ïXSZZŠªª*|Ø“X' ÀZûó»ÖÖÖ?_¼x‘ßÚÚ:˜Íî’ŽMMM5ïX|Ç Ã$ðx¼ÐþÛ5ÍS7º,ŽÛBH2€è™3g~õàƒ²‰‰‰ ƒH$BKK vîÜIôÑGëš››•)))«ou}G !¤@"€ÒââbtvvB¯×£ººÿüç?W*ŠS= ¾÷9&ëW©ThmmE}}=ÔXLéßø·?~ü/ä·´´ØmüEÇãA(B"‘ÀÝÝz½^à#ÞÆoÈÍ2 ã\WW·°°°ðŸ—/_vjkk³í3›ÍÐëõ†aîW*•Ez½^ÓÔÔ¤•ËåÜôÀG.—kårù:.%<<|š@ ð–Ëå …¨®®Fuu5Î;Ç«­­]W___6sæLæV×y$ÈårCSS“(##cɹsç@Ó4|}}¡T*Q__ï?cÆŒI---?ôn r¹œmjjª.((xäüùó Å´iÓ>%„ìï}m†a¢þþ÷¿U__OI$H¥RxyyÕñx¼MB¡0Y*•þàààð““Óv™L¶) ௠,àEDDLóññ¡8^ó€a!€ ýUUU3†q©¨¨°e}µ¦w¶ºz* TTTD¤¥¥ñõõEPP.\¸ ôõõÍØ`!„[B8F!„\`fÊܹsO–––΀}ûöÙžŸööv³wïÞ¢ÔÔÔô[ZÙb0öéõúÿg};ÇÄÄ€aaß¾}«’’’6ØØï´3liÑ$÷¿.Ã0›ÓÒÒ(¹\ލ¨(,]ºô BÈÕ|*žgæ[Ÿh±0 CÆ×Z[[ßLKKsÌÍÍE]]Z[[¡T*¡Õjm ¿w„¦iðù|ðù|Èd2x{{;‡„„, ZHQ±,û{Š¢þNáÖˆŽAX– V«ÕE¡°°°Ïóãää„ÄÄÄ­›7o¾­?œ;wÎ¥§ƒ¢(ÄÅÅe›ÍæØÌÌLœ={áááhšÞC±õn!–Ý»w³:ŽÒëõPÞûš ÃP‡Zd6›Á²,,XðÓ0¿õÚ†™`Òˆ %%e¢Z­>zòäIïüü|TTT@©T¢««k@ Š¢ ‹AQX–…Åb˲0 0 èêê‚B¡À•+Wàää„Çyóæ}LÙh±XÆÆÆæŽ¤n·7'Ožü¤½½ý7»w羚\¹“É???ˆÅbÄÇdzëׯlêÔ©_Ýêz^ F£‘ô4b@BBÂýííí™õõõ⦦&ìÙ³‡öõõ=À0LH @wº3k:ô{Bo&\¹r…ßÕÕeM¾ûç‘Ô©Çøxyذÿþ·Oœ8ñöåË—©ªª*´´´Àhü¯“¦i888@"‘À: (Ê–íÕl6Ã`0@­VC­V£«« &“ mmmhkkCaa!bcc=fÍšÅTVV~÷Ýwß;’›â¸ý8räÈë*•ê½{÷:äççÃd2¦iøøø 66³gÏn ZF¹m³üZ,–hkŠóžXˆ5QQQ mmmYÇGMM öìÙãÿý÷o°Þz^MM €ê-½˜ÓÜÜ ­Ö692ä “aN§‹U*•jµZz–b¹ª$'';«Õê Ÿ••…††ë˜@÷²N",,Œ6mZÅĉ·8;;CQÀ$s:;;ï6 «kkkåõõõhooGEE…í&Ôj5Î;‡ÂÂB”——¯ÓjµÓ'L˜Ù[9~9räFóvrr²SAAŒF£­áÇÄÄ`ÆŒ¦¨¨¨w|H¹§mX,–`k#–J¥ „¨ !Ù­­­Çgee!77ÙÙÙ¿¡izëÌ™3 n»€>í­B½^–e­qíªœ={6·­­m¢Á`@mm-, ŒF£¡¹¹9iHHNNö¨¨¨¨Ý¿¿(//¶}EÁËË X»v-ú>ŸÏ‡b«í'Ÿ|²S$myüñÇsW¬XqÀÏ0 ã˲ìë©©©Ïž:uоtéÀ²,X–EKK öîÝ‹–––{ï½·E£Ñ'$$´óó Ã8ðihhb&ÖÅÅÅ!  ÁÇǧ€@'€lBˆæF– Ÿ|òIàÙ³g_ÌËË{=77÷ªi±†KLLŒÈÑÑÑeüøñn...îEëõúIz½>\(ºJ¥RV"‘´ ‚F F£±Õd2uJ¥ÒJ±Xœ÷ꫯÞÐÏØGŽy±««ëäädçüü|[Ã÷ööÆ„ @ÁÔ©SwQõ!¤z´ë>w ·ÚÚZo•JåÔÕÕåÚØØèÍãñxR©T-•J›œœœ'MšTäëëÛ@ —rÕ¼†‹ÅËÚˆ­ë`Ú´iK›ššôuuu|…B'NPÁÁÁ‡݆O`íOìkø|>x<x< ÃDvgHœ7Ó4½³ªªÊ‚M©T ]]]ÿ0¨$''ËÊÊÊ*÷ìÙ#ÊÏχµ twcbbbðè£"!!¡•ÇãÝO9Òûü>ø ­¥¥Å•Çã=¶cÇŽeO=õÔ!ë>BH=€(ŠzöìÙo8pàéýû÷#33Ófø1™L8sæ ôz½sRRR#ŸÏ—OŸ>½cÐOy†¡ÌÑétëËËË—Ÿ:uÊ¡¨¨ˆª®®F]]Ìf3x<\]]!—Ë!‘H…G}ÔÄ0L€§zh®‡~ø!ñ³Ï>;¤P(‘ úz¯™““ó|vvö555RƒÁ`ûíÅe´>0<NNNðööŸÏ‡X,Æ©S§àîîÎé/I¥Ò7ï½÷ÞÔë­9rd^¯ß~àÀ÷Ë—/Ã`0€¢(xxx &&‘‘‘˜9sf.Ç{ŽræF”9 ÃÒÒÒ¿·´´Lnhh544PJ¥‹yyyhnn¶ qÅb1‚‚‚ —ËqòäI899ÁÇÇ+V¬Ã0MÎx–Òh¯<š¦Û­Ïµ«««­1B, ËÛÚÚRNœ8ÚÚZ;v,P lX²dÉŸÔj5Àžtº»»ƒ¢(«m>BÈ ÃÌuss{ØzoqqqJ¥ö§“““ùµµµE»wï–ååå ëOž</¼ð&L˜pÀZBHmÿk´··»Ý>jµú#‡úÓ£žë)Š*ŠŽŽþèý÷ß§²²²lûÍf3.\¸ƒÁ P'‰Ü¬© † Ã0áííí "¾øâ‹>B&“É ƒÁ“É@`­/ÒÓÓ‘Í Š{óÍ7“†‰!„è†(j8u¿öÚk‡êêê4MG=ðÀ3¾ýöÛëßRup„ ÿ7yòdéùóç‡ ´É²,är9|}}áììl³Å´µµ¡µµUUUTNNŽD$Í 9ÛÑÑa Ý%—Ë¿–®ø¡C‡,Ë¿NŸ>rúôituuè¶êGGGc„ HHHh‘H$oøl4§‚†™Z__¿#;;{Ê™3glÉIz#“ɰxñb°, NŠ¢ ÑhÐØØˆ¦¦&@]]òòòðã?ÂÅÅEþÊ+¯¬Ž€${åÒ4]n€äááÑ'ÊÒ¥K477_lllŒËÉÉAnn.‚ƒƒßÑét_jµZ „B¡½/ô¤——¬F@F³ÀPéÐ_‹ÅKrrr|òòò‰D¢°+§wíÚ5.''gÀ[$22ë֭Ä *,%„¨úŸÿñǬT*ÑÞÞ‘H‘H4ä*/BÈ‚õë×øá‡¢´´Ô¶Ïb± 33ŽŽŽRooï<‘Ã}H233㪫«Ï}óÍ7¼C‡Ù,ËŽŽŽ?~<Ö¬YcôóóÛïààPSRRrðàÁ¥999BëxM¥Raÿþý¨©© Û¹sg®s-Ö-[ò­š››ÑÑÑq€dð³®!¤Œa˜ø-[¶œ¼ÿþûÃÊËË µµråJÓ† ž@÷[+À}mmmëÒÒÒd'Nœ@ss3Ìf3ºººŸ~ú‰7iÒ¤û^}õÕ•‹%166vX=‚ýû÷Ñ4ýŸ¬¬¬¸””tttwÞ¤R)ÂÃÃ1eÊ$$$4Éd²÷ìíq>Ã0N:õÇäädäææÂ`0`Μ9àñx‰DðòòbCCC룢¢Þó÷÷ÿÌê¢ûÅ_8šÍæÏ•JåªêêjQQQêëë¡T*ÑÜÜŒºº:<õÔSذaÃbBˆÝ²iš.° À¸qãìŸ4iÒ…BÑÑÜÜ,ljjÂ… (>ŸŸi}…Bá€Ï†¢7nœ¾±±QDQêëë†q „¨íÕÒùÓO?½×Üܼ͚RÏç· €ï¾ûîÉC‡Í´×øœœ°bÅ Ì™3Ç àA{òòòÖ×Övw 4 4 ý§?ýé­ 6üÑî'Ôͦ)S¦,üñÇç½÷Þ{P©þ{i‹Å‚ . <<<ÌÛÛû?ÖqÝž‰ÕÕÕ§’““y?ÿü³-µT*ÅÌ™3±råÊ|OOÏùÓ§Ooéù€””„O>ùä˽{÷>ÒØØhŽäää@¥Rùà: ''gâ©S§Bzo3›ÍÈËËöÙgw=ùä“û;w8Bj†Y!—Ë u:ª«Ÿ=<<°aÆ'!_÷l*pŒa˜õ+V¬xröìÙ›=*8pàL&´Z- ÒÓÓñúë¯Ë¶lÙrœ¦é)„üÁꑜœì"‹¿,++[µÿ~J¡P€eY…B!..sæÌiÉdïØ9ÒÝHé±~õÑGÝŸ‘‘ššP…ØØXðx¹ _ÔÒÒræw¿ûÝýiii¨ªª‚ÅbAdd$¼½½1cÆŒº^xÁáØ0œ^åäÉ“ÿÿ«uëÖ™fÍše‹ktìzlM˜={vD"H$EQV/Ú>L™2%+>>þo“'O†F£AEE…í¹¥iÚ®1túôé÷¸¸¸€¦ih4¤¥¥­<þüÓƒÕ¿ªª*P @,ÃÙÙ.÷iŒmmm‡>̳N?ôF"‘`êÔ©ðóóË@/·Å;wF|úé§-}ô‘1%%%;++˽££­­­hnnFKK ÚÚÚ P(°ÿþ§ËËËMÛ·o×|ùå—Æ+„*‰Dòíºuë “ÉìÝÎ;‡ŠŠŠí=VüAÉÎÎ~lÏž=}ÆüNNNÐ,_¾|ÝPç>ñÄ;_{íµC®®®¶qâ… &uÎP0 ã”––6Q&“!..®O:,N‡ŒŒ Azzú’k½~oüüü2X¿à>„‡‡W õ B²ø|þ¤ ¤ÎŸ?¿O=Y–Å©S§püøq†afö>/99Yôå—_î-++;üù矋333a±X …7ß|³êî»ï~ØÑÑ1˜òyÿp£…^¯ÿüOúS|aa¡m–)00!!!X²dÉko½õ–ßHgy!?.|ôÑGÕ«V­²½$ôz=ÒÒÒí#‰ŠÅbÈd2ëgú+{Ç­X±âÅøøøšàà`´¶¶Ú>“É”=H]Ìaaaû­Ç544àìÙ³ŸœnÜ8abb"ƇÄÄDDDDز¾X¡( nnn˜?>¢¢¢0þ|BLãÆ „l>ŸvåÊ•6uíM[[²²²`0^aÆÝ^]¦YÝI­888€¢¨Á¦TìqpòäÉl\\ÀÝÝ}@˜³áÀ0 uñâŇ, ÜÜÜ “ɬ_€í•J…S§Ny1 2Ä¥†EQY 5@,ç„r‰DòEdddŸí&“ ííí¨¬¬œmÝöꫯ6²,{EQ߆††báÂ…¶®qgg'Þxã‡Nœ8Qwþüù;®ã¶FÃ01©©©Û222ÐØØ=3' 1qâD,Z´¨pýúõ/]o„L¡P¸pãÆÊððpH$888ôyF†¡| ÁËË >>>prr€ûí‰!¤eéÒ¥‰‰‰&¡Pš¦ñóÏ?_ª.sç·„„YÛN§CUUUHaaá? E׉'ÕÖÖñx$ i>µgÕÖjµhllì#¼¯¾újÑoûÛ_GEE­ž4i’qÁ‚ˆŒŒ„@ €N§Ã_|á½iÓ¦#?ýôSyZZÚ¨ J¥ÚzàÀª®®ÎfÈõòò´iÓÌ‹-šs£Ê!„dŠÅâ…;vìèœ>}:L&SÿçQ à €Í'N<éááÁFDDd¢{%^*º†Ø»nùÊ•+Ý|ðA­¯¯¯ÒÞ1½IJJ2=óÌ3ãcccyzz*õB¡eYÖjñ·¸ººjBCC·VVVFY{c|‹ÅÊÌ̤¬s´ýquuµpüºÿ¾CÎü¡¾¾þõÆÆÆ÷===¡P( ‘tÏnÉd2H¥Rx{{§­ìí-8{½½½¼½½}ú7d ÛEòòå˘1cÆ ûï÷ööÎéï<¥Óé`±X Ñh&0 3…’y•:€ò€Ï–-[i4?¼Úñö`æojµ>>>˜9s&+“ÉÊbccÃ,X€ÒÒR›¢½½Ç_à8ØìÊpøÇ?þQAdz-IJ"‹G‘É¥L Àb±`°çdùòå{†™yÈÓÓ34((W®\A]]Š‹‹ñÖ[oÇÆÆéèè¨pvvþͬY³nx„(†a¦5zÍÍ¿õÖ[ÁwÝuWÅ0¯«Ú²e‹tË–-îËÚµkUèŽ4lhhjjz9''gЃ\]]ZH)êb÷ßÿŽŽŽ÷{{{÷q²pssƒ§§ç¦x q„ŸÏÿ,,,Ìî~½^üü|èõú¹ööËd²Rggç>u°º·µµQGŽ9׳rXlß¾½hÇŽƒN¯ FvvvHvv¶ŸÏG`` ÜÝÝ ÂÅÅåÇ©S§ö™6 HKK£µZí‹#-§?V£Pÿa€T*hœÀÞ®ßÖë‰D"X,–AÇò„‰D=oÞ¼çÖ¬Y£X¼x1æÏŸoooX,ddd`Æ Áß|ó͑Ç—={ö†?­´··š ë Ð=ü‹…D"Ù}#˲BÉtttœ?}úô/ÈÞ¤¦¦«ñßLèôôt¿††ioƒYd2ÿ=œ >ùä“ÿ ú}ÏX0eÊ”ª‡zèµÖ--22Ò®·Ô××£¬¬l°©¹ÆÖÚ±ÒÖÖ†¦¦&|ÿý÷âôôô4†a~Ó3N>U(ððð@TTT !dsÏêáàààúY³fõi¤UUUÈÍÍýýõÖÉú™õ¶â€Z­¶+˜ƒ0¥·Aè6ê‰D"Èd2ûcŬӊR©4pÑ¢E¯®]»¶}éÒ¥˜3gÜÝÝa4‘––† 6„ìÞ½;%%%¥ôìÙ³ñ#¨›]†UTTLohh€Fó_㾃ƒ–-[V{µØõ@ɼY³7Z¥R­¨©©±;ïoÅÑÑb±xHCDoÂÂÂþòÜsϵ?ëÖ­C\\ܵtŸ3ìZ³îÆ\^^n׃.))Éü«_ýꂽa»uâ¶mÛD»wïþ;˲—ûOk݆_¹rå³Ù ___¸»»ÿꢔÉd÷X„¥R‰Ó§OK¬¼ž²NgßUm`ݧ[,–õ/þ÷+¶˜ržžž ç:„-!ä¯K–,ysݺuê¥K—"..ÎÎÎÐét8qâ6nÜzàÀóGŽ9{æÌù°o´*•jM^^e]DcÅÓÓÿ¹Öëþ’¡U*ÕòÁŒVzæäK‡<¨„V*•î{衇0iÒ$-ìŒÓ‡q …@ ÐÚ3fÝÀ†††Ó=8;;?üÜsϱöæÃ•J%ŠŠŠðõ×_ã7Þ˜|åʕԜœœ2 sÃrtvv¾ZUUEyxxÀÓÓÓ²ìG½÷Oš4)mܸqMÿõ’6™LÈÉÉAUUÕ5OQ¶5çÀ`0\u–¡'”õ7™™™üüüÿ:üY¨|}}Í/¿üòˆÖ.ô,ý³‹‹‹ÿòåËß]»v­611Ó§O·­G8xð ÞyçÙG­?zôèΔ””A¿ÛÁèêêz²²²ju_oXðùüëò´ü¥BwuuÅöWÌþôLY]u¹OxÀDBHåµTŽ¢¨:{ÓY@·U¿¹¹yPï«¥K—–ÄÆÆ~øÔSOõ™r³b2™P__Ó§Oãí·ß¦þò—¿üZ¡P”ggg¿Â0̈¾þ”——ÿŽÏçÃÅÅãÆkZ°`Á¡PøYÿa@}}=²³³C†Öl…=€¦¦¦!×dô =¶677·º[¯ãéé OOODEE]sBH!dƒ\.X¹rå_“’’ wÜq¦OŸ'''tvvbß¾}ô;ï¼óØ¥K—´GÑt]WW×øööö>Î_E! n¨ñï—¿££Ã«¿±§7EA$™GêÄÑãq6¤Qäj †@`ßX =bt¯ßÀâÅ‹_‰D2½^ÿÜÎ;ûŒ ­èt:”••¡¥¥%%%’+VüõÎ;ï|ša˜Ç!×´öòåË ÕÕÕŽÖ°hB¡Ð®ÙÜÁÁáÏîîîo¸ººRVïK•J…ŒŒ ,\¸p#ñ»ƒ À•+W|í=>ÿjmmMÌÏÏÇ©S§lû\]]áëë‹©S§î}ýõׯÛÖc‰À_ýýýß,++ûŸŸ¯¦¦ÅÅÅP*•صk—àÈ‘#›/_¾üöŒ3¦,Z´èª´ööv­VÛÇÿƒ¦iôø3 þaøz½^`¯aØè:pK"òtuuU Ö`æT`Μ9ÏÓ4²ã»ï¾£ tîaA^^ZZZžžþÜsÏeYöŸE½HQ Œ†††­VQ`YÖ-99™JJJê379uêTݹsçÚD"‘Í`±XPPP€¢¢¢•ŽŽŽ×2mÅãñXT¨««ã1 HéÓ›cfºÙlÞ“ŸŸïwùòe¤¤¤ØcI$Lž<+V¬(xî¹çnhlþžåàÏø044ô›ŒŒŒ¹žžžhnnFqq1:::ðí·ßºüë_ÿ* …ÉyyyÏÆA­ÕB½^ßg94ǃ¿¿?À €]øzÇ@Ï|ò-±njµÚ¦Ál@÷Û[§Ó XXÑŸY³fítttüÙÕÕõÐ¥K—bÏŸ?ÒÒRôïù˜L&ÔÖÖ¢³³µµµXºtéƒ÷Ýw_Ã0‰„aMá0 #+++›f6›ÑÙÙ ­V‹òòrW''§³Ï>ûìcÅÅÅ5S¦L1{zzÆ †çJJJÜûÁ ÒÓÓé©S§>`Äö«°¿/„R©ÄÃ?\öõ×_»BÔ ÃˆkkkÿVSSóxff&]\\Œ––XmBŽŽŽ¸ë®»Ø;ï¼sgttôoFZáB©bfÉÔ©S¿7nÜ}§N‚‡‡ >ŒžIÁÁÁñ111 rssKú_ƒa‰^¯§¬Qr­Peý<ì.“ëð :ÕØà¦U¨74MóíEµéB¡–²B !“ƒƒƒ§ÇÇÇïKMMõ½té*++ÑÑÑÑç¡éììDQQÔj5†‰x÷Ýw/1 s!äÂÕÊéèèx½¤¤„JMMµ­æ:sæ Ìfó,£ÑXd4QXX“ÉNg·7¢ÑhŸŸšššßMš4iÄ`}ÚûìòòòxóçÏW¹¹¹ÁÕÕ&“i@쀰°0ë‚™ooï„•+Wm%¾Bô Ã|(—ËW?^š••…ööv›H{xx`òäÉÒ‚‚‚Árê Ëãñú<¬½—„®+ Ë/>V,ÚÂÍf3ŒFãh嚦%ƒ¶º‡'Ë—/Q ‰„„„ô„„„qnnn¿‹}?##ƒÎÈÈ@UUzg3²öx<6nÜèñÇ?þqÃ0ãÈUrTTT¼h4áçç‡Þé Ìf³-:²õg0X–Eee%rss=fÔa6›©žßv÷«T*¨T*Ô××C&“ÁÍÍ r¹îî‰Ñ…‡‡Ÿ?~ü‹Ó§O¿iÉ\³²²V©T;Ο?/Ü·oßsæÌ9–››‹Ó§OÛÝ÷nmÛ¶É_z饎 vÍK—.%ÔÔÔ8:99ÁÉÉ QQQºg,”J%«R©,æ®®.Z§Óñ´Z-e4¡V«ÑÙÙÙ'úk{{;._¾Œy󿽂n¿ña3TÀÇÇ!!!æ°°°ª"ÆÃÃãûÕ«Wg 8ø&páÂ_Fó}EEÅìü5550›ÍàóùðööÆÄ‰q×]w}îááñ›«­Ùçóùf>ŸÏ£iºÏgГ[/œ €/•JMŽŽŽƒN{Y,ètºëž»x<ž×P=€¡„k8Ü}÷Ý-Âÿýï¿.‰Þóöö¦vïÞÞ~ƒuuuHOOGaaáï !ƒ €B¡ØÒÙÙ “Éd›ÚsttÔðùü5[·n=Üÿø˜˜ÊÃÃã¶·· lËiu:Š‹‹QRR²ÒÁÁÁ™ô„Xƒ @OŒU»wïþi¸×-Ο?ï©Ñh¾®ªªJÜ»w/U[[kkø¾¾¾ˆŽŽÆìÙ³ëÂÃÃïnH&“µðù|_klG »7Õ#Fñvn[ø2™¬ÑÝÝ=p°Ìf3t:µbÅ êÀ75™'˲ò¡ÀÓÓó†Ôç¾ûîûàûï¿Où÷Üsà?ÿùOŸž@WW:;;ñí·ß.X»Ö~42†a¤¥¥¥Ó ´Z-û / ê}—››ËØšœœüÉ©S§Ô'OžZÃpÝq.\¸À‹}À°W Z‡ý€¾¾¾†[Ýø/\¸à¬V«¿ª¨¨X¹wï^º®®Î<ÄÇÇãÇG\\œ6::úeŒ0H¨L&KuqqY+‘HúøTVVÂ`0Lû¹Ý¡E"Qª··÷†¾žòšb\+,Ëz&r¹Üîø 99Ù¾ÿð¬[·®D.—OóôôdçÌ™cÏTrr²ÝY‡ŽŽŽ?( ªººnnn–¡o’’’Œ+V¬¸#**ªÏèÎÎN ¾¾þw#¹—Ál ~~~Gì~S`FtòäÉÏ‹ŠŠZ7oÞ|÷ÇL×ÔÔ€¦i`Þ¼y¸÷Þ{ÙG}ôãèèèq„Œ4B°——×g>>>¿š››QRR²a˜kZÒ=†¡ú§ú¾ Á—žžžvCpYÑëõpss»an²ÃÅd2y &ððð°ë`ãèèø›íÛ·»n0Ö¬YÃøûû¿> F£±¾U쮨®®~Á>Z"‘ ""bDå/]ºôÌÂ… nnn¶mVVNNŽ?Ã0C$ Â``2™nšQÏ Ã0ô™3g6)?þøãÇ7oÞÌ«®®EQ7næÍ›‡»ï¾?üðéÉ“'BÈó#õ»°âççw"$$ÄìááÑGÀ•J%Nœ8ÁðØº¯Þ0 “`±XJ:;;Û†‰2F Úh4¦:;;Û!gE­Vƒ2ï&Ö Ã:;;ŃY²ÝÜÜàãã3 Ð4íX[[›¸k×®#-W(~ØàááÑg{Ïlø|þ€žÐ¥K—UVV:ZÓ.Éd2Ð4=¢·6„…… îãÜÖÖ†K—.A£Ñ|0ÜëX#Õö§¹¹¹r¤uºÒÒÒ©­­mݱcÇÛï½÷ž¨¸¸,ËÂÇÇ ,ÀêÕ«ñðÃgÇÅÅÝ;Ÿ’w=åB,ãÇÿÞßßßÊ èžõ(//GkkëË£±úS£Ñlª¨¨mjjrÐét×mèfB'%%é=<}ؖ솆†§+++íî“H$Öè®vàìÙ³Ó<ˆææføøø|›ššªœ={öHºäõý=Ê€n£ÑØç-Å0ÌyyyÅÅÅÐétÖˆ«öCæ\¡PXëçç‘HÔÇA¨©© 'NœÀäÉ“ßpçP×0›Í=¿ìsqq™G Ã0N¹¹¹***æüüó϶{J¥˜1c†5égMÓoØg'¼ÜuCi/))ùyÚ´i+ …­(--ÅþóŸ]üoDd äääp‹ÅrdçÎhiiMÓH$#¶?ÝJø°råÊ?”””üîܹs<{ÐÕÕ…††Ã0¼þŽ0=á¹kjjz¦¼¼<¼««‹¶óð=[ZZŠóçÏÃÃÃC¹W l'„ c@¡P,,H‰““¦NÚ:˜SŽX,î°X,HOO‡··7íêêºÿÒ¥K g̘1¬œsµµµªÕê>àää„Ù³g«’’’l1Ó†¡jjjvZ±Ð4m͹70®úðh Bÿ@&ÈËËC~~~"MÓÓ !ƒÆö³X,áúXÁ­˜L¦Øk¬×UÉÉÉñß½{wÎ|àJÓ4<==áêê ,[¶ ±±±5NNN/Ø3 ¿7ááá÷,Z´¨¥¼¼\Æ0 ŒF#Ìf3²³³!‘HÄžžž €r©Þ’““ÃM&SúîÝ»¥555P«ÕÖ`¸C¦éþ_ÃÖÇ M°ë\c2™PTTDµ´´ÊÊJ´¶¶Z#þfÜÀ[ulòäܹsYOOûѯ+++ÑØØøŽ]ï ‚ >ŸÏ¶¶¶âçŸÆîÝ»qèÐ!œ;w§NÂ?þˆ={öXÃyC*•v †õƒ9·466>wæÌÊÞ8ÖÍÍ ãLJ\.·W@ddä1///Ý^x{öìÁ¹sçxõõõû³³³ì¼äädqqq1SXXHõ^(äïï—^z NNNۭۆᗕ•ý===Ðëõ6‹Å^ƒ•qÚ­‰ú£T*‘ŸŸK—.ÍAw¨i»tuuÝØ€††)Ã0ƒú|\µ"‘(ë™gžé³éâÅ‹øþûïÑÚÚúLIIÉ ýw5,XPýæý÷ßß'T}ss3 °oß¾°;wêŽ?n7²´=†‘ž>}úïååå?¦¥¥ñ÷ïßoKáÍçóáàà`pÃŽ&¶7 !¤³¹¹9%555±½½}À Á¦¦&0 ã6{ÆŒ©½Îk'„L€Ï?ÿœŽ `ŽÅb™d6›ƒ)Šêäñx4M§›ÍæÓ÷ÝwßUÇ^¥¥¥,)°à |>r¹Ó¦MSÌž={P{¼yój,X€]»vA¯×ÛV•) jæÌ™_[,– >ŸÿçÞCˆ;wÎlii9²wï^™V«µ…HsppÀ‹/¾ˆý½™ÍæÇ÷îÝëVRR‚––î[²¡i:ˆa7BH[ÿº]…)B¡ÐnÔ]–eQWW‡]»v!::úI†a !õ?N©Tº«Õj»FÀžÛp!ÇúCQ1 ³‚²íÓO?]ÿú믣½½]]]ÈÏÏGmm­ÓÙpƇ7Þxqqq›!ÄÚ3=õ}ssóšGyÄ–Šº?AAA˜;w.{ì1H¥Ò4· ÀaÆ3gÎ$~þùç»ËËËí.ñöôôÄwÜßþö·Û¼0RG›aÞÇÓ]]]ïoß¾Ý娱cÉdH$6‡ŸuëÖé===?U«Õ¯&%% ¹°êFñã?þ¹££ãgΜ5²@ °Æ EQpvvFxx¸åÎ;ïlsuuU‹Åâ.ÇÓét¥¥¥T}}=šššÐÖÖ†ªª*\¾|Ùv}WWW|ôÑG-„`2HvÞÿU¨þ–œ§?øàƒO;ÖGá€îõáO=õÖ¬YóÒ´iÓ¶ÞèÊlÚ´É¥¼¼¼u÷îÝtÿ5ò‰111øàƒ*œ#®¡èĉœ?þ_W®\AYYÌfsŸFau¹‹Å¶®+MÓðööÆ´iÓ°|ùò‡¿øŠbó ~þùçUgΜq¨¯¯ðùøøÀËË o¾ù&BBBþHy{8÷Î0Ì_;;;_yíµ×l«í!‰йsçbþüù¶„“F£[¶lAIIIŸØ½±¦F÷ññÁ=÷Üsð‰'ž¸¡Sb½îÅ À†¦¦¦çΞ=ËÏÌÌ„ÕןÇã!""k×®Õ¹¸¸lçñx¿³.íF“œœ|/€ÏÔjµÃñãÇQPP³ÙÜg)´Åb^¯EQH$ðòò‚uz\¥Rõy!±, –eáçç‡|ð+ggçW®ÕéVÂÛ¸qcŸ ÍÍÍqqqK/_¾ì×ÑÑÑ'U˜Á`€R©Dhh蚦–ËåƒÇ¿¾û””Yÿ·Ÿ@ @`` ~ýë_#**ê>BÈÀñA?‚ƒƒsF㕈ˆˆ)N´ÕËN¥R¡¶¶*•Êööž0a› zì±Çޝ^½zgLLÌ»B¡ðEBHª\.ï£ê›6mzW­VSÖôÐVàíí ‘H×L)jjj:#—˯Q©©©)ëÈ‘#–²²²™<2 `YÖvýžÐl‰Dððð˲HHH°ùn ”––²”Õêm…¢(øúú" €urrbù|¾±¡¡Aµf͚ϮV¯kA.—kåryŠF£ù.::Ú' `‚D"F£Z­†B¡@ZZ¿±±qfHHÈÿÕ××;©Tªr¹|Ô „ÑÑÑyÑÑÑï—••ý=..®báÂ…Ú7‰D"fY–hii±NyC©TB¡P ½½b±Édðôôd£££MS¦L©‰ÿWDDĉ‰‰ÿ‘Ëå·e¬=`&²¦¦&÷wÞöysòx<Ìœ9>úhפI“f!rÅ—‹/úüñǹ/^t¶¦pî]^`` –,Y‚'Ÿ|ò[Bȯ¯¥Œäädž@ €T*…Bž@ àËd2íõ(wtt´ƒÏRÿº¯¾úêªCF¯ýk^sss¼B¡óùücééé}º=³ÆþSZ@ À@»Ñh¶ÿÅhÀ0L<˲›322âsrr——…B–e!‹1}út,[¶L-‘H^[´h‘]ߎ›ÁÉ“'¥—.]ŠT«Õár¹¼ÃÁÁ¡0//¯nÓ¦M7e¨r+°+À0ÌcyyyŸoÙ²…ºråJ«²H$BBBîºë.Ëœ9sŸ 7oÞüTqq1ê«Ñ£AIDATëë¼¹0{öl¼øâ‹—x<޼뙻帵0 “d0þ|þüùÈ¢¢"\¹rÅ&Vg¡ÄÄÄ:@ðÐ’%KNÜêúŽ`f}VVÖ';vì@NNNŸä!R©¡¡¡ˆŠŠÂôéÓ[Æÿ‰‰‰_\­Àǡե¥¥ÿwøðá茌 ÔÖÖö‰ÆtgsõóóÃìÙ³ñì³Ï–óùüY½Çá·'=sï«»ººþtéÒ¥¨ÒÒR@¡PÀb±@"‘ ..‰‰‰Y,ËÞ»bÅŠÛʪ~»1¤Ã0/UWWoÞ¹s'233ÑÐÐ`ó³z|ÀÉÉ nnnpss3Êd²N‰DÒ ‘HŠhš6™L¦ñz½Þ§««Ë¥££CPYYIÕÔÔ µµJ¥rÀ”•««+BBB€ûï¿?M$­$„ ÌÊq[Ã0ÌÊ! åååÈÏÏGss³Mf̘Á.Y²äg£Ñx_RRÒme]¿]¸ªÃ0/šL¦¿|ýõ×¢ÌÌLäç磷§œH$‚££#¤R)œœœ ‰`Ímnõ ´ÕP*•Ðh4v}Õ…B!Ƈ°°0,_¾œ5kÖ'4M¿|;æ\ã> Ã$vtt|páÂ…Iõõõ¸rå a±X ‹¯›={vôºuëþç’kÞî K€a˜P;wnå… ™™‰²²2ôÙgµV[-ØÖßCÁ‰DÖ彈‰‰Á½÷ÞËxyy=B¹%qê8n —.]º³¨¨è‹ªª*ïöövìÝ»---¶øqãvuvv>ššzKòTüv“žÌª«, ÙZRR‚sçΡºººO 6{n¨ö‹Åpww‡³³3|||°xñbÍ’%K"„ì¹–›á¸½™1cÆ¡3gÎøJ¥R¥F£q¬©©Ðí³¡R© ×ëïqwwÿÀw·¶¦¿†ÝèÃ0²âââµ ¯ÔÖÖ†ìÙ³GZUU5` ­=¤R)ÜÝÝ!“É 0qâD,]ºô³xà©kª Ç/‚'NÄ477ï/((LMMÅÅ‹a0Àãñ0eʼûî»o/\¸ð·ºž¿$®Yìááá1ÅÑÑ1½¶¶vȨ+îîîðôôŸÏGPP–.]úÕÓO?ýè «ÇmÅÉ“' Ã***â8€ššX,H¥Røúú"!!‹/þ'ŸÏd4Ü—Ç274ˆaKKKæÖ­[gœ8qâò±cÇúĹïMkk+x<ÂÃÃáîîNÕÇ(ÇŽû[kk볇¦³³³a6›áâ₈ˆaΜ9í®®®¯øâf,%kÜð(¦/¾øbF}}½E«ÕÒƒú´[dôd~€³ðŽ!Ξ=ëÓÚÚÊäçç{>|J¥îîˆ€‡‡¦Nj Û à‘äDà£ÆX(ê…B¡$>>¹¹¹,²O]]233ÿSNNN̤I“nzÔZŽ[CSSSÚ¥K—<Ž= 777Ìž=fgΜùEQoB¸ça”-Pÿ¿½û mj½ãþ{Î99iÒ†wïM‹N:Q×U­2Éè‹ÝRÊZ+u\PÁ, Â6éî6¦x"Ãu0¸Ý‹âÝ»aÕV²Q°p©(^캚Rª¥íŠkckÿ™Øü;rö¤7IÿXïzrÚ>ß„$OOÎ9¡9ß<ç9Ož‡Œ1òz½ät:ixxxÑÂÁÁAºvíšTXXè#¢ïÛ·o] ¨ï¯££ã333ETPP@»w列œª¨¨¸çv»?{V}ˆd""Y–Ó¾òwìØA%%%$Š g3 ƒúúúèÒ¥K¶ö§OŸž1cŸ`íPUõôýû÷ç M|QÜ*//¯ÁÁŸ]¦€Ýn_p>¿uëV*--]tÌAÃ0èÙ³gtîÜ9ÖÝÝýyOOÏß|>ŸkÁ‚°!¨ªúíÄ|}DDTXX8W\\¼øœk`*SÀf³¥µü¹Ýn***Jç•6î}ª‘‘ºpáݾ}ûX$é÷ù|˜ÏmR%/µ³˜Ûí¾ˆ~k˜Ò B4uŽvÆ8pà ¯×[ÜÕÕõƒœœêêê¢Ì‘w‰ÞŽ=ØÔÔDÏŸ?ßrâĉ¯4M»˜¿  £££4 ±Ô.ä›7o¾fá.qÍ”cLÉœUG×õÓ§N:TSSóqeee¬¶¶–Š‹‹Ó¦ÁJzýú5ݽ{—Ο?/ŸÃëõ^Ù¿ÿ§ÝÝÝBGGÇ‚K…š¦Q__]¼x‘ªªª¼À³üüüψèï^¯7F°å¦¢ÊCÍÎB¦€a±Ô@æ?9Qÿ­Çãùó¡C‡š*++k|H~¿Ÿ‚Áàü‹‚Á ݸqƒ:;;éÈ‘#Å¥¥¥7¶lÙÒêõzbƾƒ¹ ÃH;ÿ`!³j‘¥&MåõzLj¨V’¤‚’’’ºÓ§O 844$<~ü˜hjjŠt]'§ÓISSSÆøøx4îonn¾Â;W__¾áë‹#c,€…L;ÈlXNb¨¯&"jòù|eeeûËÊÊ>"¢·ý“ˆþÆÀu/w©Ÿ!ûL " ¯¤°˜DücuwÖGæ 2`S®½O øa†˜1:jt2í(ͨàŸ óVs øÿ Y—H e«0/y °Ü@±¨€eü~?:Y Y—*> Q8FUÑB8KD"2 cÁ¼]¨€%’¾ªªø¦°j`‰do@MÃ$?V2«' jÜÕ«Wzû²’K>ÞµkW>Ñ×WÐ-ØZÙ vëÖ­Ã0 ‰{–r?_–,7 CH]&åñ‚eß§,sÉíg,—ùzˆ(c¹äÌ,ËÜæüëYgÚ~-µÝÌ÷²Ük—(_lÿ–Úæ‚×.±¾od``€TUM­ ªh!Ó õ ³‘‘‘?šµ-X¹d'œä7pj§œÌ²Ôû•–eþm±mF£Qœ¬Y©(ŠB+þ@½oyæßßõü}îWZ¶Ø2ßd}Ë-³’òw­w-…Bè ´F˜’$Q~~þü8::JDïþæÈ¼_ê`~×k`m0%DQìóx c #3A3A3A", ", c #414141", "' c #434343", ") c #656565", "! c #707070", "~ c #6C6C6C", "{ c #555555", "] c #6A6A6A", "^ c #595959", "/ c #8B8B8B", "( c #898989", "_ c #8A8A8A", ": c #989898", "< c #666666", "[ c #282828", "} c #505050", "| c #4A4A4A", "1 c #252525", "2 c #5D5D5D", "3 c #565656", "4 c #4F4F4F", "5 c #272727", "6 c #626262", "7 c #636363", "8 c #7C7C7C", "9 c #767676", "0 c #5E5E5E", "a c #5A5A5A", "b c #6D6D6D", "c c #535353", "d c #696969", "e c #8D8D8D", "f c #151515", "g c #858585", "h c #3C3C3C", "i c #303030", "j c #343434", "k c #646464", "l c #8E8E8E", "m c #1A1A1A", "n c #2B2B2B", "o c #949494", "p c #939393", "q c #080808", "r c #525252", "s c #1C1C1C", "t c #212121", "u c #2A2A2A", "v c #474747", "w c #191919", "x c #515151", "y c #454545", "z c #7A7A7A", "A c #575757", "B c #2C2C2C", "C c #0D0D0D", "D c #4C4C4C", "E c #232323", "F c #7F7F7F", "G c #1F1F1F", "H c #7B7B7B", "I c #202020", "J c #929292", "K c #363636", "L c #484848", "M c #5B5B5B", "N c #1D1D1D", "O c #161616", "P c #848484", "Q c #676767", "R c #3D3D3D", "S c #A4A4A4", "T c #9F9F9F", "U c #969696", "V c #4D4D4D", "W c #808080", "X c #727272", "Y c #585858", "Z c #2E2E2E", " ", " ", " ", " ", " ", " ", " ", " .+ ", " @#####$%&&***=--;>,' ", " - ) ", " ! ~ ", " {] @^ +/(_:", " <[}|1 23 4 567 8~ 9~0abcde", " f]aghij|k l5 m 5/0% n bo 7p(", " q rs t> =uv wxy zA@B ", " C@ DEF G%H I w b] [ J ", " >Kp G00krL7 EFt M- 6MHA ", " DNOA Pr ", " QNR < ", " ! + 2 ", " - SSSTUUUUV ", " _(gWWHHHH9==X!!YZ ", " z0 ", " ; ", " ", " ", " ", " ", " ", " ", " ", " "}; QSapecNG-2.0.0-source/src/gui/images/qsapecng.png000644 001750 001750 00000020557 11617757645 022421 0ustar00simonesimone000000 000000 ‰PNG  IHDR‘Kp}ejsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœíyXSWúøß$7{ˆ,‘°£ˆ¢ ˆ ŠÖ© Ñ"Öu¬–ñ;UëV©ÚêüêØ:XmíÔÚêØJQP(´Vö([UÈU Á°ïõžß’4"‹ˆ”Êðyžû$gïÉ›³¾ç^ BÆc(PGZ€1^~°‘à‚ ør¹<¬¢¢Â»ººšÍb±†††1K—. iÙØ±±±{îß¿ÿQZZóÁƒ T*F£1&Mšô†¡¡a8‡ÃY‹ã¸r¤å|†¤DgÏžµU*•^/J˜a€‚bP(&Bˆt„ÖýIG1U*ƒ$I:I’êO¬;ŒN’$F’$MËMEa!j·? !DEѺÃh@%I’ªR©0¥R‰uvv2d2]*•R) E¥RQººº «« ::: ¹¹ôôôÀÞÞ*** ¨¨âãã—-[– ÿÙê{6†¤D­­­á¹¹¹8I’@£Ñ@=P×þ|V¿¾â¨Ñv÷õ½¯°þòN!??:;;Á`€±±1°ÙlMx{{;xyyÁ†  &&®]»EEEð¿ D---ÀápÀÄÄäEÈÓ+CU¦g‰ÿ"¾÷æ×ÑÑFFFÀårÁÎθ\.ttt€D"‰D ::: ¬¬ jjj€B¡Ô=UR†¬D!À0 =ztl¦×ƒ”””Ù_~ùez}}=L›6Mþí·ß2;ÆÐ××ßÙÒÒò~^^ÿîÝ»PPPmmmPWW†Á«¯¾ :Òò?+CV"’$_„£:É»wï–À'AüËÉÉéò?þ¸ì×_…††ÐÕÕ777°·· ÇñÈ‘”{0 I‰B”±ÅÊþa0Àápniûã8N€¿žžÞ¦ºººµµµµSh4Z ŸÏÿÐÙÙ9v$d}^†¤D*•Šò¢­¨["6›ýcoá¡ðu]½1¤qŒJ¥ “É*• üe¤e.†¤J¥rL‰úJ¥Êy<žz¶5jjKD{Q‚ŒFØlö¡P!8uê”ÑHË3\ I‰ºWÿÐÅ»— 6›]gll mmm+FXœacL‰†Ç‡ÃQÐh4hooŸ;Òò CíÎÔ³»ÑÝé:.e0PWW‡´,ÃÅXK4̰Ùl ‹Å‚’’k‘HÄiy†ƒ!)I’4€1%ê}}ýÏgΜ uuu”ãÇ·GGG!‰þÐY­““½¯0wwwÃþÒþôÓOF¡¡¡söîÝËî+ÎP["p‡ %¯Ñ •J=µråÊãÞÞÞPWWG9|øð;ò„„„ á.› G‚ Ú †Ì××Wyùòå¥Za¶999ÖÖÖ‚ Ê ‚˜ÙíOOLLüö“O>‘¿ÿþû(55õQaaašJ¥ê“ÅÅÅy¦¥¥%]¹r…^]] R©˜L&°X,`³Ù@¡P€$Ihmm…êêjÈÍÍ¥GEEýýµ×^Ûâíí½zõêÕ_H¼¤dffK$’Ȱ°0û÷¥%¼ùæ›u8ŽK‡³l©TÊV©TÀáp2&Nœ8K$1&MšDà8>U*•6¶´´€L&kx¬$>„I“&É{*Ð;wØåååŠeË–}ݳŒ•(44ôÜ™3g6Ü»w¤R)°ÙlpuuE¶¶¶õàª@ 8ÄçóeÅÅÅ»Z[[× ÙPVV!055…;v´Í›7ÏÇñß¾ùæ›U%%%h4Úíýë_.°‡ ˆqééé©_}õ•CQQ”””À¡C‡V¶··OÚ¾}û+}••™™9¾²²ò»„„„W|øQ__O‘Éd …x<,\¸ÌÌÌT³gÏ®uqqÙ‡ãøÕé)ŠŠJ¥Â´iÓZ×®]ûYmmí{Æ?ÿüó—r¹üB”JåîètsssÀ0쉥.—{RGGç]‚ ŒMLL¦>%¤ºÒz^111¯M›6 a†0 CB¡EDD4ŠÅb¾:Α#G*Ö®]‹víÚ¥ÒN+‹)©©©IÚé'L˜€ÂÃÿ뭬ììlÇ 6l6ÙØØ ___òkPPPµ§§'²³³CB¡”õ%¯úºtéÒ+l6a†ìíí•ÅGÁ­[·Þ™0a‚FV Ãyûöí¿^¼xñ“M›6uyyy!;;;4uêTdccƒ®\¹òEoy%''îß¿_æîîŽf̘6n܈bcc¯‹Åâ)Ï"‹ö•žžî·~ýzÒÒÒyyy¡•+W¢ààয¾úêÔ©S§OŸ>ýù¡C‡Ú-Z„,--ƒÁ@NNN¤v!!!Ù¦¦¦èôéÓÿíþmxÛ¶mSÍž=½ñÆJtüøq†:þš5kÈ7¢œœ{í|"##7ÚØØ èè覞rö*|\\ÃÏϤÓéÃ0Äb±ÐöíÛI±Xü BΟ?Ï>vìØ5???äããƒ/^ŒöîÝûèûï¿×T”X,æDFFÖq8ͳpáB”••õjÏòöïß/c±XˆÍf#///o¥ åûøø™˜˜½É«}íÛ·¯UOOa†ø|>úüóÏO<Ë6oÞ<Äãñ4²nÚ´é‡жgÉ’%¤™™Â0 999!‘H´E¦ÿïÿ»xÁ‚Çq´dÉtùòe‘X,ž8Xåéþ»ºº"‡ìííÑ»ï¾ÛvóæMÝÞâ&%%}¼jÕ*Äd2‡ÃAÚa_~ù¥ÈÑÑ9s&Bí—ššê€\\\®®îñ÷íÛ÷ÛúõëQHHˆL,ÓÔþ}ôÑ)S¦ ¤¤¤«=Ëïu¨¼¼<)99Ycµ¨¯¯ÞÞÞ±8Žÿ"‰ðGu\½zõµÒÒR¨¨¨€òòrHJJ2ÊÏÏ/úñÇ?Àq¼sÊ”){§Ný½õËÊÊ‚œœœ‚ 4Û$©©©‘‘‘ ¥R :::`hh(Z¸pá}uø[o½Õzøðá¥Áegg›ëÌš5 :;;!!!a[iÔðx<—ËÕ¸›››÷i‡;;;‡|øá‡»Õq*++!==ý0À§Ÿ~ê,‘H*ÃÃí% LŸ>]~øðaËåË—Ïë9@}‚0;vìØÇb±¸\.,]º´øÄ‰:½ŽçÏŸÿþž={ÞôððxÂ\™ ª•••¥……‚9ݳ+ðôôLݰaÃI:®9¥£F 8Œ?I$Fll¬ôÌ™3?†††þ§¹¹ùÀãñ>éY~¯JtñâÅÙ]]]÷äÉ“a„ » Íœ93×ÇÇ,,,€Åbžžøúú‚‡‡Ç#KKË$­¬Â-Z¤hçÎÈ××­[·…‡‡è­©½|ùr ƒÁÐägbb‚RRRŽh5·o î®.òðð Åb±YoyíØ±Ã­¯æ_,S·lÙB#±X|"((ÑétÄf³Ñê>ZÔ]UÏ.AûZ²d‰Ã0$Ð믿ŽzÈ ˆ‰‰¹µÿ~4þ|„ã8ò÷÷WýðÃÿxÖnL$í²³³C†!KKK”˜˜è;˜n0;;{Ýþó¶ß¬Y³ƒÉc°×S-Qiiipcc£ÆaèééUöŒ·nݺ¯¿àóùàììœx¸·Èøñã#X,–ÆÝØØ¹¹¹ËÕn¡Pmhøxû¦½½ŠŠŠ(¨¸víÚöžy?~<»·2ÊËËvuuQ³pßáïïÿƒ‘‘( ˆ×#¢_£0ƒ!¥RW‡RÙûée‚ ZZZ0‡à‰©0ŽãõK—.u pùÛßþVàéé =¢þãÿøpóæÍJ‘Hô×þdÈÊÊÚ'‘HÀÜÜÆ ”FWW×o7mÚT¯íwãÆ ù`ò,O)Ñ­[·¬µûU ÀÅbö–ØÁÁáƒàààä¹sç¾ÓW|>?‰Ãù}ƨT*¡¨¨ÈXí^¾|yãîÝ»ãtttàñaÈäädÊÎ;?ûç?ÿYOÄ”g¹‘âââ=úúúÀf³?044ÜðÊ+WÊÊÊ ???¼¿ô £MÝ‘$ AAAKµÃ ‚`766þ˜——4 ŒaÊ”)§zË ÇñÛ+V¬°Ý¼y³ûæÍ›ëq‡{÷îÑöîÝ{ö½÷ÞkIIIqë-ÀÝ»wõÔ=úäÉ“eÏ»–ôGò„A-//b¤…aÐh´Û½%Æq¼Çñ8Žßì«GGÇí+@EEÅë...‹ƒƒƒ ËåPRRÇ7سgOQ||üÇýÝDZZšS}}=[WW Ejw¹-žžž 4 ZZZàÚµk^A°úʃN§·¨["©Túwõw‚ ÌÄ'Nœ0ïìì}}}ðõõ%Þ{ï½ýÉ…ãx¶³³³0((hW@@€jêÔ©žžÎ߿֞ªÓììlžzÀÝÝ}ضC^$=Qsó“ Ã@.—ç¥÷„»££ã åÅq\…㸃©©éߣ££¿HOO§455Akk+¤¦¦BIIIðÊ•+7Úã8.é™iié÷>•J‰¤8::ZL§Ó­+**ôÕ ˆYYY”ÆÆÆ=ðQo2R©Ôfmƒú”””…;wîŒe³ÙæÕÕÕ¥¥¥”ââb066†ÿû¿ÿËðññ™ý,÷Þ}¾ì8—Ëý~êÔ©á999s‹ŠŠà³Ï>›ñí·ßªÆgt÷îÝ:&“iÕÞÞ! P(0qâÄGÏRÆHó„á8Ž˜LæH’…BÑC ç)Y Ãz5@Z½zõ—'N<»téÒ̰°0‡¼¼Àq\Ó”•••J¥àîî,KÅb±²‹‹‹¯½U,î]»þÐYÝS-‘‡‡‡jÅŠWÕk6UUUPPP ^«éhnnæWUU¡ììl”‘‘YYY¨  µ´´0kkk5ƒf‚ 8ñññšµ¯¿þz­vy®®®h4ÄÆÆÂ… ¾½~ýú~uØ•+WØÉÉÉ5MM'cžžžàîî¾ 555)99ª««ÅbõÛÿóùürõI’ ‰(åååÉÝãhnn¦«•B¡@qqqÈ€µ÷û}Ò ÆëêêBcc#ÔÔÔ@]]]sUUUýÀ©ŸfíÚµ»·nÝZieeíííÃ9zô¨<**jA/eOŠˆˆ¸óÝw߉DÐÔÔ'âyÊ}nú؇âûùù‘L&a†˜L&zûí·Ú¦Ïr:t(kܸqš}3777”’’²¤g<RWWÙÙÙ¡… ¢uëÖɶnÝzÁ‚ÈÞÞ …B4wî\”ýßî}»ÿ7}út¤6UñôôD¹¹¹Kû¸Ão¾ùFª£££‘ƒÍf#tãÆÛ™™™ÃÂÂöYYYi š5k w0÷{ãÆüüüH„ã8òõõE.\ˆ¸|ù2k°ûQ—/_f={6Ç×× dgg‡\\\ŸŸŸê“O>©¾páB~hhh{pp0Z½z5277G\.-^¼X&‹¹Ã¹WÖóêõ´‡P(”YXX”åää,«««’$¡¶¶–:{öìyR©ô[¡P8àÈÿÈ‘#~gÏžÝÕÐІ††°mÛ¶;o¼ñÆ®žq9NË„ æ0 zSS… Z~~¾ŸÏ[[Û®wß}7fÍš5Kf̘qàã?Ž),,d*•JàóùÀçóÁÌÌÌ‚J¥^ …O4ù555°°°¿655±åòÇãY&“ ÌÌÌt †Ï¯¿þ:/77—&“É€F£¾¾>Œ?UUU9¬X±â™wâ-,,Òlmm¿vss³ë’’HMMÞÖÖ¶ËåÒ¬¬¬®?k^¶¶¶Êû÷ï‡:;;gx{{ëÑétc:ŽÕÖÖR¯_¿®sýúõñ••• …B\.-X° mÅŠ—Ž;æü‡Ÿ¶éOÃâââlll4»ùŽŽŽèÓO?-ë¯E‹Åú{÷î[YYiZŠñãÇ£ààà?ü2’—X,žQ¸nÝ:ôÊ+¯ 777´{÷niBBBàHËö¢¯~—G½°°0ëÈ‘#3ŠŠŠ€$I011gggdllÜÌãñ>Ÿ•ÃáX·µµÍ¯®®6ÿå—_¿ýötvv…BX·n]׊+\pÊFg´#‹sss¯ˆD"ËÂÂB R©àååÕäååõ—E‹Š_ øÌE‚ èR©ôÄ™3gþ~õêU¨©©&“ \.¸\.P©TP(ÐÙÙ ííí3 °¶¶†õë×ÿ2gÎÏá>óg'55ufaaaTVV–Q^^tuu³³ó…°°°µ#-ÛDólsþüù[Ë—/W©Èz^t: )S¦ ???2::zÃH7µ¦+%%…õÅ_4ªñVVVä¬Y³mÀÿg»žëé¯öööT@póöíÛîÚk+, &Nœ666èÕW_5|ûí·ŸkŠ;‰?õ·;wîP 888¨‚‚‚f988ôih÷²ð\O½{÷. 3ƒ‚‚T?ýôµ¶öñÒT*…ŠŠ °µµEîîî /RЗ•äädÝüüüªèèhN÷x¼½½¯™™™­Çqü¥yj~ éÄl6›trr¢–––Bii) „ ££©...Õ*•ÊÚÉÉ©càœF/íííq‘‘‘pppxàææöÇi¹^$CR"¦lÒ¤IÀãñ ?? ´¶¶ÂG}dÔÒÒÒ —Ëÿâææ–ú‚ä}éÈÉÉqjkkssóÎÍ›7?µñ;Òó‰0 Sèéé···ÜÃÃCcÅØÙÙ !!!̃^ÏÈȸHÿÈûÒÑÔÔ„ðx¼¤â¾¬ U‰4& Ge®_¿þðêÕ«‘……<6#INN†5kÖ¬ÌË˓ܾ}ûåŸÎ’ÎÎN •J})L]Ÿ‡¡vgO¬ý¬]»ö‡–-[v,...(##ƒ!‘H ¥¥Þÿ}öÚµkÏß½{×[©TnÞ´iÓKñVÁ¡ ‰0-%*iy†‹!)†aOÙ^w\m›?þ6‚ ¦ÀT•pýlÑÑZmL£Ñ FX–ac¨J$ P(½.6á8^½žYû_!$Poú@¯Ç®FCÑh´±— €ÚøÓ¦M£vL4¦Dà I’Ðó ÂhcL‰†„¨-3G+CR" …2ê_Ãô"ÐÞ_ ù°jÛ夤$=…BAU*•T¥RIU©T”î÷ÃSÑã÷ÈSI’T¿?ž‚¿OžŠ¢µ‡›¢í¯ýÙý¢õ]ã¯åî-œÒ#¥§Ÿ:^iz¦WûõÌCãf2™fr¹¼Ï§ŒŒ^ˆ‘$IÉËËkT[¨Þ¨ÝÚfÚþ}Åë/méòë™ooŸ}É1_Ÿííí£þeËCR" …¢400•J÷îÝ€þ+ôyÛþyÌ[† ™Lö§’g8µo“^¼x1“'OÖ¥Ñh|*•ª:!.è!ÄAqBl„Ø$I2B,„ú“¢w»é!:I’BˆA¡PxÀQ©Tl¹\ÎP(ÔîK£8¿ýö”——ƒL&µƒÇQ«D#É•+W&755m‰D»ÓÒÒ(‰æÌ™ãþÎ;ï<ÒßßTØ©S¢DTT£©©©¢½½Ý°ªªŠR\\ åååPPPJ¥¦M›Àb±€J¥ƒÁ õôô’V¯^ý—‘–}¨Œ)Ñ äÒ¥K‡òòòö$%%±)éhàIDAT2™ H’’$J¥Näàà@zzz>äñx{ßxãK#-÷PS¢?€¨¨(†¿¿ÿ°>|s$S¢LTT­««ëç–––yJ¥S*•’$F£FC C®««{:00ðÝ‘–õE1äu¢1žÄßß_õý÷ß7µµµ‘W¯^©T J¥èt:b2™€ã8eΜ9µçôò0Ö1dÆZ¢aäøñããîܹÓÔÖÖF122’ýõ×ÌS½|ü¡oEþDQPPyyyPWW7¶Ø8Æ}1Ö1dþ?C#K,|ËIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/open.png000644 001750 001750 00000012550 11617757645 021553 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ/IDATxœí›I“dÙ•×w|ƒ»ÇYY™%©J*ÑjUSê¶65-´`Á`°`Óf,00c kv,aÇGàk°ÁØ`€Ô*©Ô´Ô*•jÊÌÈÌȘÝßtG÷yD(3K™U2ªe}Ìžyxøó÷Þùß3üϹÇá¯å7RÀÞóœ(?å>í÷røÀm@ðk|Æø»Àò×uƒ—oÿø;<§òúSÜLÍ7ü ÄOq½—a´ZÆ”ÿ~Îé_*©¾'ULùŸåœoæœOÿœ0óë)Ÿ€ŠâW'×þ€W€/Góû HŸ‰ZW"€h›Ó~e~½-„øðí”ÒÛ•5¾²æ[Z«'¥¨ÖëAùÈ™w2ùÿ‡Àü ø¯@ÿ¼ì0i« v/?ž/üY+¿•<=pF±>·Z4Úý¯NÎÖ¯}éÎ+¼ùÅÛ•±ê–’c4Óäyï£î?:Ñ!Æÿ2÷6ð.Å…³zÎh)|4¿W€þ)ð*Å2*ÀQÜ Z_“@x3ßëÞΪ½¸}sïß<>9ÿÖ[{üÞ׿‚2Šœ3•µ,šc48>_/¼?ž¯óðŲüóZ€^þ-°¢¬ü>%Ø,€?:à|~ÈáÚÑÍÿ»˜??Öóg%~ŒÀ ʹBŒóÃÆœóu«J€»uc÷•¯¾~û?þôwÿÉÞÎ’ßýú›ŒÎ#X£±V³lk”’()ypxº{w˜~?ç¬ç{M”…J/À>ð!ÅÜ«ýÅ7Èâ+-UeÍ—|ˆQ`M|„ 1‘R"çLL r&åLÎ$Q”k»œ™ry¸žœ7À(„¤”½’r‚è–‹¦ûêëw¾ùá½Ã´\´üá7¾Æä•Õì­–¼rcçµ5¬-µµüÖw8<>}kœ|þÛ¬¼ã ئgEò^±˜Wí9çäC<­+û¯ßüÒívÑÖäLY«‘BB1bL!ˆ1¡”$#èº^ÎËœ² 1¶1&ŒV “Cˆ11Œn 1%bˆ8ç9:=ÇhÅïÿͯ²ZÖ„³ «Õ’½VköV †qBJ1šÕ¢¡mê·ÆÉGà?S‚jÄë´ÀÛÀoSXÔ’âç^!¥¯²æÛ;‹ö4µ=¶Vß:>]×R ì|“u7cFê̲­ÉdÆIt¦­,‹¶arŽ |áÖBJœŒã„ÖŠ">Úº&挂n˜B ¸È©\[*…1š»ŽX¶ ˶fQ× Àh…Z´TF£”¤©+ŒVí¬¢¸ðé“.Ðÿx ¼|ø=à­œóÛ)q'ÆÄÙ¦ûݘq“¸Øô¼÷«EÃβ¥® RHre¨¬eg¹`g “ó(%h*Ce5ýèX´5•5tÈ@†œ¡®*”ä !FvW-ueñ!’R"ÄÈéy‡ÑŠ:¥KŸWJ!„`gÕ"… …Àã³ ^½±GS[&ç¡P3/¶à g?˜Ñù9ðßç“ÿ¡1úß¿þÚ­ªšM<åÄ΢ŅÀ¦¸ØôH)ñ!à}¤²šÊšº¢m*V‹†×ní#¥äæÞ˶&ĈV nîí …ÀZC×øP\Gk]ÌYbJÔ•¡­+¤(%ypxÊ49nî®hÛŠ"GçšÚ"8ïq>0Mà×Üý™AP‘¿øÅ=¤h­PRRWk {ˆ›û;¬–-·öwh늦¶­°ÖC$‹Œ@âB ë‡ò™1^pz¾aœ9'ºaÂèÂV‹æÒ=âøóYñ‘Ÿ S¢ršO裕¬VÖ蛋¶Fˆ¢êºBIIJ­ !&nÌŸ`Óõ„ñ!a­¦6†ÑybŒxéû‘‹‹ ï~x@ΠµÂèbÎËEÍβåæîŠÛ¯ìsûÖ ´­æ +Øß]òþÝGœo:v— êÊ¢µâì¢c˜RB?:RJfëN”´ìàéZ`Ëçã Dˆª2©­ªóÖêÊÐT¥$•µ—&šRBHÉä<Ãäð>°¨k¤–¤˜é§‰ ,š­$PJa”DKFÒu.6ãäéú‰‹uÏ/>~€÷!JÀµF#¥dµ¨±ÖppxÂÞýˆ·ëuöwV!øÒ›()ijË÷ÿì]RÊ)ü#ϯÏàI0reÌÅβ½X÷B@SU4•ABÐÖJ)bLôÀ5šÉy*kp. €ªÒ R”È€¶®H)“sF A£¯ÞØÅù@¬V¸ !2M³?Oð%Ž“ãìbÃ~ö!޹±»â/¾Ê—îܤ©,˶álÝ<˜u»°á/àRŽN/Ü«7÷RÊX£'W"ô²EH)Ó#Ö&_ÑjÑ’S"7™M?",ššatìí´„§­,ÆhêÊ“eÓw(!±Æ²î.6Z+¬5XcH)áC@H’n˜ðvW-o¼v „àì¢c½éY457÷WŸc¼;/ª›üÜÔ•¹cĹP”ÑXkð> „`Õ4ôÎÓ6ÎyÆi¢²†”2m]a­aœum‘B¢TF¥DÛÖ()PJc4hµÄy@›,V+”R—.câôÜ1Ž…íY£¨+‹RŠ›û;H)Ø[-i› ¥$]?ÒSÈ¥b•óʇÀ}n´¦ëGvV vWK¤( -猋‘º2ŒSF¨¬Å‡€’’"Ý0ÒT­.ŠÊJ¦Éc­&„ k4mS0Mž¶¶TóʆX ’’³õ¦p2ueH1q¶îÙY4¬– Vkš¦âôbÃ8¹5Åïå¼úa«×s0Œî¡”‚D \ëAÆZMSY†Éáœ'åL]YŒÖlëƒ#1e´’¤˜J· ï#£sL“cwg‰”’”J ƉœJ¤wγhj¼ 7vWT•ÁùÂ9¬9gÓ HYãùºãöÍ=M…saòG9ç#®²Ü%ÏÝ/Ëð6:ãÄÑÉÃ8±X´cé†qÎË£“ œ^l˜\‰!¦Ëô¤´bg‰’#Z•Ü~¶ÞÌä'2Œ#H9ã|`3L “)ð3ÈJ)6Ý@ΙE[€eSØ¥”!㜉bŒ)Õhäª|1 BÜo*Û9çWV+2™#R šº"†X*Á”pÞÏ,N¡¤¢2šÌ°¯º®Èœ÷ì,SÔÞjIe ý8|BHÑ3WqJJBL4u…‚~˜Øt¶ª¸y㋦"ÆDšKñÂQlI•1rz¾¡ÆHá0÷¸Ö±zn 8_w)Æô^Îà} Ï•™R²”µã@7NH!K°K™”‹‹ £+Õ[]á¼§Ÿ™ãõ§Öh\øó Úhs*›œGIÉäJ)šZÌÝËþî’#)e_à|àõ;·Øí[FçÆ©Ë9Ÿ1·À¸_€e[?$2Î*SRÖŠÕ¢)Í‹˜s(µ}B ÛBƤ(•š¥5M “s,›–R b(Áû@J™UÛ”ÒAÊ™qòÔ•áÖþFkúqbµl¸Øôh-yxtÊz3QÊàgðB»&ç›þ¢ý0¡”$ÄÈf¹è†¸dYU©$•5ó Wd2ý0²h‹–jf€ÎÖs «¬Áy²@J0Z£µòÜ87rvvŽ`µlY´5ãTèwédÖ›ã!W5À¶iûräÌ­Ñ®'¤*Š_TÖ–¼"Ö”º ¦Äè<“ó(I+¼ó„ŠrFÑÖÕ¥¢)g*chk‹5– i«çâ«ÄX¶ ;‹)!Æ9»$6݈ÌÌÓC|ÌUàû¥øÂH!îÝØ[­§ÉCï#]_ü¹²…ÅY­Q²´«BˆX­gÂd¨ªšq‰! ¥$„@ÛÔ—¤ÆyÏ0NøàK35g¼è¹Ð'Ç8•þB?Œ(%1ZC.m0)«eÃjÙÒ6!RÎ÷çÕ³¼<ý8]TƬcLʰ¦ŸœséžäD7ŒÔ•B‚V²45Rb¹ZѶ-!Kô!0ŒÃ8‘bééÇ” 1±îz¦¹wж UeK:Õšar—‡VŠÊn­G#€ó‹Ž³‹>Qö2¶|3Ä”»~»«–$µ5ÄxÕ² !0:‡VcÝ0"…dLï=ZkôlÞÖ”Ô7Ž¥¤æÖÚÃÇÇ(%‰)Í–ÃU;M+.6=J ÈsÛ}®CŒx¸Ø òWï)ÿ‡²Ið«DP:¨w)Á¤u>üíâïl†‰œ2MmY.jkR\¦1¥Ôe%¨D1m(éËÍù¦'ÆDÛV%oÏ^ˆq”Tä\¨w¥rB(n!¥DHA3w—ï=8¢®-·öwøàÞCŽÏ6ß~8+Ìxn È3H’ÒIýÀCàk!ÄW?:x¼÷øäÜÞyõo¼v‹Woîc¢ %5n«;¥T!D¶”Ä›ad1§¿œJ !¢dQÐùȲ©hê „`œ&’Î,š†0—ÌBÈyoÀâ¼' !Š›M>0NÈ÷øå ðÔ®õódíF¢ l-=ÞÏ9½£¤t!Ä¿ñèñÉWŸ¿Ù6•Þ]¶¼rc‡;+vV‹¼‚Çš -R*jkgeËæ€Ñé’D ›~¤ªl™Ž¨ªËt¹eƒZ• ‹ï;ïÑZ²îFv‡‰~œWø—Ú`/ ÀÁ톂åÌÃÓýÓCŒÁó…œótýøÍÃã³/×ÖŠû+nî­ÊÆàC¤­+vW RΤ”§ %KýSbœ„3ŠÛò«xÞ ‘ë’€·fåïSænÎ7 1¥~rþÃÉùH!¾kŒzßûOÎ×»'gëúøl]Š¢¶!†PZÜB0yÙô,;Ά9nâ|@iE[[ôLxPÕ–¡/'AÎ.:&çÉdÏ?¤ìm”xÎKdO’7æ‹n‰ÆWÓ!sÎ 1®Çɽ7yÿˆw€{9gu|z±ûþÇöñÉ!Ægt¡°Ûm·ÒrË´M”M”8[ÌÖ}|s‘US[C?Lœ­;¤œœ¯JÉóó=•> ;³²=W£0žÒp¼>3>çìCˆ§“ó?q>|GIñ§J«GÎùúèôbÿðèL®» ìí,榊.Áù¹¹’ t¥9jAKAÊ%`z_z‚G'çøè†é”i°Ó€îYм,Í5e'®í´p+¦ ë`„”’Ÿœ?ì‡éG>Äï£ÿÌju>8·8>]ï<:¡&Œ1ìí”c­dÙ]‚ª²´uUèõ¼eÖ Æ”Tzx|Žó!9þ˜Â_Ž(3Ãg €žÜîµ=3Åp•A¶`læc¤Ä‹iœÜÁf˜~˜Rþ®’òÇB0uô¼wp¸¼ûà1Ý0¡$¬Ú)%m[—àÎf»¿»D+EÊ™ƒG'ôã4¤”¿ÏU Þ2ÂÏ €­ÒÛNëóLˆnϽF7¿>Ä~˜Ü‡Ã8}_ñݦ®~Žñèä|ïþ£ãúð¸˜vNeÞHJ9Ïþß6Îî>8¢¦à{”8u0¿~fY`«Ìvxñeæ·Ü|äÊEz`Ê™09±î†÷ÆÑ½cŒú^eÍAJIŸ­wهǧôCiÀ–!ŠRr§”¹÷ðˆ~œ(œSÜà”OX¤—@\Sd ÄËÊvãÉàéRJnœÜé¦~2:ÿÇJÊ?ÕZi)ë®÷ŸÈóMGŒeÀ¨®*î?[›Éùíx߇” öŸáó Àu¹žIºkÇ”sv“óݦß÷!þ 9ÿ0Ã×(?šØZÑš?Ó,ðÿKžL«[0\ÎÙå²ò¿CqíŸSÆzÅ•¶×/Ôø¼Êˆ­RkJ®ß§L‚ߣLƒ^PÜà!4=÷Å7G?DzzØ>ýøŸü2A‹¥%Oèü›ÀuÑÀ{ÀO(›‘bÓ|<ÅXÿªºÀ'I¤Ÿ ð\¹Èv[|Ë[.å¯ZüU"(\á‚«ÊÔR:ÛOl—ò›À6dJvØmOðye‚/+’«ßl;Úš²ú#Ϩ~ÓØþêe«×6êo+ѧZb/À‹œûYÿjìeåz–{fÑö c #4C4C4C", ", c #515151", "' c #6C6C6C", ") c #6E6E6E", "! c #636363", "~ c #5B5B5B", "{ c #777777", "] c #797979", "^ c #707070", "/ c #9D9D9D", "( c #343434", "_ c #353535", ": c #565656", "< c #4B4B4B", "[ c #393939", "} c #717171", "| c #4D4D4D", "1 c #555555", "2 c #787878", "3 c #5E5E5E", "4 c #7B7B7B", "5 c #474747", "6 c #757575", "7 c #6B6B6B", "8 c #606060", "9 c #535353", "0 c #898989", "a c #919191", "b c #888888", "c c #7A7A7A", "d c #5F5F5F", " ", " ", " ", " ", " .+@##$%%&* ", " = - ", ";>,')! ~{{ ]^^/ ", "( _:&<;[^}| ", "1,[2345&627{ ", " 89 4 ", " 0a+0bbbcd ", " c ", " ", " ", " ", " "}; QSapecNG-2.0.0-source/src/gui/images/font.png000644 001750 001750 00000014732 11617757645 021564 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ¡IDATxœí›Ùe×uÞ{8󪪫²»9ˆ4)‘ÍH¢HÚ’5DT)–#†…H^'H§ oy ¼ùü˜G#ãØ‘iG’QmJqR³Ù]=V×t‡sÏ´‡<ìs»›Ý¤ÔMR†x5Ý:çìo¯õ­µ¾µ.üÝúÿrÀävÞ(?ä>ìÿÿ*ÖQàŸGÁ¯ðSàKÀàWuƒ°þ3ð›Üææõ‡¸™êox¨Øq½ºD¤ÕÀ:ÿeïÝ¿TRýPëü?õÞoxï÷€} ¢þë>ào€„àW{7ü·€{€þçpɶ®/d@lLûPÿõˆâ.à×s$qÔ%qô¤Öê?H)’ù¼R1xÏsÿS`¨€7€?–· Àx¼ÿ§Õ;` Ü ¼Ú_ø£ÞüjùþµÖ׋LG‘þW{ócÇâ¾»$Q¬6•”D‘¦i:~~ö"®ìicíÿîÿ÷ð&Á…½ºÍÈ œíV@ | 8L°Œh nà?Š]ß° àE¯ó£a>;²1ù7W÷¦OÝœðØC÷¢"…÷ž$Ž)²”(Òx`w:/ºÎ¼Ú_çp†`YÝíZ@œþ=0$œül à%0í²ºáUö¿›õßæýßÔ@%Â{K„¨û‡µÞû­ÊíæúøÐý'Žü××Noý“ÉhÀ©‡î£n;„€8Òıf§(%QRri{¼U5ŸôÞëþ^ á Ü°¼C0÷dmT<ŠÿPi©’8:Þ‹Vç¡3c,Æ:œsxï±Î÷8ïñ‡ÀŠpíÖ{n‰÷  BTRÊ¥’²‚%PЬ¼ÿÄÑO¿s~û«ƒ"ç‰G¤é I¬™ ZÑv†4Ž9ióÀÉ£lïî?\7¾Óo¾å& X…÷bò¥¢èOíyï½ëŒÝO“ø_ßwüH^ä)ÞN ÖH!1Æë Ö:„XëPJâ”åRVm'½ó‘±6·ÖiEÕ´Ö:ªº]…uk,mÛ±³?%ÒŠO~â~†ƒs°`80ÄZ3Tuƒ”‚(Ò ‹Œ”­JJÒ$&Ž#&ƒŒµÃAÎæÚˆYk/ªQËõJðÎB\È’¸lÛnk…Çã¬EJA–&XcC%èm×õYœBIEi¼÷8a}<@8ðÞ¢•D)Él¾ Š4Q¤¤ ‰O0]GÛYtomUÓ’Ä­$q¤qÎsa{ïü•N~•çÜMÓnOFÅîÖÅ«CëL×¶LFœ©ùáó?áÙç^àÈáuÆÅÛ5¥¨›Ž4‰hE)E–Š^ý‰Y0Öâœçê3œ8ºÉx™S·UÝ”Þûz ŒðŽäÉ^ðs‹ÃÓ¶†$ !HkŰȂxa¦yšbC"XT /þì4§N=ÂSO>ŽéÖ'#F£Æ´ìOgYLiº®%Ò I’"¤ÀyÏ0ÏBéLøyÌæÚˆHk–uÃp1[,ÑZrygŸù¢Ú!”Á€éby Š‹´jsŒµ©».Äy­h» üÄZõ%lLÓu¼òÆ’¬à›ßü-ŠÁg✭ÈÒ­#¼÷D‘FHAšÄdir\e¯¹µmͲjèŒE«˜á §ÈSê&¤ßA;ð̵Û\¯V¢íµuGm#ïy5Žt»¬¤ õyI‡¸l,qBŸuŽº L}áʶ÷øÒ?Ç H±¶ccó“µuÖÖ7Ñq‚”­I1*ry† ¤ KCñxyƨÈR`¬ d싲F ú̳Ã{•ëÄ÷.¼c¤ç×'ÃyÓtà¡ë,å2T‚I¬É³”Xk” r•1Ž$Ö”uÍg.òÔ“Ÿá‘?ˆ5ÞÃ_xe¤ùÅ|Š5­Cú,„¸VfGZc­£nZê&è ˪F)I¤5ø ƒI!2†ƒœÝ¥©Jþü/¾G×uŒG¶¯\âà`Î|>§k»I¶A/Xõ¤ õD]7,«†ª®{4HsÃ"¤À¶ÍZ*ºÎR5í>¡ó¾ü2X#¨Ãž (ž?y÷eÑŸJ’âÃC)¤ D$¥ÄÇëo_àSŸ<Åc§>dz¶¾Á˯¼Æ+¯þŒ“wãâö.Ö –Ë’(IpÞ‘DŠ,XC¸õAkt.ØXg‰{çA:¶÷°ÖÑv¦WÂvËŠºî¶{ €`þ·ô<~+å3ÀïêÌÖåûŒu¾\Vb<Ì1F’ÆÖ^—¬ÚÎòÚÛçY?´ÉÓ_ú*V«%¸ÁªÓRN&ãû[c~ç‰G‹;õÈ‹ÅÂ<óg‹ííÿÃç,ýø|æñO±¾6A+ÏÚÆaêò€NÄI„Û:óA1Ò2˜½”ãÐŒ‘RÑ‹‚¢H™N¤iŒó!e^V û³ƺiÿ¬«g~Ï®€ïئyž ¼ÿ÷œ¸ûÁ§¿üÅ™”Â{ß~æ»Å|>›ƒÿµ³³{ò™ÿsé±þè…Ñ“O|†'>óéâFšbPà­Aé(\ºï Bë«È„€4‰1&ÈòBŠÐ¸ìºkío!`<È™-–4MG¯(®w¹Þs~郎ÉBÔZk›¥Éï+©¾ñ¯¥ÌóÌJ©Äw¿÷ƒxg÷@¥Iú‡/½òÚ¤”“ñxø)å§þòûÏ>þìsÏo|ö7ž4¿ý¾!Ò4WNj"°¸Öà-Q/|î …ì9B‘Æ1Oëá`^¢¤ ÝéÎ0wKmþ~xòäùøÇʦ©Ål^©gþâ{ƒÃ››/üôåWþ ®ëŠ9æ„§tÿ`º•¤qkýÔÖÙw8´Vt›GÚÎv­µÆhïÜÙýÙl}wº8ôÖ;¸ûÈ!¯æÎ{²,ÅôºCÛ·>rhrM…¨›¶&Ì:HÞCú ˆƒé¼*Šü?nl¬¿GÑ7£H?v×a{â®ÃUU5"K3ÿ£—^L¥ÒËÙ|ñßö÷æ þ*/ZÂtF¡¤:«´nP‰2_-K:k‘JÚeÓ<Ó´Ý…AžÄûGÎl]:ufëÒ¤ÈRoŒÙ˜ ɳ0&¥'ÞŠ<ôŒ±«xK#䃀µVÌfó·ÊrùÃAñ“á¨øÚÙs?á•CÇŽnvŸþ{§ª#GŽØ³ç.Æ‹r1âzþ€: áDš(Š/EqÜHù`ì;Óú¶i½Ò+ÔMw®nº×#­þxPd›Y?ÑóÔ™óW>wñjÅšõñõñ"KP± U VýSÞ§òè7ଵ˃éìµél¾7 ŸGŸ:sîâSgÏ?¹yhMìïï«b0ø ¥äsÖºU'Öô€8 vÎ(!š²\ “4'Ï×½±gqÞ[­õ.!Ê4±Õþt±½oE‘þãpáÊ®)G6Ö˜ sEÞ7^(¹>‡øžUà°Ê—ôó5Þûê`:Û=˜Í_ÅŸdYüÄ™wÎnY5‚x(ŽãA4ùÕ˜ëµkµm7Ïs–Ëe)›ºb²¶AšqÖ¸¦nJ‚Õ¬NQî3å´3»ÓyùÓ,MþûúhððÚ¨x²mÍož9¯qŽÉ° \V«ÃjzÞ7Ü ôYMpVýæx?˜/;ó[q='Ñ£ÓÙLw]·ò»¾B¿‚mšfá+—U¥š¶æ`o[Lö„VÚµ²]M¨4ý=Ú”0•ZTuS^¨›m)åóÃ<=”¥É'mÝ|ᕽœsÇÜ÷2Ö–÷‰w Àj3+Ri± L’Um×um×]é7¼à¦éñcGßøðá/ ƒÏ=·u÷ÂM]a­aÊÆÛîu#ð ØâιbºXΧ‹å)åÿÅû“À¿ë7ÿYú¡j௹NŠ €XH-×g‚çýÃ)®‡?¸Ñpk­ÿË™wÎþî`0àþ{·÷ßs¬Z,fâîã÷xkR½Ÿ¹®j‘Cë Œs®ì¿¿ÐïëÁ6€OÆ|¯r|˜L¼íW*Lˆ¦íd×uº6™Ü'¥85Ÿ—É›oZÇõæácíþÁX.ëL…‰NÉ/kV÷]¹ãœ0²F˜?O˜TáË Òýÿ^ùvÇåogÝ(<¬š+ö—ÖZ½¬ê³ÀOò,»èîêÎþà­ÓgÖNŸ> pW¶¯&RŠÓ³Ùâu®»×ûÆðÖ ì» cûo÷¯» Vîø+àÆu óÊ{×uÃþÁt{:ýLñ“(Ògf³¹ºxéÊú|Q&£AÑ-–Ëgm¨æÊ~c·»î#w–À§ Ö°Ï¿%*ýªøEËÆ9WUUµs0½¶,«ç£(z}<M±¯LgoyïWŸ=¸Ž\á€àS%7,7…Dñlèv×j_Ì4%Œ­g„aýï=a—æ[q{Ÿ@ ¿$lò^ÂÔûO .°à=ò¿i X1yÇ»?-²z­"ÉAÿõ¦±7-ÁõHß_Ëô×Y‘ñ-@þMZÀ{­ÕPvtÃkUïÒè;ù –äúgVŠ¶î¯³r[àoËZ±ú~ÅØwz yÃuVát5t ˜wÀ¼÷£þÔØ]7æ7G&àö6õ^Ÿ!x¯usØ»ùw·þ6®ÿñ7³‘€¹ IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng.icns000644 001750 001750 00000274326 11617757645 022576 0ustar00simonesimone000000 000000 icnsxÖis32C¾ÿ ‡ŽŒ‹‰‡„€kS„‚ÿ„ÿ4Žzÿÿ“ÑÁUFRhzx…G…|}wysmš.”:jKz=+w€wJÑÑÿÿKI-}loRPÿu{l‰³€ÿQIƒÿއƒÿ „—”‡|YAŠÿKhƒÂÿ¾ÿ ‡ŽŒ‹‰‡„€kS„‚ÿ„ÿ4Žzÿÿ“ÑÁUFRhzx…G…|}wysmš.”:jKz=+w€wJÑÑÿÿKI-}loRPÿu{l‰³€ÿQIƒÿއƒÿ „—”‡|YAŠÿKhƒÂÿ¾ÿ ‡ŽŒ‹‰‡„€kS„‚ÿ„ÿ4Žzÿÿ“ÑÁUFRhzx…G…|}wysmš.”:jKz=+w€wJÑÑÿÿKI-}loRPÿu{l‰³€ÿQIƒÿއƒÿ „—”‡|YAŠÿKhƒÂÿs8mk©¨©«¬´ÄÑñûƒÓiˆ¿ýñt…j7꤬”­Æáµý@ø»ñåøþµš·òâñü’·»èëÇv»·ùñ]°¾˜œ ¤µÅÒõ Ìqil32ìÿÿðÿ˺ˆÿž|‚€~}|{yurnlifU?:fˆÿœrŒÿcxw‹ˆÿoŒÿm{Šÿ™jŒÿg‚ÿ`Ñ€¯Ñ¶ªÿf.57‰ÿÿ‘Ñÿ|ÿÿ“€Ñÿÿ``ÿ¦›ÑLax“¾j~dL œ5`ZÿBSÿ0&WUmg´ÿ…D„Ys~V€Œˆ-+£T ™Qz¦‹+ÿG1]E¡loP:^ÿÿ¾‚ÿ'0ÿÿK ‡‹&L†S‡JmÑÿ€hc0hÿÿÑ‚ÿR«œi‡SPDBÿ@15*ÿÿ`kÑÿt8Œk‚ÿÑ29Icÿt\gÑm_~[ÿÿÑwmeÿ}nŠ…ÿYA‹ÿŽph‰ÿ—_*hŠÿcœŠÿœqŒÿZšŠÿt‹ˆ†„‚€~{vqmjiih9—ÿKR_6u­™ÿ­…“›ÿmÿÿçÿÿÿðÿ˺ˆÿž|‚€~}|{yurnlifU?:fˆÿœrŒÿcxw‹ˆÿoŒÿm{Šÿ™jŒÿg‚ÿ`Ñ€¯Ñ¶ªÿf.57‰ÿÿ‘Ñÿ|ÿÿ“€Ñÿÿ``ÿ¦›ÑLax“¾j~dL œ5`ZÿBSÿ0&WUmg´ÿ…D„Ys~V€Œˆ-+£T ™Qz¦‹+ÿG1]E¡loP:^ÿÿ¾‚ÿ'0ÿÿK ‡‹&L†S‡JmÑÿ€hc0hÿÿÑ‚ÿR«œi‡SPDBÿ@15*ÿÿ`kÑÿt8Œk‚ÿÑ29Icÿt\gÑm_~[ÿÿÑwmeÿ}nŠ…ÿYA‹ÿŽph‰ÿ—_*hŠÿcœŠÿœqŒÿZšŠÿt‹ˆ†„‚€~{vqmjiih9—ÿKR_6u­™ÿ­…“›ÿmÿÿçÿÿÿðÿ˺ˆÿž|‚€~}|{yurnlifU?:fˆÿœrŒÿcxw‹ˆÿoŒÿm{Šÿ™jŒÿg‚ÿ`Ñ€¯Ñ¶ªÿf.57‰ÿÿ‘Ñÿ|ÿÿ“€Ñÿÿ``ÿ¦›ÑLax“¾j~dL œ5`ZÿBSÿ0&WUmg´ÿ…D„Ys~V€Œˆ-+£T ™Qz¦‹+ÿG1]E¡loP:^ÿÿ¾‚ÿ'0ÿÿK ‡‹&L†S‡JmÑÿ€hc0hÿÿÑ‚ÿR«œi‡SPDBÿ@15*ÿÿ`kÑÿt8Œk‚ÿÑ29Icÿt\gÑm_~[ÿÿÑwmeÿ}nŠ…ÿYA‹ÿŽph‰ÿ—_*hŠÿcœŠÿœqŒÿZšŠÿt‹ˆ†„‚€~{vqmjiih9—ÿKR_6u­™ÿ­…“›ÿmÿÿçÿl8mkðíîîîîïïïñöøûüýþÿÿÿø:ìë…à­=îä'K÷›ç;' /ºþþü*-Gaù5$û뻤a¦ÿÙýæÿ þ鯸·þþôëÛêNý¶÷ŽË÷vÚØüþ<¨ ÿBÿè6áþöúÝù ëàúÇ þüÿYCÿçêöÿ•ïÿ»¥÷tý²ëÿY¤ˆÿ_÷ðïþùþûýÞê“þ|é‹þþùÿÏe\)§F®…Õæ;%œmÕÿümõXMüþÕê@:ìò 0úååçèêêìíòöøúûüüÿ1ˆþÎÕ”+it32 ¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿÑʲ§º÷ÿÄŸR:[·ÿˆK^½ÿÀGE¾¶ÿ†K^½ÿу.T·–ÿÑ;‚ÿ,ƒÿÑ£s‹ÿ„K\½ÿÑw85s¹“ÿѰ#„ÿÿÑÆ]ÑÑÿŘ|uss~º‡ÿÑhJQqœË¼ÿÑ©f(%]’ÿÑXAšÿÿ©7¾ÿÑpxƒ„³Ð…ÿ ½m9$ 4_©Ñ¹ÿÑÃsR“ÿ KVG¸ÿœ"ªÿÄ6§‚ÿуÿ¶{#"35+ ]ª·ÿÀu8:uÉ”ÿB›=^Ä‘ÿ`%ºÿÿɾ­µ‚ÿ¨C b³Ñšs£l 8©…ÿʦjMmµÑ†ÿ¼\,„ÿ Ñv?=9=J]‚ެ†ÿ½x88l¼Ñ‡ÿ Ç­šx_Xc{¶ÑÑ€ÿÿÿ—U‚Äÿÿ’'µ€ÿ¤5Ìÿ˜a867G°ÿÑk•€ÿ¢)¸€ÿž%„ÿh3 ˆ…ÿIÿ À.›ÿ”|23}ÑŠÿfoÑ‚ÿѸ ÿÿÑadÑÿÿ¥2€ÿwq„®¬Ž>Æ€ÿD‚ÿÿÀB.7h²Ñÿÿ¿BÑÿÿt6ÿÑ~2ƒÿµU~>Ñ„ÿO‚ÿ bcÿ‹’Y2E”‰ÿ—LÑ…ÿ ´3ÿÿц–ÑÿÿÑy#€ÿŽŽzttu€Ñÿÿ®€ÿ©xK^¦Ñ€ÿ ѹÿÿ_'†ÿÑkƒÿ„gËI´„ÿT ‚ÿ{T€ÿ·…H0V´†ÿÉC³‡ÿ»€ÿ;ž‚ÿj„ÿ‚ÿÆÿ¶W‹ƒÿ ,Œÿÿ“ 6›Ñ†ÿÊl—ÿ¯k„ÿYÿÑmiÿѵv<3k¾„ÿ¬:Ñ ÿg€"‚ÿ€Ñƒÿ?€ aÿÿ¬YgÐ…ÿ¥r±ÿÇ9+̃ÿ_ÿÇ6‰ƒÿÑ©e:8|º‚ÿ}^¡ÿK€*‹ÿR€E€ÿÉR  2Ñ‚ÿ ц{¶ÿÿv™ƒÿ d ÑÿÑÁh…†ÿϘa: k´ƒ  !=’»ÿµoS±ÿ#, 4ºÿ½”A=qƳÿw9  cѸÿ½nFk¤Ñ´ÿ|KC yÈ·ÿ¶3y½¶ÿ €KVRPÇѵÿ›-·ÿ „K`¬v0'°Ñ´ÿ†-“·ÿ ‰K`ÿÿ»x/ n¢‹²ÿu-–·ÿŽKaÿÑѾ²®Ÿ¤²ÿh-™·ÿ“Ka½ÿ^-š·ÿ”La½ÿZ-—·ÿ”Ma½ÿV(¸ÿ”Oa½ÿV¸ÿ”Pa½ÿV¸ÿ”R`¢€¡€ €Ÿžž€€œ€›€š™€˜€—–€•€”“€’‘ŽQ¸ÿ”UVfedccbbaa``__^^€]\\[[ZZ€YXX€W€V€U€T€S€R€QPOON€ML8·ÿ›‚Œ5‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwwuttsrqpnmkjhfecb`_^\[YXWUTSQPONL„K.ôÿKK]qs_%õÿ ¬ž–sNC“•˜Ÿ­ðÿ «šM(8sªõÿ­¬­÷ÿª™’ŒŽ’™©ôÿ¬ŸR<5:B|¬÷ÿƒúÿZKXúÿK'Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿÑʲ§º÷ÿÄŸR:[·ÿˆK^½ÿÀGE¾¶ÿ†K^½ÿу.T·–ÿÑ;‚ÿ,ƒÿÑ£s‹ÿ„K\½ÿÑw85s¹“ÿѰ#„ÿÿÑÆ]ÑÑÿŘ|uss~º‡ÿÑhJQqœË¼ÿÑ©f(%]’ÿÑXAšÿÿ©7¾ÿÑpxƒ„³Ð…ÿ ½m9$ 4_©Ñ¹ÿÑÃsR“ÿ KVG¸ÿœ"ªÿÄ6§‚ÿуÿ¶{#"35+ ]ª·ÿÀu8:uÉ”ÿB›=^Ä‘ÿ`%ºÿÿɾ­µ‚ÿ¨C b³Ñšs£l 8©…ÿʦjMmµÑ†ÿ¼\,„ÿ Ñv?=9=J]‚ެ†ÿ½x88l¼Ñ‡ÿ Ç­šx_Xc{¶ÑÑ€ÿÿÿ—U‚Äÿÿ’'µ€ÿ¤5Ìÿ˜a867G°ÿÑk•€ÿ¢)¸€ÿž%„ÿh3 ˆ…ÿIÿ À.›ÿ”|23}ÑŠÿfoÑ‚ÿѸ ÿÿÑadÑÿÿ¥2€ÿwq„®¬Ž>Æ€ÿD‚ÿÿÀB.7h²Ñÿÿ¿BÑÿÿt6ÿÑ~2ƒÿµU~>Ñ„ÿO‚ÿ bcÿ‹’Y2E”‰ÿ—LÑ…ÿ ´3ÿÿц–ÑÿÿÑy#€ÿŽŽzttu€Ñÿÿ®€ÿ©xK^¦Ñ€ÿ ѹÿÿ_'†ÿÑkƒÿ„gËI´„ÿT ‚ÿ{T€ÿ·…H0V´†ÿÉC³‡ÿ»€ÿ;ž‚ÿj„ÿ‚ÿÆÿ¶W‹ƒÿ ,Œÿÿ“ 6›Ñ†ÿÊl—ÿ¯k„ÿYÿÑmiÿѵv<3k¾„ÿ¬:Ñ ÿg€"‚ÿ€Ñƒÿ?€ aÿÿ¬YgÐ…ÿ¥r±ÿÇ9+̃ÿ_ÿÇ6‰ƒÿÑ©e:8|º‚ÿ}^¡ÿK€*‹ÿR€E€ÿÉR  2Ñ‚ÿ ц{¶ÿÿv™ƒÿ d ÑÿÑÁh…†ÿϘa: k´ƒ  !=’»ÿµoS±ÿ#, 4ºÿ½”A=qƳÿw9  cѸÿ½nFk¤Ñ´ÿ|KC yÈ·ÿ¶3y½¶ÿ €KVRPÇѵÿ›-·ÿ „K`¬v0'°Ñ´ÿ†-“·ÿ ‰K`ÿÿ»x/ n¢‹²ÿu-–·ÿŽKaÿÑѾ²®Ÿ¤²ÿh-™·ÿ“Ka½ÿ^-š·ÿ”La½ÿZ-—·ÿ”Ma½ÿV(¸ÿ”Oa½ÿV¸ÿ”Pa½ÿV¸ÿ”R`¢€¡€ €Ÿžž€€œ€›€š™€˜€—–€•€”“€’‘ŽQ¸ÿ”UVfedccbbaa``__^^€]\\[[ZZ€YXX€W€V€U€T€S€R€QPOON€ML8·ÿ›‚Œ5‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwwuttsrqpnmkjhfecb`_^\[YXWUTSQPONL„K.ôÿKK]qs_%õÿ ¬ž–sNC“•˜Ÿ­ðÿ «šM(8sªõÿ­¬­÷ÿª™’ŒŽ’™©ôÿ¬ŸR<5:B|¬÷ÿƒúÿZKXúÿK'Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”ÿÑʲ§º÷ÿÄŸR:[·ÿˆK^½ÿÀGE¾¶ÿ†K^½ÿу.T·–ÿÑ;‚ÿ,ƒÿÑ£s‹ÿ„K\½ÿÑw85s¹“ÿѰ#„ÿÿÑÆ]ÑÑÿŘ|uss~º‡ÿÑhJQqœË¼ÿÑ©f(%]’ÿÑXAšÿÿ©7¾ÿÑpxƒ„³Ð…ÿ ½m9$ 4_©Ñ¹ÿÑÃsR“ÿ KVG¸ÿœ"ªÿÄ6§‚ÿуÿ¶{#"35+ ]ª·ÿÀu8:uÉ”ÿB›=^Ä‘ÿ`%ºÿÿɾ­µ‚ÿ¨C b³Ñšs£l 8©…ÿʦjMmµÑ†ÿ¼\,„ÿ Ñv?=9=J]‚ެ†ÿ½x88l¼Ñ‡ÿ Ç­šx_Xc{¶ÑÑ€ÿÿÿ—U‚Äÿÿ’'µ€ÿ¤5Ìÿ˜a867G°ÿÑk•€ÿ¢)¸€ÿž%„ÿh3 ˆ…ÿIÿ À.›ÿ”|23}ÑŠÿfoÑ‚ÿѸ ÿÿÑadÑÿÿ¥2€ÿwq„®¬Ž>Æ€ÿD‚ÿÿÀB.7h²Ñÿÿ¿BÑÿÿt6ÿÑ~2ƒÿµU~>Ñ„ÿO‚ÿ bcÿ‹’Y2E”‰ÿ—LÑ…ÿ ´3ÿÿц–ÑÿÿÑy#€ÿŽŽzttu€Ñÿÿ®€ÿ©xK^¦Ñ€ÿ ѹÿÿ_'†ÿÑkƒÿ„gËI´„ÿT ‚ÿ{T€ÿ·…H0V´†ÿÉC³‡ÿ»€ÿ;ž‚ÿj„ÿ‚ÿÆÿ¶W‹ƒÿ ,Œÿÿ“ 6›Ñ†ÿÊl—ÿ¯k„ÿYÿÑmiÿѵv<3k¾„ÿ¬:Ñ ÿg€"‚ÿ€Ñƒÿ?€ aÿÿ¬YgÐ…ÿ¥r±ÿÇ9+̃ÿ_ÿÇ6‰ƒÿÑ©e:8|º‚ÿ}^¡ÿK€*‹ÿR€E€ÿÉR  2Ñ‚ÿ ц{¶ÿÿv™ƒÿ d ÑÿÑÁh…†ÿϘa: k´ƒ  !=’»ÿµoS±ÿ#, 4ºÿ½”A=qƳÿw9  cѸÿ½nFk¤Ñ´ÿ|KC yÈ·ÿ¶3y½¶ÿ €KVRPÇѵÿ›-·ÿ „K`¬v0'°Ñ´ÿ†-“·ÿ ‰K`ÿÿ»x/ n¢‹²ÿu-–·ÿŽKaÿÑѾ²®Ÿ¤²ÿh-™·ÿ“Ka½ÿ^-š·ÿ”La½ÿZ-—·ÿ”Ma½ÿV(¸ÿ”Oa½ÿV¸ÿ”Pa½ÿV¸ÿ”R`¢€¡€ €Ÿžž€€œ€›€š™€˜€—–€•€”“€’‘ŽQ¸ÿ”UVfedccbbaa``__^^€]\\[[ZZ€YXX€W€V€U€T€S€R€QPOON€ML8·ÿ›‚Œ5‹Š‰ˆ‡†…„ƒ‚€~}|{zyxwwuttsrqpnmkjhfecb`_^\[YXWUTSQPONL„K.ôÿKK]qs_%õÿ ¬ž–sNC“•˜Ÿ­ðÿ «šM(8sªõÿ­¬­÷ÿª™’ŒŽ’™©ôÿ¬ŸR<5:B|¬÷ÿƒúÿZKXúÿK'Yÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðÿt8mk@}ÃÇ7@òÿÿÿÿ— !(.4;AHNTZ_djry†Œ“™ž£§­·ÈÚìöûþÿÿÿÿÿÿÿÿn¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿЯÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿůÿüýÿû~úÿÿÿÿÿÿV¯ÿüýÿÍØÿÿÿÿr¯ÿüýÿ¢Vš¯ÿüüÿ_¯ÿüüÿ ²ÿüùÿ2¹ÿýïÿ‘ÀÿýáÿËÇÿþÏÿèÍÿÿ«ÿþÕÿÿ?ÿÿýf)ÝÿÿiýÿÿôC|üÿÐ ÝþÖ ëþÿÿÿþ££þÿÿõŽÕÿÿÿ—þÿÿ¹²ÿ˜ ùÿ縖Íñ†ûÿÿÿÿÿÿÿÿýžÿÿÿ¬þÿÿÿa‹ÿ\Kÿ·4óÿÿÿÿÿÿÿÿÿÿÿÿü5iúÿÿû<þÿ”ÿþwÿLÆÿ<Ž=ÿÿÿÿûWÊ@aöÿÿÿÿ_+—ÖíÍV+¸lÏåñöòäʬfPõÿÿþ— S‰Éãìß®W4 ÿÿôÿìÿ2áÿOúÿêþÿÿÿÙwÿï™ÿÿÿÿW-ñÿÿÿÿÿÿÿdýÿ¡ñÿÿÿÿÿýÿÿÿÿÝ%åÿÿÿËÀþÿÿÿýýÿÿÿÿÄþþ ÿÿÞÿ–ÿ¯jÿîòÿÿÿ÷ùÿÿ0¾ÿÿÿþ!ûÿÿòšÿÿá‘ÿÿÿ ÿÿÿÿ?¶ÿÿÿü¼ÿÿÿÍ'õÿÿþ} ÞÿÿÿþþtÿÿÿÿýÿÖÿÿÿÿBÊÿÿÿÿÿóþÿÿÿá—ÿÿÿ™ÿüýÿÿÿÁüÿÿÿxÿÿÿÂG÷ÿÿÝ#õÿÿð°ÿÿþÿÃÿþêÿúNÇÿhþÿÿÿõËÿÿÿÿÿù,³ÿÿÿÿ%ãÿÿþöûHÿÿÿÿþøÿÿÿõÿÿû&Õÿÿýp¢ÿÿþ«þrüþç÷ÏþÿÿÿçHÿÿÿÿ“fþÿÿ£1ÿÿÿÿbîÿÿÿjeìÿÁÿÿÿlôÿÿþÙÿÿüŠþÿÿû`ÿÿÿL’ #Ðÿÿÿÿ%\ÿÒþÿÿÿ¼…ÿÿÿÿ«ÿíÈÿÿøìÿÿÿ úÿÿè¯ÿÿÿøIŸÿÿþúÿÿÿÿ²9üÿÿÿìûÿÿÿÿûBºÿ†ÿÿÿ.ãÿÿÿªÿÿÿhËÿÿÿè$ìÿÿõÿÿÿÿÿõÿÿÿû!ùÿÿÿÿÿ¿þÿIøÿÿÚÕÿÿÿ µÿÿÿÂCóÿÿÿ´ýÿÿÛÿÿÿÿþèÿÿÿþµÿÿÿÿÿù+tÿÿýóûÿÿÿÿËÿÿÿþïþÿÿÿ¥«ÿÿÿÕþÿÿËþÿÿÿÿíÿÿÿý(óÿÿÿÿúôÿÿÿÿÿÿÿÿÿœÙÿÿÿÿÿýèƒ ¤ÿÿÿñýÿÿïýÿÿÿÿ÷ÿÿÿö£ÿÿÿÿt=ÿÿáE!žÿÿÿüåÿÿÿ2müÿÿýòÿÿýïÿÿÿÿýÿÿÿäT·ÿÿÿÔØÿýÎÿÿÿ^îÿÿÿ5ðÿÿÿ¶£ÿÿÿ&]/±ÿÿÿÿYÿÿÿÿ®ðÈÿÿÿå!ÿÿªÿÿÿìôÿÿÿÔÿÿÿÖ$ þÿÿÓ;ÿÎÿÿÿÿлåôíÓZHÿÿÿÿýÿŸÿÿÿ™¸ÿÿKýÿÿÿ2ùÿÿÿ’þÿÿå/±ÿÿÿtûÿÆèÿÿÿý¯ÿÿÿÿÿòÊÿÿÿüðÿÿª¦ÿÿþÿÿÿ1ñÿÿÿëþÿÿÿ$ýÿÿàöÿÿÿžMýÿÿy<ÿÿÿÿ\T3ÿÿÿÿœuÿÿÿõ­îÿÿÿ§Þÿÿÿ +þÿÿÿÿÁ4Yÿÿÿÿï7øÿÿÿšïÿÿÿýÏ—®öÿÿÿü ¹ÿÿÿý"æÿÿÿùÜþÿÿÿÿý×<ÿÿÿÿõHýÿÿÿÿýûüÿÿÿÿþv‰ýÿÿün {æüþÿÿÿÿþøÉ ñÿÿÿý+?ùÿÿÿÿ+°ÿÿÿôFôÿÿÿÿüê»ÊïþÿÿÿÿþN¼ÿÿÿæ¼ÿÿÿÿÿÿÿÿÿÿÿÿïÈÿÿÿ…2¼üÿÿÿÿÿÿÿÿŸ^ýÿÿ¼ÿÿÿÿÿÿ¥(ìÿÿþ|óÿÿÿÿÿö"þÿÿÐîÿÿÿÿÿÿô ºÿÿ1åÿÿÿÿÿÿÿþ~ÝÿÓÚÿÿ*÷ÿÿÿÿÿâ/ïÿ¶Íÿÿc÷ÿÿÿÿÿ•ùÿ›¼ÿþ"e‘Ÿ[%ýÿw°ÿýþÿN¯ÿüþÿ¯ÿüþÿ¯ÿüþÿ¯ÿüþÿ¯ÿÿÐÑÑÒÒÓÔÔÕÖÖ×רÙÙÚÛÛÜÜÝÞÞßààááââãääåææççèééêëëììíîîïððñòòóóôôõöö÷ÿÿ¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ Yààààààááâââããääåååææççèèéééêêëëììíîðòóôõöøøùúúûüüýýýþþþþÿÿÿÿÿÿÿÿÿÿÿÿ+"Bz©÷ÿÿI äøþÿÿÿýûûõÝFåÿÿÿÿÿÿÿÿþæK5[òýÿÿÿýôd-Ûûþþþýç3þÿÿÕýÑic08S¼ jP ‡ ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cÿOÿQ2ÿR ÿ\ PXX`XX`XX`XXXPPXÿdKakadu-v5.2.1ÿ RÏÿ“ÏÁ ‚»kç%Çq²nަ.Õs¶ÐšÝ@ãçNM äìÊì¤I¼ O‚› í ѳ:jõ»Î!µGÈ>ýAØt±—p[Êâ>€€ÏÁ ~²v+CɇyM«ÙXkõÐò¶GFsPÌ-û+ýX#ëyâVÜŽ$=vU°ü-î“c ˲uÁxpüRÊo8Ãí.ÀÊx,Æ4LJ20P{pų…Atÿ:Ãv”ÅèÜKÜt­¢g@Ièœ@V¨4MÏ+÷_§ŠÔÎOØ%*’” ®ø¾á¬Tä•r seŸuQ+]ó—zæé( äæÒÑR$b×Éó51 :ÚRø®+’D-Íë?½7v7s2ŽmÑ÷ ÿf—5A?€€Çàe¬~f -áD¦Ñj寠ÁŽ®¨òÀ©©UC¸Á–\ÃPÆÖÄì¦I,EæÒ³->;££½7’(³Aª3³Ó›aŽõ& aŸhǸ äŽzÓºþlmû]È÷,pË7ñ `}S%@‰¡ºÃxõ”4ûg´µÒß4}6'Wuj.P­ê`(ª}§"@óP?ßÝp9»‹µ‘Ò`ÄW¢ƒzGG\ŽDmÂh“qÖã±þü–ÅGÞ#‘U· Wê™w;ÌÆI‡Ÿ>ÝŠô3Bh¢ ÿOõœpžq9¬‚ÂùÁÛ¤¡ÁÏÏT§ç°‘ùêËÒ1Ý+çËf,µ/!¿ß¯««}"¨Ùh"õÛùà’ú€Ì{°G«ËÕs"k]1¹:"¨t`-1¼üìTB"Ìšµ”C›S=ýÀ’~&»‘G™`Z<+þì¢ÖÊ\¿³¾e¥§EŒîZ)ˆ¥×¸÷F².¿R~?S)èì±ÁOËÚlXчÒì‚XgXM¬Œ7hq‚}ð%—ÙE¨\) {È>ÇxbŠñ¢Ôîîz²¸lÑiåßý9ÃåÀò³ñn©ô? “ë_Áco­“·ÙùŽÐ1ßMʈyžárwå–©§qÎu _$j$êÜLè<™ÛèêùìCGè@#ÄQ´*É[!‘ÌÏrx+¹ˆ)Y‡÷Ü.{7NpÀ¹_ŒV¶ëc‡^Lħ â@„t`M¸u ‹ K„ÀyÔ8'žß×i€w*¸Ä©ad~ìÍ£tf.zTÎ[ËYÕ%i×÷MïCòÛۑ³ˆ4:Bü~êû쌈»%¨Ã¹!«*¼‹H‰4ÆaÙìßèÙëܦºUi•rÒu8uDI°ëQ%ÃIÖø$œTd2&…V²ÀË˺´´ÓÈÅ9aL¨V–T8c÷ÛŒUÄm¡ @9  ÃÔÆ¢ÚK:^À&Ÿ¬¸N~àƒ²°u`ÓÄ©¾Ñ¼tØÑ/³C©ÍŠGO3¤EòH¸íÎ'°î<^…d¥èn nüâ—êJ‚àý±ºÜt[ж4uòuG/{êš…hÅê FAm¤…Ò“ÙÄ*Jð¶8æQ³“º†ŽŒÍ:¨qÿ=µ³`‡ýOú_±¶ª¢Â÷ïŒn„¨¼jLmåó\®&ÐZ>ö!WqÜÐ%2x¡° \‹.â€À}ßc'“ÞŽMëªÙnÜÙüg”ÀA£·êqlnuú#è2ªJUéø±׉¯ÖQdÊ-8t+5V &¼7ñvÓG˜à—ìÙX³L¡Þš7E­ØdžH`5v¹õß¿VXÙîÝx´äVÅÉôs«Ë´bÙTÅ‚›»-ë÷šl*Î`ùtLGÙœ©´w†ú£ïÌ>«º†¶ npCþEô#4悜zô -bCÔ¢<¼cbQÓ0¹|EŠ"öÝOpoŸT$l¸ù:œòJ¼Ð¬Ø'À¼Œ¢köÎiâ‰GUw@ù‹ÎU †Åßî,Ó¯ú†~Dœ;×ãïh–[è#éÄ8×cE{u–J’!`ŽiŽ÷‡èǻU[4d´s¨@}ùR é_jX#¨ïU¸``N¡;D #¹XÊH™ì ™íÒ 4 þ˜Ý×”žÍ­¡3u0“o̵ÙgM¥Ø‹CJãêæ­1žÄS€€ÏÏXç粑ùêèË™–v•xìì°‘ùŽûêò•Ðö˜=^þ¶õÞ8»1'&vª²×ÍþJ`ý?L1D¡àòH%gÂ70B,mâúð–Y¼Åš‰;p-ÞꃪT{-…ð„L3Ç¢°ŸÆ(¾æžKý\ ÞYöÈ+ˆé±"½u´6W/·ìÕœÓ}„•ƒ­by@'‚»Yj $¡^/â[ |š*Ïc AÁÓøõ|MÀ|ÿ —c’´e  0L °Ž€7J<Jª l ö5•¨(ß›¾#²lQ‡Ð#& ¶ô"—Oû\AÜ2U<žã$+"úåÄ—3\õš»Åö\×@ÖÏ­n2Í„Ïmd«×ÁÞ€ð*å ‘B:k°à90P‹\õgV8 üŽ´^sØS~ò¯m¤kÙ†ðŒ6‹Ô¶ÈjŸÑ¨²Ç‘µD@oš­$ ªc®æd…µ†ú‘:ì§Žajà†²Õæë™K,¼HÝêù'õŠÜªxÖî¸9÷„Á´[Ϙ ¤>åÖûO¥}÷$ú9Êä;è êh lÍÝ䥎¶R$A[; µh–Ëþ…¹‡@~Ûbëx7Çy­NÉ÷FØ 0O–ÏŽé³™<÷=´>?HCb6ô‘Ì«@)Âñä"Û åª?‹Qÿãd_2V¡–æ;X!h„dÈq&h”çC!e¤êãÇ<ñȪÐ0:y¶´äVLƒDÏ(—A°NãV¢É~Ñ¢OÚõáGS uœtÄâÇ[¶ï¦k8â ¿ÐÊ4l øqo‰ÓA°JcN¤êI7¼Og!nQAu>„–`Båˆ+Õéêù¥_°êÅ`tK1S’fBÈ( ÿ cçÛ3)ûèËþ›Ãgd[þáùÀ‡A‰!ûëIÇ»J3èðiŒÄYÒ8ôS®Òj ®ˆà͉ßÊSÉœ~ "àÒPþä×ÞàöÜwÚ(MÜų”J–ûÒ¸—ÜÞõ÷9’Yw{•Æ,ZçZ\aüv–‰xo­‹eãô’éC˜L×àæWýþjüE!1ɽ…nÜ{jOî÷¸,§…œ¯øýÂÌcF 3#²zm蓸,T;† 'bA'Ñ®v ug¹ž¿—‡š=ªÄÿP¿úùÕ¥¦{[‡è’`lö¤¯EYâÏ]Æ[@Lµ¸H^î§y–8&ÍÀ·\ÇáÛ\~ÙÇáÙ°íâ×Äö—”ûG°ïwÛ½sdÜc_ëÒÜç-O6k5=¦„écŸ‰†WÉÓô ש{ØÞ®|&[ÄI¥jtSŽSG®kŠhdÊÌœôÙqÊ‘‚®Ðé!¨±ÛÖ%¢ˆyP¤ã}HAï5w Q{j;‹òÇaî \‡:!nƒk{g&Ì™¬Ÿ.¶â¤îŠvÈqSɚò¢jU&ð7¶Oñ%ß×S„0±º¾ :a–ºu;c6yDAÛüâMá>8›Ǥr6&ìôÑ¢F Ö0ãdftu$ÑœçִܵÇNl‹uª•;#ëÁÒêŠMe›(JÏßA'FæžéÓqwu&b¹N¬Üm[&úÞÌ2ímN!ªÜY–)âñDC¿˜^Dax­£‡XV4û Ÿú›:˜'º 'Äw%¸Ÿ€1Õ–§Šz„?CtB$®t)uØR¤ž7@ãEÜ5¸Å˜D^?PëYП'6>K*Nå*‰àÚ.oò-M¦“>™GÁåáT)sTùÒçHZëÏ/ }?§šôFï°W>ÒÂ…†øKQÐôC5º¯ìÅžCB}óöÅhâ ªÉd˜ß3òRC*Šó×;>^+Û )øE„.GÇ~žj訑îÝV¾Ýn{Cæ~¸ÞEèüÙµÜêÎmh:ÅVè’u)Œåÿ5?`¤Ú¥Ý1•æÙè}¢À€˜º°NÇôI“ëÎ+·¾¤ö_Öcu﨑rªb,]Ê&Mþ䀨ÀåU‚ZïN³(0?8ˆ±"¬Ea„a^)T3P¡lÌÔN–BZÇ™{dÁŸclÎyñ­n{‘¸˜l\–Cr.ºàb©1Hœ…rëúÕ0ÊóÊ*$Ç Á»õã“]X€½a. Nô YxôR Ú)°ºÊ¶Üž¿œíÖ-‘›Ž=£väYõ‚£# RÄèXÆ×ÖÉú¤°Ú>ffÃòÊ»¹ÝšËPAZ#˜ÝÖ$}“†¸Ø­›Ó»}‰$ n¼¼Ò].å5Éœ"¥kÎuØôVÊ—ƒ“µ5pçgËIšŠZ—åßÃ2àåðhð³Ù±ô¬#ѺÈ­°ËÈo¸*=äk®ìz‘ÈÐ¼èø°sž9wÍþ¨J êqÁ³Âù"Þ›)£O døi çp¬(Üf/ý’E÷Œ&f…!Ø0nDË©è?¹x1XvG=Љ7IŽ…;OÃ56üa'èÛ"ÇyZËW¥žþCS§P.x¼6}éUÄf! ò°¼=tæÃ04~ÿbßÿ€Ü—^·»·XÕ÷¿§]¶©ê%ò#Nø'vß=Ã̌ǖX;~l»˜d~¥iÂæ0!V¨ôòÙaÔ.{ãgMŠaÛì#hžç{Õo8ød*úyGh£Š@ 5yüý63ƒpAý)U‰Û¨tvÜQØD±B×Ûª ]OLâvÿs˜ ³/îåØ 1uÅý|QÿE)°ØÜî vÝhºä‡Ì,ÈfIV_¾Àvã 4V”@ÂÇ!¿‹ ÏPéƒî^€?üÕÅÕ"¿Ò·¼•ÔôÉ ƒ\—fwÙÞÕ f®s[úñ3Ì–yT\dìŒ=Bÿ ¹®Y0ȉ7fÞú1ÐqwT‹âå˜ Ya|«KåŠ3ÑSâær3Z0Íj¬umÉà\ê´û?ÛªìÁ¾¡÷ÕN¨Š+j5¹n©_©OÅnísjêªÆzª×´2¡3Ì ‚²|'À‰#SÒît‡µÔm5W°cúà~cWšübeùŒá7ñé¥B@³×7›?Ì/ôçšHkÑÕþº‰±ûo4Jã"`œH—ÿ_ùâòlFíÙ<.ô’ÒvCû6k‡[ñî~ šÝ bóÅyðo‹GÑ'1tÿ<‘B‘$9nF©)1§½€àJwœ¬'°gæëÛ;î KDa5Ù²±¹ (vÊ«–³c–¡DeàÙWà‡| ÂP±H_÷=ÁM²]¢bÍ êZ ¦8ŽTŒÛp±]>©ܬ¥$ ùˆB©ê•Ó“È}i@Þ&MÌyœêÎ.¦]ÖŠ±¿b•%hcíe”Ìð&Äá³ëd>R‰_’iíÎ ß–5eS(vÏ{òOæPóÇ¥ãØ×Œ¼òÓü.?YX^ê9Ê÷ҪǨ°]äD6Íâ˜Wa{¢e"ûÔiJõÕ¡d´!ïp_(¸ÏFÞ—7ä.¦W¬~~¢Bí ÷míÌ>æìLÂ[|ˆ ”€•‹­Ï·køÍAsCæV–KF Ó¬Fž:ãuŽïìJi!S…É'ô DŠ ¶›êF¹[R”ØIÂH¯f(ÑïÐÜm±KhvNý¨¥Œ¨[ͱ†ý»÷–ç™0Ò(» qYÏñçÌ\·Ïº!~Δ–70±ËÔ>™(š–É´Ö]"þ {ô‘N0Ë껆HEÀKJ*¬Ñ„º³?»zÒùHN‰Åë>æâ!2Kw¬±V5s¤'y˜s€¯S‹Ñ(>4Ž„,ø‡Áõ}"´E ¦}w¶è7Lvd(¿û´õ)Éùe&¨·¾R–ÿHVS´¶. úýÃreÓv%ýéO 8bG4犺¸¼¿[§ö‚èqÆ8™G¬Zº ~‹³ å9w"HkÓÌ”ç.Lýj¼Ë ÀÑ*BOùn ĿIJ.HzJç:eôôÛh¾+Õݶ€+æÊddc6¼o¾c—Fb¼ˆmex¡{‡+ÚéÂ¥¯ìâªYôI1W aÑô“–Çu\aÿý_…X´é[³J2¾:Y¿E,GǺ—Pòj3‘žD1%í6þ†ëO6@ãASï™#ă“¿à؆p˜l³Ïwïsܯ[îFodnø$«"&ªçÓ{Ð'xõ%_Ñ\|$WAÜÒÞņ޿¼¿(°1¢áÉ<,)¨Î¼üRIV‹îõ±¯ˆ/:>T|±i( Ø®žÊQê¤Ó Á›<#™Ý”Ó{E?ÚMY»?¸kFwE£údì*gé–­ÝóGnóPóDßê]ï1l‘ÜŽ‚ÎS‰Ôhq.ã.Õqyl… Ôî¡ò1ÏQ¥°Èm 4ýZN>…²’¢ Àõ7 Ãi–ÏÉrKy?>UäB¿ËµŸu¸Û¾2ÓA­`{Ó€€ÇáÜ<üûíö`æ9£Ö4" "“,ôM…œžãï$¡œÉ¶ âÌøßhlÚFÒZœuI%4ÎìxÛ§nÀ; Œá޺ĊpØ&Á‚*‚Àï{âX2ÿA‚ÂÃmçIÎ|‰—Ìg-I÷»­±pv|–^[¬=ÔZurÄϧjáIÚ& ‚¨È1Í´ñ< ˆ™ ñ®ÖÂÿ&;ßÞ‰TªZ*¼1áª++ûè®áªöv£c>Z÷÷/eH#”¤9ëÐ\’µY€¼F\ì.š/rÔ1̨$ì¯{Óßµ»ó6ñy€_Lõr‰ñnþÜÅy9O²5û¥:§áç*µUbÉ¢¬!>ŠåøU¸ÁYCk4 œì‘ ònK…Œ¤ÞÔ^Hé1a€²¥H&äðyêbÏ~NL „ÆàH1gº×9óÅEWÈ’Ù[EÚJï„á°wÅð9åÔÆÁ5<Èc-aldâN„ýQÓ°5ö>ZšÓAâƒÕÀÒ»ö¡3î³3TåìgÝÉ@/ž‘~LSO¾Ë*à ¬•ÆàŠ‚ï T *ŽA‰+ÀÔì™y›Tùx‹2 çOÞüª6‘CÿSwñ t‡ð|ó¯Wü=$LXñ…¹Ö-¼²JÛDPEµ dndw²üpà€Þ;ÊWœ·¼°„h>.Œ|d…¤Qô ®ô Ãì÷DŸÒas`/Õç[ƒÚ¢zBS0‘úÛ‡† Å‘z2<¯£‚-þk,ÔTysiƒÛYð½hào-‚+µŽY0䓨ºˆÌ«6­H*…˜é’ ÀÍbÃ,hϹxYª#ÜûhTeõW9„ÔUTÚ Ú¼E6·quí¢óŽ‚1RŒË»§1ghT:·+–sÿr1- ü>âL<¬¶ÒVŸ–»íõC•ÄØµù¼œî~hGº¶íµŠ% —3Xq¯!˜Þ›&ö÷ª¹ñkÕê|20Q‡œ?œð¤D<µ:€@”-ߪ®=ž øæ7ˆ‹/4» $ÃR:¿YJÚ%'0 ’œWså3,b±wÆhwncÒc´-'3:.VÀ$Ú:Àú9 ]âî¡t ûˆ/g“]‡¦PW[Ù߬l?TúÆa´Ìn©)@6©ÐÄu!±/ä^R +šØö)¸—RÜä»aþªëÐRŠh‚N?J$¤sž|X ”ÔW£ø¯î<Ä T?üÇ,mÆó³5qðQ]=?9¸âª¬G‘zÆ»ƒœn¾t—Heshq½‡\ ÐÚbÛžºŠp\P'WÏk)ê\mP]–'ƒe$ÁæôVžwÌ‘¨ë˜h†yÛ¢Ý &³ ­rOš|ÄÑÚ 6†BÑÇùŸ{Ò‹:…‡.룽‡|‚ÿ?Ue’C|júe“§Ü›¤üdúc.Ñšó|²‰‡ º0_ÌÁ4ƒ%7ÑÙŒˆBš‹2í(rÓóxb‹¯Ä,¿| .Å#¬a ƒì$a«û;íUoù¥’$43dFØâOìž9‚BDÒ«¬3í<Ýß ±:ÿ =*¢)ÌçrgpÑabü¶è0ÑI¾tšPé'Ž´Ýù^³;ñ’eÙø¬ŽMéQÆäšùÕk®Fœžc'@ŠZŵXk9C³ì% ÛoÛd‚ãø¯C…‚:Ýæø¤¦|Ÿwæ¬r‘|y­Uœ‰ý§dâÖÔ,qìÞØêÆÊ8O‰Éb yÉ`ºØs“’Π݉Ø{®0¨ rjzA¼Ýãݞ܎¾ 8°³ýãkù Œ‰¡‘ËÜmëXSå]>+ÏÁD{öäßÿÿÙ»#‡)EęԸ‹¯Àª â­Ü$Éf5ëÏåXCÂóð¼752qT¬_­;èPK‰ÏryÁ{ÕžãÕJúë`6|­˜ŒFÂtíÏ3¬¯×¿^µí?X›Šùs^xj»Úéa€ ¾ð|m¹$’zKëUK†£uEF[Â?VÃ\ÈÄÇ;¨`ÛËÙBãù™WçV—è¼3¦Já´S÷9Ç%ÏwÒjCIÔrú(}87ä¨3«,sþÀuUÔlG†±XZ=ex¿§ÃÑ’óØ´/Ä–ƒC›jo·5‚­O©¯‹st\zW¥A·$’}_ï ¨‚Ï«7VŽÌp!eýΣ,·žämG?Y‰p½êíõÂ>³F|±󙀶¹,¬ o¿Ü Ž'EM}>áÞ®1øe+ž»yLT¬ùWç'Ì)ßn‚W¶ê¨Î 09Yƒj»<~Û TÔxgKŽU®nUê­²éSÊLmÏWn‚ÄzqôiõÔâàù®$ä’I$ ±3ǾÓEäc¿gºïvñ"¢ª}èèµÝ>T`êsѹƒ¢5]œõÇ¿R&fú"¶80ƒÁVƒ EÆØ"%Lvaü…˜²×±‰á8dŸóu¨õbzc6Ú4"Çœñ^âW¾÷poxÙ–¬øtõsxæ]hÙñù!ˆÉ‰o„(uFèýc$Hå^'F;A‡€bc™kÑ»ËQ`=)”Kip=KP eÿÈ H‡ú‰ÇúªBçÚy•.(›UˆVÁÏŒTçš­–"Â/Ù<<ýmõö«a„5^›0fP×h)£Ða›O³ñâ!Éó±3Ä.{â Á”3b°¾}J˜ÇÖ ]Eo7õÙ@Ý’~Xµ$¯Ê¨YÇ©ÏÁ“4;ÃVcF‘Ù6E¤ »ýóâ„B^Ÿ¸;x ÎÔñ祿Y¬Zü ¡iI(þúI/cµžÀ˜X!G×(úA¶Nt¿òkAͶûÆ´VÌ5ÄŒÚÇD¯‘ËÕ¿Æ`EñX©·€W¯Ü…ÐÅz ´ û$]i¶É½¤¬(„aj¹·éÐo´êßÓÊͦ¤½µ}C˜¾_Чˆ d°Ŷtùe eý«• b9´LuW´HV¶«ØCæ'è{oÅ'Ykû1ZrÎê;µ«–ֽܸ‘ø+{?È×éšA®¾ëh”ÎÍ¢úW« tÚ<¾·[ìÁ#I«ljªâM“Õém‰)£—‚WÑ£÷­Á¶+Óè2]æ£ÔÖ`úùÁû†·‡‡{\,Ï žW¥åîT"AËúm„Ôâ}1ûèrk[DâJkp¨,C”FdPËÁGosVþŒ€ºâ8Üëëã¦r}úeD÷|udñ·ÿ8}šV9¤Z¶Úvyç¦Í0!Êð~ÿo|&KNrȰ4r¦9µ…C·V05ÚåÓ¹Y´46Н6ðqw€›ÀNðM)ˆ¢b …˜ù!/åöô×ü:¬¾Ýßþ›ŸÃªáÕÏðè;øk&/·¢oáÓ%öìÝöé0òI£î¥ó¿ã”9¿È¼è¨ÜršÕÄf§=P >‹^d·/ÎKµˆ¾c#mN)(Blô]òõ-@7oSŸ”ú¦‹ÙCLpèun~Ð?Tæ6kt`œ”ªIm}¼Úâ‰áª½±¦g|%t[/¡<øv¤‹tú>|:#ñ½å~[)ý³V>ñŸðÁsg¶lŒÄìÎm|:b‹ñ"†Ý”öÝtð˜ö3¯.ÜðþâaÈCíyž6Ð) eÊr F^;~äKàðÒEdðm’íJàÞ6„lèÝÛL½ÅN©áµéôj˲ûQÐG1·5à¬q.·'Ô“¸b 3Z¸ 髆hÖ~Ñ71‰¿¤/$·h¨¡W6´Êƒ+bvœ#TðŒ!kºÃMu˜Çf„)Å]wð7ÛäÓâ¢3XG”m¼×*üš]“'tUŠ3UõZ€tZ öÌŸB‡ ×1¶`®úqOŒžøv¿ˆšiÇǺ=r0Ë)_ÆGF˜‚cøÄ[ ^þJàI%øf|®Qxí›ääÍ›ñu¾ÈÃÝ3šÝXG‚¤@p ¾¯/û'[É*r˜¯ìÿ–Ö_ó®@*6(Ó…‚çrGEk¼™ H (´|SæÂGï‚¶kauØì!Œ\ls+:.58×’˜Ù«ð¼DØ2R‰¾9ŽUpÚ°y½Ô³æAú `·›3YšYHb^1øq516K=1ëY>ÕßKç:­×ÛsPñ„ܘ?$ó£\<  Ç(`3ûnrUh”†E½5 —™Vs ã?Áø9÷YÓ}ch‰:Hf¿‘†K~œÝ‚2ijJi~ézYE²Ô“ÚâgF4¾”lȹvT?ŒB ¼•æÓîíCw‚isót”Þ6&~S šgÞÅ :9jÍyÖE¸Œ2®*…˜I»øk>oïŸVÞ6¾µ_À†äTa{VxY„‘ÅÞ{BPm0/¹‚[?`º(OM+6¾¸à̰ý4Aœ µŠË–Á?åX;7ÙÈþïS±ÉXJ^Ë“;t[P\àÍ¿}ØRæt´Ó …û’‰Ö• Él¹!L,ÀÛØ+ªsþÅWbß$âžÞûÐX/ê'Êñ×*IŽÙj)J¾¡“ Ú~À ¨gŒ¡íö—n~BÔ ­èH zYàC)$p) ~¾Ìu!HæÃú®2éÀQB¦æþõÿ5±Qp“Ò7úÕƒ7›PÛ¾ {Ç{¤y9Û•só ÐÌÔrßÂ’^òhFRþÍûÎ$ý¯Ï*ÂÉ-IeQñiŽ4®ëÊ0ê%FÖ&sÀ&ñÁÑ(kÌm†©Õ±×^èdzx %/ƒd”]! ¨íœ¹/ 7Œï­®&;ºb“T;P)ʾÏ,?Q¥/DWkàžÀÛ"PØäÍ«ìËïZ>)Dn“;¨#˜Žäþ@¢QæÑÞÅï ¡çû=´‡~ÝuDO‘¡°ïp²ê”}ŠáF(!èl’{h× ùfÇ Èmc§ U/スʒmýú a$ÐÈþm8hìùÃß݉Ì%~ƒæ¯Vûo ˆBÛÎ;!äcƒú†3GllÁµç…ƒoWÓ®¿1-ޱ!û±I̧5íÙ£ƒ\)«HVw‹K&üQ{M·Ý~lçd'ÝÙfvþby€6o­^cìC¨~åvsN©Ò=@•«Ô›ó]é\œ§Ì‡yF_ÜûU*HŒÌJ%sµß¡×›–õ€9>ðßË-³|Y…ÃV‹€ Þ]c[oûTøâˆü4[æâ>¶ð²µ_žM©]TEÙ<õ€m±g1¥£ÆÁ ü¡¤âçŸèɼýè ³ê‘õþhÙ•ØmJóØ2ÔóÞ ÿa#9Wøl½ªAäJìbò¿“C_È<æx½Þž´Rä¶t5-š1àÇ7~å—Õª/°¤uš¥²þ2ÈÓƒÚWs[öþnÊ^ ¸¢VX‹æ;„¤$D_Ct{\“i8´îx>ÙÍš±*=ýÄä >K®ƒ'£‘TzüOf—Ö(úÌl4Ü Â9›bI÷êQ—gÊâá“» ýóØà¾Ã§þÜâ-z •ØÍŽÈœ±Ð­Zg¼ ˆ–4 ,«R–C„¶Øˆ‰·ö„¥Ózse)q˜¨€Xw®=µBï$a—ªfë) âKÞ's-Ù3 Œ2#‡íÉÊ’þƾ£U©s¹œmà>žCÙƒÙ65Qmwu˧•éôm—¦!3…Àù½ŠŸ#,ª9‡–Ï”¥C–‡ ñÒ[͉–s¥~öH[AI.ÚÀ·k×bð7)6ˆ»œ§Ç Z<êüGsÎVbõ&XòÇ6ªÐ pð†?î.¨¡!²_‘Ñ^ƒÈ4Éúÿ$ŽB9®^§.õ€Tdƾa§Íh#Dþ"~Ó爦 ïÁƒmw´ $:†<9ø0BáÙ >ñ”ŒX«,}©bu …¦ÃˆâEÆ#…î9GS|å…j¨“ÚÿJl“0eæÓgÔ†¶ Öy⢀o­ƒöð^;5è1•Ü2é;pùöQí$X´Ïi·²¸êÇvïzÀ§xrNf9=~[ëni‚–†¾Ã¼©;…Õ»ðÿ1Aõ_¾ÒªCTù£ ·²ªi¶µÚ-çVTº_pI@èÕ™0sý8 ºr½Qõ¢yž‡J!ñd062“c<ö'(&e·%ÖPÜÌ¡Ðe„;apÚ±pâH³ßõv”˜ÎËàá¡Á8B¸yÏ7¿¶L @†B¦©UÈø\ç¤zr|*U:Æþ?yÛt|~Áµ\ƒ¡‚'´án`0ÌZhàêYØ×¬ªXw±ddíI‡ÝõD á `2¤5à@B!ÁCsåˆ 1ºwÒ:giGÈq „´c é^pe/ì#™¶ÖÃÓ¤!×*2dùNO·z ‚¬ØÊ7é˜d˜³v!L%;f‘ƒYWAÿ¢ˆŠ4¡ ›P`·ÿ$òáOãöÏ€³fPýñ76ÁÕz[`ÿ_´ü=¹rë%"Åß?y0âÃ약fÃq¹{{=5êuvªÒDç }Íã m÷š> ¹Š¿ç#çK ºY"â)•¶^XÒˆ€Ô‹‘y›NÝÉ+`âAê­4Ú›f¤GJ¶Z"Õ`´­n ÃÔðžUB»î˜½Ô&’¡¹Íÿt"Š´Æwœ&Ø#VM/è(53§¡.«†—@1†.Ó\OZ— æ<ÐfŸìÍвvÚÄÅêØ©'—E®=6‹gX‡o•V™HªRVy#²§Õ¬(Ww†ÕF’§¶¦Œ£¶k]_hµêV>|#1‘Æ?É ¤ ¨q‡þæ¢#Zû#ì'XÔ¾ËÑø)ìÿµñ¢º–u±¸ñâá·ZQaˆeÙ_íòÅ‘¦å,R%ÿ8hÜ)wÍEùDe'ÆjÞ« Y ÑcR¸Ò,Â)­I#Vn„Çå@š¹Q†Äš{3ÅÿpÚüÂ$KZ°YÆ-â"ÇÓÑöŸì”nùÈÚ1±2hxfˆPŒsˆš­f‘QÖŽ‘£÷@è1JrZ†mwîzMˆ°Õª?otÙÏh‹Ó£ð;ª]oqáÒ„ºóq×nìŒÒQ¿ªüÛnIJ”ò6T_x0çW—Za-e°)˲3]ãÚ¡Ù#Üþ¡E°nwˆ‰ #~Ÿ·ÆÙU5€ÜÒ¯3q“·-0Qô—”ÐPk Íý8¬€¢o6­gu –¸XyËX§÷‡-øÌ¨UËÌñäY,öƇ/¶§A ØôF©û,[I!¢ ††w³‰Q 1“Î#Î’_Äè?# 7=$ø6wÚ˜ó3¥i»äI9ãuÃÎq¢Ð,ò pAÒ8»KM‰(I²Í1cÜéÄ:œ¸ª¸6oh])ôµ²ËÌ>ݵ±#Å·ãÀÕiž š¹/àÍ›x#<¤Ó.(Ö›æ¾ù^v”¾·È".]¹š2N”ÍØ™äŸxnµÚ+n…}Æ¢ ôÞæ+üfÝc«Å¡q™Ô×Xa2®žcköaS”5ýiï¥nÛh÷qh ¡ž¿ªE`(4;‹SaU ÃK;õãöCž™~ P Ê4ü‰©Î^Ím æšÔÆ qá­/©U^ ×Gݹ™WT nÉŽ®'—c‡é¸DN|¡k1˜'“õÚ ’ðM$H2Å;j—ÉQk,€ƒ!¶ Öõ““È(ÐãÒçT†íˆÍò”¶Cæ–5$v²d¸=ÓLäzöÏô„\v&íÖÝþ)jÐà_GÏÅ–2­™ A1n(¾€sÑX©Ci(Ýø÷ìal£ýþ €FnA5¼ò,jÓÕ{ nìØíöÔܾrÝ2Ñß™ÿBòýHöÏYpøØO:ÿX‚~ EF°k¨ÐrºÒÛ]r¿Á‘A¬ML¼Àv¹§R{#ÝÁ¹±7s—î‘vŒþóê¡ÿpAœ3ªf’WøÒ¬î•?Ö_”ê{‹ TÊ´Óša¼9¤ÇĆ–üã—ŒÇÝKKˆ¶ɳ²º ¬¹mÕ‰u8,ÏX…Üó;ŽxÞÛ¾a’† ²gm}Õ>úÁ.Ù¢,Þî9ÏK×"×Ón˜Ýp>oº]7 ,¼‹È·Âˆ.‰CÉeŠzžr¹ VòÏSÍö› 6+#èY‚TÖ†N>çÈÌ{0s‡,dqÁ%½at‚$–uhׯfºæ®zÆÝ ¯OQ¤NçS¹ x³q'° rVˆ«ú±±ë ó;®ÙÍRPÝÓÞ¨ù*¯òûÍrÿhÜ*?áM?FtwÌ yöþ~¯Ë‘òò¬&T*¯þÂ@ô⌲ž<þ£œ"¢Uù÷i:Bòj¡ W‡…½–[ï‡/Ü{Óž£79Òô㼋h⿯Æá{ž?‰ðk÷€)oHþ©f#+¥J 0¬­Cü•Åw%õÝäâB„f·ÈyèŒGªÇ)X‰q¢$ Zpãê¦Ú"ý˜`#vMÃSѼɒ…cF>Øæ$á ¬Vuž&ûRTjdK¨Ÿ‹ÛÔv;_hçY„¹K)¿uÉöBÒ'îÞ q ŒC„ÕfCä^²‡Z;©â[P'$°¶wéF0–¶^1'ÜŒ¶Ú¡ˆ8m½ÓØÐNeÑg°BìÚt-¡jž4S¢ßÞÞƒ½ˆ•F~·êâ]//"0V»òª18º™²mÄ"·kü•w¡èÇ«„“u©Ä þ>¹šÕVkañ¥¹I¿˜ˆyyMxÞÚËÄ ²,§åý‹3Fxáóñzõ ÍjtÕyoîf89þø~Ù5––cÏšßíb Múì>vóØ÷œ·¦8:çÉ•°‡¼Ä.z[I?M¯×¦Ÿœe‚ìðÊøwëb´‚" ëÍ3j¢°~׉n:Ó‰‚E\¼Gzq™îÆ[ïÏcNGÒ"C›4K] w+ðzÀãÿ1±KÀ‘‡x¶¨`ò:¾ˆI²ÊÜЭ¹’bC@ÐMˆ›J‡Jíp+Ò‡” ‰ïÛ\B"k·w5³ $ùË9¢.sð³£Ö¤M£¬%EJd¼h“®W99mw…ö²%ÎÅþLS¢­¶-Ã^%TtB4³Â”˜·úpÎo)· Š0zW2À{>¦žjNéÍ+Œ¯Ó9 µ”GÛù6ãRÊ(G±nÑ.g&N®»'Bµ)¸  ­0)ó‡Þ‚_]Öu2Ìp¢ºªÈÇ=0EŸÊêèx”ò}Ę#ºæîïR©Óè%©n‹ëÔóÂ÷Ã-Ûø ¹œòÂãÕÅÑXèÌz²i¬¸ SÅÃåùk÷“6s¹ÛŒÕ~\‘6–¯©rLJâN5kG¬¼¬FšwsÍå ƒÜ?é Í(âÔ¶|h>›RŽì¶¡q6­â¨O„©ã]µæ±Áp 4MIt‚w µÂ͇ë Î$U’Ò7—‘‡l‹ sôÏÒô2UXý)Qjp+¶ñrjÝö63•»Ò2i±P#Hoià›m¤ìØTêÇòø'³ãZ ç¼ÿx& Pò¤¾ø€ÛŠÌ©!ÿTŒ9Å“Ð/ïöŒf¸Mã5ÉpöZ¥˜ó?Û§3:”ZE¥¡×ç«ÏþÐ8^šã¨ù¯Á|ܤ!VõÊw‰g4º2eª_5ØEº€®d ËH]¶Û'½ßØdÇà鬪<ªhŠB9®ªÊÔ9™jT†‘JˆÈ_BzùçÚdÊ“XQPˆW‡º&÷(pçc êVµ\Ëñs¦k ¡­Ù×n„Š›æFîX9ïH^[ŽƒÐ®åd`²;™¯ú¥x/8"öÇØg˜%>8d‹•<{:æpnêºävlÃ~°ŽË÷t–ÄjiòPŸBO|^hôKÈ‹Ý×›¿ð4S„ïH/Æ(] k'sa¿#ښĤ¹Ÿ½‹ds—P'",ÔC.ò¥Á¼L1 ÓA¡”¡^êx®jLb Æ{ÌÏF[y97Öi ê©ÉÏ«E›¸o㢡Zvh™‰©€«sP2´ÖŸQcá‰úܰäÃ/Yc†Å Ù‰…&µÚ—…ÃBW$á¢÷9l™#tSD™ôþÅÂrEb¥X¶~‹Æç±*~Iˆq°QV¥4ùÕ<—kb¿q:GŸp̨(2¥F2¦ìèÞ¬Lô#=ú¹³ùµžã|kú–ãO× ç>5%cáPßÓJÒ¦bNñªˆÀ—éÕØP×§‡"ôÍ}!pÁ *‘Q²ºT‡IA=ó #Áý#¹©Mï¸túøƒ3=Ä?b"4Òªµ&mw žãœ_asïŒi“¸àqë|š–½™ ?#zÙñ¡ T*ˆôÆXÚ>;NfÓ–«,ɉ{} ±°Â“ R)ŽUq¶¥Ù‚ý޵Ìáa ÛßTæ¯ßÑ PC¿ É ÍÓëÄR1Š\ÿ‚QŽ«’6‹+zÛ?Ô†ƒú³ñYÄFsš_ù AAˆ*½áÞsce@*]êêgwQóc¼^i²Ùª>ícžø€yè…ž¤fd»ÿY\Mw@B Z]”–’*Xz×….àCöXòžf€ç&Á¯­Ø#n>²KOŽx¨÷·.wWÎÁV² ô€úÏ¢œè+µ¿6æŠó„Øé}{ä¥5!ýoZ=ØÖÃ’‚EˆÒ¥çâàj¡˜x¢Ôº'üTöÙ?Ýsx$B„07Ùc!I#˜ˆï³êº Ï‘?>ºB×Éî¬&V?ÍÉ$ úäÛÍ­ØÍ&„?ÿ¾@½X`´ûØÈ‚§MÂ;n?Ëgúß&±}t`p¯(íOüQ‘è_êÅRxä(mb™^ðN鋸0ÉÕ“ Ç NÚ{XO Cã áQ=ï†m‰E¨½úh„/éfÏ[wÒ2X#ZéPgvbQ?ùŸ&:øÀËbÛÅ8¬À ºÔDаèDS`TPïÚÉœÖFZzv¬ûvXœzùFÕçÀ#IÜt¦ì¥Ð=T†ç` 3®oòÿ3ã8–<äzxF½@ ¨ÌÛt³'9Þ6T3– Âøà71‘|7² «)þ´D¤£6 “#Œzþì·h‹ ÿ7hßÀÿ\ÿC—-Ÿš÷1¿¬bËnŽúíhp[*ÞÄ\Ћã„­Ë“\Hoå<qË4Üx}n ÛûVŸº4ÏO„È kÔ+\UXÒ¡ ÒEåß"°áB@¢µv“5 RZ: ÖÕX0Þ|ôÁ™å>4Q? ‰SÊ^ZÙ@ƒ‹Ø7èÃ}ùŸE†­m3ÿ{òî¹yƒ™ožÇìb–¯±}|i¹•c§Aº‚Ûw_ŒUÓãÌõ°ý/†qðr†˜à ƒüž>3ò:dÕPþˆO“™×F¤ƒþ`àáž2j’÷EZÅ_DÑ'\’§Ö&+\¾{ÎŽ(-UM À¹±ckbW1ÝAë+D›Ú(‡æ‘&‰‰Ž6…†J˜Ã,¼x—µBÞ—òY¼×ê™ïu¹ÒRó*c¶ˆO€Í.F:ÂcOóx¾ŠÌôýÊvú—Yá:¼YÔË¡b}\€¢ëÂx…|ùQÈbtaǦL¶žñvY#ɤ r+/‚Shmýj„t¢Ü!=yˆ.2=1o9<`Š7šÑÔwþÚ6‚é¾JBþûŽÜ¸Å‚f€¹±%f·†òsQB ån2ÖQzFåã"úT‡.vÌòøÖõ#‡«òWƒ*£A™ª§åìTá•Ë,¾ìW-äyoS⯠ßc „/¼dÚLûˆÂèÓç€qlNX|øJíru²²:[»ù‰2£Å- ñx¸¢+‚í3» ”o=ƒXˆ0…ÿ0¨ÏIÌè t†‚“êMcá¬b a×ÙXZÖÎ&B¡,Ü ¦+E)\áÏ‚ÒÌ"ÑœÊÎü©Ng{X;¿cìWîý]ùC›ËNVk÷û’"Û>ŒW¬…JŸ2• ȃ.àcAí°q¯WÆíãB¬¡³85¶™£ÝAê“¡¬\ï¬W"{³ËG\Ý ýªo¡Œà_x$÷0ý¨˜ûšìgÆÜ)pXø9Öˆ”¬‘ išðâ‹–t0&êˆùÑ£·áž‡¸pŒØ|£ÖHs 9ªÃZ{!ØfðЂÕ9æÂ³ôS2|δãÚõf¾ä¦˜Y‚·ç0æ´…6Ÿ§Ó¾¹¦ʽ›eM—CwœÌ–•#Fì´yÁ”Yv€˜æ“¡ýÑæÅ¥TþR”áèÁá¥x¹!{¹¦‹bþ,ª‡Wøë¥Hk°‚?Ó2v¢À׉ "^2x³8âw²}\¹)‰‘0×ñ9‚hDV l™N²Ì¨¶Ð'¹|(osš+¥Ïó,Wö»Š›a€‡Kš/E±§¥ÄiDqñÚå *øÆB-ã@¨ÍÖÕ-î×øÐ0¸pBxÆL)h“\ú#äÒëaBX#ˆµhfYôŒñIé±;¦XÉCå£U™ñhº²ŒÀÿ¼ñ‘‹WF'B®'D¯šÉ²æ\]¿é¹!$§¨À_§.ਠ€P_.°Ó‚ÒuCÅ{©¤ªe†{Hs﫪 N`\`‰ÇKF^á·oʳ*¬ÉÑ38W8K‘0Ÿñ3Û«ž®±5ÐŒùP‘)±,2.ìÉÄ ýïJŒ`Y¦xTËæ»W_ȈVò¸çx­ðÌ0¹Ô Ëaåü€"û˜¨ê Q>¹’½·¾Ô$a’ ¿ë ,ôÍþ„@ž>þE1[ZRm%]Ñô6ÁêÀ™±Ž×Ú‰ÊWxvMnxb6å¯òí×Î6Ý™Ú,1ÀʸuÀ ‡LaŽË]PyÝÇØ¼0áÖ³Ö·MxË ñ ’×lgê(‹‰H°Ý%3âÑC´ד×Ái€e‹WööÇSiJÊ5¾k[uí!´F˜ p…ýæòÈvZÿaªÕ)\kEØí¾è÷ná‘¥J+%i!”É“†™»Ûµ¿]“ Í+⧯U1aC@½•™åÅUÖ’•¹<4¿ ¦~çíVR›@`*if:sÆæÍ\¢‚èd„ë4“‰.Š7–<5ÎÅúÝ%äô>3+ ¶‡AÅåþÎU—0ïœM!à}©à ú…aEÄûÛñŸ |Å ªö¦cʪ4ç;¨sÉL¼wÓÜTT±å5±VFüÕÂ:ʯ{é•­Q@WÅäAˆˆß9øEÆ'î7áeì˜ÓÄÏ}ˆäP^|œœA£ 4Á®º5>‡ørò <>Aš@y¼ˆáøëG)ûßñnûóò"YU[ ½JN,S¾ß~H†iÌ{¦^È`äWi•á?Ó”æó÷7BIâƒnåÁ-\ºùFÐ~´7ÌMjòzCñy³{xŽ åÛÈùŸ&w;ÚÒ3^·4÷jpÄ §Ÿaj,‘+þ ·Ô;™ú‹¾ªñ- :?y«A=“¤)Ð>Üuu. ¼DÖõÏÒãýÉ*ZG¨6éøb¶ëØ l*ÈÁÖávʸŠ:/=„›TR@¤ï((%/ª:êbüÚI9zßT W9¶6…zàõ³N«ºÍ)ë1ä½€0÷—(ÎD&pdHsp±~×ÈíÜF®7Pkz*¬µ,ŸÉb¬å ‘wÇâ* •Z, $gˆ#­©0s½‘U¤ ü¶mwj†¿lrLDTü¹"hêß•› B­£v ÙF9ˆ•/Žçt8p ŠøfæÜS\dÌgãò~Àû“BÞÃäù¨ŠŒhh `>7¸òYÝ—àm@˜Ö¡)´º¨µ¼qeÃ&¥Åûq’Y¥º{-º¬;íù˜«šüÁA‹åù¼>‡ŽªKz>F`(¢Œ·ê[»ߪX<&ΖEäX†ä+8ão{råã&м‹d…ŒW‡ùª>çöbž€­x³@ùÚVõmŸ¯æí£¦ÂL‰ò/9%ZoeTù%¡_<›×ø]2™e¨y^ ‚Ñ«ö^ç$ xg_¼6¿;e¸ðÑAÊ¥MÄ®CVq¸ŸS62üê2Áÿ: ;3ûúyXÎ#¿_7_É3³Iyêz?=ðE´Þ2–é?r±°ÐÅv‰“k™>Ó`ªƒú™r­"¯rK-Ç K׊ƒæ±~ˆÇ~„DUÑ+ ±$)éBк±È(dUª>cVô‡Z‡ëSÝ;Ô»T…š¨í¶Bƒ—ŠCÿ7³Á6‘ ,7¯j$kwЊe3Óë×!Ô- êOŸšSÆksÿZ³á‹_þîDXп÷w@Iÿlž:;¡r§ˆr½G)¡^ÏÀ'E;>>kÏHñ¯º+1™5:ÁÎDW>ì`ó°`®†¥ÿ1s³ ÜÎÞêOV+&«Ù»j*âÌÄž•’esœçD¹dC·¿ #Ò¯)g²&¥[<.3B[ƒÏýbfˆ—©íwCtfi3ö¶ò¥0…½Öؘ☷9´÷Œì=ìÞÅê0vì —økõ_¿EgûNA WKT÷¬ÁRLÌ’ʪOøÉÅÊR••âÙƒ{ŸÙ¨Óvj¦Üõö AßBžª&ÆàbÔâéz'ÌŽ ›L4Zì‚ÞÕSå#\Ø )Ô&©p2dµ#{.&2º¶µæµ:çYÇ÷ Wš{CS¥þÒñó*ò1-Ç®µ×RÜ¥H¸ ¸#g «ƒ‹º‡˜­Òù S)áUy¾~ÍLÛÄÑ9|— •Œ9®S›´‰· Î.…ŒŽQ•JLÈ>„µœaì¥ÌãIhÅò-ÿNZûF(óѳ´¢X›äÈÖLÖã™üºD¿ º.¢÷˜g>Ùñß®¯¦ÕPIýwPÄ-lGªLOÕi'ì H8ᬪ¤q¢”½:_:h.OwÈ÷IDgô € wiöÞ„ËvHà᢬ÝtÅ1x¢mR=ýü¿d࿉oÊû}¦òË:±ßœ _kÎÚˆ%CnŽ òý¸¬û9·”H í Úÿ [sõý¬)6àÈcýOé]σÛE–j™u Ç©LuÊ)Fcz¹Ù4rî8§gÔÜŒ<ǧt½~)óSÜï´/h0/§Õ" ¤ÜØx,¥¦Hëd‹‡EÍ``P1—8«R¾„M›x&+*P`ÇcVÁº®õAÐ˦†s­ ¦å(ÅØš©–ÉWru5/q~.Ù¶Q«‰OÇ{¬!«BU•9#¼ñH¦ÛéD{§QF6õ­0(#¿V HeûJÉﶉ ³¼Â/:o€ÛáS˜íŒ×ÞHzZOÚhÒî:ÒƒÐV&ð¬Oésò§!CÄÝêýV7Œè÷Ü3sîšÂœE}&Î'{­É-µ(ŽMª²r‡ê±tJ-S|ü·¿/´•­¼#C¶iwüwè?%9U$Z È.2g'ÜZƒø^ä¢ÄÄÁÏöœÙüÍ#Ò&󢆨sËÓÅðK6‡#ãLA1Í9SZ?CŽT7 àÄN—Ð|x]Ñe§hĦš]ëár™·Æ¡I¡ÞfDÔ|­u¸¨í¡|n·ž8x4%øøºþìQGȘîU±Þ(øÐãE Ëðµ2Cöä\¾Žÿã;-p¶eòú Kzù'þÖ² o; Ͳˆ 圛„cŒ¬eêk¯mdý‘ÑmþµPþ÷Ò ¨__:fÄVð¿SªµÞ† aƒ~ÕÔnkUt-ïå§æhd,.ðÛV!ŒÈ¡\¸Ìa ÃFq£6’3:R;á'ÈŽê™òË™þ'„_Ú£“MâÜÙ›Áª"ų½Þ*Ræ5(ªžµî)ŒÉyË‘ùñ”-8ªHE޶pÌÆÌ´ { a¢!²Ò‰Ÿ¼ â(Â_̤š•fÕB*o×W¢p¡ œ½â‚| •mB£›.Kܯ,ˆõ¶Xp#é–]ÞãðPlLg6k/wuŒMÏCP©zÕ q’“¥ÐaY³ úõœ0œ•úv¶º#kÖ°§~ý*üx÷îTå»ßqûö`Ap±6¾<³¶qåÉÐ êö$V˜p8žO5Ǫzî}ÅŸéÂϼì(‡%ÒÇ6T4—IYM „õî´ö7Å8áÄg ëÍSN]uxïs1 ꀥŸ² øpœ¿>£’¾ÿ,&LÁä~pá«.ÞD½œ˜ZeV„ì W°%ÍçæƒŒ)šTï.$ÁfíRÕ?€K;åäß³ZÕŒ—Æ¿’±¥-3¨Ñ¦R“­þ^“€Tš.‹IKUû @&«OAƒëwñcÈ‚_ÍÞ `QjƉ(­(Š?l nÈ$„[žÄøtJ¢‹µ'Íb©Ï¶"§?5°{ƒ;Ý-Éa¿ ƒ¡›Ñ0HˆîÓÛD+(9Ò¼m‚3ôeëKÅŽ†™Ó…ôßEí¸PJw!±þ¥ kðù¶®)k%:NóQ¾vh¹$Š ys•ë†u ¨Fq>0ÇZÑ4¾ôJmåQ™9§ý€PGï·‘lŠª p8}ØÄçWÓ>"pyíÐÆïŸ„4ÊÞS~{aÈqøOå:ŽÙ”§KRš”’TQ§^™ê ÿKž|w›Œ©ó-Ǹ:WÝè:c7oC5ÎNÌ‹ü§—gŸí*Ä#½-ÍšÁÛIÝá9;¸@š^n!k›kI%èArTl@ôs5¹×,Î/ñLêj½¢ó—<‚ò½¥É70Õ€%xú­Z>·½ 22&~ú u€æ•mÕ¦r’ƒÉ‚:7e |l«=½Ó¢nÑ„ph¥{¾ÓÀ–ƪW”аpÂĆ’fN2íF;qÿ6Ìi¡ñÕÔùI|ÎZîD\>cï/ÛxмzbB~œb‘%v”(*?²CÈ÷Šc¼¯‹íwSàÔiAuð¡Z¿hO ™QK_ÏVn¬'(z3"3LæÍ@” „ÌÖ8“­g2?ÛæNU©)ìmÖ× ÏA‡†óå."œ+8ãö*QéÌN{È5{­E'NXÎHç¤ä ƒŒ,FÒîõ#¼ÊÀÎêü6‚ݶÎ& wå|B¼–y¤IÄO1a„À륤œDâÉËq½Oj`I0'*Œ¾½ü@–ÝA‡úÆBKÊÏYN[³*Ñ]¤T§ì¾ìÀv1[b?%Ü›ÉDUå>¦UMßN2Îí\ÏXySØc";Ò#8 >-ê7þ›ÁfÖŸ<~.ñæñÄS„0[È©Æ$¬UÿÙic09º jP ‡ ftypjp2 jp2 Ojp2hihdrcolr"cdefjp2cÿOÿQ2ÿR ÿ\ PXX`XX`XX`XXXPPXÿdKakadu-v5.2.1ÿ ¹ÿ“ÏÂÆÓ L³ 8¡ï$§yu zP&DŽÒC<½,¤;cêݲ  À¸\ÈV6¢q£@µûù,Ä«1tô+·Ñr㢬(Ü(ï·Ùt¶ŒXCì[B.#ç{3ÿ~fÚ“ƒèã€Ó ‹Eݧì}¦ '‰OkÆP+3°AéÊS^j*ìõ¢??Bï@“FàVeö<“ü ÖmÈ‚ªH ¬j1·u;}Õ?t–jÌIÍOx­|‘àZìš&EÁA^„Þ°“·«¢±)Ö€€ÏÂÄPdâÑ—ûÃ2÷Ì ef®Ï1lO³s—AV¨;R;!ö_²G^®ÔÃÄ‹bGÌgCiݲ²ú-„âé)Ctî/ÿFä„*¸GÉ#/Y%õ«á`3@ÜZÅYt–gÞ&¯Ÿô)—Áé¦a ](.Íèsh;䨯*°ýÜ"µÜWšÂnb«¯cµ[¡ª¡ï5šù¾£ˆ! al4UáæÜ´‡iÿIædñ5™¯’$ÇÚ5?~GõóíWš»9pX% ÏÍÖ? "?7ð‚ø™BóÛ>žo¾X”.‹cg‘׳;YF/Ye‡óØX öªç‰cKíÏÓg-€x¡ ]Q]òÖCú–¬PEÍl*,½ZaJ=yñ*oðÉ/\?õ›¹ý¶ô±0 о°óT”éÎ~ ˨„¥&c*Ïs¹?²S É 8Gà]9ÜFO(bš›/šK¬ÇÏ\9v¦¾§TinÔ÷qüÆq^ZTíœöÓ‡ˆ4 »³J«æ`.TVa•V‹} k©û>— ÔÛ=¨ ìJ-w[÷UÖ€Õmr7Md£¤ûzõ9WLÓÄ蜮³®¡e\R ;r×K¯9–¯zoæ"wÌÄQsÅ¡.$Ëgú"¢Z¸ÞÏX ñn|Öß)æÛ½–âzÎ"¥?£íR ™1}Ìà Qû/4í©¹æ;³8Ô׫Ç÷èwœX¦£à4~ãe± V;gvÝÓº™²e„¢ÂõIÂÆøR¼ûˤ•A•3xY…€€ÏÍî~t”ýŸÀvÖHUª+­"F“½zÍV<:A[G&ô£…íbqÛÈ!¼¼DT*óù=•€Å’§Öej¼8I¹1k‰rÖA¤mRHo¸0—¿ *¯È¾ªlX³ ™û.pé–QNp|ÿTækbaŽNGùy{R¤bó.UŽç%’H¨S‡(®ãH4 ç‘L-EÇ0r¾Ô¦ƒ¹êŒò…Ae4ŽKЬÛÉϘä>cÓï“,OÃNwòò×Te çåø|±³Øñd+IŸåÙa.DZ1*UU,4£00˜PtSRIZ²p½´òB•V~:âTm–'ñ˜¨Lj(™Y2äîæâaq‡p’x(«Ó¢¼gº¾ÍTÿhWyÛ$×GŸÛ>£§û%í —"ûÆAQ•&9¶6þa<“L«mrÆ„þ>Ó×ÕÉÕ:"&МÅÆ ×˼³þ$†¹øQR‘–ã$z—4Þýâ´Dë:µMK²õ¥ì(0$µvgÚ]ü a•ÏÏT§ç®1ùêÆi(TO­·'U{ ŒÙþÍüEˆ¨ug¥áæ›aæO=¨­sÞø·í±Ül„®…c¸c <èï©­¿%F^2eé½D…[v¯‰è¬bgö/õ~d^\hË膴ã¤ñhéÒeì»^)‰fïE´Šê¶±ÍÅÅ`(Qw·£ö­W&5‰Ií­<ì ¤¬}÷gÛ%Ûea“îè¯yayâm@«å <#4’;CËàø áŒqØ_ð¡Yñc•µ©ÞúÔP*äµÜàj¾öÙ*»ˆÁ?Z“ó—Rîªñý&¢®™\]%~DžÂKm2#÷Yèå1¨fÐç/8¼tÖòcuŸ&­bO<[˜NR;ýÀ1Ÿ6¢nHŽ>¬ò‹'³®¦,~Û‹¸H•ŒÇ?9ÚŸµàj§Ë[ÌÇ9ÖØ"’m™äZQ†³fÜwLVÇT§!øá]L'X<ìEì0½vR✃tÖéÞ© HªO…³©¢¿”‚®+J‚Ï/Ù£Uo!zÌ|™Ù«mu»½I|!¬­KÈÅô¢Aš36‹r•Æ€€ÏÏVçç°‘ùê²ÔU9×ô¤¢Ô«X¡³6Z& diʶGÂÄœZä}£Õ©ÐÚ{%Goj—ž(£µ[jËs Ç#Âêsÿ°Ržì×Ìù£ÒT×Ú R¼ðãÔDÆ¿€cã_|™"ð­yœ_Öf#¬@®”u—uæÄ6­Zƒ¤†È6ŒÅü™³ÔWôUŠùÒÜþÜqnÛ„d©cM„µè¤ß"êÕtŒÀÔÄ:uІôJÇÙŒêÄ mìýYœ {2mMë. '¼î_Æ^ vÞ€t™á]— y©^ÒšŽURŸ…‚»€ŸeÁdoU“w¢Të÷FãOù$Õs '/¥×[¦y®d w›/×>[ß'©&…-w“!ÿBµ×»1Ý@¶º:N‘×RF­¾>À(…ZWO=ÝñÏ*ТQ*}!T,9!‹¶Ÿðbé‚t}- JÏ tûÓ(]yTÓÏEOÉv@nô_Ñ@.ˆt¹ Ü0©å¿£Á 뙋ü”ÑÏlÓéžXg„VÜL‰XëMWù,È?ûÉ/ƒ?|,–vB³`iTó€<ËžÊÎÕ#Þdçw§Ï÷R4€•pYÁÈœ¿|ß±áQ'¦b-@¬š*Rh#Û=Ää‘2½”à„J°¦¢ÖÑæY0»Fç@Âû2D†WE+—•‘»ðŸ¹¢ÆTè*ÝE†(ë—ÁJž°=¾ñ¨˜ÏÞÞ¬ï"4€ìeA Iè!VÃŒ1…„@U¨x3ñƒè½î1×õìÖË|çÁÅèÊÍ´» \ͺ]4hée’ ¼ o#þ: U±Þ§„€éyá$Æ 1†4èκ Ư§½DUçœ[7](Þ‹õ!êþÆ¿²ñúÍ·_ÈPÀßRÃR‘%ë‰ÔßÖþ¬Öñ8Þ»¼S+2 „o£–ócÉŒUË$pal({±“-ú[ÖÕ“®BWøæ½>·aÅ Ê?ÍÓ”IŒ‚ïm•ß¶±Í¸_´¾£kyÓ_©&ŒÕøÛÇ5ݼ2­ž=0IÔ°°¾Ä•¸ÞUïY úu?_&úägNô®û„˜Î4R‘óWÑ¥ ÿ a䨣µÌ“$ðÇt tðôG¿Žuœ–˜§m«šÕ™wi»“(¢i‰õÄŒõïÉ›DùP¶|Ì£óö]àã£Ã9GeX0°ý ýêîîžبS¼þ× yHðcT8o´—]õ­rLކ!à\ÏÏ´¹ùöóñ0ïdYá~z¼f µºuÏiåm¯ŒI”ÎÙ»BùѦ¢|˜GÛ5b Jíæ§æGÕ71,‚º¿6ß猩fĺ¬[ð\W¦9®ß?SÛÅ®Ó÷zÃJIâ W˜– Óª.O-Úâ5Co„ül:þSYóùŠs܃–rd¼”ÔôCîѷ﨣º÷øfÇÕÍ}©’Lg©ÀWp.ª[è´Hæƒ*_cc›ã©À „È0ÜP ^ЭÒÁlìvo*B¤Œº«æýºæßXyQî ©§H›Íz°]s—Oþü{«%Û»mZ¦ ÙPæÆ›fD;BÚ˜'©ÿ A*ò×ÐØH馨 àÕúù“£õRãÊû >…1ø¾y¦·4\#R‚ƃ5¥t9¤I±2kÙV©V‘±ö²¢O.Mq—N¨N’ʪ¨‹/—¾:” 6I øö ÄD‚-væ<|‡Ÿ¨&Ûhóekºk¡MtåÜYé¡QCE‹­¶¦þ3ÔK2ˆ¦¶\õÙ Çf“HyKÅ·Ow®„tò¢C‰ßÁe£°ˆg^&ý|Ÿ÷Ûh¾4I Bg¨±y79Ãò6–L“ÝX%u¦‰rivé&KEÈZ1[ÿ~V©Ì‚h™;MKÿCF“­ÃƒXT°zm*'Ø' §à]Q~0×Ù<›W›ñi°FF½Å‰?ïÈCøïÁÕ-BN¡lÝ:²V‡Ü>/ÞºÔJXÓ\Æ€êÕÀÅá-(qëëÌxøu‰ÅFâJ!I¤d*c üm¸v¬I3r×Ìö œµÄ-s®â¼3ªH"»bKþdBØ ä¿w6Y} äŒ#´›WÂßÛå>±û¿#2¡ð¡Lu?•ü~÷Ö_l{äå5©:§'¤7ªY¢.â*lZÈ¡XËæ.΂; •œ¬“tÒ` rʵño©S¤WÂ6‰±˜®Îtp¬ñç½rxY—øÀºS9̱اaþ8Õifš äŒE¨‚V8Þ–Š°nX¦œ@$sôjï¹I֤탼Õ™ÄoG…l Wo«…]'ÃL‡¨“Çð—°~PTIM[h‡Í­ý¥þ­˜çGæ°Ì8xƒS´ø…óð£ѶoÔVûbÝö8¿ö¶S@,µã–Ö¾Zéõ¾ßKÉË.hŠ„…58µsâÍ'tª ß²_ÖfXˆNÛª§õQB£I>ÑjS “}"Ø&ŸkÞ9Ñ©í˜C'ì'êí8W¥³Ýe` ÑíÑZE¯ô|êÓ¡Ð@œö=ê>ßÞÀ_k ÿ†M*%í̉É"…*¾¹MH†&Ò²HNÜ6SbÏ8ÐRƒqÈ7L0ŸŽ,Ávgqgñ Ó¥™øZ)é‹þaÍÅqå]ÌÛ_„e+Oò… Õ=Îá ÒÒ»Äå¸S‡õwä{3o¹'í‘vÒÏÎ7ƒ?Šn4ê}\ÆôY–8iSZYM!ªÏºÂPp^M)úæâ娲U®ú†ÿ0„}RX7»Lqh¼‹Í¦ºtž‚žu¥\®SLZw¢µLèÿ`ä×~”Éë8¢|5V3êY/nÖïlÏ£¦ eêh¨,àxlS1¯ÏÖŒðÑX8 `h¼Í«bÝlu–äKNØß]Ñì;U9ÂývyaôYëC:qgÊ=/íÍßSÚ±'ÝN´·€HçIªç MŽ“*ÏåΧ=Ú9ˆ‡W¥ùè[º´„et}ȧ–k²µñ5¸Nü)Ý|”ŸËÕ4ó§dÁb ãÿHýsËæ¶öÍn¶Û¢7þÀTÇÌ䬂ŸqóÑfŸôÉ]|õT 8”S”|ô.©‚KÉð‡ÀB˜À¤—†áLŸª¬ÀÿÚóþÑ=ØOê–¦5u¡ÙO’7¢<ÈÀþ.È—! }F½áZ;„wû <Ä'IçÕrf š)c“Ѱ£ZzÁ•òÉ35XTÍ”#ŽP’bÓ ¿ZÕ:Vó#hµò9Àž1¡>-vqB‘þÉÄóÈuçÂmS€Ïi*hç7‰"󒾇£þ¿€Š]ÿo™äÌ·µŒã7鸢Dªeó‰S'pÃ85*¬—xh¤Õ&Q–ØØw)BÒÓϽ&7{íY«Úõ{ ¸°•¢U Ÿ)ŠÀÜÚIØpÅ—×cÃC¥ºvØì% k‚qÅ]£ÑºÎBBà—N”@  sn+»ÈB°sT\˜qcèDö½Cyl½5é]°`ð¶½Qk—… *¯:>ÿ»·÷È—âò§0ë.¦yãóz\Ô+[Õ쨋 p,o/ö©2@Š úÓOÀáæ¸µ¢ã޽K¼è}ÈMTMGñ~|€Î»ü·^ªnÞQÖñ»M'Y²[Šêgl4u°5ú#åɈëàœT˦w¯Tdc¼aé£Á[ïÛ„P”ßÄtÓë‹ÿw YÜ@Óæ€I*j~%HÆK§c6§ÉQ<û2Ò‹uüÒžY¸æ˜òËÒØGqÇ”¹dbÍôéÈñj…·!6å”)è- žãʉ:Úk7Žgä’¢ü@Þv 8-Ñt‰`vµÈ ÷qDÚ˜Dãb¸-„ÊäB:~¹òÖ×- -‹qqƒD‰^°$w9`H›xÐÍÍ9®6ÅåÍCü‘éwô´³ÙPtü"k™T­‘ÈZKÈ~ï6 NU¶#ÔÙ>ZÔ³^&´ÿ*uW½¢˜‘‡ß±E\ˆo´ŒîÒµµ›~`1âbV¤Žv`‘·‘{GÐ3°ÿ%M~ŒŒ÷ ¨šf‘ ÿ|žvÀëç)Ç€M¾"óóa©?É/e/ âp.lè›c1ºA†oZ+´¥•ÝËT²Š˺¶÷îL×DâûØ»³óŒûw˜Û,ù Z×p”(œjQ¤°&(¼Ni™Å\êï°+èí?Š<–"žq­Á4~6\W„"ðD·Gÿ±RøAÿTúÒʇyJ€Ñ1ÓpNªª¨˜ªPmæŽ ^ÛP©]¿°`}±„n!Mè^*²L¤äIhJO’ôE&Pö,žjŒþæØø­Î ¯ $n}"§;&htÅGƒŽ/U—×(5*2d2¸U8Û3ùí­CÀ ‚RL®¼ ýí—ßV  É¿œc© Àý¬¢­g¸^¬ÿ K—ŒÖlÊ3ë8_´‘í³€€ÏÏ·Iù÷eŸg€ïe=+ GÎO4öƈé‡;†tYžJ‚°Oë¨g“NAkf-Û¹˜¦¬´Þ@Ц©Å ž ê—žòÑåMF¥"ïî`¯§Õúkr³ªÜ-Á5~Îp N¬Z {T~1&<^3”EÞÕú'DZˆ« ²-ž3Âo>9„`´îs‡^{d{ªègL7?+$‹Ü2'¢(S¹ƒb«ëá,‰ UØòfw)„–“kèXÖ{õT>?2¼®Š§qYGa•°u½pcNÈa(Ó{ìPjô°”îÖN#ëµK»Zl9o¿L¤ûn3º7Ùò¢þ¶gî¢_Tj"˜ýeᵸBVÕšv)A!ë#i÷ϰj½¾í…9†hì°á#*Ë@þýV~zÕy§N`œ¶ÿDä\4ªcðµ*/_qBèöa耭ìCß,y‡îö"ˆõiWiÞ†A,Íça=íbb¼y纸2_Õ©E»åH‰·lC§»Ó2OG½lm:°×SöÃU¹#è\Øú=­MȧS‚‰—h¯ ñ*$"¥rXöê¹½NNP„‚ûó}PËõòÈ]h&ƒ°Y÷KmY—»XÌ¿< ã¨Òè( 4)в8tmêñt Ï„Ø6~ySüâQõ.-¼öÔÊß0󦵹f—ö…¶l/àæwéÀ aÔ¢±5ql„ ìû„oû/'±t'¦—B oþÆêãÊ ŸÔùG±Zho–¿~zÈx$}¶Ðú¯ñ¡ 4AvŽŽÂw.Å®ÎÿzGM²ÚvË ¯õXMI’ôóÌlÈ¢T\¾6›”%9 òºjØ—ÄièRîŠ 7B$é»‡ÔæpŒF vƾ8ÅTÇkY]1ƶ¶j#‚¤ƒÖØK0Ùû|:–=]²#gÚ^$Ðæâ~úWðÝë ëð YƒCô/~„Âf0Gîä0Gÿ-ÁR ˜ÛÃÀ2Š1zC=\u‚m7ÈÝP!K£ 9%ºj¦¾5LÂ×RÖ‰ým‘B‘†/ÌXLJR,óêcüÕV%¼HHDÇk¼¯’‰=¸wï”>ü¾Ãû•³VUÁzqîÔG+óHµ•õDýÜ(BüBOì=ƒ ‘P{Øs0¶ Ïâû¤¦µn;¾‘ðy•U$bó—ÖGEqøâûµd¨Óð~1Ó¦šp"UýmtŒFÊRtR§÷[Ý$«HX­òRTÉ `P¡Ã¥w¸æho¾²¢„0,·» Îì§õ¡4Bœºð>¼ËxÜ7Ð){ ïãATì_¤±V[Í+Š.1þXOM»jLݤ#¿àü½¶Ž#@™?¡? ~™¯Ô^*&ÂÿD¤Ì£fI$²Ó!Z–΃W‚N€8®ýZ• õÈ/ÁÔ¯Y ù¨äCH¸¼-ݼêë3.µ—M1_³ ýå’=Qxn?ÂÛ26’ ¹ì0÷`ù£^Žc£ñï]‘±M>Ž1)Ò|‹7yJñ§½4WBñu×U‘†óþ蕪èJø‚“<оé훣»Ø`BЍŒ5‘®0&qOy)ŒÜM,Æ¥)ÉÒÕ(=ã/á²U­Ö¨žóºL$ŒUF)pŠØ­UðWflô622­‚zŒ¡®ª­_©“’:3ç¨`ÎG³˜¤¸w'QlâiÚœ*®ã°«ÄFˆ_ïÄÔ¢CÏÛ±Çb‡—³|ïû„z•|ÑV¤ÎtÄå¹Ý‚ ûÙQ¹e«ê‘ÔPêÍ¿èÚyÿUã§R{“DbIõ‘ ßgì–'<Û—Œ›Á¸f¨•a;K•>ÐåéÒô]Þ®šâw@˜ à1ÞèŒãY€êyÑDpÑœÝ÷}}ÅR Ê$ËKôlc@Žž-Ú‘5ꥩb£ögûî÷Mú_¦Î ÀéÚ“Òö [ëYg óçÏÀ¦ÞÍIfô… þ\·C©SöбÉ\²3AŠMè¤Ï®ˆL½P8ÑÄD(cÄÁxé¡È>¡@ Z=“¡— ÿXÑ›±„*Ùwþä:ê6^Br µÙmNS&.¥DZ¢<¨j‡UVlìh’ÿ9ú‰â{²5 €Û’I®ŒýÚ5$µE¾R¡%]àˆü“øUÌã¶È7ÈâÔŠ¯X5Ÿátä³;ÒÔÐó-Sû‘ý$© ôãÖ«7!Xæ¹õÆÖ&"xÓžš I ‰©1“¿^= lžUª˜Ædz«»¯/|ï=ø”~Ù+(þ‡ad"r‘O6ž²†0®¥*p ”èÙFj¾¯Æ® •½”C²E ]£Ø;…®C‘¼=eîH)ð³„ù=¾#²™"‰…ݲőÏ7¦"Ãá×,sæq]Öuùeœù) BfÄÇ#D!¼J[¼Õ;ÿOiÏ& rC}u„”Ee—£Ô~=eÆ>GGiÖxÊr3¼0Ñ2g+´zBÇüN8g/Bâ‹ÿxxÀ†³á«A <…õ‘‡ìHû ÖŒ¦™ûš&N‘§Šj3‘X~gðµ$IÙ3‰é“aæ¸aÀröÜÇ|x#dÄò¡q5ÚR4çŸ0_Ïhåc^Ó¿ ºÍÅ’så”ý'm¢ üNö(ÙwQt^:¾‘*Z<89ÝU̪Rb9ej¼ô›Ìê ¤ÒQÎ"áŒv)ß)Òߘ‚ëâøèŸu'ý`£Gõ‘2Ã-L£ ?ÈrÁPs“‰±¬Â¥ãøtÛü:ŸþÑü5èßáÕ§ðè¯øk>?‡F¿Ã¨íÛ›íÓ÷ÿ1ˆüãúí¾—TÐ/x<ÿLùFpUd‡L%Ç%—‹ò$ºö $æ%–8¬­Î!gÒqjÌX³‡â²ü‰Kˆ°Á8ªØ‡ e(j¨kˆ QÐJV3×DV¥º‘Á÷—TIñõü¾|ç”e¥”€9_š0²ÕÅ—Q’¥®gs®G'PÞ´ºŽû-Yo„ kÚ¨LiJáÅ<úÛ%üTéð÷SuÓ2Õ‡ h=Æ$%‹9.r+þâ‚^c,•Äl!’I+ðæ¤†5tET šP!¸¼7nå Œõ!Û!s½Dl„ùãp3‰øàZ÷!|%©m 2š¿@þÊ´;P@àLëÒÝü /SÌ»¥ï€×2´ 3žÖXç‘@Α~Ôx9ïâA&„9*–ÆCýÄë[¹^XMöØt–<¬JpÞèJz;;ýUÚ<Ì‹öfž· ­Â?ÏAàÁoŒ‰Øm¨w~·)*H{¡f?ýßÕ€Tt;PŽgá¹ÚÖF2—² ¿äh'Òƒ›¢¤âôGˆ“·û²Š¡Úwè«h)þö~š,µ#V²eÑì^ô'Hì’h/þE&Iªvk(=t”«z·tÞÄ/xKq÷ˆ3e““q>Ä+yn¨0ÈaCX#éRj×g-%1Êþgg‚¡ß.ážCWöÿ` ™ã qú(·:±läw ÖrÀhJ4‚ð.ÎõÒ†¬âБ~Ð t,6¢âЄ$DA+@Y3’þ33±p¼›ñG±Ç24&ÖÞç07 ßÁ^0Îò¢7ï…> Š+ Æ‚õ@½iË(ÛÔ^Úk×i€k—½€íQI`ÝÃ=+F êН3¸¤œó—³ 0úüÏI­å*‚ÅHY %»5ç›JQð~"±ÔèýÎx-ÐBGµ…ïƒÂÓÇrFñǵkIÆ}Žž˜ä¨ý‡±‚y nÚ;MŸh¢ºUêiCh‘zÈ–‘;-É#‰ÔmuФ”:ývß6"½3?Ìc=²I&à[ëµ½ûƒ¶ëÑ0úYwÜõïSÛ¸±‚ÛÏÇÛŸeÕYÒ‰)«_ ½?Uüåêâ–w ÑÏå!Ç&.ss%›"Ý밉ώnîìÏ­ W\K=è§ ³¯°²dÖðõrÙi $w‰´IìnóR=ßVSó4Òê±²€/uPz];À-좷3ô}¾~GòI;-¼u"ëe„“סpUv2d¦Ûá²íQígFDU}]0¥:ˆæþ¥Iãô¢œ§¢ðã-e›6„Zµ4)Þ¯Áö™Žê4"ËuÞ…g¸·­ w¨æ’ØÇ#â¦rpyÖ:¾,¢¬c«úÇ¡Zh ãZ)+Ña³£ƒ·Ÿsì}ój #Vê-£ç£‰œ^ʼ:¿&Y˜ÿ+'«Tþ/G¥½ ü>ÅØ»,z v’Œ} ‰Ö8 D÷BDú1Ò^›n£È ''k@$†2ŽiˆãAVUƒPºLÕ¢7—Ä–>î º8 šx“Š-û~G”3𲭳؜=ìÃ<@ä^  èÀ'ößîÅvö¡ièã^*m,Ï‹²77Ñçè1áТ‹ÀòB—ÒíeSF8 IÚZ«ªÛbÈCy»¯iÒb+Ù>§[' n£†ÔÚCÝŸ¡Óåϲg !Uú«oå0Å2þÏ¡l€\D3îp(°ñ_.g¤ØHÚ‰Æë÷oš{èWóØÓÛâå>‹v²ÓÈáb°›=ªû\Ĭ¸ÐD¤…Ûù§Xö¯Öšbîš>¦Š>-LLšö´2YDÐ9xNß :§ÞäÁyŒzg©€*þnßCÿ^}°xÏhY£ Ly›€c¶nˆ4Îýêÿ9OÇb5°” —\Ò* . @í6DñÂ3踰=)@v¼y.pƒ*«“­œÜe7s•ÜNª!Ú½`—u`\(Ï9”0sžn^iôÎ %Êc¨dÿZµ¤;޵h|ˆzäµaD³iYlÒ‡µyÙFØÌf©îƒ‘Vx8¦Q ÑʤVs6¤CuhÎì¨@·h EÙM–½[骇ðÁ @Ò3Ö è ?oÙ,ÇßÓsM¶Z]@™ª Ãg‹aªÑþˆQ$©gKƒ§$òµ3¢<§·ïrn?òÑоÉôÆs„ùŽ2×®œxìnèøe`ÿsN¦ÂÕ'ÈîÊF†¥nÊÚMf÷÷eóË´Up˜D4q£LHÓÅ {Ø‚Û"Îçš×êNØÿxç²~ƒ™sš ª“èÃ1αðø8`ï1‡±L6GñX<¸äq˜qùýK‘´;ðÞéÕJŸ™¹£ƒ§‹Üxa:LU^öŠÜ åµ”N©²À1yYø\#ÖáÔ§U£åtãNÞŽï6è^áo}I ó‘ŠöŸVL|¸¼PÖ#HŸl·—;¶ÝLnø>ˆeRS#ȰҞyŒ÷?q>êaâmoš¼—ÆŒ¶l>[Ç€_'þ ntÌaÒØ˜xá²,âÔì *lPaÒäõ%×7€D„Ÿá9ªía~ b~(‚³üñ¼±ëb¬–ý×|\˜:ongìôRA?áO,>+—D1ùkzä) µ8Ÿ²sÏÀ¦RoG섚e HIG·´“ÄôŒ,$‡Ìë’a1›qì)™çUðk3Õ4¤wo£"Œ–^ÂRõ¯«ïI™!·2¶åe«öÚüiÆõ “BBrF›ãÁ ÍGÇ­Uù@óióçU®¥“ñöí«3'¿ÿX¡WFTù±²ùŸeG øa«öXZ5@ïÆ…ódLÈ]ëì夶'SO%Ï &,èQÈ“ŽoEŠš\vUY5jÂé–V|×çkHiÎhªß«rñG4ÜéÚžúãE™Ò)œ\8ÐÍ·oöÆ–³‰@½MÁzÙ X÷©ÐÊ ¹Ûµˆ^ʬPP4Õ+ì ‰ÓÎNû«Úm« ûsŸðøžF³ZyNßñuŒBˆâ‹ê·ïsI™&O}P®¦µ¥úË —„¡û ˜Õ£Nn¸ª$*ò@ƒœ™½ú# `f—d¼‡Ï2ŒDH9 ]DŠW®`°[h»Pׂ€5òR,« p]Ùwc’“§(6KuÉ÷RÌ îÇEƒ³T ˜„oUQ~èB²7ç^a’ð”?B䡾Öl>•j›ÈÄxÆ7 uP MOá_Êo:š? ͆ãi°ôMvy§UHa¸Y03ó¦½íM©ÕyB ÙÁ”7¨üÎi9ºþÌdzEŒØ@ ñÀ޾…÷’YZM G³núL˜–g̶«üØ<ÿûÍÄ^à†¼“ƒá­…aƒ¸·rt.¾ÂÒs»é’¨ÿV+»sx”MúíÄV½Ç»N·½(óþ&ø·)RýÛ%óØD( üåGÈŠÅÕ PH¢,xÇe7×3v$M½‘ñròšSà™¯jç·ƒõýð€µ³5žs"&Ò3¶¢ gßëü Mƒ£W[º¾ÁîL‚ ¹ƒKB3ßê@ ®3çi;°;À$3®í‡_ÒSPî=%0hŒd¿Ù¹=õ& æö!'©s±?Ј¤LS»|bE‘úœ2K*?ðeƉ59.¹­%ĉá_&ö —YîLÏ3<\·~¬´Œ3êG4Cm1L3Á3 Άfêâl~¥(ºÐc\%ðJ¨Ö9~éæåTp»ž!vðÓ­½ƒ²š¬í*Ô…§.æ®Ì·ÊT"í,{mmA^Ê)fYÎ]ÞÌOEˆþÈ:®`~€BêÀG[…²Ý¯¤­ƒ:9´ôfǸÄv®¶qŠY}RíXžªÓýxª±„©ï­GCƒAéXók;Òø¥ÐÐv2/ ‘áÛìS]X… ÿG]ÂwÒÐÎÔ˜ô‘¯J ¡³êO†62n–¾ý.k3§£ˆÈ¢TÁ>/•H!sdOk燉à¶kG øÛ5ŽÀ@§è>¡åˆ£ƒâѼNýB*2Û—ZãlPmÈÒ„*FÈÓÖZæ´ë0[~šÅè´3˜7ºü86ÂOçó]]Ë8õ·s€¯þnº”C>p0œÈ2ì;аU >Q×hÎgÒŠ±Z¢ÆÔøÉ]C¦4@lºà\úLRt@Ô·hxñW2u¸ä"\…û ¾AN#¢'Ѐ®xÔl9IÛúÝBöE×<¥¥ö>°üƒjøËæck8 z]²7à“ŠÐ¡hËDem 8‡öSžÖ‰QE«»mJ|¢'ä ÒÜ«E¡·›³}·ô±¸¨EöÀ§ÀÁC?ßT¡ä,âM«^³©˜å áën5U…òG‚žoôñta·jÞYÓt?.XcݪTÒš4ýáâk8-iÎ> Õ|ÏMѰÙt&UqÊfÃO+¸–æ3—ÅŒ×Ô™,4MFü¶rÞg ðFô=¾Š‚š­B\£ŽÄ²í®;qÂO,ÞèÒÜÕ®€Oõk´¼åXé’]wÕIsèæ“–¯œ_Ù8Õ{ˆ°ÎR€Û‘x€‘lÎ’Büðy¦ GÖWKýîQÂ¾ŠæÞ÷åxl.Êóù¿?*õ’öÐx泫=S>£I,ý§‘nëLVÍؘUT­ä£ ^¤Ã+ñ Sª:—„lôì«ÄEz‹vϰ—És(4sê‹yÞÕÌ›‚Óç¼Û¸®³©T"Ý1åÅè!!Â…¹’À)ÊZŽã¡}€†êetèÃ6@ÁÒMEî’<œ|¡H¼A•h7ÏG-ø1â¶Îä_þT¶b!âO´-Þ#¥ä,ìZNÿ¯ñ&ÄlÜô¦à%Óµ¯SßÁðmà‹}LøÏ=ÝŽr•ꯟ_»ß²\éújí«e!NÊDÀªSBL'’…"*\=Öíá\[ï+‘òXì„®ÂPe0POªfgg‹Wô|Ú÷Åbw_NTìzœ*yp'–Iå+I:–R(‡ÖܽBLmî šº¶VyÞìn|pû:Žê§Piztm#°e}ò»ÆËA_­Â³‡TÁrÆöŒÃÀ½JJÍ‹%̃€dÿ,íPôjLDcz¢À+6æJÎbÓ`Aý ?ÖýßµË^KÇSÝÙTŒÚ1VúìØÙ Ù ‚Ýó€ilÈš°<'_’Tß οÕñ‡­€ir ×w6¥ç‰¯Ä4‡—ª-V>Op«,’Çš(. KÞY˜û§?Uk³ÿ]-ttÇÓú›ðIé¦oøõ¢qB‹öþ–ôÐç£3qèoxé…¦øÇ›²¤VÆBûÁÑ«Šúð´õO«è´ƒG¥‰¿SŒ„°luŸÐu‡ZÝ ‘µ¿w…Ì€ôÅKÿ‚ObK©qïÜ è¡ÅÌ}¿bÔB¶è™<35Ëÿ8² ÆØŸ«ž à ½ó‡“ËjÎ6¥ºoË_‚c\`wiWω¦}sýÞï¥*þA÷1iÀÌ‘B`ËXÕDo%uÆd·|º,¡eÔŸú*õcëÝ7ÀÑמ$ñ!R-èVÙ+—Ö/™Oc Oj(;(î%€©¶hqÂ;¤ªÅÌàÓÀÐïÕùáRÄlâQ(Ýæî±{ÛÉË¢8?þQ&‰¤9 uãéï(UЇ;v¦FmIˆü AŸß-휄5߸ÊyG’š]pHaâPhÈ¿àxˆ§»=Çr$šáû,9A¹}°ŒVÜ?a¶éZ­"cìºøÞ=úþám×*³ÄÿÿKêØJÍþW·¯‚®m\éH›;Ó0MîÐr8¨‹'¤ŒÔ}´ÛÇÊ–ĵIÁïN ¯Ýæ…L%»³õõ±>Utñ% >¯¿n·çf¼•TþˆÝ”DxQ<~¥‡0Ð#:ÕZ`¶H­,ÙŽHV¶iì„O›þ/ÖÜ¡Y%¸G$ÎïÃ~×¼cnB[íæ`gÊi4CD¿ ƒÚ=Ocw"ÂûL _ñ´w¿Á_™¡ìNHªâç4·k—ôý1ħ ,‡ÄPF*—9Óô‘:­¹Þ}¿¨‚º!>ÜéÓ)Ø®BeÀCª*·›NMüz˜À¬Ãòé®úÚpgŠì¢ˆ É­jV¶=ÅÜ|‚YŒ1 öP¿›lû`# }ë†ÈÅ¿·l.?É@=I¼EeÇ«¤¶«ü¢®_¢ú&3p€çßÄ`ËEð³õæÈ-››A«pC Ú<IJ¦÷ã[ÏÝmã[=ív£˜<#Ìä|ZŽç¾.`‚D>o¬ÍqnY“ÅØ^VÄ¿Ï UÑ ¬ÌÆÆ=Ùo%$ú=]/u½ ‡¡XJÎï·t4QéI|é?Žr/:IÍs}ܸ{F3w¬ÛØ H¬¤,—ÆÄ¿AgúBêûŒì†Ña/t²ù€y¥ôB€ºÙ Ÿ´áQ´K†Ž›Àp–*¤n"äùÈïQþ PI×RØÐ Ñý¸M¥Z™ÇßAM2´ƒ®°ílê+õ=>È'ºª}„¥ì!å'¯IšuÐßPóƒ÷€ckâ]ázñž¾ÿS^m.$]4í¤­­o œÄ´àuS™Øé¯lÒÿ{?¯z¼0:L3åø=ë__¨‘¶·J³èa&ÚélVÜkœ?‚V~¿7ì‚©—bˆS`‚«¡Gù–‚’ÖÿtØ"NV{i1-Së¤ÔÕ%\Ä¡ÓåKÊÉÕÂâP8ŽéD$„ÝK(¡Àò# 4؃Œh%ê%¹·C3Žu2ÙÊÐOË"iyY*¶ÔûëÃ1¥vM£¦ôX§0…°ÙüzoP[Bÿ`O£5ƒ¿á}=nÚÍHª®œ¢âÔ¯@?¨îÔ2óñ—Φ\v&·SÏ1ŸÔ6_¤°õÍ™q–%Ò âILm’µWl Dó<›oÌ[µ¶¦® U,LÆòÒarô–0×t iA Nß@>Ô»ÇÝÐE‘†f 8ríMŸ>ÛTI¶¶Uµ7}a³&Þ~Î M4ô¢ ÿ[è'-Ó‡™J›Îj@З`{FÀõ+jÔîµ ‰Õ>Þœ¬_-™˜ J¼NhßOôÇ„³£Ôpe¸œøm‹ï™ÇõÍc<’cŠúHùSÙÁT&ègŒ«BÄ[@\6['? dƒx0¤ís³Rw¨Ú{›ZÑ·¤ßšg ’ÎKým܆†þnqºN–õ/&rÃGÀèÝ/ ¨þ ¨*/Ê+¦ÃëmÔ‡›iÖÖÆ”˺‘˜ Š)ÅAO}¨”¦uj\–…ϵ#êÓ;€l®}êRýLIÍK˜Ný®àgDõŸ¡d±ïT9jDpxPSjJÅZ—… W²¶G¼q.Ç€€ãøt÷ü:ÁþÛü5_êïá×ðéøk–_‡HϪ»ðÛ;ðÓðöÊØ Y%3ÍC9‹&ŽÁ0v®‹X¡ËAœjü'ƒÌ'6_-á\¤ºd4ñ!éʯ{$ <úAŒWçJŽú¢#O5¤¼Éðú@zÔ¢ÀÊ’"´ Å/t—¬á¿’ JIÛÆY|ó°gà`¢Pc‚è?Ñ $Öv%ÈšÃ@OExJ8L(°+Ê£¡ÿX„n)fhŸy²3³<Ç{1JŒA›V*L!6 ‚ðwDM7¬ñ² ¼Û.­Æ¿=ÅvšË„l¢<”,©nYR“ÚÐ°Šµ¢L„O~„*–·ÙŠG¿ˆtl·Øiô$`rܘõ=BS{!{P(22`LöqFV"&Ê?S¯îä9½]yŸ\èR‹m0ž ~t¤ Ò"þóº6s€¸“¸§¨Å…µ%ÒE²\¨ÝCžÙ½´tÕœ›['MD Á *oæqÀÉï2Ÿ–"qÈ“è(Õgò%*Á9ß$'ú—@rÖI²V„I¯zO˜¿uW§Èø/qN]š†Vu7ÕA Nº¥§˜G¼àò–D¼-ÓШþvF²ÀíYÒb6RUÌÇO/8·Z¬ —¦A3¯f/Þ zdŒ³øK[žnœÊæŸÍšZ‹‘¸=,й€é–ƒ9㜬þhØ…Ïô²'SÕ«çÅÓö,‰d“À¸ä×±Sâ%iÝðFÉÔäÓ`J›¶LóYl×CjÀ@¼;‹émN³iƒ6gßcÞ×ÖÙß©hÚcý‚+¦…­î±5ÍJ—{ïõFh KV7Gu«@áQü|~ëãBY1Ç|594¢ˆ P=›,ed= -,#òÍüÜÑÅWUb¸ÓÒõ p­°Eqø€ÐpŸ^Ÿ*± ÛL¦¼öµgLn5«f5W£/]©/•]:úžyW‰¶|›ø=!ñ®©ÂPC¨C+^Ÿ ëa˜÷u‰:¤ïhSúÔ²Û¥¯$P²~Èžp5X[£ê _÷ͤPK½¨“x:|õ ®k=»Ôzß Å/?ðc³«éÕ¡ ´Qøƒœ/Z·áwñÇ¿sƒ[ågk‹Mòׂ6ˆÁHú„@é4t-m•Á<4H´¹ò"P€Úñ~æçŸºõ±(jBQƒ0tž±Cpî:šø_S‰.pÒX¡¬žº§ªõG=î}AY%þqÜóèX;˜J¦ni§ƒÜ}Gzèá‹ÞQìï:ýa‚²VnìK4_¾åh{¥+;–MHÖ5‡¡øÇ±œte"Οf‡Ž¥ÿ9ÇfÏ5„…*ÿ3å~x³Áò«_ªc’qÅAùš}W\w7ôàO Ô¬’¢)ì_Äžä² ×ýÔ 6ÖËÌó¼Ñ=Òm°ž„FBKA„°Ô :SxjèÞ/&£ ÐÏæ¥•Ø´;`ÍÉÃàpF¬t?é7Ú¿È€`]ÊøìÄõmŽ4SCzá¤Â3s›} O僧‡£0ë=p\®¦€k@Þ_ÔCÅ<£üÉ~;>f™¶ñâ¦FE¤hëgÖR{Ž2ä(`„3ü2ú¢ä˜'ãíKN®B•¸§Šs¦Îðûè{œnJú0¢y'9oI¸iä%Q̲5œ½ø÷ÛO¹¹šn¿7òÿ$\‚ÕvžS(ùÊA(°ÏDB¤Q}oúUûܪuÔÎýÌ`§ñ¤côÕ¦GìKû u¶Ï±WVÏìPÙpwsŸ'$ÙÖìÐõnoÈo 4}/åëòT`Ë•KæQ\I‘:¸ÿ;’#ã÷H8s AWÁŽl™«ÅÆù u`Å´“3sÃ+¨õi´ÊºK÷-´‡ªcÚ&ÇQ¥T™I‚ÈbZ¥-žÉÇåfÆ'Þ’Ó}vö§‡;sƸŸö¤kjaÇ…¶Ý$¥õöÓô„Ï&‰¼Áò >Û(%„/6_[¹*ãííCïú"cbïÑFTó.ÆgÛ:mfJ˜­Í(í¢gø2,qU,Ûƒ¬Wïè*qÚˆD¦vÛ1“w>à«Nfu¢“(S™n¹Ïòÿ}Ÿ½7ê--.ó'‚zÅyð]oIñ"fÍyÖ¶  ¯ÕoQŽÔwt„Mëƒéw£³Qî!q‘í]õ†³Sz[”Ö)·Nù'€M˜ß,ûȉ_‰·Ðc?™ƒl¹·ÜùIRòLrh› u*T¤m£>p,0pÜëEÇ1!cÛ°à°Cä&‘RTÚÄ\â&}ðÑRL‡>Ôæ©Ì$3]M¯ó; ôBèŸO,K:0 k’þ6†4Šp"M×ÍÕöÍh”È¿8ÎjF:Œ¹¬²¿3-l‹ÖÿMÞω.{Ìî™’`§L®3œD.R$–'rH—Ñ_ Ar>×õ"ئÀÁö­UÎa[C.‘ÃMfa× qÁp¥NòàO1P€8ê*Ñæe\7Þ¹oÓm¾ó”ê­ ízô3Îg^n€"Ÿ>Å•ÞvÝß½+›a4`U!ŸÜ4Üy"nâ-Ä6?OI­aÖwEŒñ4ÿ‹Ãå™ÒY9ø–µz‡ Ñ3k®5„Ù„^:K¡¡%êÿôEõmkÝ#RŠS¬¤*…è:ŠQ;…Ð%hW3–‡“^ÚV3ÙP#XÈC`n„WÜÍèßç÷8̶Õ'à0á!z»±U`¿O6 àÉ‘&{,DIìFŽ)ús•Sz ÀK*˜Ç¤9W® ?žéV{!ý2_½!Âz%b4b|êVâÝ–Ú‘HÐJ?´ ŒÓ“+¨ãûûAz¤±FáC²Fd±W°?ΞÈ.nØs|1jC–C^Ð@Æò³Í­pÏö{ ñþµ9ôS¾T=‹òbXãBKGœA[Të9I·Ebiªj—ìŠÂr±ã²)¤O}#Î,ÉV|;¤¹Ue9ÖDË Õ.DØ8Ðb1ëŸhŸ‚˜ç Á¥¿y°y§_·0-­1íqKN8çDcÂh2% À츶›æ'¼þ•Y€á3ôFlì¾6¡0Ò¥”®á@ßGæ½vУ­éF ʰGšX9A‡&µECåÁL„rûižð™{?Ê=¨„ †{OÂðäOšô/ô‰ÊtùJZ­ÒiŸ5:³%<¶C¨Þ¤‡–7!ßfùñ>T_.­•Ñ#} ðG n{ŒÕ󜔋gÁŠSì:ßôþ„äÎã¾Ëã"f+÷V¶*ýÌ ¦Ôm3+P¡“„:Œw›ãK ÖdAš³wFó®ñ˼Õî« tZU¶\61¾3ܾg¸Bß½yèD—Ýsl,Gñ-·£ªÅë |ø!ða#kir2hõWÛlþܼõîE%²H ÅàåýBq]WGÿ)›wJCŽô»té›pRŸošV¨õ9{E¥Ùó@Ê‘rm ‰Ä”öÑŒV¨¾T¤²vVíƒI——Ч£+k!§ô=bE=><‰wöhL÷ |Šú’ßSçÚ)QÚÑŸåß±‹·õ7§ÇìñŠè¯‹+:nc64$,ðóØÄlAMW&}5÷I¾ín]J‹l`I½ ÞOŸÄÙPg†C9ze(«Ö²Þ7÷J^8jöÌlΠκüo"êøº‰Ø+í¾x2¼@h£àj ¼ó*„ÏŒÝMU™G*] k1ßÈŠ* ÝôIû«$g (íN¼¾‹xD¸º‘.éV»åRU}$×hwgµ¥QYvÄŸ/š/¹õéªðFúsÃnærp†êÔ.,Ýdƒë†É° Œ÷3úbHžxmñ™ 8qo1# q™ô­Æõç]͘ç,Κ铵jûç B À ¯‡vŠ%¾ò$’ƒæOÅ—®ø©ŽÇvâY^³— rÌ©KÍžµ~ U‹ˆP–ÓùM­宀wÝt=_Ú„œ»OØh¯aIŒ¢| ŽÞdaøkòBïÜ"2H¥€áŠFç·}dêÞ}-Œ3‹ž·”¹(€®¨1ÐTó>ý*§1z€"¼œ ®C›L ×ÁÑ6\tÅ÷’R‘=e»v¬3¹"¤ëÊïY£wøï |SàŽ$‰h<<’…[XÉöI&jÝÁŒà [j6±,R|V¢©KîBYñÑ,ÈÁK‘5D¯_8!×ÈR&Õs*æÒZ„™JL”#¹’éYo=†¤¯s΀¯xkè\ÁÿR*~R¤nô¯ŸG‡QÀÏ *Üœ/ã/[*ÑŸ\BjÍ¥z¸3t˜tüN€Á*Õßnõr¬:Þ¡ZsZùüË\¾\«sÝðʃL±=pˆª|EzpEXxQ¸H£.зܯîáÊþfGô@&|ÊvüÝ:ä*I |Æ[uĘ"@Æ݇Ûê_*Ç3¡ñY |(5iÂ}uʰd´öK™äl“†®&ÕA«ŒÜÙÔÉg¦&»º¯«³KÀH¶¨=”+wt|’ãd‰;3ÿ™Cðâ•Ö¨WÜšLÀ·tx4”ƒ>A ô°¾€ôj²ä9¸£ñIzqÿanÙæR*-•ÒJÂ÷­÷ä`®÷a=JBr[’É"ä›íëßøu)¾ß@áÒ'}½?ÿÈÿaÔ ö³†I~Þ¸ÿ7°ðôD¾Þ‰{íêÃøt¿oVŸµ¨2GøtÏ}½2ÿC¼‹íè'¾Þ‹¿†µïÛÑGí]Õbœ|9¯±zXmýõ¶×<||˜…qˆ­òˆS½¿Ý5fâyíãÊF.áü"áB $ƒI ÅÜÇ‚M´!„:qÇl+¿›ÔÔàT~KÐÛì·½…âtŒ¦½õ¤zÆÀó)HÄxy?'»§} mg—¥ð&¨ ‡i ÓBò>—…qn£®T…C3³dCœ*{€ DŽÑºTôûBÍ]€6üÛRÁ9êzm6Äm(guwЙ|ÕËëL3Cû¤v<†"ùûúyÇÁÌ]ôêºð;»äßG.–¬ádéðÁEù~óeî¾æQë‘“÷ÁW+u´3&œ$5Uò mo? `S Ö?ZÄø¡ÐéLAeÀ–KØ5UÎ’RcË«r㘊°/ÛF ©,¤x?!`Þ( 1Àh¢!ZuùH˜-0$ËÚÒ p¹Z{‘opŠá ?MŒéÚn×%¼Ó2 D‹x; ñ>ælh-ÛàÐñJ—æ3ÜÁNV$¬² öÁ‰a«3hôzm™uA¾‡’Ja¶ÇÍ'YïÓ†Á?Aï_h“{%+DÜ#z,Ll( «–™?·I߸YFAEc.à†m,‡`˘ÌüCv[lg*åã ñœƒÕx;ý¡È}`ÓáFµW ½®›$ykéáÎ!aÊ+— þ~|¬,”]‰N’µ“À¨ÍQ{ûZ½Ó)uw!)##3j9‹ Ž`²mæÒGy:¾øà#8›ÎßÞç Ù€žÙc„i)Ù\óAô GqË,iEYøãYq›0sßStç¶Ñ™<'2>/"X³³É<Çbñ®…ºêFØVÎ*%,q±ÜšÉîÓF¬vž–í: [ð‚mõ:šAìÁÀŒ%'Ѱ¾}Iõe;LÄ ¨•6ÑLJ2K––äˆTþEø”}P —½ßߪëÀhråÁ­"fÚƒÎ_øºü/Ýzv>ÿKUlU*HÖ:I ¦Ýˆ:e󢡯ÙD¥;q%ƒrR±UÂs®¯c#ì¤?ɱ֯‰D»ÞúÀÊ`Ȳëyâ:š~A•7*-µ`f!p\·ÁGç“eP¼r¶|"+ÖË4×AfV°hC*ŠœŠ Ü+EÊeË}¥ÎæyÚ[J &ÙA ¹(dWa¡–>7  àIóv]òý”&î;ø¾ªF·î)üèëf2CŒ9ÆÙî°¼²H&ª«ªJ:å}Î ¸-ÝÆ‚D¼MísXNåàA*›„½A"ý½\"Bž£]4QŽÕ—cÙxË íÇ„~JRq†÷}l Ù!d•³‡ëbŠÁXðƒ –|tˆíkšÛÝîv®Š˜#6Ï_û§ŽÌ6 ¿€oÝRñm¡çtFsÇÝ%þlUË]é¬!Ô“Å/åGØªÖ ­QOïh¨^bF{Âì³þ¤ñ½qºŽG?*:í¼%8˜¦÷}‚ÄÎf©vfi£š37Ïø3± V;=<q8º]0¾Š,ÊG®OÀÅB¹ ‰(8õ+¡®ˆËÕöÑÚw W^]ªP8‘KÓ\üúcg\Èì«V¥+àçÇ·kÅP$s•5ÛŠöYµÿ(Ôû­”DÍP9ÄHç„E¬Ò½ƒ1<L"Û¼»Ïƒ87G…l„¢„Ùn­ ªÑ]Á)Ž]ëÓ’ô . pg{Y@lü’ãTGÑ.Ï~Ò¢’ùJIJûˆt’¾'?¯%Kx|NE®ð¸N©6 F}àŸïyÖÏg9§(~tÏñ¼Z»ˆÔ—?ÅþD©ž¸°Ôüçæ¹z U6hEykk«ŽS§LÎ’òѽ^ˆ!w9ÓÙ7/fÞmYÛ3}£¿ŒÀïdTT¼ÅVWfqÀx°OÈ¢î‚ûl GGé¸dîC6@_#y®Û§ÈØ7úÿ†Š^lH‚úm  üž]îÏ«¹ GìØ5¥ôypúA¦ }Ä& gC§ªæ-øáyëz0ù™²ïµª5®Ö¼XEm¤ÞÚãg'¬M¸Þ,Où.ÜRS9ÜåæŽgjcÙàk)ƒ½¬&iöNϺó™Õ£-òRæ#¾,ä!ÛŸLRZ2 õRYÊñ¦xNäËÕ6…ù7 AÇø1\g2õP›ÝvMùF¡3ý­Ò%ó.:L0h¸ðŒÍaÿqÓgx1XçŽÛ4JF‹ žy¶[›ÒDÒÒoXœÃ1%êbL¸ö˜Ï²­Øú/>¼n…‡¾¹µç›ù!Ûý}ü"¼9¶²$Þ!H½%”ÉÅ“hÃõQ~Nù0ú» UVHe°ªÇIFåxŠy|»Åµ‘K±Íò9?»3¿´™#HÄ‹x¹Ónþ*!gnbýð^ï ~²§9)sÙE?þ˜FûrŒ Té7]/SõÞº9ŪçÃã1Rƒ:p´D¿6Ê¢›Ô1N”5gL†Ý·›ï6t ÿX}`4„òŒâ€ìŽog{•Ì2§«£tÝжpðAxgx²U±ÕŒç‘P LÊϱŽ;'< ˆl ÁÎN¨ÿ-´|û ÄðFÉ!–¶”\Iý†6¢§ÌôøFÌr£×³qYƒXpý&Pޏ¿“I0Y ÖVQ÷À”ÿU˜25B–e€kkTérHJ¢• àõÀ c>¸ÂЄž³Á-ñi ƒÆ[¢¡jÍŠÃ܈³öwð ÖÞ½®â¹M²í±û­}ÕPf1!±ð?j}OåwÌÏš–‚™òÔð&˜íEx*wt•ýhBá›4F¡‚Hž­.ãþ˜yYl–º¼ œâ•`{_í a„»„”XžJt:êµ¢Y=1œÅNÚM\hY[ {X%ñ¯¤$×Vc È%¬éG󼋄z²N‘ˆ±ÖÐĶkлByv‹‰ôÈ6XUk°XÚfT¸ÌžÓŒ:ú[9^¾×õ¬†Cq™œ>—ˆÜ ¥cèÓUã@4=œ€ðµðLí¤$"¯Î±û[ÏýÙ4OúÅKÎ0"£–½K>½Àž(1îRÛdã"PÀí8df l¶%ª¥’˜à¶Ü×½à PÊnö}ß:´f"añm=¤e‹G/,ºD•«ZªöÆÐ¥”»*FRƒŒ¯CWíÞ/>‘÷6ÁY¨Ë{L*Ðpôß8šÐ;² ýNû©d˜D:âZð˜0SÖGëjòײ‡;°à t9š¨}”­ü4þ?UM5h7ixWŸ*q´ÐÙ ¯8Ðo¥¯HܯÁÊ›bH或soÙ gðB¦þé3½=zÏL‹k“9A^løÛ_ÚeØ*Éì´ùTÜó%îüÐfFKËòFÙ.ThÚ\ˆ4„¬Œ—Y‚ÆÔgÊ)Ëdò9–4é 8¡öQˆ6×Yœ}¸V°„ÝØ64 iävʤLMin èìÖ"(u¤ºrèaNaÁ™€¬±™ô‚·#ý“ ÛŒØ&Èg¶Çôo¸ñþMQC ›Î]P±nÓlN÷)áÍÿ6Ç)q llì°ñLeŸ˜ÔlQql 3.œÒ¥µÿ]¿ôÁaôyLIßM½“î ‰É—óqîu(24ÐHxÎÅåÿ+ ‚Æ>c+ìí6Ö lBs+·ˆ»Ÿ!OvbóÀ™¶V£}g@s,Á˜€„™ú ê»c7{°I%"Aªo÷wvÂëc·sðˆŽ™À‰ðg$ I… µc//MVZ`,ƒ­§Ò¶íoÿjÙ|è Œw‘yg\’Ý%’iÓUw# .ºÂ2*nUE‘©Ô}L7Ég0˜g” ÕM°3„÷TôoþÇ&ÈØó.%F÷HÁåf‹ªë…ƒÝ»“#ì‰w©‡ÝôŠz*'—Ÿ-DÖ†¿QòɪA2¢®ÿ%;º¿@4¦Ð®C%D§Wž‹Œm– œBkðЖU –ã(©B×i3Ðxu=Mñ w>€Í=¤ý ÿ|Âê©­üƒV‹G°îy?Ö&Ž©:Ý+$ܦʚáb ´Ã“çÜ:‘#Ô–ÔÆg“¡qUÖT“6<ù› ƒg{±ô×$´år£–Pk¨ƒø‰¬_Q®(§À­'UØ÷¿‘Í^ìYW\¤Áb¦rüí2q_(Jèný"Æýƒ8ø*ü ®K’_<¸Ëv¡ÁåÍý±k' çè4j8ù¬UÓIøQüx¾´¾Ï]š&ŠW©™t|’^•1Äèµ/'\ÃÎnG˺x%ȶ/ql•¡æø ×Õ‹©‹À‹L…Eô–£¿rúHAèS¬M? Þ”gw_ƒ; ·ÌK”æcûÝg”®K—¢! Ðw™´:ÌRÂRÜéÿÅdBå¾DìБ7qìhÙ–ÀÐÞ·Ñ7[`*•ÄõÒ§ YMù‹}*¤nWgË^þ…ªñÞ¹å§Ö N¶ßKö©,Gzýå%˜1)ÂȪH&¾>è‹“qŽÉêB"Pn Iáô›ŽÆPúêGØßÄäÈÕ{ñŽV½s£êíV ÕPô¹èêé}ý“ÚH1ä2çts ÛÞ0Ä%êp—@ØFöùèË.tà…ŠšÓ>(Vãý6Sk+&ýHÚ³ÿDnøü´>Ά¿|7LÄÈRÖè£{Ù$íë=‹ù _” èANÛìØš‡ §ò(HC¤n|„r‰œ5/Vƒôͬyt1jt¯…® pükåó¼}üS—À£Öî<6›éW©öÔÚŠ–*‚»¤±zièn›—7©0$<ø#÷µJð +VäÿË8LÜp(ý;8ÜûJ)v›Œ}pOè“¡ù¦Å“fy)*9ïÿ2ÅRó©<Ùr+ÚÜ€R ÿÜìp¥lÖÂ'FŸÒÓç7Ã[BP¨Q\ÈÙ ±(‡!Ÿíúª²óÎøZ  I3u…IÐiõ勳usŸ/jÙ?”‘ìT¢F””âQÐhÆ6yV¢Ê½À@“Êt5H.>”Ž7ϳúÒÙ’ŸQC¨6‚im‡Õæ†I¯QüëЙæp ¥!>´«é-C›cl7'¦!Ç£R}tLN‹Ýî„RYiŒ»7‹$|ílÊßµ7ü7w%ŸTeìíX *–³žJÆ˼¤M_Æão/LðÃÈÎ`;õ©/¸53y"¾"vŒþß©®=%zòz±EArlÁŸjp>„¹]Ò@Ò­ 7epWˆ*WlVz\«ñF_ÐØXà ®ÿhޚ禲òíÌ&<×Õ!¯ôNN„xÝfÆ¿³Ó¢TBÀÔÓxQq_ Jøº{òôIzf ”_vt•$ÿ,ê|É1nQQ¡þr?¬ÂïDZiÕ )J¿}á(’Ê{;j[ʯ¡1¯pp@Ða!\?½ÿ8ƒl¤;Å<Ê*@Ÿ÷«QïG¤Î.£é1ÔÓ·àä°ƒ‰¥¹ ü0d’C]à]/ ˆrˆÞlb®㇭K4”ta„³¶z"ÝÏ×x6W ,Õ®í,³×í•Pk\ ÷ ‹ôôNL´åØXïÓX÷ÉÌ(¤fj‡ˆÖŽzœ=†YØ@N§€—½Û„sM/¨ÿW‚à’Ü6å9Ã!±Œ¼?­ÂOu•¼,}N¾Žv"½L¥O’£öD_®É-åKÙ«} ŽñŒ=ÛÑQa߀% ¨þJì|Üb ¡§N#÷;dLH«n:ŠÁqÑÇÃÔ\§êEeh¨…ux¦àˆíÁÃÅJ;&Rðxêú½$åýËDš¥°Àï6Øo>œIæ4‰^?v~7.@¦l„ÖUߊ‚T&¬tÖ·4Ë0æëqFTîªiþ­—€b¯Rz¢©Ðv´âþayôð~ÂkÀSŽÀ ´ºdD_))&ÊòSŸ 8ª²õgäzš3 ugÙø"Þº®ÄöÓk§øQ,¬d ³UZb «OfÌúÓsT¶˜Fbb<Örç9uÐD6v9:;1Š—êÄ[¡|¤°æ¨¬§hh—á!­!p!½ˆ¦îÐ/*̵}çAsÜ…çü,“AL‡u3z°ê„BÐ|Îký¢w *üêÕAŸå”ÚÎÚ-¢%¿E;Ú²#s¶Áq¼ûýödË ‘bUOu:?¬ðï\ž¹„E™4¨ºµÃ‚•ÔÄþ O€ã/Iyq¥¦évc<Þ«5X‹Åô?.nâY°Ù0ùů˜Zð¢¥ÚfÁôšÿ] x`Ì“!ú†@ÖÅ×^z><߯´·/‚nQàŠ ò"`ëÕS¾+LphÇ93ÞÊßV»å§°ð˜˜%Œaüa —ÞKù?÷"/׸®9Ge¨ÑŸX«E¿²«ë¥ªÒÊöÓІ³]u¼‚u†àÝ‹0ÖU&"gBu±”Ær8´Ç›Ž¤¦+ªW}$-ûµÈܹ撒c„¤£Èî”%󇫯„@ÆË/IÔ½«ªÜ#sIþ3¾Å†\úuû{î|äü¿Q‚€œY±N%'¹§ÒAÔç(ïh¢/)ñö÷}ÿÑ‹¤½ø3¿eóèÇ¿ÇQ°1¢®=H r_Èp€Dd÷A/Ä:ŸÏáuŒîÛ aÂY¯Âm#îÉ!·_¿—Œž»Óbîn0/7ðvÕ4;÷™³„b¤‚«uÀ¡èÕ·gDM"ú,€sH^ÀiÙ纹%_‘TðShI ŒÐ”Ä5`D`]…÷DœzðÊëJËkÕÊûTI<1¡®îvÀ‚꜕æ&c¹$l޵õ" Œ»W$Te–OÛ`¯ÖÂb˜+5 œª=dÒÎvêÌä‡Äì[ýù·‹·hÀFؤ¼dÅÌiç2ýVϸh §«ø­À¹ê°ã“™~-à‹“à!é`Ú”b&$+øªŠ:µa’¹÷E sÛMŽé­=Ýž£ì1q7y¢øMአ¶/<•ßx«Qmt‡ˆ„¸ TH®K–àœ‚%§­=BG Õjk!ITELà vìL@˜ÍXjÐ=h^Ùz"f)Dj"· ’…§¼¼à¡"¹î$ýåJÄX"WDˆLÂÐ5ÁËl¾n0Ÿ©FzJ<##ÐaQùeÃE›ùói/†ŠåVsÔiô¾Œq·×¹T°'`VÛºÅK^á€ÑR¢0nÔ_íó# ª~íæ1s­Ôï)1_¿I\ÕSºa”ÚÁZÊØÖ” Ú\MÙ÷£$&½ˆS$8©Ñ ã¥[ °"@Kñî§( e<ƒmf¦=f~Þ6«Bl’8Î ¿Ñxb»Á L\bä%"6»?¼Ì Ó6ðšV„ÃGÀÇÝÚ×g”Æ-?Á)ß‘ê¿Q¡ì.mäÅøÎþdXßÃLOkY Œýdî9‘iþåÞ£>mú¢ühÁ2n ãö–Ñìÿ9\v—Ëk3uãeiÁ09FÙßF*„%ùêž@¤ êÖ/ÃÙ@xÂŒ ËÙd/Ñ, öæßæ.v¼v´ew_ÄXOJL $?¡ »û£Bý†õ;Bö!¹²î!\és Ÿ¶äù`OPÌÉBŠÍ„B·É²l|sãÚê-Yp‡·KÎ…`o| ìQqÉøž!r1ýŽØ«¨½'-£ªÄ!Ì71û7ÌnÏÈpL¿pq2üR/êƒÓúl~‰)ìdÂת¡_tç»$â$–6Á®”‡¶‘NÏø… R ~F!ÁÝr}-_ŸiåšÄä{`‹ï\U¨†ŸVðY¬Ž€¾%Ëã3(!cN{·"SÕ¬o_!àQ:©°LU €MÜ[bwaa~´ß¹óFÉÁŒ×õ»-Ù§S[Xå9.–Å1-D…Ù|äT¥OOÝÛ ‡°—\Ò½¹µlë'b‰ °Z¹ŽS}ÌÐï[÷Œÿ-~`ÌÎîýGp•„8—ÔÝ.Õ!ï0ùBþ¢£:¶C^Õž?•}ìÕþ¢ýš·°ºåï9GÊŒúX*½ ÎÑ—ÿfká ¹«¹`>›Eï¥cw+âŽáéZãC¸dC> òSD›%¬Æß¸&hú›·ÓÏæïû—º~¨¬qhÚÅè1Ë‘«´ë;²tAŒˆ®žWS2d™%|ƒ AGššæÚ1;Õ_ÇÑ{êŸ;'ÒÍ…§bûÑCˆRÃoÉ\SSëf’ñÁ”ÆŒi™œ¾ Wi=þ-ÄF¤)cnAÓ”u¶¦´}–!!6º,àþ'æóæLxªnA Éî6MŽòÕôûâ'{ßEÔ&%hò-oeÛ; W h™AŒ˜øéxî6bïºÊÔ)¤ž’<çãÑn2SÜìЪLù©ÎÁø! ØŸÏhàˆšŠþˆýþh$0mdée®ï’ÇÆF‘Ü^”œO¨ÍDÆÒ„]f£½¹s³ ¶x_C{£ËΫW…<®¢îZPÍ;¤ÌYšcüˆñÊŠrh]r°æ ‡wW(œûò¹Ÿ„óçI‘À]ªQc…´§ <²F5™f±äì²Zkº_œAîï|'.[pYRW$Ô%(ât¾èÅeî "Þo.[Æ×‹åõ¤ÀªÓIê Ò§ U€ÖxuëOoj׌R™ŽUúž“.µ¨>³×WŒBG¸Ç€UXÐ ‡³zò³8Ú¿Ÿ&Ýeâ‘Ö]ÚÚ£Rg ˆÈj«û|@mKj¬âwÃZâÂoÅæøÒ*¨+Bí⎓qð¤Íé>¦¶„íÔÁa´ŒA”z’ÿçÓÑmQ€†âw…Ý^ÅxŽ<…“–ïc)-‚µ°ëÄ€øª>6EÁƒX9I?xºçfè¡ß95T‚HuÀTª«ØJDüO;øÜä,øšõYËN¬«›‘æ'ƒ/<ÖÁ­½û¨¼Æ&=¯HOÜêï­f†•Š9›8’¾Š:6‰J@€ìó¡½Ü4²›ªÖã†gèÔ¨†å!*Ø<Ÿ¢»tø5•;&ÓSLëè{æ™ÅŽ|­Cë…âR4ÔG/m@æ2Ë.jÝ:\ÒèœP^0ª‘tîf µ&rað?¸Ã‰p%!ªúPYïÇÎqê`éz(†áu»ŠÑÃo¥ˆö=l˜q~Š—/37ÍŽÓQ.£Õÿ"kۚ⃎.˜YׄŽÇŠ¢-µ\Ö-Këå: ‡Ý[Þgkç»ÊŽñcg&AläTò@û§ Óo ·¹¡`OñõOÌù‰mÞ$mÓqµŠ˜ñëþuŒÎI¶ z® ºõ²¦ë>ªW‚—fÌÝö3 ƒ:‚4é;›J¤ö©[‰ R§.2Ùm~î}‘_«u5q톦°eŽM>¤5êìD83¡ûµà@útÊÆWâR)„ ‹W™O÷f¨‹sõ™S€€=ÝM¾˜ÄÜ.©~=£õΦø^¥F22äcg Z8eÙÔ*šVB¬ºzÀüÃ$Þ*¥û±ÔÚe_+þ°TÛ¤]švT r8"››äƒln;ÍÖÛ‘ž/ ×dEãL *}°£Š—ï>ìÁ"¬ôh²CÌJqª„à%:½íy…kŽ‚¡ðÊåf ÎRù³%jìq 7W¯Z™ÖŸfäoÄàΩ?Ù %.‚Õ†Æ"pâ¥ÎãM£Â¢¥ÕÈ8²¹£h–DQŽãHo(ê4Ui÷Ÿ†IˆÙZ¢®O‰··íÞÍ4pzãÍzƒFTÊ©UZÞ|ô– O^ÆŸ½ÊWV×P³ï¾Û¬h9MÏ ¡ç̼w5ònN´`ÚEŒüVÖÅ r¼å(˜ýßóÄôkòÇp)¢~B" (F-Ý žÄýx&nG*L‹E× ±qÏj2( vëŠK*±øÕk/+Vö>²ÞÖ(AŸÃSNž>UwÆK%}“l `}þñh8ÇÛB©›þû?U"¢ ÙiC˜­VHY üÁqkNÒFCáŸw³ŸP¡W‹ç‹D'_>ßÖ„×lòIÿ'Nª66à!j‹Á‹2}ª‰Íç€ðÁßy©…ëp›X F™oC~Ž8¿˜cÈo®Ü¢þöug7fËóA éÚx³”ǯþ~-I•cš([:æ³_7÷k§&è>Y}V{uûp¨ðX ¥d½·ý2Ó8=Ò{ã +ÇíæÃ&óò_,™SAæ8ºØe„:&ž“0ÇS‘Ð4ŽoÞwïJÃ(ÅÿšÉ"K,v©Á2šF?/1§°ÊÖÝ~*÷(jÜË7κtÆU#}.­Ü¦oD#« »+KáOÕ–ÕãÙòó…J~Óϱ§Î"ð~Í#ãmW\7 †ðþ,üÀú<ôÅkXêÜmö¥Z=(€3îÒU)h®jQ¨µÁOÂñpá'+ÕÉ.çZ1n/e^n„Ï™Y6#Õ2ñ¯„¡ø*JW™÷«˜ÜËuYÊÀÁ{fh=÷­Í7%¥´k‘­Žëïz¥¸ª7©µfPN¢Å Ú¢)^+Î5çœhºqÐQ-…¨-ú¹Ô¿4y‚"àôOTÓÂN‹~h¸XQ¤ùÛD=œÿ ,=$%î“}Þò\hr7‹+Áôdü6­ºN€£”•"c›ØªÊe5ýOÓ8yž÷-ÿmX‡jòšE3×k®µÅ±s  ©ähù‘f1¥ (~Ó¶íò Ç2Ô+{ŸHgšûD¥¬þƒíä ™Ÿá¶fƸÚe·^É5š¹©˜H>V…ðÎ"dž ø ï ”åb–7yÎÂi‹–$PDdÿ9ÿX?mïC;†¸Î6FÉŸ×/ÜOþ÷È®g‰cI>~òઃpF„› .üº-"D»‘œ—dá:÷áÖðøê™^’3U¦-=˜²|/F# ÌQYhXÓ(’ô4'šôŽ|P#–‰K=˜9‘Šý”•:ì¾$+Ô}µL(Ö®¿V9Y8zãq=d"' Ç6äoĪç=o#üÛó޾d^z€¶2À*£¬«ÖÍ%ÚÎÅGžKþBÜ—™ïZˆF,ŽßusÚU1‚I Y\ÌL8Ê¢Q|>F·¥î!Mc€íüPÓ˾Í7UÙ%}Q„7Ú„>‡ï—‹ £×&Òñ¿Á0)‰Nkªêfä” ÞÐî¢é5p‚'ºøÐÀøjkoTÜ­ +¬øÔ%6DZm±HUÞuP\êSªªO¿·]É´ì›ç/î‹@e“ 'ã~%{â¦áï‘™–¥>_òkÏicƒ‘5“ÿÕpZÇõ màjÀ®â÷ϰ¡Ëîú›æ€Ò¤"µË³{gj«}‘+ Àj5_ë^Æp#Ýzašºõ„©]›h®ÎAãíkp;ʺ.ŽwXGÚW_–O?¢ÏÁõ2ÀÅ„ êöh€ÉÀ: KÄôí^ÿ%¿È°Ë àšœD «(ˆŒõ¬~EXsFÖúdÿ+Ȇ·ùãCPä¦n«RI·»@¤.\i“OÍ'mòÀ¹ãbèa€÷hô¥&ßž9Q¤#®Ý8µ­ÔùúèTR˜ ”u,¿ŒØÓ}¹œ:ããQn^>!çdrŒÐÒmiC—°{¹CT'î§oŸçû—I²P’X%àY¹Nƒ½¥L4^ÓÍ&ÿBç7^ïòÅtþ:˜ùvGaZÀ棔Hq²f§=>fËÞ ÿn,^Td耇Àé+ÿ€“wAšÿb=µ=0¥®À‚à£ø5C}X®Wmšù­ß¨ \tñÝû«Ûb2ÁÕ¾-šhÄÚø»á›<ž‘Ä¥¡˜iaþþÔxùî7°\–•ï>¨Uþç÷Ý\ „Æt´7¢üþžPFÁ•„ÅígꑬÆ8„Nê‹Q…„bm°< M—g ‡¾EUAЉ4#ÝÄ·»(>µu“ªO4 ³n):Åçmì÷ò ` õÜ·•i¥w/¸—±SˆúÞÍÊù\ó,4\`ßùbÃ-`­å“‡ö)£x†zŠ›Ý$—L—Ј½»† OÁ«QµH¦‡Üqš£TØÚ.DØÔIÈIv3Áâè<2AKw‚ ^OAÓW­,Jg(»Mù 9¦;ì¢gè.ÀRUüWÁd[Só Eæx=¾O›îà©ö£`='ÿ.Ò¢±J^ù·ˆâ©´T'¥ÉR> «îo[™yEüÖ·]ÙG±E7R·.LkQïd¶&׎h¬3˜AœOaH éw.ÜÉøwV#ÅâbCoo„X`òt-^'®m ‡`Æ·žUÏ|½ ˆÞÇ‹=xrG-·'}ûõUÑ e›qKYa³i–—LmÁ2õãÜôúÀ¦Èkê/ùíÝÑÍÖÕ¢¡âqÇè¨ËsÅ4n6>Ä^¿©^y¦³–g iF¸ÃB6ìø¬A6clh æŒI5¥z )UZ>Å%?§˜ ç@î!F–ʹaúBX0ŠL ìö˜ìßÓPNïõßJp.š Èôó— «À/”/’p·sy_èoFëô„xté.,~1N†8JtŒÝ°JPé"®ßåvëlÿ^™ìíeZZÄwÐK]_!Iù¦Š¾„>'¹ƒëãÓ†hï É|XÛËA…¸lkè»-°ŠìPJ„§þס9…Ÿ@#eVl]imÆÐ}iDÅ—œUÅØpùŸE Ûæô9A03ƒýf¨ì´qZ︴n¤”Ò.ÊWߺ0 ƒ}a\¦S2ˆíŠÒ¤|‘i„e–ñ˜d=ÀLy—P”®Q|<·éO‡À´x@ʲN½V â±ù+TšØ{Ô‹ìbȫкLzœ­!KW✕²¤A]Ø´$béaQUÚï•áODa)´øøðIc5é<6ò$L.)2FÔX½Ý#ªj© ç\=Uµ$xx5ãÃ+t` ÈÞWe[ŠY=D悇ñ¶ýø$*RPÓ2üˆÛý]©$ñ¥†‚r´gh®ªƒíÌQ•J÷Ì>¹™Q“’3Q–Ó.ækóð!|9n÷ž â„×Ý%Ã]d«û;²‘åDdæ‚=«Yï¾+bž·ágó‰ÜƒµeÑTÀ¨ìÞß^ߢ÷×Ð`¼¦Ê·-7dy ™ÓŽ`Ù¯3Œ*‘åÉS"Gº&¡wK'êðÉ`Uê­“Ò4ï[þ¤­Ë¡ë¬‹bC¾<ó)¯Ã£ø,É ä-À½Äo¯˜]ÓÕ>§”›fU‹ç5>Bfnß½™ù*N0f¨a(_Œä6àÉÍ¡SÕ»Cî¿ØdÕð×}80ÍFôÅ+Óå¸ZÝ/¥7¬1™[G#£o÷n&P#›6~°4®¥-uó9R5„Z#Þ@æB q.M`½–È>ÖÝÙ'.R»Áœ+O@ˆÌ¶&ò„¬sUË•°ª´¾{Çó¶sgŠ/¡ï?, ²mêÀ$oËÇM°x:c€”€ ¿¦rÿ%;‡À˜…¢uLžù*ù»²Á :u¬u~¡òD˜Õ:-ÚiýÍoȨ šDŽ—x-€züVCWF{x ¦_­·|ÚhkÕRÄåiÎç ëTÑÚK² ,&Óy‘Û¸2ïóÎa]ç ‹BT·¬_r|û2”V—Á.Áˆà£9##m µþñ§î¹æ΄rËl†ÆYŠþk~ª„ÀÒÈ&b·{ Èh¾t©nEËžS¬+áÌÁ8ª !Ú ÕÞîiÍÙH?¯¸×­Âk°¯>À¼º ‰«")Í]å$ªNóÞùÄy†³„É‘B¨¼‰49€{ÙeMüûâZ‰¾Š\'ò^Õ¼O˜»Ã~UBåª×¹0»¥•`Úÿ:*eȡʚÆô--`‰«<Ë"Ûq)z—t%Æì«—°ÙÎäæªz¾¹´h¨+éƒ0ú¦1XŽ Õ9MtAòÓŸ-ûMOŠº¯àuA’HéxªÃ´/O[`]â ¼¢Pƒ>Öa(ÜôδZ6iô—dø€eÁâuåVb(Iyagú”qy€BZ8µÍÙrõ²X¹V4Â>J-:2jàÆæ—:›«oL…²ò.-*ß&^e„*¶YÛQ©=ŸÀ~ÄØ±~Ølê¶„t<³«‘xMkÑå*_°Ú,oÃ)“0o‘reÃö M“ɦoç¤EÛòO!š˜õ›.lþ ÁŒ°-ØañóŠ}òíR‘üz$Kõ(¬|Ì™·„ŠâV‘+Œ ûzI÷…É·&Õ´Sóƒæ{_æt{|× ‡´•&/¡p8ÀÈB?=ð¢·1·aÿ̧l¯Ë/£±Jžð/gÜrvFè)Ïajñj¤›óß<7{«æ:Zj %Þ)oçêÐêˆ$…dó*3;7£¬Ð:O¥2ê$gÚÀtj¦éÖ’ŠX"Jp¬hl)bŸ?bû·%¹( ½Sx¾ø(šå·4‘)—GhŸÓlm€2zì)íõÛ¥¾œ©œ˜1¶;eÄrá4<ÔY‚Cïû5Ò8Š~ôväJ‡¤ÚFEEeÍGŒ€ü =e['ÿ‹{3U6Œ1$CµD¶m[Ñ ;EÇWÆ+û\÷ùÚ‰t°ÂQªÂ9Ò£Z(~ç?Py-Q×ð'Hàj\Ó"©üÀÇ #¬œ àÖ˱h¹¾YGU+Æçv[.5ùmõz,yÖMÀ³¼¡> ÑÀÚ?9ÜýÀçFúîë"HTÿg¢™·%ÀqÌ“óêÂî.]( *="V:ªã‰jÊú…‘˜È1fŒ>Xesªl˜IA)ø> : /%¥^Þ'xt]yô=ÛjÒmoÍ•íüµýÆâ'8¦nÇþŒmq®…ÐýÁ_&^Í =t’ª&i‰T!št›žÒ«%"Ü?p‘§àÖò&pózHížL|Ná}Eå,äwœWÌ`zwMb¾/]IË!ßþÒ¡šõ¢¯Í¢~ׇ1”)aæ²¼™x›I?tO×hr•Å;f¸¤–Q×÷Ó‚ö˜bòÜç3É»õšõU˜ÑÞˆíùðvÑ‘!ë w.;º°ÆÏ³¹ù¼…Eþñ$\Fƒ~½¶Ü¼Ïô\HPÙ*Ò§B†¸.«ˆ6|Ý}¬hø2ü¦ÐðH“™½'¢= O}Gé\ f¢ÕT:§oR¥l™2„«íÒ©úk¶ψÎ.CÆËx áàÝÏñ:b‘ÙñsŦKfç}ûÛ7Ã!Ø5ñhRI¢ÜzEν€8dîÐóë.€ÃQ€lɾÉóÈtt_äTja úþƒ_­—>·˜»4ëpÝ“s»¥Åm BŽÇ%‹!Ó[‰2…KXER‡À(EòºÉ**„?nÊ M}yŸeô:Dœ#± –1‚v)I hE‡†å.xmÅ}g€e‘ywþ©¶º<Ž©7»»µÎ ‡-µx^­€a°† ÿªˆºF2 Ǩ8SÌšz6l¼¹™ó…óì$ŒlëH~»­Êãa5œDE‚­QiŠõfS–¿KFŸ—Ù‰èX¥^@ˆ ñì¶*h…IÖxfA´€.«fZá!’ùÉÑ(µø Ÿ‰ŽQ‚µJ(C† b@¼©çë„[|¾IâµQ¸>Ó¨L)Õ„ÞÞ‡S\±wLR½FÊÖä`b ÉÆ™ ÄÈ}QîK‹ˆÚXhÏ@†ƒ^úÔ©Ó3´ŽZ ×á™Ê¤ƒÒÿ„CÀ8®Æž€€äŸáÒ×ðè'ü;1þ ÿaÐðÔ?øtG}ªÁ’‡H_çŸðìÿ|:ÿC¡/áµßðéø+Hÿç ÓÿXÃvÿpÚŸá¡?ðÜ;íOÂâ"L?âtžÛIÛÉ®Ç}JšÆ,¾¯&_'Þ2ú°!•ÿN×b @‡….0 d­××»~^Êû2yàÀ H6A:E”¢Š«ª/œñxWÇúl5„Élë2¹HUZþÓ„Zòbiï’0kÞÙ'„>fï²5ÇÆ’ÊZñ×!é$6SÈë¸Aß® à”Ìú¢‡SèqŽçUÆ”æ ‘í\¤o>J«=òá¥^Í·”u8I˜ú»,+më÷eÛÓÑì©0§I—ŸÉÚ!⯥*¯°qãÞ]ʃ&“éÙÏu!êñOÖ¤û,sz—2ì5’Ù¥— ¼»üñ­Ø¤œ_àOí»ßÎ-àò!EÞˆ¯ç=™·sê¦eœ,v0;ÞE:bnBØ·—~Õ€´åÇÔ)íy.çgŠˆ½µâ»[Öÿ.m2õ²ê×Ñ~r¡€!6ÕqAëWÔ–‘$?›m283áå£ÂZ ¤+ýÑ„9¤9nfçÔîàIM¢])t *˜)i{ã(Ø“—èêÍODö3êõî¬×Y*RšˆµqrˆOråÑy&øÿv™Àæ×ÌT ð‡7 ~¾5«ý&XH¸¦>ÿIÚܬàQŠE—€‡˜¿Žf/’1•úÌ2Y¢ÎÛ û-é2åꀑ©Uç‹ Š ò‚5c%¦èŒÀºAãªbÒZZ³b‡üÃÖü–…M™0Ü‚>à*êQ. æŒ6#¶x  Œxl¹sìô+ï]Ôɸ±óxrÝó³x¬f7"„fF¥F”†­õ‹®PI?‚¹Í±xj8ø¸ñ[Ê£±hû]ãI)]«òÀ~»üÇ•í!aV.¢ÛiVíÜÓK– ÌÞ6ûûÖ±&1á$ähdi?|hDè¤òI¦ 6…ãéÑã-îQ|´Ÿ„³Nö>^lr…¦Çd˜ëéÓÒ®ð&yÈ+œ‚eÌŽÆ‚ü¥·nÆŠ<|ÅÚC`^â šDÏ’.„OD%Y™ˆæ5DyUÞY2ª¸’ (Vˆ ¾Ö ¾~Bsƒõ"%ŠM›ÔK ¸Æ=½˜v O—^õ¿Oy2Ü„ÞJµLÓvŽÖKG£¹I#XŠcMwúà7Õq Ûq@]fTZ;€ìË<½zÅ©½Æ~G%ˆ*£JBãV“8ÇHSo¬º“è‰JÕGÃ]Ùõ*Œøƒ‚l³ËžÀæÖøó­ÐW> µšIçEu†¼Qx[Ðù'ËŒsa¤QÂq/ZôB§êü¬É™ÿÅL°G1¡â#•9# õ|—»rÊ$ó¸Þ<åü׊î'»ƒÇ©'Z^í¶@l''îñ¾}X÷u—²% z |.ŽYõž‡¿V¼úZ)Öî#+û‡„dHp–…έ ÎQ~*f»Û[ 1QÈþÁÔo‘Épžœ©?r¦Õᴅέ΅H˜Ÿ^lÇ?5”ó[m$.i `%}»õª¢pÅ6ﲎ’j½1ãQL ½´bïb¿þ¿#¥¥º{Všaî·L /Zk¡‚þâpf×üí‡LdÍ£ù–^Ï6ß^PÁ¼©óZØå«ÙA|+:xAŠSnÄYWÙˆ7øoÓ÷¡h¦™ášO‘²ˆíQukÄIdzÞ8þèl·dôrÆ]ÝkŸ‹´—¾½˜!³-bÿsU|+ <€W$˜ .€H˜²ÅÆßÚ!9%6ÕÄBŽêxN˺³ù 8·½ ³c’ñ&‘˜*híæ³fc¿+>Ý‚#ë¿ jÍų\ÄÞ±¡iðabö~A0)m Š‘FîR K“P˜Üä8GÒDÓ’gŠ>Ië Âa%;Ïvh¤]ˆ×ÜÛÜ-‹ŠÍSPš)æ×£t©Jm•åF岺ª/;„ý@èµ™/ɸó“Ý¡¦™F_=f@\\MU+ ¾cͤ£qP y–½†*À?{ÂH˜v.˜¥üìù%Í”¦ŽJ8Y-`éa€;î¶È• (Ô :ñŽì7¦Ç"Þ0DÏ^_lo²-ÀŽe!ZDǤëò4Ê"Ç=[Sü`ãi[AXuó0›ÿ1=Ïh9`b‰«6<Æ& 2Ü¥ñ|+§‹ÚM¶bÒ# ¦ÉáÄ96,çC8ŒÝÜ(]8xƺ‰Ã?}ÍûãjÍÄ £ª#õáQ¤y'†CáËU.ÃÔ›`Ölwk¾®æèʤªO›º¤èJžI– ¾·_ÖTäKm³`§#súëöhfÕlO(ÖD›; ŒQ¦¶‘ þ÷I‡KŠÜ7C~Š€µ€!j¤[Ø*µ–Ž®4»$Ç©6t] ì H‹Êð@j:ºÒ]-åÄ=F•t™£1Õ$Ž^ê9LÛFwXÔ¾±«Fôbƕϱõs®ëhË@³|{[‡±0Mˆ2GuBצôÏ¿§ÖAŒ^N¨„Žê3;´7§{J÷w&æ5@ƒÎË.4ãŒ|Áx )¬U¡k2÷niPË5qÇØÔZЩÛû„ŒÞÉÆn¶¤¥ÆÔ%‹¿èÔ¯Ï ‘‰ªFž¶öØ0 (±Ð+4òFÂã™5eÖèËmó,œ ¥ˆ¡‰$†_¥†ê’¥ Ñ‰pÝÁKÚ¥Ace9)ê'¾Ä%{:‘QÅ—N°•Škfe®bÙðbÁÂj•2îñ'ðBY}þM²§9ÚeÍúëzÚUq¦ÕÎMjçÙ‚?Èê4ÊŒ"–‘sh@ÿ 2p)éÚUUh¬!…Zðc€ fþm¿º@ª ¦;$Þ ÝøÆ×‹¡ü_ïß„’YqnÛ2 h{cé–‘#ç:l‡> Sª¤Ï‡`öùž% E8º¥¯'zJ’úR.’b:4w-½BtäÜá*IŠXѪGÇ‹ÎNv+BV:´ÿ}Í7EXD>jÜD°yQ”øiHp(7ª¬–’+~ô—k†1•K“(èK¢‘™ÕæòJ‹âÌM®G×ìè2ë=Î$G^&~É{ü]YÞ¦mpžÖÖˆ§v-4Ä€ƒ>2ýcL…¹ Qø& ‡Ä­°y”é5»U4HĨr“¬Ó`üUÉülG0—‡œ¼ôˆÃðð}Á„$ä÷p:¸½²p ? ]‰‹e\¨Ðš¦Y¸h/"j?.[4Ý ÆÁ ëš8›„-—Á1¢{ÀrÄ62ûþYž$Gw¶yïqa }Õ¼ø‡›©!ìuv0ÏÿéS¬í÷´†wBsC•¥,âsÐ꺭rYÑâåš{¶©ª›+S=oDÝbÑû ãŸÿ}®Ì2üˆöÈ9 [}Çà3ê¥ðU'¦, åŒEyð{O=]ëÏ&• Mn‡ÇȺúVAY•ä<‹£{F!Âçôضì½FÕÎRcš£C> ßÏß7 'BäPF5ÖS?!wY&ìŽ4Dz=f)6¬ù|;Oç®nÜ7˜!ב¾ ³^ªÀ^5f.ÝÿP×<ÞÚÕÆ¤À»&ó¯üÅ–±*x¹ÿQ k‰´4›Ø“ãá%(*Ư¸îöØþ2š ´Â~q¡Ý"Uú)C kV±MÓt•:{V9cùú£ç÷m†°‰É´x–“[ãsýÔ›-‘Ë×›(ª¬ÎÃè…EÂiħ½×—3H"@|"takFÈbqëE}&L«âˆÜúÿbÆ)Šè*pÑþ7¹u=ß~÷±(:Xì9ØÜƒ–<ÐX”&Ó›ïô6Iž5m/É x< âÉheLX;P}f—ë\KÓñA§B±,îdc&Äw©ñ®ÓA{IY C‹?= U´ÈNÐc[ù{“éŠz@–ü¶Aé—ƒæc¾î åWgxöÎLö@}½Rí …$^°ÔݹÙuýÝ*“Þܤ¥nÒŠçB,û6¼«‚ç´÷h¤ ”Ú ¤0X´L*(g¶lÔhï_¤1%5ݦë5²Fµ{ˆð°ÜÈ~Ž&ŠV!º°ŸÈvÞ+Yy4\ëP:tm2â+—Ô4 › ωü¶–d‘ØE=<¥ÈnªSÞ±‚Œ†d¿5#š‚§¹‚Âç~÷çBùFЧƒ|hnUN»)ιÉõTå¾ó°º…â Š¿NM±Bwø¥ …-‚ ö¹r,¦²ŽˆÙ©8€ y€~ª/î¤ÑŽ6…ø%s;@Aôã¦f Pz%á¼-÷—1—Ïõ©›ˆu™]ºÝ·„®R1lf2±±ñ<Ù¤ƒ¨kÎq‚÷F~»ÎbvðWM¯è3¼gÌî Jþ˜ éì(/ˆlÏM>üë8m†èÆŒjáÅ:)ŠõÕ,~м¤ðTV çÈ™^³F1U\Žž$Fœç1‘âBOOwg5Å=ÉàèxìëüáÄiçºÉý¡TÉÀÝcâꊭé©Á;ÿ{8´å¼\9ܪƒ*™nuJmêWÈ~0´¿O<¡îÐêÙjÜ(×|¦êÜSÕ%á; çÀÏ9‡Í@ O'WrÛ zÖ8Tó|ĸœDN¼Æ âc’]±Ê¿š .•Ï*íM„¶’æ#x÷{d[ˆªê6”ý÷w~aŠñƒ•ÆJÙïHÍ‚!ó¾eM°à¤ñ­øqhÌ…Ä;Ý‚œÅâ·©ð¡ýjJÊÃ7àƒ”eÍdê $á­‡Ï@p'AM T1ïBaÊŬ?$ÎdC L¦OZÙø?VVö¢¸òTë°*ÄêY™fÆÞÃ1(Tq&LWÄd›2hð[GM‹'€¤r ýpuWÒ¸=ŸØÜ>C’ÿz¯>»;R§D‚t½ªt…HcãRê}]ïdÖà —Ïê Y»£=×3G¶ùúÁm@H,"æ€ò7 Rˆ(䥶ŽÔéç^N[9Áûê—E]’#–IÍNA  ¯]Fº{TIöѰû˜Vm{Z´ËRü_̈sÛË€M‡ÃÒêÕ£¦³'åÝ&–H”îlPüÃYš~܃>0¯Àh÷>¬“^ ŸWý˜Ûä¬"0S²ÏãœiQ7*"ç̆˜ã€ÜDg [ƒxQÌ3›5ØMÂîY¿MÊ/=k” 迹wµ[!+º–ÒÏ‚™ ù}Þý»OB¢øhªeç#fø}IÒ°Ž40]Ì.µõgbq…»†tt2ÞUV üã'§`βEŽ/ä/N@Ìá;úú¡ é‚Ú&vÔ:IŠÿJ“\ñ2O‡Ë|ñïÎè-pÃÒ:$qf²*Ú¿­Ås_¶€Þ{ 6­V„O¡Òõ–Åú0»¡ãÿ Äš×ÿdóè ß‘s0œRƒ­³^5'ÑYPx¤ ï|âA¢bMV4ÆÐXm!Zñ—E¼‚‚Ï ¿ísެGÞ©•>—¨º : s1ô¦–aqºvFc±•¢ð³q"¯kÉ!–öÄìLBf"ô¤ø,W™Cï§P®$!•€ u†l˜áU¥ðÁлñ£¢‡Ëq‚ê)Ã#¬NhYÅÿrÉr€€V‰Æd]zæKl 0³Q‘Òö¯21éqa¤ Ù.ÙÂILŽ–¿6ÎN)Ä)`ÿ ¨ªòrà2ßòúPí…8&5ÇÀœ8":óΙN²ƒ°Tù@ ü㑵g4“,W[Ô?Ïv Sx•„¤\§1ñp‚¾"Ü­0Å€U§\[§ÊÁO£€­ÔŒek {˜¸ÇSnóE”Öy˜&4¯6Ô+¹+ ™¼šf+@–Øé§9ž8>+–uäwüƒ|^G¦SùÃ)3‘V°nÓþw]Îܘ&BÀ1—ê² gÇ qDÿŽbã“ÌF2’*¡Gï'IÞµ§ã^Šœ2.Åy…‚ïˆbŒ]x;…ŸLǵð"2'vv¶Ûüïe5Œc\²¶œ”§r仨Qgn½ÊòáòÁ¨X'Ç×-TÊ¡ÄxÊð¸þƒ–Ò;ò~ºwlVB!=-Q£ëÅ+b‰VzBȰ‚çŠM\ç33Ã2‹“H5"­Äð„04h”'H…]SÀ»xN¦è"p<¸5Œ>÷ƶ à¢¶ho5ãÀÈ'r~æñÊéœ"š Õ?V74j Ñb„šR¾¸5òÅLúJSïjÖÿ&´{âv7\ P,ƒo’\‰Ž•¶˜Ìæñ™Ž¿,ñ?D.H ¤%?+ñÉc¹Ý]æÃ0žõ"ìĤݑîMݪ÷ƷǼ` ÍÀÃÒ“¶0&Ô¼´…s’ƒïk†lu5ü¥ bÜÂwÑ*s© g!ÔkA§qÞžeHÇ\zøkäIF— !Ùç8ÿ5ã(ŽÈ!Íè£r#ŽsÌ”%‹6TFS]«ÄAÆ2)ý‡å1Ý”«`£?\`¿rcU‡,TŒ2â£Ö®ÇÐ8¤øFòKΡÕêxu 4³šž¹ì¡ë‚XR¬í˜&øíðnÅ]Ÿs¤ÕÈyÖ9“œylMFž>ò‘ðúT}Å ‡Á|Äcúf§CBzH²"n÷2w)ŠèP:†úPÏïlŒjÑ+ÝW×”šf¼8yc¾¿Á¶¶`u D¬Ì)8/m êžc{ÇN|‘búÜDnY²ÿZѼ—|r9‰€è½,1(aú_žÛ»™ÙwäÿaÕq; ’”´{³æTÌi 6Œ®C¬ty7UÒuî¸ó WQÙÅ÷5Õž¸I'<1˧òUü¹<àyÉü}ÍøÚìܳšrPÅ̘աà™]ä¤õÒÚýŸ- Û­Šäp ¬L?©ê­ín6“ý(Ø…ƒ7.xu²†éisGvÖŽ¶ U@ÿ0`/ªp–^†¥eô1‹§‡«z„ƒ÷õÓtU4øk˜³§W½u^<ìOí4CªÙ6!k„²d:-××û›®…?‹ƵէµÙ÷ùï)?Ê„¯€ôÏý’:MARWgý‡ù½QëЇg}´¬Ôb™Ÿ˜´ÂcG–ß'!8U&ôÊR¶.l5Ε`‡B…ZÞ‚ì.ãÃÃq +“×!r»ñ”§‡7å]v2YSIhÅ¥ ÔG8ó¡ò¤ê_ËNr1*þ}Äfʵu ÚŸÏÚ€d¬†¨jü3úÊ(.xrÿWõ9“ÇÒ z3Iz/ûßðַ͛Xz꾫«ž ¶Z#MT¡b«U@f®×¸Ô ]ÄìF嵞X…®¸9 bÐáôn8ƒŠ`ŠºoÛË×ÈžBÒ£À•…Üí÷´0ˆžÒx“¡‰ÏŽÒ—†üŠ3ØÏÖbøS»i¾½»è6³3fo™xXP‚thôõ™œ Qb°|¦v¾k|¦ÜÓ˜7âµ2ñ°8ÀŠ©74[QÐþ:ä$"@ òe€ –åûyŒq¼k~|'†ª¥Œhæò ÕtAÃeÑ4š§gè½âãs~w¡nóé Ú.÷”ZzÃê‹õÜ$î‚Õæ#vUN39 ‰}âÃ[4N p0˜Î‹e‘í™Ê¡¤®IÑÕA”¬MŽ¯ï™·)N0cûÁ°*ΖaãeÌæ†üðr Šbßãgœªx-óAz ’‡_þ‹½é)AÁ@ }®º·Ù‡´JyÅî)¬¥Øó¡„|¥=iËw„œ¹¦ñRÜÂÁs÷^Õ¨ìYW{ºcÇ>UîÃh#J–˜‚ì3Ö?© ij‰& 3òB^Åd_¥å¡#D?è­(Öï¡%C™ÞoíY:Û YQ©¹y0²T‹ÆW²œx›®±íÂÞ“xLøÖð:µ—4Å¢éë²ÏXca[Õ{á¡YÎËež½”¼ü¯×IÐ~‘MaÙU#”áÿlPâv'‰¾ý™\³Ÿcï·‰‹;,Áä ©ýiN¢÷%€Ù¬õZaÝ-¦­Ž Å8Q54¤™_&\Q·ï"„Áó1#ÿHíºyåó8>BE™@¬Ëu+ƒ ýÓ¿° ~ö÷%,fuGŽ·•œpÑg½¾cêëOÓ{¦‚ÊÙÞçøSØ¿ö=Ùå(së/p(ãn0Uv÷é°BøˆÃqãgÿ"7Òi$ætÔCÙ?÷Üo„¹È/Ó±'ƒ…Ozs—´¹ß·ªÜ¡€{lÔ†é¤ Ô1ðP­ ëë_? ¬ %è=çýûX¨EÞdM€1QôJ Èóˆb|¦6ViŽsÀõÿaœ/ªANæ®nH÷}I)ë\ˆiñù#މÇiNsÓn>óSkÈ âPg¿Ä V# 94í¸ì£t, cáÁ‡QÌÀÂöqtò0ˆwJ¤l+ô“ž{,Õ[¦ô݉¤£š7¶7¼NÉø£'Æÿv‹ eK(÷¾*ÐÍC­ØÌÊàÆöŽ(¾º;C¶ÅTƶY§&ëQ¢?"®~nWúÐNrMɌĘäñý¨ wXš’1›“ž˜*«€Þ¶º´¦¬dÔñÊȉèøÂǦA9xZ¸OÈÌwFžúöUfÈ>sÌÂÓ£Vr‰±Î'&¼Ås”ÔÍÈŠÒepç†íbôÊoPX€´ÈŽ×:Ð%„"ƒnnjd€À×!h´½ô~uV•Ñ9ÀüDN“üܽ·Âþ½M²A Ø*Óºó2ä[Åî®òžQƒ‚Øà½õLðW*ÊO:6`œÆ&/åîƒ@BR­õ¢ŸPÿJÉØÓ4«Ã5¶¤·;(Ù A‹îY>Ã+r{-±¯ªæj¼¸x“nLúO|¡«Ád/WŠ¥eÎû0‹§Wð«(L'ÙòRm±Ïs•ìÖûÍöRë>7F¯]!TvGì2½1sÐÎUПp‚"ÄÀ°’7D´mÌ”vÍ=&¥#ž ¨U 1´ŒCp ·ÝãÖæƒï0ÂE£‹ñF$N”FôÜ,ݾ‚iþSË'ØCè«6?>ìgF‘FU«Æ:}1ý5‘§bgï.ñÃTiôÌ»î(H q˜³y~œ—UüZêýûË‘UdVr&¢ æù~(í'å°9ЬPIëȪ¥”„°ª7J6žc}²çiWˆÈÕ!ä €øíQÄ6Ž%?ýUôvâiÙö\XY ò°&Ž ý5}Ø*ó\­S L쎸‰lÄ­ðvi`ú„LDè¿ÈHENÍ_ûÒ¹ˆ‰»·Dƒa‘L«€Th¤úqæõ‘ÿæj•hËIܶY=cúë‹x%Þ<à-ë:B‡™˜È;LriøNgäÜT]‘•/Jéo–„ú‘³†´›“kã¿ðܱ•v]eŸ¸YÇçiÐOæOÊy箸”¹Šñ@e{r+"jèg†œEx¾y$Qi õÍê¬el°~6Û“ãB;ܳ~éTH §NäøÂ¬ bÞ¶²ÅÌÅ”"±¹]ÙàÀ¦™PWôx"Õi&ÏMðõ“>xsx-xÉæ¬”8F#g®8òMØãË,LÔ4[0+:þñ¦n(ÃHŠ»ð^ô™©'\ŠK«>µôP†Ñݸ¸÷ó÷\¨óx››„H½êÖ¿hEÂÒ°1Ïàræ ‚ÒhY„ä¥ÿx >êóý²çmß9¿ º0lB'ÎhFœøÕ‡ªæô=\yLk„tSFÿ3ІÑÁž€;â7ß¡d(o®íód´ScìK¹©ë '(çÆÂyd`á1€†\ 33ÊuÙI‰µÎ;od­˜´N5`´hM/h &?ÀYGauµŒª5ªV‫‹¢m‰É T™`ô‹~ã‘r˜$Š¢<.ù.·a®÷õáa|ÍV™€p 6Þu2æ@Å´£?¡/PФù 67oóúFób C}c¾Ìƒ‰vwjº­ÏGÔ H´DÅ0§þ‡ÒtÆm _Y‹¯˜nž&úÅy¶¦ËO~`£½q¯M­ƒÃ•@D̸­ e=W#+9µ%’èŸs¿§h|cÕßÕ9äLzomCïXÂ^Ïv`u¿ÿ0z-9EÑ€Î境c’à“ww.H!^„BŽRE…!›(4ÍZ·š¦šHúqª©Ïð5u’yÙ jCr-c¶Ù#däðMÕÁuξNÌÿ4lvÄ'مƺ×IQ;ë3¤ÿÂQ–›x•8 ›Jáe%F·ZÞUõ«‘à¿Ë`éé«ñ5ƒýe"‹353#iãÿZï-ιՉ5ñîÍ?ÄÕzwÏ7ˆˆ&O* R†³j…ƒ$rËð¼%Œ–¹0·‰ñÝN¹P~»45Ñ­=Q8í£0FK±ebÁÏèY×ÔPy¨ý!e8÷ÖË“}·È£zÚ·Ü™=‡ØŒ_ŠšCÿYéUZ^é8¾rþ~Ò“³ÙÎ^ž ‘rÉ aØfÀª/†-ÔÆ±5‡B¤Lbè7g9OFQnd{V®òz±<î£úø>—«€‘1 !‡í¿Ùo_Y <(e‡l+š¯¢ç[U8:›A5çÉ{Nv:pà&“)s‚•N™ÍXòPm‘~÷a°‡ÕÎß»QÔðÞ²ò«/¥ÓÇ(¸40hÁÚ×dIb)X\£_˜@’ІBºÂ 4%mYƒ¥w44Kxx•GšX]MºÚAû·ï§eÔCnoRñOª$:>µér6àýÈ` »±Sô ýºÍap5 á¿6§Ø¨G •›ý¥´º±Ö—†gœÈ{P ¬Ç,¹‘.Ô“S¹FPQb%™ò'©ë—Ü_-`£ð};ñ(„Ë=<ò[¬£w]»Þ‘{RKª ¤.–±“lD4ÉSeÊ]¶ÀŽ}ÂÏøA,†qúÖ[ÒOáZNy}ªƒ^r“<»’‰PÕÚdŸÝÛ€½ÛÒ04ˆ; ˜ ®îRý±‰=ÇibIÂŒüǶGQàeà €Ê:i$]É”hNK„ä:4™„pµN‘ª‡_Œ32AZoñDŸ²l ¿úžMœ ¨9I—@1§íØ zÀ°™XU“Í·¥fáUèŒÄx„$D}•ö׆¥Æ˜+V:iƒ3×2,¿«0N=s¦¨œñ—ïÈŽ«#ªBdùÕ¦…€¦½oÜôH;UK ‹jJÆ7|Ý23Pé—¬UäD5IÊD¹hŒ¤é…d«É86Y‰­Qìt?Q` ²Á}‰Çy(x|&€üþ»9Ôtm€£+£#ñ#~A°–ÊùÚŠuìvñEO€"øu"KÄïªÖ_fê8ePyÌêÒXlÈà¶ÃÈ(W™qöo) ÌãˆSÅÛnËÓZ’Œ9p—ˆ4Ǹ¡‡œÖ•ñ‡ë^?´°Vô™ ÓÑ×R›R›Ôp¸ö=üµçFd±M$t)䛹ž»8,å׫Þuκÿ‚Ñ:õ <ÌæÔ‰™Gb#Ó©ž}æ–#Ƭtùj¢Ô‚¤å׋³ÞUúŒEótPÒNåetþõ/BlÿaøÁ*¥¹[Á2ñoðbž€mE1û g:¢Éµ•±` Úž¼¥¢Â胾ì`[ x€ ¢å³FÏýˆ¼£ÿu ËNajÖ”‡g¡Ð/M†1n•âgÈ],jLÏA`øp^uõÖjÓñv‹%¢t–÷§à“ÿoßö2a °ªÅÇïe²È´mÎ5~,æó ”hÚ®E…ÞfÛ!8L0²‚¢sÙÇN„öÚ=‚ÙÖ–ÜÁ¹2ãµð˜ø¼‚üœær ŒRëmö`Ýré_®9Ì’§þÝBHo*øQð/(q |;lѧ?Ђa½†õÚÍ‚;v~?² åµlôǪ\ÿ$›Uö‡¯ù¶MGR=ß>Gí?Èúpç,¦—ù£.ýäÍ o‰céÙܪûå¸aÞëxÙVFýúH1¿yMkÙJæ3û.Î6êd£üWpdÚ/_j¸…·åÙþÀ˜Í”O˜}¹úÎŒ4ø_(Y¾qƒ¥Øå/Êýdà Ð¶íP±#k¼­ÞÏ¿ŠÈiä;, À&,“<ô®V .|i.Ý­Ll«E¾ Þ¡¢£ÜCU¼“IýD;elÇVÞ•ûH¬@…ŽPäÙ_záŠÁŒ/½&Ié/¶l=KÄA |x î,9qæa58´ƒñù} ²<퀣ÝK€(]:æ,H”%Nì¼< ~‚F˜aû"º¶y߃Ô]ÿrêµqØþN±½üfã> j9¿J‡( Ž¿¬¬.$]·Öý1î·>žnóÑzÏä~lÂV2ïkq“º“Öá©y]Žêò]0¢SÔ%Š7ñÐæ‚pÔü¼ä äºÝ~ùiQæXã âƒîCÃñg¯q¸H:€ÏßX,Åy·®d3¸õúKR¦Âðïì.Ñ…¹êow°&)»F¦BÒŽ%çÜ5²²Î„‘ÏQßÊÆ]þbÙµãPò¡¾ô{27UEéé¯O+3c¾*ôɱÄÂ)Rx©ØùùZ³Šló=ûÔ+ÚÏ[{Jíbc÷¡ŒV` šDú²áN–sÌWeýC£+,“týãßË<¡Ú¤í¯Q päálgpqÌýêÊÚ@Š»ëþùª«mÖD’Øá-ª‘õÒxjçÜ~Ós¤¹7Ó,}Àá±EÄ4èõžóÔŠ|½¿—¬M”õG»î¬€/o*ÄÐ0%˜Y1ŠÒŠ;dào»Á:âçÖ(àî„Ó¸Êl>8ûl_""Ý6ÇùÌZ¹-#\{”<ó#(]*Ñ"nÕ.`Š\ºh?OïÈ(¸£îôjɽ?`{xæqÈ_#T&’Uƒ&¡ñGQPÁ‰\ Êóµ8Ì©¦ i][ÀTÏiŸPjç¡¢Ö>ífÐ?d‘5Ï߬¶‘üΪþOÆ/6qZìàTža +?ŒñCuØJ»Tf~ÖN “ŸG¹ƒÀKjr¦¹V‚_eÚ©Ø‚B²y© IÓJ}±^¯iÔ©A¦tÀù<ï1 }l‹ Ç„bVæ(ª€ˆ‡ª,9ÓªÕÚçZ#%ò:ÿÙicnV BþQSapecNG-2.0.0-source/src/gui/images/bringfront.png000644 001750 001750 00000006346 11617757645 022772 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ /g5g‡ fIDATxÚíYYoWz=w©µYÝÍ&ÙÜ)Š)Ù’=T¬Åˈg2m$˜a`òäß$ïy 2Y€dÄY‘k§$’æ¾5»Ùì®ínyÐí CH”4qú…ª®®ºßùηÜ[@=ôÐC=ôÐC=ôÐC=ôÐC=ôÐC=ôÐC=ôÐC=ôÐCßj0;N¼áW@?@ÖuhúW™À[€CÀ€ª%§Ùaé›±ÏdvÞ±áÚëÜÞCí:ÿ%ßà<|Ǿ³à€ër[ÝrøïʬÛàî˜3v"€ Ëhf¯çvdÚvècÏÖ¿Ä\´%{À¼}W@ à'öp,~£¹ß¥ìï€sΘ‰¢¾)ÇqŠ.çw8#Œ’<Ë”BH©Z¹;I’>ðÀW¨ý§; ¡Æ}‚·¹‡oÏû¼às-à/ºŸù¦k¤kì±ãõAJÈ9î8W ¸E…Ó•¨8>:„S““¨ :<ŒBX€ÑÆh!¤‡Í&vw¶qÐh}²¾¹‹Ýšj6¾N’øçy.þVHyCk½i 6/P…c .Û¤G\ð9!˜¤”þ!ø)uíe†½ÊpÇ!®1&0`!*„תCƒ c£CS33“8;?‘áÁ´pâPãùaŒ»àÜ…VŒ»Hã¤R ÔÑH“¸-”ÒA;NÝí=,/¯áé³elnï®ÔêÿpxØü+¿°Ö„fŒáVqƒ6Á ¢è÷†û/sF·¿^Ýü#­Õ©ZoJ@Gâ›D8!Ä1ÆœðÃÁJù£ï¼3_}÷Â9onvÃÕ8…„Gœ1É(ñ\× eP"ƒJPR Ï(%¡ ”R:˲,%„—sYž ´Û-ÄIŒ,ØÚÜÂãÅ%<|ü¬ùôÙÊ£fóèO´Ñ?°i ¯ØÑ`!ð½ßùôãï;O—–¿^ùâÆí?ðû6ßàuB€ty<P²2Ÿ0Æ|\)|åÒ…êo~ÿ:ÎÎÍ \®€sŽ$nÀu0J}?ˆLÐWæZå2‡Ö(!€àŒ"(WZ©$ËâVˤÃnèÆäYÏú+¨×÷à{Ó§&qý»—‹÷î?ºò/¿¸ueuuãwëõÆŸ*­f ÷üÆpuà³kW¦®_{Ë«[¸ÿøifË]~’—'8ÏÆTÉzÞða¹TüláÝ·¯~òƒèù·f144Çq¡•€ÈÛàTƒ@©<y,KîÈ€”}jâãë×Þ›ûðƒ+dzjžËÁƒ1R h€8F*­)O’Líl­*?ˆ¡Ïã^I)3PÊ@)5 ™ ŒçŒ{Œ‘% „€P ­r8Œ!ð(XžG|§Œƒƒ\ÇàÒų˜ ï>Xú­Ûw¿?7;éþðÓxTpšGM™ç9¡HÓ\h¼Ùºã¥0[Cûì(Ràíɉѯ^¾8wõê%o°?Bš¦HÒ„y¦ÝN°µ¹¡÷j5QoeµzZ¯7’V;nçBÅRëÜ(-´ÑÒÀF çÜq¹Ã½0ðúÊåR06Råss3855îV+Ì÷!ÆJ(|¿JãTà‚UʡȳÆhpÇ5Ðqœç¾C¸#› UR%¥!šd'%{ÞUê:õÝP-•ŠççÎLŸ¹¸ð®W.õ“VÜBý`Û;jùëtmcggmm}­Ñl­¥iºž¦ùv–eu­u @@]õ»»=DœÓ×õGú˧gg§æ?¸ziüÚû¿V˜œc„Râx@ŒÖPJ€ßs¡”8àú(cº~°'’Ö‘ÐF»Ä‘RÐ4KˆÎÕóNӼЀî®.0ÚEg¦&§Š…BHöö÷°´´¬îÞXüdeqc}ûöQ;¾£µ~`ßÊKXcu—Ѧ«‰ên¤B)uAÊx1Žã[;»g—–V?Ú«Õ>ÿìÓh|t„RBÀ¹G´VRÀ€0f4×7Üq„yþ¼·p¼€{Ž21aŽg´a„ž¢²®.õ…t÷ò.€¢çyÃaèW}×ð­u<[YKoÞ¼÷dm}ãïÍŸxl“KÖex§+ ­’¨U€°¤Ð®w*”ÒaÎùpEƒaèMûúª Œ(ÃSîxÄhI¥\e‚QÆŒãZdme”R”Ì3€§Ô?ìx¹á­8C’)0î©51†ÄRþ—ù½4Ю~º`Œ©”Š‘›çš~uïQróßîßYYÛøs)åßÛ$µÆ™còÊíuÀ€YÃöœyžW¨”«å‘r©\-—J•þþRqttÄà•"ÁÄø¤â—"Éa!„R£”ÖZ c`˜ã0B¨K¡Œ¹4—Š˜<!”QB¡¤T¦!¥LOZT½¨ zB7Írllí©õõÍg[»»?‘Rþ5€.¾l ÚjÒ©(§LB†8g##Õþ÷.^(œ›Ÿu''&Hõ‘0ðÀç aXc„¦í¦Ó¨m@kîx „2%…£µCÐWã '0º ¥7€hM4ŒiZ•žH@÷£ ùÖæVžÄñÑÎÞþ­v;ùgëùü¤„Òµ¦¬Øp @dŒ©´Ûñðý‹»»{3Ÿ,O¿uvnlöôxß䨠34XaQ!K[$KšÐZA),mƒå)\/€ç÷Áõ* ”ƒ;Ï×Úhd™€1J ˆL ‰›ÈÓD !:Î:1 ê®X¤1æð Ñl'Yîæy¶`¯È¦]!p ~l™ÚQD!˲ÂúÆvi}c{äË›ÿ~z°Rš­ž™Ÿ;=1fªtjbØ©ôG, C¸^Bq\~s® "ž_@Ü>„Ñ5Ä"Ïpttd„”¹¢c^¥aKWÀ€¥Ô~»SÛ5µyƒ=ƒNnèlz´ŽUš€Õ$Iî­m$ŵíêÍ;fŠQðöøHunþÌÔø¹ùéÊ…óçSÓÓ´Ø_ã¸äy3e ò”R8:0Žãë ¯h¼$Ó,J)i’v›i£c¡”´ùê•›¢¦«›5LZù²Nê Q–Œ´k¨e ¯i­W“4°»_ÿêÙÊú“–w=Y‰—WÖM­Ö`R䆥¦„¥e–¶š"Ïb‘¦‰L’Ä´ã6“R;f‹olîÔ67·¿Ì…¼q $¨í„ö¬v‰9`Ô®vÞP/ƒîRF۾˵Êlä¹\Üݯ±»_ºuçÁT©xvlthöÌÌÔÄ…óç†Î;Œ9aàF)ÍÒ”H!ˆÖ𣡤2yž ¡dû¤x|[¼3±Äî¢nu-‹Úóo‚€ãÊЖôÔ&Ï–MZëµ8IíìÖî>|¼ôèÖí{Û7oßËŸ.­ñF£éJ%‡;T)I¤²4Ã^­¦—–W7Ö7vÿÉn±É×ý.`ì͹@݆Æ!€õÿ^¤in7GV)[¹‹µƒÆ'O—ïÞùêþê¯=]ZÑ»{{LJÃ(1¤Ñ8ÔÏ–Ö6÷ÿѳø:Ћ ,Ú t¶²ÕÿÒž~'g(«Œ–uF§ÞÒZ¯6[w›­Á'ÏVNG…àÜPuðìpu`*K³áÝ}ŸÃÕsg'Õí×Ùf]ßÿ‡Ï]܆gÐÕp•íq†Rò=£MÅ?ð…udíE;CßnÐ.2<{^±D€»V½Ê†QÝÕ7õaäÿÇ+бI¼SÊ—Ž-Ôp¼-þ¶+àeª,ñ«nþ°ÈøÊ;ÝzIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/sendback.png000644 001750 001750 00000006175 11617757645 022372 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ .#¿OKm ýIDATxÚíYÙo\×}þÎv—¹3Ã!‡äpIÉ$EYŠe[–§uP§F›4M€y /}ì{ÿƒ>÷­íSÚ‡4éj4Œz«e§–-ÛI‘¢¸/3Ãá,÷νgëƒ#Sv1æ.0˜¹<çü¾óýV}ôÑG}ôÑG}ôÑG}ôÑG}ôÑG}ôÑG}ôÑG}ôÑG}ôñ•ûïäx4ûU&€î;Óóû €€@æÞûÊ€÷|¦"ƒ Îx àZÏí×9©#Cõõ{¯   vŸ'|‹?¦”Ì[  ` Ç-„#Žô¬ñeãTÉŸë<Š@@]P:2\.½ryáâõ¹¹é+¾ï]ÖJI¥#k­ pdŽz†Ð/>€ î²âÇ)ô¼ H¥OÌÍL¾ðÍ?|nê/<[¾²tyzöÂØâèðð“”Ò¥dEJYk¡##ì‰%äK"â €ç\ܪŸw~Zëˆ Æ ¥4 C:6>NŸº:_âL U/Ý_Û|ñÎ'+µ»Ë«{»·:ñ][jZî:î ]S~×ÙäÔ•o(»½\¼ÊÜþŸK9ßçÏOMŒ}}fzr¤\.Á9r¹œ-";9^ÁÂü,»ñÌÕüg¿69iöòðÐÀUOˆ%£í…LÊcLØ£Œœ“§ø» qÁüO<ãvǹ(ÎîóÀã‘çy‚qf ¡šRª¹Ús&ÌE€)”†P›`K—£W¾õRnÿ zaåþÆswï­Ô—W×¶76¶ÖÍÖ½,ShºÅîéºCþ¶2ŠuêÛð”SBÀ#߸3˜Ç)` ƒ*£åg'F‡r¥‚ÊGEä¢/Di°"rù’gö¥ÜËмRåóósÞµ+óKó3“Óå¥òàÀ5ÎØU¥ÕŒTfÀã;5„=A”÷œÇþ†Ê.§ÜºGNú™s‰ôÔÎS@ ã”Ð\E‚1îi!MÚHÚ>‘Å„çƒs@š´uc(•¢·ˆÊR\˜®Ð±ÑÿÅç¯×[£·®®Üß|yeõÁöÎÞáýjýd5I’öœ8eô>]§Œ/B÷<žó< IºFk]Ðp®q¤3ö<„‚ νB¡@„ç“ÓsJv;i¥2(™Á…,MvÛÈÒZKø6"Q¾„Bq•qÊÙ 7[ÁQµ>¼µ[}ríÁNûîòêîúúÆÆQõx=MÓm'Õº“q¯«t\zÎc¼ ÁBed8ßhœdÕzcÀZËáÂ]< ù9 Q!„ð‚†¹"„‚qBŒVè&-ZIÄíc£Á˜.0îAÉ”2䢼 BÚÇ折˜,ðÒП™ ž˜)ß[Y[üåûu–WÖŽã8©YklXvφ3þ<PgÜD…0;=õÌÔÔDa{w¿]­7¼ž „Þ⟳˜BŠ”ZÚMÚ‘@.¡ ZKd‰±ZgÆZk¥š‚j&<"¸'¼ ¢žŸ“VK%Â<“™âû‡U¶»»Z½iŽjjoo¿{||ÒlœœÔ'ÃZ­±¯”>´ÖvÜAÓ3n;#Î^qv&8篌ŽþðÊÒÅK…|Uku!²,ËR·¦ù ^!¥4ïûþ`xcAL•Šùééé©ééÉJenf2« ±Á¡aAkÚÍ­Íf»Õºïj‚³5‡=Ÿ€zZÎ…±°’*Ãü¾':˜*™ 0@ª ~‚c4´LkÁ…K&'FÙw¿óG…›7Ÿš¸¹3³ºº~²»¨“$NÒ¶’*UJfQÚjK@%”F§ÔóËå£\48X ‡ÊƒÁ`©à”Ëb|b’FQ«SB`ÀE€êñ±}ÿö‡éêýû''Í]Öí©äã°–ZŸqN§DÉ®‰[™$6²YVôâDÒV³I,4|߇çµ!8Ãàã Z%Ð2É‘ã„PPBHàs2=1J§'+ìÙëKÒ²n*y'ŽiwHÚMƒµ”PP&`Tf@Lê Æ?à¾ïB `5¢ü ¢B Œ1È4A·°wPÅ­÷î¤ï¼ûþêÖöÞëøÄÉ¿ížno?ðYt’$³IGœš!ÒZâIÂ<¾¹sÀ~öŸ¯©Õµ­ìék áµ+Ie´Œ|¡©ªPÊ" 8ó ¨¬ c>Ý1Á=PF £Lø™Ñ YÚõ1Ä Î}0.@‡5ݤe³n'àSJ™µ„R‡ðX« Ói¦°µ{d_óVòÆÛ¿\Ýx¸ýªÖú-WW4{‚lÖ›NÏ+„JAà1câЄåÜãÿwû“Âÿ¾{»zçãåðæíÖ÷76·_¾~íJîůßD8ª7P(QÈç¡­á€à´ìÂR á‡P² ­R"¼Àãž/`4¡ŒC!|0úé±(ã( ²êþºÍ²D1J©””øàNYJe¨VðñÝ5ü×Ïß´·?üäƒÆIó'^wÆžßþ"i†JCÃ^TR ¿xíŠoߺ½ypXû €¶;ñÛ«÷¾\­üxe}óæ7žWŸ¼ ÎStÓa<I„aÎ}´; dq ùb¹É(ËSÆ‚0*Bf)!Ð*ƒ´)(¥àÖƒ±Ö/WÐZm ”¡SØüZræó€º!EÀ<€v·Ÿº6_p#zæýÓÿ?D®Ž÷ÜcQ§%pÒ#aÒ3±ÖgÊÙßhŠÔ'Ý$õkÆÜæÛŽiûknfÎ|:²j÷ÔùgŸ³oz†"¿ÕâéfãnRÒrŽ˜0àƒÇ !~¯ñÿHg¿„Vz®IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/paste.png000644 001750 001750 00000015334 11617757645 021731 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ .9T•ÖìYª{¹æý¿úÀ+ÍçÏãÀ&ðY  ü`ø@d@Êßò%¹ïˆãÀ?^‘RúFÅ-ðà7€À—ƼÕ5÷Õ\÷}¥âŽsž>$ɯ;zôį}øÃRÁþÆ78qü¸ZX\|òÖòòFSæ¿6~#j´D`«ašÛóú}B¸h(f€³À'“8þØ‘#GN>qö¬~êÉ'9ùàƒLLLðü /ð¿ž{ŽßúÒ—ðÎM}÷{ßû'?}ñÅOE1¶m±À5à àÕÆlª÷‹ØO´ilø,ð‰À˜žŸ?ýØ™3á“çÎñÈéÓLOM¡¤¤²–¢((Ê¥JJ9ÂïþöoóÈ©S~íë_g0x`øCà…}Nó¾8AÕxæûAôð(ðŒÑú³³³?zútô¡~‡Oždr|œº®RRUµ”» Zk¼÷ÔÖb­ÅýÈGøé‹/ºŸ½ôÒ/€ðÁFú÷H€acCï„è½ß§c>>3=}öôÃw?xî6’–Râýn¯cii‰~ŸùC‡˜šœ„æBJ”ÚâB¼sÄq,…?ðÞÿ¨Á¿ üŸ&Š”ï–˜€ü˜µwî'_B|zzjêÜ©“'{çœ3>ÊüüfÌP¼[ 8¬Ü…âŽ}¼|Tñ©‰ññ§N?>ñá'ŸäñÇãÐÁƒcpuwŽ,ËðÞ4ŒRbŒ¡®k¤;z”Ñ^ï|ï{üÁW¿Êh¯‡­*._¹ÂÍåe¶··HÓ„Px/‡º\ÝVï|fÿNp8ߨ•¸ƒð¤ñ¾OI)?=66ö᎛=ûøã<öè£ôÄÌÏÏ“Ä1Zï^:/ „H!Æ€s„ax›pc Þ{Ò4åÖÊ —¯\á•×^ãò•+lmo£”bblŒ'N0?7ÇÔtº]ò,ãùŸþ”ýøÇ¼øÒK|ìé§÷|Á±Æù¿zøYƒÞ}Ýù]x°q^ÓMèóÀßV“$™>zøðéÇ{ÌóôÓ|ásŸã'˜¿í¸ö<±sî¯ïÜm³µ½ÍÂâ"¯ž?Ï›—/³²ºŠ÷ž±^o—àÇ™?x$IM˜«v#ƒKÓÔomoÛ¥›7ýµë×ÝÊêj½¹µåœsuǵw®\[[k÷û}| ø#àJã¯êwÊ€¸Q÷GÇ6=2?ÿwÿÝW¾bæçæn«öÑRÊÛ½'áÕÕU®ß¸ÁÅ7ßäõ7ßdyy[×ôz=æçæv%<;ËøØØm¢³,ó;;;n}sÓ­¯¯ÛÅ¥%—–Üêúº Ö9Wcò8އI’N§ ‚À•e)¯^½:sëÖ­ÅFÝ_¾Ú€¡{B{ê?ÑØÐ+ Ÿët»_è´ÛÆÖ5xÕ 2k-7oÞäòÕ«¼þÆ\xýun­¬PUÝN‡CssuêSSSŒt»DQ„óÞ§iê767í…‹ë›7oºÅ›7ýÚÚšßé÷kkm¥µÎ;Îpjj* Ã03ÆƘZk]Þ{sÎ !œ”ÒÕu½â´RÊ6Îz£ ײfÖ`‚{B‚°nìÿX“RN§i*_üùϹµ²Â+¯¾Ê…úƒ­V‹¹ÙY>ñÌ3Ì<ÈH§Cxï]0p‹7oÚ•ÕUwíÆ ·¼¼ì777ë,Ïk!DÇqÖétÒùùù´ÝnçJ©JJY7ÈÎ^J鄾‘º«ëÚ9眔Òk­]NRÊí¤jÐßVC§¼„÷€¦€ü3%ålœ$$qÌáùyÎ<òGerb‚ |m­»µ¼\ßZY± ‹‹nqiɯ­­¹íW×u¥)Úíö°•$YÇY†¹ÖºÖZ× òBçœó{R6ÆÔRJßì”R>Ïsg­õBx­µpÎ.\8»°°ðó&Ü–›ÌÐþ*ÉPÜHÿ©&±x¹vÎ ƒ•¢(¤ó~"˲ε7üôô´[][ó‹‹‹~umÍå»Ò-£(Ê:ÎðСCYÇY{ÒuB¿Gh]×>‚z@眳Ö:¥”SJyÀ…aèuaz­õ.Àj"sîN´wOÖoQ‰lˆŸhœÊ›*ËïÏUUµº¶¶öÀÚÚÚì+¯½ö€1æìèèhÚn·ãããÃ0 ‡nðTaRÊZ)å¼÷~ï³µÖK)”Òí-cŒB8À+¥¼Â{ïws)o#G)¥|UUH)©ëÚdYÖBì•Ðü;Éðî4 ÕØÍïP‰Tœolë:cÎÅqüð±cÇnDQ”:çl¿ßW“A”aZëJJiâk)eÝØñžÔkcŒ«ªÊ)¥$àB½ÖÚí!E¥”WJycÌí´ÙZ+²,‹úý~ûm’ÞIÈÞbo \n4b¥qŒ1ð€!„-ŠBäyn–——§666¦´Ö…1¦Ü#~ßÙ5fà§”rBˆºqx¾ùÛ !\sx)%ZëÛ&Òü¾¶ÖŠ©ÆTØçð~% x»U5 bµq,C ÖZ—RJ¥”ªµÖEUUb}}}úÌ£tžøÀY–¬¨¤9ô Ksúƒ!ÃÁÀ†Ÿç…¥³Î9ïqø†1‚Zi…õ#ö"B£E¨­µ¢ßïÏŒ-4ô„M£î7jàRS]õ Àð€BP×µUJB5::Òù×ÿò_pò¡£„aB a çÞƒ­*!”UYÈá`¥b¬ƒt8¤²Ž,R)eé(byñk«K•c0èSÖollø­í!ÿû/þ’Á`0Ö˜O«¡ËÿªNð­–mUq— ÒK)1Æ[[p%e9d{c[eh"•飯eBƧ#•AŠšK—/á83©ÆFÛ´’7¯ý„q¥um‰âEÑǘ˜²2쯣´¡*sÂd„" MH¶Iëdé&Rüp“ LȳmÊ|°;/ ‚š!¶® ¥T±W·BHç\Ù¤îîHüÞà¥Ä±3žI ”¤;6G™‚º.©G …ó–¤=A]åX[ ¤$n …DIM»7­2òáB(ª2¥,Më»B)œ‡ÅÅ,-Ý*ƒ ¨â8®1ﹸ«i$qtìÔÉ£bbr–ñÉ£xgÑ&Â{¨m‰w5ÊDar»d§”B×!e9ÄÕ– jƒô7obëÄ„qï<¶ÊRbLDU¦äÙaàEÀÂâzÇq¦µö{©÷ʼ%&'Ìž|ø½ÑIl]༣®K”’HmP:D ¨Êl×4¢6aÜA(Euð¾&nbË|7ìIM»;…@6Ò÷h¡MD‘ °UAQhpcñVmŒÉ½ß-½—>àîõòÉÑÇŽmŽ´(óM|’t&Q* Ïú€' wa¬ÖA3ï“©5ùp›0êìFаE%hbËeZíñÝèQe”eÊæêL#Úc,,.8­u¡”ªöªÅã> 76ñù“ÃÈŠ8™"ˆZxgÁ{¦úSÙÄQ—ŠªRÛ²‰ ’º.±¥¸Ý\ÕAHeKê¬TŠíõÔ®FyÀñò+—E†i6 Cßüîû€wdRþ•íA¨ßxøä â¤MÒ%Jº˜ Á»q}/¼9[Rä}Lß¾†”š²H)‹”ªHBbm ꪭÎ8Î[–_#n’tÆiuÇ™ž{ˆ×߸F’$ý0 ëý3EBˆ;‰¿?Ù`†Å/«aBˆGºÑ™™é Æ&âqزÀÚ­táC :À×–ªÊPÊ`mu;Óëoݤ7qd·^f8ݱY„Ôô7Y¿u 磓GHÚcH¥‘2`um³‚ óÞ×{ ’ƼVwšÅ=3 Ýjíg@xhnæ#Gftt[¥#¥GCm+”4 †«é6I{©œµx›+W(‹AÔatòÖdÃ!AئÊ DÉuí¢6(ó!U™32:ÉùËo‚™ÖÚîëÞka÷WC‚ë³@ü—?øÀèäñOœ!0’No¥CÊ*£¶WWX[ÐêŒÓêMSû&ç/SŠlmB‚¨CgdŠ(é¡T€11QÜ¥Ó›&Jº»¥±t“ÚäyŸº®£Ýî—._Çh5ÔZMÏpwrt·7 ß«‚È<`¥”0?Öžˆ`m…B„2„ÑnÅ·-¦M°›6Ã.I»M%„Q©4[k7(«”¤;I>ÜÂ9‹†MýßUÊtÂÚ#ãäyÁæv¿ôÞû<Ï"n0@ÝEïµíÿ–crqSÿ¿sM4sCîè‘ùs<ø##㸺¤*2”äìHxç1AÄöÆJŒŒÍ¡L€Šl@UdQ›Ú;ªÒâµ 7>‡ 7‘EF]Wqç`sk…åå[ÜZíóü /úªªâ•••¹$IvfffV£(*½÷~_ä^Ì@ßá,äÛôÔF€/ñ‘#óLŽw¢Æ˜Þ˦ê³6›«×p¶"Œ;´:“$ ¤TÍ„w mÊ|ÈòÊ-¤T-qõî»NÖ–¤ÃU-ÉŠ”ë×®°ts™+×yþù—xý«f|brpìØ±×“$Éš‰4Ù4VµµV½áá-}‡Û·/ÿ†KÿõèüTÔë¶ð®¦ö5ÎWxç‰Û£l®\AJMïÀU¹+E­òl‡Noš²R¤;ì 7iuƹtùQ¨huFi'[ËlnXYÝáµóç9ÿúV×¶H☧>ô8ј \Ÿ½²7'$vRJG"Ä]Røw…?}øðÜÙÇhO6Ü ¨¼Ø2ßU]mHš26B„ E¾ƒÒË ¯bL„R†öÈŠ|ÈØh›¯óÏyø¡\_Xdañ¯^¸D'ãá“Gù­¿÷žùõ§íµøÖŸýwÿÇò­áìììBEÖZzï ï½PJ‰}}Ñ zš¦5#3—Þ-N=rú¡‘^¯‡P!ÞK„ QRâj‹÷[fx©Hº“)©m‰Db«Ý6˜6!UU0ØÙ ª ~ñò«üä…—yö¹ŸpúÔC|þ³Ÿâ÷þù—™šèÑívpuÆ7¿ý}þð?~ÓeY™ž9s&“RÜÙÙÙRÒn·‡RJ±kþBœ=qåêÕO6­ü7£¾ÏÝø_â#'ŽÍ%ëk«»ó9uNÒE+Iž®ÇmL'š²ÞFƒ1B8lU% ¶¶¤Ã._Yà•W/R{‰­=_û“ÿÀ“çN³±~‹,í£µãùçŸçß~åX^Ù¢ÛéÈ<+ã7ÞxÃTU•yï? ´®–——×ÚÎ ‰ã¬,ËV]×ø »ï^þS3똾[„Q|þâ› úæ­ÆG»L˜¢ÕjÑJBZ­˜jyV{ ¥ &põî©6Z*jw!Q119ÍÇŸgdd”©™#<ÿÂÏxäÔaÒá6Å?ýò¿âü…«,ÝZ¾83==2>66åœS ‹‹jb|<ܱŸ:p`êò•+äyîó‹_ÿå»ß¥™h®!þ9Þæ=Â{fÀñ£GeiËOþø'/ŒVU=ê½ £pV q: t/‰'Ñd’$c­$iÇqœ$I${##Äq@g¤G·Ó&‰L 1JEíκJyî¹çüg>þ¾õgÿƒ?ø÷¼¼ÓwëõvÇþð¡Câ•×^óË++—g:ôWVVpÎ1>>î¾ñ§zÉ94“¢o4³Lú¯«ö¾Û5Ù$¿|‡WÈHJfñ~ÄA%å !üq3F›‰8ަ’$é´[ÁÄÄ„4ƨë×Ôµë EQVßžmÂññ{ôš+'Œ1nvzºuíÆßo†:g€?à—ï}®™gZjüÀ{ƽo‚ä^ú ‚_¾ØØÚA`zUYMùÝí›ýNÃÔ´¹¶o¦W?ü›fViïž5Skç÷…ºO4-·ÞŽ÷ã½A{ûü¾sÞ;eYíGm{ïûÍþ¨éIì½À1ݵÝÜ»^lÊöûãüÞ S½oþ±äoÑ7ùÿ5`(Ó*IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng.svg000644 001750 001750 00000146644 11617757645 022442 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/gui/images/zoomout.png000644 001750 001750 00000012422 11617757645 022324 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÙ $¸‘èà’IDATxÚí›i]Õy®Ÿ=ž}æùt·º[ó,$11؃1cëÚªœrÕýw\g°«’Êä¸RùƒSq1œ„‹mLŒ°¯$›IÈBhhµÔ-©›ž‡Ó}æ=¯üÐ’ÝQáDZÈ.U«úìî}ºÎû®ï{¿aí£pùš (r7å‚ß ”KÈõL¹Œ+çèºn†aBÄ„ èòï>0 ÔO®óÀ}¹Â‹%C¿\@G"fÜŠ˜Ë2éÔæX,zÝØØÄ’j½Y´"¦f˜fBUMDàû^˶˞çOg£rêòÿy€ ÿÊÇ Ü0teAGÇòXÔº³Z­nÑtíªd"ÖQÈå(äsÄ,|>O:[@ÓuÏ¥Q›Áu<êNÀÀÀ ccãŒMN×jõ†¡ïp]§çû¼=‡ˆË†í¥¥–ý}UU~//_º¨“eKÑݹ€xÜB 2ù6„úEžÝ@3L\»‰ãzŒŒŽs¼·#ÇN28<¶¯e;¯HZrùïç Ê¥¾ ½ïêlÿƒJ­þtU_uí5W°zù …ѨE<‘DU*³eʳUP4ôHŒH,‰e$¢4áÒjÌâ!†iá»-j3“ŒONsàݼöÖ‘æL¥ö8ð0 4ÆzqI Pѵ £³£½øÍZ½ùûë×­âÚ«ÖRÈeÑ Sƒ¦íræ½qŽëaà½aÆ'¦H¥’èFMSA@ÄÐh+d¸rî¾r#„6N«…¢ª„¾jXœèàég^'úϾ kÚßû~0"õ¡.Câ’ "“N-. G¬È–ÏÞv3+–-DAPZ°»Õd×OÆž·ÞEcÑ¢Etwu’ËfÉŠè†NÔêMFF†9u²Ó§OS*d¸ÿîϰzùBtÃà{.•3Cc<ùÔ³ Ž¿ØhÙÝj9S2{4d8\@t.h[hèúã¹lö¶/}á>Šù¾k“+¶3<2ΓO=ÃL¥Ê-7’M×\IggÅR;ab;Aâ¹f“z½B½Zcl|œ½{ߤ¯¿Ÿ­÷ÜÉïÜp –e¢†~à#T“w{úxì»ßg¶RýæT¹ò¯@˜‘š ´ù& µâ…|öâ±è}÷Ýõ) ™¡ï’ˆœèíãŸùW Å¿÷ÅÙ¼ùZJmí,_µ–uë¯$žL111M†¸žO£Ñ`f¶B¹›¾þª «ñ¼ø-’ñ('OôÐÓÛÇU70<6Ål­Õ\¼xÉé…ÝÝÖe5?h5›Í ÇqfTUõ5M 5M t]º® ˲”l6ë¯Y³æäúõ^j´Ü#£ã“v¹R!Ô"xž»>M,§Ëh@LI€r¾á˜/‹Ä'uµÅ Ù4º¦“-”ˆ˜#SUb±(Õj•ñÉéò¢E‹ÞÍårSš®‡Š¢ˆ0 ƒ0 Ï×õà !<ÀQÅÑu݉Åb­t:mwwwwttüL×ô鈕 ð|*å1<»‰¦é„¾ƒ‰¨²Ÿ8^Ÿo fšÆšŽ¶"Aào£6f$J³Ñ@„!£ã­B!0N !|!„#„°Ã0tÃ0ô‚ ð=Ïó\×µ=Ïkzž×ò}¿!„¨†QÇã3Édr²Z­¨ÙLºÏ&ñì:ºfà{V4¢êTë@T KíSæSEQLÓ42Cų›x¸4g'Èfrä³)‡Fˆ§2ïêšñžã8ñ ”0 }×uM@õ;NgGCן±m{¨Ùl–Çi:Žâ®ëŠ¢(Ax¾ï7ƒ h„aX‚ AÍ÷ýÉS'{ÕžîÒÉØúÍWœ+•ã1LC'×ÖªéïÛÏøÄ†®7}?0¥×ÿbv0¯Y e;b`p˜Fu†HD'±Ð “¶|’/=pÿößÜðλïôtuwõU«ÕœeYQß÷š¦EEM!D=¢æ{^Ãó¼J¥Rµz»óߟ}ö‹v«¾ñ‹ÜM±”÷kÏ É¡**}}}üèå˜SÔë1 >œÛ&ÏW ñ ?çxÞÊ5Ë»ˆñxü±d–ŽRžV£šx}ïþeCÃÕx,~6ÎhšVBÌú¾_ö}Òó¼1Û¶Çíf³Z¯Uô³gúVÿð™ïßò‹/>ØÑVXrßç>MG1‹¡kd³y’ ‡Êì4<ñ4§Gq]oªÑl¾Œ“²´çÛ<౉ò]Çû†é^´ŒjµF´˜EUшÁ=w~Š®…K<ÿò®?|ôÑm§º»_·nÝЂ ê±hÔFA¸®›2TVÖª•+NŸ9½öÌÙÁ|è;ÜzÃz6_{5ÉDCÓH&,è^Œ:àɧŸçç‡{‰F-f+ÕSÀ”ÝœÛ*óèIàgÒÉo&âQåÁß½«¯Ü@©X"fim·p\Áx¹ÊÑ}~·‡ñÉéжm;ð}WQÔÐ4˜eE¬ˆiÒV*°~ýzºÛ3¨~UUˆ˜¹|‘d"އ/4þ}Ç[¼¼ãU:ÚŠëé­ÍVªßýrMï õy+‚ÎÅÙQP&,+ÚöÜ˯‘ÊdI&’(J„D"¢jxîù„Îm¿s#7âF¶«NNLÄf¦Æc~à“Hf‰E-J혺‚nè(ŠBè6P 04Ž~SƒÃüàGop¬÷ kV/çÌà(õFc/p(Ï™ ü¢œÏ^@Z‘ˆ±¢˜Ë®‹Åbìyë ‘h”«ÖAèã¶jhš†ï6G2&™L‘ND(d“´·ho+‹h$q¢±(!Éd’X4BØš&fE°}…¯â±§·Sk´X»j ï204rÀ÷ƒ—d0ŒËaê%!@0 c6Å¥b>S,äØûóCôž:ƒ¦‚Ú¨ø˜f E³ð}Ÿˆ¡£k †®ň˜Âm1u’‰…Žnâ‰4#c“ì|mßýÁvöí?ÌÒE XÔÙÆÑž~†Æ÷{¾÷¬bƤø9s§BÊ<²V$r‡1þdÙ’ÅËbQ‹c'N’I§XP*°nÍ2®Ú¸B6 ~T*G"SDQUßC ‰á ™šÍÑw±÷Í79Ù?€c·XÜÕÆ¢î&ËUŽöœv§g«¯¹®û²bDîú°Tÿÿ4 ¹CŠa…ë|5jE7¬\¹”ë7o¢R­qôèQÊåb–I[1G±X¤Ð¶Mø´šMZ®O¥Re¦Rev¶ ŠJ±T¢«=O&ª0[©p¬oˆÓ#g‚ Üáûþ~!Ä´=.cÿ}g‚ó}.àËéËŒª¨º¡Í.ìîàš k(d\±zí…$ç{8Ñ] ÎMˆNŸ}Ý0A„X¦I"§£”犵«)Ûðƒ€ñÑaÞ¹Û©ôSòuóýÀ_ À1Msµ¡ëyÅÚU7ꓛȤ³¤RI|Ïá½èh+ÒlµH§,^¼UÃŒ iB<×Å lÇgbršc=§­OLNõyžÿ¶<•CϪTüymÿª‘ø|‡€ˆö¶Òæ ¾½jùâMwßq+ùR;ÉdË2Ùöèôž<ÉÊe ÙwðŽãVMÓp­H$1 ]ÕtE Ïs=×u]EQaN:Žsʶ×óå ³5|M®ó»|Gc /ì¼> ÅwV®]½fë½w’Ng°¢QÒ©?þÉ.Ž÷žäêõkŸœ&µ¦š-çù™ÙjyΠPPUSm]×@Ýó¼j† Yȸ|SД×u,6_¨@X(ä6ÛŽóøº5«Öl½÷Nò…"ñDšˆêq¢çÏoßÉš•ËÑŒƒÃcÂuܶmï—1;+Á„AAHPÁœCQ{Îr?ðù"@Âl&}ƒ¦j¬[½|í÷ÞE.—ÇÐUr™-ÇåßžùÉx”ŽŽ%üwf+µW ©Øçóu8§²<_]þ§IÑœëu<®Ôàөĺ¦n»rýÚ+î¿çN2Ù,V4J.“Æ4u~ìIF†‡¹å¦ë›¢\žiµZö žïHÕ—^à]PZ‹9»\@·6ý#Œù0—Íܤkê¶ W¬Zs÷–›‰E#(" f(ha‹ŸßÁŽ?åÆë7='zñ=÷•jµþްi©àÿN¼>*Ó?*ÁˤSŸÔuý‘«7®]}Ï]·“N¥0 …TÂ"•ˆÒö=~ø£¬^¹ŒTÜ䨉~B!†-ç¥ «2î+2ž/ ø‚©dâfMSÝtÕú•÷ß{–©£â‘MÉåòLOŒ°í‰§ÐéîÈ35=ÃÈØd ñBµV?+¼ra§v¹ a,jݬkÚc×mºjÅçïÞBÔ2Ier¤Q,]Àå¹í?chdœë®Ù€fD93x Ïu~>=[}Uš|ýá»$¦þÞ'ñøí±Xô;7ÝpÍŠÏÝy‘h!l¢†Š®†üìõÝüx×lX»+¥\©Q©V«-Û}Æóü²,Zªr÷.±©Âå5 L¥’·‡"|Ä÷ýeÅ||·>…oWQQ„`ªêò½çv°bÙb Å¡¢pú̾ü¤ZoôÈx?¿ûÞÿTÑ?ìÐâß‹Å>cèÚÃwÝqÇâ{î½—·ãÕ×÷à86ímyÚÚ;©TÊ|{Û¿061ÉêKð\›Sý§Ÿ¨Ö›:Ž;%ó}ùýÚÔ‹ý¿È­*ZVd‹¦*Û¸ÿþÅ_ûú×Ùò™Û¹õÓ·’+”xkÿ;üôµ7™™­rüäiö|—«7®'žÊR¯×8Õ?x~øé陃ô”t‡É.l†, SÆãè…¡bEÌ-†®mûƒvíë_£P( 躎¦k”§Ë¼±{}ë[¼õÖ>>»åòÙº¡sèÐa¦fª»'&§ÿÁuÝYõM\8¢ú¸5À–•ØFà 'êš¶ES•mn½¯ûOÿìO)‹¨ª†"ŸI |Ÿ|!ÏM7}‚l6K2™ ð)ßWŽ]@Azô ävèò@ð ð0øAÓ`ø¿€•N%ö¨Šrõ‘£Ç´}ûö“J§¸jãFÞ|óM‚0$ŸÏó'ö5\ÏçŽ;¶à86‡Ân5ßžšžy> òԗ©@€"Ãô¬û:°^Þ-O{ö«€·Cr»Jn® ¼ ôÊ»hÒÀdž~Bq8—ËDc±ø••JEݾ};3³3´µµñúo°ÿ^yí5¶Þ?ÉdU½½ìݳ·\k4¶5[ö€Ì÷2í¹é¡Wßn—âRY*7€Å’œu@FzÄZy ôuf%IÒ˜¼¾¨ˆ«å„õ`º®—{<•Hˆh4ú‡éTÊúÞ÷@©T¢<]fff†/þ¯/ˤr¹Ì«¯¼Ší8ÏU«µwäNLñËGÜ/Öêr§_’¡KаAnÒçžÿ’d<Á¹g‚ªÀÎÿÊÛô÷ñˆ¨Þ”sý¨…A8:[©>Yo4ê•jõ²™Lf¦<ËÐðȹ³:!Ã0 ؽg/å™òñF£¹]ù!g?„ðõ,_?}©Jáæœ]Òøåà†¡ð<S­VïV¡¦kŠ19ÑÛK2™¤Ù²Ù³{·Óh4·ÕÍ zZŠ˜ÃefÓ „sV¸Ø 8®W*©d<éyžçsìxÃ#£¯7š­åý3üòñÔðב€¹D´Kq|ZÆ[{†/6[ÎÏóÛ§¦§SSÓCžïo—¢7&c¿þcÿ²$Àîªz”sœ½ä…»Â0t‚ ¸Nqx~øó±/.G>ÈD¨Sæß#À™ëÒ½s2 ½$*xoÎxûã³_W°ä‡?+=¡2gWGe¾^$«¶PÞ¿W ª+ïS/G.v"äI%WæDÌ 4ðÏ24ž•÷ÿâä9òk«‚_~añÂ]\& œ·åuE¦L]’öko~[óBa\(εˆ õ7‰€_åA¿ ¤ù›BÀoí·ö[û͵ÿ3(¾!ãIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/pack.png000644 001750 001750 00000015362 11617757645 021534 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ¹IDATxœÝ›ipוß÷öúv<<ì A‚û¾I´H E[–lKöxI¦’x2vÍT&©T%òÁ_¦b¥RNÙž”]“±'5JMœ)Û3’=¶E‰µK–EÑZMQE‰ H<oï½o>ô{"LS"(ÑN*§ªë½×htŸóïsÎ=ÛÕøÝQøSM“¡Rjê ×êÀ?,`ò·É”þ[º¯ 2íc¹¦i·ºÜ ”ZÇ*ݾF_ô© ènþ7°TàqûškBâZÝè’ûÙ@70 ¬Vku]ÿÄþýûŠkÖ¬mÆQ¤éº. ÃRJiY¦Lg2¢§ÔïŽÕ~ðƒ¶ǹx8¼Ì5 ¸V h ¸óÎ;…”’r¹Ìôô4RJÂ0ôã8.Çq\‹¢èÄä䤦”L§Sý_þÒ—oþÜç¿«T0 )5Â0@Ó5t]'—ËóÐÃñÀ¾á8Îß'Io‰Èö燦 À§>õ)H¥”Œ¢H–J%Ù×ׇByž§šÍfÔjµ/¼ðB½ý/žRj>Câ8F ‰¦ë„aˆøˆPà{pâÄ Æ$P!Qýà‘h˜àšÀ‡Õ€Î[PqB!”RJI)±mûטmµZÕÙÙYjµQ"|‰ïûDQˆëºØ¶ ÆÏSÍf³ãüRm>½Î³ø€|°ÃDÔÖÐþÉ'Ÿ¼”I?ŠâúØØJ)â(&Ž"LCGé:Q¡b…ï,,,„ÀÀá¢ÚÃ5¼C×dhƒq%æ a˜&==%‚ D)Õö’b±æææ©Tª>P'>ÂkÁçåè·µ ^Žb qúÔIuàÀ¶RaˆR1B&‹‡®ÌÍÎ26vfžÄî!þš¿ùý®p?÷\8}aBϤ3JÅ‘Ôt!$*ŽQ$fq~ü\…Dý ×Äã_Ž~×\¨Ýtãõ%Û2Ü\&m§Òi¡ë&Aà‚ 9ñοzíÍÅKÞÿ70' žMY¥B!§úûƒBWÁŒÂ€( ˆ“g.àº~h’ñÁ,aÅø t"¾«e¬Õl9žnZ‹³PÈÆùŒEé覅žçázÞ I ð[u€°t.y}Z®ë:(E©§7. NÆÖLGØ©,¡Ò¨7œ(“ø€€D®Dex©¾âÝøD^ó‹Iµ¦“ÄýKÍ)*­–[mµZD'…F¾«ÓN¡ëõê³å¹0ÇEõ¿’P6P¸„ÁE¸”ä{þ¸]NÈ(Ë–x¯†çù• TD‘ ÝFMz^Ó΀4›Mª•j€ˆ+¯ýÀ6’,r±¦h@ú2<ÿ†_X*ïõ†c`XÜB’þ¾y±Š\Çó c%¤n꺑Â0lâ8¤R­³P©6Ib€˜÷w€»€Ï¶¯[$ä€Kø×¹ŒS\*ïgçIʺø2Ð×>¯µÅà¹q¤*ͦ‹¦›¦•Îjºa¡Tò’Ëå2 Õj'÷I|À¯i€¦iEà_¼¼Ùþ“ µí†Û|kí߯åäX*ò’k $žÍ ù…_þѶíI)- XC¢Ÿþ0Œ¢Uós³H!„if„¦ÄqˆõF‹fÓéDIô.Ó{÷îÝÖÝÝý¿º»»ÿ‡¢x£ý'ØCbްš‹Ú¸«ýݹœ`ÚH·oÒÉȲÀuíßõ¾¾^ò¬/íÜ¹ë Ÿüä'×ÎLOd¡R9 ¼MRÀÀ²Ìm¦iüQE¿7:ºR»þº˜¦N±»‡8pq‡§žy–£ÇNù|¶”ɤ‡mÛìËf3]…|.³víºOø¾ÿíÏ~ö³û¿ò•¯0333|òäIx øÉÛšÄoÜÙþÜÔðWï%ØR—Á4IY«Öþ=¸Àç„?©×jpýîÝwß}÷ÝéíÛ·³aÆM_ÿú׿933sÂÕuýã}½={Ö®]Ýï¹.šnø!Qà¹M¤&h6ëÌÌÎÑßß;Z(äFÃ$YŠ£8n ©5¢ë®»îJýéŸü ËGFÈY–ùox`¯”r.—M×óüÐq½°·ý’~ Ü÷~‚-U€UÀéEç&€ëÿxÝ®]ÿâ«_½»pà 7…[¶lf`` ûĉ·€ºýöÛnÝð©;>™ÝÓ>ͳ3e6o^O¡C×@ Ee¡Âá_cph€›÷ïáº][Ù¾up×j:AîK_ú²ñÅ/~Ó²h9-FWŽ¢ë†yè‘GF¤P˺» »3éômaÞágHÒéïµ_Ô{V–ªy’ÚÞã‹ÎÅÀ£ÀŸ}ôc+ÝüñS­Vƒ…âŸ}á t‹ò»ý Ó —K%™’f«A³^% zP Üf•™Ù)êˇ‡èíB×O<ñ§Ç&ùó?ÿO|öóŸgjrŠz½ÆÐÐcccÜ÷£ûX½²Ÿ¾B6•Îosœ`ÛsG^éðWþ=0Ö>ÎT˜çI¢Ìß„¿éµ;d‘Ø“½è\–D3Î<øàAuøða ùºaÓ²¸ýŽ;X·v8È¡GŸ¦V¯ÓÕ]Â÷|êõ*aQ¯•ñý͆ƒëº¬X1‚ej<õÌs¼þæ;¨8bzzÏõÈd2d2ªÕßúÖ·?{†}7îaýÚ•lZ?J„twHÙÖðwÀ=À÷CÀkÀ8I…ù]Çz© dH‚šá¶ÐX|¸xŠdI¹øw þx` • Öß|㸹ÿ~†††°mÇqùÖ·ÿ’#Ïÿœí[×0>>ÉôL™žžç'&X»f”|ÆB’Íf9=6Áé±I6mÞÀO<Ã…éîú'Ÿ¤Ô•å§?=Àعó|ä†ÝôõõsÏÿ¼‡‡z€›oºŽ¾¾šM‡G?Œë‡lÛº‘Ó§ÏMø~p ýæ§IJë—‰+.5F[èÕ$Kתö?€ÍÀÕtmew±0²rd¹¿yÓ¦`íºUY×ie>üßü‹¿àßøAðµ¯}ÿø9·Þ²Ÿ®œÅ²Süòåãü¢<‡ã¸”ËezóòØv–ùJj­ÆÁ‡CE7ïû¥bžB>C6›áÙçžæ¿8-¶nÛÆðÑ}»Y¹b˜ÓgÎsèñ#äón½ù&Þ:ña5Ûò˜mß³z9à‘'H"¼ÏÿèB¬X=ºÂÛµc£¹zt¥Y±Êˆ"_¸–äÖßÄOæ?ß}7®çòò‹ÏóO?ÿiúûz¨Ì—Ù¾};+V®âG?}ˆ“§Î²yÃ*6®AÓ Bßcjfž×Ÿd÷Žìݳ‹®®¦!)•ŠŒ,_Ζ-Ûø»Üǽ÷ÞËí¿ kWpôØq{â96mXÇÞ÷G.³³s¡fHJjW,¦¼ŸŒÚ’xmÓ†Uª¯¯·ç7ÞæÕ£ÇI¥Rô”Š öÓÛ×Çömù‡ø!==Ý|þÓ·‘6­Æ<=Å4ùî>ÃÏ>¹\–¾¾ò…~tÃÄó}6nØÄ§ïh²ztˆl&M:eÒS*PêéŲ2˜V …`ýúUjÍê•âɧóС§¸å–›¹õ–¢b…ë*ªõ&JqŠÄÖ}®PPy/²ÀNàøðVŒ mÙ¾u#Žë๠• ³å:G_;†ãø¦‰ëzLNNsöÜé´ÉŠe ”ÈæŠ8nÈömÛ^†B#N…>±f³së{óÔj Š¥ºòšðÉgÓD±â§÷?Äôl9ºqÏuõ_zµpôØ›Â0LVŽ¢ëq)‰ã¸aEã,1¾A’HôçI"( Œ¡¦i9ÃÐH¥ºH§tTÔM±4¢Â(çϱPñ;{މ ežáU^9ú&Cƒ}¬fýºQFW,£PÈÓ70HúÄ‘ ]Tì#‰ÈåRär†F±L §QF×$²Ùl[}û¨ÎÏH¡™¸®Äs}²ÙöWoO‘bWññ Z-‡>²£ñÖ‰SÊ µÁwûyöÁ‡žÄ0 ûJ¬Y=ÊèH?ëÖŒ’Ε0t;7Á—#EbCÐh5›b™:]ùºÑç³áyŽð<‡0ˆ@š„¡iàŠ0tñ¼¤«ÝUÈdoþؾ5–µÊ ‘2©T*LLŒóò«¿â‘ÇfÂ$_ȱaí*êõ&ó Mj:»vídïžÝèº@Ó­VÓ´è*ÐtêB»9«i3qû‹øþÐEÑN¡å8 A6_B)â°’ÎdrÏÈåPJáû.ÍÈÐr|êµ:Aa’L&'rùn¤ŒÉ¤‡‰cè+²qý Â`7Žã07WåÂô ç&¦(—kœ<=Æþý7±ß Bâ8$¶q\”mcY(…Ô,ªÕ:Rrž‹ÞÿC -× 0íÀ¿·—JµÅ7ÿÛ_±mÛVlÛD×Sèš$ Z4›MR)M×Ñ4Z­J³åÄžçO.zûW,¨^4›­a…!±Òˆ¢ šîKMÇ´Òèº <§ŠÔL|·BYx¾‡mid³)Ò–¤µÐt¥²D‘¢<3FÊL£[Y²Ù5x^@ &&¦R¢¢)ù|)bª•õzƒL¶€”!¯¿ñ“Sß÷].šî«ÄW@½Ù¬ÇÍú‚,d Tl`ÙYMjzG†‘ÆÈØxN §YAHM·ÝÏs0M C7QÊG)®b?¡ïШÏÓ]ì" C4ÝF7sT+e„–â7ÞD©Ó4Ð5‰&Á4SØvÇõè.%ìÿòÅ£üìÀè8®‚¨¬^KÒ€¥”Ä:6TõΙ3gæÃ0\ì¯HK b!„>¿PÑŸzæ0ÏyÛ2èïÜyýžÁ•ËûY6ÈÀà¹\‘/á“„a@¬–e%åï( ð¸M!$R30,“Vc^éº!”ŠÑôZ,©T*X–E*•BH ©é†É[o`ìì8ÃÃÃ|êÎÛè/òü‘çIêÛâbM4’Y JW¾P¿ãö[s©”MµÖdbrÚ>ôÐAÑh4z{{X¿~-›·l¦¿·@±+BGÓM,SǰR覔:F*ï50­4ê´Hg»‘R'ðZ4«eüPÐhº††”š¦cY)^|ñe~xïý!¸iß^–,£Y›§Þh ’‚G“$£]Ò$ÙRM «¸…Q®ÔÝÅŠËØ}ÝfGŠJµ!æ+ NŸ>ͱc¯óógŸ¹\†\>ÇÂB•É©2ç'ÐG†ééÄNÛ©«!5ÒÙž[' ]L+Kµ6MµZÁ²Ìd—~ŒÇŠeÃCX¶M.—…8Ä bâX¸aønä“ôÜk €‘Ŷ¥chÓФ´u C24ÔÏÆu+ðܵz™™2“SÓœ:3A£ÑäùŽqìStwظqÖ¯ax°—¾žBVG!*މ¢ËîBÈ*-' ØÁõ\|øQ^~ù(wÝu'šTzäqÒé4™l†É©iü ¨ !¦ÚÂ÷¶ù®¿§TW €Ü šJÅt—JI}.e«…F­2C¹uÓ²ýL®T,–Y¾Œ­[·rfì<ûnÜM:“fn®Â±cÇyöGŸbWË— °víJV­ZÅ`_¥¾ÒH+hÜ÷ãû™˜¼Àg>};vlãåW"5™Ô ÒY*âXͨXÍ eÆ$ý‚+ÒRˆ'Œ¢¦a¤ÈfÒ y²i!R·0µ€V³Õò¢Ô£]…쿜Ÿ›º®³PGHI:m12ÜÏu»v¢‰ˆ–ãsáÂÎ;˹sû4Žs”m188Èðð0.LsâíS ô÷ð¹?¸“þþ^ÂÐÇu=lË"•²p ÌLOÇáyÏ÷6’Ô4ÿ†‹Mœk€Ü8Ž›Q#¥’ʤ‰C]—ô £”èu¼Ð0MsÒ4ž››! tÝ «ÐE:"r…"™LŽþþA6n\‡ï9xnÀL¹Ìôt™sãçyæç‡9uú,›7mà–›÷Q*(P!s³Èåòè2¨(—gñ…1Z•XžK½:PžHg»‰ãˆVcžú½ƒëš•Î0W¾€ašd²ER™.i)@Ó“ G7mt©Èç²X¶ea:Q,¤Ô$…Bt:‹Nåh4]âXqúÌYÎ;×Âð¸RêðI 4ß.–ùÞ3"|/â6rO§€Û€?ö|ÿú·OŽ«ÓgΉb÷®äþJúî»é°úKua?NẚD‘ëT‰œ&™ôZRÙn”R!Ð4M)e‚RB—i4 Rv Û2Ñ4‰Ô@Ót\×a~~žñññ0ŽãŽãy$m¯ÎTÙ¥r¼/-Å ž%é»ï´©érð—ßý¾¿}ëK™ëwm[6¯aÙP…‚Ä´sxn#I‰[ü01‹8òñ nÓ"Sê"Ž ÓÆJåðœ:V*OÔ˜q†h’z½ihïV¤©óúëÇ™-£iÚ#®ëQJ­%™P©’äW5Vw%JÀ$=‚cÀqà&§fžœš)>þäáƒ}«×¯YѽmËZ¹uózF–õ‚¨#5AxDA‹V}mÙ2 3Bâ»u¤Ô —T¦(„,ÌžÁLõâ:.ÕZÓL¦ZœV|¡À+¯¾ÆÁ‡)]×:Žû RJ‘L‰œá×·Ô|h:s6kHJÌÕ~À^’žá ÀB†ŒOŽOnzâé#;JÝ]ëW.ïß²q…¶eóFz¨×¤Ò9âȧ¶0ÉÀàšfød€G7q[â( ŽBB¹N3šŸ+kÙ\NDq Jqúô8÷ýèg”çæÿÑõ‚Ÿ(¥:ã´S$vßi~^]®1Ò9_žã"¢ZûA§Ú ¸$êVÞVJ=\ž[,Ï-¬{á¥×®ËdžX·bùÀðÌì¼µbd˜¹…:š8‰Œ« ¬§Ð=ŒëÌ#„@ɤImؤfà4²ÑlŠbw–•brj’¿¿ï~ΟŸú™?ˆãØió7Oô¸DøŽP— $Q§ÅÕÅW/¶èhU%QÇ_Aðòlyáí–ãÆó Õøø‰3âüDÙl6ѨÍ@ä k*ŽP*Ñ„l¡Ÿ¹é³b¡ZO>ý+V,'¶ùá½?ellü?î‰ã¸N2ª3Câ¨;û >-uDfñõ&IÑ"Q;·}trðwCgMy#Š¢Wªµæ+cç¦Ç_|õÿ¥Wß¶Þ|ë¬==S–Qcè)c|¯ïÌÏU9øÈ³ õ÷pøÈK¼yüÃAÞ£”êLÍ’Ä'âǦ«Ý6g“繸{«3h¶»}¤IúŒY’a‹Îä§ ’Ìî,våÖ®Y=Ò³kÇfcÓú,Äq}¾úµïEŠÉ©™c¾üRê’¥n–Dõ›Vx¸z:_îÁ¤a“lxJµ¿wêh$cX lËfÒkWŽ ö yû•£ÇSžçWJ}¿-ü^“‹Á·¢«`©SÙaåήP“DØÅG”εI#v?ð¯H4çpÄçœ$ÏëT|®É&Š«Ý/°Ô-k‹{Š>‰­v4c±©X‹>; ô’8R›Äίoÿ½Eâô®™ðpí·Î.…:c·÷$sH_ ñÝ$ Ù÷H¶Û×L“˜A…áùÓÿ .}~Çì!É@_þÄÛ YM:Ûg:à-îY‡Јßõž¡Ki±©#±qI’œæâ|¼èór;W>ðvÚÿqY¥XþNáIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/label.png000644 001750 001750 00000021000 11617757645 021657 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ IDATxœÍ›i¬$×uß÷Ö^ÕÛë~oޛÙ¡¸ï¤(вËÚlñc+²II>(‚8†À ËÊ—ØŽ 9 DZl òBK¶iK‚DŠ"%Q”DŠâ.‹ÛpæÍ[ûõZû]ò¡úq†#.£ HRÀEuuwu×ù×¹÷üÏÿœ‚Ŷñ⣂ÿÏ6Ç‘¡”²´£ ôûðñ 㢷ÿëF !\!„/m` „ìmƒèH!–…‡…\Çø¾·6›g«u]oO/;À©Åëm`XÀ,ö?ØõüŸ0Êq/|OJÙVJ÷¥=¬íkÚRÈò €U!Xk»Ò‘Ïõz®ëtýÀOB?ƒÀs£(¤ÕjÑnwètüi¶¶wR²³³÷=mÌïk­ï†@ ä@ èW1~ß#Ì«]»ûª8Žç¾ç8NËÓB,I)úRÈŽãÈ%kõA!ä!å²²g­í¸®×õ\·ãù^;ðý <Ç\â¸E’Ä´[-ºÝ.Iì>¾ïá9’V§‹ï‚#!iõ‰Û]N½ð"÷õüûý n¸ñ&~ëwÿð ÷~ùkÿ 8ªùS¬]äýyÍ›,ÚíV¯Ónÿkו+JÕ=c£»BˆŽï=×s{®ã$®ë„¾ïˆÀCŸ8ŽiµZôzK´’ˆ8Ž‚Ï“t»¢0ÀqÀEµãHŒ®±Fã¸>Öê2ÃõâVÐkùýÿþq´±üÞùez½.;;»|âSŸá“ö·llnݧµùM¥Ô½@y¼êÔŽ#o ‚àk¯¾Ò][[Á‘†$i%Ý^Ÿ0 ñ}Ÿ0ôñˆ“¬¦.3’ö„Àó|ÇÁq}´ªÑª"ˆZ!p]aQUtAá:Qœ`u Â"… ?8Èwžxž_ùµßà#¿ñË¼í­·2natAÜêñÐCßáw?úG|íëm—•þ¨Öú€W±Ï[¯^!¸i0XúÜ¿ù¹zàÒc‡ÁZ’v«+ê:G`‰’AçcŠt„ëùÄI°A#ÄIéH°ÇqðýÏ÷©« «+a–VÌÓ ×þÉ¿æô™{Œ1ÖZß÷ †®0{5OX¬¢RÊ”“ɘºZ¦•$´â×k¡«œ މ¢.R ÒiŽè­â!„Äõ<¸…ëx8®»øK¶¨«„¥.a¼BuÈÓív›Ö|Êææ.>þ4_¸ûË̳Šá”¯Üÿ5>öû¿M»½D†„q‹l>Aëm$­VÌÏý«pýµ'ùƒ?ºó_ûúw®Ÿ§éGµÖ6Ï»¹Þ!_m8ˆ¶ë:¼åæW\þÖVW8xp•v+¢×m³ºv ýþWÖtÚ]zK}ZI‚¤Æu ®+ È¥þ!\Wb­FXM&8Ò¡.SÇÁuƒkŽ Vã{–cÇ.å葃TeÁ_ÞyiVòíGã¾û¿ÊúúY‚°E··Dø8ŽÀóÊ"åèÑ£¼ùW³¼ÜOÞzÇd2½qað) nÖjaï÷°€ÀqœŸ½õ–ë×®ºò2–—Ä‘‹Dá¹Aã8GJ\?ÀEUÌq½?ˆ‰ZKX£)ò óéKUæä鈲˜¡TEY̱Öà Z×X«Ñª$ZW[ðâ‹g9»1ä=ï~Ž„Ç‚»¿t?ŸþÌ]|ñî{yú»ß#Ë2Â0¢Õn†-’VÌuWŸä¶7ÞH–'NŸ^ÿ1¥µk-p P4¡òû¡³Ø{®#?xÍÕ—9yü¾k‘Tx~Œë…ScŒB©ŠªL±Zc«‘ÒC«c4X0ºFJ‹Å÷#âd€15u•S—)e> i 0¶¦Ó=@Y)>÷…û¸öÚ+¹ìÄ%\[åòËŽrå'XZê2ÜñíGžâó_¸ŸÏ}á^zøQ667Qßãø±#¼çGÞJ¿ß‰y䉷çy¹?ÿ]x@õJìóe­-³4¥ª ´Žiu¶qUÀó#t6!IÚ}T•³·óÚ¯pÝ€8Y¢È§X uUÐU‘„mZ£ÈÓ1žá¸“½3øAŒ@óü 뜇ë4¤Ý]C©šÝá„W]ä8®O»»†³0ÔõBê*£Ìç n/ã8“ÑúK믵–RÕHé,Ø`@¯×C©m Ž[H¡ñý‹Aª.È K·#èu[Q‡yZ`uÁઓdYNšä…¢( <ò°ýŸ¿S§yÙ>\ü-ðµú•< -Ë’t>ƲÌÒòvv¶ØÝÛæàÚ2u•’g)Ï=÷ÇŽ¤ßïaŒÅ b:^€ç…̧ÛTeJ™Ï¨Ê)=¸ƒ5– ja´Æ[¨*GH‰ãú¸^H‘OQÊâ8.Rj<×'ip\Ÿ<3o²¾~†Nû$žç0ïpêôã—¢$äyJžÍNÂÃu„ýÔŸßU¦yùðÐâ_J“J?<ìjk­•eÕ„¬|NU¦ô{-ž~ê ž{þ o}Ë­D­£ñ „Äq<„ézTÅœt6¤Všvï KËÇ(òY6,BºhÕD!­î*Qk ÌÆ[HÑ$my‘±ÔëQs†ùc-~1› yî¹ç8qü(¿ÿì=\vâR–7ç3’V—^ÿ Žë#%¼pꌭ•-F¾¸C?@°Zδ,šØ]×é|D]¥ÜzËMìçüßÉ3Ï|õõ³hmðüºLÉç#T3›ØÚÚf>Ù¥*çHáà1fÁ\/À[p­*ê2e´û"JQ‹ªª˜Ï+ü &ˆÚ¸~„㸨:Ç»ìîÍíù“O~šZK®¾òXs~•#¥ƒVE6ÆueUÕ vc ìÑ0ÅÑbÈ—°V«ºÄZ(‹F+‚¸G’´x×;na>óëþ¾õð£ln®S—s´®Éf;Àufs…’<›`ŒB+…ª â¤Çh÷EfÓmêªÀZ B‚µ£ñý+|ìaÆ»/b­]ÑÁ÷#êºbw8âSù÷<üȼóm·F-¼ E‘ϘO·힢,fÔeÆh¸-«ªªFÎad4œ@ö<lªµ%ÏfÔU޵M榔¦·´Ì¿ûп¥·´Ä·yŒ?þÓϰ±5DkEÒ9@Y̨ªŠç^8…­ö ® ¥D:.Zk´nبãú(U‘§#?ÀKYÌIçSN¯oc¬Äõ‚°…ç{<ýô“ÜÿÕorÏ}ò?öÖVàú-âÖq{@ÜZ¦Ý]Ãu´®™ÍçÂZ[Ò¨E5MÊ\Ò£|ñZæ%@u]“ÎgTeFÔê­+ÚK‡8|ä$ÿòŸ½Ÿc—æÁo<ÄÏÿâoðÇO‘¥3¸GU×ìî ¡*¦X«iµÄ­RB’ô@ULÑuA>â:Aƒ­™Œ÷ØÎè ŽF žFÿðÜ6ÿõ£Ÿ (+®¹òRV–{ŒÆSÒùãÝÓø~Lw ¢QÒé°»»gÆœ£Á/Ýëóç{@a‘7¦ª2&Ã3xAr¬±lo<ƒ fÐïó¾w¿—Ù$åçáWù³;?Ï<ÓL犳[#”q‘^ mв¢(J”ƒGšÎÙÝ>Ít²‡pÒùƒDkîí±~v“ñÞ.ª®Òç3ŸþþÃ/ü«ðæÛn&Ž^8u†Í3dó1ZWÌ&[Œ÷N¿dJ™§¬Ÿ=«Æ×‹q’˜ ÐZëºÖŽt¨ÊŒ2Ÿ¢êUåôNLžDAÈ?ÿà¹÷þ¯ð‡ôüýç¾D­gÎlðìs/E!ŽãaŒ:ïçm»ÑX«ñ¼?H0¦F`ÙÙòÌs/ò ¿øk´ÛŒpyü±'¸ùÆkù¡;îà/?ýLU0Ÿ'ÂÛžKUå`!›IÚK8nÄh<4šá¾^xQš`^×µªkíqáø£‰’…” $y‘áxC»Õâ½?òN.;y‚ÑhÄ£Oõ ¾Ÿ jÁd²Ç ×\Ã×^ѳYÁòrL†X]7ÌÓ‰‹uÆõÊ|FYÖÌç ^Zì^ȵ6U–N­Ý¥Ãz£AØH[y–"¥àÒKÒévÙÜÜäØÑ£¼ñ–[HÓ”¼ÈùéŸy? R"„DkMXkq=²(PJa­e0Ç1R:t»]ž|âqn¿õ$I›ÙlF'´Ú-Š¢ Qàá8¥r„xAL$¸^ˆt\¤”X‘“¦Àô<^Õ^ZŒ5©Öº,ЬI~æ#´®q¼€8éãzJ)<7 ŠZ ‡C´ÖH)ÙÜÜd2RÕžçsôèQâ8&ŠB<Ïe4áº.ïãy­V €õõu666ð}v»„Ãl6Ã÷’VB’$øA€ÒŠ$icU±Ù‚¨Ý«ÆP—)Ö(ò¢"ÍrC*šEðõ=È´6¹v‰’ÓÑYº½±ë“͇Äíy–’g»ÛC‚ A=ÏCJIU—ìí(Ëc qܸk𦠬µÍ]M¬m™‚ÉdÂööQáû>óùœ^§Cže$IÌ©S§8rä®ë’´:´{«XSQ¤cæã³¸~HÒj„ÙåÕãlïl2kÎE€‹@™"Dn ”ùÜ&A$ÇG« × )³)EQ’e9'Oždsk‹?þÄ'Èò”²,ÐÚð©O~ÇI’v‹“'OrÓM7#¥dee…¥¥%î¿ÿ>ü <Ï£®kÖϼˆªsŒVl·™ÍfXkqÜàG{ŒÑh„ç»´:+´º1óÙY‚ ¦*RÇÇÍØì wI³r?öï‡À×À]h­³ªª‘ÒÃ"˜ O£:Ëx^X”†ú¸žå®ÏÞÅ׿ñ-ʺäÈ¡„lSU5[Û[hUS×%{£)Ò øíßþŽ9L]×<øàƒüê¯ü ÆÔ¾¤)8»¹Í½÷ÝO’DL&s®®ñ®þáFOô\<×Ãq\Ž“ 3Œ©p½ ‘ÔõñÞEQT4‹ æåàµ@im²éd„K¯ –y:B¶„a‹,MO&üù_ýyQrýµoàÆn@Ù3´âˆ·¾õMÄQ!áùçOóÅ/}4c­¥ßÆó=~ü}ïF µ‚ lQVŸùëÏrÍÕ—sÍÕ—3›güí]_àÁo~‹Ûo»•0 ðý°£è¸”Í3c­!ö¸~H]ç¤yAUÕû,Pñ:5×°Ö(kL®ŒCu¬ŽèõQ8Ž`2ñà7âÔ©uÞþ¶Û¹îÚ«8tp!Àu]V¬ ¤äÈáÃXQÜåÌú®ëÇ1žçÑï÷)ËG ¤«k:.½¥‡µÕe.¹äpã-UÉOþÄ»¸óÓŸÅ®ë,$wÑÉ`…vw „ Œ:Ì& išc­-p! |ueQ”¤éÄÎ'Ð﵉[ž{öYþÛü)ßzøq®½æ ¼éM7!…ƒ@±2päØqòlÆpwÈ5×\…µàº>§^Ïg?÷EŽ=Ì{ßývXæ —ÇsډÕºK}ŒésøÐÖÖaŒ" cÏÅ÷=â8fww!qã:.­v—C‡Žpâø1zKÊ¢àª+/çä‰C<ÐA:ƒ~‡(Šyò©ïqï}°³3¤*3T™!ãN“4I® Ñ[êrä`¥^cÀóƒEe7ÄVJ„aÂÅq<8ÀÚÚ»»CΞ]Çó}°–ºÌ¢½åK°Vpôèˆv·…ªK¤ôXÚ­˜«®¸Œ[nºž,³½ñ<ÇÖ"2%}êºÀP“ÍGÌfc&ã œKƒ ÀX»—e)é|ÈW^Éêr›Ùx£kêºâÈ¡U¬ ÀZ¬Vã-ê2E©’0îQ—sª²@ ÉÓ ˆFBàûn£5,4A)]&£³¨º"‰C°ªi÷05®Ð]:ÈÉ“9o}Ë-DQÄéOóÆ›.CÈÇmt]×ÄqeŠJYÎÑà×@žP×õH)M$‘.I÷©«Œùt‡C—iw:HÇÃõcŒQ8Ò%nÂ6u™a-8އµ×ñ=Ÿ °F3 B6$G:ÍTÉ'‹;î$1®ë¡U…ÖM&YWaäsíµ×ðþŸþqV׎P™I«ÏÎÆwѪÂq=´®ö˜Ïç†sªÏ~¼8À2³V ´e1Ѧ·| BH„xÇ/ñ=U•$T]Päcl†²œáºXCÃv=f³Y–‚Éd B4=AŒVRH¸K$ÔuI]¦MÝ1lS’¤ÃáÃY];ÂwÜÎööDÒSOHÉ<ÍÉòJñr!äâ§€äµRhm±VP)K”ôè-%H'¨:Eëšéh¢˜á:>Ž&]:A U7š_w¨ªc EQÐétð}Ÿ¢(qG6" š!Ýßq]Çi”æ"›€ÄIÂÑ#‡™M¶Xê%d3IQH‘.²@¬a4“fÅ…4ø5·— µÉ«ª²“ÉPTU—"ƒá泘åzQ5£ÒA p¼f§³]¤8޳è#Ø KÇ(¥)Ë’,ËØÙÙaccc±8€QA«kŠ|‚?jc…ÅqT]S•A3­Fi…”’l¶ ^€ô<ŠR‘çEI£û.¢sìåS@k­•±ÒsÜ€îà®’NwV¤Ôe†uUF³iÆöÎyn˜Lglœ9ÅÝ÷ÜÏ#}—}èC´âá8lll’g3î¹÷ÞpÙ¥lôèA:í¥þ Ž´°ø?×kRÞVg™<›ÅKMᥘá.ÊìAÔ!ˆÚ¨jÊd2¦ªÕ> |]ô}kóZéÚZÇ“N@]eíc€2Ÿá1Žëáù1Rº”ù ?hQ•sº½q»Ïx’¢ž†0jrxBp`yÏ󘌇(åÇÍâØjuhµ{ÄI„t¨‹ŒV÷žc¬FÕåb‘M¡Êðĺ*AH¬Qdó!í΀ZyXc šEp? ^<rk©Ë²xIÍQuIu]òùE>mp<¢¤‡R%`Éf[¬¹š••­Æ¨ê2¶·‡ìîÎø™Ÿú)VWW Ÿî}-úqî¸ýfNœ8Æ—¿~…éd?la”Â÷c¼ "OÇM´kš^È0nx¿ª ,£J¬5é±3|‰¿j?Àë 2Œ©µ û *ª*£,fÇ!ŠºÙ„0j#—À _>Y:F ±¶QËZÑï't{!ãñˆÁ`™nw £-‰ë%8nDQ¤Q—ª˜ct @]6í²,ã.Âu›ãlJ:Ýmбn€ÖŠ8颵eww¸À늡¯€”2ÓFWY:¥ªrÊbNk°Œªrp\ê2¥¦D„ :j›ušø½(z` ÖX„°¤ÙŒõZ7cBJü F/?èD謠µb´óˆA]—Ìæ9ü,ðû=@#D¡¡.2êºBH‡ î ªœÚZ„”hU/ØDJ!ds÷ŒBʦù©®K†{SêJ‚‰¸ì²e´Ö¤Y†ªªÊÈæCòùˆ8ò™ì­ÓY:„”­Î*U1[¨½!U1CÕ%U™Òî­!„ƒR%~SU9ÒóNÀt2ƒ¦ä¥ÊÏëð2&ˆ¥¢*Ë/Hã.NÓêÙôù!Pu‰êëzaÔ0Àt6$ìP¤cZ_}à1¾òµ‡¸ôØ1vvvX__'KKìÇ|ùþob¬G]—HÇ#n ÈæC²ùk5~˜à¸>e6Y°ÂüºÌ›\#H(òY3=€édHZÔû°Ÿ ¿®¼ c¬r¯TZà Fkæ“mê*GJÏõºÏ ãy6Bëß÷iwDqÄ]wÝÅï}ìOxãÍ7sÓu×ÑítR’ç9‡ÖÖøG?ú£<ñä3üŧ¿Àî¨\h’¤=@«‚ùx“<7…U’ÍvP‹é…c4u] ¤¤ÌšÊs­]¦“Ñù¡| Xkµµ¦(+E]ædsC6WuÒÅq}¦£ ^øÞ7“e\/ÁÛX[a(xàÁoó›ÿùc\pøðž?ý"Ežã8ÃÑX z¼ë?Äç¿øe~ý7‡Ÿ}ÿOðî÷¼‹åå6®`‰V%y:FºI{Çñ›ckѪi“¦=OJÉÞÞÙ|^Ó ‹¢Áß ×-Óù”ñh‹¥¥¸^D™)EŠëúTeJ:ߣR‚çŸcw”3›kF“9<ú$wßóz½.ˆU¾tßW^Z¬]LGáày>ƒ†¾þM¾þàC¼ù¯îâš«®ä葃¬èrpu™~/¤ßOÒÃXƒô½ÁqŒ1µ5f^U !\òùˆª×j"ÖÒÙa”p8érè°]”¾/œñõo|›~à'yÓm73›elnm LÅRßPªÆX¨«š4K™L&\vâÎnî²¾¾Á;ßþÞtëÕ¸Ž&ôËkX«¨ª¦71ˆ:x~Œª ´vPu‰#|ßCi‡,ËJÎi¯K‚^€,Ë'eY`¬%Lúøa k#²Û04½ßòb9sæ4ŸÿÂÝü“ü^Þ÷Þ÷pvcƒgŸ}ž^¯Eup\Œ¦¬í_Õȃìílpx­Ï[ñ8gwg‹ÕµƒôÚÛÏ„y6e2ƒÄ„QS5rmHUÎ1ªb^h¾õí§yÛ7qóMסë)ÝvÈÕW]FYäøQ¬`>ÛAÕaÜÅõ"²ùN¥®+¤0t»]¶v&|ã[ñÃo»ý¥>#)íîA”*(‹9~Ø”ìõ¬Ñ=/¤ª {êÅSûRXF^7¾(­†U­QªÆõC‚nÿ0Æ,PsU•/ÂäU1~ÔÁuý†—hÍúé³jÀ~üßò¬±»µÒ„I)]‚°#m“£WÑ(³UçÇ¿ô8žç&Käó!¹*=¤¸Rµú踅1¦auåß—äé.~˜à>ŽÛüÆñå#”Å¢]ÏZêº,u•ãº~ÓV$­uY¡jI‘¥vcóŒ&4rØþ³D¯»ÉWx/UÚP׋£Òñ°Öb¡*3ÒÙ6³É~д¸„IÀ Z”ù )šÒøttvQiâù ±‚s½jBª|F™Oðü¬¡HG`r¤ÍéöÑë¯âHƒ®&¾G¯· :'›žE ‹”°½»g7·v%Í"‡€£À%4Ï tyùãu¯í€Æìí8~쪮0nÓþF-J!£K^jJ°ÖM‡¨ïy¬¬^Šë7"ív²œ„m¤)q[]Çà×,"}®gמóUÕ ÓÐUUÍ¥iZB”ET¡TU)g™B© E©)B)eYVÐ4½¨kZA7ô¼i¦iêªaj¸NŽ\>G»Õ¡>Zgㆠ]Ã0ttM!Ÿ/ah *N¾‚ë9{nŽûØÏïüÖ{¹vÏuü~zö‡?zð?S2M?O–õ^äü<ï$ €|>W*äóÿVÓ”‘$‰KiJ5MeQ LË,©šZÒTÕÕ4Õ2 U˜†‰e8ŽC.—£T*“smÇÆ4Mt]¡X¬b[&ª YšàæK<ôð²,ã·\Lb4ÝBø}„¢a»%EÀ_ÿíçiÆÇ>ò‡”JE–—WøÇ/|;¿ø .-þXÊôO’$ù!¾žsihžçm–Rþ·;¶icc#¨JŠëX˜¦N¥RÃq ÝÀ² t×…L‡n¾ B ëªª¢j2‰‘I„içB i:¶m⺞8‰óš—“ “~o@§DaH©hPÊ+ŒOsäøiNŸ½À‡þëR­Ón,bèÿá7ßÇÍ7íá£ÿì«|øà¶,S?.¥ü$°ðãÓWŸü'¿Ç׿ùƒúçîüú¿°pkš¦ÿMJùãgh €ÞsYÂê ¢$IÃN§MÕȹ.9×Ķë<öhƒM›F)UFÀ ë#J£¦iØ¡ é:–“CSuTMÃ4 Ò4¡78vô9Áá#Ç8õøi–˜šZÇ[ßôZ®Ù±‰$–9ö(wÞùEz^Èr£Ëý÷=È'þúÏÉçËØ–…åäðú¡e¥ ¹œÃoüÚ/³{ç ŸüìW_ûàÃGv÷ƒK)?\ºÊôë«Ö¡<×2P„yMSßuÃõ×V·n™elt„±±Qªåç/,àæ+ìÚu …Br©J>ŸC×RLC *–eS©M ª âþñËüýçïâ{÷ÜO§ëóÊWÝÆu{öpáü9Þö ?Ï-/¿bÁÅÒajýzÖ­' ¾òÕo2ðB9|Œß÷/ÎcZ9Jå –e * .a0`jjŠ[^¶ƒZ­âœ;¿x[§Óݳ:às€ Ü\¢Õñ>„U0UU}ç7ìÛ¾m3µZÇVѵŒ yðáÃìÙ½×±qœªšá :\Zl±Òè1:¾²Œ8èÑjÌóûøaN>6ÇÏ¿áÞö¶_äïx·ÝvSë7ðƒ{ï&'Ç(ä×!• Yê3w~žùù?wû«Q8vüûî½»¾öMöíûz‚çaY6¹|ËÊáæví˜á¦—íÁó‚MçÏ_|c"¥–eÀ.†ü!aè*ŸáÕÕ«®©Ê»®Ù±eÝÌô: -C!B7lÊå ßúÎ>4]091ÂÉ“'øþ¾ûøü?}ƒOýýWÙ÷ß°{ç Že (Uì?pŒbyŒßûÝßevvÏó ضÍþý?eyñy×aa±MFTGÆ…ïÞ};wncó¦õŒ²eóÛ¶n¢\.Òh6yäð£|ïîûøîÝ?äà¡£,\ºD"Á4t¦7¬ãç^÷**•‚søð‰[}?Y]ÿGW- z6Öx@’eYè DQ€”¹âºªR(ZT*eþô¿ÿ Ÿ›áÂ…·ÀÔºQR™ ©&ss(Êhº‚ï4[]2%Á÷}òùw‰,o0`ëÖͼjïLoœbÇödª i*"“AÈÀ èö}+M.\œçü…=õý䚦±~j»wmç{obïÍ×óàMתÿòÝ¿he†›à³¶5R„<ÏGQtœ\ðiµìûƹ{ßœ>}–n¸ŽwýÊ{Ù»÷•ôº->øGÿ…^·ÉòJƒn¯C¡àð¡?û;Žžx‚¿ü‹R©Th·Ûôz=*• T«UZ.oýÅ·óÞ÷¾‡'NðÙÏ|š»þå{¼ÿ·~biŒB!c똦E«1O§µD,K„&ؽ{KKó¬¬4èô.\\äü…y¾óÝ}|õ®o1::Bø¬î†ñÇs²Áµ% hšú¶éé Ûö\»‹( 9|ôQîÞw?ív›kvÌÒh¶xÕ«^ÅÏßñf Å–å0¿°È~ø#ÊE‹N§Ëg>÷U~zè¿ÿŸ~Ÿ×¼æ6Â0$„ôû}šÍ&iš"¥äío;³³³lÙ²MSÙÿ“‡Ù¼yåbŽRÁÆ2†®a:ÅR•\Î%ïZä\±± ÖMmdrr‚ÑZM'™fÝÄBZ­6ÝnŸl8ðpXy^t]{óäÄØ®ÙÙmtºò9‹WÞ|-¯¿õ6ÏLqìÄ“4Z=®¿þ|ß'MSŠÅ2GŽáÐ#'˜»ÐÀ)Ôxÿoÿ67ÞxFƒK—.ÑétȲŒV«…eY”Ëe¶lÙB–edY†a,-.rÿý÷3>6ʆ SÔªeŠ¥*B!H“·P…,Â2uŠ¥ ÅbÛ€R1GµR¤>Reýú)¶mÝF>gf'N<.ãD¦À4°•!)ê2Œ!.{ƒË{Y6ðƒUÄìܽƒmÛ¶ã{=;yœã'ötŽžx”‹/²}û6Z­6¹\Ž|à,-Í£9FF꘦A¿ßÇ4MÇ!MS\×ebb‚8އlQUYYY! CÚí6KKK º®áy}² œ\M3ðm’8 =4Ý"Ž<â°í–È äòyÂÀÃ÷zÕ¡£©"û—¾üð!ààªùodHŒNO®ZD²@–fYO& ª¦@sÿð7Ÿø,gÏÎ!•K‹K,//377ÇÎ;©T*ø¾O­¶‹—ß¼—ãÇÓjµPëº(ŠBÇxž‡®ëär9¢(" …wÞy'išrÓËnä+_ù23›ÖS)É„AŸÆâSehºEàu°ì"†éâ÷[ôå ùb(ôpsEJ•qTÍ@Qàì¹ Yœdáê çV{cuæ`®vy9T„Ú |(èr~î<ü¡¢(:¿ýþ°qzš^¯ÏسgžçÕj•v»Í`0 ^¯ãû>‹‹‹A@©TBÓ4lÛf0P(H’]×1M“^¯Ç7¿ùM~ºÿaê#UöÞ|=–íÏqs%tÃDʈ8òpr’8B¦1)¦Ç÷;´0LÃtÉð»…b“0ŠâU–W{—!ˆºD (—È2ÙN’)S>û¹/ÒjuùÔ§?ÍŽ»˜Ÿ¿H±Xbçά¬¬ iÅb‘ Èår EallŒn·K¯×»<е%`YQQ.— ‚€]»vóØ£'xÍm{)—ÊØ¶iH,-Æ4u Ó!M-"ú¤i2dšù=2@×mUôHSIXNزi5–”(Š" ÍЮ Òât€ì*²Ašf¬,/qêñӼfjj ]×X¿~=.\àþûï§V«Q.—1M)%¥R ಩ÏÎÎ"¥Ä¶m–——éõz\¼x‘ ذa/^Ä4MvìØŽe»DaDšÆŒÔêlXWgt´Ží¸€À´\¢°O¯s UÕ±Ý2ŠªƒË* j:BQ0 wÈ&3‰”1½~_dY2T‹b†!óZØ|µ>]%ˆˆ Œ#¢È§Xp8ùè~ä ›f¶R.—ùâ¿È'>ñ >øÁrë­·†!õzÏó¨T*!8|ø0_þòWXYYfbr’kvì`ãÆ´Ûml{¨X–ÅÔÔ•J•çsíxë'˜™™¦6²Ž$‰ˆã„B¾8N¯³L–I½ ÓAÓ,|¿E…äKcØN‘$ B’••fÊ\¡Á—}ÕëËnEQ¶‹…_ºþº]ó6÷?tx˜ÇN=ÆW¾úU¸ïGHã¸.¯ýíX–…ªªø¾O.—#MS:ÄÿñÑë®àX:äþÄq\víÚEš¦ TU¥\.sæÌiΟŸãÚ]Ûpmùùší†á ‰aX¦‹®[(ŠŠLb¢°O‡diJıaæB¿Ï7¾½/9zìÔEà!àÂê2xVMàŠ™¤2Šuç5[)–Ê9~š¥KsLŒÕ¸é—ÞÆÂâ2zœsçÎ199yÙû¾O¿ßçCú#Õ<ïøÅ;£”[nºŽá+_ý 33›Ø½{7𦑦)B€¦«8ð?`r¢ÎìÌ4»vnášÛ(]²L] Ó¡×¾Dà·1­<–ᦠ¬@^¿›/£j6­vO0ô÷kzá‹Òý(Ž™¦j¹ZÇÍ™\·‘’Ä!šn SÉO~r£G²uÛ6¼Á€8ŽB07wžn·Ã[Þx~˜¦’ñ‰qŠ¥2§’'Ÿ|’|>O¯×ãÌ™³œ>ý'Ž£?ðBpËÍ×rÛ+÷261Á ×¢Ý8e0íG©TâìÜynºéŠ9ƒM33„QÊÛÞúF=miTŠÅ¢ƒ®©$2err==~uU UÓÌG½v‚픨ŽÎ=¿GcñÉ!KÔ-,«€¢iý `˜6~1ðü”¡ˆ®ý¶À“2õu«ˆí–éw¨TKä‹5 ‡a14ÉM7½Œï|ï^¸ïG\{Ý\ºt‰ƒrðàŽ=Â5Ûg ¼>ùâV4U%Âç–—_ÃøX‹Ï£ªš’ ë*–e33í¢Ià{äó%’Ø'Ê|âÐð MTECQuÜ|•TÆ zËÄQ@kåºaãæ†Âlmtš¥åK´Ûí˜+àÅ „2@?M!ô{™kÚBQt¤ Ñt“(죪 ³›7R)—øèÇ>N±T¢ÑX¡Ï±n²Î›îxÕJ…X¦$I‚7èÄ“°L›ñÑ22M±,“$ìcÛ.År•z}„F»PT Ë¥Ýn¢¨&{¨# qä“Ê„BeŠ¢2?wM³ˆ‚ªj¥’¶*h6Vxášï_s/ @šÊ@JéEQŒ¢èdÚóä’†n¡(‚n?â[ßús.rñâ%^q˼ó—ÞŒ¦@¹R%BtݦX,C „BmtO>ÏÝ?xå¥6Lñ†Û_C¥ì¢™*ë7LáäÚDIB±P"¼t‰XÆŒŒŒ!“˜~çæE,§€ªhTÆ6Ó\>»º9)³Xå7íf“ "†› äg9Àó@"eêu;M¥Êz„è ÚøÂ≧.ðàÇh·Ûüûßx7?=x”¥å,Ó¢Ýj2Z¡6QÇqj#£Tkur…2O? Šâ5˜ð9ë¨pšdiê'©Ši2¡¨"_\G·ÛáüÜÞú¦[©TšÃì–YþñŸî²MLßaËì&*•n®ˆnK£ÈÄãÃþÍf‹}ìÏÙ»÷VÍ?Øw7úÓ?åo?õüÎü7(ªN©\#ŽF‡Fc…(Øïõɲ'WÅ0ÝUàækäKã –]@7lT%e0ðɲ,Xµ€§³ÀçAÈ`ÐÉú]ȹ…b™k ylÛ d(ÜxÃ+K4›m ä\Ã*‘Aã’Ógçy÷»ßÉõ7ÜÌÅùâ8æõ?÷Ž=Ê÷¾ó ÎÎ] _(¢i i"ÈÑíhu<„¢£6ß%ðÚCº‹@Qt½L+O’„¤©$ô:XNžå•& 7À+Dè9›r5Š¢Þ G†H™’ÉÇÍ£Q†>ªf¢(‚B¡À­¯¼ Ý08wnÓ2)•ëäò…ab%—gqq,KÙºm¾Ç1õzn§ÃѣǙÝ2KœÂ(A‚b±Œ¦f¬,-°0?iZ¸¹–í¢ëÃ. z„AEUÑtͰH“U3£€¥å•5b^À<ÝÀ‹¢ßï‰00É… ¡ š6QÐG7LRáõš8nŽR©À±c'øÖ·ï¡X,à!aàÓïw˜_Xáñ'žàÞ{Ìu×ÝÈÌÌ ‹‹‹¼ÿýïçØ±£ÜþúWqà§8?w–z½Ž®kÈ$âÞ>L³Õæëÿò *åùœë¸Ë5ò…âh€L"R™ÈE3Ð ÏëÓju2®Ðà—´2²¬'E5‰B¥…S˜Ö0úê¶Wðý€…ã'Y\nsæìy.\\äÈÑãœ|ì)>úñO“ÏåŠ (X¶ƒ›sÙ¾}¨Ñjµ8pàÍV‹ééõ,,,£jg.´ˆã“ÄQˆ®«œ:õº®ó…/}õëÆ™œerrœñ±yW'çÚèújxà «ß¤×kÓnwàJü’,€4Ëšï1è-31¾Ûqh7ÎãäjÄ‘OG˜¦AµR¶ ö\»×u ‚€ßøõw1µaÓÓ³Tª5æççqÇq0MUUɲŒ[o½•]»v1èwPU ™ÂÒÒš¦Ñív±LO}òoI’ˆ÷½ç—Ùºu…¼HcPºÍ‹dYŒ¢Xè¦MtIÓ×-#±£$ã ~iÄq܈‰¦;BQ4TM'—/#“‘zŒŽŒ°~jôBÅ4 –—W8|ä8×îÙ‹nåqÜ¡öW*•( 躀‚Z­Æ`0À4Ml{Œ h48ŽƒeYÔGG) TªuΞy‚N»Ë ß¦˜¯՞ȧP¡ €•ùS覃ªêHÑn5é÷û)à]ÀsÆÏ€ŒA– ¤”" z ò”jë(tÛȲŒsçÎã£cë©× x~)%†åâ86ívÇq°m‡(ŠH’„ h6›ø¾Ùb4Mcaa]בR’Ïç ‚€¥¥%ÜœCšA&t<ßC¬*w¦'Š|B¿Gp #¤©D&BQè|©Ì@( Ý„¢âZ(ŠJ8h¢ª:Š¢B–ÒjµxÁÓiðó¶Ÿ@ÊÔ¢(ët"ŠŠ´–Î ãˆ?ûÈÇøÚ׿ͯþ«w2½i†ùùEî¹g=ÂæÍ›Q…R©Ä`0 Iâau’ªªª†!­V Ïóظq#®ëây½^Û¶yäàÃ|ôcƒë˜xAY†ç…ÄqÄ ×@/W‡ò¸ØN‰4•膃×[ÝDÑu‚0Á÷ƒañTÊ‹¨ûÙ% ð¥”Iš)ºª™«°í?yø~¾ñ­ïóž÷¼›·¾íx^Èu7ÜÂÞøîùþwñü¡Iضç¥(B€P ‚€8ŽÑ4ññqBÖ¯_a˜œ:u’Ï}îï™Þ0Îí¯ÛËÅ…%q4@QÕÕ(0ÁvËDá€ÀïbZ9¤Œ0WE“$êÒé´‰âd¾ zi–ùq"ã,SuE5‡XšãÉ'Ïà:&·Üò ¦¦6ròä ++T*Þü–_Àus8ŽC¿ßDz,Ls¸9J™^^ó¦i222B¯×#I’Ërº” §‚•F‹7Ýñ‚0"ïZL­ÛE½>J!Ÿ>—#K3ˆþWXNŽÙÙ­X–Eüäà~+-®¿áF’$allŒÁÀ£\Ì£*‚0L°,‹^¯G±Xdff†,Ë. ©š¦111ɽ?¸‡••Š’ñÏ_û6×íÙů¾ë-@Œªj¨º¾Êù» º+膦™«Ju)3VVk¼ ú¬(ŠâÉTFÞ »ênú䜛g6ò–7½žï~ÿ^öï?ÈûÞ÷Ö¯_G¯ÓäÃù(õÑ ^ùªW“¦)š¦!¥dáÒ%Ugtt”……ºÝ.qœ066NGX–Åüü>wç]†Ž7e¯»íf6NÏ © I“˜hUÔtEÕÐMÄqH¯ïÃK`Ï´LSâÀ#‰#„¢R­Öyë›^Ǻñ ÷ÜûŸýÌ')—K¤iFF y<Ï»œó³m“‘‘†éP*•ÃÉÉ úeZ ŒMl$MAÓ4:aâóþà8uê9×áÐÁýœ8qŒ¹ KTj8öE¤„AŸ|i !T’$Ä0¢ÈGÑ „jÒíô`X ²æ_š D(„ˆÂ0F7]L§ˆªª¦A±`1³i Û6h´º(ŠŽ›+räèI‚0£\.E¦i²²Ò¤^¯3R/ÒétXXXààýì»û[¤iŠaæyå«_Ãí·¿˲ȲŒññq6oÞŒiš4[Mz„Ði¯P-Û˜ÆPCÓÎcš.ßJæ±O·Ó`Äk° ¿ \“¦Y¢©z˜Hnº¤RÒï,AS­VؼyÛ·maÛÖÍlšžfrr ÃPéõ:èºN¥R Š"ºÝý~Ÿ^¯G¯×ãÎ;¿@¥Zãå7]‡¡§|òï>ÁÜÜÜji­N¯7$N pœaR„4!ŽCúÝ•av8‰@0L†ÆBQ½šnKn§%y ¡ð3, Ë2™eiF qèãõS«B‡¸¹n¾ÂÈè‹óg™? 'ïR.ºÌ/4/¯ë|>ÏØØI’\N‹w;LCå–›o$Ÿ/RçÒRƒf£ÁÄÄÍfÇqÐ4Ed˜( ÈÄCF>¹Â,n¾@’äV©ï0Ïi¹e²tèešÍ½~?fH‚^ ~€T5-ô»´[‹”Ë›Ðt›Èï«tÝB…œ†±q‰”ºB«ÕäüÜS¬›ÚLšJLÓDQ,Ë¢ÑX$ ºt{=Nœ|Œë¯»Žr¹N"á¾ÿ˶‰¢Ï j“ce=y”å•6O¹€ãæ©¶H3a˜ÈØG7Ìaú\ÆXv²å¥y?Šx qÀ3HÓ4ÎÒ´E BhøýQ)G©6 žzòsss\ZjqæÌy~úÈ£œ>sž¿øËQÈQT$‰I’„( É’X&´;=>ÁžÝ;(æJlß2ÍñãG9qâ8†i ÓÞ™D²¼Òdq©Á½?þ)§Ï^äñ'βaý$›6ÍP¯WplZMC&!ŠîQ‰TñY`Í þoYYš­Ä‰ÄrK(ІiåQ• UÕ‰" ¨qˆaºäò1ÓÓ¸yïkq,iŠHS j©ŒqrU¤Œ K‡H ˜ס\r°œŠª‘+Ža™.…bVc‘Zµ„¦A–Scšf0è5ˆã7W%#’X!ðÙÂ¥ )âÈ.Wνt€A"Sâ8&Ë2¤LÐõ!Yfa‚A«“X¶Ë¦M³”K ‡nsÃ*ýÎâ0­†O¡<ŠP¢ G”Ťi†ª($ñé䪓èšBš0uÉÔºj£"¥Ó8Ou°2¶UÃ4ñºóä £–VšÙ¥Å…a1äWJâ«ÖàqeSüÏðld­V›f³Åô†u$qDª Uòs„¡À¶ EE×M45fÇŽí˜¦Ž¦iÔF7¢ÖPOÌ Ã>¦G êÑt“$‰pòu’8" ûôº-:íB5ñÃŒþ àÈá#t; |ß#ÍüÀC&I"iµVCIIyT}ô±'ÆÛIà1àqà<Ï=i³ÙbþâE¶Ï®#.Zø¡   ð)–'£˜ èu›¤iFÿ©§ˆ“ŒÁ K†D±¤ßm h6žàƒ¾G¯×%ŠÓÕzÃ^¯ƒLÁ÷<¢8! #¢8Î’(ÎÂ(H“DÊDÊ4•© £(öý0HÓ,L®Îliuf÷ÇVŽa\¬|íÝ3,@Y½: +¬×K™rÏîç‘#ÇY79I±X ÕX$–Å’ ˆƒ€(I‰¢ß÷²0ŠÒ(ŒÒ0 Ò0 eÇ2‰e’$I’H™dÙer²ÖIv%v¹¢ä^ý½T‰"ʲ,^-»ú{7c Ë,1,ŠZ‹ÖU>Ãü×Ѐ*0ʰ°¸’¦éÊᣫâs¥Þ&æJ¥exÕ{k3qõ5~Z_cfkEŠi6¼—OûÝÕ:^ ¤Ù0Ù(³,[‹ðÖžaí~ruÐO1<"s‰+Ùáç<-²@İ’²É°ˆø$ó¹®ì¨®‹µ?“O»¶~õçÉ |öt®þÞÓ¯ ?«ùí\}ýÃ3C­Õ zÑT8åJdØc¸Ž\†µ¶>?c?ýAÖ’=íú|@]mšéÓ~{õçWwžã}Ì3Üù\D^Ô9â«X ÛÀ!Àf¸žÖØÕÓg0{ÚýÚò´û§^äýÈ&C6NÖ‹Ò¯þñ³½W,®,eNÿŸšlàŠ¿÷îü/ªý/D‡7/¨´~IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-24x24.png000644 001750 001750 00000001404 11617757645 023170 0ustar00simonesimone000000 000000 ‰PNG  IHDR|fusRGB®ÎébKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÛ 7+BÚ™„IDATHÇí”OHšaÇŸ÷ÕÞWXsñ¾ËfÍVôŠLAÙa'·Ú?OêÅà å¡„@\Â4tšÁ``.V„PÞÇÜá] ÊBüónæÕ˜¹MØèEy‘÷íõÙ©±¨÷ÐÑÏéwø~¿ð|~?:t r<,---4{R}»»»×d2a6›ï¸ÝîôI"ùñÀ²¬sppÐ-%Y©TöV«ÕŽãÍžžöLÃüüü©ÏÝÚÚêöz½%Õ211Q¬Õj×EQä,‹Çñî½½½ápøÙôôôP4-ÏÌÌ!„ÊÑÑÑ (ŠW†)ð<||ü X,úFFF^¤Óé¬J¥Ê“$ÙEQÔ :77ÎårF#R•‰Åb_#‘ÈgŽãlP*•öïf³Ù€ ¦ÍÍÍúÎÎNvxxø‰Ýn/­¯¯$Éloo¯˜L¦çÍfó§B¡¨–Ëå ˆÍfûQ©Tzs¹œ"‹©ƒÁà÷±±±÷ù|þ¶ËåzL&­õz]&$‚xg4 …b˜¦éG©TJ!Diÿ] ª×ë8Ž“///?¥iúZ­æ1 Òh4d2is:ÊÃÃCLE¤¯¯ïU4}˜Éd2:. …B$I ~¿?áñx2'?55õ–¢(h0Ú©TꢔO­MNNÞ‘¦&*(Ú`ãÜùžõ?kïõ_ÿµ6ŒŽk— þ?;LÓð Ãh¥Ñ¨µÑ9l@¼Ë¸åãÿºÑBKáA¨.ƒ¨BŒ ClB4-Ós{ª×&ó<_NàÒèñ2Ð4 Fçw=ÿ'Œ2MÓv]Ç6 £\²a¢†Ö5¥UÙƘ0Œi“B0¦µ®¦Q±-»fYfÕqÐs\ÏumË÷=J¥år…J%äøñS,-¯`++ëg¤R¿/¥|X@ ä€|ã7kjjÓP„G)ô©Öxž‡ã8xžƒmB† %y–Ç@lÛÁ4MLËA9²ÈpýB,ËB @hŠ,Á0®ëc™&~¢e BcAclš×O\àßýû_ç7ý×xäá{i¯-¡dBPªqøðëüÎïý1/þèðršÉß“Rþ!pí=ì³GÆï €Ü56Vâ_~õç›Û¶n­ ËU´ÌÈóÆÇpÝ8n“ ZX¶CÖàz†€ ¬b˜h…iš8އí8äY„–¶í¡TÆ ß¡7Èè2,S0=³‰R`”Çù7¿úTË%~ó7~•4êÐë®à5dÞ§?Hù›o=ßüÙßpåêµg”R¿!¥|þ]  ÷^ž0ZDV*ítÚäÙ8¥0¤¸Xv ™Å¸A€ïW1 Á #j“8®ëøa`Ù6^PÂ2mLËýÆóJäY B“§^0çWˆ-Êå2¥~—ÅÅUŽ?ÅSO?G?ÊXYëò¡ù¯¿ÿŸ)—ëøž‡”ˆú¡g)ƒR)à«_ùswìäÿøk¿ø£×çúƒÁïI)ÿ+°xÃÍm޼Ãx¯i`=@”-Ëüò=wÛ»g7S“LOOR.ùÔªe&§¶ÐhŒa9•J•Z­A) 1ȱL…exžO½1ƒeh-Zâz!¦a’§LÓIJÜ! Za˜h‰ck¶nÝÆæÙi²4á}í[ ¢”׎¾Áó‡~Àüü®W¢Voày¦¶’&6oÞÌGîÛÏøx#¸teé±N§{pdð% îældï;@€kšæÏÞ{ÏÜÔmûv1>>Fà[Ø–‰ë˜¦À4 lÇG©œ,écÙ.Žà—êh%Iâýî M–ÆÄƒiÒ£(2Ò¤Ö Ç ‘2Gk‰,rÀ@Ê ¡._^`áÚŸþÔ#˜¼qüOÿ_ÿÆ·xúéç8õÖQ„çù”Êe<¯DX ¸sÿNî¿ï Q”ì¸reþ³…”–Ö$À ùCÁ0T¾#š£³m™Æ—oß¿gvçöYKca;–í¡TŽT²ÈÈ“J @k‰iÚy‚R%s c¸öØN@6Ð*'Ëbòt@wKc(S©6I³‚'žzž;îØÇ®[˜žšdÏ®ÍìÛ»ƒz½ÊÚú:¯}“ï>uˆ'žz–ÃGŽqmq‘B‚ëØlß:˧?ñ0F%8zôÄ£qœnÌÿc#ÈÞ € Ph­Óh0 ˤ (Ufi?b9>IÔAa8F–Ŭ¯\ (2LÓ%ë$q­!ÏcªÍäéÇ+Tšh%‰­!°–Cgý*Ž \¸8ÏÎ[¹ý¶dX–‰Ð’$ID Ý~ÌÚê:Wç¸rõo¾u޾t˲زy–¹;oãc½Ÿ>x7/ÞÀüÛ'žÿÐê Áw=6P‘DQŒ0,\¿ŠaÚx~Û HâQw¯TG È ‰azÄñË”habÛ²ÈH’˜|ù AX%KúhaPªX8¶ Â@iI^d˜¦…Véu»dyÁ÷¤TÇ´,<ÇÄógÏ]æ…¾Âã<ÈÖ­³úÑ ^|é Ã$I‡ oÇöÍ=~†7NœåÈÑã¼røiÜEim{$Qϯâ¸!q¿Å@®Rª6ÉÒˆ°T¥Ö˜Æ´ .^ºªóB§À*py4Öò1ÁäÛÙ !ÌnšÄă62Ÿ$MºB11>A½Ñ$ŽzEašh ““SdqŸƒxЦEãUrϧµ¶ldY–m†¡pÁ«úô@JMõȳaºÀó\ÆÇ'ц…aXäé«Z­‰ú-‚`–4j ï‚’Aˆe!„ M˜¦mÛ¨Ìım\ohH¿·Že™äIL–µÈÒa¼Oó‚q§FV$A™4k1è.! ׫R )%qšS¯×)´‹…‹†H™Óë÷…Ö:e¨å Sæ´ùF}@ß ˆˆ$ÏsýYá£(9{a™å•5ö홥×ic˜o¹ÈÃ=ˆÊ;,.÷ø»ï|O<öfggè÷—qÜa¹ÊÙ³çév:8®ÍdSÓn÷1lß³9wqß³ôÛlÛ2ëGNòÊk'˜lŽó…Ïÿ'O]bfjœ“o^àêü5”ÒTku¶ÌÎò§1 ÈrÍW¾ò ìÛ½ Û¶AÀêjK¹„ë4øm£oxÌh + Kcºí´Qá[ßþ§Ï\àê•‹ø¾0Lª•¥Ð£^ 8}ú,O}ÿ‡HeÑhÔXYYÁqlüÀçô™‹œ8ùi’òøc0 (Wê<òÈCüÇßú]vïÞEµìú.í^‚’’ž»ÀüÂ"¯½vŒÏ~öÓ<óýCŒ×+œ=‘©fƒæDƒ ¯â86÷Þ};2i“f9–i’ä1ó rd|>· ‰ )¥Ìri:^™$`:6³Ó5JÞV\Çàâ¥öí™áÌÙ‹tº6ÇOœæëóoñ™O?¡OÒîvh·:”+U––ΰwï<È…so±i¦É‰“gyã7˜šlP©”1Œ¡ÀræìyþÑ?üSÍ ÖÛmžüÞ‹|òS¯„L5'8xçö16Ž’š={v°móãceüÀ#ê­3˜–G«Ý 5à ½ð–4Á8Ïó"Ï¥éúU„°(—¸ÿAçÙ½g?½A„išÜ}÷Ad‘S)—¯bèÇñyì‘ µZ ˲©”˶q,›};›ÄQ›™©1¤”+5š ¾ç2·;3ÓSXÎP0ùäÇïgb¢‰Æb¬9C½â¡Š¡®!€Ä2Ç$ C‚ $Oû䅢߰±Ú¿§$ö6K©²hÐu¥,¨Ôgq=›4Mh4Æ Òœr%%KSšÍq´”ă6•[°Ü2y±Í²1MY¤Ønˆý¯ãú’S(U`šÖ"µò®_ÁõB C`™!µjÈÎ]e +@ÝÖZ)¢~ z¨@ÙN@Ö ËU°Œëù¸ŽM%  Wý >Ø”V)eš$Q9Mú$QߣTªR©y$qŸ8ê1 CL³´4’Ì ¼Éw0/$ê­P©ÎàxZ˜Öâ~›~w•$îâLŒ£”¤Ú˜‰%6E6Àr\Ç'Kc4×/19yyÑ^óh­\ TÇvJ• lÛÁ0Z¦hm'ƒ(V #@Æpü`")Ul{Uü°F¯}z½Š„¤qRXÂ9®_¡ÈRzÝ%l3Ãs}LËŲ\§‚! ±e†aRd1YÚǶ+(GàŒõJI„a"r hb.ycÛB Ó!}‚R4s°ÍY<×&ê­ ò>+ó×°mo$ÌøÁv–Wi·Û9×#À­ „1@ˆX)Hã¾]_¦3Ì÷-‡,íÖyŽÖ?¨!„A‘'CgÂp±¤ø(âh@÷(UÆH“Á ƒ°2Nu@Øn‰<‹EŽåXÚ#I" ÃÁr†S ’4ê3Ô`Yhæ/½ÂÄqRMÛ¬¯­2ˆÒØ¿?¥d"¥Œ²l¨èhíµË¥1„°‰âˆ—ŸÀ2çö‚/¨Ðë÷xé¥WyãÄYî:x;““Ód…$ê·ñ=ŸƒwÝÍÕù5^ý5îžÛƒ áêÂ*gÎ^ar²ŽÖ&ûoÛ…eIÞ:|„ÉÕËç™hN²ÿ~^=üswìÇw ¾ýäزu+{÷ìæÏÿúšÍ}ì –ã8CSÚëë$I’1\%?ÎÞ )UÔí¬ƒ°¨mÝ%K:œ¿´ÊüÑ_àû³³Ó\¹:Ï…KWñlÃö8|ø(gÏ_D‚ÃGþ’ûï»›7ŽŸ ?Hù…Ÿû¾ýï"„ÉëÇŽG}9N!Û·mBI˜›»˲ùÆß~P4'&ؾc¯¿ñO|÷{|ñ§?Ïòò*'Ož¢Z«âØ6ÇŽŸ¡ìîm“ìÛ»Û*Ѓ8!Ëò Xð5È*´Rq¡L\¿¢…0E­±•¢È0Œ5¶oÝÌX£Âs/¼‚a˜œz/wܾ›~·ÅZ«Ï©·Ncš6?ñ©‡Y[ï „`v¦ÉëÇN°g÷6Þår™4à—%LË¥(bÇ.óa›0,!„IÔ_E# ªU*å€<1,¡%Zg”MüÒZk¢î2R(¥‡U¤<ÆsM´”hÃDè„´ßEÊ˲Ë ²¸‹RI¿E¯ß¦ÓîÀõ4øCyJëõ$ŽôVØ4½ Òi]%,7QJ¢5˜†­%¶mcÛ6IÜC~X#Odi„e¹di)®bZQ/¥(,L™€`ä1‚~{‘~¿ÇÉSço”Ø4;K‘Ƙ¦Å –hU‚()¸vå<ãu\¿Œ§‡A)A©FK’šë4øÃçùZ^H,;Â0#·K“qÔÅõ«´Z}Ü DIE4¿Êúz‡¹w P¬,-Òë÷±LA¯ßçüÅ«ìÞ½%;,Ì_àÜÅu@°o÷,“Íq¤R(u•Sožþ'±m“ÏýƒOpüÄ)öíÛÃ˯¾AÐgîŽ}!8úúq}躽÷ÌmfzfŽm"‹”vk~¿¯€èÞ3xhZ ¤”"Kz@™úøVWxò™§Y^iqäè öíÝa:yÎùóç9xàñ×69vü4E¡ˆFRõ/ýâÏrøµ×yñ‡G0M‹jµÌ‘ׯ|—v§Ï`0`ii…Ç”{î½—ã'ÞäÏÿê›ÃdiµG¿×%Írž|ê_úÒƒ?øoаiæ—˜š6J#„AÅYÁ !·îBçE”Cñt¨Ç)¯L­±‰V'aÏ®íœ>sŽK—ç¹kn¾gséòe^~õ<ò1yø£¼ùæi®Î/qÏÝw±yóf\Ï,¦§' ‚€3§Ïà8;·oáØñÓ|ôÌÍÍÑŸ¢(rJ¥æxó/13uµzÏs0tÆ'?þîºsnTBõ(—B´V´ÛmQr3 ~ßãÇRÅY–éNgM¤i•8†•kgðËS|ì#w±gG“n·Ë‰“gX\^cßžmAˆaXÜ}p?õZ…z½ÊÖÙ Úí5êõ:A°oßmìÞµ‡Á CQÜyû^´ÊP2cîŽ=ØŽƒeÙ 3¸ïž"eÊæÙ@¡Uç—t—Ø<;Æöm3CmÛu†Ý%€aZÄIA')Ãæ)Å-tŽýøÄRÊBiÃ6-—Zc Žë“FëhY„R)ææncwÔ à +LLÔÐZ”ÆMw0„A©Z£Ö˜AkE¿»N¿·†Ö !Ê 5ZKÐ ­ P }W Ȥ’Y4è’e1iÒ'hŒ‘F=®-­òÒËG¸cÿNúýˆ WV9}ú<»wmãÚr›Ç?þ(ß}ò{T+!ûölç•W255ÁO>ÇÑc§Ø±c–ï?û…‚$Ž™žn²yv/¿r”-[f)W<óüa.\¼ÈÉS瘿¶È}÷@kÁ¹ó—hNŒ1¿p4°yfŒé©I\ßÄõJ yžÒëÇð!Xà;=@#D"•"O"ò,Ų,–ûß~òÞ:õ‡^<‚m›Ì/¬pÛ¾Ý<ÿƒW¸pñ*¦ipêÔijµ*ß~â´Vüë_þ _üÉOò©Ç?Bžö‘Ẽ÷ßM¯Ÿ²¸¼Ìwžø.swîçóŸ}œÃG^c÷ÎÍ|ú“ õÁ"åÅ_&,•ùê/~™C‡~„ëü—б±Úp°%sLÓE˜.ÝN†Ý aðÃyB¤Bˆ,Msl7Ä «h-ð<—ûîÚËžSœxóË+-|à.¸ÿ^V×:xŽÁ‰S§ùäÇ`vv†Å¥5Â0d¢9K³9…VCn±sç.ò,ÁvKÄIÂý÷ Q+a;.sss  Â0Ä´= a°mÛvÒd€cY|þsŸÀ4®càº.aP!OTª¨"¡ÛYcä°‘ 8PJ–i§…Øîîö:ËØ–ÍÎí[éöLOOÇ)–à‡uªå¥$SS˜¦…Rã ae×õðƒ2O†@Ê‚~w UŒ³k×¾·õÃÉæ¦eõÖJbY¥ @IÜÃq+@A–ñ}!–i’Æ]ü L.-ºÖ¡?´ÖRk•¤YAžÆD}ߨ¡TNPª`¹%*5Mgýë+NNµRÃõʘ¦í˜† K{8އç9HɰCT+šÍ)’A—ß÷ÛßüíÃpjHà`}Æ÷UÈQ¾?‘Òõ”è)Z‡¨0€tØw-.Äñ CÄá{8©q ø?U8¶ÂcêÛb¥Ïë\àc¹ã\“ÃÓ˜ñð€H$K÷œ±“]` Ÿà[lרà…\Óp€Nyƒ\ à­ÒÿÿÏ¥„ü€^•¨Ü1vôˆQ¥ÏOìK< ÀÜt’<~J§Ê>¥±cÇJ&NHȲì‹ÅbC¯¸ì¢9­-MIxœèóþ`;€ç\ à}x>âpsÜt*MßÿþÕ×^{Íoß~ûíïÞrË-¨Œ'ðÒ²×ZLËÚÕߟÞiÏ\Ž•!IÌß§”Ö%‰ý®ë~ì8Ž[Zë¤}ÁIÓ]wÝÕÒÑÑñêÕW_-.¹äÑÕÕ%vîÜ)®¾æj¡ùµBÈ×à9G ǧ Œâóû}³§O?KÌž=[Œ5Ê1bø½²,'áE‰“Ö„“¢ùóçêìì\Ýu׉Y³.Ë—/¢££ClذA\{Í5Bó©{ !W¨€±h 3JGUÄ";yä‘N§ÄÝwß%†6 q+++æBjp œ´ \tÑEÚ-·üø¡;î¸ãÌ×^{7Þx#ÚÚÚà8$Æà÷û1~ÂH²Þ¸ñã)¦ivØOm?Ï$Œ1zm{{û¬ë®¿0|xTÕG>X»fŠ/Ú¶ó1¼P|ÜæpÒüð‡?8oåÊ÷þkñâÅlÎì98ÿü `:€R ¿ßp$ Æ^{õÕP>Ÿ› BzìÄÑA ˜ÄØpէνîúïÆ¦M;ŽcƒsqãÆ!°µk×Lu\§àº|€ãö 'ÀÙÓ§'"‘È} ŸzjèO~ò\|ñÅp]>ŸJ)(õ4`ÇŽíøå/…€_¤±Ãƒ{÷uµ[¶Ó ϳ—8œi‰R*G"¡ÿ0 óÂææVœ~úTPJaYTUŤ‰!1*­_¿þŒ`0 lÇYç:®]úý1p¢PMóÑámÃ~öö»+¾ùï|W^ùm8¶ Î9cp]¡P¸ùæ›Å®}ä ÎEScÑp0°«£«Ý²ìƒð¥ÃwŽ ÉšÄ8¿æ›;eÒ¸àú?B6WÀäÉí$ „–eá´‘£ …ÙG~4mìØ1q ðaOOO‡"Î)€2FÑ8¸þêîžÞÙW]u»öÚkQÈ@(A !€m[èïëÃÍ7ÿ{vïr.Ÿu¡Ç%Ë4IóÐÁTSؼmçd˲ӶSUU©¯«½Ù§ÈgŸ;} š›‡âéç^€Ì$L˜8BŽë€P‚#F@–e²jÕªq3Î9g¥ôýÎÎÎô±€p$(¼p€—‹\€ƒj¿Ì9~÷•Y—o¸á8®UUÁ…a˜0t?ýéaÃGëqÕÿø«¯«u„kå~ÅçÓ‚¤iÈ`T'þÍÛvN2M3¯–pJÏ@U">J@Ì7fD0P]DE$ŒÅϾ€D"ÖÖضYö´aÒÄI°lK–<ßtî¹ç¶ézñîîîL‰ïÏt´G@ÀËãkLÐ_bmÚ/(õù^tqÕ~ôŸƒ°l Š¢‚RÁ9 …çSe­OchSª1mË–í“ Ó2l !LQäëcÑÐùçLŸ‚@ Û20¸¾Œ’ìS\"Õ××ÓÖÖPJ!„€,˘0a" ÃÀ /XQS~MævQ&DäÑJRJ Ã@²&úºA¾·LÔ ³È;­©±î²s¾ÐN"‘¢±(’µõ „;®k%×U+]]ûñâ+o`ôèшŢ0M ª*&Œ—süùÏ©;ªmªeÙïvè5´ ϼóŒcq‚^â2œ16" Z›7oÑ(ehj‚@ÀB8çX¸p!~ÿûñÅ™_À¤‰ã!„‹xcG…$Ë||P$EU@Ê$ „R¨ZÐYKÏ(¥–Ä$*'‚0D£ iU¡…ŠXŒ…‚šU€‚çy!Vp›k »XH“¦Æ$[±b%6nÞŽiÓ΀išxôÑÇpçwð;vlÀB˲‡çÃs´zY¸ÏëÓ5Âk=­ƒb.9‡5M=»X(\ ø‡Ìœ1cFŸ†ä Z'‡pȆ¡#¡Ò$àÚdÅgªZ° «Z…^ÈØùl¿ä€’Éf!¨ŠtlKÏTTT¨ápØ'’¬€1Ihˆcš&,›K»wn!® èëÏàÑÿ~ CZ¡ë:>\¿~¡X|N׎ãdK»ß `€ €¿Hžh%UÙYžÀKV¬ÒELÓäÅbq7!t­ër÷“Ý{ëuÓVë% *Ãði„B•Â…ëXЂQXfÑ„F©D)! T’U8v‘øý~¨Š„ŠŠ87%‰êÓH÷í+°+ke‰IR>ÛK$I¡2™,:÷÷àµ×ÿªwtt¼ªëÆCºa¬æœá9»T „MÀ‹Gõ^Ü×q(~ŠÎ²ãº®m;mÛY·{w§óÖõªê£uuƒ aÛ& ˜¬€RJ¥^×µ5ÛÒ™ê ‚BÛ$ÁP.+çÆâÉ,nÐul„¢  U Æ$c2%ô\ ù‚7–¯ÂŸ{IlÞºócÎù"Ó´ÿæ¸n_‰÷~KKüÊ €£•¨¼´}”sÞÇ…x·?•îüxÓ¶Ú®žt,VQhÄI’¡ù#Ÿi3®ˆ†T_Šê‡e ¸— !@@¸¬¨iSχÃÑdU#>X2¡”²]¼»r[ø'¼ôê[]ûRO†ù¼eÙ{J‚–U¾žªKüþSZ|¢ÅP9g/kƒñre·Ã¶•ŸìÚ㾿fÝ×eJ,B0Šªõ+ªLVT!àX&„(æÓ ”é‚ó€ëØr¸2 Û2KuÃqmìÙ»<¾O=ó²¾yËŽ—tÃ|вìÕœó€,€žÒÕ¯oâP¯àŸèdûe³(kCùar u…‚¾qíº Ñ7m«”L#Y–dE ǪÀ›ËŠdRÝP BîÂqÌl R©óiYϧaèÚ‹¿¿½,Xˆ·ß]½)Ÿ/Ì3-ûÏœóT险’à½ðv]Çgìú@:½´ríP„§1x­ªÍœ»;vï霰{O‡¯­¥A  ŽëÀçSÛ2 É UC&ÕIö9‘ФdUã® B :pÏ‹°{ïTDÃ+]WÜcZVéÙExk®t%@Ž©p*›‰åINÙ4oHruÛ°ÖÉç͘&i¨&T‚sLß~ÔÔ ƒ¡ç 8G>×ǶŽ%³ $!PQÝDz°¿{:»R% ••îr·¼~ÞÎgàQ~þ1wOi[‡êï!nŠFÂ7]xáÌž?CŠÇ$^•D¼ªŒºÐü!PJa³$…\?˜¤XŒÉE=Ÿ‰@(Z-¥ÚZ‡ Õ߇?Ü’,êf…b§b'©»‰hŸ*Ê •À¥”ÒÛ†·™uù—Ï N<•‰*øTá‘Hšæƒ$É0ô,¸kÃÔódPìàέ‘`$.iþ$Y•ýÈgû¼Ê±¶šr™æt¶0^á”@ÈàåXvŸ–ï;”…opK8øÙg~¡õÜs&’HPB E,EЯ è÷Á§ÊPdܵ@…¬hèëÝ Æ¤ cL ÃAŸ? Ê$XFÑó ýûaè0I…O‘ÐXC²&+êöYý©ÌHBH¿b?4TŽÂk|Ä© àrIbw5üÒ˾4CÑRE–!K2b±(‚A"‘0ü~¬bŠUÁÒs(äúQÌ§Š„S7yÅÎ= © üÁ0 =½wm@¸PU•SÆr‚»N¼" 3Šiþ@SOoß9Žm×2ƺ9çý„¨ Þl‘ ”Ÿ ÞÄæ4BÈñÊŸ^ú¥ ¿tá RU€ëX ÂDMMÕ5IîZ9¡i>¢i˜zª?×6Q̧À¹[`’šç.O,~îEòëÛï5ÕqR_W J)¸pÁ¹S¤iE–ì@0B%F e² î¶Ö¡æ˜±ãƒ†i´ïÛ¿ÿl.„€À^xÑ``Op:€ äx(«WÀUæM™Ò>óÊo~UzúTpÇ„"K¨ª®F8¨¡ªf-œ"×4?s¬"!„B F ¨L=/ŠùtZ’}¶méñÕë·‘ZÔ›Îä>°-£¡­¥(ŠâH’ÔïXE‡1c”ú5¿_•ˆPdY&ª„e[Ò dÍdóè=Ø_Q•HÌÈf3c$&å¸{á…ç+à)x¦ÌÂK`l…£# !¿ª©Šÿ ‹V%“5=¢²,! !#O ^U#á0 iYNTŸ®cœ›z1Ûǘ¬jÁh´»'Mî¹÷!±{o×3ž.èæ™ uUÁXX;¨i¨¢ªAN%Yæ!Ó× ÕçC(R‰H¬oüíMüeÙøÅ/~…¯í šËô7íÛ×9S–å„ïr>ÀCöü“<þðÁ€b¡¼ë1J¿Á¹wrûÄóæÌ™£\~ùX²äyôìEËZTU%¨®F4ƒÌÜ¡ŠâC0\éÅøÊÃu¬wÓ(æ*(“5Óâ¸þcxgåú•–èÕu#ÛF´6úE–üeF\Ç‚YÌ"cëÎ.ÌÿÃãškþ'fÍš…ä A˜2e ªߎÛÛ{zûÏfŒ¾.„X‚#œQ‡΃—N~zú‚Œ&”Ìmh¨¿ù»ß½!ùÃý'7~"“ÊÊJ,~ú9ø5ÚZ¡JŒXf‚»v0’ÈS&q½˜IÀ’d5ŠVES(!/¿¶ ?¿×vø|xù;ЧõãÆŒP"áEA mé(“U`붘}Û=8ïü/âÆï}ŽãÀ¶Ä**1fÌ8¬[·»vw€1r§^‘ÔÎñp‡×¿ÀöA5 ¦(òµBàž™3gN¿õÖÛ¤/_z)Âá)ê:qÃZ‡AQüñég òÕ‰p¿eäsܵ]ÇÒ™O éL’ý‚J’ªJý²âÎV­^ßÎ{ØL¥s àz(§Ó]¹|á´xe¬¾±¡ þ@„x­ï@¨™T7ºÄm÷,@˰¸uÎhš·¦ë:P5V®Z…E‹£¥©qU*3_7 ÀhxŽp?J]¡#¥ÂoC)K‰×ÕÖŸwéW.ÃW\ªª*èzŒ1€sfÑô"ò•W~›îÙ³O.~>LVûG¶5sYR‰m>âÒ^--pî6¥ ]ݽxèÑEØßÕó"€å%ÁÓ@xeͺ§Ÿ5m""ù,T…Á‘J °î{à7`²³gÿ¡`¶cðiRý)Ì›7zzßß·¯ûþt&³ @¼t¹j ÜŸˆâ?rùÂÄ¿êßqÓM7A’$‹h> £ÙLj³,Ë> è1|8¶ïø„¼úúdÔÈÓH,!ªOƒ.玽߶ͤªeYñ#Õóæ?‚7–¯\+àP1s°¤… @ªXÔ§ \W1¸> 0Ûu <±ÄYýÁùî»ïFóÐfp!à8^y Ë yä¼ôÒ‹òùüorùüîÒngJWŽÒ‰ø*€¯èˆWVäÒétCss3öÔ˧Á0tÈ^Wá8Ž&¸ P“&NÄòå+°jÕ* k E¢$™„c‰J×¶eË2àX&^|ùoxü©ç{LÓüØ/4,i€YÚ!ÓvÜ!bRë$E†ànzéKãK_|=4gδ··#—Ïp]²,ãýU«pÇí·#›Ë>œËåß+­ÝWÞÂa©r^8žZ à%À¿* ygÅŠ!cÆŒA}}=lË„e™Ðü~B™Ë9¡Œ‚ŠŠJŒ5/üé%ìÚµ #† E¤"á:à‚ƒQ†µë>Âý¿Òîé9ø!°¢¤î}ðT¥îR‰§BQ7ÿmøðaþ¦¦–š6ò?<þtô†ï}W|õ«°,oB{÷îůgÿ/lÚ¼yY¡PX$ŒÒº©Ò®;8ŒÊøJ¨¯‡çŒzøŠE]vl{ƒÄHÛÚÖš4i"‰*èÅ4¿Œ2†J¥ „`Pr±hÑbXŽ‹‰'Ã2ràœ£`üvÞ£øèãM¯@àéÒn§KLæq¨Aà5esºn´UUW·ªŠ”ûÃãÏÄ.úÒ¥ä†ÒIBŠE”R0ưpá“xîÙgvY–=ÏuyoɬúàKGÌoÊØ¥›Êq²|ˆ‰Šºí×| ³0ᣠ+§NŠH4 ×uÁ˜Ëò’B!`Œ¡¹¹þ@O<¹• 46Öƒ1/|//ûëÇœó9e¡Ë š‡©§TâC‹úù›¶îTO;m ûÙÏ~†H$Ó4A(ƒišðùT¬xgî¼ó§?•žïº|=þQõ?³T>ÚpôÓY}&›+&*bÛs¹Ìô›¶øÎ<óLHƒip¹ .òyï4,¥ãƃm»XðÐCh6{;»ñû‡Íäò…ßq.¶ `°\ÏdP”„0Æò†iNmnV3wî\$kj`Y¸0Mªª"›Íá¶¹s±áã–9Žû\Iàr+¼lVG¤£Õåî/ ¤ÒÙ¾3&–·oßÖÞ¹ÿN?}*!°- L’A®”mR ½}öìéÀ /,ÅÊ÷׈îî‹\×ý{IøþÏaP HÖT× nÀù?¨~ŸsBýóŠ¡ò!&.„LËî:£}dÍ›o­j˜6ÚÛÛ½Š È’ ¯³Ïç ‘¬Iâ©E ñÉ'»W à9!D¦$ø±0H…€/à׬B¡p~sK‹ÒÒÒ]/BEQðî»ïâÞû~+ ]¸P(®‚·ûeÕ7p'D§rçW¤ÒY{_WïšúÚ*kÕªÕU#&Œç.Ç¡œs’$Áq<þøãxoå{û,Ëz²Ô´è‡79’ÝN€¯¨iÎJÙð3ΘI’ Iz{{që­·bgÇŠl6ÿ¤ãº:ŽQõ€²& PÔE:»©vP5{u㪫“6l˜ñ"ë:ƒxùåe¸ÿþ{Í\6ÿDÉ1¥áåâe?¯‡'HBʹȧҩ ÇŽ'µ47CùóçãµW—õš¦ù»\¾P>M~Lª< Á@,ËQÒéìzƈ³zõêIC››1tèPïFî%$Û·ïÀms碳³óYôþRbª‡²½ÏÝÒM½XSY<ãßfà+ðÀ¼û‘I§ç§ÒÙ8¤úådꔓ¨ Âq\Õ0ÍŠÌB|°n䘱cÑØ8º¡#—ËáöÛoÚµkÖ膹`€Ý÷âÃí± B0¢­¹®»«kê¦&<øÀغeóÛÙ|a!çÂÀqª~™Ž·#Tö8çŠm;ëS©þŠmÛ¶·?ÕÕÕxøáG°téÒ^Ó4cšV¼,¬Ÿ“òL*„P‰ Û²Œ³ßzóÍÀæÍ›»3¹ÂƒŽãì‡jyvÔ†Îát"=Áæ@Ç¥Öçr©–ŽŽ} …BO<þ C"•Î,‡·Û}ðvH/ýîxŸj*Íäó…ê={÷³,ëÇqÞÆ¡"êDÀ=áÉPytž@-Û!ÜÅ]ï,³òõ×_k h¾7s…âëð„M—˜Óqªy„çlÛÛ¶ ;Ž«Ãó%ix`àøÁ=©Ñ˜ÏÞ(ÚŸÊì"„¬B´‹zQaÁ(Ï(DŽƒÊsýxoŒ-€'øqÛý@:™WfÊCѼ¸žB´X „(8¿ÄÔqy壇wÌm)€Gá…SO»lß[(ŸÒ©Œ¸ð<õ×á§[`¼.s¼CIÆgþúةޮ/…xžýïÆ œºÙ`ù=¾‡qÈæ×ÂÛùx鳓1Àëå퀗K¸ðÔÞ¯¿÷•.€Ç Pò 84D áЋ”'JÞë¹ç~¼þÞ)óíx)Š~³ó_ô/úýÿAÿOÔo’½×s‚IEND®B`‚QSapecNG-2.0.0-source/src/gui/images/newcmp.png000644 001750 001750 00000017656 11617757645 022117 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÚ +rkʸ.IDATxÚÍ›Y¬mÙUž¿9çê÷ÚÍin[÷Þª[妪l—]cÇ@óEDQ:„P )yÉKò@$’<@xJ"°ˆP„„D¢X`‚#cÜ1–û®ÊØåªºuûÓîf5³ÏÃZ÷p¸Ts !”}4µ÷>»[sÌ1ÇøÿŒ ãíÖµ¯ þ?»)% )å6Pc,Æû Hñ2ãoí“B$BˆL¦ÀŽrq b&…ØR<$„8›(µ“eéùõ¦=g­½ |xØ^ß6@ÂxÏ_»”Rižg©”rêœß–R,ˆqb˜J!w„”œ‚ã\*9K“t‘$jžåÙ¤Èò"ÏÓ¤, êºf:1›MøúןåÎÝ=¤”ìí~Û‡ðAïý'€ :Àþ&Ï#Â+]{òŠ/(•fy–*¥ê¶bKJ±-…œ)%·bô„g…”»RÈEŒq–$éøŸ"¿ô~–ÅbÎÞÞ>ÿí7›ßøï¿Ã­Ûw>å}ø÷ιOú _ÕJɧó<ÿã·>ùxrþü” Lª‚zR2_lSY–Q©‚j2豺e2Ý!HÓ ¥*ÉðÎâ!/k„$I‚@€ˆ8Ó#• ÏK¥(« Ñk)Û;øÊ7žçßü»Ÿã~îgù÷?ÍñÁ‚ï©ê_øÂWøÅ_þ5>óÙ/ÜÕÆÿ²÷þW[¯0¿tœ¼{UÁ÷ììl}äŸÿôOž}äᇠF&Ó9ѬíDÊÉy>¡ëŽé›#’4£š,€ˆR@5™#•„PJ‘ei–aMKô†4-ÁÐl–¬æ1$JpáâCÔUJ5Ýå_ýÌÏ3ŸÖüÂÏÿ º]²^íQV ¼Ý°i4ÿëÃÀ¯ÿÆÿâ¥ë·þ „ðóÞûO½ÌDÏ=°~%Oc€0ν\cÍ.õdB]å$i7yUQ–s¤4«±8G–—äY‰’$M)ªšD¥¨$'R5Öt "V;Šê E9£kŽ˜N§Ô›·oïóÕ¯?ËG?öI6­aï`Å~ú3üÊÿÓéeQPT5íf9xVÔuÅOÿÓÈSo}Œ_ýµýðg>û•§6MóËÞû_nŸZܳ£wÈWÚjLMÓ$Q?ñ®w¾}çÍoz#çÏáÂ…sLë’Å|ʹóWØÞÞ!‘–ÙlÎb±M=™ ±$*$’¢(ÙÚ¾H’HbôˆèÉ‹ J*¬nPJ‘$ù`*èÉÒÈÃ?ÂåK0ºç~èÃ4­æK_þŸúôqãÆMò¢f±µMQd( i6A÷ —/_æû¿÷Ivw·«_ºóCËåêã„_&ÀÓÀ ÀŒó¯`r¥Ô?zú]Oâñ7°»»CU&Hi¢È‹ ¥JJÒ¬$‹é7$iN–W”õ1xúnÉfµ‡ btGסû5Ît¿!Æ@–OðÞ£Ç; H¼7ˆØsíÚMnÞ:àÇ>ð( _ûú7øØÇ?Íoýö‡ùØÇ>ɳßú6MÛR%õtJQÔLꊷ=ùïþÞwжý£/½tão9ï“é·øÁ©2¼¬€4Qò'Þòä›.=võY‘Ò¬"I B°øàðÎ`û Á{¢€=R¦xׂ‡Á[¤LˆD²¬¤šì‚Åš«t·`Rï¢e6?‹6Ž|ôS¼õ­ó†G¯páü9Þô†Ë<þæGÙÚšspxÈ—¾ü ÿ÷£Ÿæ#ý_øâW¹uû6ÎCž¥\}ø?ö#ïg{{V}ùËßøÁ®Ó÷öÿWG0/g€{8ÀÅuÛ4Óã}E=»ÄÁU4+éÛ%B*ªÉÎtî½€Ï I’SM¶è»1‚5=‹Ë Àô y1¥ž%Gדf%*ÉY^'Ë+žç_¸Ác>Ì[žx ã I"zú^Ó´=«MÇÁþ!×oÜä¥ë·xæ[ÏñÇòE’$áÊåK<õ¶'xß{ßÍ{ßóN>óî·«ÿý‘OýplAðUP@ˆ¾m;„LÈ«9J¥äÕ”,Ÿ û ízŸªÞÆY¡²b‚é„XÛ“æ%Îj¼3lVwÉŠÝoPIJVÔ(!‘2!ÄHð¥RŠjÎz½ÂXÇ÷½ûÔÓ]T’PdŠ¢(8:¸Éòè.Ö/Ð_ä©§ÞÆÝ»7Ùß?`¹î¹~ã/]¿Éï}äc|è·~—sçΠûŽ1̀髡Á:ë#B¤xçðÁ¡d‚·†à iZbú)íú€4«¨êt¿a}tg:Ò|‚©Ò¬Dª”4+©ggh›#‚w„èI²’à,³í]¼Ó4›–‡¯\`ROqÆ’%žTEØÚÚb±X`LÑm —.î¢mdӴܾùÇËGÇkîÜÙçÆ­»<÷ÜóH!1>¼¸ ÜyÅ,È$Qûò¥‹o{Ï÷¿—ùbN‘'èî˜fs€Ñ-e5'Æ@š•TõF¯QI†RA–OH³ï Vw@ Í ¤P´ÍÁ è/†€sCPNÓ©R”EŽ’ŠjR“g e9àî Æ×Z›!eé ºÛ$„\68Êj‹=Á[ LRL¿¡Û‚”LØÚ}˜¾[Ó¶GR” Þ ÙAA=?GYo!€õñ#\–)2t¿Aw+BŒ¤iAß.(Ê9Y>¡Û±ñûLçg1ºeRÏYl_@%R /^ÖE=NòÚ8Æ•@>Â¥P+ݹۚó´Í1Y–ei>Áö Æ Oˆaõºög5Á[´Þ XÝ’5R(²¼"Õ ‹ê2J%Ä{éT74ëáš²b‚n—äÅä„Ázo†÷™v ¾,‘@^Néº%Ç×Éò’,¯NÞ;›ï€ÌÑÆØÑ{ãXXÀŽ)ÑòÄ1úcc51‚î׿E59KŒ‘õÑ-T’‘51zL¿Á)Mp†v½GQ.(ÊJetÍ]{L^ÌðΰT“Gû×ÈËš¢˜‘¤ 1¢'Ë*(#«Ã›Ä(ëm²¼"¦ºß‚&¦[4-‘*¡kŽ#›ž¢ša‹’£ƒ»Òc€ã1Þ3€aq¸§!œ2@l¼tík:bŒ8Û£TFš—#(ÊèÛE5'ƈw=õì›õ]²|Šsý‰¡‚B¼÷x?>•d8gèš#T–ã»Ýo4(R¦¨$ +&ôý†õò6J¥”“-¤JA@QÌPIŠ’,›¼Ð¥·¬7cÔ£ZdGʬ_Fˆò1ì­µ4›õõëm â½ak÷aêéœ5C·š<“é¬í)ªŒ?.UBÛá½¥œl‘—3ˆ¢œC o±º¥Yí!…$Í œÓ8k(«9[» )T&©˜o_$M šÕ>Þk‚®;âøà%²¬¢¬æäeM9Y€Tìï†ö§`0§øÀ½Áiè#‘TÓ²<¸ÎÅ+#¥"ÆÀáÞ‹ƒ{V³a›t+´nPÉfBðïÆUN‘2Eˆ¤JI²Ý­Ø,ïRMw™ÌvqV“fR&h»&M ¬n*!+¦˜~Eš×lŸy£ŒÞ`MG×cD X/ï û5õì<Ñ]Û7ý8y;ŽÄ½÷Þ[ëU–Ï0ºEw+œÕXÓRÏÎ’—Sšõ>B(²¼0~ ¬ŽnAR] a@‘Å Óo('3”L8:¸ Yc³ºDæÛ´GÈ!ð U-B¡Û%i^±:¾Mß“SЬ"!`mÚÍ“é*)9:^‹1ßÛW"A/§ vÖZg­Wy5G¨Œ<åd„ÀÚž,Ÿc ø@ ï,º[2’å¤Jq¦#É ¤T„ÞÑnöI³Š,› TF»9Bª„f¨TF’äè~Åñþ†¼œ‘—Sªé!Ž®!ç¸=l‰T Iš£»5Z[6›–ÑæUÓ?o輦mV¹wŽùÖCƒzãÝž„ lð$I£ûcœ¹ðf¬é*A¥9¦.>‡÷†4›PÕ;”Õç-Y>autTõE9#ËÊÁ°Á‘¤%Õd‹²ÞFÊ„ƒ;ßE±ºÁ{‹÷–4-H󊼨IÒ©¤”DÑÑ4-cÔ7¯å'A0ÄÐxïuß·ùÙ L¥9e½=¢ÇÉCŒ S´¶t튢š¼%xKYo³YÞeݬÏ!²Ø½B9ÙB Ø,¢¢œ"¤"Í+¼w™PTsŒnY/octÃιǨççÈG5)ä 2bX݃£ë MÛ…1˜1ÆÙ­÷¡K‹9ådÁêè&óÅŒ*Éh7‡¤ù°ïÒ|‚·šç¾óuž{î²¼àÍo|Ãè%ï®9æö~ÇÇ>þQ²DòÔÛÞÀ[Þò¶A`ÉJ¬íOR9ëã!LfgH³ kZ¼bŠa$eR¥L¦;oiÖ{XÓs´ÿ"iV2©av÷ÜUîîÝæøøØžÊf!dƒ] »Mœä¥P*Ã;C2ºuðC¤BpgoÍÇ?ý%”„ªªÙÞž‘SŠþþ'ø¥þÏ>ûmz­yú]oçŸüÔßãGø½”Å@¦ÚÍ*ÉÈŠo5Á;’¬ MJ5Išƒà¸5Á;fÛ—RqóÚ—I’Ó7(•ƒçX öiZ}/÷»Ž!øÞ{ßc‘2%"X¼„›í’$!ŠbJ×àœaïÎ-žyöÛdiÂáÁ!Eµô~R>þÉÏòÝç_¤×öxî»/ò¹ÏG¯^æ‘KÛ(•Q”s¬íð΀#¤å¿1 J¥gÙ,o³<¼AQ eûü8Ü{g5Iš jÄ7LJ‡ô}oÆ èïïÎûЮ–‡ ÛWˆDºfˆIZà¼%Í&H™b\dÿ€Ã£%ÖûqzºÍ!m×Ò÷ýÉh­éºPäÕÙ“4GŽÙ¥ª·ÈŠ)R&Ó’å“ ‰” ![g®’f!zœÕlŸ¹Šwg;•‘—S¬íhºcì=è^«fx Cè\Päå, ©Äbûá¼x Dúv…”j@uH¬ó­‰Q4RTSÞóîwòì³ÏñÍgžàÊ•K¼ýíoáâÅóLççÙ,ïžÈcYQc’œ<Ÿ`l‡É–Ñ BŒnHUïåŒÞàlÏdºËtq„ (gƒÌ&MÓcìGp¯å§ƒ GÝ÷š¦YÆÍr²¼3 ®r²öbðxåH j@qV“ç?ôƒƒ¦3|ñ‹WñÞóô;Ÿâ}ßÿ.Μ٥Ýbú5Á;²b‚Šà-]{ŒÑ-Iš1]\¤HæôÝŠ4+Ñýš¾=ƹK™Ò¬÷É‹)ÎiBðèvIQMÙÛ?d €úz0H)û¶YcµÆ‡€Ñ ÕdÀðÃþŽƒJì=1BŒ‘]»©(ªIšsåÊ%þþßýqÞÿÞï#ÆÀ|VröÌΰ¢}3Heù¥RbÈÿΑfF7´›ƒ]&)R&ÇCMÑÚ~0‚R$iRàM?ÊôÜÝÛç v¯U2?m´ÆXºn-tŸçˆ$%‰*Ð݆4« únC¼t]ƒ³=1¤'L²Ì ]=wÂmßp|x4Ða´aØózs’æü(• !O@–wfÈ<*¡¬æ”õ}»3‡Ç{‡JrÒ¼ m7-ã)üº¶@$Æu©rŒîØ»õ-ò¢"Ë*t·AJI³Þ#MËVbDª %œë -E‘v³"gMê1Ê”}·¤ªw¨gg@ÖÇ·HB>*ÆÎõx?,¢Ù 5ך-Õdçz–vsÄz}ÌòxÉ)üº<€ãaßµ4ë=ºð8U=auxÉìì° „€ÈPÒ¶fÜ‘ÕjÅjuD«#º›R º™JËVÇ‘6››J%äewÏ€G%xg†ZÁ¨.—Õ«[¬="Q ]³OšHêÙ6*ÉÇ‚©¥ª¸˜ÓOÁà×gkíuž$­„jde[XÓ¢»5U½3 ™9a”ú¾ç™o=χ~û£Ü¼uçÎYœs„ Q`¦ë6¨´Ä»€î|®KII’&¤IŠJ‰’¨$*ËiFšfH9h†ÓºäÜÙ.]~ˆKi ¿ö ªzˆÞŽÙl6hO <°ˆ41 ¼÷ÂôkS»WBr´ÿâ Q‡³:<‰žÖ¢Ç{MŒ’½A%9ÞôÄÈ‹š"ž€ ‚baXí$%Ír””HI’”$-ˆ8¤¢$-I6¨Ôí’3gÏ(‰w!%›¦£íŒ»Oyp‚Î:‡÷‘‡ˆ‰”Õ‚ù–§ïWC obäyÊ“O<ÆOýä?`¹Üß;Gš9P]ç-J&[cMƒ ¤Äꆢš3©‡LàL B iN «×dyŽíÉ‹gÖD•"¥‚8::¦iûûa0lïCgŒ‰Ëå0fNßÂÁíçð;ËÓÝŠ<1x¤J&L§5Þ®™–Ê’XÓ"E`ëÌã º]c@ªsƒÂÓo F¤:;ˆ,E”’¬˜¢»*IpÖU§bÁê ˜Õ†b,Ю÷!Í‘iJ¯]×ë±y*¥žžeûìU¶Î> B G¡cº8OVŒB¬³Ýàœƒé ŸÀZÃzÓ½.ø²i!z¶o±v¨ÖäÕ g:lŒ)ñÎ’çÛ[ ²,#ËGÅ(¸¡á(K)‹ kíØ]’’¨Hß±:¼NQÎqVÓ·ÇäÕœ¢œ²:ºÁlë"R*êÙ9L¿ÕÞÓ¯qVctÃtq!Îi²¼Â˜™f•³Z®»Aôƒ€ ¿à¡…FkKšO(ªùäÂÐç‡;D[[sžxâÍ<ùÄãL«œv}@³ÜÃõk>ð£?Ä#_¦È°ôè#—ù÷¿—'žxr 7Á •Éï JeTõ6íæ€vsDŒž¬˜ ’ Ý.Oø€«;„äù„¾[STs°ZÐôöžܣ¯ÏBˆ.Q©v^æ‚÷l–wÉò¡z“fâ  _½ú(çÇw°ý’óç']!ÎiÞûî'¹úÈ¿å“ø9&UÍ÷¼ãIÞôÆÇÈRE³ÞÇšŽr²Ídº‹÷ç RÊÉ6Íê.FýC°ôôí1I6T€UžŽz„EH‰n—”ÕëVË#ÿz¨ð_0@ŒÑÇzmVw´›@Ulõ¿r>èþ*e}|»yËgw)ªG™oí ¥D%ƒ„>òò.;Û ÍKòD&&˜o_BwëAlÍ TȆÚC9E%}»$:³=}»ÔàÙî ú !F¼´Æb²5‚2ÉááëÍÆŽ è`ð_ÜàU’èf³âøèÈ„$-ñÖ`Mƒ3=}·iì) RŒiˆ±e,η/°»»Ã¤L)ªjè-Ô 1¦[ÈòŠkßþ,7^ø"iV¡uƒ5Ý |ª”Œ%c´ÏNºQ‚·9Ô‡¢ÍìݽIßózxÀËl`ccB$t›#Ì¢f¾{Á ÜlV{$INVÔCåhÖûL¦»D"Ñ{œ3ƒn#›åm&Ó]’´@HIß­†¦Éà)Ê¡¨ÚµÇcõØå­~(ÑW“-œ³è¾!GQÎGé­Ç{…³%Y–â¼¢m[}J |Mô²hÛn©u?œ“m²¢&†AyAÊjŽ?Y EðkZ6Ë;TõÉd ï-›åÒ¼ââÃï´„àAsìäءÚžfuF×Ί©úö˜éâ<Öö\£ªw°ª%+¦¤€³†,«™.«ètÀXÛªù×m ´]Wk=¢ †ÈÁíïæE9T’X ¥jÝ‘•CQ48Gß­ÆBJTj@r*EÁzyo5“Ù.åä<íú€ªÞÆ{‹5ýèó! NÏ èn’éüÎõè~CVÔäå ¿ÞGAšÓǯ½xO kÇ,þ2Àyw`¬Ç9K’ óí‡!ÝúžûºQ%r KiV’d%F7dYI·9Îê±µ^Bˆc%¨D†@UoŸôåœb2'/gÜùI’cL7V“‰ +g$I6àï¹ñÒM7à^üKy1Ä}ë<Åd” y1EɈRé€ãÝ dB–MÆêoIU_¥k‡æç±tÇ¿ªÚŠaP“›õ!zV‡×I‹ U’‘$U½Kš—ÅPô$õ"Öt$IF³>ÀÚ~еÁYIß6ñÖíëXŽrؽ³D¼Þ,Ð8°Ö}@Þ!UJŒ‘Æ4´ëÖË»DIZPMÏ „$Íkt¿FJ‰”’õÑ-L¿¡mÉòÉØkÀ‰Ð!¤Äöt¿"ÍKÓ/1ý1¦;f{÷[ÛçQ2àÍ’40fiÊ™s ù]¥L§ ´ÞÓA@‘’¤ž“f9Î&Ó³8;ô%nVG¬Ž@æ÷o±:>`y¼O×µ„(éúï"ÎyŽŽöÑÚ£ç‹_yF=óìw.žþxéÕÈÑË qóÆ žxã%ì¼ §úe‚@Òôó­‹kѺcïî>¦ÜÁùHÓ¬ÐZc¬g³:@&%mÛÓö†fÓŽÍѶmé{Íz½ÄèÚmƬsÑjµéƒsÞ;ïCðÁkcl×é>„è ú1Ý-Æœÿ1àkãä_yA?N\¼Ü±™Q¨#ObN€+Þ~ÿþ/}åë\zè!æóGw°Œõô½A÷=ÆŒqt]µ1Áh´îƒÖÚk½³Þ9çœóÞÅxNî 'ÀÅ?ãîú”’{ú}A'„01F;¶À~ß{€óãq™»co =Õ ^éÄH2ޱ tØ!ìù«Ïdã—t§úmì©NK}êþÔ¹S™§‡?u1ƒHög9å¦ñ¤¨½Dˆ>ÆxáÙûdï‡ÆI?7‘¹}ª:ì^MHÆ/ÚÇ&âoŽcv*¢.O j§Ÿ¿Ü8ýº{×î7Âé÷ÝïîÓüÞ:>~n<3t4.ÐCáp*#¬Ç}4{m»û8öýâO­îéûW3Ôi× ÷}6Ü×ÌOMäåþ/ÆóãØ<(¾ß÷èã1ðE ÷Ó=tuÿ ÆûžsŸëò “à/sÈù5N†^'ß=¨øjçjï·+NmýW|Ñ•·xx¼Ævýƒ~øÿ+ÉLà=äIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/qsapecng-64x64.png000644 001750 001750 00000006112 11617757645 023201 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< ÇIDATxœíZ{PSWþÝ<€„@‚X–"]QD]e„(ED¬cÖG‹³¢àˆ#ت Ö¥ØQ„ìJíP]D b€JªøÅ×¢øÀÖ‚RòŒ ¹¿ý§0Y U»¤qF¾™3÷Üóú¾óÝsÎ=97"ÂÛ š±ã[€±1n€±ã[€±1n€±ã[€±1n€±o½ c xU(•Jzww÷ÒææfõŠ+JǪ]ƒÇxçw¸ˆÈ¡(Êb``ÀJ£Ñð4 ¢(.EQ–¿sŠ¢8E±(ŠbSeF„5F³S©T¼®®.V{{;ÐÙÙùŸ°°°ÇBŸ^<¸«¦¦æo<†NFÆG^õÅŸ(((Èâñxö4m§X,n177w%††z||ü·¹¹¹àââ‚ÖÖÖ}]]]캺:š©©)lÙ²%;66ö/º,J¥’–••éääÔäë뫉DºùaaaÓ:t]7­¢¢Â*???¤§§gÉäÉ“är¹el6û\lll›n¹êêê …ByÿþýÉÍááá|‘HDé–)..æ?|ø0¸¥¥e†¥¥åƒ ™››7ˆD"­——åçç×üôéS›úúzÚÖ­[}ÓÓÓ¿ ›>}ú‘G‘Aü¢¹\.:99aYYÙ²¤¤¤36l ¾úê«Y¥¥¥ÁöööÈår1###¡ªªŠ&•JŸÏ™3W­Z50{öl P m~ª««'q8 ܯ›ž™™¹Ãá “ÉÄ÷ß_%“ÉgÏž+W®ì'IÒ!99ùL@@†„„Ÿeee|XÝû:S€±víÚ“™™™Ú .Ð?^Äb±<ÚÚÚ"?~,twwïT*•ÛKJJ¾@€öööY_ýµ\­VwZXX|ßÐÐ`ååå…jµÚ´¸¸˜îææ6<•¸\®“É„––(--mjiiñêïW¯&ˆD¢mº¤µµõÃóçÏ[Ì™3ç¹³³sˆH$ê×͉DTTTÔòäääãÙÙÙŠ»wï6ÍŸ?¿äîÝ»k²³³¹b±¸åuÀÐV¸ìÊ•+awîÜa …BˆˆˆXíçç·wêÔ©• ' fòx<øä“OÖ̘1ã–V«­4i’k[[›Ýƒ\-Zôyddä¢ÊÊʈÎÎΩ...×§L™’ikk‹­­­´ººº‚°š0aÂÓéÓ§»744Øòù|5‡Ã¹-‘HÊuyzz^‘H$òÆÆÆðòòò˜ÚÚÚ°ÁÁÁ`xKîááqÇÑÑ1›Çã ›››oܸáÅb±:üüüòär¹ßë0<¾üòËxäñxèêêŠÓ¦MCGGGäp8øÞ{ïaffæ_ÇbÕ}PRR"‰ˆˆè_ºt)µbÅŠrCp¼¦˜8q"2 d±Xèãベ™™‚ß»óCaÇŽýýý1((è¡!ÚáçðÁƒ—DEE]pqq­V ÷îÝƒŽŽÙk «1§Ÿ~ÚÞÕÕå´~ýú5 …bŠ!8ôž0™Ì6¡PþþþØ××{öìIˆ‹‹»£T*Í !b4(•Ê îîî{e2ÙQCqè5€Á`<¦Óé P(hiii+.\ØU]]írþüù,C ѵZ AÜ0$‡Þ3A&“Ù9 Í Í3¤ˆÑ Ñh€N§_yÉߎѦ€Æ¤¯ŠçÏŸÃíÛ·ë É¡wA@~~~"ˆHˆ´_®£Ýð‹©CñyÃuF”××ÑÕÕûöí3èá¤^h4Ú#kkk¼zõj<"Õºê=yĈt‚¢(Ð £µ9òëQoo/0™L+FÓ©OçX`øH̘(,,4€‰ˆÈkjjrîëëÛVWW÷§ÒÒR UzzzÞ333‹–J¥cÍýF|–J¥jxO xúô©ŸJ¥ú£@ °ª««sæóùø|þ4sÞˆ0………ÜÞÞÞ¢K—.Íçñxb±8V&“e‚ë#!•JŸ€äæÍ›?™››2TçÞP†ðøñãòÆÆÆ"Cr¼‘Sà÷Ä[ÿ¡qŒ-ÀØ7ÀØŒqŒ-ÀØ7ÀØŒqŒ-ÀØ7ÀØŒ·Þ€ÿºÎ)ô]^YIEND®B`‚QSapecNG-2.0.0-source/src/gui/images/info.png000644 001750 001750 00000021210 11617757645 021536 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞ IDATxœÍ›yŒeÇuÞUw¿oí÷º§—Yz†Ãá —!-Yf$Ë’%Ù2# ‰‘Ä‘eI¼±ÿ`;H€$€—^ãØAlØñ)†bÇ‹"kqLš’L‘´LZ¢¸ˆIÍÃÙzzyÝo½[Ý[Uùã¾æŒF\FAä…ûî{ý^W}uªÎw¾s æ×• O þ?»G†RÊМ·ÐßcÀÄ+´¾þ¯Zá !|!h}!dl D[ ±(¤8(„8à:Nß÷½•é,].Ërø2𰜟¿Þf€ÌüþõõçÿÄ Çñ‚À÷¤”­ªÒ=)Ek»Æš–²/¤\°,}kmG:²í¹^×uŽøÐ ðÜ( i6›´ZmÚíO?ý[Û;H)ÙÙÙ;£ùu­õÀ.PúU¿oæÕúî¾êŽãùï9ŽÓ4Æô„ RŠž²í8rÁZ½*„< ¤\”Bv­µm×õ:žë¶=ßk¾çøK7i4bZÍ&N‡Fì>¾ïá9’f»ƒï‚#¡Ñì·:œéýÕßðcÿüŸp×7¼_þ•ß=ñÀg?÷oÃÚ˜cíôçç5'Y´ZÍn»Õúg®+—ªªìCßÝB´}?躞Ûu§áºNèûŽü€0ô‰ã˜f³I·»@³ÇAày’N§O8XSDM@à8£K¬Ñ8®µ†²Hq½€¸Ù4ÂZ~ý7m,¿úK?N·ÛaggÀûïÊïÿá'¸²¹õ Öæg«ªz(n€W]Àq䛂 øë;n;宬,áHC#i6":Ýaâû>aèã97`5e‘ÒhõA<ÏÇq×GW%ºRQ!®ë" ,•Ê‘Ž "\Ç!ŠX]€°H!èõWyò™süÄOý4?÷Ó?ÎÛßö&F»[7»<öØ“üʯ}Ï=òØv¡ô¯i­¸ò*ãóæƒ¯^!xC¿¿pïýà÷8º~¬¥Ñê`µ¢,3–¨Ñ'dÙˆ<âz>q£ X„€0Œ⸃t$Xƒã8ø~ˆçû”*Åj…ç…£Hfc¦‰b–(\G°ºvfì·ùWÿægè´šüÜÏüŠtÌt²CwÐåŒYRð±O~†ßûýqñÒ•Ïc~Fkýà+ t Èé«YÂ|ªªL1(Õ"ÍFƒfàzM´Êâ˜(ê ¥ ™dˆî2~øBH\ÏÃõ#‚ ÄuÝùÿ±„a“Re ,eQÆK„Q›,ÒjµhÎ&lnxêéç¸ÿÓŸe–*vv'<üÐçø_ÿ´Z DaH7IgãÚ²Œ¤ÙŒùÁï{?wÞqœßþàGÞõ¹Gž¼s–$¿¦µþ `óšÉ=0·ùjËÀ©-@´\×ùÀ7¾ñ®þÉ[N°²¼Äêê2­fD·Óbyå½^W–´ÛºÝÍFI‰ë<Ï!/A¼@§ÕÄš a5AØÀ‘e‘à8®Ô€Xƒt\°ß³¬¯åð¡UT‘ó'ù$IZðø_âÁ‡þŠË—7Â&Ý…aèãHðüEžpøðaÞòM·±¸Ø‹Ï_ÜzÇx<ù†ù€Ï àMÀe@ÍÇû5 Ì pç»ßôw®ÜzêfûÄ‘‹¤Âs‚0ÆqŽ”x~„1%*Ÿáz~РÑê‘&)Oé)š1H)PEJ– )ò)U¥(òÖü Ö%ÖjtU­Âæ\¸°ÁÆ•]¾ãÝoǑ𥧟áÓùýÓOòéO–çž?C’¦„aD³Õ" ›4š1§o;ÎÝßô ¤i~ÓÅ‹—ß[iíZKœ¦æµ«üwèÌïžëÈÜ~Û-‡Ž;„ïZ$ Ïq½cJ´©Ð•¢Ìg­±ŒÕH颫ÏsxüÉ/#¥eùÀŒÑx~DÜècM‰R¥J(² fcKÚªâÞûäŽ;NqóMGX]Yæ–›sêäM,,tØÝÛãñ'žå¾ûâÞûà±/>Å•ÍM* ïqlýßñmo£×kÇO<ñÌ·fY±¿þŸš[€z%öy@e­-Ò$A©­cší5ÀÖ¦ x~DžŽÒ!n,P©Œ½—оÂu:Ý%Ú­˜ÇŽÇÑ]< P{ŠæÞUU’%C¤”8®Ïxx ?ˆBsîüeŽß´Îí·GUàºÂjò¼ Is&³ŒÝÁ—.opñÒž}þþúÑ/âº.GâÎÓ·òÖo¾›o~óùÜÝw9¿÷Áo†Àõ&øŠ×>!ò4ÍÒ%ˆ;8ŽG·ðƒE>#ˆ›=ª²@H‰p\ü°Ê„(•qò–Üwÿüxî6n creÙl3KsÂx ðÄQˆï[Ç#Œ:L§TYñ·î~ÍvÇq }‡0 în0nSê.ÅúwÞyšíí ƒ]ÆÓœK—·¸xiƒ?¿÷Ó|䣯òòEž1ßÚ@‹×`ƒ/[•Ú"„‡®*´©p¤‹.¦Rx^„ʤtH§»x~LÜìSä3&£ °%½nˆ*¿úÀÊòç.l1NÑ,בø¾K·Ó䦣‡øæo~+§n±äyΡµ´ÛªªÂw5žcqÃÂÂÝn¥rT¡(”âÐÚ"Ei™%)›' GS¶¶\¾²Í /œC ±öVà­À°õÚiQ(¼ ‰4°&ÃËTU @«³LU¸~H7î2›lá¸>­î a“¤Ÿü‹ÏðÈç¿Äd’òÎw½‹;N¿‘n·K§Ó!ËRZí6É,áɧžâo¾x†?»ïaÖVðîoû¾õ[îFkK·ð}Aà‡Øù¤•EJ»{€t: Š|ü°E2› éw|’4%I ²¼"/ O<ñEû¡ßûˆN²¢ ¼8 |øÜ ýJEA2]¤Õ]S’%#Œ.ɳ BǧÐ3Y$Yñ×Àcó >JJ?œ@µïpùÎK‹oùÆ7ÞA«шc„0h]á¸>Bâf!kN!¤C„\º¼Í¿þñÏ…s—xËîâö[NpñÊÒ,ãÖ[oe<#„ ’$a8Òëõ8rä‹‹‹œð÷¾“åKìíî²¼°ÀC?ÌÆÆív¥ÆX„„aÀÞÞišâû>ëëGøÉŸø î~óÛøÏ¿õûœ;¿É,)ÐJ•7{øAmJ´. ¢Z+F»—¨Ê )t¥ÈӮ〠(”*ç³¼3o#`š)ç È—°VTY`-ù£+âFÇ ˜¯P–9Žô€ÊgTÅ”?»ï}ô Þ÷îog©ßçÀò2ÒqèµÛTyÆ'>ñ ¶¶¶8áÏ<ó4Ï>û,®ë‘ç9ƒÁ€Á`@žç8ŽC«Õâ_üØÒ_\棻ÁÞ”¢!=ŒÑøAÍI*•£T†çEQ‹<›2›l3œ§È§”EÊpw[*¥Ô|ÐÃk@é|ö5`Ý«ØDkK–N)U†µ–ªÌq/ˆæ¤È'O'4Z=öö†üÑŒ7ž¾“£’9q£ÁÑ£Gñ<¸Ùâ/z3gž£TU©p\Ÿ0jòÎw¾‹÷½ï½ôz=²,c4ÑívY[[ã~àøw?õ“<ÿü ,,ôqC™ïá8Q£‹t<†m×CH‰ï70ºªÙ¥.™ÎfÂZ[P«EåÜì÷Ãækõ{ "ò²,IfST‘5{€EkÅÂâ:X˜Mw°Æ`MÉ“O=ÍÖÖï|óÛp=—vÐÆè:–O’„ó—(+Å• Þ÷žw°Ði‘ç/oòGøTUÉÿð³´´„”ß÷iµZœ>}'««k<÷•¹í¶Ûé÷ãV5N&ü0ÆuC²lH¥ ZÝ¢¸CU!Í`°g¨Y`ÎUüò ¯y͵[$ÂQ*e¼{‰µ#§ÒÁZÃÞÎy¬5ÄÁç?ÿEâ0bqaÏóH³ ]U¸®Ë—Ïœas°Å¾ëïð™>GYjÞð†»ÐUÎ]wçÀRŸüOyÛÛÞÎÝw½^€Á`@œ8y’sgŸcww‡••,ö×A×ñD©R²tˆµ`:ޢȧ4Û+€¥È.olèùàËy»ILk­uYjÇÚ¨"¥È&TeA©RšíQ‹,Ù£T_9{žC«kÄÓéÏ󸸱1†çΞåÔ©[8uò8ŽpáÂ%ú :í%Ò$! žxê9>õéOqúôL§S²,c6›±¸¸È©“§xæ©Ç)Š’ñhÀ}ÒÙ.Y:$[„~Œ1CYæ`!íÒh-à¸ÃÑTPk†ûzá i‚YY–UYj'ˆ;ÇÇMÜX p×Áš’f³Ëh2a2™°Ú_ÁCU–cp—áx¬ÈY?²†„¼çžwñù/ÆöÎ&£Ñ¨äª¸1„ BdÆ@‘Íl#ˆ„ãøS1e™ÓˆC¢8f¡ÛâîºËÛÜy×i„µTº$ X^åü…Ëœ8~”(t(ò V5ú¾ËÓÏœá—~õÃY?Êúú¦Ó)ÖZºÝ.QqîÜ9Ξyž·ËÝDq‹ p=²ctE»w)6.<놨<Áq|¬ÑŒÁÞî€$-ö}ÿ¾ |}ŒÑ¹Ö:UªDJ‹`¼{‘ª\Äu}Œ5„a‹éx¡¿ÐäèúaÖÂZE´±Ö žÿÊ‹tZ>8Æ›øADåÜwߟóó¿ø¬:Æ÷ÿ÷EÝnÇq‡¤iʇ>øA¤´9r(Š CŸ<0mÆ-éÒ[¹™½—¨Ê× jImÎoF{{äy®¨7AÍWs€×€Jk“NÆ{ \º½#X¦dɸÙà TºÄóè2åàÁC\½@Åëa­Æñ<ŒÎ8rhV§O·B’Ά|ä£ÿ“ÿø+¿Í{Þû^~ìGÇqØÚÚb<S–%I’ðè£ò…/|ž÷ÜóN:.Ýn‡N«ãxô¥TÆhlYÐ[:Æ• O†Øïãú!e™‘d9J•û,°âur†×!SYc²Ê8QÛ éˆnok*´.KžNÒ!ntiw 'O݆Åâù1ªHÐZÅ-ÖÖÐl÷f“]þë‡?Êï~èø‘ùÞ÷¾÷á8ÖÚzמß~øa>þ±ÿÁÛ¿ånN¼™8òé¶"L5c6Ɉ›}ü *fTeN£µH«» BFmuÿ½¼õ-oà®Ó·Ðë/râÄ –[øžƒ*òtTÓ]Rz$ÓAØ¢ª ŒÑé˜0n±3؃z,¸J„n )ež&SÊ¢@ƒ*âFkLÏÃÖ*±®ðƒ˜n§…ëºäÙéxQÇõëh³É#<ÊùЇù¡úaî¹ç;˜Ífôz=¤” ‡C®\Ùàw~çwøâcÃ{îy'n>Jè;,/µé÷š4šm¤c*¤¨sŠe™× 8®çƒh•ãù…ÊÙÞìPò:àz* Uª$˦¢È`)q"›áù1XCžŽñÃZ¶*ò)žcG¥2°·ýþðï³¾~”w¿ûݤiÊ¡C‡R’eY–ñs?û³ì6ùûßù·9tp…8X[YäÐÁ5|×¢ò ºR]!—(î5ûäé]­ç‚M€„¤éŒápl¹Jƒ¿®%`±vVVé¨"cçÊóaŒïÇÙ )%ÉtÏ‹jú)}ª2#ˆ›Xc¨ªÄu]’TóìWÎñ]ÿð=ºŽµ–Á`0_ó‚ÿð‹¿Àx¼Ãû¿ëï²¼vˆþBÅ…ˆ¥Å.Qèá:.e™£u=‰H&Jucª¹<ߣªr %élÈt:b<ÃÕ0øu-@^û`¬Ý˳”dºCuˆ›‹Lö.‘¥#t¥¨Ê,XkÐU‰tü°IUE‚ç7°Ö ŠçÏŸ#K3VWV)Š)%ApàÀî½÷^ü1Þ{Ï;éõh–Å—K]<×â8­K\/¤Û?D/Ô³åù¨"¥T‰ãè²$Ž»DÍerUY®Òà¯k P–ånYi\/B:5ÊÍJ•RdSâfÇõq½X«q¯Õ§Èj5Àu}»»HÇeumuÎ%ËËËL§S>ûÀg¹ùø:ý…¡/8´v€•åe‚ &^U¥B"•§SÕ@«œvw¤Dƒ+Ïã1ŽëÕÙpÙlf¸ªúì»ÁKb­@k-T>Ñ¢»x!$ÃÁy„uKE³½DUæäÙ!@J‰Ö¾á{Yš!¥K#n0Î(KEQé°µ½ÅMëK4šm,uX^^¢×_Æó¨2Ceó¼cØ"O‡¸^ˆ5š0®£Äì„F{ c4ºR)™%i¦*¾Z¹q ‚¬¬*´¶X+Py‚ÅÅ]Ú y6AeÓí½Ë¨|б‚ª#|†Ã ƒÁWOÆ|æÁÇ8sæ ¿ð ?ÏâbH)( Å™3gØÝÙ¤PšÓ·Ÿd:™qôØŒ¥•ÃDQHw(ò„,ÍÝžƒ±–d2@Hgž^s(’Z*“ÒkG$i~= ~Íë«ÐÚdJ);ï ¥:ä)ìn¾€î—]Ö6Ö„pB «+vlo ަlöØlRªœ/?óNÇ‘8ŽƒR ­+ UÆ”ä¥aggÏ÷°Ý.¾¿„±¦ÎLUŠ<DMòt BÅÝyò5&À žG^TdY^POn rì«—€ ÓZWÆJÏq:ýu\/$™îÔkRÖi„ýº!¤0,ö{tÛ1·Ü|ÞR Nßþç¨Òò=ø´;K f¾d>þÉûi4|ß?~?«+}ÂÀ£T9~S•9ã½ €Àóü IÐY¢È¦D…še‚°‰ÖŠ jD-*5a<¡ÊjŸ¾. úŒµYYéÒZÇ“N@©RŒöA‘OðƒÒqñü鸨9/Èó)QÔ"ká³È&8ޤÙh’&Sü .él´Ú šÏsñü ŠðüRå $U>£Ñ>€Ä5Ã, ‚°Ia-¨” lP–y­WšŠt¶K«Ý§¬<¬19õ&¸ïo™µ”EQ‹ZÏÿyÔ¢Õ=H–ìQäc\7DààúM&“)—¯lðÒ‹/’/orþ¥s<ÿ•³\º¼Ã™³çq¤D Ê’áhŒ¸\Ùpˉ›¸í¶S,´¯% }¢¨‹Dóµî"„ ,Ì|#ôüˆJå ºRX£Òcg÷eüªõ¯€H1¦ÔF ¨Ñ¡j7˜ÏÒ!Š;Ù„ jãù>…>I³Ñf<ž²ºÒç¶SG)« •ÞûÎwGU¥ëè®ÓåþÏ~–gÎ<Ç¡C‡Y^YÃs%q«‡Ê3¤¨p¥E)ÖŠbFØèÌCrM‘NH&¥* T‘Ðê® „CUøAŒRÒóNÀd<…ºdß ~}€…BE‰4ãN»]×ù!Ðet¤”¸^„çó„E†®žâ‡-|?¦Ùn‘+ÅåË— ‚€ƒkkd³³ñé8Äq£Ëz¹… Òé)=‚¨‰6°ÖR¤cŒ­½™’²È¢AРϦĭ>¦Ì˜ŒwIòrßöCá¯ÏŒ±•ëxE¥^ÐÀhÍl¼ÄHéâùlýå—'g_:ÀsgÏ’•9~þ »#F£1ëëÇhwÈó Ï(•‘§cףњ뒺±]Õyΰ±€5)%{{»Lg³’šÝ þí¸n‘Ì&Œ†[,,Ü„ëE¨lLé$8N@IJžñÃ&y>a–d$™àòæ€K—·¹tyƒÍÍžúÒ³l vxà‘¿"ŠÂùþQÓÚ=¦³)=ø6.¦*ßN–e;v3½^ I5Çñê¬ô<êó‚˜,©“&žatEµÁìlogJñuÄ_€1¦´ÆÌ”ªÂ%› QÝ&ÅÃÖf“\7À›õï[h·*Ž=„6ÚZxðQ~íׇ{¾ýÍ,..ãù!‹ç:<òù'yò©gø¡ün¿õfn¾åVZíZkÒdH6KQ*«Ëñæ;¿1aÔÁó¹NàP•Žtð}J;¤iZpU |]ôФi6.Šc-a£‡6±¦V^jÞA1F—é`tE©2ŠlFs‘¸µ€ÄpÛ-G8uòïú¶÷ÑlÆ”ª TŽìî ™Lf¿é Èa:® ¸tUÔ¬ÑqÉÓ­î e™3Ú½@ÜìS:)~ØÂªRáûq-Óù1YaPe™q5#ôº4økLšåÛEQÔÉ+°Æ²»y/ˆ £:käÚUÌ(‹ ?jb­Ee%i2¢T9AÓn59|è‡.²Ðí2Ú»‚5í…ÒÜ09~ü®+¨Êº4'Œ:HéÐl-!Ù)$­Î*U•×É•°IµÑÓBˆyþ2·ç/œß—ÂRj/ðº.ð• ÒÕ®*5UUâú!A§wc (òz‡£Æhª¹V/d,y~„ĸ΄£ë븲Â%qä­V“ƒ‡V¹éèš­&¥*ðƒþËuÄaÔ!lt¢6»[gk jY<í¡ò ð£6®ë×¼Dk._ܨæì»Áÿ- À;(+MØè"¥K¶pd]Õ©TŠ@ ŠGºø~­U]ÜBe#z‹‡Xè­àHƒVcߣÛ]‘N6Â"%löìæÖ@RŸYG¨Ï tøêãu¯m€Gìí 9¶~ˆªTW —0jR‚(j#d]ÿo1A]Àè{KËGqýp^ÔÔÂêœ l#å\^wÛô¥K«³0ÿëÒ—ÙdÈd4`pÙ\a2V±ñÕCIDATÚe<e)ÆJ². */ #ifndef QSAPECNGWINDOW_H #define QSAPECNGWINDOW_H #include #include #include "gui/workplane/workplane.h" class QWidget; class QProgressBar; class QMdiArea; class QMdiSubWindow; class QTabWidget; class QTextEdit; class QLineEdit; class QPushButton; class QAction; class QMenu; class QToolBar; class QDockWidget; class QSignalMapper; class QtTreePropertyBrowser; class QUndoView; class QUndoGroup; class QFileSystemModel; class QTreeView; namespace qsapecng { class QLogPolicy; class SchematicEditor; class SideBarModel; class SideBarView; class Item; class QSapecNGWindow: public QMainWindow { Q_OBJECT public: QSapecNGWindow(); protected: void closeEvent(QCloseEvent* event); private slots: void toggleScreenMode(); void configDialog(); void changeWorkspace(); void zoomIn(); void zoomOut(); void zoomNormal(); void fit(); void wave(); void assignNodes(); void resolve(); void plot(int f); void xAxisLogScale(bool log); void yAxisLogScale(bool log); void replot(); void newFile(); void open(const QString& fileName); void open(); void openRecent(); void save(); void saveAs(); void print(); void props(); void bin(); void cut(); void copy(); void paste(); void rotate(); void mirror(); void bringToFront(); void sendToBack(); void license(); void about(); void userDefRequested(); void connectedWireSessionRequested(); void disconnectedWireSessionRequested(); void groundSessionRequested(); void portSessionRequested(); void outSessionRequested(); void voltmeterSessionRequested(); void ammeterSessionRequested(); void labelSessionRequested(); void clearSessionRequested(); void activated(const QModelIndex& index); void sceneSelectionChanged(); void updateMenus(); void updateWindowMenu(); void updatePropertyBrowser(); void updateDocks(); void setActiveSubWindow(QWidget* window); void subWindowActivated(QMdiSubWindow* window); void stackEditor(SchematicEditor* editor); signals: void toggleGrid(bool visible); private: void createLogger(); void createActions(); void createDockWidgets(); void createMenus(); void createToolBars(); void createStatusBar(); void createSideBarDockLayout(); void createPropertyDockLayout(); void createMessageDockLayout(); void createUndoRedoDockLayout(); void createWorkspaceDockLayout(); void readSettings(); void writeSettings(); SchematicEditor* activeEditor(); QMdiSubWindow* findEditor(const QString& fileName); SchematicEditor* createSchematicEditor(); void setupSchematicEditor(SchematicEditor* editor); void updateRecentFileList(const QString& fileName); void loadRecentFileList(); private: QProgressBar* progressBar_; SideBarModel* sideBarModel_; SideBarView* sideBarView_; QtTreePropertyBrowser* treeBrowser_; QLogPolicy* policy_; QTextEdit* logViewer_; QUndoView* undoRedoView_; QUndoGroup* undoRedoGroup_; QLineEdit* workspace_; QFileSystemModel* wfsModel_; QTreeView* wfsView_; QMdiArea* mdiArea_; QSignalMapper* windowMapper_; WorkPlane* workplane_; QTabWidget* central_; QMenu* fileMenu_; QMenu* recentMenu_; QMenu* editMenu_; QMenu* viewMenu_; QMenu* runMenu_; QMenu* workplaneMenu_; QMenu* toolMenu_; QMenu* settingMenu_; QMenu* toolbarMenu_; QMenu* windowMenu_; QMenu* showMenu_; QMenu* helpMenu_; QMenu* sceneMenu_; QToolBar* fileToolBar_; QToolBar* viewToolBar_; QToolBar* runToolBar_; QToolBar* toolToolBar_; QDockWidget* sideBarDock_; QDockWidget* propertyDock_; QDockWidget* messageDock_; QDockWidget* undoRedoDock_; QDockWidget* workspaceDock_; QAction* newAct_; QAction* openAct_; QAction* saveAct_; QAction* saveAsAct_; QAction* printAct_; QAction* quitAct_; QAction* binAct_; QAction* undoAct_; QAction* redoAct_; QAction* propsAct_; QAction* cutAct_; QAction* copyAct_; QAction* pasteAct_; QAction* rotateAct_; QAction* mirrorAct_; QAction* bringToFrontAct_; QAction* sendToBackAct_; QAction* zoomInAct_; QAction* zoomOutAct_; QAction* zoomNormalAct_; QAction* fitAct_; QAction* nodeAct_; QAction* resolveAct_; QAction* waveAct_; QAction* toggleScreenModeAct_; QAction* configureAppAct_; QAction* closeAct_; QAction* closeAllAct_; QAction* tileAct_; QAction* cascadeAct_; QAction* nextAct_; QAction* previousAct_; QAction* separatorAct_; QAction* licenseAct_; QAction* aboutAct_; QAction* aboutQtAct_; QAction* userdefAct_; QAction* connectedWireSessionAct_; QAction* disconnectedWireSessionAct_; QAction* groundSessionAct_; QAction* portSessionAct_; QAction* outSessionAct_; QAction* voltmeterSessionAct_; QAction* ammeterSessionAct_; QAction* labelSessionAct_; QAction* cursorAct_; QAction* toggleGridAct_; QSignalMapper* fMapper_; QAction* magnitudeAct_; QAction* magnitudeRadAct_; QAction* phaseAct_; QAction* phaseRadAct_; QAction* gainAct_; QAction* gainRadAct_; QAction* lossAct_; QAction* lossRadAct_; QAction* zerosPolesAct_; /* plotter noop acts */ QAction* xLogAct_; QAction* yLogAct_; QAction* replotAct_; enum { maxRecentFiles = 10 }; QAction* openRecentActs_[maxRecentFiles]; }; } #endif // QSAPECNGWINDOW_H QSapecNG-2.0.0-source/src/gui/sidebarmodel.h000644 001750 001750 00000003075 11617757645 021444 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SIDEBARMODEL_H #define SIDEBARMODEL_H #include #include #include namespace qsapecng { class SideBarModel: public QAbstractListModel { Q_OBJECT public: SideBarModel(QObject* parent = 0); int rowCount(const QModelIndex& parent = QModelIndex()) const; QVariant data( const QModelIndex& index, int role = Qt::DisplayRole ) const; QVariant headerData( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const; Qt::ItemFlags flags(const QModelIndex& index) const; Qt::DropActions supportedDropActions() const; QStringList mimeTypes() const; QMimeData* mimeData(const QModelIndexList& indexes) const; private: void setupSideBar(); QList< QMap > componentList_; }; } #endif // SIDEBARMODEL_H QSapecNG-2.0.0-source/src/gui/settings.cpp000644 001750 001750 00000006473 11617757645 021212 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "config.h" #include "gui/settings.h" #include #include namespace qsapecng { QPoint Settings::mwPos_ = QPoint(200, 200); QSize Settings::mwSize_ = QSize(400, 400); QByteArray Settings::mwState_; QString Settings::workspace_ = QDir::homePath(); QFont Settings::appFont_; int Settings::logLvl_ = 0; QColor Settings::debugColor_ = QColor(Qt::black); QColor Settings::infoColor_ = QColor(Qt::black); QColor Settings::warningColor_ = QColor(Qt::blue); QColor Settings::errorColor_ = QColor(Qt::red); QColor Settings::fatalColor_ = QColor(Qt::darkRed); QStringList Settings::recentFiles_; void Settings::load() { QSettings settings(SETTINGS_ORGANIZATION, SETTINGS_APPLICATION); settings.beginGroup("Application"); appFont_ = qvariant_cast(settings.value("font")); recentFiles_ = settings.value("recents").toStringList(); workspace_ = settings.value("workspace", QDir::homePath()).toString(); settings.endGroup(); settings.beginGroup("MainWindow"); mwPos_ = settings.value("pos", QPoint(200, 200)).toPoint(); mwSize_ = settings.value("size", QSize(400, 400)).toSize(); mwState_ = settings.value("state").toByteArray(); settings.endGroup(); settings.beginGroup("Log"); logLvl_ = settings.value("logLvl").toInt(); debugColor_ = qvariant_cast(settings.value("debugColor", QColor(Qt::black))); infoColor_ = qvariant_cast(settings.value("infoColor", QColor(Qt::black))); warningColor_ = qvariant_cast(settings.value("warningColor", QColor(Qt::blue))); errorColor_ = qvariant_cast(settings.value("errorColor", QColor(Qt::red))); fatalColor_ = qvariant_cast(settings.value("fatalColor", QColor(Qt::darkRed))); settings.endGroup(); } void Settings::save() { QSettings settings(SETTINGS_ORGANIZATION, SETTINGS_APPLICATION); settings.beginGroup("Application"); settings.setValue("font", appFont_); settings.setValue("recents", recentFiles_); settings.setValue("workspace", workspace_); settings.endGroup(); settings.beginGroup("MainWindow"); settings.setValue("pos", mwPos_); settings.setValue("size", mwSize_); settings.setValue("state", mwState_); settings.endGroup(); settings.beginGroup("Log"); settings.setValue("logLvl", logLvl_); settings.setValue("debugColor", debugColor_); settings.setValue("infoColor", infoColor_); settings.setValue("warningColor", warningColor_); settings.setValue("errorColor", errorColor_); settings.setValue("fatalColor", fatalColor_); settings.endGroup(); } } QSapecNG-2.0.0-source/src/gui/qsapecng.cpp000644 001750 001750 00000002623 11617757645 021144 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/qsapecngwindow.h" #include #include #include #include int main(int argc, char** argv) { QApplication app(argc, argv); // QPixmap pixmap(":/images/qsapecng-splash-ng.png"); QPixmap pixmap(":/images/qsapecng-splash.png"); QSplashScreen splash(pixmap); splash.show(); /* ... // Loading some items splash->showMessage("Loaded modules"); qApp->processEvents(); ... // Establishing connections splash->showMessage("Established connections"); qApp->processEvents(); */ qsapecng::QSapecNGWindow window; window.show(); splash.finish(&window); return app.exec(); } QSapecNG-2.0.0-source/src/gui/sidebarview.cpp000644 001750 001750 00000003427 11617757645 021652 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/sidebarview.h" #include namespace qsapecng { SideBarView::SideBarView(QWidget* parent) : QListView(parent) { setDragEnabled(true); setDragDropMode(QAbstractItemView::DragOnly); setSelectionMode(QAbstractItemView::SingleSelection); setViewMode(QListView::ListMode); setMovement(QListView::Free); setAlternatingRowColors(true); setEditTriggers(QAbstractItemView::NoEditTriggers); setResizeMode(QListView::Adjust); } void SideBarView::startDrag(Qt::DropActions supportedActions) { QDrag* drag = new QDrag(this); QModelIndex index; QModelIndexList indexes = selectedIndexes(); if(!indexes.isEmpty()) index = indexes.first(); if(index.isValid()) { indexes.clear(); indexes << index; drag->setMimeData(model()->mimeData(indexes)); drag->setPixmap(qVariantValue( model()->itemData(index)[Qt::DecorationRole]) ); drag->setHotSpot(QPoint( drag->pixmap().width(), drag->pixmap().height()) ); } drag->exec(supportedActions); clearSelection(); } } QSapecNG-2.0.0-source/src/gui/qsapecng.qrc000644 001750 001750 00000004736 11617757645 021156 0ustar00simonesimone000000 000000 images/qsapecng.png images/qsapecng-ico.ico images/qsapecng-16x16.png images/qsapecng-32x32.png images/qsapecng-64x64.png images/qsapecng-128x128.png images/qsapecng-256x256.png images/qsapecng-splash.png images/qsapecng-splash-ng.png images/symbols/symbols.png images/font.png images/info.png images/license.png images/qt-logo.png images/new.png images/newcmp.png images/open.png images/save.png images/print.png images/cross.png images/zoomin.png images/zoomout.png images/zoomnormal.png images/fit.png images/node.png images/resolve.png images/wave.png images/configuration.png images/symbols/userdef.png images/symbols/resistor.png images/symbols/inductor.png images/symbols/capacitor.png images/symbols/voltage.png images/symbols/current.png images/symbols/vcvs.png images/symbols/ccvs.png images/symbols/vccs.png images/symbols/cccs.png images/symbols/opampl.png images/symbols/transformer.png images/symbols/mutualinductance.png images/cursor.png images/symbols/wire.png images/symbols/wirecross.png images/symbols/ground.png images/symbols/port.png images/symbols/out.png images/symbols/voltmeter.png images/symbols/ammeter.png images/grid.png images/label.png images/undo.png images/redo.png images/cut.png images/copy.png images/paste.png images/rotate.png images/mirror.png images/bringfront.png images/sendback.png images/bin.png QSapecNG-2.0.0-source/src/gui/qlogger.h000644 001750 001750 00000007442 11617757645 020454 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 QLOGGER_H #define QLOGGER_H #include "logger/logpolicy.h" #include "logger/logger.h" #include #include #include typedef sapecng::LogPolicy SapecNGLogger; typedef sapecng::LogPolicy SapecNGLogPolicy; namespace qsapecng { class QLogPolicy: public QObject, public SapecNGLogPolicy { Q_OBJECT public: QLogPolicy(QObject* parent = 0) : QObject(parent), SapecNGLogPolicy() { } ~QLogPolicy() { } void operator()(const std::string& msg) { QString qmsg = QString::fromStdString(msg); if(qmsg.contains(QRegExp("^\\[DEBUG\\]\\s*")) && debugColor_.isValid()) emit textColorChanged(debugColor_); if(qmsg.contains(QRegExp("^\\[INFO\\]\\s*")) && infoColor_.isValid()) emit textColorChanged(infoColor_); if(qmsg.contains(QRegExp("^\\[WARNING\\]\\s*")) && warningColor_.isValid()) emit textColorChanged(warningColor_); if(qmsg.contains(QRegExp("^\\[ERROR\\]\\s*")) && errorColor_.isValid()) emit textColorChanged(errorColor_); if(qmsg.contains(QRegExp("^\\[FATAL\\]\\s*")) && fatalColor_.isValid()) emit textColorChanged(fatalColor_); emit log(qmsg); } inline QColor debugColor() const { return debugColor_; } inline void setDebugColor(QColor color) { debugColor_ = color; } inline QColor infoColor() const { return infoColor_; } inline void setInfoColor(QColor color) { infoColor_ = color; } inline QColor warningColor() const { return warningColor_; } inline void setWarningColor(QColor color) { warningColor_ = color; } inline QColor errorColor() const { return errorColor_; } inline void setErrorColor(QColor color) { errorColor_ = color; } inline QColor fatalColor() const { return fatalColor_; } inline void setFatalColor(QColor color) { fatalColor_ = color; } signals: void log(const QString& msg); void textColorChanged(const QColor& color); private: QColor debugColor_; QColor infoColor_; QColor warningColor_; QColor errorColor_; QColor fatalColor_; }; class QLogger { public: static void setLevel(sapecng::Logger::LogLevel lvl) { sapecng::Logger::setLevel(lvl); } static void setPolicy(QLogPolicy* policy) { sapecng::Logger::setPolicy(policy); } static void debug(const QString& msg) { sapecng::Logger().get(sapecng::Logger::DEBUG) << (QObject::tr("[DEBUG] ") + msg).toStdString(); } static void info(const QString& msg) { sapecng::Logger().get(sapecng::Logger::INFO) << (QObject::tr("[INFO] ") + msg).toStdString(); } static void warning(const QString& msg) { sapecng::Logger().get(sapecng::Logger::WARNING) << (QObject::tr("[WARNING] ") + msg).toStdString(); } static void error(const QString& msg) { sapecng::Logger().get(sapecng::Logger::ERROR) << (QObject::tr("[ERROR] ") + msg).toStdString(); } static void fatal(const QString& msg) { sapecng::Logger().get(sapecng::Logger::FATAL) << (QObject::tr("[FATAL] ") + msg).toStdString(); } }; } #endif // QLOGGER_H QSapecNG-2.0.0-source/src/gui/settings.h000644 001750 001750 00000006365 11617757645 020657 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 SETTINGS_H #define SETTINGS_H #include #include #include #include #include namespace qsapecng { class SettingsManager; /* * developed as Monostate Pattern */ class Settings { friend class SettingsManager; public: Settings() { } void load(); void save(); inline QPoint mwPos() const { return mwPos_; } inline QSize mwSize() const { return mwSize_; } inline QByteArray mwState() const { return mwState_; } inline QString workspace() const { return workspace_; } inline QFont appFont() const { return appFont_; } inline int logLvl() const { return logLvl_; } inline QColor debugColor() const { return debugColor_; } inline QColor infoColor() const { return infoColor_; } inline QColor warningColor() const { return warningColor_; } inline QColor errorColor() const { return errorColor_; } inline QColor fatalColor() const { return fatalColor_; } inline QStringList recentFiles() const { return recentFiles_; } private: static QPoint mwPos_; static QSize mwSize_; static QByteArray mwState_; static QString workspace_; static QFont appFont_; static int logLvl_; static QColor debugColor_; static QColor infoColor_; static QColor warningColor_; static QColor errorColor_; static QColor fatalColor_; static QStringList recentFiles_; }; class SettingsManager { public: inline void setMWPos(const QPoint& pos) { Settings::mwPos_ = pos; } inline void setMWSize(const QSize& size) { Settings::mwSize_ = size; } inline void setMWState(const QByteArray& state) { Settings::mwState_ = state; } inline void setAppFont(const QFont& font) { Settings::appFont_ = font; } inline void setWorkspace(const QString workspace) { Settings::workspace_ = workspace; } inline void setLogLvl(int lvl) { Settings::logLvl_= lvl; } inline void setDebugColor(const QColor& color) { Settings::debugColor_ = color; } inline void setInfoColor(const QColor& color) { Settings::infoColor_ = color; } inline void setWarningColor(const QColor& color) { Settings::warningColor_ = color; } inline void setErrorColor(const QColor& color) { Settings::errorColor_ = color; } inline void setFatalColor(const QColor& color) { Settings::fatalColor_ = color; } inline void setRecentFiles(const QStringList& files) { Settings::recentFiles_ = files; } }; } #endif // SETTINGS_H QSapecNG-2.0.0-source/src/gui/sidebarview.h000644 001750 001750 00000002064 11617757645 021313 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 SIDEBARVIEW_H #define SIDEBARVIEW_H #include #include "gui/editor/schematicscene.h" namespace qsapecng { class SideBarView: public QListView { Q_OBJECT public: SideBarView(QWidget* parent = 0); protected: void startDrag(Qt::DropActions supportedActions); }; } #endif // SIDEBARVIEW_H QSapecNG-2.0.0-source/src/gui/delegate.cpp000644 001750 001750 00000003751 11617757645 021120 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/delegate.h" #include #include namespace qsapecng { QWidget* QDoubleSpinBoxDelegate::createEditor( QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index ) const { QDoubleSpinBox* editor = new QDoubleSpinBox(parent); editor->setMinimum(std::numeric_limits::min()); editor->setMaximum(std::numeric_limits::max()); editor->setDecimals(5); editor->setValue(1.); return editor; } void QDoubleSpinBoxDelegate::setEditorData( QWidget* editor, const QModelIndex& index ) const { double value = index.model()->data(index, Qt::EditRole).toDouble(); QDoubleSpinBox* spinBox = static_cast(editor); spinBox->setValue(value); } void QDoubleSpinBoxDelegate::setModelData( QWidget* editor, QAbstractItemModel* model, const QModelIndex& index ) const { QDoubleSpinBox* spinBox = static_cast(editor); spinBox->interpretText(); double value = spinBox->value(); model->setData(index, value, Qt::EditRole); } void QDoubleSpinBoxDelegate::updateEditorGeometry( QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index ) const { editor->setGeometry(option.rect); } } QSapecNG-2.0.0-source/src/gui/delegate.h000644 001750 001750 00000004110 11617757645 020553 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 DELEGATE_H #define DELEGATE_H #include namespace qsapecng { class NullDelegate: public QItemDelegate { Q_OBJECT public: NullDelegate(QObject* parent = 0) : QItemDelegate(parent) { } QWidget* createEditor( QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index ) const { return 0; } void setEditorData(QWidget* editor, const QModelIndex& index) const { } void setModelData( QWidget* editor, QAbstractItemModel* model, const QModelIndex& index ) const { } void updateEditorGeometry( QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index ) const { } }; class QDoubleSpinBoxDelegate: public QItemDelegate { Q_OBJECT public: QDoubleSpinBoxDelegate(QObject* parent = 0) : QItemDelegate(parent) { } QWidget* createEditor( QWidget* parent, const QStyleOptionViewItem& option, const QModelIndex& index ) const; void setEditorData(QWidget* editor, const QModelIndex& index) const; void setModelData( QWidget* editor, QAbstractItemModel* model, const QModelIndex& index ) const; void updateEditorGeometry( QWidget* editor, const QStyleOptionViewItem& option, const QModelIndex& index ) const; }; } #endif // DELEGATE_H QSapecNG-2.0.0-source/src/gui/qsapecng.rc000644 001750 001750 00000000077 11617757645 020767 0ustar00simonesimone000000 000000 IDI_ICON1 ICON DISCARDABLE "gui/images/qsapecng-ico.ico" QSapecNG-2.0.0-source/src/gui/extendedmdiarea.h000644 001750 001750 00000003354 11617757645 022135 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 EXTENDEDMDIAREA_H #define EXTENDEDMDIAREA_H #include #include #include #include #include #include #include namespace qsapecng { class ExtendedMdiArea: public QMdiArea { Q_OBJECT public: ExtendedMdiArea(QWidget* parent = 0): QMdiArea(parent) { setAcceptDrops(true); } signals: void dropFileEvent(const QString& fileName); protected: void dragEnterEvent(QDragEnterEvent* event) { if(event->mimeData()->hasUrls()) event->accept(); } void dropEvent(QDropEvent* event) { if(event->mimeData()->hasUrls() && event->proposedAction() == Qt::CopyAction) { QList urls = event->mimeData()->urls(); foreach(QUrl url, urls) { QString file = url.toLocalFile(); if(QFile::exists(file)) emit dropFileEvent(file); } event->acceptProposedAction(); } } }; } #endif // EXTENDEDMDIAREA_H QSapecNG-2.0.0-source/src/gui/qsapecngwindow.cpp000644 001750 001750 00000135702 11617757645 022401 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "config.h" #include "gui/qsapecngwindow.h" #include "gui/configdialog/configdialog.h" #include "gui/settings.h" #include "gui/qlogger.h" #include "gui/delegate.h" #include "gui/editor/schematiceditor.h" #include "gui/editor/schematicview.h" #include "gui/editor/schematicscene.h" #include "gui/extendedmdiarea.h" #include "gui/sidebarmodel.h" #include "gui/sidebarview.h" #include "gui/qtsolutions/qtpropertyeditor/QtTreePropertyBrowser" #include "gui/qtsolutions/qtpropertyeditor/QtButtonPropertyBrowser" #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include namespace qsapecng { QSapecNGWindow::QSapecNGWindow() { Settings().load(); windowMapper_ = new QSignalMapper(this); connect(windowMapper_, SIGNAL(mapped(QWidget*)), this, SLOT(setActiveSubWindow(QWidget*))); fMapper_ = new QSignalMapper(this); connect(fMapper_, SIGNAL(mapped(int)), this, SLOT(plot(int))); mdiArea_ = new ExtendedMdiArea; mdiArea_->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); mdiArea_->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); // mdiArea_->setViewMode(QMdiArea::TabbedView); connect(static_cast(mdiArea_), SIGNAL(dropFileEvent(const QString&)), this, SLOT(open(const QString&))); connect(mdiArea_, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(subWindowActivated(QMdiSubWindow*))); connect(mdiArea_, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(sceneSelectionChanged())); connect(mdiArea_, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updateMenus())); connect(mdiArea_, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updatePropertyBrowser())); connect(mdiArea_, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updateDocks())); createLogger(); createDockWidgets(); createActions(); createToolBars(); createStatusBar(); createMenus(); workplane_ = new WorkPlane; workplane_->setContextMenu(workplaneMenu_); workplane_->xAxisLogScale(xLogAct_->isChecked()); workplane_->yAxisLogScale(yLogAct_->isChecked()); workplane_->setData( std::map(), sapecng::metacircuit::expression(), sapecng::metacircuit::expression() ); workplane_->plot(WorkPlane::NOOP); central_ = new QTabWidget; central_->addTab(mdiArea_, tr("Editor")); central_->addTab(workplane_, tr("Workplane")); central_->setTabPosition(QTabWidget::East); connect(central_, SIGNAL(currentChanged(int)), this, SLOT(sceneSelectionChanged())); connect(central_, SIGNAL(currentChanged(int)), this, SLOT(updateMenus())); connect(central_, SIGNAL(currentChanged(int)), this, SLOT(updatePropertyBrowser())); connect(central_, SIGNAL(currentChanged(int)), this, SLOT(updateDocks())); setCentralWidget(central_); sideBarDock_->setObjectName("sideBarDock"); propertyDock_->setObjectName("propertyDock"); messageDock_->setObjectName("messageDock"); undoRedoDock_->setObjectName("undoRedoDock"); workspaceDock_->setObjectName("workspaceDock"); fileToolBar_->setObjectName("fileToolBar"); viewToolBar_->setObjectName("viewToolBar"); runToolBar_->setObjectName("runToolBar"); toolToolBar_->setObjectName("toolToolBar"); readSettings(); sceneSelectionChanged(); updateMenus(); updateDocks(); loadRecentFileList(); setWindowIcon(QIcon(":/images/qsapecng.png")); setWindowTitle(QString("%1 - %2") .arg(PACKAGE_NAME) .arg(PACKAGE_VERSION) ); setUnifiedTitleAndToolBarOnMac(true); } void QSapecNGWindow::closeEvent(QCloseEvent* event) { QStringList session; QList subWs = mdiArea_->subWindowList(); foreach(QMdiSubWindow* subW, subWs) { SchematicEditor* editor = qobject_cast(subW); if(editor && !editor->isUntitled()) session.append(editor->currentFile()); } mdiArea_->closeAllSubWindows(); mdiArea_->activateNextSubWindow(); if(activeEditor()) { event->ignore(); } else { writeSettings(); Settings().save(); event->accept(); } } void QSapecNGWindow::toggleScreenMode() { setWindowState(windowState() ^ Qt::WindowFullScreen); } void QSapecNGWindow::configDialog() { ConfigDialog configDialog(this); configDialog.exec(); Settings settings; QApplication::setFont(settings.appFont()); QLogger::setLevel((sapecng::Logger::LogLevel) settings.logLvl()); policy_->setDebugColor(settings.debugColor()); policy_->setInfoColor(settings.infoColor()); policy_->setWarningColor(settings.warningColor()); policy_->setErrorColor(settings.errorColor()); policy_->setFatalColor(settings.fatalColor()); } void QSapecNGWindow::changeWorkspace() { QString dir = QFileDialog::getExistingDirectory( this, tr("Choose directory"), workspace_->text(), QFileDialog::ShowDirsOnly | QFileDialog::DontResolveSymlinks); if(!dir.isEmpty()) { workspace_->setText(dir); wfsView_->setRootIndex(wfsModel_->setRootPath(dir)); SettingsManager().setWorkspace(dir); } } void QSapecNGWindow::zoomIn() { SchematicEditor* editor = activeEditor(); if(editor) { editor->view().zoomIn(); zoomOutAct_->setEnabled(true); zoomNormalAct_->setEnabled(true); } } void QSapecNGWindow::zoomOut() { SchematicEditor* editor = activeEditor(); if(editor) editor->view().zoomOut(); } void QSapecNGWindow::zoomNormal() { SchematicEditor* editor = activeEditor(); if(editor) editor->view().normalSize(); } void QSapecNGWindow::fit() { SchematicEditor* editor = activeEditor(); if(editor) editor->view().fitToView(); } void QSapecNGWindow::wave() { SchematicEditor* editor = activeEditor(); if(editor) editor->accept(*workplane_) ? central_->setCurrentWidget(workplane_) : central_->setCurrentWidget(mdiArea_) ; } void QSapecNGWindow::assignNodes() { SchematicEditor* editor = activeEditor(); if(editor) { QLogger::info(tr("Assigning nodes...")); editor->scene().assignNodes(); } } void QSapecNGWindow::resolve() { SchematicEditor* editor = activeEditor(); if(editor) { editor->solve(); mdiArea_->setActiveSubWindow(0); mdiArea_->setActiveSubWindow(editor); } } void QSapecNGWindow::plot(int f) { workplane_->plot(f); } void QSapecNGWindow::xAxisLogScale(bool log) { workplane_->xAxisLogScale(log); } void QSapecNGWindow::yAxisLogScale(bool log) { workplane_->yAxisLogScale(log); } void QSapecNGWindow::replot() { workplane_->redraw(); } void QSapecNGWindow::newFile() { central_->setCurrentWidget(mdiArea_); QMdiSubWindow* subWindow = createSchematicEditor(); setActiveSubWindow(subWindow); subWindow->show(); } void QSapecNGWindow::open(const QString& fileName) { if(!fileName.isEmpty()) { central_->setCurrentWidget(mdiArea_); QMdiSubWindow* existing = findEditor(fileName); if(existing) { mdiArea_->setActiveSubWindow(existing); return; } SchematicEditor* editor = createSchematicEditor(); if(editor->loadFile(fileName)) { updateRecentFileList(fileName); statusBar()->showMessage(tr("File loaded"), 2000); mdiArea_->setActiveSubWindow(editor); editor->show(); } else { editor->close(); } } } void QSapecNGWindow::open() { QString fileName = QFileDialog::getOpenFileName(this, tr("Read file"), Settings().workspace(), QString("%1;;%2") .arg(tr("Info files (*.info)")) .arg(tr("XML files (*.xml)")) ); open(fileName); } void QSapecNGWindow::openRecent() { QAction* action = qobject_cast(sender()); if(action) { central_->setCurrentWidget(mdiArea_); QMdiSubWindow* existing = findEditor(action->data().toString()); if(existing) { mdiArea_->setActiveSubWindow(existing); return; } SchematicEditor* editor = createSchematicEditor(); if(editor->loadFile(action->data().toString())) { updateRecentFileList(action->data().toString()); statusBar()->showMessage(tr("File loaded"), 2000); mdiArea_->setActiveSubWindow(editor); editor->show(); } else { editor->close(); } } } void QSapecNGWindow::save() { SchematicEditor* editor = activeEditor(); if(editor && editor->save()) { updateRecentFileList(editor->currentFile()); statusBar()->showMessage(tr("File saved"), 2000); } } void QSapecNGWindow::saveAs() { SchematicEditor* editor = activeEditor(); if(editor && editor->saveAs()) { updateRecentFileList(editor->currentFile()); statusBar()->showMessage(tr("File saved"), 2000); } } void QSapecNGWindow::print() { QPrinter printer; if(central_->currentWidget() == mdiArea_) { SchematicEditor* editor = activeEditor(); if(editor) { if(QPrintDialog(&printer).exec() != QDialog::Accepted) return; QPainter painter(&printer); painter.setRenderHint(QPainter::Antialiasing); editor->scene().render (&painter, QRectF(), editor->scene().itemsBoundingRect()); } } else { if(QPrintDialog(&printer).exec() != QDialog::Accepted) return; workplane_->const_plot().print(printer); } } void QSapecNGWindow::props() { SchematicEditor* editor = activeEditor(); if(editor) { QList items = editor->scene().selectedItems(); QtButtonPropertyBrowser* browser = new QtButtonPropertyBrowser; editor->scene().initializeBrowser(browser); foreach(QGraphicsItem* item, items) if(SchematicScene::itemProperties(item)) browser->addProperty(SchematicScene::itemProperties(item)); QDialog* dialog = new QDialog(this, Qt::Dialog); QDialogButtonBox* buttons = new QDialogButtonBox(QDialogButtonBox::Ok); connect(buttons, SIGNAL(accepted()), dialog, SLOT(accept())); QVBoxLayout* layout = new QVBoxLayout; layout->addWidget(browser); layout->addWidget(buttons); dialog->setAttribute(Qt::WA_DeleteOnClose); dialog->setLayout(layout); dialog->exec(); } } void QSapecNGWindow::bin() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().binSelectedItems(); } void QSapecNGWindow::cut() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().cutSelectedItems(); } void QSapecNGWindow::copy() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().copySelectedItems(); } void QSapecNGWindow::paste() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().pasteItems(); } void QSapecNGWindow::rotate() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().rotateSelectedItems(); } void QSapecNGWindow::mirror() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().mirrorSelectedItems(); } void QSapecNGWindow::bringToFront() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().bringToFrontSelectedItem(); } void QSapecNGWindow::sendToBack() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().sendToBackSelectedItem(); } void QSapecNGWindow::license() { QString title = tr("License"); QString body = "QSapecNG, Qt-based GUI for SapecNG
" "Copyright (C) 2009-2011, Michele Caini
" "
" "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 3 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 " "http://www.gnu.org/licenses/."; QMessageBox::about(this, title, body); } void QSapecNGWindow::about() { QMessageBox::about(this, tr("QSapecNG"), QString("%1%2%3") .arg(tr("QSapecNG: Qt-based GUI for SapecNG\n\n")) .arg(tr("QSapecNG is based in part on the work of ")) .arg(tr("the Qwt project (http://qwt.sf.net).")) ); } void QSapecNGWindow::activated(const QModelIndex& index) { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem( (SchematicScene::SupportedItemType) sideBarModel_->data(index, Qt::UserRole).toInt() ); } void QSapecNGWindow::sceneSelectionChanged() { bool hasSelectedItems = false; SchematicEditor* editor = activeEditor(); if(editor) hasSelectedItems = (editor->scene().selectedItems().size() != 0); propsAct_->setEnabled(hasSelectedItems); binAct_->setEnabled(hasSelectedItems); cutAct_->setEnabled(hasSelectedItems); copyAct_->setEnabled(hasSelectedItems); rotateAct_->setEnabled(hasSelectedItems); mirrorAct_->setEnabled(hasSelectedItems); bringToFrontAct_->setEnabled(hasSelectedItems); sendToBackAct_->setEnabled(hasSelectedItems); } void QSapecNGWindow::updateMenus() { bool hasEditor = (activeEditor() != 0); bool hasWorkplane = (central_->currentWidget() == workplane_); saveAct_->setEnabled(hasEditor); saveAsAct_->setEnabled(hasEditor); printAct_->setEnabled(hasEditor); pasteAct_->setEnabled(hasEditor); if(!hasEditor) undoRedoGroup_->setActiveStack(0); zoomInAct_->setEnabled(hasEditor); zoomOutAct_->setEnabled(hasEditor); zoomNormalAct_->setEnabled(hasEditor); fitAct_->setEnabled(hasEditor); nodeAct_->setEnabled(hasEditor); resolveAct_->setEnabled(hasEditor); waveAct_->setEnabled(hasEditor); cursorAct_->setEnabled(hasEditor); userdefAct_->setEnabled(hasEditor); connectedWireSessionAct_->setEnabled(hasEditor); disconnectedWireSessionAct_->setEnabled(hasEditor); groundSessionAct_->setEnabled(hasEditor); portSessionAct_->setEnabled(hasEditor); outSessionAct_->setEnabled(hasEditor); voltmeterSessionAct_->setEnabled(hasEditor); ammeterSessionAct_->setEnabled(hasEditor); labelSessionAct_->setEnabled(hasEditor); closeAct_->setEnabled(hasEditor); closeAllAct_->setEnabled(hasEditor); tileAct_->setEnabled(hasEditor); cascadeAct_->setEnabled(hasEditor); nextAct_->setEnabled(hasEditor); previousAct_->setEnabled(hasEditor); magnitudeAct_->setEnabled(hasWorkplane); magnitudeRadAct_->setEnabled(hasWorkplane); phaseAct_->setEnabled(hasWorkplane); phaseRadAct_->setEnabled(hasWorkplane); gainAct_->setEnabled(hasWorkplane); gainRadAct_->setEnabled(hasWorkplane); lossAct_->setEnabled(hasWorkplane); lossRadAct_->setEnabled(hasWorkplane); zerosPolesAct_->setEnabled(hasWorkplane); xLogAct_->setEnabled(hasWorkplane); yLogAct_->setEnabled(hasWorkplane); replotAct_->setEnabled(hasWorkplane); } void QSapecNGWindow::updateWindowMenu() { windowMenu_->clear(); windowMenu_->addMenu(showMenu_); windowMenu_->addSeparator(); windowMenu_->addAction(closeAct_); windowMenu_->addAction(closeAllAct_); windowMenu_->addSeparator(); windowMenu_->addAction(tileAct_); windowMenu_->addAction(cascadeAct_); windowMenu_->addSeparator(); windowMenu_->addAction(nextAct_); windowMenu_->addAction(previousAct_); windowMenu_->addAction(separatorAct_); QList windows = mdiArea_->subWindowList(); separatorAct_->setVisible(!windows.isEmpty()); for(int i = 0; i < windows.size(); ++i) { SchematicEditor* child = qobject_cast(windows.at(i)); QString text; if(i < 9) { text = QString("&%1 %2").arg(i + 1) .arg(child->userFriendlyCurrentFile()); } else { text = QString("%1 %2").arg(i + 1) .arg(child->userFriendlyCurrentFile()); } QAction* action = windowMenu_->addAction(text); action->setCheckable(true); action->setChecked(child == activeEditor()); connect(action, SIGNAL(triggered()), windowMapper_, SLOT(map())); windowMapper_->setMapping(action, windows.at(i)); } } void QSapecNGWindow::updatePropertyBrowser() { bool hasEditor = (activeEditor() != 0); treeBrowser_->clear(); if(hasEditor) treeBrowser_->addProperty(activeEditor()->scene().properties()); } void QSapecNGWindow::updateDocks() { bool hasEditor = (activeEditor() != 0); sideBarDock_->widget()->setEnabled(hasEditor); undoRedoDock_->widget()->setEnabled(hasEditor); } void QSapecNGWindow::createLogger() { policy_ = new QLogPolicy(this); policy_->setDebugColor(Qt::black); policy_->setInfoColor(Qt::black); policy_->setWarningColor(Qt::blue); policy_->setErrorColor(Qt::red); QLogger::setLevel(sapecng::Logger::DEBUG); QLogger::setPolicy(policy_); } void QSapecNGWindow::createActions() { newAct_ = new QAction(QIcon(":/images/new.png"), tr("&New"), this); newAct_->setShortcuts(QKeySequence::New); newAct_->setStatusTip(tr("New file")); connect(newAct_, SIGNAL(triggered()), this, SLOT(newFile())); openAct_ = new QAction(QIcon(":/images/open.png"), tr("&Open..."), this); openAct_->setShortcuts(QKeySequence::Open); openAct_->setStatusTip(tr("Open")); connect(openAct_, SIGNAL(triggered()), this, SLOT(open())); saveAct_ = new QAction(QIcon(":/images/save.png"), tr("&Save"), this); saveAct_->setShortcuts(QKeySequence::Save); saveAct_->setStatusTip(tr("Save")); connect(saveAct_, SIGNAL(triggered()), this, SLOT(save())); saveAsAct_ = new QAction(tr("Save &As..."), this); saveAsAct_->setShortcuts(QKeySequence::SaveAs); saveAsAct_->setStatusTip(tr("Save As...")); connect(saveAsAct_, SIGNAL(triggered()), this, SLOT(saveAs())); printAct_ = new QAction(QIcon(":/images/print.png"), tr("&Print"), this); printAct_->setShortcuts(QKeySequence::Print); printAct_->setStatusTip(tr("Print")); connect(printAct_, SIGNAL(triggered()), this, SLOT(print())); quitAct_ = new QAction(QIcon(":/images/cross.png"), tr("&Quit"), this); quitAct_->setShortcut(tr("Ctrl+Q")); quitAct_->setStatusTip(tr("Quit")); connect(quitAct_, SIGNAL(triggered()), qApp, SLOT(closeAllWindows())); binAct_ = new QAction(QIcon(":/images/bin.png"), tr("&Delete"), this); binAct_->setShortcut(QKeySequence::Delete); binAct_->setStatusTip(tr("Delete")); connect(binAct_, SIGNAL(triggered()), this, SLOT(bin())); undoAct_ = new QAction(QIcon(":/images/undo.png"), tr("&Undo"), this); undoAct_->setShortcut(QKeySequence::Undo); undoAct_->setStatusTip(tr("Undo")); undoAct_->setEnabled(undoRedoGroup_->canUndo()); connect(undoAct_, SIGNAL(triggered()), undoRedoGroup_, SLOT(undo())); connect( undoRedoGroup_, SIGNAL(canUndoChanged(bool)), undoAct_, SLOT(setEnabled(bool)) ); redoAct_ = new QAction(QIcon(":/images/redo.png"), tr("&Redo"), this); redoAct_->setShortcut(QKeySequence::Redo); redoAct_->setStatusTip(tr("Redo")); redoAct_->setEnabled(undoRedoGroup_->canRedo()); connect(redoAct_, SIGNAL(triggered()), undoRedoGroup_, SLOT(redo())); connect( undoRedoGroup_, SIGNAL(canRedoChanged(bool)), redoAct_, SLOT(setEnabled(bool)) ); propsAct_ = new QAction(tr("Properties..."), this); propsAct_->setStatusTip(tr("Properties...")); connect(propsAct_, SIGNAL(triggered()), this, SLOT(props())); cutAct_ = new QAction(QIcon(":/images/cut.png"), tr("Cu&t"), this); cutAct_->setShortcut(QKeySequence::Cut); cutAct_->setStatusTip(tr("Cut")); connect(cutAct_, SIGNAL(triggered()), this, SLOT(cut())); copyAct_ = new QAction(QIcon(":/images/copy.png"), tr("&Copy"), this); copyAct_->setShortcut(QKeySequence::Copy); copyAct_->setStatusTip(tr("Copy")); connect(copyAct_, SIGNAL(triggered()), this, SLOT(copy())); pasteAct_ = new QAction(QIcon(":/images/paste.png"), tr("&Paste"), this); pasteAct_->setShortcut(QKeySequence::Paste); pasteAct_->setStatusTip(tr("Paste")); connect(pasteAct_, SIGNAL(triggered()), this, SLOT(paste())); rotateAct_ = new QAction(QIcon(":/images/rotate.png"), tr("R&otate"), this); rotateAct_->setStatusTip(tr("Rotate")); connect(rotateAct_, SIGNAL(triggered()), this, SLOT(rotate())); mirrorAct_ = new QAction(QIcon(":/images/mirror.png"), tr("&Mirror"), this); mirrorAct_->setStatusTip(tr("Mirror")); connect(mirrorAct_, SIGNAL(triggered()), this, SLOT(mirror())); bringToFrontAct_ = new QAction(QIcon(":/images/bringfront.png"), tr("Bring to &front"), this); bringToFrontAct_->setStatusTip(tr("Bring to front")); connect(bringToFrontAct_, SIGNAL(triggered()), this, SLOT(bringToFront())); sendToBackAct_ = new QAction(QIcon(":/images/sendback.png"), tr("Send to &back"), this); sendToBackAct_->setStatusTip(tr("Send to back")); connect(sendToBackAct_, SIGNAL(triggered()), this, SLOT(sendToBack())); zoomInAct_ = new QAction(QIcon(":/images/zoomin.png"), tr("Zoom &In"), this); zoomInAct_->setShortcuts(QKeySequence::ZoomIn); zoomInAct_->setStatusTip(tr("Zoom In")); connect(zoomInAct_, SIGNAL(triggered()), this, SLOT(zoomIn())); zoomOutAct_ = new QAction(QIcon(":/images/zoomout.png"), tr("Zoom &Out"), this); zoomOutAct_->setShortcuts(QKeySequence::ZoomOut); zoomOutAct_->setStatusTip(tr("Zoom Out")); connect(zoomOutAct_, SIGNAL(triggered()), this, SLOT(zoomOut())); zoomNormalAct_ = new QAction(QIcon(":/images/zoomnormal.png"), tr("Zoom &Normal"), this); zoomNormalAct_->setStatusTip(tr("Zoom Normal")); connect(zoomNormalAct_, SIGNAL(triggered()), this, SLOT(zoomNormal())); fitAct_ = new QAction(QIcon(":/images/fit.png"), tr("&Fit"), this); fitAct_->setStatusTip(tr("Fit")); connect(fitAct_, SIGNAL(triggered()), this, SLOT(fit())); nodeAct_ = new QAction(QIcon(":/images/node.png"), tr("Assign &nodes"), this); nodeAct_->setShortcut(tr("F7")); nodeAct_->setStatusTip(tr("Assign nodes")); connect(nodeAct_, SIGNAL(triggered()), this, SLOT(assignNodes())); resolveAct_ = new QAction(QIcon(":/images/resolve.png"), tr("&Resolve..."), this); resolveAct_->setShortcut(tr("F8")); resolveAct_->setStatusTip(tr("Resolve")); connect(resolveAct_, SIGNAL(triggered()), this, SLOT(resolve())); waveAct_ = new QAction(QIcon(":/images/wave.png"), tr("&Workplane..."), this); waveAct_->setShortcut(tr("F9")); waveAct_->setStatusTip(tr("Workplane")); connect(waveAct_, SIGNAL(triggered()), this, SLOT(wave())); toggleScreenModeAct_ = new QAction(tr("F&ull Screen Mode"), this); toggleScreenModeAct_->setStatusTip(tr("Switch to Full Screen Mode")); toggleScreenModeAct_->setCheckable(true); connect(toggleScreenModeAct_, SIGNAL(triggered()), this, SLOT(toggleScreenMode())); configureAppAct_ = new QAction(QIcon(":/images/configuration.png"), tr("&Configure QSapecNG..."), this); configureAppAct_->setStatusTip(tr("Configure QSapecNG...")); connect(configureAppAct_, SIGNAL(triggered()), this, SLOT(configDialog())); closeAct_ = new QAction(tr("&Close"), this); closeAct_->setShortcut(tr("Ctrl+F4")); closeAct_->setStatusTip(tr("Close active window")); connect(closeAct_, SIGNAL(triggered()), mdiArea_, SLOT(closeActiveSubWindow())); closeAllAct_ = new QAction(tr("Close &All"), this); closeAllAct_->setStatusTip(tr("Close all windows")); connect(closeAllAct_, SIGNAL(triggered()), mdiArea_, SLOT(closeAllSubWindows())); tileAct_ = new QAction(tr("&Tile"), this); tileAct_->setStatusTip(tr("Tile")); connect(tileAct_, SIGNAL(triggered()), mdiArea_, SLOT(tileSubWindows())); cascadeAct_ = new QAction(tr("Casca&de"), this); cascadeAct_->setStatusTip(tr("Cascade")); connect(cascadeAct_, SIGNAL(triggered()), mdiArea_, SLOT(cascadeSubWindows())); nextAct_ = new QAction(tr("&Next"), this); nextAct_->setShortcuts(QKeySequence::NextChild); nextAct_->setStatusTip(tr("Next window")); connect(nextAct_, SIGNAL(triggered()), mdiArea_, SLOT(activateNextSubWindow())); previousAct_ = new QAction(tr("&Previous"), this); previousAct_->setShortcuts(QKeySequence::PreviousChild); previousAct_->setStatusTip(tr("Previous window")); connect(previousAct_, SIGNAL(triggered()), mdiArea_, SLOT(activatePreviousSubWindow())); separatorAct_ = new QAction(this); separatorAct_->setSeparator(true); licenseAct_ = new QAction(QIcon(":/images/license.png"), tr("&License"), this); licenseAct_->setStatusTip(tr("Show License")); connect(licenseAct_, SIGNAL(triggered()), this, SLOT(license())); aboutAct_ = new QAction(QIcon(":/images/info.png"), tr("&About"), this); aboutAct_->setStatusTip(tr("About QSapecNG")); connect(aboutAct_, SIGNAL(triggered()), this, SLOT(about())); aboutQtAct_ = new QAction(QIcon(":/images/qt-logo.png"), tr("&Qt"), this); aboutQtAct_->setStatusTip(tr("About Qt")); connect(aboutQtAct_, SIGNAL(triggered()), qApp, SLOT(aboutQt())); userdefAct_ = new QAction(QIcon(":/images/symbols/userdef.png"), tr("&User def"), this); userdefAct_->setStatusTip(tr("User def")); connect(userdefAct_, SIGNAL(triggered()), this, SLOT(userDefRequested())); connectedWireSessionAct_ = new QAction(QIcon(":/images/symbols/wirecross.png"), tr("Wire c&ross"), this); connectedWireSessionAct_->setStatusTip(tr("Wire Cross Session Request")); connect(connectedWireSessionAct_, SIGNAL(triggered()), this, SLOT(connectedWireSessionRequested())); disconnectedWireSessionAct_ = new QAction(QIcon(":/images/symbols/wire.png"), tr("&Wire"), this); disconnectedWireSessionAct_->setStatusTip(tr("Wire Session Request")); connect(disconnectedWireSessionAct_, SIGNAL(triggered()), this, SLOT(disconnectedWireSessionRequested())); groundSessionAct_ = new QAction(QIcon(":/images/symbols/ground.png"), tr("&Ground"), this); groundSessionAct_->setStatusTip(tr("Ground Session Request")); connect(groundSessionAct_, SIGNAL(triggered()), this, SLOT(groundSessionRequested())); portSessionAct_ = new QAction(QIcon(":/images/symbols/port.png"), tr("&Port"), this); portSessionAct_->setStatusTip(tr("Port Session Request")); connect(portSessionAct_, SIGNAL(triggered()), this, SLOT(portSessionRequested())); outSessionAct_ = new QAction(QIcon(":/images/symbols/out.png"), tr("&Out"), this); outSessionAct_->setStatusTip(tr("Out Session Request")); connect(outSessionAct_, SIGNAL(triggered()), this, SLOT(outSessionRequested())); voltmeterSessionAct_ = new QAction(QIcon(":/images/symbols/voltmeter.png"), tr("&Voltmeter"), this); voltmeterSessionAct_->setStatusTip(tr("Voltmeter Session Request")); connect(voltmeterSessionAct_, SIGNAL(triggered()), this, SLOT(voltmeterSessionRequested())); ammeterSessionAct_ = new QAction(QIcon(":/images/symbols/ammeter.png"), tr("&Ammeter"), this); ammeterSessionAct_->setStatusTip(tr("Ammeter Session Request")); connect(ammeterSessionAct_, SIGNAL(triggered()), this, SLOT(ammeterSessionRequested())); labelSessionAct_ = new QAction(QIcon(":/images/label.png"), tr("&Label"), this); labelSessionAct_->setStatusTip(tr("Insert Label")); connect(labelSessionAct_, SIGNAL(triggered()), this, SLOT(labelSessionRequested())); cursorAct_ = new QAction(QIcon(":/images/cursor.png"), tr("&Cursor"), this); cursorAct_->setStatusTip(tr("Clear pending request")); connect(cursorAct_, SIGNAL(triggered()), this, SLOT(clearSessionRequested())); toggleGridAct_ = new QAction(QIcon(":/images/grid.png"), tr("&Toggle grid"), this); toggleGridAct_->setStatusTip(tr("Toggle grid")); toggleGridAct_->setCheckable(true); connect(toggleGridAct_, SIGNAL(triggered(bool)), this, SIGNAL(toggleGrid(bool))); toggleGridAct_->setChecked(true); magnitudeAct_ = new QAction(tr("&Magnitude"), this); magnitudeAct_->setStatusTip(tr("Magnitude function")); connect(magnitudeAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(magnitudeAct_, WorkPlane::MAGNITUDE); magnitudeRadAct_ = new QAction(tr("Magnitude (rad/s)"), this); magnitudeRadAct_->setStatusTip(tr("Magnitude function")); connect(magnitudeRadAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(magnitudeRadAct_, WorkPlane::MAGNITUDE_RAD); phaseAct_ = new QAction(tr("&Phase"), this); phaseAct_->setStatusTip(tr("Phase function")); connect(phaseAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(phaseAct_, WorkPlane::PHASE); phaseRadAct_ = new QAction(tr("Phase (rad/s)"), this); phaseRadAct_->setStatusTip(tr("Phase function")); connect(phaseRadAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(phaseRadAct_, WorkPlane::PHASE_RAD); gainAct_ = new QAction(tr("&Gain"), this); gainAct_->setStatusTip(tr("Gain function")); connect(gainAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(gainAct_, WorkPlane::GAIN); gainRadAct_ = new QAction(tr("Gain (rad/s)"), this); gainRadAct_->setStatusTip(tr("Gain function")); connect(gainRadAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(gainRadAct_, WorkPlane::GAIN_RAD); lossAct_ = new QAction(tr("&Loss"), this); lossAct_->setStatusTip(tr("Loss function")); connect(lossAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(lossAct_, WorkPlane::LOSS); lossRadAct_ = new QAction(tr("Loss (rad/s)"), this); lossRadAct_->setStatusTip(tr("Loss function")); connect(lossRadAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(lossRadAct_, WorkPlane::LOSS_RAD); zerosPolesAct_ = new QAction(tr("&Zeros/Poles"), this); zerosPolesAct_->setStatusTip(tr("Zero/Poles function")); connect(zerosPolesAct_, SIGNAL(triggered()), fMapper_, SLOT(map())); fMapper_->setMapping(zerosPolesAct_, WorkPlane::ZEROS); xLogAct_ = new QAction(tr("&x-axis log scale"), this); xLogAct_->setStatusTip(tr("Toggle x-scale")); xLogAct_->setCheckable(true); connect(xLogAct_, SIGNAL(triggered(bool)), this, SLOT(xAxisLogScale(bool))); xLogAct_->setChecked(true); yLogAct_ = new QAction(tr("&y-axis log scale"), this); yLogAct_->setStatusTip(tr("Toggle y-scale")); yLogAct_->setCheckable(true); connect(yLogAct_, SIGNAL(triggered(bool)), this, SLOT(yAxisLogScale(bool))); yLogAct_->setChecked(false); replotAct_ = new QAction(tr("&Replot"), this); replotAct_->setStatusTip(tr("Replot function")); connect(replotAct_, SIGNAL(triggered()), this, SLOT(replot())); for(int i = 0; i < maxRecentFiles; ++i) { openRecentActs_[i] = new QAction(this); openRecentActs_[i]->setVisible(false); connect(openRecentActs_[i], SIGNAL(triggered()), this, SLOT(openRecent())); } } void QSapecNGWindow::createDockWidgets() { setDockOptions(QMainWindow::AllowTabbedDocks); setTabPosition(Qt::LeftDockWidgetArea, QTabWidget::North); setTabPosition(Qt::RightDockWidgetArea, QTabWidget::North); setTabPosition(Qt::BottomDockWidgetArea, QTabWidget::South); sideBarDock_ = new QDockWidget(tr("Components"), this); sideBarDock_->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); sideBarDock_->setTitleBarWidget(0); createSideBarDockLayout(); sideBarDock_->setFocusPolicy(Qt::NoFocus); propertyDock_ = new QDockWidget(tr("Properties"), this); propertyDock_->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); propertyDock_->setTitleBarWidget(0); createPropertyDockLayout(); messageDock_ = new QDockWidget(tr("Messages"), this); messageDock_->setAllowedAreas(Qt::BottomDockWidgetArea); messageDock_->setTitleBarWidget(0); createMessageDockLayout(); undoRedoDock_ = new QDockWidget(tr("Undo/Redo"), this); undoRedoDock_->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); undoRedoDock_->setTitleBarWidget(0); createUndoRedoDockLayout(); workspaceDock_ = new QDockWidget(tr("Workspace"), this); workspaceDock_->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); workspaceDock_->setTitleBarWidget(0); createWorkspaceDockLayout(); addDockWidget(Qt::LeftDockWidgetArea, workspaceDock_); addDockWidget(Qt::LeftDockWidgetArea, sideBarDock_); addDockWidget(Qt::LeftDockWidgetArea, propertyDock_); addDockWidget(Qt::BottomDockWidgetArea, messageDock_); addDockWidget(Qt::RightDockWidgetArea, undoRedoDock_); tabifyDockWidget(sideBarDock_, propertyDock_); } void QSapecNGWindow::createMenus() { fileMenu_ = menuBar()->addMenu(tr("&File")); fileMenu_->addAction(newAct_); fileMenu_->addAction(openAct_); recentMenu_ = fileMenu_->addMenu(QIcon(":/images/open.png"), tr("Open &Recent")); for(int i = 0; i < maxRecentFiles; ++i) recentMenu_->addAction(openRecentActs_[i]); fileMenu_->addAction(saveAct_); fileMenu_->addAction(saveAsAct_); fileMenu_->addSeparator(); fileMenu_->addAction(printAct_); fileMenu_->addSeparator(); fileMenu_->addAction(quitAct_); editMenu_ = menuBar()->addMenu(tr("&Edit")); editMenu_->addAction(undoAct_); editMenu_->addAction(redoAct_); editMenu_->addSeparator(); editMenu_->addAction(propsAct_); editMenu_->addSeparator(); editMenu_->addAction(cutAct_); editMenu_->addAction(copyAct_); editMenu_->addAction(pasteAct_); editMenu_->addSeparator(); editMenu_->addAction(rotateAct_); editMenu_->addAction(mirrorAct_); editMenu_->addAction(bringToFrontAct_); editMenu_->addAction(sendToBackAct_); editMenu_->addSeparator(); editMenu_->addAction(binAct_); viewMenu_ = menuBar()->addMenu(tr("&View")); viewMenu_->addAction(zoomInAct_); viewMenu_->addAction(zoomOutAct_); viewMenu_->addAction(zoomNormalAct_); viewMenu_->addSeparator(); viewMenu_->addAction(fitAct_); runMenu_ = menuBar()->addMenu(tr("&Run")); runMenu_->addAction(nodeAct_); runMenu_->addAction(resolveAct_); runMenu_->addAction(waveAct_); workplaneMenu_ = menuBar()->addMenu(tr("W&orkPlane")); workplaneMenu_->addAction(magnitudeAct_); workplaneMenu_->addAction(magnitudeRadAct_); workplaneMenu_->addAction(phaseAct_); workplaneMenu_->addAction(phaseRadAct_); workplaneMenu_->addAction(gainAct_); workplaneMenu_->addAction(gainRadAct_); workplaneMenu_->addAction(lossAct_); workplaneMenu_->addAction(lossRadAct_); workplaneMenu_->addAction(zerosPolesAct_); workplaneMenu_->addSeparator(); workplaneMenu_->addAction(xLogAct_); workplaneMenu_->addAction(yLogAct_); workplaneMenu_->addSeparator(); workplaneMenu_->addAction(replotAct_); toolMenu_ = menuBar()->addMenu(tr("&Tools")); toolMenu_->addAction(cursorAct_); toolMenu_->addAction(labelSessionAct_); toolMenu_->addSeparator(); toolMenu_->addAction(userdefAct_); toolMenu_->addAction(connectedWireSessionAct_); toolMenu_->addAction(disconnectedWireSessionAct_); toolMenu_->addAction(groundSessionAct_); toolMenu_->addAction(portSessionAct_); toolMenu_->addAction(outSessionAct_); toolMenu_->addAction(voltmeterSessionAct_); toolMenu_->addAction(ammeterSessionAct_); toolMenu_->addSeparator(); toolMenu_->addAction(toggleGridAct_); settingMenu_ = menuBar()->addMenu(tr("&Settings")); toolbarMenu_ = settingMenu_->addMenu(tr("Toolbars")); toolbarMenu_->addAction(fileToolBar_->toggleViewAction()); toolbarMenu_->addAction(viewToolBar_->toggleViewAction()); toolbarMenu_->addAction(runToolBar_->toggleViewAction()); toolbarMenu_->addAction(toolToolBar_->toggleViewAction()); settingMenu_->addAction(toggleScreenModeAct_); settingMenu_->addSeparator(); settingMenu_->addAction(configureAppAct_); windowMenu_ = menuBar()->addMenu(tr("&Window")); showMenu_ = windowMenu_->addMenu(tr("&Show")); updateWindowMenu(); connect(windowMenu_, SIGNAL(aboutToShow()), this, SLOT(updateWindowMenu())); showMenu_->addAction(sideBarDock_->toggleViewAction()); showMenu_->addAction(propertyDock_->toggleViewAction()); showMenu_->addAction(messageDock_->toggleViewAction()); showMenu_->addAction(undoRedoDock_->toggleViewAction()); showMenu_->addAction(workspaceDock_->toggleViewAction()); menuBar()->addSeparator(); helpMenu_ = menuBar()->addMenu(tr("&Help")); helpMenu_->addAction(licenseAct_); helpMenu_->addSeparator(); helpMenu_->addAction(aboutAct_); helpMenu_->addAction(aboutQtAct_); sceneMenu_ = new QMenu(this); sceneMenu_->addMenu(editMenu_); sceneMenu_->addMenu(viewMenu_); sceneMenu_->addMenu(runMenu_); sceneMenu_->addMenu(toolMenu_); } void QSapecNGWindow::createToolBars() { fileToolBar_ = addToolBar(tr("File")); fileToolBar_->addAction(newAct_); fileToolBar_->addAction(openAct_); fileToolBar_->addAction(saveAct_); fileToolBar_->addSeparator(); fileToolBar_->addAction(printAct_); viewToolBar_ = addToolBar(tr("View")); viewToolBar_->addAction(zoomInAct_); viewToolBar_->addAction(zoomOutAct_); viewToolBar_->addAction(zoomNormalAct_); viewToolBar_->addSeparator(); viewToolBar_->addAction(fitAct_); runToolBar_ = addToolBar(tr("Run")); runToolBar_->addAction(nodeAct_); runToolBar_->addAction(resolveAct_); runToolBar_->addAction(waveAct_); toolToolBar_ = addToolBar(tr("Tools")); toolToolBar_->addAction(cursorAct_); toolToolBar_->addAction(labelSessionAct_); toolToolBar_->addSeparator(); toolToolBar_->addAction(userdefAct_); toolToolBar_->addAction(connectedWireSessionAct_); toolToolBar_->addAction(disconnectedWireSessionAct_); toolToolBar_->addAction(groundSessionAct_); toolToolBar_->addAction(portSessionAct_); toolToolBar_->addAction(outSessionAct_); toolToolBar_->addAction(voltmeterSessionAct_); toolToolBar_->addAction(ammeterSessionAct_); toolToolBar_->addSeparator(); toolToolBar_->addAction(toggleGridAct_); } void QSapecNGWindow::createStatusBar() { statusBar()->showMessage(tr("Ready")); progressBar_ = new QProgressBar; statusBar()->insertPermanentWidget(0, progressBar_, 0); progressBar_->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum); progressBar_->reset(); } void QSapecNGWindow::createSideBarDockLayout() { sideBarModel_ = new SideBarModel(this); sideBarView_ = new SideBarView; sideBarView_->setModel(sideBarModel_); sideBarDock_->setWidget(sideBarView_); connect(sideBarView_, SIGNAL(activated(const QModelIndex&)), this, SLOT(activated(const QModelIndex&))); } void QSapecNGWindow::createPropertyDockLayout() { treeBrowser_ = new QtTreePropertyBrowser(this); treeBrowser_->setAlternatingRowColors(true); treeBrowser_->setResizeMode(QtTreePropertyBrowser::Interactive); treeBrowser_->setPropertiesWithoutValueMarked(true); treeBrowser_->setRootIsDecorated(true); propertyDock_->setWidget(treeBrowser_); } void QSapecNGWindow::createMessageDockLayout() { logViewer_ = new QTextEdit; logViewer_->setAcceptRichText(false); logViewer_->setLineWrapMode(QTextEdit::NoWrap); logViewer_->setWordWrapMode(QTextOption::NoWrap); logViewer_->setFontPointSize(QApplication::font().pointSize() - 1); logViewer_->setReadOnly(true); logViewer_->setUndoRedoEnabled(false); logViewer_->setTextInteractionFlags( Qt::TextSelectableByMouse | Qt::TextSelectableByKeyboard ); connect(policy_, SIGNAL(log(const QString&)), logViewer_, SLOT(append(const QString&))); connect(policy_, SIGNAL(textColorChanged(const QColor&)), logViewer_, SLOT(setTextColor(const QColor&))); messageDock_->setWidget(logViewer_); } void QSapecNGWindow::createUndoRedoDockLayout() { undoRedoGroup_ = new QUndoGroup(this); undoRedoView_ = new QUndoView(undoRedoGroup_, this); undoRedoView_->setCleanIcon(QIcon(":/images/save.png")); undoRedoDock_->setWidget(undoRedoView_); } void QSapecNGWindow::createWorkspaceDockLayout() { QPushButton* wpChange = new QPushButton("..."); connect(wpChange, SIGNAL(clicked(bool)), this, SLOT(changeWorkspace())); workspace_ = new QLineEdit(Settings().workspace()); workspace_->setReadOnly(true); wfsModel_ = new QFileSystemModel; wfsView_ = new QTreeView; QStringList filters; filters << "*.info"; filters << "*.xml"; wfsModel_->setNameFilters(filters); wfsModel_->setRootPath(workspace_->text()); wfsModel_->setResolveSymlinks(false); wfsView_->setModel(wfsModel_); wfsView_->setDragEnabled(true); wfsView_->setDragDropMode(QAbstractItemView::DragOnly); wfsView_->setRootIndex(wfsModel_->index(wfsModel_->rootPath())); wfsView_->setSelectionMode(QAbstractItemView::SingleSelection); wfsView_->sortByColumn(0, Qt::AscendingOrder); wfsView_->setAlternatingRowColors(true); wfsView_->setSortingEnabled(true); QGridLayout* wpLayout = new QGridLayout;; wpLayout->addWidget(workspace_, 0, 0); wpLayout->addWidget(wpChange, 0, 1); wpLayout->addWidget(wfsView_, 1, 0, 1, 2); QWidget* widget = new QWidget; widget->setLayout(wpLayout); workspaceDock_->setWidget(widget); } void QSapecNGWindow::readSettings() { Settings settings; QApplication::setFont(settings.appFont()); move(settings.mwPos()); resize(settings.mwSize()); restoreState(settings.mwState()); QLogger::setLevel((sapecng::Logger::LogLevel) settings.logLvl()); policy_->setDebugColor(settings.debugColor()); policy_->setInfoColor(settings.infoColor()); policy_->setWarningColor(settings.warningColor()); policy_->setErrorColor(settings.errorColor()); policy_->setFatalColor(settings.fatalColor()); } void QSapecNGWindow::writeSettings() { SettingsManager manager; manager.setMWPos(pos()); manager.setMWSize(size()); manager.setMWState(saveState()); } SchematicEditor* QSapecNGWindow::activeEditor() { if(mdiArea_->activeSubWindow()) { SchematicEditor* editor = qobject_cast(mdiArea_->activeSubWindow()); if(editor && !editor->isRunning()) return editor; } return 0; } QMdiSubWindow* QSapecNGWindow::findEditor(const QString& fileName) { QString canonicalFilePath = QFileInfo(fileName).canonicalFilePath(); foreach (QMdiSubWindow* window, mdiArea_->subWindowList()) { SchematicEditor* child = qobject_cast(window); if (child->currentFile() == canonicalFilePath) return window; } return 0; } SchematicEditor* QSapecNGWindow::createSchematicEditor() { QApplication::setOverrideCursor(Qt::WaitCursor); SchematicEditor* editor = new SchematicEditor; setupSchematicEditor(editor); QApplication::restoreOverrideCursor(); return editor; } void QSapecNGWindow::setupSchematicEditor(SchematicEditor* editor) { editor->scene().initializeBrowser(treeBrowser_); editor->scene().setGridVisible(toggleGridAct_->isChecked()); editor->scene().setContextMenu(sceneMenu_); undoRedoGroup_->addStack(editor->scene().undoRedoStack()); editor->scene().undoRedoStack()->setActive(true); connect(editor, SIGNAL(stackEditor(SchematicEditor*)), this, SLOT(stackEditor(SchematicEditor*))); connect(&(editor->scene()), SIGNAL(selectionChanged()), this, SLOT(sceneSelectionChanged())); connect(this, SIGNAL(toggleGrid(bool)), &(editor->scene()), SLOT(setGridVisible(bool))); editor->setAttribute(Qt::WA_DeleteOnClose); editor->setWindowIcon(QIcon(":/images/grid.png")); mdiArea_->addSubWindow(editor, Qt::SubWindow); } void QSapecNGWindow::updateRecentFileList(const QString& fileName) { QStringList files = Settings().recentFiles(); files.removeAll(fileName); files.prepend(fileName); while (files.size() > maxRecentFiles) files.removeLast(); SettingsManager().setRecentFiles(files); loadRecentFileList(); } void QSapecNGWindow::loadRecentFileList() { QStringList files = Settings().recentFiles(); int numRecentFiles = qMin(files.size(), (int) maxRecentFiles); for (int i = 0; i < numRecentFiles; ++i) { QString text = QString("&%1 %2").arg(i + 1).arg(files[i]); openRecentActs_[i]->setText(text); openRecentActs_[i]->setData(files[i]); openRecentActs_[i]->setVisible(true); } for (int j = numRecentFiles; j < maxRecentFiles; ++j) openRecentActs_[j]->setVisible(false); } void QSapecNGWindow::userDefRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setUserDefRequest(); } void QSapecNGWindow::connectedWireSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setWireSessionRequest(true); } void QSapecNGWindow::disconnectedWireSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setWireSessionRequest(false); } void QSapecNGWindow::groundSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem(SchematicScene::GroundItemType); } void QSapecNGWindow::portSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem(SchematicScene::PortItemType); } void QSapecNGWindow::outSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem(SchematicScene::OutItemType); } void QSapecNGWindow::voltmeterSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem(SchematicScene::VoltmeterItemType); } void QSapecNGWindow::ammeterSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().setActiveItem(SchematicScene::AmmeterItemType); } void QSapecNGWindow::labelSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().createLabel(); } void QSapecNGWindow::clearSessionRequested() { SchematicEditor* editor = activeEditor(); if(editor) editor->scene().resetStatus(); } void QSapecNGWindow::setActiveSubWindow(QWidget* window) { if (!window) return; mdiArea_->setActiveSubWindow(qobject_cast(window)); } void QSapecNGWindow::subWindowActivated(QMdiSubWindow* window) { progressBar_->setRange(0, 1); progressBar_->reset(); if(window) { SchematicEditor* editor = qobject_cast(window); if(editor && editor->isRunning()) { progressBar_->setRange(0, 0); undoRedoGroup_->setActiveStack(0); } } } void QSapecNGWindow::stackEditor(SchematicEditor* editor) { setupSchematicEditor(editor); central_->setCurrentWidget(mdiArea_); setActiveSubWindow(editor); editor->show(); statusBar()->showMessage(tr("Component loaded"), 2000); } } QSapecNG-2.0.0-source/src/gui/sidebarmodel.cpp000644 001750 001750 00000015703 11617757645 022000 0ustar00simonesimone000000 000000 /* QSapecNG - Qt based SapecNG GUI front-end Copyright (C) 2009, Michele Caini 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 3 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 "gui/sidebarmodel.h" #include "gui/editor/schematicscene.h" #include #include namespace qsapecng { SideBarModel::SideBarModel(QObject* parent) : QAbstractListModel(parent) { setSupportedDragActions(Qt::CopyAction); setupSideBar(); } int SideBarModel::rowCount(const QModelIndex& parent) const { return componentList_.size(); } QVariant SideBarModel::data(const QModelIndex& index, int role) const { if(index.isValid()) return (componentList_.at(index.row()))[role]; return QVariant(); } QVariant SideBarModel::headerData( int section, Qt::Orientation orientation, int role ) const { if(orientation != Qt::Horizontal) return QVariant(); return tr("Components"); } Qt::ItemFlags SideBarModel::flags(const QModelIndex& index) const { Qt::ItemFlags defaultFlags = QAbstractListModel::flags(index); if(index.isValid()) return Qt::ItemIsDragEnabled | defaultFlags; else return defaultFlags; } Qt::DropActions SideBarModel::supportedDropActions() const { return Qt::IgnoreAction; } QStringList SideBarModel::mimeTypes() const { QStringList types; types << "application/qsapecng-itemtype"; return types; } QMimeData* SideBarModel::mimeData(const QModelIndexList& indexes) const { QMimeData* mimeData = new QMimeData; QModelIndex index; if(!indexes.isEmpty()) index = indexes.first(); if(index.isValid()) { int type = (componentList_.at(index.row())[Qt::UserRole]).toInt(); QByteArray encodedData = QByteArray::number(type); mimeData->setData("application/qsapecng-itemtype", encodedData); } return mimeData; } void SideBarModel::setupSideBar() { QMap resistorItemData; resistorItemData[Qt::DisplayRole] = tr("Resistor"); resistorItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/resistor.png"); resistorItemData[Qt::ToolTipRole] = tr("Resistor Item"); resistorItemData[Qt::UserRole] = SchematicScene::ResistorItemType; componentList_.append(resistorItemData); QMap conductanceItemData; conductanceItemData[Qt::DisplayRole] = tr("Conductance"); conductanceItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/resistor.png"); conductanceItemData[Qt::ToolTipRole] = tr("Conductance Item"); conductanceItemData[Qt::UserRole] = SchematicScene::ConductanceItemType; componentList_.append(conductanceItemData); QMap inductorItemData; inductorItemData[Qt::DisplayRole] = tr("Inductor"); inductorItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/inductor.png"); inductorItemData[Qt::ToolTipRole] = tr("Inductor Item"); inductorItemData[Qt::UserRole] = SchematicScene::InductorItemType; componentList_.append(inductorItemData); QMap capacitorItemData; capacitorItemData[Qt::DisplayRole] = tr("Capacitor"); capacitorItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/capacitor.png"); capacitorItemData[Qt::ToolTipRole] = tr("Capacitor Item"); capacitorItemData[Qt::UserRole] = SchematicScene::CapacitorItemType; componentList_.append(capacitorItemData); QMap voltageSourceItemData; voltageSourceItemData[Qt::DisplayRole] = tr("Voltage Source"); voltageSourceItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/voltage.png"); voltageSourceItemData[Qt::ToolTipRole] = tr("Voltage Source Item"); voltageSourceItemData[Qt::UserRole] = SchematicScene::VoltageSourceItemType; componentList_.append(voltageSourceItemData); QMap currentSourceItemData; currentSourceItemData[Qt::DisplayRole] = tr("Current Source"); currentSourceItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/current.png"); currentSourceItemData[Qt::ToolTipRole] = tr("Current Source Item"); currentSourceItemData[Qt::UserRole] = SchematicScene::CurrentSourceItemType; componentList_.append(currentSourceItemData); QMap vcvsItemData; vcvsItemData[Qt::DisplayRole] = tr("VCVS"); vcvsItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/vcvs.png"); vcvsItemData[Qt::ToolTipRole] = tr("VCVS Item"); vcvsItemData[Qt::UserRole] = SchematicScene::VCVSItemType; componentList_.append(vcvsItemData); QMap ccvsItemData; ccvsItemData[Qt::DisplayRole] = tr("CCVS"); ccvsItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/ccvs.png"); ccvsItemData[Qt::ToolTipRole] = tr("CCVS Item"); ccvsItemData[Qt::UserRole] = SchematicScene::CCVSItemType; componentList_.append(ccvsItemData); QMap vccsItemData; vccsItemData[Qt::DisplayRole] = tr("VCCS"); vccsItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/vccs.png"); vccsItemData[Qt::ToolTipRole] = tr("VCCS Item"); vccsItemData[Qt::UserRole] = SchematicScene::VCCSItemType; componentList_.append(vccsItemData); QMap cccsItemData; cccsItemData[Qt::DisplayRole] = tr("CCCS"); cccsItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/cccs.png"); cccsItemData[Qt::ToolTipRole] = tr("CCCS Item"); cccsItemData[Qt::UserRole] = SchematicScene::CCCSItemType; componentList_.append(cccsItemData); QMap opAmplItemData; opAmplItemData[Qt::DisplayRole] = tr("Operational Amplifier"); opAmplItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/opampl.png"); opAmplItemData[Qt::ToolTipRole] = tr("Operational Amplifier Item"); opAmplItemData[Qt::UserRole] = SchematicScene::OpAmplItemType; componentList_.append(opAmplItemData); QMap transformerItemData; transformerItemData[Qt::DisplayRole] = tr("Ideal Transformer"); transformerItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/transformer.png"); transformerItemData[Qt::ToolTipRole] = tr("Ideal Transformer Item"); transformerItemData[Qt::UserRole] = SchematicScene::TransformerItemType; componentList_.append(transformerItemData); QMap mutualInductanceItemData; mutualInductanceItemData[Qt::DisplayRole] = tr("Mutual Inductance"); mutualInductanceItemData[Qt::DecorationRole] = QPixmap(":/images/symbols/mutualinductance.png"); mutualInductanceItemData[Qt::ToolTipRole] = tr("Mutual Inductance Item"); mutualInductanceItemData[Qt::UserRole] = SchematicScene::MutualInductanceItemType; componentList_.append(mutualInductanceItemData); } } QSapecNG-2.0.0-source/src/images/sapecng-32x32.png000644 001750 001750 00000002353 11617757645 022225 0ustar00simonesimone000000 000000 ‰PNG  IHDR szzôsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<hIDATX…íVkHcG>7Y£•h¼^ÙªU6iE7¸*…&«HZˆ¤«?´ÂJ7U\ŠÖA«T«­e­Õˆõ”Š…€±âZÅhZÄ65‚–4Jÿ„J¬øJZ«¹yøÞ;Ó?Mp·,ë£eañƒÃ9ÜoÎ7s†9‡Àóç™F¿p%๰ººJ-//åßk¾ÁðððKf³y“Ëåb„°, ,Ë,Ë‚o~êK0 óˆ!{{{àr¹c Ea½^ÿÔ ú°,+òz½ V«¹Û7€L&Cyyy?Y­Ö×ÃÃÃgáø „B <rhhhÿ¬¿š¦cX–½”€ääd‡Õjýóôº>¬¯¯ 4<11Ñ™””´àt:ß´Ùl¿p¿0›Íƒn·›hkksŸ&jµÚD߸££ã‘‹ÕØØx×n·¾yDDÄ÷»»»œÒÒRÏ×××÷ÆÒÒ’èøø8Z§Ó}3000ÝÓÓó‡Édú„¢¨F¢»»û[“É”'‹-Ë )))Ûkkk/&$$PD*•N»\®[f³98++k‹$Éë4Ms ¢¢‚{kjjêÎÎNÆîß¿´Z­„$Iœ––†š››ÃÆÇÇß­¯¯gbbb0Ænܸ"##±\.?IHH@æíÂÂB¶¸¸ø$==‡‹ŠŠìcØØØà.--…cŒÁgƒ‹1†kÁÁÁ T*Ç ÅW\.QEµ··7ÔÖÖ~<11±xxsssMÓÐÐÐ`àñxàv»A(z[[[…7oÞüËl6¾ººz=>>^»½½ $IîÄÆÆ²,ËÒ§Ó'•JY¢¦¦ÆÃçóRSS¿´ÙlwÄbñk###¿ …ÂO>|Xv»x<±¸¸HˆÅbäõz‰°°0p8°¹¹Iäææ²|>ººº"##‘J¥Ú[XX¿wïÞ³³³ÒÌÌÌï*++s¿œ\£Ñت×ë›WVVnmmmñwvvÞ ­¯««ûÈb±¼ÊãñŒ2™Líñxn%''·;ŽPŸ‘‘ñI’ÛJ¥r@&“}f0ê&''?4›½½½EGGGÓV«õ®D"ù¹ªªê_Áü9Q«Õ3*• ŸÎÓy­££ã‡‚‚T^^ÞzVŽÿ©ÝAAA—êÏôz½,??_ÑßßÿÁY9~çrµéààJJJfÎÃñ¿XÇ…"šššX†aàääÄWüEÉçg†Œ1á;Jš¦ŸèI .Óß¾}›O’ä+²ÀÀÀ÷4Í˹¹¹ÞìììÔœœœ_ÿw§133:55µ/‰,UUU‰OgüƒËÜúÇ­ººúÎy9ÿÙ \ÏgOx%àJÀyð7@íÊîH]\‹IEND®B`‚QSapecNG-2.0.0-source/src/images/sapecng-16x16.png000644 001750 001750 00000001051 11617757645 022223 0ustar00simonesimone000000 000000 ‰PNG  IHDRóÿasBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î<¦IDAT8Í’1hâ`Çßc5½`ä”»¡(ê"ºwC c¹íV .%£Ò!“D°ŽR("wƒ‹N.­TèQ/ªmBò}_òuëÐ ¥8´xÓãýàýø#Æln«ëàTU½Rê"„ J)gÛ¶cìÁ»g³¿^¯!›ÍþQåû Àr¹ÜK&“b>Ÿßh´Z­þ^­VŽ¢(?jµÚ®,Ë€ÔétŽ{½ÞQ<¿žL&ápX4 ãÖëõžw»Ý“D"që÷ûBˆŽ¢’$ù4M“t]ßÉår7üb±ø)Ëòá|>ÿeFªÝnK™LÆ ûº®#J)/Âʲ¬O£ÑèK«ÕrG£QûI¢(ŠWãñX%„| …B7©Tê!ôX$qšÍægMÓ¾ƒÁ¿±Xì¾^¯kÃáÐóôc J¥n4^ÆlUUOËåò¿M;ăJ¥òßçó=B8Œ1‡1æMÓLÓôX–ÅO§S¾ßïó¶m;ϣת\(8—Ëe¤Óé³b±xðfÀkyÿ*o x»>ãÓ-q'IEND®B`‚QSapecNG-2.0.0-source/src/images/sapecng.ico000644 001750 001750 00000130006 11617757645 021431 0ustar00simonesimone000000 000000 ‘K ð¯(‘– ì©  ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ“““ÿÿ ÿDDDÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”””ÿHHHÿFFFÿZZZÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿ———ÿIIIÿ ÿÿÿÿ!!!ÿbbbÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËËËÿ•••ÿŒŒŒÿŠŠŠÿˆˆˆÿˆˆˆÿ‰‰‰ÿŠŠŠÿÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËËËÿ™™™ÿZZZÿ!!!ÿÿÿ ÿ ÿ ÿÿÿVVVÿ”””ÿžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ½½½ÿÿ‰‰‰ÿtttÿGGGÿ***ÿÿÿ===ÿ„„„ÿˆˆˆÿˆˆˆÿŒŒŒÿžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓÓÓÿšššÿXXXÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿîîîÿîîîÿîîîÿãããÿßßßÿßßßÿÕÕÕÿ¤¤¤ÿ¢¢¢ÿ¢¢¢ÿ›››ÿ•••ÿ“““ÿ“““ÿŠŠŠÿ………ÿÿ|||ÿzzzÿsssÿqqqÿmmmÿlllÿgggÿdddÿaaaÿZZZÿWWWÿSSSÿOOOÿNNNÿIIIÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿaaaÿXXXÿTTTÿRRRÿQQQÿOOOÿPPPÿNNNÿNNNÿLLLÿLLLÿKKKÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿHHHÿHHHÿHHHÿHHHÿHHHÿHHHÿHHHÿHHHÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿ"""ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\ÿ]]]ÿ‡‡‡ÿ„„„ÿ‚‚‚ÿÿ~~~ÿ{{{ÿuuuÿqqqÿqqqÿpppÿnnnÿnnnÿnnnÿnnnÿnnnÿjjjÿjjjÿhhhÿgggÿgggÿgggÿgggÿgggÿfffÿdddÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ^^^ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿTTTÿ###ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿáááÿàààÿàààÿàààÿàààÿàààÿàààÿàààÿßßßÿÒÒÒÿÒÒÒÿÒÒÒÿÒÒÒÿÒÒÒÿÒÒÒÿÒÒÒÿÒÒÒÿÐÐÐÿÆÆÆÿÆÆÆÿÆÆÆÿÆÆÆÿÆÆÆÿÆÆÆÿÆÆÆÿÆÆÆÿÃÃÃÿ»»»ÿ»»»ÿ»»»ÿ»»»ÿ»»»ÿ»»»ÿ»»»ÿ»»»ÿ¸¸¸ÿ±±±ÿ±±±ÿ±±±ÿ±±±ÿ±±±ÿ±±±ÿ±±±ÿ±±±ÿ®®®ÿ©©©ÿ©©©ÿ©©©ÿ©©©ÿ©©©ÿ©©©ÿ©©©ÿ©©©ÿ¦¦¦ÿ   ÿ$$$ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ&&&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ'''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ)))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ)))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰ÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ***ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚ÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ---ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ±±±ÿ111ÿ ÿÈÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿXXXÿ\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ@@@ÿ"""ÿ………ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿXXXÿ[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‰‰‰ÿ+++ÿaaaÿÿâââÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmmmÿXXXÿYYYÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼¼¼ÿrrrÿ111ÿ666ÿcccÿ¦¦¦ÿêêêÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÿeeeÿXXXÿXXXÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿ°°°ÿJJJÿ,,,ÿ%%%ÿBBBÿÐÐÐÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÐÐÐÿ­­­ÿkkkÿFFFÿ===ÿBBBÿTTTÿ™™™ÿ°°°ÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿ———ÿÿÿÿâââÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄÄÄÿ………ÿOOOÿDDDÿ===ÿ===ÿ<<<ÿ<<<ÿ===ÿ@@@ÿLLLÿ```ÿ©©©ÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ¼¼¼ÿ€€€ÿ@@@ÿÿ ÿzzzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿ´´´ÿeeeÿSSSÿ[[[ÿoooÿ‰‰‰ÿ“““ÿ¡¡¡ÿ˜˜˜ÿ‘‘‘ÿ}}}ÿcccÿTTTÿZZZÿ‚‚‚ÿÁÁÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ¼¼¼ÿ‚‚‚ÿ???ÿ+++ÿ111ÿyyyÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚÚÚÿMMMÿ)))ÿbbbÿŽŽŽÿØØØÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿªªªÿsssÿMMMÿ$$$ÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÃÿ†††ÿ>>>ÿ+++ÿ333ÿvvvÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿáááÿ[[[ÿ ÿdddÿžžžÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÿ„„„ÿ999ÿ$$$ÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿeeeÿ@@@ÿ111ÿ ÿ"""ÿ888ÿMMMÿ•••ÿ¾¾¾ÿýýýÿýýýÿ999ÿ ÿÿÿÿ~~~ÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÃÿ+++ÿ ÿÿÿÿ!!!ÿ„„„ÿºººÿPPPÿÿÿÿ ÿ///ÿNNNÿÛÛÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕÕÕÿ“““ÿCCCÿ+++ÿ000ÿnnnÿ­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêêêÿ«««ÿ………ÿOOOÿAAAÿ///ÿÿ ÿ***ÿHHHÿRRRÿkkkÿ£££ÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿÿ***ÿ```ÿ¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿŠŠŠÿ;;;ÿ>>>ÿ»»»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñññÿ222ÿÿ###ÿ<<<ÿ]]]ÿcccÿMMMÿ999ÿ ÿÿ½½½ÿÿÿÿÿŸŸŸÿ"""ÿÿÿ'''ÿ¸¸¸ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìììÿÿ ÿÿÿ ÿ???ÿ½½½ÿÉÉÉÿ¤¤¤ÿ###ÿÿÿÿ>>>ÿ»»»ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿñññÿ¥¥¥ÿ000ÿ%%%ÿ---ÿ^^^ÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑÑÑÿ{{{ÿÿÿ888ÿAAAÿ^^^ÿ˜˜˜ÿ¨¨¨ÿŒŒŒÿaaaÿHHHÿÿ ÿXXXÿÙÙÙÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®ÿ===ÿMMMÿ¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿåååÿ¨¨¨ÿsssÿ===ÿ222ÿ666ÿLLLÿ™™™ÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿ|||ÿ@@@ÿjjjÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿ———ÿÿÿeeeÿ´´´ÿÿÿÿÿÿÿÿÿöööÿŠŠŠÿÿÿ%%%ÿ¹¹¹ÿþþþÿˆˆˆÿÿÿ{{{ÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¿¿¿ÿÿÿÿ"""ÿ···ÿÿÿÿÿÿÿÿÿÿÿÿÿ///ÿÿÿÿ£££ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿæææÿ“““ÿ ÿÿ???ÿ©©©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßßßÿ___ÿ ÿÿ111ÿnnnÿ×××ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÇÇÇÿ¥¥¥ÿ%%%ÿÿÿ½½½ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿZZZÿ<<<ÿ”””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿåååÿ³³³ÿžžžÿ™™™ÿ———ÿ˜˜˜ÿ›››ÿ¥¥¥ÿ±±±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ»»»ÿ\\\ÿHHHÿ­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿKKKÿÿ@@@ÿ²²²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿ+++ÿÿ ÿƒƒƒÿÿÿÿÿÁÁÁÿ[[[ÿ&&&ÿzzzÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¹¹¹ÿÿÿ ÿfffÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿ777ÿÿÿÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿ‹‹‹ÿÿÿBBBÿŸŸŸÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚ÿ ÿÿ$$$ÿˆˆˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿ®®®ÿ"""ÿÿÂÂÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬ÿ===ÿRRRÿÔÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ›››ÿIIIÿvvvÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿ+++ÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ888ÿÿÿ999ÿÿÿÿÿÿÿÿÿ•••ÿBBBÿ]]]ÿÛÛÛÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ………ÿ ÿÿÿ±±±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ®®®ÿNNNÿ+++ÿ...ÿSSSÿžžžÿàààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©ÿ"""ÿÿ ÿrrrÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿšššÿ;;;ÿ¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”””ÿ:::ÿ„„„ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉÉÉÿVVVÿOOOÿÖÖÖÿÿÿÿÿÿÿÿÿŒŒŒÿ{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¬¬¬ÿ,,,ÿÿÿ***ÿÿÿÿÿÿÿÿÿµµµÿdddÿOOOÿ­­­ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿ555ÿÿÿYYYÿöööÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFFFÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ®®®ÿDDDÿ+++ÿ111ÿXXXÿžžžÿèèèÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnnnÿ ÿÿ###ÿÃÃÃÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿ¸¸¸ÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlllÿDDDÿ¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbbbÿBBBÿ¬¬¬ÿÿÿÿÿÿÿÿÿÔÔÔÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÅÅÿÿ ÿÿÿ333ÿÿÿÿÿÿÿÿÿûûûÿ………ÿ]]]ÿ{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzzzÿÿÿÿ¬¬¬ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿìììÿ¥¥¥ÿ>>>ÿ***ÿ333ÿ[[[ÿ¡¡¡ÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâââÿAAAÿÿÿ\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿøøøÿoooÿUUUÿ¼¼¼ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿqqqÿLLLÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨¨¨ÿmmmÿÿÿÿÿ‘‘‘ÿÿÿÿÿÿÿÿÿÿÿÿÿ°°°ÿkkkÿjjjÿqqqÿxxxÿbbbÿEEEÿ)))ÿÿÿÿ777ÿàààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMÿÿÿÿ+++ÿ¡¡¡ÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿ¢¢¢ÿ@@@ÿ+++ÿ111ÿ[[[ÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¦¦¦ÿ(((ÿÿÿ°°°ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿnnnÿ]]]ÿÆÆÆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿ]]]ÿ¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿÿ+++ÿÿÿÿÿYYYÿÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿdddÿ###ÿÿÿ ÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿPPPÿÿÿÿÿ ÿ###ÿ666ÿEEEÿnnnÿ¬¬¬ÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÜÜÜÿŸŸŸÿ???ÿ%%%ÿÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¢¢ÿÿÿÿ¶¶¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÿnnnÿ]]]ÿÈÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyyyÿ]]]ÿ¡¡¡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ¢¢¢ÿ,,,ÿÿÿÿÿÿkkkÿÌÌÌÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ———ÿMMMÿLLLÿmmmÿ‚‚‚ÿ„„„ÿOOOÿÿÿÿ±±±ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿWWWÿÿÿÿÿ“““ÿ˜˜˜ÿcccÿCCCÿÿ!!!ÿyyyÿéééÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿ®®®ÿlllÿ222ÿÿÿèèèÿÿÿÿÿÿÿÿÿ©©©ÿÿÿÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöööÿnnnÿXXXÿÁÁÁÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿnnnÿHHHÿªªªÿÿÿÿÿÿÿÿÿÿÿÿÿôôôÿÿÿÿÿÿ ÿ222ÿ¨¨¨ÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿµµµÿoooÿzzzÿÓÓÓÿôôôÿìììÿ{{{ÿÿÿOOOÿùùùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQQQÿÿÿÿ£££ÿÿÿÿÿÿÿÿÿæææÿ¿¿¿ÿ@@@ÿ ÿ ÿpppÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿ±±±ÿzzzÿ>>>ÿ***ÿ111ÿ{{{ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­ÿ###ÿÿÿ¶¶¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿlllÿEEEÿ©©©ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêêêÿÖÖÖÿ···ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]]ÿ@@@ÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿŠŠŠÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿgggÿÕÕÕÿÿÿÿÿæææÿ:::ÿÿ ÿ¦¦¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMÿÿÿÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿ½½½ÿ ÿÿ%%%ÿ”””ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿ¹¹¹ÿÿ???ÿ+++ÿ111ÿrrrÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑÑÑÿ333ÿÿÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‘‘‘ÿ:::ÿŒŒŒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¡¡¡ÿ\\\ÿpppÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉÉÉÿTTTÿHHHÿÏÏÏÿÿÿÿÿÿÿÿÿàààÿÿÿÿ ÿ888ÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿQQQÿ¢¢¢ÿÿÿÿÿ®®®ÿÿÿ%%%ÿÈÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMMMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿÿÿÿUUUÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÃÿƒƒƒÿCCCÿ+++ÿ///ÿkkkÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿSSSÿÿÿ[[[ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ<<<ÿXXXÿÖÖÖÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿzzzÿXXXÿ]]]ÿ¢¢¢ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿœœœÿIIIÿwwwÿÿÿÿÿÿÿÿÿÿÿÿÿ†††ÿÿÿ ÿ!!!ÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàààÿTTTÿiiiÿ¸¸¸ÿWWWÿÿÿiiiÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿFFFÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿGGGÿÿÿÿÿÿÿÿÿÿÿÿÿÎÎÎÿŽŽŽÿJJJÿ,,,ÿ---ÿ^^^ÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿÿÿ"""ÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿïïïÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ]]]ÿ???ÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÒÒÒÿ½½½ÿ“““ÿIIIÿ999ÿ>>>ÿpppÿ§§§ÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ»»»ÿ^^^ÿIIIÿ¯¯¯ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿBBBÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðððÿ†††ÿ---ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿzzzÿNNNÿŒŒŒÿ!!!ÿÿÿ«««ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ===ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõõõÿÿÿ ÿMMMÿÿÿÿÿöööÿ›››ÿCCCÿ"""ÿ***ÿOOOÿ²²²ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¾¾ÿ555ÿÿ ÿwwwÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÿ‹‹‹ÿÿÿÿÿÿÿÿÿÿ¶¶¶ÿ§§§ÿWWWÿÔÔÔÿÖÖÖÿÿÿÿÿÿÿÿÿ···ÿ...ÿ!!!ÿÿÿÿÿÿÿÿÿÿÿÿÿîîîÿ¢¢¢ÿƒƒƒÿ{{{ÿwwwÿwwwÿnnnÿ–––ÿæææÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ°°°ÿ@@@ÿVVVÿ¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿÉÉÉÿ‹‹‹ÿDDDÿ111ÿ...ÿ000ÿ444ÿmmmÿ£££ÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿÿ@@@ÿcccÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÍÍÍÿÿÿÿMMMÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ···ÿJJJÿCCCÿ ÿÿ222ÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ666ÿÿÿÿæææÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ©©©ÿ ÿÿÿ|||ÿÿÿÿÿžžžÿzzzÿÿÿjjjÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿ´´´ÿÿÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿ¸¸¸ÿ ÿ ÿÿÿÿÿÿÿÿÿùùùÿ€€€ÿ444ÿ¸¸¸ÿÿÿÿÿÿÿÿÿôôôÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿhhhÿzzzÿ“““ÿ±±±ÿ   ÿdddÿ>>>ÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ‰‰‰ÿ!!!ÿeeeÿ¤¤¤ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¢¢¢ÿ\\\ÿXXXÿXXXÿuuuÿéééÿÿÿÿÿÿÿÿÿÿÿÿÿìììÿÿ555ÿ(((ÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿuuuÿÿÿ111ÿÍÍÍÿÿÿÿÿÿÿÿÿ···ÿLLLÿ ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ]]]ÿ ÿÿ ÿ•••ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüüüÿ///ÿ ÿÿÿ¥¥¥ÿÿÿÿÿÿÿÿÿúúúÿ«««ÿ(((ÿÿÿ555ÿ²²²ÿÿÿÿÿÿÿÿÿ¯¯¯ÿhhhÿ%%%ÿ(((ÿGGGÿÿàààÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàààÿ‹‹‹ÿÿ ÿ777ÿ~~~ÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÅÅÅÿ§§§ÿ%%%ÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿmmmÿÿçççÿÿÿÿÿÿÿÿÿŽŽŽÿ111ÿÿÿÿÿÿÿÿÿÿÿÓÓÓÿRRRÿaaaÿ¥¥¥ÿÿÿÿÿÿÿÿÿÿÿÿÿbbbÿÿÑÑÑÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿXXXÿ$$$ÿdddÿ£££ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŽŽŽÿdddÿnnnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÿ‡‡‡ÿAAAÿ!!!ÿ®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ½½½ÿSSSÿÿ(((ÿ999ÿpppÿeeeÿ@@@ÿ777ÿ ÿ'''ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ”””ÿ ÿÿ$$$ÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ¬¬¬ÿ ÿÿÿÿÿšššÿÿGGGÿÿÿÿ666ÿµµµÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿªªªÿPPPÿ+++ÿ---ÿSSSÿ   ÿÝÝÝÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿ«««ÿ+++ÿÿOOOÿaaaÿ{{{ÿÿ   ÿÿbbbÿ>>>ÿ ÿÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿcccÿÿÿÿÿÿÿÿÿÿ¥¥¥ÿ777ÿCCCÿÿÿÿÿÿÿÿÿÿÿ¦¦¦ÿ888ÿmmmÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿrrrÿÿÕÕÕÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÖÖÖÿrrrÿ:::ÿVVVÿ‹‹‹ÿËËËÿÿÿÿÿÿÿÿÿ½½½ÿyyyÿ‰‰‰ÿÿÿÿÿÿÿÿÿùùùÿ©©©ÿsssÿXXXÿ666ÿ´´´ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿ§§§ÿKKKÿ000ÿÿ!!!ÿ888ÿEEEÿ†††ÿÒÒÒÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúúúÿ999ÿÿ‡‡‡ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÃÿ444ÿ ÿ ÿÿÿÿ ÿÿÿ'''ÿ@@@ÿžžžÿÉÉÉÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ÷÷÷ÿ¬¬¬ÿEEEÿ+++ÿ000ÿ[[[ÿ¥¥¥ÿçççÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿ–––ÿuuuÿdddÿNNNÿÿÿ'''ÿBBBÿLLLÿZZZÿ´´´ÿÃÃÃÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿÿÿÿÿÿèèèÿTTTÿ000ÿ’’’ÿ$$$ÿÿÿÿÿÿÿÿÿÿzzzÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¾¾¾ÿ‘‘‘ÿAAAÿÄÄÄÿìììÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿëëëÿ°°°ÿRRRÿJJJÿYYYÿqqqÿÿÿ§§§ÿ¡¡¡ÿ˜˜˜ÿ‚‚‚ÿeeeÿWWWÿZZZÿ{{{ÿ¶¶¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûûûÿüüüÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿéééÿ¥¥¥ÿ???ÿ***ÿ111ÿ___ÿªªªÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿòòòÿòòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ]]]ÿ ÿòòòÿ………ÿ---ÿ[[[ÿÙÙÙÿ444ÿÿÿÿÿÿÿÿÿÿ___ÿÿ‹‹‹ÿÿÿÿÿÿÿÿÿÿÿÿÿÅÅÅÿœœœÿŒŒŒÿÂÂÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÁÁÁÿ|||ÿOOOÿEEEÿ>>>ÿ>>>ÿ<<<ÿ>>>ÿ===ÿ???ÿGGGÿUUUÿ§§§ÿðððÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿçççÿ¥¥¥ÿ>>>ÿ+++ÿ$$$ÿCCCÿëëëÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdddÿÿŸŸŸÿ777ÿ;;;ÿ­­­ÿÿÿÿÿRRRÿÿÿÿÿÿÿÿÿÿŒŒŒÿÿœœœÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÌÿ¯¯¯ÿsssÿJJJÿFFFÿGGGÿTTTÿÿ¯¯¯ÿøøøÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâââÿ………ÿÿÿÿóóóÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ{{{ÿÿFFFÿ...ÿ•••ÿüüüÿÿÿÿÿvvvÿÿâââÿÿÿÿÿ±±±ÿ888ÿ‚‚‚ÿÜÜÜÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÂÂÂÿºººÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÞÞÞÿeeeÿXXXÿXXXÿŸŸŸÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ»»»ÿ}}}ÿ>>>ÿÿ!!!ÿ‚‚‚ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùùùÿŠŠŠÿÿ+++ÿbbbÿæææÿÿÿÿÿôôôÿ{{{ÿ"""ÿ¶¶¶ÿÿÿÿÿñññÿrrrÿlllÿzzzÿƒƒƒÿ„„„ÿ‡‡‡ÿŒŒŒÿœœœÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿmmmÿXXXÿYYYÿòòòÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿêêêÿ°°°ÿAAAÿ***ÿ///ÿpppÿ³³³ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ···ÿ»»»ÿ!!!ÿMMMÿçççÿÿÿÿÿÿÿÿÿºººÿ“““ÿAAAÿÎÎÎÿëëëÿÿÿÿÿæææÿ™™™ÿtttÿ{{{ÿyyyÿxxxÿyyyÿ†††ÿ®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿxxxÿXXXÿ\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÀÀÀÿ888ÿ)))ÿQQQÿ®®®ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ~~~ÿXXXÿ\\\ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿ¦¦¦ÿ'''ÿIIIÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÈÈÈÿ‚‚‚ÿ%%%ÿ¾¾¾ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚‚‚ÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­­­ÿ^^^ÿ%%%ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‡‡‡ÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿRRRÿ"""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿŒŒŒÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿJJJÿ###ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿXXXÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿBBBÿ"""ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ???ÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿYYYÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ<<<ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ999ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÄÄÄÿÂÂÂÿ§§§ÿšššÿ¤¤¤ÿ¿¿¿ÿÕÕÕÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿZZZÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ666ÿÿÆÆÆÿÿÿÿÿÿÿÿÿÿÿÿÿäääÿœœœÿLLLÿ---ÿ ÿ###ÿiiiÿÑÑÑÿ÷÷÷ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ[[[ÿ]]]ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ«««ÿ333ÿÿeeeÿ»»»ÿ¿¿¿ÿ–––ÿƒƒƒÿEEEÿ&&&ÿ666ÿLLLÿÿÿŠŠŠÿÄÄÄÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ\\\ÿ]]]ÿwwwÿtttÿtttÿqqqÿpppÿnnnÿmmmÿkkkÿiiiÿgggÿgggÿgggÿfffÿdddÿdddÿdddÿdddÿdddÿbbbÿbbbÿaaaÿ```ÿ```ÿ```ÿ```ÿ```ÿ```ÿ]]]ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿ[[[ÿYYYÿYYYÿYYYÿYYYÿYYYÿYYYÿYYYÿYYYÿYYYÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿWWWÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿVVVÿ111ÿÿ&&&ÿZZZÿcccÿKKKÿ111ÿ(((ÿ ÿ}}}ÿ···ÿ@@@ÿÿ555ÿ¶¶¶ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbbbÿYYYÿUUUÿRRRÿPPPÿOOOÿOOOÿNNNÿNNNÿLLLÿLLLÿJJJÿJJJÿJJJÿJJJÿJJJÿJJJÿIIIÿIIIÿIIIÿIIIÿIIIÿIIIÿIIIÿIIIÿHHHÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿFFFÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿEEEÿ...ÿÿÿÿÿ###ÿ(((ÿ(((ÿÿ€€€ÿ¼¼¼ÿ???ÿÿ222ÿ···ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþþþÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿïïïÿëëëÿÓÓÓÿ¾¾¾ÿ¬¬¬ÿ¤¤¤ÿ¤¤¤ÿ¤¤¤ÿ¤¤¤ÿ¤¤¤ÿ¢¢¢ÿ   ÿ   ÿ   ÿ   ÿ›››ÿ‘‘‘ÿ‘‘‘ÿŠŠŠÿ†††ÿ€€€ÿ|||ÿ{{{ÿyyyÿrrrÿpppÿoooÿkkkÿdddÿ```ÿ\\\ÿXXXÿUUUÿNNNÿEEEÿ999ÿ...ÿ&&&ÿ666ÿJJJÿÿÿxxxÿÍÍÍÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÃÃÃÿ•••ÿLLLÿ///ÿÿ"""ÿWWWÿÀÀÀÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿºººÿÂÂÂÿ¤¤¤ÿ™™™ÿ¡¡¡ÿ±±±ÿúúúÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿQSapecNG-2.0.0-source/src/images/sapecng-splash.png000644 001750 001750 00000052775 11617757645 022753 0ustar00simonesimone000000 000000 ‰PNG  IHDR,–d[µÒsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< IDATxœìwxWö÷¿#º,¹{d˶Ü;ÕÁT“ÐR $K6¤÷¾Ù$,Ê’²IöMïÙBBB )$ °ôb0Æ \°ä>®*V/3ïxôsÇSÂêó<~,æÞ¹W9÷ÜS–eáÇxç{>|øð1\Èó=>.T>LˆÅâKÄbñ >ŸÁçó29ãÆcÎ÷ØþW!|KB>zSRR²Èét~ír¹¤ƒƒ6› |> …‚U«Õ%QQQó(Šj:ßãý_§aùðу²²²û-ËÇ6› èìì„Éd‚V«…ÕjÅØ±ca2™³Ùœa³Ù†y.<<ü_ç{Üÿ+ø4,>º)//×˜Íæ•••¼Ý»wC¯×£¶¶V«v»‹$I"$$111˜3g¦OŸŽ   —U*Õ3ç{üÿ ø4,ÿóìÞ½;¹¹¹ysss³¦¾¾ž¨­­ESSºººÀ0 ‚€L&˲°Z­hnn†Ýn‡Éd‚@ Àå—_þMÓßSU|¾çr±ãX>. ž|òI€ŒÇã…:Ž$†aÆ‹ÅâK†Ir¹\A‡Cät:ù.— n·‡p»Ý`.— N§‹]]]p8^{•@ €R©„R©„ÓéDmm-ŒF#ôz=†Áo¿ý†¬¬,B$= àÆóý9\ì\0ëõ×_7ØívÉùÇÀ-¡‡úÝãõ°Û Ðv8¿‰¾mûöÁ²,1Ô1†alϽçû}Ï;ݱ÷½þêuÏ1¸Ýnèõz°, ‚ Àãñzýf†\ðx<ÞyrX,(•J( Lž<‰mmm IUUU0›Í0¨««CQQf̘1>Î:ŒÀª¯¯WÚívïÃ0Œ÷fân¨!¾”Ãz;Ö“‘þíãÏÝnGkk+<Ï€ï‚  @’$‚ð÷ŸÏGLL âââ©TŠ ¹¹A «« mmm¨ªªÂÔ©S4MQÕq.çù¿Æ#°x›ÜMÆÝ8œ°B>|ô…H}qJ ô{Ÿ£§V9nÜ8ˆÅbÈårÀŒ3ðã?Ân·C$ycwÛÙœ“ L`±, ’$A’$‚‚‚¼7É©Úp­çï¾Çzžß÷õH–,CÓ÷Ø@K–SsªãÍÿLIûsy­3íËjµöú›ÏçcܸqP*•àóù I ॥F£f³n·¼‚Œ TWWC¡Pxûál`Ük‚ εñ ¬³Ì%°zÂ= }ø8öìÙÓKƒJIIAXXBCCA’$X–…ÇãJ¥Øl6äææÂ`0xí\,ËB«Õ"<<]]]p¹\ÈÏχÃá€Ùl†Ç㟟bccÁãñ\EùTþ³Ì%°z>5e2™ëÅ_žÇáøø“²~ýzvïÞ½^Åãñ V«1þü-^¼øYøÏþ#“J¥ÿéê꺮««K"0sæLTVV¢²²b±­­­¨¨¨@PPt:hšFgg'<H’DFFâââ@’d×yôÿ¬ÀòáãLàñþ/®_("44t;'¬àþûï·¸…û{Û¶mÿ.--]ι2?~N§6› ¥¥¥H$°ÙlhiiÃ0ˆŠŠÂìÙ³’$7žÛþorA ,>F nY‰íííWuþœ9sV¨Õêcuuuk‡×~e±X`·ÛaµZ½Ž¤"‘qqq˜?>222 ‘H`ÍÙŸ• J`ù4,£ŸÏ÷¾öóóÃêիݧj“ššúµÇã¹ÿú믟^VVµZ¶¶6èt:´´´@*•"""“'OFTTÔj5¢££ÁçówØs6çãã$ŒÀò +£ ŸÏ÷jXb±xØ7—ÕjÍ–H$ûÓÓÓ§j4´··Ã`0ÀåreYðù|H¥R„„„ == ÀbŸÁýÜpÁ,>F“ž;Ì#ÙmÎÊÊbLËËË‹ þ[PPÐåN§3Úf³Éìv;!•J]aaaÕ …â€õvQåËuޏ`–OÃò1šôt ‰D#nŸ™™©ðÄ(ËÇrÁ¤Hö ,£‰PxÒ#¦ÛŸÏ§]$ø–‹‘Hä Ï!IÒ'°..åÃÇhÒíjÀiX§Ü!ôñçà‚X> ËÇh"•J½édø|¾ë|ÇÇèàX>.Jd2™wIèñx.˜ûÜÇ™qÁü#}ËÇhA”J¥÷µÛí¾`vÃ}œ>å㢃ËÁι5x<þ)šøø“àX>.Jz. Ýn÷sŸû83.˜¤/5±Ñ‚ ohN· kàÔ¢>þt\°ˇӅK¾çX¬Àê[ÅćáÂçóY.½ W,ÂÇÅÁ#°ú (®Ì”#E$1<B¡AÀjµú„ F`ùlX>F ™Lfìþ ‚ àrùüF/.XåÃÇé¢T*ó€¢('µ÷7ß|³â¼ÊǨpÁ ,ß’ÐÇé" •Édˆ‹‹óúb­]»6ñÀOç¡ù8C.õý÷߇ø–ÑB.—ƪÕjÈd2'+A¯X±âå}ûö}rž‡çã ¸ –ÍfKëktw¹\>åã´ˆˆˆè y'&&sæÌñVÐéèèÀSO=uïºuë˜}ûö­=ÏÃüS?õ|¡'DŒU{{û¬¾Ëétú–ÓF,ÿC£Ñ,‹Åõõõ(..†ÇãAGG^~ùe"!!á–ŽŽŽ›ßÉÎÎ~ü|w4©©©™à–eÇðx<ÉóÏ??¾¤¤Dtë­·~ð÷¿ÿýoƒµ£iZát:oeY6Z§ÓMúá‡f¦¤¤Xt:ݧ´AlŽŽ®¨mEE…@–Ùl~ 77wP(” ¾Íf#Ün·×™—Ïç³b±Ø––¶5<<üéôôô’‘Ì¿jÕª‘œVغuë3±=ñx<8ŽWÒÓÓ=çk\>þ¼Èår–eÙ¯BBBb“’’RY–E{{;ìv;†A{{;öïßOtuuMv»ÝÏÑ4Ý¢ÑhŽžïqƒán·Û½‚a˜ØÝ»wG~ýõפÁ` êëë'ÆÄÆÆþ,—Ë;ú¶Óëõ3Nç7.—kúÆ5¹¹¹0 Löx<óy<^P@@ÀÏ}Û•——¿®×ëÿå—_î>xðà£Ñ(2<«ÕJ8N¸Ýn¸Ýn8N8Âb±ðu:]’Édzˆ ˆëêëë?U«ÕÃÚu» 4,§Ó9¾ï1Ç×øîœÈÇEEQíóx¼«yä‘O"""Â‹ŠŠPRR“ɇÃ;vààÁƒüÙ³gl6›ß¼êª«dç{ÜgJLLÌóZ­¶Óét¾[__§Ó ǃÁ€õë×ËåryéÂ… gRu g»ÈÈÈm ¬VëÆ®®.¢¥¥Å›_ l‰‰‰¹¹ïµŽ?^´mÛ¶1ÕÕÕÞš\zêà4-¡PÈÕ|#“ÉÔj‡3·ó.°6lØp‹Õj ì{Üãñ€ ˆÏ¾ÿþûÃýë_µçcl>.(Šú¦éØÅ‹?••õ† (++C[[Z[[ñÍ7ß`ÇŽÒ’’׊+†_fç%&&æ½¢¢¢ìv»¿ËåòzýF¬_¿ž?a„]®¤(ê¿=ÛEDDü®ÓéÖ¸Ùd2! A°<料ר««ûÏ—_~9Æd2Äb1¤R)¤R©›a˜V‚ Ü<ÏÁãñÚ„BakHHˆÆßßÿ@À …X,†X,ž„ ]`ÕÕÕ­©©ù½­­-¢££Ÿv †aPPP ËÌ̱ÿþGsss­ÇŽ;@Ót̹³‹ Š¢Ì‹å¹˜˜˜ãÝ%ì½ï¹\.Ð4 ‰DBÿÙ…´µµ‘v»3¯@­V#..eeeøúë¯ån·{MÓ½6¸Ôjµ8û“ÕjíçtË0ÌÊÕ«WƒeYØívdeea̘1_JX@tt´166vºH$ZD’dµF£91Ü9 ‹¦i¥Íf{·¤¤äæ;wò›››a4a6›áv»‡ôr¯««ƒP(„\.‡ŸŸßÔÈÈÈšn¸¦(êÑÈÈÈõçbü>.ŠŠŠxíííG›››Ç}õÕWhjj‚R©„^¯˲ ÅÛo¿ýÛ 7ܰð|u40›Íþf³Ù§;sæL}ccc@SSÌf3öíÛ‡ØØØìyóæ=ཾí].<,K¯%MÓ)'Ëh4‚eY°,‹ÌÌLÇÑn«F£Ù`ÃHÚœUÕØØàt:?;räÈ¢ß~ûÐëõÞ’ßN§“«hÞ‰ð®·{·Z­p¹\èììıcÇ(FóÃ>hx8**jÝÙœ‡?7Ý‚êˆÁ`˜°fÍhµZ¯Ö†‰'bÚ´iì=÷ÜóEQc©Ûíö·ÙlÞïÐe—]öºN§»Óh4Æïر­­­Ø¼y3"##ßðEQ^;’Ãá€ÇãÃ00›Í}ºNõx<(//Ghh( $ÉfŠ¢úž7êœEÓ4i·Û×éõú¿|ôÑGD}}½÷!I"‘"‘b±|><«nçý <<\.Ün7<jjjðÒK/ù/\¸ð› &| —ËoŠŠŠÚr6æããÏIQQ¯££ã^¯¿ä«¯¾BMM Üî“¿H’Dxx8ƇE‹Õj4š›ûîšýÙq»Ý2‡ÃáU„Bá¥RùFrr²U«ÕòªªªPUU…Í›7ó”JåvŠ¢¹¶'Nœ\¥y<˜L¦¾‚(‘Ûeíèè@tt4 êRSS#³Ùl÷;Ž«Ngreee°Óéĸqãv¨Õêg(ж kÔ–N§›f³Ù¶=zT¾~ýzØl'íäb±J¥þþþ Arr²#**ª˜ÏçW³,K³,«`à àGDA*‚ Ò‹‹‹£ªªªxz½v»6› <[·nEuuµÿ”)S6»Ýîßx<Þ"FãK¦õ?ÎÎ; †¬µk×¢ººº— R©TÈÈÈÀW\á?~ürRuÑÕ.t»ÝB»Ý–e9oÿ£YYY±X<¥µµõpss3Ìf3 Ÿpo\\ܧÐÜÜ àäæ—Á`0õéšµÙl`¦çj¨i°q1·­­í »Ý½^ïí;??žÛíž àIŠ¢þßpæ4ª«¦¦æ#£Ñxÿ_|ATUUÁãñ@,#88ááá˜6mš;&&f-˲§¤¤û¶_»víÏWúûûßqÇæžïeffâøñãW2 óZNNNjII :;;át:QYY‰²²2Œ?~Áµ×^«×ét35MáhΣ¢¢‚çñxbŠŠŠTWWϪ¬¬Ìlnnäóù„B¡ð¤¦¦ž¸êª«¶FEEÑZì¡(ªîlŒeÉ’%Q±±±ÛóóóCišŽ)((0œºÕðù÷¿ÿ-ݲeË-Rx<Þ8ñN§Óßår‰ìv;Ÿ B(B(B"‘°R©”ñóóóÈår§D"±…„„´ÅÄÄäh4šßcbbÊ´R¥Í1öe×®]ûõzý´uëÖ¡¢¢Â+¨ø|>T*ÒÒÒ0iÒ$fÖ¬YŸx¶ÛW뜱sçNƒÁðªÅb™m2™mmmN'¬¯¯ç‰D"B,³Œ\.·K¥Ò®°°°¦É“'—i4šÁ>·)Š:>Ð Ãð9 ǃF£é€±cÇæ¶¶¶èõúñÛ·oGKK :„¨¨¨ÿÈd²ZŒFcÏ~,}º¦Íf3ø|>H’A i:œËŽÑ—˜˜˜Ÿ†Éokk›ÐØxrCÒívÃf³Áf³npnVMMͶºººÙÿûß!‹€   ÄÄÄ`ܸqì”)S^ÏS5 …ýóÏ?/©ªªJ½^ß _hNrròf›ýýýc233wìÙ³'æÄ‰hooŸÏÇêÕ«Q\\¬X±bÅQN7K£Ñ쥹e™ÍæëëëÇþñÇü¼¼<˜L&Øív˜Íÿ'WI’hµÚ´?þø#M("** +W®€RU:〛nºé‘æææ÷¶nÝ ©TŠ˜˜˜£R†¦i¹N§«øá‡Âu:Ìf³×ÒÓÖÈÑý”%‚àñxùdë}÷Ý7ïLû§(Ê àÅ·Þzëûロ‹Å2h"‡n·.— .— &“ uuu8xð ¤R©_vvöC—]vÙC™™™õ …⊢vžÎX÷îÝ»B¯×¿¼ÿ~ÞŽ;¼ÿ‚ €1cÆ@£Ñà¶Ûn«%âIŠ¢ÎzäMÓ~þZ__ÿÌÞ½{5_|ñ¢¢¢¼µ9¢¢¢ —ËåÝT „ÇãA[[L&S¯‡ƒÉd† Àãñpà 7à©§ž€A·ØI’´ A= ++‹U(×¶··ÿJÓ4ºººPYY‰Ã‡¨TªŽ“·)w?÷!W(z¤R)Ÿó„ïìì2HZ£ÑXu:Ýb’$ÏÏÏGSÓɤX,€Ö¡ÚöšÓpO´’üoaaáÔÇ<‰‰‰ˆ…F£Áe—]ö͸qãn9U«V­âÙívïO.—£µµõSCîþEGG4kÖ¬ßE"Q•H$VTT 66Xºt)ï7ÞØLÄF“;ÒyUWW ºººwîÜ©|ë­·`2™êÝÕ Äu×]‡¬¬¬úÀÀÀÊÆÆÆÄ~ø!²ººº—P«­­…ÍfCvvvBEEE yŽ„„„„W¾ýö[žÕjpÒ0ÚÙÙ‰uëÖÍ9sfjRRRÙ™^ƒ¢¨8xàO?üðCž@ @GGÇ€¹ö…B!>þøc¤§§—Éd²UJ¥2Ìf³Ý«Õj3¾ûî;b×®]°X,`Y.— F£›6mBAAþú׿FN›6í¿畈ˆˆg†;¾={ö\ÝÕÕõsqq±`Æ Þ¼íAÀÏÏéééˆÇ­·Þª%Iòk(Š:ë©Giš¾ŽeÙûí·°/¾ø%%%œ7·W` øùùA£Ñ 33Ó¢V« …B˲Á Õ––†–””¨®®FGG\.êëëÁýÏ?øàäååá§Ÿ~J`…B¡Aî÷~JJÊo³fÍ*6™Lc¶nÝ ­V‹   …Â^Ké¾PehnnÎ š.—ËAêêê4MÇQ5¨O•F£Ù|àÀv³ÙÌ… uk~ÍÃý|ÏH`iµÚg=:kéÒ¥àñxHOOGJJ Ôj5æÎ{WrròÃéG&“«®®öî$vïJ‡Ó6""¢.;;Û_,×ñùü`>Ÿ»ÝŽŠŠ ¬X±‚÷úë¯ïÕétA¦ï:|H¬Vká”ï¾û.hš†ŸŸìv;„B!bcc±téRgPPÐÂ1cÆl€ÔÔTdddLiiiÙûꫯ’:®×—Ûl6cïÞ½É7Üpà ,š¦ù7Z­Ö^O_‹Å‚ºº:Ô××LJJò?“kpPµúæ›oÿâ‹/^dYf³¹—0æxê©§’’òóĉ¯ïqø}©Tª~á…žÈÉÉylÓ¦MÄüáý;N ¼¼·ß~;±dÉ’§ ‚( ÿa¨1íÞ½;ÕjµÖétòuëÖ¡³³Óû9H¥R$''#55·Ýv[µ@ ø€¯Ï…A¦é0šL¦ë–-[†¢¢"Ð4 ¡Pˆ€€„‡‡ƒ „††bîܹíÿ"IòGŠ¢úö%•JUãÇ_e2™î.,,䢰°¡¡¡ÐétNjµGÅž={¨¿þõ¯ŽI,· 5AP«ÕÐétÁ¦—Ínúôéckkkݵµµü’’œ8q$I)°€ ˆ_gÏž==//ÀIɺººï)ŠÊêsr8ùN§sŽÛíÃ0œÐï3ŒÓöt×jµ—TVV¾°téRôôt$''#** ×\sÍüá «wÞyçÅÂÂÂTîFæ0™Lx衇\ß}÷Ýà‘”ÝPe›4iRèøñãë‘ššŠ°°0”––âùçŸÙl¶ao›@eeeb^^^êš5kÐÔÔ–eÁçóÁ0 $ –-[ÖÉãñ9aÕc9aaa×½ôÒKÌ%—\çÕÈ`Íš5ßY#ÛóMMM¼¾¦,Ë¢³³ï¼ó޲¼¼|Á™^§«¹€Önõ½<óæÍs³,Û/0–¢¨•JõÄÔ©Sþío³.Y²$yòi±œ|~Øív|ÿý÷ظq#:;;¿¢izЇèŽ;ÔÖÖ–~öÙgòwÞy­­­ÞåhRR®½öZ¼üòËÇï¾ûî[A2EQkΑ°ò°¦éëî¼óN=zÍÍÍ`YˆE@@²³³=Ë—/Ÿ4þüµZýö@ (ŠjV«Õ÷FMž0 î»+®¸ÂÍÝ- rrr&æåå=7Ôg¥Õj]$IB(r÷CÞPmzrZMÓ„ÉdÚqðàAB&“!""qqqœfuollìÖÁÚ~÷Ýw†a6ðùüñÁ„Ýn‡ÛíFÀ}AZ[[ÉÜÜ\‡ÕjuÉd² †a^Z²dÉ÷õÛmÌv:F—Ëåg·ÛA´Z-òóóÅbñŠ˜˜˜g~ [wìØ²²²žÿ80 ƒ±cDzJ¥R5nÜ8ç ãØHÓô}=öØg«V­çUÌ0 ,Kòp®?4M ËËËWX­Vh4tvvö2ú[,”——Ãh4®Ð/ üt (ªI¡P°V«•H`uÛ••e¢Ro½õÖí‡#áÇì¥}FìÙ³~~~¢;î¸ã¿ôl¿{÷îØæææJNÇÿá‡ÐÚÚ Çãõ¥ÊÎÎÆÃ?\)‘HVXOQÔ9ské°ë›šš2î»ï>477£­­ !!!ˆETTî¹çž#ÑÑÑ—Q5lMŸ¢¨&‹D"Ñí‹-ú" €(--EMMMÏëg Ö>22B¡Ð›qeÙ{<Ò÷¼ÔÔÔRÇóÿÚÚÚVlÛ¶ Z­ÖkÔç0Œ­Àêû¸MÓ8pàÀ .—+wÊ”)ÚŽ†™%•JÑÕÕåµÿ8<Ìäô4,‹Åò¯üü|¿={ö $$ÑÑÑÐh4¸üòËßOLLül¨¶`[mmíœcÇŽ…lذ8vì***PYY‰ºº:466¢¦¦¨¨¨À¾}û°{÷nÁñãÇÓÛÛÛ¿[µjUÿoM7E±cÇŽU¥¤¤¸ããã©TŠO>ù:îe𦇅ôèQ;}ûÀ{zÞ‹Åâÿ&¬zŒãs©TúìòåËáïï©Tʵ ÎõƒeÙ¿ìß¿ŸdAAA˜8q"½5†^¯ÇÏ?ÿpüøñAoä‘"•J¦ ‰D`YöÛSõAQTmXXØ%7Üpƒ“¢¨^‹eY455¡¬¬ MMM«z¶{ï½÷ž¨««ã÷Ýwhiiñ.+Åb1^}õUí?þñ¿H$’dŠ¢¾?—ªæ¼zò IDAT›WìvûÜåË—£µµííí^ÛLLL 4 þö·¿}••5i$ª'_ß0{ölæÙgŸ…ŸŸŸ÷½É`íT*Õ$‰Dâµ_y<žÛt:Ý€ßùŒŒŒ'gΜٚ‘‘ÁeJ…¡4Ôßyç®Ê6˲hnnÆŽ;¶nذaGߓ׮]ûfgg§D­V#>>±±±nŒ@ñÀ¢iZP]]ýä/¿ü»ÝŽ   $''cæÌ™û322ÍfÈ:9,, …ÉÉÉðóóƒ\.÷n‘úùùyw›är9‚ƒƒ¥R‰ØØX,\¸pÈЉ¨¨(ˤI“RRRØÈÈHH¥Rx<lݺ•×ÑÑ1¬¢ââb‚snz¯ãKKK¿NEýK&“å¾úê«Éd „ŸŸŸ|8mÃh4¾ÐÙyÒé844™™™îµem6›±k×.˜ÍæQK, m¼åß{Òý÷ uO(Š2&$$ükÙ²eý\#ìv;êëë±cÇŽtîØÛo¿Ís»Ýwp»“&Lè×ç[o½¥¡izÂ`î2gš¦)†aýðáÓéÐÖÖ.»¦Z­Fll,îºë®š1cÆôÓjFŠJ¥úQ©T^7}útæŸÿü§wi˜œœ<  ¤Õjßòx<~œ‹ŸÏ‡ÇãñcfPᙑ‘Át{®ø|~Î`çSU“œœ¼dîܹLχ™ÙlÆáÇgýóŸÿd_yåæµ×^ó¼ôÒKlYYÙãn·ááá˜1cWÕèUŠ¢†]évÄ«££ã?»wï&ÚÛÛ! ‡É“'»årùeÃiøGZZÔj5&L˜€ë¯¿‘‘‘ ¦ãç燩S§bÁ‚ˆˆˆÀ%—\‚°°0V"‘Ÿ?¨Ýc GÒS!•Jûy1 …B‚SjlEEEE;þúë/[ºtiÞ´iÓ0sæLÄÅÅ$I0 ƒšš<ýôÓ¼×^{í7nô:tèò0 3sÛ¶mhiié¥]I$ÄÇǃ¢¨!5ù3E¥R=+‹ãcbbNy={ö [X]è [`Ñ4-0 *n=$$S§NíJHH8£P‡o¼ÑØÓh* 1þüõ7Þx£îLúNJJò- ÇCWWrrr@ÓôÿäE‹±mçšÍfX­Và½÷Þ‹%¢ªººzHG¹Ñ µµõM­V ‘HµZððð碢¢¸¥ñŠqãÆÙâãã{- »ºº°uëV˜Íæ/ÏôúÀûÐèk,ïë?w*hšÎP*•ývk% H’„¿¿ÿ°$ EQ»Õjõ%K–,ùËòåË«f̘Ë.» jµ|>n·%%%xöÙgyüñ7nôäææžrSh¸ttt\WZZÚ/|F,ãŠ+®`…Bᛣu­Áˆˆˆ¨MJJÚ{¶¯s!1le4³›ššàñx¼Þ»|>XΡ§bÁ‚–Ûo¿½hüøñÀ½÷Þ ‘H´r4úði||<#‰¼i“É4}¨“'OÞ8~üøŸö‹ƒ?þø#žzê©@§Ó™«Õj×ö4&4M« ¢­V+BBBššÊ&&&zm4EYCCC—N™2¥W¬Ëxâĉ±g:¶5kÖ š.Øãñ »~$MÓÇó]KKK¿÷”J%®¾úêínRõŸÏO½ýöÛïâ‰'šg̘™3g"44Ô»Ä<|ø0V®\É[³fÍ»[¶l±åææö«Ò4hšêtºð––¯,‡B¡@LLL]w<¦QfØ7²Ëåšg0À²,är9a·Û_µðxß.\¸ÿûßAQT—F£9ã˜;HJJb(Šªãœç\.Ìfó;…B¡pÑ#<Â&''÷³Ù€ÍfC{{;vïÞ;øí·ßnikk3×ÖÖÞ8cî‰Ùl~µ²²$IB©T"""¢_’9™Löqff&£V«{yB·µµ!//0™Lg,ü{f€íÉH–„,˾ÔÖÖ–ÊÅýq!00'NÔ <E¹)ŠúD,ÇÝwß}Ë~øaSvv6²³³Ái×v»»víÂ3Ï<#^·n]þ¶mÛš÷îÝ;¨OßPØl¶˜ššÂjµÂnïmÆ ‡L&ûe¦>Îa ,‡Ã‘mµZ! P( R©àñxú—»9MbbbþŸP(|F %I2íÔ-†ŸÏß×ÓF¦×ë š¦ã;ÿÒK/ebcc½ï¾û””4 Ðâê¼;v ¯½öV¬X!ÉÍÍý¶¬¬¬’¦éAmd#¦i¢¢¢âf³ÙŒ°°0Èår0 ÓÏ[Ÿ¢(Ößß¿h̘1½|²¬V+<ˆæææåg:–Á–ÛíÆáÇNÕ¾©©ér«ÕºìèÑ£øúë¯{}¦*• ~~~¸í¶Û*"""Fâ"Ñ Š¢lE½ùðÿxï½÷Ú¦OŸŽ3f 88<6› üñž|òIjãÆ¶;wŽ8˨Á`˜ÒÐÐÐo9œ´½voRø8 {—Ðn·Ç;rAœLVVÖ¨ÆiÅÄļ `Ô´6™LVÎ%šãóù°X,p»Ýcq2OÕ€L:õ}??¿1,ËÞ»zõj”——{B{ât:ÑÜÜ ƒÁ€ššLž<9áöÛo¯t¹\Ÿ ‚åg²­ír¹®=vìŸaðù|n#b@•&((è9…B±) \8·ÛÚÚZ”””H'ªTªÓ®l<ÐNnFðx¼» ºS\__¿Ìáp¼zäÈbóæÍ iÚ› [$!99³gÏf'Nœ8ótÇ׊¢LVxïÑG}¦ªªê¡M›6 ÊÊÊÐÙÙ ›Í†M›6açÎSçÏŸÏ\qÅÏ_zé¥Cúq¸\®Ë¸>ú’™™ –e/#÷…ưVWW—ÜívC*•r¹†Î8¯Ó¹B$éI’DPP¬V+ºººRNÕ.##ã>’$«”JåÿÛ´i¶oߎ¾Ë›Í†ššèõz?~œ˜7oÞ}‹/¾Àc>§(jdÖiµµµyÿ AHHÈ×4M¿ @#N&:ô—Ëåq.õõõÞ¥š^¯Ç‘#G0kÖ¬T*Õ¤‘Žc0 Ëår!77w%Ã0oeeeõšcmm­„a˜mmm“ ±ÿ~:t,ËB,Ãív#++ óçÏÇâÅ‹o¡(ª¿që  (ª '?ÿ7üñ· ¯“Éd°X,(--…^¯‡ÕjÅO?ýDlÙ²eÕĉÿöÛoÕ]]]CÚŸL&ÓƒÁ0  F\\†©Íyøø?†-°¬V+Éiݱu§už°’$ ±X @»Ý«Õ:v8 SRR^“Ëå{ªÕjÞ¶mÛÀ¥î‹ÇãA{{;, ôz=Ž=*Y¶lÙï¢iúšî/аhnn*)) ãâ“Nš:. !!¡ŸG7—Ÿ›eÙ^v%›Í†ââb”––føSuZi”y<Þ åØžþy¿M›6ýÀ=ܱšššËǯGŽ‘áèÑ£èYŒÄÏÏ—\r ®¹æÌ›7ïI•JuÖ*u§¨¾~ܸqKÓÓÓ_ýôÓOI’$át:QVV†ööv”––¢°°PIDWDDÄ{ÖÃ0J®f_O¸”Á.—kÈd•>NŸa ,‡ÃÁãn6‚ À0ÌŸ© ³¥g¬Sw¾-ÍpGFF’äääÕiii7çååaëÖ­hkkCϪ$œ¶e0°|ùr<ðÀYsçÎÍ¡izEQÃZ.ÆËËË‘ŸŸ®TSNNŽ×ÛœûrôLïÑØØˆÖÖÞɆASSŽ;FL:õn§å“4PjdŽŽŽ,\¸ðî &ÜegFDÓ4Ïl6{Cn€“KT.‘Ý‚ põÕWÛ¢££¯¢(j×éŒi¤PõMÓy>øà¯¿ÿþ»²  ãÆÃ¦M›¼cäñxP*•ËÊÊÚpøðá½¼ù|¾è¯mr¹Ó•Jå)Š}œÃX}Ã2X–•$qç~O¨;^qD¶%Š¢œEÝ"—ËŸ3fÌÁ´´´ÈàðáÃ^ÿ¬ž;F\˜‰Ëå›o¾ ‡Ã·páƒ4M'GË©¬¬üKee%ZZZ¼%θ²g}NµSg2™““ƒ+¯¼òÙðððQXÐÚÚŠ­[·@ÂUFâÌÀÉÀ & -- Ó§Ow¥¦¦¾$ ß<—Ûÿ4Mó\]YY©¬ªªBmm-êêê¼Y9Äb1&L˜€'žx"iÑ¢Eƒºr8Ð?,‰aØívØíötÇÎÞLþw¶À‹Å ŸÏçÞ›×ïðáÃ’¬¬¬?ƒ¦%ãž Ap5OËmB¥R5¨Tª¨   »ÂÂÂ>›0a±}ûv”——Ãjµ¢gµÞ¿?üðC¨Tª°I“&RË©¯¯¿æØ±c<ddd ¡¡F£v»3r÷úá–ÜO_¸‚ùùùþÑÑÑ™E ;Ç©ŸÏ‡\.‡\.÷¦Øu¹\ C\\›ššj™2eÊ;aaa_ñx¼ªs]¦éЪªªã555?þø#êêê¼6¨$%%᪫®bn»í¶4Š¢†,So±XX¡P8 ŸÞÑ£G‘‘‘1 >uV¶À’Éd’$%n·€{*E¨>k£=dn·z½AAAJ¥H$g´õ·Z&“}§R©ÊI’Œš:u*~ýõWètº~†y“É„††¬Zµ ¿ÿþûÃ4M¿5TÞ¦†††ÕÞ4;Þ÷º ]¸ZZZ,---lWW—Ôl6 ív;a³Ùàt:½…g{j•mmm8|ø0®¼òʱ¿ØPÂJ"‘ ;;“&Mú";;ûY³f ™/ì\BÓ4yüøñâ¶¶¶”o¾ù555ÞåI’ CJJ æÍ›W1qâÄÌáh|b±¸U$E  Q]] –eG-CƒÞŒD`¤££aaahiiAHHÈŸB`™ÍæP†a`4! !•J!—ËÏØ1•¢(+EQÑ …âox÷úë¯GNNöíÛ×+¾ŒeY˜L&477cÕªU1Ï?ÿ|4í@}Ò4[ZZÌ .¸¸Ûö³båÊ•ƒÖo›2eÊ\³Ùü[GG‡P"‘ô ʵX,(++CAAÁb‘Ht÷H“Éõ5æs9sæ~þùçSúbKº}ØŽµ··§}ùå—Ðét^A%†ääddffÚæÎ{=EQÃTŽŠŠÚ)“ÉÆwKéõ^mm-¤ØÐÇ3’%a©H$¢l6\.÷ ?{C=œNg&WPÒív£»ÒÇiû$õeìØ±ï…„„|²cÇŽ.Ç# …غuk¯²X\Šš½{÷@0Xz½þ ®¤ºÓé„D"APPûÐC‰N•Š#''ç¢gŸ}Ö¸zõj…B¡€ÁpÒ\æñxÐÔÔ„‚‚ÞäÉ“o0¢°ªÁ–„"‘(v$}MŠŠŠxF£ñh{{û¸5kÖ@«ÕzwóT*––Æ,Z´h9€wGšâ„eÙ5ÁÁÁK{¥+NîÖÚíöaí@û9Ãöt …p©YF#ÚÚÚÀãñ†]ñ|ât:3¹å‘@ €¿¿¿g° ÄëׯO]±bňó)…‡‡;n½õVa||¼;==¡¡¡ýÎq¹\\Œß5õAÓtÀ‰'f˜Íf477ƒÏçC"‘à–[nY6’/ÕôéÓò³³{&ù IÓôÀu·OAbbb`hhè€é|¹$uyyy÷ÔÖív?yìØ1ÂårÁ`0@$!## …bÍHÆ0oÞ<û7Þèð÷÷Ýf³¡±±Q4M;íŒËåºX`ANÂQ#77÷Ã72Ÿ~úéœU«V¡¬¬ n·|>ááá˜9s&¦OŸŽ+VäÜrË-“(ŠºûLTSSSÍAAAÞLž‹yyyðx<£±Ñ“'N¤TVVÖ•––º‹ŠŠVÍk]H [`ÅÅÅ•«T*†Ë‘ÞÚÚ ­VWUUåwêÖç–eW777ÃjµB*•"""ÁÁÁv>Ã0„ÝnÇçŸÞDÓôˆ]7&MšÔ•‘‘±ƒË'ß§o®,U¿Â4M okkó–¯ê[i§(jÄ1›QQQ¿Oœ8Ñ[1…£¥¥ûöíƒÍf{k¸}¹\®t``ÃûéäÃ- Ù²e‹ûÛo¿}påʕġC‡àt:½åé³³³q饗â‰'žÐÝsÏ=7 ‚i§³C:)))¯&''C­î]9‹ËM¿ÿþégó»ÑÙÙ¹±°°0²²²’ßÒÒòÏC‡Q½€? #J;âççWÂåzÖëõ(..†Ûí²ðåù¤²²Ò¯ººú/ƒÁ»4˜0a‚ƒƒu+ðx<|£ÑˆŠŠ ¢±±ñMÓÃ*èÚ’$¯‹Å½ª›'µ¡PˆÈÈÈþy€[Ž;&°Ûíhmm…P(DPPNUXt0$É“cÇŽí7†®®.”——£¨¨hMÓ©ÃéËétF §ó!°JJJæl߾ݱqãÆ÷ž{î9þÖ­[Á•u ÀŒ30gÎ,[¶Lwï½÷Þ&•Jãº+ꌚ+Errò¿ÆïQ«Õè›|²¢¢»ví"†ùf´®×§ÿ)µµµqŸ~ú©·¤ØŸÅe1מ̘1Ã&‰ØÒ C©Tõmc0^®ªªB]]\.H’DHHAÝH®Í‘’’RïM¯ÂáñxÐØØˆ}ûöa˜a-[œNg pþ5¬ªª**77—ÎËËûcåÊ•Âï¾ûΛJ.—cêÔ©¸êª«°lÙ²ú{î¹ç.‰D’@QÔÚ³Uú+!!á¥Y³f!<¼÷ÞSgg'ZZZðÙgŸ]ÝÐÐpéh^óàÁƒUUUûׯ_††äååÇã!88øO±v¦Œ(§{lllerr²ÃÏÏOÔÕÕ…ÚÚZäææòâââÞpÿpû9~üx¬Ûí~¿±±q²^¯W8N¾Ûí†ÛíöVY&I€‹Å®ÈÈÈ~~~_§¤¤ Û.PYY©¬©©¹±©© 6› |>S¦LAllì§h'âBk~ÿýwdddÄfffî0}¸ÌG%ËËˉ¾±fB¡cÇŽEppðW=Ó4}åÞ½{Ãôz=::N®þø|>` mlXøûû³ñññDQQQ¿Â¥û÷ïÇâÅ‹ðx¼dŠ¢†tñðx<ƒ.7Fšqôt9~üøÃ¯½öÚ{ßÿ=ár¹ P(¼)c¢££9aÕ¥R©þà‹Ó1¦”ôôôUZ­öÉ©S§Š:::¼;²N§………‹ÅÄÆÿ{õÕWEFFžq1ŠC‡ÅZ,–²}ûöñŽ;·Û “É™L¡PxZ¹½þlŒ8ettô½×]w7)Zyy9>|occcäpÚ—””jjj:‘——7_«Õ ¾Õj…ÓéôÚx¸*Ð]]]D[[›°   ¥¤¤ä_¹¹¹žáefãø---` …cÇŽuÄÆÆX9šÃáp¬å ÕåååX»v-´Zíd›Í¶¹;´ã”8ÎZ[[ûe£T*•ÈÊÊbA¯Âƒáýªª*ÔÔÔ ¸¸‡Ã«á –T*e E¿,»ÝŽææfüðÃ˲/žª·Û-Ö°X–EEEň4БRRR²£ººúýo¾ù†°Ùlp»Ý°Ùl …˜7oî½÷^\ýõo©Tª`Š¢>9Š#555bΜ9ÈÈÈèe/ìììDuu5vîÜÉßµkW#MÓgT‰ûðáìVkÅ‘#GD?ÿü3Nœ8áuRîþé±0âRõñññk›ššþCQ”¤©© MMM(..&üüüÊù|¾òTZˆÇã‰>qâ<, òóóÑÔÔ»ÝîZݾ=Éd?~<ÂÃÃÑÑÑ’$y~~~i8Eiëššš§6oÞ<ãĉ°X,°Ûí¸îºë Ñhî<Õü^{íµ¦/¾øÂ;–½{÷"** ‹/ž¿©;ë yÀŽ9œŸŸÿ¤ÅbAÏL ‰W\q.¹ä’êžÕvhš¾nûöí1uuu(--…ÝnGSS4 —£ý´–H$rËårþ@ÙíííØ¿?®¿þú¿q+EQƒ¦&îêê"ÁmX$IÞ`È·§KMM„eÙ=c&¹{Ãív#-- $IZ[[[W¦¤¤œsû¸¸¸»Ýž}Ë-·ì5 ¨¨¨—É¡¾¾"‘¿üò‹¬±±±íÎ;ïœCQT¿ŠÈ§¢¨¨è!“ÉôþÞ½{‰ï¿ÿ: À s9ÒÊÎÂô.8N+×·F£Ypçw‚$IØív;v %%%²¢¢¢ÂSµ;v¬*!!ám™Læf4M{…oÉk·Û «ÕІ†ðx<–¢¨Öøøø¨”””ÕCõ_[[;cË–-/WUU¡­­ 6› *• S§Nm×h4§,©©©©Þ ]»ÝŽy'›žbIDATíÛ·cíÚµ())™çt:7¶{XUU•ÙÔÔÔº~ýz¢½½½×<55·ß~;+‹¯åŽÑ4ÍkiiyÿèÑ£8zô(¸ªÎÜo’$Á²ìi'IdYE ¨9455áóÏ?‡Ífû‚¦éAseY­Vb0[Ã0hiiùWEEŰs»„ØØX[HHÈ´´4çM7Ý„   ( ƒÁ€·Þz ”vtt˜víÚ5 ÛÙ&--m_bbâ[÷ß?¼Fx³ÙŒÆÆF455açμU«Vý7''gMÓªáô[[[{yIIImuuõ[¶l!vîÜ ­V뽯¤R),X@P9ÔCôbbÄDEEý×b±Íœ9sìo¿ý‡cÇŽ$ÉtÍ;÷Á¡Ú_zé¥x–-û¿²q;vì˜Å²ì–e¿˜={öˆ×üµµµÁÛ¶mÛ£ÕjÑÐЀÎÎNH$<úè£l``àœáö“™™Éêt:¢±±ÀÉô)GŽMÓHKK›wõÕW×›L¦G ů,2[ZZ^ûã?¦q;Vœ=d2žy愇‡oÒh4=Ÿ„7}üñǪœœ´··{íA À³Q¸Ýî»q r t:]¨Çã –h8©e9ràϘ1c;MÓS)Š*íyNEE…ˆ‹O(ë(Axùå—ƒßÿý ŽtœÃ¢¨-4M§¾øâ‹?O˜0ȧ~ƒÁǧӉ_ýyyyÄ=÷ÜóÛöíÛ‹gÏž}Î=ͳ³³Ÿp»Ý²¥K—Þ÷É'Ÿ ´´]]]Þ,‚ P\\Œ•+WN?~|Óüùóí111»Äbñrq²*xŒËåšâv»³ìv{bCCƒ¸¨¨¥¥¥¨««Cqq±WX …BcܸqìNýhC Ô:Z­Vª×ëõË–-VUUA­V#55ÉÉÉHLL\¹`Á‚SÚFFš¦É-[¶Ø«««ùUUU())ÍfÃ{gôôôç4ÍKÃíëðáÃ[^ýõy‡MÓˆŽŽpr9•‰çrQuÛÛ`6›½7g‹’ËåøòË/‘™™i"I2¢¨Öîñ >ÿüsë·ß~KÒ4 n'“C¡P`úôéxë­·œb±8S­V(ú¿¦¦&·©©é’ûᅢ/#22o¼ñ(Š‚L&;H’ä›ê:::&¬\¹ò£ÒÒRÂh4‚eY †^!G±±±xà°páÂã"‘h EQ§Ô´Oš¦I×ëõ/¾óÎ;’xý®€“iBÂÿoïÞc›¸<€ç7~ÄŽó0y™!„@J[Ò–†—ÒÐ’6”n¯)¢WZ‚´Uw«ëꤻjµT=Uôö$ÚÛÕ©½nW'hµ¨R(i)ïGÉ–@¯@HLœLp'~{Æ3sq„`ð£¿d=¶Ç?'£¯ó›ùý~X½z5ŒFcýO}úü;ÙÞ©S§´¾ýû÷£³³ýýýP{›‡ZJmH£ÑG2Uh4äççÃl6Ãl6;·BÖ›L&e.A¬_¿þâŽ; ív;8Ž()))Ðh4X¸p!Þÿ}¿N§{dÒ¤Icj§hiiùÏó«V®\‰îîîà™Ç‘°,‹iÓ¦!)) 6lŽ{&I~üñGlÛ¶ N§3RgÐɽ^œœ0 ƒ &àÝwß•gÍšõ–Édµ“öÝâ8. Àú‹/þvÏž=ì™3g`µZƒÿålìóÏ?£Ñ¸¿¼¼¼â^•e$uuuÿDÙÄó|ÚÅ‹±ÿ~¸Ýnð˲BH²Çã™àõzÓ%I§L™rÔd2]¹“FOŽãL ïÞ½»¨¯¯/­¾¾Þìr¹¦&%%5úÊ+¯4˜L¦qOy5”ÉdJÊËË+Óét/úý~µN§«ËÍÍ=œ™™éܸqãFs-Ã0j–eù@ à,,,C· €£··7QÅfQïë@|#á8n¡,Ë›¾ú꫹/^Ä™3gÐÛÛ çÄÄD<ùä“())‘'L˜°©´´ô_"YÞ .è !&«ÕZÔÜܼÈf³ÍAëóù<¢(vi4𦂂‚Š:øxJJJ"þwŽa ,hmm}©½½}óš5kžç±hÑ"B`4‘——³Ù\›››û[“Ét}¼ŸQ__ϪTª§Y–ý×óçÏ/jnnf,Kðlâ•+WPSSƒuëÖKHH(»—5;*úpWíõzÿ¸uëÖÉÓ›¡¯¯/x €Á`ÀÒ¥K1wî\155umiiéæÛo•Š&a ,¸víZ±×ë=xäȑ䆆†à™2¥qÊ”)òòåËÿž””ô{{ÇÒ·«¾¾žP¦R©~#IRÕõë×µJÕßét*‰‘˜˜ˆgžyF~ä‘G~Ÿ““³1l_ŠŠ)÷®r8¾üòË<«ÕŠsçÎ ªq <ýôÓ())ñêõúòòòò;> KEFX ¸9Ò£ÛíÞa³Ù–×ÖÖ¢­­-ØN£Õj¡Óé ×ë‘––&çææºŒFãƒÁð“Á`°j4,Ë‚  ‚ïóùLN§3µ½½]eµZár¹àv»¡ "¨ÑhœœŒ¥K—bΜ97RRRÊn×Í„úeà8Žø•Ãáø÷mÛ¶(ÁÕÓÓ3èP±ªª óæÍëÑëõ—••Y#[jêvÂXж¶¶RŸÏ·ùرcSöîÝ;h¸^BX–vSNO‡vÑ FEȲ †a Óé››‹µk×z333×BîxäH*þqÇxÎn·¿÷õ×_ÏêììDcc#B/ìÕëõ¨ªªBYYÙ_+**j"[bêVîY`)ÚÛÛ¸\®¿}óÍ7SNœ8·Û I’àv»ƒÃîŽV† [ü|ù€V«Å¤I“°råJaÖ¬Yï²,ûG“ÉDç£n‹ã¸ª+W®üéÀy7nÜ@cc#8ŽƒËusðŽ¬¬,TUU¹6lØÕc¼ý’ÝóÀRttt<èp8þçòåË%`Z[[¡œÞ½Õ%)))˜:u*ŠŠŠP\\욆a¶E°ˆÔ(î[ k$MMM«.]º´yçΪ‘ú»=öØc(**²Î™3瑉'ÞauGöïßÖjµ>xàÀœ:u °Ûíeذaÿì³ÏšF›¤„ЬûVÃÉ<°õܹsÇ222Z­Vë žµ,Ë"''çŒÃá(™8q¢´mPÔX:thoww÷’úúzìÛ·/8odvv6æÍ›‡™3gâ…^°çää”Ó°Š^ ,¨®®¶444\0hn»ÙXÖTWWÓ°¢ÆíøñãK{zz¾íèè [¶lAoo/dYFBB¦M›†É“'cÁ‚Riié§þ tN§¢SÄ t:Ýß1r` ë‡GQcuðàÁ£mmm øá444ÛG§OŸŽÌÌLL:«W¯>àÍ{5Â^QX©©©‡ü*tZ­Fuu5í?EËñãÇWµ´´,üüóÏÑÙÙ ½^|F£ÉÉÉX½zõÕôôô3™L_Eº¬ÔØEE`eddaYvЄZ­ö3d~7nÜø|ß¾}hooÇŒ3›› –ea6›ûÍfs €¯Ã9íuDE`B®B˲tg¢ÆåèÑ£ÿÜßßÏ466‚çy¨T*B°dÉ’½?þøRT±k\cº‡[uuµ{èð» ÃЊžçל;w.8dffŠË—/ІUl‹ŠÀ0l¼ð‘Ƨ¨±ðûýÊÌLJ`-X°`Q„‹E…AÔE— z»Ýì4Ï0 ***NDº\ÔÝ‹ÚÀ¢F—(ŠÄãñ;ÕÓ})~Dm`Bh[5.ÊõJ` \ÓGŨ ,Š/eV#eè"B½D&NDm`Ñ£îFh§~Xñƒw”° iÃ¢Í q"jK™¢ÂE ,I’h`ʼn¨I Z£¢Âeè°Û‘ó ¯¨ ,Š ·CCšXq"j‹Ö°¨p 9$¤îq‚·B+Â%¡Â…—†´aÑÄŠQXn´ +þDM`ÑNC2ŠVœ EQTÌ EÅ5Úà_¢&°(*œ”CÂÐa·©ØUEkYT¸ÑÀŠ/Q1 …‚aÚ‚ÑG}D0¸ù#{«c4ƒï ÷½¬Ô½U5ùöÛo_”e™`dYf–Êc2n$ä¹àóCÖÚ†rØFèkÉ罤m`†QÊ2l[!ŸI†¾/äuùìaŸ5´Ì!‡ms”׎¶Í‘Þ7lû£|Æ rôYËÿ.£}–ò?áù1Sfwh +ÞDU`…úý~¶±±qk‹QC‡Hº¤wrm\]Gÿ^ñ%jK!$I‚$IÁ™P” ”uÊý‘?ïÜ¡;ùÐûwºn,ËÑîßîyêîȲL+E]`\½z—.] uKQwŠVü‰ªÀJJJBRRÒ uJíFÙù”åÐõ·{¬l+t»C×öš±ÞÏã±¾æVë©‘)5s*~DM`}øá‡ôš†1ؾ}{ª(ŠÜn÷DŸÏ—.BF H“$É(Š¢A’¤Qõ’$%Š¢¨—eY#Š¢V’$$IZQU²,«%IRɲ̊¢HdYf%I"’$Y–™%{F’$fà€øPô£2lýHˡƺ^9ÄW~ˆnFrÈD¢(Ò}+NDM`Qc³bÅŠ>}Z"]–±Zµj@ @3p ½?ôú\"€tiËti*•*—a˜‰¢(`<σçy?Ÿ!ôù|4°â ,êžÛºu« €¸…ÕªU«´ÒY–5˜Ÿœœ¼Éf³©dY^ƒåv»£êijüh`Q1mÍš5ÉçC·Û]~íÚ5ãÙ³gAàp8‚‡”‹…îçq‚þ#©˜QWW§íîîns¹\é~¿Ÿ!xØÇqš››Áóûì3®««+k¼ƒôB`0ä¼¼¼T\±Ö°¨˜e³Ù…Õ‘#GÐÙÙ ·Û ŸÏžç!!P«ÕÐëõ0 0(//‡Z­†Óéd|>ßx)rß„+XTÌš5kV~ww÷q»ÝžµyófX,–àÂÐ3…„øý~x<ôöö¢½½>Ÿk×®õgeeýaÙ²eÿéïB =$¤âΞ={æûýþWyž/E1Q£Ñ\ÐjµÛ—-[ö×H—º;4°(ŠŠôŠKo½õ×ÚÚš)“™™(**zõ7Þø,Òå¢î­aQqçµ×^ ´´´°¡ëP[[KÇÅŠqtœ *îttt°‡ÍÍÍà8@>Ÿ7nü*Òe£î­aQqgöìÙ¾ .h•DŽ̟?‡¦5¬G‹ŠKf³ùI½^_ët:5%%%Ú´iÓ›‘.u÷h`Q3hEQ1ãÿ=×H×ê_IEND®B`‚QSapecNG-2.0.0-source/src/images/sapecng-64x64.png000644 001750 001750 00000005530 11617757645 022237 0ustar00simonesimone000000 000000 ‰PNG  IHDR@@ªiqÞsBIT|dˆ pHYs × ×B(›xtEXtSoftwarewww.inkscape.org›î< ÕIDATxœíZ{P“W?_ȃW@yÄ@0R\ˆ¸èj‘X_ <¤Aê`´ Xµb®H©UÚAíÀˆ•*•vG­0ŒŒ8ìÊ4²¤+LÔÝ t,µ» RÃC@˜Å $÷ìÛ°C+Ä™ò›¹“›s¿sß¹ù÷B!"üžÁ Ûº1)ÝÐIèv€nL @·tcRº “Ðíݘ€nèÆï^&ݼ(šššžŸÿÌ“ÊÊÊ +((¸dj;wîœóÕ«W¥ÝÝÝ{^yå««k±§§ç¥7˜öS©T,,,lêèè`ñcÇX|>ÿ™°¬­­µ×h4»ïÝ»·D$Õ„††^€Ûuuu¹¹¹"‘œñÊ•+T]]`íÚµ¥¥¥Ñç^ccã5‘Hô "¨TªØððpÌÉÉ1èt:VQQQËŽ;°¼¼<£¾¾>lûöí¸fÍÒÒÒâdLfBBBÈܹs1""‚,]ºýýý‰iâSQQ±ŒËåb|||³©ýðáÃÿppp@‰DdÞ¼y( Q"‘ÚÛÛÙˆ|ðÁ±XŒ‘‘‘äÂ… É£“ª»wïz/^¼˜DEEajj*¾ùæ›$""=<û¬yÉ’%L>ÿü󿙎­¯¯ßïàà€ , £ÅéèèpT©TD„ôôtG£½  ÀÞ´_UU•x$-/..nKIIyn2­V»Êô»Z­fH¥RT©Tþˆ„Éd"—ËÅwÞyç±N§³1ö=yòd×¾}ûHKKK°³³3Ξ=û™ù…B!²Ùl¼~ýúk×®]ûÈÏϧOŸŽûöíãš'€¹²cÇT(EÆPܹsç —ËE[[[\¶lÙÈ)))€<Ùl6:::âåË—#í3fÌ@ƒ<CCCqõêÕ¤¦¦fƒ¹pÏËËë ùÉÈÈÐ3 }Z‚!!!xðàA¥I8÷²X,ŒŽŽ6Œá§Ë¸¸téR€D"Áúúú0£ñòåËÛd2Y£R©|Õh+))iJLL$ˆ›6mHJJ6¶-X°€p8ÿ™ü`Μ9ÿÞ³gO#!òòòþž™™ù´¶¶öÆ®]»H~~>¿¿¿_ÿ¢Ù€1lx111d×®]XWW·Ö¨Î7lËÊÊš’’’pË–-C¦Ê}øá‡}‰„„‡‡“C‡]×jµSRRRÚ<==qùòåCíííöˆZ­Ö- ÀÀçóñõ×_×———÷‘HD²³³5枊F£™µnÝ:"‹1%%e¨®®Ž9ºO}}½d÷îÝ111$88˜$%% îèt:ÛñDÀH&ØÚÚê¨T*Û ÅÔžž „‡Ã@qqq²°°°˜q)kTUUå:u*»¯¯ …-gÏžõµ4ÇÈy€··÷#ooo¿ÒÒRugg'µjÕªî7ÞxËÏç/¬,¡Pø‘§§gV{{»M[[Ût«˜ ‹?þøÊÆõÍ`íO6mÚ„¬ÅaöÏa{{ûÿP­ÇðÃ?P+V¬8'•Js¬Å1–½A€¡¡!`³Ùg­ÉaV&“ùÔš¤/ŠááaHHH8oMŽ1¯Æ&BókbÌSaŠ¢ ²²òªñ;"Rð¿‹£2Ôè¶ÑuÓ~&ã¶gú˜Îk¬ÿÆe½8Ì Àd2µvvv T*BÀ`0€éç¯ÄÿßÀ¯~Ž®ÇZgÕ&xiwƒcA.—s!„_DœÑßßï×ÑÑߨØÈ–Ëå““óÔËË뾫«ëª¨¨¨ï-ÍOûípddä 4þ\@.—ûô÷÷/ïêêòæñxTee%'>>ÞÆÙÙy5X\Ú#Àjjjæ´µµ©¾úê+;ooo /‰Ýb2º³½_*›7o&ùùùç¬É1¡ÿC¤··÷'•JuКr ¼LLèx˜€nèÆ¤t;@7& Ûº1)ÝÐIèv€nL @·tãw/ÀÚ#;£ÐÜIEND®B`‚QSapecNG-2.0.0-source/src/images/sapecng.svg000644 001750 001750 00000324555 11617757645 021474 0ustar00simonesimone000000 000000 image/svg+xml QSapecNG-2.0.0-source/src/parser/crc_circuit.h000644 001750 001750 00000005370 11617757645 022013 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 CRC_CIRCUIT_H #define CRC_CIRCUIT_H #include "parser/parser.h" #include "exception/sapecngexception.h" #include namespace sapecng { class crc_builder: public abstract_builder { public: crc_builder( std::ostream& stream ): stream_(stream), out_(0) { } void add_circuit_properties(std::map map) { } void add_circuit_property(std::string name, std::string value) { } void add_wire_component( std::map props = std::map() ) { } void add_out_component( unsigned int v, std::map props = std::map() ); void add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props = std::map() ); void add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props = std::map() ); void add_unknow_component( std::map props = std::map() ) { } void begin_userdef_component( std::string name, std::map props = std::map() ) { } void end_userdef_component( std::string name, std::map props = std::map() ) { } void flush(); private: void add_item( std::string name, double value, bool symbolic, std::vector nodes ); private: std::ostream& stream_; unsigned int out_; }; } #endif // CRC_CIRCUIT_H QSapecNG-2.0.0-source/src/parser/ir_circuit.h000644 001750 001750 00000013610 11617757645 021652 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 IR_CIRCUIT_H #define IR_CIRCUIT_H #include "parser/parser.h" #include "exception/sapecngexception.h" #include #include #include #include #include namespace sapecng { class ir_parser: public abstract_parser { public: ir_parser() { } protected: void parse_internal(abstract_builder& builder); private: void parse_rec( abstract_builder& builder, boost::property_tree::ptree* head ); protected: typedef boost::error_info what; boost::property_tree::ptree ptree_; }; class info_parser: public ir_parser { public: info_parser( std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream ): stream_(stream) { } void parse(abstract_builder& builder) { try { boost::property_tree::info_parser::read_info(stream_, ptree_); parse_internal(builder); } catch(const boost::property_tree::info_parser::info_parser_error& ipe) { throw stream_read_error() << what(std::string(ipe.what())); } catch(const sapecng_exception& se) { se << what("info parser unknow error"); throw; } } private: std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream_; }; class xml_parser: public ir_parser { public: xml_parser( std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream ): stream_(stream) { } void parse(abstract_builder& builder) { try { boost::property_tree::xml_parser::read_xml(stream_, ptree_); parse_internal(builder); } catch(const boost::property_tree::xml_parser::xml_parser_error& xpe) { throw stream_read_error() << what(std::string(xpe.what())); } catch(const sapecng_exception& se) { se << what("xml parser unknow error"); throw; } } private: std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream_; }; class ir_builder: public abstract_builder { public: ir_builder(); void add_circuit_properties(std::map map); void add_circuit_property(std::string name, std::string value); void add_wire_component( std::map props = std::map() ); void add_out_component( unsigned int v, std::map props = std::map() ); void add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props = std::map() ); void add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props = std::map() ); void add_unknow_component( std::map props = std::map() ); void begin_userdef_component( std::string name, std::map props = std::map() ); void end_userdef_component( std::string name, std::map props = std::map() ); protected: typedef boost::error_info what; boost::property_tree::ptree ptree_; boost::property_tree::ptree* head_; std::stack stack_; private: void add_item( char id, std::string name, double value, bool symbolic, std::vector nodes, std::map props = std::map() ); }; class info_builder: public ir_builder { public: info_builder( std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream ): stream_(stream) { } void flush() { try { boost::property_tree::info_parser::write_info(stream_, ptree_); } catch(const boost::property_tree::info_parser::info_parser_error& ipe) { throw stream_write_error() << what(std::string(ipe.what())); } } private: std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream_; }; class xml_builder: public ir_builder { public: xml_builder( std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream ): stream_(stream) { } void flush() { try { boost::property_tree::xml_parser::write_xml(stream_, ptree_); } catch(const boost::property_tree::xml_parser::xml_parser_error& xpe) { throw stream_write_error() << what(std::string(xpe.what())); } } private: std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream_; }; } #endif // IR_CIRCUIT_H QSapecNG-2.0.0-source/src/parser/parser.h000644 001750 001750 00000007113 11617757645 021013 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 PARSER_H #define PARSER_H #include #include #include namespace sapecng { class abstract_builder { public: enum const_vertex { GROUND = 0, }; enum dual_component_type { R, // Resistor component type G, // Admittance component type L, // Inductor component type C, // Capacitor component type V, // Voltage source component type I, // Current source component type VM, // Voltmeter component type AM, // Ammeter component type }; enum quad_component_type { VCCS, // Voltage controlled current source component type VCVS, // Voltage controlled voltage source component type CCCS, // Current controlled current source component type CCVS, // Current controlled voltage source component type AO, // Operational amplifier component type n, // Ideal transformer component type K, // Mutual inductance component type }; enum userdef_component_type { X, // User defined component type }; public: virtual ~abstract_builder() { } virtual void add_circuit_properties( std::map map) = 0; virtual void add_circuit_property( std::string name, std::string value) = 0; virtual void add_wire_component( std::map props = std::map() ) = 0; virtual void add_out_component( unsigned int v, std::map props = std::map() ) = 0; virtual void add_dual_component( dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props = std::map() ) = 0; virtual void add_quad_component( quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props = std::map() ) = 0; virtual void add_unknow_component( std::map props = std::map() ) = 0; virtual void begin_userdef_component( std::string name, std::map props = std::map() ) = 0; virtual void end_userdef_component( std::string name, std::map props = std::map() ) = 0; virtual void flush() = 0; }; class abstract_parser { public: abstract_parser() { } virtual ~abstract_parser() { } virtual void parse(abstract_builder& builder) = 0; }; } #endif // PARSER_H QSapecNG-2.0.0-source/src/parser/parser_factory.h000644 001750 001750 00000005025 11617757645 022542 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 PARSER_FACTORY_H #define PARSER_FaCTORY_H #include #include #include namespace sapecng { class builder_factory { public: enum b_type { INFO, XML, CRC }; static abstract_builder* builder( builder_factory::b_type type, std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream ) { switch(type) { case INFO: return new info_builder(stream); case XML: return new xml_builder(stream); case CRC: return new crc_builder(stream); default: break; } return 0; } static abstract_builder* builder( std::string type, std::basic_ostream< boost::property_tree::ptree::key_type::value_type >& stream ) { if(type == "info") return builder(INFO, stream); if(type == "xml") return builder(XML, stream); if(type == "crc") return builder(CRC, stream); return 0; } }; class parser_factory { public: enum p_type { INFO, XML }; static abstract_parser* parser( parser_factory::p_type type, std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream ) { switch(type) { case INFO: return new info_parser(stream); case XML: return new xml_parser(stream); default: break; } return 0; } static abstract_parser* parser( std::string type, std::basic_istream< boost::property_tree::ptree::key_type::value_type >& stream ) { if(type == "info") return parser(INFO, stream); if(type == "xml") return parser(XML, stream); return 0; } }; } #endif // PARSER_FACTORY_H QSapecNG-2.0.0-source/src/parser/crc_circuit.cpp000644 001750 001750 00000012057 11617757645 022346 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "parser/crc_circuit.h" namespace sapecng { void crc_builder::add_out_component( unsigned int v, std::map props ) { out_ = v; } void crc_builder::add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props ) { std::vector nodes; nodes.push_back(va); nodes.push_back(vb); switch(c_type) { case abstract_builder::R: { if(name.size() == 0 || name.at(0) != 'R') name = "R_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::G: { if(name.size() == 0 || name.at(0) != 'G') name = "G_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::L: { if(name.size() == 0 || name.at(0) != 'L') name = "L_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::C: { if(name.size() == 0 || name.at(0) != 'C') name = "C_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::V: { if(name.size() == 0 || name.at(0) != 'V') name = "V_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::I: { if(name.size() == 0 || name.at(0) != 'I') name = "I_" + name; add_item(name, value, symbolic, nodes); break; } default: break; } } void crc_builder::add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props ) { std::vector nodes; nodes.push_back(va); nodes.push_back(vb); nodes.push_back(vac); nodes.push_back(vbc); switch(c_type) { case abstract_builder::VCCS: { if(name.size() == 0 || name.at(0) != 'H') name = "H_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::VCVS: { if(name.size() == 0 || name.at(0) != 'E') name = "E_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::CCCS: { if(name.size() == 0 || name.at(0) != 'F') name = "F_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::CCVS: { if(name.size() == 0 || name.at(0) != 'Y') name = "Y_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::AO: { if(name.size() == 0 || name.at(0) != 'A') name = "A_" + name; stream_ << name << " "; for(std::vector::size_type i = 0; i < nodes.size(); ++i) stream_ << nodes[i] << " "; stream_ << std::endl; break; } case abstract_builder::n: { if(name.size() == 0 || name.at(0) != 'n') name = "n_" + name; add_item(name, value, symbolic, nodes); break; } case abstract_builder::K: { if(name.size() == 0 || name.at(0) != 'K') name = "K_" + name; std::vector lp_nodes, ls_nodes; lp_nodes.push_back(va); lp_nodes.push_back(vb); ls_nodes.push_back(vac); ls_nodes.push_back(vbc); add_item( props["lp:name"], strtol(props["lp:value"].c_str(), 0, 10), symbolic, lp_nodes); add_item( props["ls:name"], strtol(props["ls:value"].c_str(), 0, 10), symbolic, ls_nodes); stream_ << name << " " << props["lp:name"] << " " << props["ls:name"]; stream_ << " " << value << " " << symbolic << std::endl; break; } default: break; } } void crc_builder::flush() { stream_ << ".OUT " << out_ << std::endl; stream_ << ".END" << std::endl; } void crc_builder::add_item( std::string name, double value, bool symbolic, std::vector nodes ) { stream_ << name << " "; for(std::vector::size_type i = 0; i < nodes.size(); ++i) stream_ << nodes[i] << " "; stream_ << value << " "; stream_ << symbolic << std::endl; } } QSapecNG-2.0.0-source/src/parser/ir_circuit.cpp000644 001750 001750 00000037060 11617757645 022212 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 "parser/ir_circuit.h" #include #include namespace sapecng { void ir_parser::parse_internal(abstract_builder& builder) { if(ptree_.get_child_optional("circuit")) { parse_rec(builder, &(ptree_.get_child("circuit"))); } } void ir_parser::parse_rec( abstract_builder& builder, boost::property_tree::ptree* head ) { try { std::map cmap; if(head->get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& cprop, head->get_child("props") ) cmap.insert(std::pair ( cprop.second.get("name", "property"), cprop.second.get("value", "value") ) ); builder.add_circuit_properties(cmap); } if(head->get_child_optional("out")) { boost::property_tree::ptree& o = head->get_child("out"); unsigned int node = boost::lexical_cast(o.get("node", "0")); std::map imap; if(o.get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& iprop, o.get_child("props") ) imap.insert(std::pair ( iprop.second.get("name", "property"), iprop.second.get("value", "value") ) ); } builder.add_out_component(node, imap); } if(head->get_child_optional("components")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& cc, head->get_child("components") ) { char id = cc.second.get("id", "none")[0]; std::string name = boost::lexical_cast(cc.second.get("name", "none")); double value = boost::lexical_cast(cc.second.get("value", "none")); bool symbolic = boost::lexical_cast(cc.second.get("symbolic", "none")); std::vector nodes; BOOST_FOREACH( boost::property_tree::ptree::value_type& node, cc.second.get_child("nodes") ) nodes.push_back(boost::lexical_cast( node.second.get_value())); std::map imap; if(cc.second.get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& iprop, cc.second.get_child("props") ) imap.insert(std::pair ( iprop.second.get("name", "property"), iprop.second.get("value", "value") ) ); } switch(id) { case 'R': builder.add_dual_component( abstract_builder::R, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'L': builder.add_dual_component( abstract_builder::L, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'G': builder.add_dual_component( abstract_builder::G, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'C': builder.add_dual_component( abstract_builder::C, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'V': builder.add_dual_component( abstract_builder::V, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'I': builder.add_dual_component( abstract_builder::I, name, value, symbolic, nodes.at(0), nodes.at(1), imap ); break; case 'v': builder.add_dual_component( abstract_builder::VM, name, 1., false, nodes.at(0), nodes.at(1), imap ); break; case 'a': builder.add_dual_component( abstract_builder::AM, name, 1., false, nodes.at(0), nodes.at(1), imap ); break; case 'H': builder.add_quad_component( abstract_builder::VCCS, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'E': builder.add_quad_component( abstract_builder::VCVS, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'F': builder.add_quad_component( abstract_builder::CCCS, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'Y': builder.add_quad_component( abstract_builder::CCVS, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'A': builder.add_quad_component( abstract_builder::AO, name, 1., false, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'n': builder.add_quad_component( abstract_builder::n, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; case 'K': builder.add_quad_component( abstract_builder::K, name, value, symbolic, nodes.at(0), nodes.at(1), nodes.at(2), nodes.at(3), imap ); break; } } } if(head->get_child_optional("wires")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& w, head->get_child("wires") ) { std::map imap; if(w.second.get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& iprop, w.second.get_child("props") ) imap.insert(std::pair ( iprop.second.get("name", "property"), iprop.second.get("value", "value") ) ); } builder.add_wire_component(imap); } } if(head->get_child_optional("unknows")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& u, head->get_child("unknows") ) { std::map imap; if(u.second.get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& iprop, u.second.get_child("props") ) imap.insert(std::pair ( iprop.second.get("name", "property"), iprop.second.get("value", "value") ) ); } builder.add_unknow_component(imap); } } if(head->get_child_optional("userdefs")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& ud, head->get_child("userdefs") ) { std::string name = boost::lexical_cast(ud.second.get("name", "none")); std::map imap; if(ud.second.get_child_optional("props")) { BOOST_FOREACH( boost::property_tree::ptree::value_type& iprop, ud.second.get_child("props") ) imap.insert(std::pair ( iprop.second.get("name", "property"), iprop.second.get("value", "value") ) ); } builder.begin_userdef_component(name, imap); parse_rec(builder, &(ud.second.get_child("def"))); builder.end_userdef_component(name, imap); } } builder.flush(); } catch(const boost::bad_lexical_cast& blc) { throw read_error() << what(std::string(blc.what())); } } ir_builder::ir_builder(): head_(0) { boost::property_tree::ptree cc; head_ = &(ptree_.add_child("circuit", cc)); } void ir_builder::add_circuit_properties(std::map map) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = map.begin(); i != map.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); head_->add_child("props.prop", cprop); } } void ir_builder::add_circuit_property(std::string name, std::string value) { boost::property_tree::ptree cprop; cprop.put("name", name); cprop.put("value", value); head_->add_child("props.prop", cprop); } void ir_builder::add_wire_component( std::map props ) { boost::property_tree::ptree cc; if(!props.empty()) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = props.begin(); i != props.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); cc.add_child("props.prop", cprop); } } head_->add_child("wires.wire", cc); } void ir_builder::add_out_component( unsigned int v, std::map props ) { boost::property_tree::ptree cc; cc.put("node", v); if(!props.empty()) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = props.begin(); i != props.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); cc.add_child("props.prop", cprop); } } head_->put_child("out", cc); } void ir_builder::add_dual_component( abstract_builder::dual_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, std::map props ) { std::vector nodes; nodes.push_back(va); nodes.push_back(vb); switch(c_type) { case abstract_builder::R: { add_item('R', name, value, symbolic, nodes, props); break; } case abstract_builder::G: { add_item('G', name, value, symbolic, nodes, props); break; } case abstract_builder::L: { add_item('L', name, value, symbolic, nodes, props); break; } case abstract_builder::C: { add_item('C', name, value, symbolic, nodes, props); break; } case abstract_builder::V: { add_item('V', name, value, symbolic, nodes, props); break; } case abstract_builder::I: { add_item('I', name, value, symbolic, nodes, props); break; } case abstract_builder::VM: { add_item('v', name, value, symbolic, nodes, props); break; } case abstract_builder::AM: { add_item('a', name, value, symbolic, nodes, props); break; } default: break; } } void ir_builder::add_quad_component( abstract_builder::quad_component_type c_type, std::string name, double value, bool symbolic, unsigned int va, unsigned int vb, unsigned int vac, unsigned int vbc, std::map props ) { std::vector nodes; nodes.push_back(va); nodes.push_back(vb); nodes.push_back(vac); nodes.push_back(vbc); switch(c_type) { case abstract_builder::VCCS: { add_item('H', name, value, symbolic, nodes, props); break; } case abstract_builder::VCVS: { add_item('E', name, value, symbolic, nodes, props); break; } case abstract_builder::CCCS: { add_item('F', name, value, symbolic, nodes, props); break; } case abstract_builder::CCVS: { add_item('Y', name, value, symbolic, nodes, props); break; } case abstract_builder::AO: { add_item('A', name, value, symbolic, nodes, props); break; } case abstract_builder::n: { add_item('n', name, value, symbolic, nodes, props); break; } case abstract_builder::K: { add_item('K', name, value, symbolic, nodes, props); break; } default: break; } } void ir_builder::add_unknow_component( std::map props ) { boost::property_tree::ptree cc; if(!props.empty()) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = props.begin(); i != props.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); cc.add_child("props.prop", cprop); } } head_->add_child("unknows.unknow", cc); } void ir_builder::begin_userdef_component( std::string name, std::map props ) { boost::property_tree::ptree ud; ud.put("name", name); if(!props.empty()) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = props.begin(); i != props.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); ud.add_child("props.prop", cprop); } } boost::property_tree::ptree* foo = &(head_->add_child("userdefs.userdef", ud)); stack_.push(head_); boost::property_tree::ptree def; head_ = &(foo->add_child("def", def)); } void ir_builder::end_userdef_component( std::string name, std::map props ) { head_ = stack_.top(); stack_.pop(); } void ir_builder::add_item( char id, std::string name, double value, bool symbolic, std::vector nodes, std::map props ) { boost::property_tree::ptree cc; cc.put("id", id); cc.put("name", name); cc.put("value", value); cc.put("symbolic", (int) symbolic); typedef std::vector::const_iterator ci; for(ci i = nodes.begin(); i != nodes.end(); ++i) cc.add("nodes.node", *i); if(!props.empty()) { boost::property_tree::ptree cprop; typedef std::map::const_iterator ci; for(ci i = props.begin(); i != props.end(); ++i) { cprop.put("name", i->first); cprop.put("value", i->second); cc.add_child("props.prop", cprop); } } head_->add_child("components.component", cc); } } QSapecNG-2.0.0-source/src/exception/sapecngexception.h000644 001750 001750 00000003030 11617757645 023552 0ustar00simonesimone000000 000000 /* SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit Copyright (C) 2009, Michele Caini 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 3 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 SAPECNGEXCEPTION_H #define SAPECNGEXCEPTION_H #include namespace sapecng { struct sapecng_exception : virtual std::exception, virtual boost::exception { }; struct io_error: virtual sapecng_exception { }; struct file_error: virtual sapecng_exception { }; struct stream_error: virtual sapecng_exception { }; struct read_error: virtual sapecng_exception { }; struct write_error: virtual sapecng_exception { }; struct file_read_error : virtual file_error, virtual read_error { }; struct file_write_error : virtual file_error, virtual write_error { }; struct stream_read_error : virtual stream_error, virtual read_error { }; struct stream_write_error : virtual stream_error, virtual write_error { }; } #endif // SAPECNGEXCEPTION_H QSapecNG-2.0.0-source/src/stuff.dox000644 001750 001750 00000023745 11617757645 017726 0ustar00simonesimone000000 000000 /*! * \mainpage QSapecNG - Qt-based Symbolic Analysis Program for Electric Circuits (New Generation) * * \image html qsapecng-splash.png * \image latex qsapecng-splash.png * * \section intro_sec Introduction * * QSapecNG is a Qt-based program for symbolic analysis of linear analog circuits. \n * In fact, it consists of two indipendent parts: the SapecNG framework engine and the application gui QSapecNG. \n * It is an open source, multi-platform project, continuously enhanced by students and researchers of Department of Electronics and Telecommunications of the University of Florence. \n * It comes as continuation of SapWin for Windows, in order to give to the project a full compatibility on other platforms. \n * Through SapecNG/QSapecNG users can draw, solve and analyze analog circuits as well as manage them. Since version 2.0.0beta1 there * is also the full support for sub-circuits that can be created, saved, reopened and added as part of other circuits.\n * \n * SapecNG/QSapecNG is freely available on SourceForge.net (https://sourceforge.net/projects/qsapecng/). \n * A previous version of SapecNG is available too, on SourceForge.net (https://sourceforge.net/projects/sapec-ng/). \n * Pre-compiled packages will be also available from projects related pages. * * \subsection portability_subsec QSapecNG means portability * * SapecNG and QSapecNG are based on the portable framework Boost C++ (http://www.boost.org/) and on the Qt toolkit by Nokia (http://qt.nokia.com/). \n * Qwt - Qt Widgets for Technical Applications (http://qwt.sourceforge.net/) and Qt Property Browser shipped with the toolkit from Qt Solutions have been used too. \n * Moreover code is platform indipendent and it's based on the build system CMake (http://www.cmake.org/), which is a cross-platform, open-source set of tools. \n * Hence users can compile, use and join the software, and cooperate to the development of SapecNG/QSapecNG, regardless of the operating system in use. * * \subsection open-source_subsec QSapecNG means open-source * * SapecNG and QSapecNG are developed using open-source frameworks and toolkits. The code is freely available and any help or suggestion is appreciated. \n * Since the result of a degree thesis depicts not only a destination but a starting point, developers' aim is to carry out the project as long as possible. \n * SapecNG/QSapecNG can be thought as a young project that looks to the future, like a new generation family of multi-purpose symbolic analysis program. * * \subsection easytouse_subsec QSapecNG means easy to use * * SapecNG and QSapecNG are designed to be easy to use. But easy who for? \n * SapecNG framework engine aims to offer a wide range set of services to the developers, so everyone can develop a fully personalized interface. \n * Fully personalized interface means low-level interaction program as well as graphical user interface based on different toolkits (i.e. GTK+ on http://www.gtk.org/). \n * QSapecNG is the high level part of the application and attempts to make easy the design and the resolution of electric circuits, as well as their analysis. \n * Despite to the complexity of the underlying framework, the GUI leads both new and experienced users through a carefully and user-friendly designed interface. * * \section contact_sec Contact us * * Project coordinators are Prof. S. Manetti (who developed last version of SapWin) and Prof. A. Luchetta (luchetta@unifi.it). \n * Chef developer of SapecNG and QSapecNG is M. Caini (michele.caini@gmail.com). \n * Debian packager and maintainer S. Rossetto (simros85@gmail.com). \n * \n * Please feel free to contact us for informations about the projects, or if you wish to work with us. * * \section note_sec Note * * Documentation is not complete, that's a work in progress. Please be patient. :-) * * \htmlonly *

* Support This Project *
* \endhtmlonly */ /*! * \page inst_sapecng HowTo - Compile sapecng * * \section inst_sapecng_sec Compile sapecng * * The process of building an executable of sapecng is quite easy, both on GNU/Linux or Microsoft Windows systems. \n * If you intend to compile sapecng under Microsoft Windows systems, we suggest to use MinGW - Minimalist GNU for Windows (http://www.mingw.org/). \n * \n * To compile latest stable version, follow these steps: * - download the software with the command: * - svn co https://sapec-ng.svn.sourceforge.net/svnroot/sapec-ng/branches/1.8.2 sapec-ng * - jump into the \a sapec-ng directory * - compile software with the command: * - ./configure && make all * * You will find the executable located into \a sapec-ng/src directory. That's all. */ /*! * \page inst_qsapecng HowTo - Compile QSapecNG * * \section inst_qsapecng_sec Compile QSapecNG * * Working both on GNU/Linux or Microsoft Windows systems requires several steps which are useful to prepare the environment. \n * Users of Unix-like systems maybe are able to retrieve needed packages from a dedicated package manager, otherwise can download them from the correct sources. \n * \b Attention: if you want to compile QSapecNG you need development headers and libraries, not only shared (or static) libraries. \n * \n * These are the libraries you need: * - Qt - Cross-platform application and UI framework, from here (version 4.6, or newer) * - Boost C++ Libraries, from here (version 1.42, or newer) * - Qwt - Qt Widgets for Technical Applications, from here (version 5.x) * - CMake - the cross-platform, open-source build system, from here (version 2.6, or newer) * - nullsoft scriptable install system, from here (if you would like to prepare a package for Microsoft Windows systems) * * At the end, you will be ready to compile QSapecNG. \n * If you will encounter difficulties, please keep in mind that pre-compiled packages are available (or they will be soon) for download from SourceForge.net directory. \n * \n * To compile QSapecNG, please look at the section dedicated to your system. * * \subsection qsapecng_lin_sec Compile QSapecNG on GNU/Linux systems * * Once environment has been prepared, these are the necessaries steps you have to follow to compile the software: * - download the latest snapshot of the software with the command: * - svn co https://qsapecng.svn.sourceforge.net/svnroot/qsapecng/trunk qsapecng * - or if you prefer a stable tag, svn co https://qsapecng.svn.sourceforge.net/svnroot/qsapecng/tags/qsapecng-x.y.z qsapecng \n * where \a x, \a y, and \a z are respectively \a major, \a minor, and \a patches release number * - jump into the \a qsapecng directory * - check your system with the command: * - cmake CMakeLists.txt * - then compile as follow: * - make all * - working as root, you can install executable into the system (\a /usr/local/bin/qsapecng) launching: * - make install * * If it works, you will find an executable called \a qsapecng into the \a bin subdirectory, or a system-wide executable. \n * \n * If you want to pack compiled software, you can use \a cpack, a software shipped with \a cmake. To do that, launch from main directory: * - cpack * * You will find QSapecNG-x.y.z.[deb|tar.bz2|tar.gz|tar.Z] packages placed into the main directory. * * \subsection qsapecng_win_sec Compile QSapecNG on Microsoft Windows systems * * Under Microsoft Windows systems, you can prepare environment using cmake by command line as previously shown. \n * Then compile with Visual Studio or other equivalent IDEs which support Makefile architecture. That's all. */ /*! * \page screenshots Screenshots * * \image html screenshots/ss-0.png * \image latex screenshots/ss-0.png * \n \n \n * \image html screenshots/ss-1.png * \image latex screenshots/ss-1.png * \n \n \n * \image html screenshots/ss-2.png * \image latex screenshots/ss-2.png * \n \n \n * \image html screenshots/ss-3.png * \image latex screenshots/ss-3.png * \n \n \n * \image html screenshots/ss-4.png * \image latex screenshots/ss-4.png */ /*! * \page sapecnglic License - SapecNG * * SapecNG - Next Generation Symbolic Analysis Program for Electric Circuit \n * Copyright (C) 2009, Michele Caini \n * \n * This program is free software: you can redistribute it and/or modify \n * it under the terms of the GNU General Public License as published by \n * the Free Software Foundation, either version 3 of the License, or \n * (at your option) any later version. \n * \n * This program is distributed in the hope that it will be useful, \n * but WITHOUT ANY WARRANTY; without even the implied warranty of \n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \n * GNU General Public License for more details. \n * \n * You should have received a copy of the GNU General Public License \n * along with this program. If not, see . */ /*! * \page qsapecnglic License - QSapecNG * * QSapecNG - Qt based SapecNG GUI front-end \n * Copyright (C) 2009, Michele Caini \n * \n * This program is free software: you can redistribute it and/or modify \n * it under the terms of the GNU General Public License as published by \n * the Free Software Foundation, either version 3 of the License, or \n * (at your option) any later version. \n * \n * This program is distributed in the hope that it will be useful, \n * but WITHOUT ANY WARRANTY; without even the implied warranty of \n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the \n * GNU General Public License for more details. \n * \n * You should have received a copy of the GNU General Public License \n * along with this program. If not, see . */ QSapecNG-2.0.0-source/src/CMakeLists.txt000644 001750 001750 00000033503 11617757645 020614 0ustar00simonesimone000000 000000 find_package( Boost 1.41.0 REQUIRED ) find_package( Qt4 COMPONENTS QtCore QtGui REQUIRED ) find_package( Qwt5 REQUIRED ) if(WIN32) set( QT_USE_QTMAIN 1 ) endif(WIN32) include( ${QT_USE_FILE} ) add_definitions( ${QT_DEFINITIONS} ) include_directories( ${QT_INCLUDES} ${Qwt5_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ) ### PLATFORM SPECIFIC DATA ### set(OUTPUT_BIN_FOLDER bin) set(OUTPUT_BIN_FOLDER "${OUTPUT_BIN_FOLDER}" PARENT_SCOPE) set(OUTPUT_BUNDLE_FOLDER "./") set(OUTPUT_FRAMEWORKS_FOLDER Frameworks) set(OUTPUT_RESOURCES_FOLDER_NAME Resources) set(BUNDLE_ICON) if(UNIX AND NOT WIN32 AND NOT APPLE) set(OUTPUT_BIN_NAME "qsapecng") set(OUTPUT_BIN_NAME "${OUTPUT_BIN_NAME}" PARENT_SCOPE) #set(OUTPUT_DOC_FOLDER "share/doc/${OUTPUT_BIN_NAME}") elseif(APPLE) set(OUTPUT_BIN_NAME "QSapecNG") set(OUTPUT_BIN_NAME "${OUTPUT_BIN_NAME}" PARENT_SCOPE) set(OUTPUT_DOC_FOLDER "${OUTPUT_BIN_NAME}.app/Contents/${OUTPUT_RESOURCES_FOLDER_NAME}/doc") set(OUTPUT_RES_FOLDER "${OUTPUT_BIN_NAME}.app/Contents/${OUTPUT_RESOURCES_FOLDER_NAME}") set(OUTPUT_BUNDLE_NAME "QSapecNG") option(INCLUDE_REQUIRED_LIBRARIES_INTO_BUNDLE "Enable this option to include required external libraries into application Bundle (default ON)" ON) set(MACOSX_BUNDLE_ICON_FILE "qsapecng.icns") set(BUNDLE_ICON "gui/images/${MACOSX_BUNDLE_ICON_FILE}") set_source_files_properties("${CMAKE_CURRENT_SOURCE_DIR}/gui/images/${MACOSX_BUNDLE_ICON_FILE}" PROPERTIES MACOSX_PACKAGE_LOCATION "${OUTPUT_RESOURCES_FOLDER_NAME}") # This section is for Info.plist and ${lang}.lproj subfolders set(MACOSX_BUNDLE_DISPLAY_NAME "${OUTPUT_BUNDLE_NAME}") set(MACOSX_BUNDLE_NAME "${OUTPUT_BUNDLE_NAME}") set(MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION_MAJOR}-${PROJECT_VERSION_MINOR}-${PROJECT_VERSION_PATCH}") set(MACOSX_BUNDLE_COPYRIGHT "Copyright (C) ${PROJECT_YEAR_COPYRIGHT} ${PROJECT_AUTHOR}") set(MACOSX_BUNDLE_VERSION "${PROJECT_VERSION}") set(MACOSX_BUNDLE_DEVELOPMENT_REGION "it_IT") set(MACOSX_BUNDLE_EXECUTABLE "${OUTPUT_BIN_NAME}") set(MACOSX_BUNDLE_IDENTIFIER "net.sourceforge.qsapecng") set(MACOSX_BUNDLE_PACKAGE_TYPE "APPL") set(MACOSX_BUNDLE_ADDITIONAL "LSHasLocalizedDisplayName\n1") # TODO da ritestare configure_file("${PROJECT_SOURCE_DIR}/cmake/MacOSXBundle_Info.plist.in" "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" @ONLY) # this section is to fixup the bundle after it has been created set(FIXUP_BUNDLE_PATH "${PROJECT_BINARY_DIR}/${OUTPUT_BIN_FOLDER}/${OUTPUT_BIN_NAME}.app") set(FIXUP_BUNDLE_LIBS "") set(FIXUP_BUNDLE_DIRS "${Qwt5_INCLUDE_DIR}/../lib") configure_file("${PROJECT_SOURCE_DIR}/cmake/MacOSXBundle_fixup_bundle.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/fixup_bundle.cmake" @ONLY) if(INCLUDE_REQUIRED_LIBRARIES_INTO_BUNDLE) add_custom_target(fixup_bundle ALL COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/fixup_bundle.cmake") else(INCLUDE_REQUIRED_LIBRARIES_INTO_BUNDLE) add_custom_target(fixup_bundle COMMAND "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/fixup_bundle.cmake") message(STATUS "You can execute 'make fixup_bundle' to manually fixup the created bundle before distributing it") endif(INCLUDE_REQUIRED_LIBRARIES_INTO_BUNDLE) elseif(WIN32) # Lo metterei maiuscolo su Windows, però ci sono da cambiare alcuni # percorsi in altri file di CMake. set(OUTPUT_BIN_NAME "qsapecng") set(OUTPUT_BIN_NAME "${OUTPUT_BIN_NAME}" PARENT_SCOPE) #set(OUTPUT_DOC_FOLDER "doc") unset(QT_DLL_DIR CACHE) find_path(QT_DLL_DIR NAMES "QtCore${QT_VERSION_MAJOR}.dll" "QtGui${QT_VERSION_MAJOR}.dll" PATHS "${QT_BINARY_DIR}" "${QT_LIBRARY_DIR}" "${QT_LIBRARY_DIR}/../bin" DOC "path of the Qt DLL files to be included in the binary packages" NO_DEFAULT_PATH ) unset(QWT5_DLL_DIR CACHE) find_path(QWT5_DLL_DIR NAMES "qwt5.dll" PATHS "${Qwt5_INCLUDE_DIR}/../lib" "${Qwt5_INCLUDE_DIR}/../bin" PATH_SUFFIXES lib bin ENV PATH DOC "path of the Qwt DLL files to be included in the binary packages" ) if(NOT QT_DLL_DIR STREQUAL "QT_DLL_DIR-NOTFOUND" AND NOT QT_CONFIG MATCHES "static") option(INCLUDE_QT_DLL_IN_BIN_PACKAGE "Enable this option to include Qt DLL files in binary packages (default ON)" ON) else(NOT QT_DLL_DIR STREQUAL "QT_DLL_DIR-NOTFOUND" AND NOT QT_CONFIG MATCHES "static") unset(INCLUDE_QT_DLL_IN_BIN_PACKAGE CACHE) set(INCLUDE_QT_DLL_IN_BIN_PACKAGE OFF) mark_as_advanced(INCLUDE_QT_DLL_IN_BIN_PACKAGE) mark_as_advanced(QT_DLL_DIR) endif(NOT QT_DLL_DIR STREQUAL "QT_DLL_DIR-NOTFOUND" AND NOT QT_CONFIG MATCHES "static") if(NOT QWT5_DLL_DIR STREQUAL "QWT5_DLL_DIR-NOTFOUND") option(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE "Enable this option to include Qwt DLL files in binary packages (default ON)" ON) else(NOT QWT5_DLL_DIR STREQUAL "QWT5_DLL_DIR-NOTFOUND") unset(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE CACHE) set(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE OFF) mark_as_advanced(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE) mark_as_advanced(QWT5_DLL_DIR) endif(NOT QWT5_DLL_DIR STREQUAL "QWT5_DLL_DIR-NOTFOUND") endif() set( LIBS ${LIBS} ${QT_LIBRARIES} ${Qwt5_Qt4_LIBRARY} ) IF(WIN32) set( LIBS ${LIBS} Imm32.lib Winmm.lib ws2_32.lib ) ENDIF(WIN32) set( qtpropertyeditor_SRCS gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/qtpropertymanager.cpp gui/qtsolutions/qtpropertyeditor/qteditorfactory.cpp gui/qtsolutions/qtpropertyeditor/qtvariantproperty.cpp gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/qtbuttonpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/qtgroupboxpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/qtpropertybrowserutils.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtpropertybrowser.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtpropertymanager.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtpropertymanager.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qteditorfactory.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qteditorfactory.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtvariantproperty.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtvariantproperty.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qttreepropertybrowser.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtbuttonpropertybrowser.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtbuttonpropertybrowser.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtgroupboxpropertybrowser.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtgroupboxpropertybrowser.cpp ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtpropertymanager.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtpropertymanager.moc ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qteditorfactory.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qteditorfactory.moc ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.cpp ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.moc ) set( qtpropertyeditor_HEADERS_ONLY_MOC gui/qtsolutions/qtpropertyeditor/moc_qtpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/moc_qtpropertymanager.cpp gui/qtsolutions/qtpropertyeditor/moc_qteditorfactory.cpp gui/qtsolutions/qtpropertyeditor/moc_qtvariantproperty.cpp gui/qtsolutions/qtpropertyeditor/moc_qttreepropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/moc_qtbuttonpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/moc_qtgroupboxpropertybrowser.cpp gui/qtsolutions/qtpropertyeditor/qtpropertymanager.moc gui/qtsolutions/qtpropertyeditor/qteditorfactory.moc gui/qtsolutions/qtpropertyeditor/qttreepropertybrowser.moc ) set_source_files_properties( ${qtpropertyeditor_HEADERS_ONLY_MOC} PROPERTIES HEADER_FILE_ONLY true ) qt4_generate_moc( ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/qtpropertybrowserutils_p.h ${CMAKE_CURRENT_SOURCE_DIR}/gui/qtsolutions/qtpropertyeditor/moc_qtpropertybrowserutils_p.cpp ) set( qtpropertyeditor_HEADERS_MOC gui/qtsolutions/qtpropertyeditor/moc_qtpropertybrowserutils_p.cpp ) set( qtpropertyeditor_MOC ${qtpropertyeditor_HEADERS_MOC} ${qtpropertyeditor_HEADERS_ONLY_MOC} ) qt4_add_resources( qtpropertyeditor_RESOURCES gui/qtsolutions/qtpropertyeditor/qtpropertybrowser.qrc ) set( qsapecng_SRCS logger/logger.cpp model/circuit.cpp model/metacircuit.cpp parser/ir_circuit.cpp parser/crc_circuit.cpp functor/rpoly-adapter.cpp functor/rpoly.cpp gui/qsapecng.cpp gui/settings.cpp gui/qsapecngwindow.cpp gui/configdialog/configdialog.cpp gui/configdialog/configpage.cpp gui/sidebarmodel.cpp gui/sidebarview.cpp gui/delegate.cpp gui/editor/schematiceditor.cpp gui/editor/undoredocommand.cpp gui/editor/schematicsceneparser.cpp gui/editor/schematicscene.cpp gui/editor/graphicsnode.cpp gui/editor/component.cpp gui/editor/label.cpp gui/editor/wire.cpp gui/editor/item.cpp gui/workplane/workplane.cpp ) set( qsapecng_HEADERS_MOC gui/qsapecngwindow.h gui/extendedmdiarea.h gui/configdialog/configdialog.h gui/configdialog/configpage.h gui/sidebarmodel.h gui/sidebarview.h gui/delegate.h gui/qlogger.h gui/editor/schematiceditor.h gui/editor/propertytextitem.hpp gui/editor/metacircuit_thread.hpp gui/editor/schematicscene.h gui/editor/schematicview.h gui/workplane/workplane.h ) qt4_wrap_cpp( qsapecng_MOC ${qsapecng_HEADERS_MOC} ) qt4_add_resources( qsapecng_RESOURCES gui/qsapecng.qrc ) set( CMAKE_RUNTIME_OUTPUT_DIRECTORY "../${OUTPUT_BIN_FOLDER}" ) add_executable( qsapecng WIN32 MACOSX_BUNDLE gui/qsapecng.rc ${qsapecng_MOC} ${qsapecng_SRCS} ${qsapecng_RESOURCES} ${qtpropertyeditor_MOC} ${qtpropertyeditor_SRCS} ${qtpropertyeditor_RESOURCES} "${BUNDLE_ICON}" ) target_link_libraries( qsapecng ${LIBS} ) set_target_properties(qsapecng PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_BINARY_DIR}/Info.plist" OUTPUT_NAME "${OUTPUT_BIN_NAME}" ) install( TARGETS qsapecng RUNTIME DESTINATION "${OUTPUT_BIN_FOLDER}" BUNDLE DESTINATION "${OUTPUT_BUNDLE_FOLDER}" ) if(UNIX AND NOT APPLE AND NOT WIN32) install( FILES gui/images/qsapecng.desktop DESTINATION share/applications ) install( FILES gui/images/qsapecng-16x16.png DESTINATION share/icons/hicolor/16x16/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-24x24.png DESTINATION share/icons/hicolor/24x24/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-32x32.png DESTINATION share/icons/hicolor/32x32/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-48x48.png DESTINATION share/icons/hicolor/48x48/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-64x64.png DESTINATION share/icons/hicolor/64x64/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-128x128.png DESTINATION share/icons/hicolor/128x128/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng-256x256.png DESTINATION share/icons/hicolor/256x256/apps RENAME qsapecng.png ) install( FILES gui/images/qsapecng.svg DESTINATION share/icons/hicolor/scalable/apps ) endif(UNIX AND NOT APPLE AND NOT WIN32) if(WIN32) if(INCLUDE_QT_DLL_IN_BIN_PACKAGE) install( FILES "${QT_DLL_DIR}/QtCore${QT_VERSION_MAJOR}.dll" "${QT_DLL_DIR}/QtGui${QT_VERSION_MAJOR}.dll" DESTINATION "${OUTPUT_BIN_FOLDER}" ) endif(INCLUDE_QT_DLL_IN_BIN_PACKAGE) if(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE) install( FILES "${QWT5_DLL_DIR}/qwt5.dll" DESTINATION "${OUTPUT_BIN_FOLDER}" ) endif(INCLUDE_QWT5_DLL_IN_BIN_PACKAGE) endif(WIN32) if(APPLE) add_dependencies(fixup_bundle qsapecng) install( FILES "${PROJECT_SOURCE_DIR}/LICENSE" "${PROJECT_SOURCE_DIR}/README" DESTINATION "${OUTPUT_DOC_FOLDER}" ) #install(FILES gui/images/qsapecng.svg DESTINATION "${OUTPUT_RES_FOLDER}") install(FILES "${PROJECT_SOURCE_DIR}/cmake/DS_Store" DESTINATION "${OUTPUT_BUNDLE_FOLDER}" RENAME .DS_Store) # Questa parte serve quando ci saranno i file con le stringhe tradotte in altre lingue # dato che ho fatto copia-incolla da altro progetto lo lascio. # # file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/InfoPlist.strings" "CFBundleDisplayName = \"${MACOSX_BUNDLE_DISPLAY_NAME}\";\nCFBundleName = \"${MACOSX_BUNDLE_NAME}\";\nNSHumanReadableCopyright = \"${MACOSX_BUNDLE_COPYRIGHT}\";\nCFBundleShortVersionString = \"${MACOSX_BUNDLE_SHORT_VERSION_STRING}\";") # foreach(lang_loop IN LISTS TRANSLATIONS) # if(${lang_loop} MATCHES "qsapecng_([a-z][a-z](_[A-Z][A-Z])?)\\.") # string(REGEX REPLACE ".*lang/qsapecng_([a-z][a-z](_[A-Z][A-Z])?)\\..*" "\\1" lang "${lang_loop}") # configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/MacOSXBundle_locversion.plist.in" "${CMAKE_CURRENT_BINARY_DIR}/${lang}.lproj/locversion.plist" @ONLY) # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${lang}.lproj/locversion.plist" DESTINATION "${OUTPUT_RES_FOLDER}/${lang}.lproj") # install(FILES "${CMAKE_CURRENT_BINARY_DIR}/InfoPlist.strings" DESTINATION "${OUTPUT_RES_FOLDER}/${lang}.lproj") # endif(${lang_loop} MATCHES "qsapecng_([a-z][a-z](_[A-Z][A-Z])?)\\.") # endforeach(lang_loop) endif(APPLE) QSapecNG-2.0.0-source/config.h.in000644 001750 001750 00000000334 11617757645 017304 0ustar00simonesimone000000 000000 #ifndef CONFIG_H #define CONFIG_H #define SETTINGS_ORGANIZATION "${SETTINGS_ORGANIZATION}" #define SETTINGS_APPLICATION "${SETTINGS_APPLICATION}" #cmakedefine WIN32_SYS 1 #cmakedefine UNIX_SYS 1 #endif /* CONFIG_H */ QSapecNG-2.0.0-source/doxy.cfg000644 001750 001750 00000205043 11617757645 016731 0ustar00simonesimone000000 000000 # Doxyfile 1.7.1 # This file describes the settings to be used by the documentation system # doxygen (www.doxygen.org) for a project # # All text after a hash (#) is considered a comment and will be ignored # The format is: # TAG = value [value, ...] # For lists items can also be appended using: # TAG += value [value, ...] # Values that contain spaces should be placed between quotes (" ") #--------------------------------------------------------------------------- # Project related configuration options #--------------------------------------------------------------------------- # This tag specifies the encoding used for all characters in the config file # that follow. The default is UTF-8 which is also the encoding used for all # text before the first occurrence of this tag. Doxygen uses libiconv (or the # iconv built into libc) for the transcoding. See # http://www.gnu.org/software/libiconv for the list of possible encodings. DOXYFILE_ENCODING = UTF-8 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded # by quotes) that should identify the project. PROJECT_NAME = QSapecNG # The PROJECT_NUMBER tag can be used to enter a project or revision number. # This could be handy for archiving the generated documentation or # if some version control system is used. PROJECT_NUMBER = # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. # If a relative path is entered, it will be relative to the location # where doxygen was started. If left blank the current directory will be used. OUTPUT_DIRECTORY = doc/ # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create # 4096 sub-directories (in 2 levels) under the output directory of each output # format and will distribute the generated files over these directories. # Enabling this option can be useful when feeding doxygen a huge amount of # source files, where putting all generated files in the same directory would # otherwise cause performance problems for the file system. CREATE_SUBDIRS = NO # The OUTPUT_LANGUAGE tag is used to specify the language in which all # documentation generated by doxygen is written. Doxygen will use this # information to generate all constant output in the proper language. # The default language is English, other supported languages are: # Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, # Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, # Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English # messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, # Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, # Slovene, Spanish, Swedish, Ukrainian, and Vietnamese. OUTPUT_LANGUAGE = English # If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will # include brief member descriptions after the members that are listed in # the file and class documentation (similar to JavaDoc). # Set to NO to disable this. BRIEF_MEMBER_DESC = YES # If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend # the brief description of a member or function before the detailed description. # Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the # brief descriptions will be completely suppressed. REPEAT_BRIEF = YES # This tag implements a quasi-intelligent brief description abbreviator # that is used to form the text in various listings. Each string # in this list, if found as the leading text of the brief description, will be # stripped from the text and the result after processing the whole list, is # used as the annotated text. Otherwise, the brief description is used as-is. # If left blank, the following values are used ("$name" is automatically # replaced with the name of the entity): "The $name class" "The $name widget" # "The $name file" "is" "provides" "specifies" "contains" # "represents" "a" "an" "the" ABBREVIATE_BRIEF = # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then # Doxygen will generate a detailed section even if there is only a brief # description. ALWAYS_DETAILED_SEC = NO # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all # inherited members of a class in the documentation of that class as if those # members were ordinary class members. Constructors, destructors and assignment # operators of the base classes will not be shown. INLINE_INHERITED_MEMB = NO # If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full # path before files name in the file list and in the header files. If set # to NO the shortest path that makes the file name unique will be used. FULL_PATH_NAMES = YES # If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag # can be used to strip a user-defined part of the path. Stripping is # only done if one of the specified strings matches the left-hand part of # the path. The tag can be used to show relative paths in the file list. # If left blank the directory from which doxygen is run is used as the # path to strip. STRIP_FROM_PATH = # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells # the reader which header file to include in order to use a class. # If left blank only the name of the header file containing the class # definition is used. Otherwise one should specify the include paths that # are normally passed to the compiler using the -I flag. STRIP_FROM_INC_PATH = # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter # (but less readable) file names. This can be useful is your file systems # doesn't support long names like on DOS, Mac, or CD-ROM. SHORT_NAMES = NO # If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen # will interpret the first line (until the first dot) of a JavaDoc-style # comment as the brief description. If set to NO, the JavaDoc # comments will behave just like regular Qt-style comments # (thus requiring an explicit @brief command for a brief description.) JAVADOC_AUTOBRIEF = NO # If the QT_AUTOBRIEF tag is set to YES then Doxygen will # interpret the first line (until the first dot) of a Qt-style # comment as the brief description. If set to NO, the comments # will behave just like regular Qt-style comments (thus requiring # an explicit \brief command for a brief description.) QT_AUTOBRIEF = NO # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen # treat a multi-line C++ special comment block (i.e. a block of //! or /// # comments) as a brief description. This used to be the default behaviour. # The new default is to treat a multi-line C++ comment block as a detailed # description. Set this tag to YES if you prefer the old behaviour instead. MULTILINE_CPP_IS_BRIEF = NO # If the INHERIT_DOCS tag is set to YES (the default) then an undocumented # member inherits the documentation from any documented member that it # re-implements. INHERIT_DOCS = YES # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce # a new page for each member. If set to NO, the documentation of a member will # be part of the file/class/namespace that contains it. SEPARATE_MEMBER_PAGES = NO # The TAB_SIZE tag can be used to set the number of spaces in a tab. # Doxygen uses this value to replace tabs by spaces in code fragments. TAB_SIZE = 8 # This tag can be used to specify a number of aliases that acts # as commands in the documentation. An alias has the form "name=value". # For example adding "sideeffect=\par Side Effects:\n" will allow you to # put the command \sideeffect (or @sideeffect) in the documentation, which # will result in a user-defined paragraph with heading "Side Effects:". # You can put \n's in the value part of an alias to insert newlines. ALIASES = # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C # sources only. Doxygen will then generate output that is more tailored for C. # For instance, some of the names that are used will be different. The list # of all members will be omitted, etc. OPTIMIZE_OUTPUT_FOR_C = NO # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java # sources only. Doxygen will then generate output that is more tailored for # Java. For instance, namespaces will be presented as packages, qualified # scopes will look different, etc. OPTIMIZE_OUTPUT_JAVA = NO # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran # sources only. Doxygen will then generate output that is more tailored for # Fortran. OPTIMIZE_FOR_FORTRAN = NO # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL # sources. Doxygen will then generate output that is tailored for # VHDL. OPTIMIZE_OUTPUT_VHDL = NO # Doxygen selects the parser to use depending on the extension of the files it # parses. With this tag you can assign which parser to use for a given extension. # Doxygen has a built-in mapping, but you can override or extend it using this # tag. The format is ext=language, where ext is a file extension, and language # is one of the parsers supported by doxygen: IDL, Java, Javascript, CSharp, C, # C++, D, PHP, Objective-C, Python, Fortran, VHDL, C, C++. For instance to make # doxygen treat .inc files as Fortran files (default is PHP), and .f files as C # (default is Fortran), use: inc=Fortran f=C. Note that for custom extensions # you also need to set FILE_PATTERNS otherwise the files are not read by doxygen. EXTENSION_MAPPING = # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want # to include (a tag file for) the STL sources as input, then you should # set this tag to YES in order to let doxygen match functions declarations and # definitions whose arguments contain STL classes (e.g. func(std::string); v.s. # func(std::string) {}). This also make the inheritance and collaboration # diagrams that involve STL classes more complete and accurate. BUILTIN_STL_SUPPORT = YES # If you use Microsoft's C++/CLI language, you should set this option to YES to # enable parsing support. CPP_CLI_SUPPORT = NO # Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. # Doxygen will parse them like normal C++ but will assume all classes use public # instead of private inheritance when no explicit protection keyword is present. SIP_SUPPORT = NO # For Microsoft's IDL there are propget and propput attributes to indicate getter # and setter methods for a property. Setting this option to YES (the default) # will make doxygen to replace the get and set methods by a property in the # documentation. This will only work if the methods are indeed getting or # setting a simple type. If this is not the case, or you want to show the # methods anyway, you should set this option to NO. IDL_PROPERTY_SUPPORT = YES # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC # tag is set to YES, then doxygen will reuse the documentation of the first # member in the group (if any) for the other members of the group. By default # all members of a group must be documented explicitly. DISTRIBUTE_GROUP_DOC = NO # Set the SUBGROUPING tag to YES (the default) to allow class member groups of # the same type (for instance a group of public functions) to be put as a # subgroup of that type (e.g. under the Public Functions section). Set it to # NO to prevent subgrouping. Alternatively, this can be done per class using # the \nosubgrouping command. SUBGROUPING = YES # When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum # is documented as struct, union, or enum with the name of the typedef. So # typedef struct TypeS {} TypeT, will appear in the documentation as a struct # with name TypeT. When disabled the typedef will appear as a member of a file, # namespace, or class. And the struct will be named TypeS. This can typically # be useful for C code in case the coding convention dictates that all compound # types are typedef'ed and only the typedef is referenced, never the tag name. TYPEDEF_HIDES_STRUCT = NO # The SYMBOL_CACHE_SIZE determines the size of the internal cache use to # determine which symbols to keep in memory and which to flush to disk. # When the cache is full, less often used symbols will be written to disk. # For small to medium size projects (<1000 input files) the default value is # probably good enough. For larger projects a too small cache size can cause # doxygen to be busy swapping symbols to and from disk most of the time # causing a significant performance penality. # If the system has enough physical memory increasing the cache will improve the # performance by keeping more symbols in memory. Note that the value works on # a logarithmic scale so increasing the size by one will rougly double the # memory usage. The cache size is given by this formula: # 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, # corresponding to a cache size of 2^16 = 65536 symbols SYMBOL_CACHE_SIZE = 0 #--------------------------------------------------------------------------- # Build related configuration options #--------------------------------------------------------------------------- # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in # documentation are documented, even if no documentation was available. # Private class members and static file members will be hidden unless # the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES EXTRACT_ALL = NO # If the EXTRACT_PRIVATE tag is set to YES all private members of a class # will be included in the documentation. EXTRACT_PRIVATE = NO # If the EXTRACT_STATIC tag is set to YES all static members of a file # will be included in the documentation. EXTRACT_STATIC = NO # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) # defined locally in source files will be included in the documentation. # If set to NO only classes defined in header files are included. EXTRACT_LOCAL_CLASSES = YES # This flag is only useful for Objective-C code. When set to YES local # methods, which are defined in the implementation section but not in # the interface are included in the documentation. # If set to NO (the default) only methods in the interface are included. EXTRACT_LOCAL_METHODS = NO # If this flag is set to YES, the members of anonymous namespaces will be # extracted and appear in the documentation as a namespace called # 'anonymous_namespace{file}', where file will be replaced with the base # name of the file that contains the anonymous namespace. By default # anonymous namespace are hidden. EXTRACT_ANON_NSPACES = NO # If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all # undocumented members of documented classes, files or namespaces. # If set to NO (the default) these members will be included in the # various overviews, but no documentation section is generated. # This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_MEMBERS = NO # If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all # undocumented classes that are normally visible in the class hierarchy. # If set to NO (the default) these classes will be included in the various # overviews. This option has no effect if EXTRACT_ALL is enabled. HIDE_UNDOC_CLASSES = NO # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all # friend (class|struct|union) declarations. # If set to NO (the default) these declarations will be included in the # documentation. HIDE_FRIEND_COMPOUNDS = NO # If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any # documentation blocks found inside the body of a function. # If set to NO (the default) these blocks will be appended to the # function's detailed documentation block. HIDE_IN_BODY_DOCS = NO # The INTERNAL_DOCS tag determines if documentation # that is typed after a \internal command is included. If the tag is set # to NO (the default) then the documentation will be excluded. # Set it to YES to include the internal documentation. INTERNAL_DOCS = NO # If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate # file names in lower-case letters. If set to YES upper-case letters are also # allowed. This is useful if you have classes or files whose names only differ # in case and if your file system supports case sensitive file names. Windows # and Mac users are advised to set this option to NO. CASE_SENSE_NAMES = YES # If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen # will show members with their full class and namespace scopes in the # documentation. If set to YES the scope will be hidden. HIDE_SCOPE_NAMES = NO # If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen # will put a list of the files that are included by a file in the documentation # of that file. SHOW_INCLUDE_FILES = YES # If the FORCE_LOCAL_INCLUDES tag is set to YES then Doxygen # will list include files with double quotes in the documentation # rather than with sharp brackets. FORCE_LOCAL_INCLUDES = NO # If the INLINE_INFO tag is set to YES (the default) then a tag [inline] # is inserted in the documentation for inline members. INLINE_INFO = YES # If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen # will sort the (detailed) documentation of file and class members # alphabetically by member name. If set to NO the members will appear in # declaration order. SORT_MEMBER_DOCS = YES # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the # brief documentation of file, namespace and class members alphabetically # by member name. If set to NO (the default) the members will appear in # declaration order. SORT_BRIEF_DOCS = NO # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen # will sort the (brief and detailed) documentation of class members so that # constructors and destructors are listed first. If set to NO (the default) # the constructors will appear in the respective orders defined by # SORT_MEMBER_DOCS and SORT_BRIEF_DOCS. # This tag will be ignored for brief docs if SORT_BRIEF_DOCS is set to NO # and ignored for detailed docs if SORT_MEMBER_DOCS is set to NO. SORT_MEMBERS_CTORS_1ST = NO # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the # hierarchy of group names into alphabetical order. If set to NO (the default) # the group names will appear in their defined order. SORT_GROUP_NAMES = NO # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be # sorted by fully-qualified names, including namespaces. If set to # NO (the default), the class list will be sorted only by class name, # not including the namespace part. # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. # Note: This option applies only to the class list, not to the # alphabetical list. SORT_BY_SCOPE_NAME = NO # The GENERATE_TODOLIST tag can be used to enable (YES) or # disable (NO) the todo list. This list is created by putting \todo # commands in the documentation. GENERATE_TODOLIST = YES # The GENERATE_TESTLIST tag can be used to enable (YES) or # disable (NO) the test list. This list is created by putting \test # commands in the documentation. GENERATE_TESTLIST = YES # The GENERATE_BUGLIST tag can be used to enable (YES) or # disable (NO) the bug list. This list is created by putting \bug # commands in the documentation. GENERATE_BUGLIST = YES # The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or # disable (NO) the deprecated list. This list is created by putting # \deprecated commands in the documentation. GENERATE_DEPRECATEDLIST= YES # The ENABLED_SECTIONS tag can be used to enable conditional # documentation sections, marked by \if sectionname ... \endif. ENABLED_SECTIONS = # The MAX_INITIALIZER_LINES tag determines the maximum number of lines # the initial value of a variable or define consists of for it to appear in # the documentation. If the initializer consists of more lines than specified # here it will be hidden. Use a value of 0 to hide initializers completely. # The appearance of the initializer of individual variables and defines in the # documentation can be controlled using \showinitializer or \hideinitializer # command in the documentation regardless of this setting. MAX_INITIALIZER_LINES = 30 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated # at the bottom of the documentation of classes and structs. If set to YES the # list will mention the files that were used to generate the documentation. SHOW_USED_FILES = YES # If the sources in your project are distributed over multiple directories # then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy # in the documentation. The default is NO. SHOW_DIRECTORIES = YES # Set the SHOW_FILES tag to NO to disable the generation of the Files page. # This will remove the Files entry from the Quick Index and from the # Folder Tree View (if specified). The default is YES. SHOW_FILES = YES # Set the SHOW_NAMESPACES tag to NO to disable the generation of the # Namespaces page. # This will remove the Namespaces entry from the Quick Index # and from the Folder Tree View (if specified). The default is YES. SHOW_NAMESPACES = YES # The FILE_VERSION_FILTER tag can be used to specify a program or script that # doxygen should invoke to get the current version for each file (typically from # the version control system). Doxygen will invoke the program by executing (via # popen()) the command , where is the value of # the FILE_VERSION_FILTER tag, and is the name of an input file # provided by doxygen. Whatever the program writes to standard output # is used as the file version. See the manual for examples. FILE_VERSION_FILTER = # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed # by doxygen. The layout file controls the global structure of the generated # output files in an output format independent way. The create the layout file # that represents doxygen's defaults, run doxygen with the -l option. # You can optionally specify a file name after the option, if omitted # DoxygenLayout.xml will be used as the name of the layout file. LAYOUT_FILE = #--------------------------------------------------------------------------- # configuration options related to warning and progress messages #--------------------------------------------------------------------------- # The QUIET tag can be used to turn on/off the messages that are generated # by doxygen. Possible values are YES and NO. If left blank NO is used. QUIET = NO # The WARNINGS tag can be used to turn on/off the warning messages that are # generated by doxygen. Possible values are YES and NO. If left blank # NO is used. WARNINGS = YES # If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings # for undocumented members. If EXTRACT_ALL is set to YES then this flag will # automatically be disabled. WARN_IF_UNDOCUMENTED = YES # If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for # potential errors in the documentation, such as not documenting some # parameters in a documented function, or documenting parameters that # don't exist or using markup commands wrongly. WARN_IF_DOC_ERROR = YES # This WARN_NO_PARAMDOC option can be abled to get warnings for # functions that are documented, but have no documentation for their parameters # or return value. If set to NO (the default) doxygen will only warn about # wrong or incomplete parameter documentation, but not about the absence of # documentation. WARN_NO_PARAMDOC = NO # The WARN_FORMAT tag determines the format of the warning messages that # doxygen can produce. The string should contain the $file, $line, and $text # tags, which will be replaced by the file and line number from which the # warning originated and the warning text. Optionally the format may contain # $version, which will be replaced by the version of the file (if it could # be obtained via FILE_VERSION_FILTER) WARN_FORMAT = "$file:$line: $text" # The WARN_LOGFILE tag can be used to specify a file to which warning # and error messages should be written. If left blank the output is written # to stderr. WARN_LOGFILE = #--------------------------------------------------------------------------- # configuration options related to the input files #--------------------------------------------------------------------------- # The INPUT tag can be used to specify the files and/or directories that contain # documented source files. You may enter file names like "myfile.cpp" or # directories like "/usr/src/myproject". Separate the files or directories # with spaces. INPUT = src/ src/gui/ # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is # also the default input encoding. Doxygen uses libiconv (or the iconv built # into libc) for the transcoding. See http://www.gnu.org/software/libiconv for # the list of possible encodings. INPUT_ENCODING = UTF-8 # If the value of the INPUT tag contains directories, you can use the # FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank the following patterns are tested: # *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx # *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90 # FILE_PATTERNS = *.h *.hpp *.cpp FILE_PATTERNS = *.dox # The RECURSIVE tag can be used to turn specify whether or not subdirectories # should be searched for input files as well. Possible values are YES and NO. # If left blank NO is used. RECURSIVE = YES # The EXCLUDE tag can be used to specify files and/or directories that should # excluded from the INPUT source files. This way you can easily exclude a # subdirectory from a directory tree whose root is specified with the INPUT tag. EXCLUDE = # The EXCLUDE_SYMLINKS tag can be used select whether or not files or # directories that are symbolic links (a Unix filesystem feature) are excluded # from the input. EXCLUDE_SYMLINKS = NO # If the value of the INPUT tag contains directories, you can use the # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude # certain files from those directories. Note that the wildcards are matched # against the file with absolute path, so to exclude all test directories # for example use the pattern */test/* EXCLUDE_PATTERNS = # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names # (namespaces, classes, functions, etc.) that should be excluded from the # output. The symbol name can be a fully qualified name, a word, or if the # wildcard * is used, a substring. Examples: ANamespace, AClass, # AClass::ANamespace, ANamespace::*Test EXCLUDE_SYMBOLS = # The EXAMPLE_PATH tag can be used to specify one or more files or # directories that contain example code fragments that are included (see # the \include command). EXAMPLE_PATH = # If the value of the EXAMPLE_PATH tag contains directories, you can use the # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp # and *.h) to filter out the source-files in the directories. If left # blank all files are included. EXAMPLE_PATTERNS = # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be # searched for input files to be used with the \include or \dontinclude # commands irrespective of the value of the RECURSIVE tag. # Possible values are YES and NO. If left blank NO is used. EXAMPLE_RECURSIVE = NO # The IMAGE_PATH tag can be used to specify one or more files or # directories that contain image that are included in the documentation (see # the \image command). IMAGE_PATH = src/images/ src/gui/images/ # The INPUT_FILTER tag can be used to specify a program that doxygen should # invoke to filter for each input file. Doxygen will invoke the filter program # by executing (via popen()) the command , where # is the value of the INPUT_FILTER tag, and is the name of an # input file. Doxygen will then use the output that the filter program writes # to standard output. # If FILTER_PATTERNS is specified, this tag will be # ignored. INPUT_FILTER = # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern # basis. # Doxygen will compare the file name with each pattern and apply the # filter if there is a match. # The filters are a list of the form: # pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further # info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER # is applied to all files. FILTER_PATTERNS = # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using # INPUT_FILTER) will be used to filter the input files when producing source # files to browse (i.e. when SOURCE_BROWSER is set to YES). FILTER_SOURCE_FILES = NO #--------------------------------------------------------------------------- # configuration options related to source browsing #--------------------------------------------------------------------------- # If the SOURCE_BROWSER tag is set to YES then a list of source files will # be generated. Documented entities will be cross-referenced with these sources. # Note: To get rid of all source code in the generated output, make sure also # VERBATIM_HEADERS is set to NO. SOURCE_BROWSER = NO # Setting the INLINE_SOURCES tag to YES will include the body # of functions and classes directly in the documentation. INLINE_SOURCES = NO # Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct # doxygen to hide any special comment blocks from generated source code # fragments. Normal C and C++ comments will always remain visible. STRIP_CODE_COMMENTS = YES # If the REFERENCED_BY_RELATION tag is set to YES # then for each documented function all documented # functions referencing it will be listed. REFERENCED_BY_RELATION = NO # If the REFERENCES_RELATION tag is set to YES # then for each documented function all documented entities # called/used by that function will be listed. REFERENCES_RELATION = NO # If the REFERENCES_LINK_SOURCE tag is set to YES (the default) # and SOURCE_BROWSER tag is set to YES, then the hyperlinks from # functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will # link to the source code. # Otherwise they will link to the documentation. REFERENCES_LINK_SOURCE = YES # If the USE_HTAGS tag is set to YES then the references to source code # will point to the HTML generated by the htags(1) tool instead of doxygen # built-in source browser. The htags tool is part of GNU's global source # tagging system (see http://www.gnu.org/software/global/global.html). You # will need version 4.8.6 or higher. USE_HTAGS = NO # If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen # will generate a verbatim copy of the header file for each class for # which an include is specified. Set to NO to disable this. VERBATIM_HEADERS = YES #--------------------------------------------------------------------------- # configuration options related to the alphabetical class index #--------------------------------------------------------------------------- # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index # of all compounds will be generated. Enable this if the project # contains a lot of classes, structs, unions or interfaces. ALPHABETICAL_INDEX = YES # If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then # the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns # in which this list will be split (can be a number in the range [1..20]) COLS_IN_ALPHA_INDEX = 5 # In case all classes in a project start with a common prefix, all # classes will be put under the same header in the alphabetical index. # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. IGNORE_PREFIX = #--------------------------------------------------------------------------- # configuration options related to the HTML output #--------------------------------------------------------------------------- # If the GENERATE_HTML tag is set to YES (the default) Doxygen will # generate HTML output. GENERATE_HTML = YES # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `html' will be used as the default path. HTML_OUTPUT = html # The HTML_FILE_EXTENSION tag can be used to specify the file extension for # each generated HTML page (for example: .htm,.php,.asp). If it is left blank # doxygen will generate files with .html extension. HTML_FILE_EXTENSION = .html # The HTML_HEADER tag can be used to specify a personal HTML header for # each generated HTML page. If it is left blank doxygen will generate a # standard header. HTML_HEADER = # The HTML_FOOTER tag can be used to specify a personal HTML footer for # each generated HTML page. If it is left blank doxygen will generate a # standard footer. HTML_FOOTER = # If the HTML_TIMESTAMP tag is set to YES then the generated HTML # documentation will contain the timesstamp. HTML_TIMESTAMP = NO # The HTML_STYLESHEET tag can be used to specify a user-defined cascading # style sheet that is used by each HTML page. It can be used to # fine-tune the look of the HTML output. If the tag is left blank doxygen # will generate a default style sheet. Note that doxygen will try to copy # the style sheet file to the HTML output directory, so don't put your own # stylesheet in the HTML output directory as well, or it will be erased! HTML_STYLESHEET = # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. # Doxygen will adjust the colors in the stylesheet and background images # according to this color. Hue is specified as an angle on a colorwheel, # see http://en.wikipedia.org/wiki/Hue for more information. # For instance the value 0 represents red, 60 is yellow, 120 is green, # 180 is cyan, 240 is blue, 300 purple, and 360 is red again. # The allowed range is 0 to 359. HTML_COLORSTYLE_HUE = 220 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of # the colors in the HTML output. For a value of 0 the output will use # grayscales only. A value of 255 will produce the most vivid colors. HTML_COLORSTYLE_SAT = 100 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to # the luminance component of the colors in the HTML output. Values below # 100 gradually make the output lighter, whereas values above 100 make # the output darker. The value divided by 100 is the actual gamma applied, # so 80 represents a gamma of 0.8, The value 220 represents a gamma of 2.2, # and 100 does not change the gamma. HTML_COLORSTYLE_GAMMA = 80 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML # page will contain the date and time when the page was generated. Setting # this to NO can help when comparing the output of multiple runs. HTML_TIMESTAMP = YES # If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, # files or namespaces will be aligned in HTML using tables. If set to # NO a bullet list will be used. HTML_ALIGN_MEMBERS = YES # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML # documentation will contain sections that can be hidden and shown after the # page has loaded. For this to work a browser that supports # JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox # Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari). HTML_DYNAMIC_SECTIONS = NO # If the GENERATE_DOCSET tag is set to YES, additional index files # will be generated that can be used as input for Apple's Xcode 3 # integrated development environment, introduced with OSX 10.5 (Leopard). # To create a documentation set, doxygen will generate a Makefile in the # HTML output directory. Running make will produce the docset in that # directory and running "make install" will install the docset in # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find # it at startup. # See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html # for more information. GENERATE_DOCSET = NO # When GENERATE_DOCSET tag is set to YES, this tag determines the name of the # feed. A documentation feed provides an umbrella under which multiple # documentation sets from a single provider (such as a company or product suite) # can be grouped. DOCSET_FEEDNAME = "Doxygen generated docs" # When GENERATE_DOCSET tag is set to YES, this tag specifies a string that # should uniquely identify the documentation set bundle. This should be a # reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen # will append .docset to the name. DOCSET_BUNDLE_ID = org.doxygen.Project # When GENERATE_PUBLISHER_ID tag specifies a string that should uniquely identify # the documentation publisher. This should be a reverse domain-name style # string, e.g. com.mycompany.MyDocSet.documentation. DOCSET_PUBLISHER_ID = org.doxygen.Publisher # The GENERATE_PUBLISHER_NAME tag identifies the documentation publisher. DOCSET_PUBLISHER_NAME = Publisher # If the GENERATE_HTMLHELP tag is set to YES, additional index files # will be generated that can be used as input for tools like the # Microsoft HTML help workshop to generate a compiled HTML help file (.chm) # of the generated HTML documentation. GENERATE_HTMLHELP = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can # be used to specify the file name of the resulting .chm file. You # can add a path in front of the file if the result should not be # written to the html output directory. CHM_FILE = # If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can # be used to specify the location (absolute path including file name) of # the HTML help compiler (hhc.exe). If non-empty doxygen will try to run # the HTML help compiler on the generated index.hhp. HHC_LOCATION = # If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag # controls if a separate .chi index file is generated (YES) or that # it should be included in the master .chm file (NO). GENERATE_CHI = NO # If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING # is used to encode HtmlHelp index (hhk), content (hhc) and project file # content. CHM_INDEX_ENCODING = # If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag # controls whether a binary table of contents is generated (YES) or a # normal table of contents (NO) in the .chm file. BINARY_TOC = NO # The TOC_EXPAND flag can be set to YES to add extra items for group members # to the contents of the HTML help documentation and to the tree view. TOC_EXPAND = NO # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated # that can be used as input for Qt's qhelpgenerator to generate a # Qt Compressed Help (.qch) of the generated HTML documentation. GENERATE_QHP = NO # If the QHG_LOCATION tag is specified, the QCH_FILE tag can # be used to specify the file name of the resulting .qch file. # The path specified is relative to the HTML output folder. QCH_FILE = # The QHP_NAMESPACE tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#namespace QHP_NAMESPACE = org.doxygen.Project # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating # Qt Help Project output. For more information please see # http://doc.trolltech.com/qthelpproject.html#virtual-folders QHP_VIRTUAL_FOLDER = doc # If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to # add. For more information please see # http://doc.trolltech.com/qthelpproject.html#custom-filters QHP_CUST_FILTER_NAME = # The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the # custom filter to add. For more information please see # # Qt Help Project / Custom Filters. QHP_CUST_FILTER_ATTRS = # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this # project's # filter section matches. # # Qt Help Project / Filter Attributes. QHP_SECT_FILTER_ATTRS = # If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can # be used to specify the location of Qt's qhelpgenerator. # If non-empty doxygen will try to run qhelpgenerator on the generated # .qhp file. QHG_LOCATION = # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files # will be generated, which together with the HTML files, form an Eclipse help # plugin. To install this plugin and make it available under the help contents # menu in Eclipse, the contents of the directory containing the HTML and XML # files needs to be copied into the plugins directory of eclipse. The name of # the directory within the plugins directory should be the same as # the ECLIPSE_DOC_ID value. After copying Eclipse needs to be restarted before # the help appears. GENERATE_ECLIPSEHELP = NO # A unique identifier for the eclipse help plugin. When installing the plugin # the directory name containing the HTML and XML files should also have # this name. ECLIPSE_DOC_ID = org.doxygen.Project # The DISABLE_INDEX tag can be used to turn on/off the condensed index at # top of each HTML page. The value NO (the default) enables the index and # the value YES disables it. DISABLE_INDEX = NO # This tag can be used to set the number of enum values (range [1..20]) # that doxygen will group on one line in the generated HTML documentation. ENUM_VALUES_PER_LINE = 4 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index # structure should be generated to display hierarchical information. # If the tag value is set to YES, a side panel will be generated # containing a tree-like index structure (just like the one that # is generated for HTML Help). For this to work a browser that supports # JavaScript, DHTML, CSS and frames is required (i.e. any modern browser). # Windows users are probably better off using the HTML help feature. GENERATE_TREEVIEW = NO # By enabling USE_INLINE_TREES, doxygen will generate the Groups, Directories, # and Class Hierarchy pages using a tree view instead of an ordered list. USE_INLINE_TREES = NO # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be # used to set the initial width (in pixels) of the frame in which the tree # is shown. TREEVIEW_WIDTH = 250 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open # links to external symbols imported via tag files in a separate window. EXT_LINKS_IN_WINDOW = NO # Use this tag to change the font size of Latex formulas included # as images in the HTML documentation. The default is 10. Note that # when you change the font size after a successful doxygen run you need # to manually remove any form_*.png images from the HTML output directory # to force them to be regenerated. FORMULA_FONTSIZE = 10 # Use the FORMULA_TRANPARENT tag to determine whether or not the images # generated for formulas are transparent PNGs. Transparent PNGs are # not supported properly for IE 6.0, but are supported on all modern browsers. # Note that when changing this option you need to delete any form_*.png files # in the HTML output before the changes have effect. FORMULA_TRANSPARENT = YES # When the SEARCHENGINE tag is enabled doxygen will generate a search box # for the HTML output. The underlying search engine uses javascript # and DHTML and should work on any modern browser. Note that when using # HTML help (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets # (GENERATE_DOCSET) there is already a search function so this one should # typically be disabled. For large projects the javascript based search engine # can be slow, then enabling SERVER_BASED_SEARCH may provide a better solution. SEARCHENGINE = YES # When the SERVER_BASED_SEARCH tag is enabled the search engine will be # implemented using a PHP enabled web server instead of at the web client # using Javascript. Doxygen will generate the search PHP script and index # file to put on the web server. The advantage of the server # based approach is that it scales better to large projects and allows # full text search. The disadvances is that it is more difficult to setup # and does not have live searching capabilities. SERVER_BASED_SEARCH = NO #--------------------------------------------------------------------------- # configuration options related to the LaTeX output #--------------------------------------------------------------------------- # If the GENERATE_LATEX tag is set to YES (the default) Doxygen will # generate Latex output. GENERATE_LATEX = YES # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `latex' will be used as the default path. LATEX_OUTPUT = latex # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be # invoked. If left blank `latex' will be used as the default command name. # Note that when enabling USE_PDFLATEX this option is only used for # generating bitmaps for formulas in the HTML output, but not in the # Makefile that is written to the output directory. LATEX_CMD_NAME = latex # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to # generate index for LaTeX. If left blank `makeindex' will be used as the # default command name. MAKEINDEX_CMD_NAME = makeindex # If the COMPACT_LATEX tag is set to YES Doxygen generates more compact # LaTeX documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_LATEX = NO # The PAPER_TYPE tag can be used to set the paper type that is used # by the printer. Possible values are: a4, a4wide, letter, legal and # executive. If left blank a4wide will be used. PAPER_TYPE = a4wide # The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX # packages that should be included in the LaTeX output. EXTRA_PACKAGES = # The LATEX_HEADER tag can be used to specify a personal LaTeX header for # the generated latex document. The header should contain everything until # the first chapter. If it is left blank doxygen will generate a # standard header. Notice: only use this tag if you know what you are doing! LATEX_HEADER = # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated # is prepared for conversion to pdf (using ps2pdf). The pdf file will # contain links (just like the HTML output) instead of page references # This makes the output suitable for online browsing using a pdf viewer. PDF_HYPERLINKS = YES # If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of # plain latex in the generated Makefile. Set this option to YES to get a # higher quality PDF documentation. USE_PDFLATEX = YES # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. # command to the generated LaTeX files. This will instruct LaTeX to keep # running if errors occur, instead of asking the user for help. # This option is also used when generating formulas in HTML. LATEX_BATCHMODE = NO # If LATEX_HIDE_INDICES is set to YES then doxygen will not # include the index chapters (such as File Index, Compound Index, etc.) # in the output. LATEX_HIDE_INDICES = NO # If LATEX_SOURCE_CODE is set to YES then doxygen will include # source code with syntax highlighting in the LaTeX output. # Note that which sources are shown also depends on other settings # such as SOURCE_BROWSER. LATEX_SOURCE_CODE = NO #--------------------------------------------------------------------------- # configuration options related to the RTF output #--------------------------------------------------------------------------- # If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output # The RTF output is optimized for Word 97 and may not look very pretty with # other RTF readers or editors. GENERATE_RTF = NO # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `rtf' will be used as the default path. RTF_OUTPUT = rtf # If the COMPACT_RTF tag is set to YES Doxygen generates more compact # RTF documents. This may be useful for small projects and may help to # save some trees in general. COMPACT_RTF = NO # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated # will contain hyperlink fields. The RTF file will # contain links (just like the HTML output) instead of page references. # This makes the output suitable for online browsing using WORD or other # programs which support those fields. # Note: wordpad (write) and others do not support links. RTF_HYPERLINKS = NO # Load stylesheet definitions from file. Syntax is similar to doxygen's # config file, i.e. a series of assignments. You only have to provide # replacements, missing definitions are set to their default value. RTF_STYLESHEET_FILE = # Set optional variables used in the generation of an rtf document. # Syntax is similar to doxygen's config file. RTF_EXTENSIONS_FILE = #--------------------------------------------------------------------------- # configuration options related to the man page output #--------------------------------------------------------------------------- # If the GENERATE_MAN tag is set to YES (the default) Doxygen will # generate man pages GENERATE_MAN = NO # The MAN_OUTPUT tag is used to specify where the man pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `man' will be used as the default path. MAN_OUTPUT = man # The MAN_EXTENSION tag determines the extension that is added to # the generated man pages (default is the subroutine's section .3) MAN_EXTENSION = .3 # If the MAN_LINKS tag is set to YES and Doxygen generates man output, # then it will generate one additional man file for each entity # documented in the real man page(s). These additional files # only source the real man page, but without them the man command # would be unable to find the correct page. The default is NO. MAN_LINKS = NO #--------------------------------------------------------------------------- # configuration options related to the XML output #--------------------------------------------------------------------------- # If the GENERATE_XML tag is set to YES Doxygen will # generate an XML file that captures the structure of # the code including all documentation. GENERATE_XML = NO # The XML_OUTPUT tag is used to specify where the XML pages will be put. # If a relative path is entered the value of OUTPUT_DIRECTORY will be # put in front of it. If left blank `xml' will be used as the default path. XML_OUTPUT = xml # The XML_SCHEMA tag can be used to specify an XML schema, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_SCHEMA = # The XML_DTD tag can be used to specify an XML DTD, # which can be used by a validating XML parser to check the # syntax of the XML files. XML_DTD = # If the XML_PROGRAMLISTING tag is set to YES Doxygen will # dump the program listings (including syntax highlighting # and cross-referencing information) to the XML output. Note that # enabling this will significantly increase the size of the XML output. XML_PROGRAMLISTING = YES #--------------------------------------------------------------------------- # configuration options for the AutoGen Definitions output #--------------------------------------------------------------------------- # If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will # generate an AutoGen Definitions (see autogen.sf.net) file # that captures the structure of the code including all # documentation. Note that this feature is still experimental # and incomplete at the moment. GENERATE_AUTOGEN_DEF = NO #--------------------------------------------------------------------------- # configuration options related to the Perl module output #--------------------------------------------------------------------------- # If the GENERATE_PERLMOD tag is set to YES Doxygen will # generate a Perl module file that captures the structure of # the code including all documentation. Note that this # feature is still experimental and incomplete at the # moment. GENERATE_PERLMOD = NO # If the PERLMOD_LATEX tag is set to YES Doxygen will generate # the necessary Makefile rules, Perl scripts and LaTeX code to be able # to generate PDF and DVI output from the Perl module output. PERLMOD_LATEX = NO # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be # nicely formatted so it can be parsed by a human reader. # This is useful # if you want to understand what is going on. # On the other hand, if this # tag is set to NO the size of the Perl module output will be much smaller # and Perl will parse it just the same. PERLMOD_PRETTY = YES # The names of the make variables in the generated doxyrules.make file # are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. # This is useful so different doxyrules.make files included by the same # Makefile don't overwrite each other's variables. PERLMOD_MAKEVAR_PREFIX = #--------------------------------------------------------------------------- # Configuration options related to the preprocessor #--------------------------------------------------------------------------- # If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will # evaluate all C-preprocessor directives found in the sources and include # files. ENABLE_PREPROCESSING = YES # If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro # names in the source code. If set to NO (the default) only conditional # compilation will be performed. Macro expansion can be done in a controlled # way by setting EXPAND_ONLY_PREDEF to YES. MACRO_EXPANSION = NO # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES # then the macro expansion is limited to the macros specified with the # PREDEFINED and EXPAND_AS_DEFINED tags. EXPAND_ONLY_PREDEF = NO # If the SEARCH_INCLUDES tag is set to YES (the default) the includes files # in the INCLUDE_PATH (see below) will be search if a #include is found. SEARCH_INCLUDES = YES # The INCLUDE_PATH tag can be used to specify one or more directories that # contain include files that are not input files but should be processed by # the preprocessor. INCLUDE_PATH = # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard # patterns (like *.h and *.hpp) to filter out the header-files in the # directories. If left blank, the patterns specified with FILE_PATTERNS will # be used. INCLUDE_FILE_PATTERNS = # The PREDEFINED tag can be used to specify one or more macro names that # are defined before the preprocessor is started (similar to the -D option of # gcc). The argument of the tag is a list of macros of the form: name # or name=definition (no spaces). If the definition and the = are # omitted =1 is assumed. To prevent a macro definition from being # undefined via #undef or recursively expanded use the := operator # instead of the = operator. PREDEFINED = # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then # this tag can be used to specify a list of macro names that should be expanded. # The macro definition that is found in the sources will be used. # Use the PREDEFINED tag if you want to use a different macro definition. EXPAND_AS_DEFINED = # If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then # doxygen's preprocessor will remove all function-like macros that are alone # on a line, have an all uppercase name, and do not end with a semicolon. Such # function macros are typically used for boiler-plate code, and will confuse # the parser if not removed. SKIP_FUNCTION_MACROS = YES #--------------------------------------------------------------------------- # Configuration::additions related to external references #--------------------------------------------------------------------------- # The TAGFILES option can be used to specify one or more tagfiles. # Optionally an initial location of the external documentation # can be added for each tagfile. The format of a tag file without # this location is as follows: # # TAGFILES = file1 file2 ... # Adding location for the tag files is done as follows: # # TAGFILES = file1=loc1 "file2 = loc2" ... # where "loc1" and "loc2" can be relative or absolute paths or # URLs. If a location is present for each tag, the installdox tool # does not have to be run to correct the links. # Note that each tag file must have a unique name # (where the name does NOT include the path) # If a tag file is not located in the directory in which doxygen # is run, you must also specify the path to the tagfile here. TAGFILES = # When a file name is specified after GENERATE_TAGFILE, doxygen will create # a tag file that is based on the input files it reads. GENERATE_TAGFILE = # If the ALLEXTERNALS tag is set to YES all external classes will be listed # in the class index. If set to NO only the inherited external classes # will be listed. ALLEXTERNALS = NO # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed # in the modules index. If set to NO, only the current project's groups will # be listed. EXTERNAL_GROUPS = YES # The PERL_PATH should be the absolute path and name of the perl script # interpreter (i.e. the result of `which perl'). PERL_PATH = /usr/bin/perl #--------------------------------------------------------------------------- # Configuration options related to the dot tool #--------------------------------------------------------------------------- # If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will # generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base # or super classes. Setting the tag to NO turns the diagrams off. Note that # this option is superseded by the HAVE_DOT option below. This is only a # fallback. It is recommended to install and use dot, since it yields more # powerful graphs. CLASS_DIAGRAMS = YES # You can define message sequence charts within doxygen comments using the \msc # command. Doxygen will then run the mscgen tool (see # http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the # documentation. The MSCGEN_PATH tag allows you to specify the directory where # the mscgen tool resides. If left empty the tool is assumed to be found in the # default search path. MSCGEN_PATH = # If set to YES, the inheritance and collaboration graphs will hide # inheritance and usage relations if the target is undocumented # or is not a class. HIDE_UNDOC_RELATIONS = YES # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is # available from the path. This tool is part of Graphviz, a graph visualization # toolkit from AT&T and Lucent Bell Labs. The other options in this section # have no effect if this option is set to NO (the default) HAVE_DOT = NO # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is # allowed to run in parallel. When set to 0 (the default) doxygen will # base this on the number of processors available in the system. You can set it # explicitly to a value larger than 0 to get control over the balance # between CPU load and processing speed. DOT_NUM_THREADS = 0 # By default doxygen will write a font called FreeSans.ttf to the output # directory and reference it in all dot files that doxygen generates. This # font does not include all possible unicode characters however, so when you need # these (or just want a differently looking font) you can specify the font name # using DOT_FONTNAME. You need need to make sure dot is able to find the font, # which can be done by putting it in a standard location or by setting the # DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory # containing the font. DOT_FONTNAME = FreeSans.ttf # The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. # The default size is 10pt. DOT_FONTSIZE = 10 # By default doxygen will tell dot to use the output directory to look for the # FreeSans.ttf font (which doxygen will put there itself). If you specify a # different font using DOT_FONTNAME you can set the path where dot # can find it using this tag. DOT_FONTPATH = # If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect inheritance relations. Setting this tag to YES will force the # the CLASS_DIAGRAMS tag to NO. CLASS_GRAPH = YES # If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen # will generate a graph for each documented class showing the direct and # indirect implementation dependencies (inheritance, containment, and # class references variables) of the class with other documented classes. COLLABORATION_GRAPH = YES # If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen # will generate a graph for groups, showing the direct groups dependencies GROUP_GRAPHS = YES # If the UML_LOOK tag is set to YES doxygen will generate inheritance and # collaboration diagrams in a style similar to the OMG's Unified Modeling # Language. UML_LOOK = NO # If set to YES, the inheritance and collaboration graphs will show the # relations between templates and their instances. TEMPLATE_RELATIONS = NO # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT # tags are set to YES then doxygen will generate a graph for each documented # file showing the direct and indirect include dependencies of the file with # other documented files. INCLUDE_GRAPH = YES # If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and # HAVE_DOT tags are set to YES then doxygen will generate a graph for each # documented header file showing the documented files that directly or # indirectly include this file. INCLUDED_BY_GRAPH = YES # If the CALL_GRAPH and HAVE_DOT options are set to YES then # doxygen will generate a call dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable call graphs # for selected functions only using the \callgraph command. CALL_GRAPH = NO # If the CALLER_GRAPH and HAVE_DOT tags are set to YES then # doxygen will generate a caller dependency graph for every global function # or class method. Note that enabling this option will significantly increase # the time of a run. So in most cases it will be better to enable caller # graphs for selected functions only using the \callergraph command. CALLER_GRAPH = NO # If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen # will graphical hierarchy of all classes instead of a textual one. GRAPHICAL_HIERARCHY = YES # If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES # then doxygen will show the dependencies a directory has on other directories # in a graphical way. The dependency relations are determined by the #include # relations between the files in the directories. DIRECTORY_GRAPH = YES # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images # generated by dot. Possible values are png, jpg, or gif # If left blank png will be used. DOT_IMAGE_FORMAT = png # The tag DOT_PATH can be used to specify the path where the dot tool can be # found. If left blank, it is assumed the dot tool can be found in the path. DOT_PATH = # The DOTFILE_DIRS tag can be used to specify one or more directories that # contain dot files that are included in the documentation (see the # \dotfile command). DOTFILE_DIRS = # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of # nodes that will be shown in the graph. If the number of nodes in a graph # becomes larger than this value, doxygen will truncate the graph, which is # visualized by representing a node as a red box. Note that doxygen if the # number of direct children of the root node in a graph is already larger than # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note # that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH. DOT_GRAPH_MAX_NODES = 50 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the # graphs generated by dot. A depth value of 3 means that only nodes reachable # from the root by following a path via at most 3 edges will be shown. Nodes # that lay further from the root node will be omitted. Note that setting this # option to 1 or 2 may greatly reduce the computation time needed for large # code bases. Also note that the size of a graph can be further restricted by # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction. MAX_DOT_GRAPH_DEPTH = 0 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent # background. This is disabled by default, because dot on Windows does not # seem to support this out of the box. Warning: Depending on the platform used, # enabling this option may lead to badly anti-aliased labels on the edges of # a graph (i.e. they become hard to read). DOT_TRANSPARENT = NO # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output # files in one run (i.e. multiple -o and -T options on the command line). This # makes dot run faster, but since only newer versions of dot (>1.8.10) # support this, this feature is disabled by default. DOT_MULTI_TARGETS = NO # If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will # generate a legend page explaining the meaning of the various boxes and # arrows in the dot generated graphs. GENERATE_LEGEND = YES # If the DOT_CLEANUP tag is set to YES (the default) Doxygen will # remove the intermediate dot files that are used to generate # the various graphs. DOT_CLEANUP = YES QSapecNG-2.0.0-source/AUTHOR000644 001750 001750 00000000050 11617757645 016201 0ustar00simonesimone000000 000000 Michele Caini QSapecNG-2.0.0-source/LICENSE000644 001750 001750 00000104513 11617757645 016272 0ustar00simonesimone000000 000000 GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. 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 them 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 prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. 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. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey 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; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If 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 convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU 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 that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. 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. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 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. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. 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 state 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 3 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 . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program 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, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU 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 Lesser General Public License instead of this License. But first, please read . QSapecNG-2.0.0-source/TODO000644 001750 001750 00000001757 11617757645 015763 0ustar00simonesimone000000 000000 - IMPORTANTE: port come oggetti a sé stile wire anziché component? - refactoring: introdurre progetti eliminare workspace risultati in messages - traduzione in italiano (lupdate e compagnia) - scrivere la sezione "Usage" sia nel README che in debian/qsapecng.1 - avvio da riga di comando passando il file circuito in ingresso. - leggere per i tipi MIME o http://www.debian.org/doc/packaging-manuals/mime-policy/ o http://wiki.debian.org/MimeTypesSupport o http://stackoverflow.com/questions/30931/register-file-extensions-mime-types-in-linux - mantenendo la stessa icona, rederla più usabile su ambienti desktop - replotting nel workplane in thread separato o blocca tutto!! :-) - Application asked to unregister timer 0x34000004 which is not registered in this thread. Fix application. Errore quando si passa al workplane... :-( - closeEvent in qsapecngwindow non torna mica tanto! :-D - J.C.: Matlab function output - J.C.: Approximate solution (vedi Luchetta e SapWin) QSapecNG-2.0.0-source/THANKS000644 001750 001750 00000001167 11617757645 016201 0ustar00simonesimone000000 000000 Thanks to Simone Rossetto and his work as packager. Thanks to C. R. Bond for Jenkins-Traub real polynomial root finder implementation. [http://www.crbond.com/download/misc/rpoly.cpp] Source code has been used as-is, filtered by an adapter function. Thanks to the work of the Qwt project. [http://qwt.sf.net] Source code has been used as-is. Thanks to Nokia and the not yet supported project QtPropertyBrowser (on Qt Solutions Archive). [http://qt.nokia.com/products/qt-addons/solutions-archive/index] [http://qt.gitorious.org/qt-solutions/qt-solutions/trees/master/qtpropertybrowser] Source code has been used as-is. QSapecNG-2.0.0-source/CMakeLists.txt000644 001750 001750 00000015422 11617757645 020025 0ustar00simonesimone000000 000000 project( qsapecng ) cmake_minimum_required( VERSION 2.6 ) set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/" ) set( CMAKE_BUILD_TYPE "Release" ) set( PROJECT_VERSION_MAJOR 2 ) set( PROJECT_VERSION_MINOR 0 ) set( PROJECT_VERSION_PATCH 0 ) set( PROJECT_VERSION_REVISION 1 ) set( PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} ) set( PACKAGE_VERSION "${PROJECT_VERSION}" ) set( PACKAGE_NAME "QSapecNG" ) set( SETTINGS_ORGANIZATION "Unifi" ) set( SETTINGS_APPLICATION "${PACKAGE_NAME}" ) set( PROJECT_AUTHOR "Michele Caini" ) set( PROJECT_YEAR_COPYRIGHT "2009-2011" ) set( PROJECT_AUTHOR_EMAIL "michele.caini@gmail.com" ) set( PACKAGE_CHEF "${PROJECT_AUTHOR} <${PROJECT_AUTHOR_EMAIL}>" ) # Uninstall Target configure_file("${PROJECT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY) add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") add_definitions( -ansi -Wall -O0 -g ) # add_definitions( -ansi -Wall -O2 ) add_definitions( -DPACKAGE_NAME="${PACKAGE_NAME}" -DPACKAGE_VERSION="${PACKAGE_VERSION}" ) if(WIN32) add_definitions( -static ) endif(WIN32) if(UNIX) set( UNIX_SYS TRUE ) endif(UNIX) if(WIN32) set( WIN32_SYS TRUE ) endif(WIN32) configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in src/config.h ) add_subdirectory( src ) # create the debian.tar.gz file with the debian subfolder find_program(TAR_EXECUTABLE tar) if( TAR_EXECUTABLE ) add_custom_target(debian_tar ${TAR_EXECUTABLE} -cz --exclude=.svn -f "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}-debian.tar.gz" "debian/" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Create the tarball with the debian subfolder only.") else( TAR_EXECUTABLE ) # TODO this code doesn't exclude the .svn subfolders, try to fix!! add_custom_target(debian_tar ${CMAKE_COMMAND} -E tar czf "${CMAKE_CURRENT_BINARY_DIR}/${PACKAGE_NAME}-${PACKAGE_VERSION}-debian.tar.gz" "debian/" WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} COMMENT "Create the tarball with the debian subfolder only.") endif( TAR_EXECUTABLE ) mark_as_advanced( TAR_EXECUTABLE ) ################################################################# ################## ################## ################## CPACK ################## ################## ################## ################################################################# if(INCLUDE_QT_DLL_IN_BIN_PACKAGE OR INCLUDE_QWT5_DLL_IN_BIN_PACKAGE OR NOT QT_CONFIG MATCHES "static") include( InstallRequiredSystemLibraries ) endif(INCLUDE_QT_DLL_IN_BIN_PACKAGE OR INCLUDE_QWT5_DLL_IN_BIN_PACKAGE OR NOT QT_CONFIG MATCHES "static") set( CPACK_GENERATOR "TZ;TGZ;TBZ2" ) set( CPACK_SOURCE_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}-source" ) set( CPACK_PACKAGE_FILE_NAME "${PACKAGE_NAME}-${PACKAGE_VERSION}" ) set( CPACK_PACKAGE_NAME "${PACKAGE_NAME}" ) set( CPACK_PACKAGE_VENDOR "${PACKAGE_CHEF}" ) set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "QSapecNG - Qt-based GUI for SapecNG" ) SET( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE" ) SET( CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README" ) set( CPACK_PACKAGE_VERSION_MAJOR "${PROJECT_VERSION_MAJOR}" ) set( CPACK_PACKAGE_VERSION_MINOR "${PROJECT_VERSION_MINOR}" ) set( CPACK_PACKAGE_VERSION_PATCH "${PROJECT_VERSION_PATCH}" ) set( CPACK_SOURCE_IGNORE_FILES .*~ .*kdev* /CMakeFiles/ /_CPack_Packages/ /\\\\.svn/ /\\\\.DS_Store /\\\\.Trashes/ \\\\.cproject \\\\.project CMakeCache\\\\.txt build.* \\\\.settings .*\\\\.patch moc_qtbuttonpropertybrowser\\\\.cpp moc_qteditorfactory\\\\.cpp moc_qtgroupboxpropertybrowser\\\\.cpp moc_qtpropertybrowser\\\\.cpp moc_qtpropertybrowserutils_p\\\\.cpp moc_qtpropertymanager\\\\.cpp moc_qttreepropertybrowser\\\\.cpp moc_qtvariantproperty\\\\.cpp qteditorfactory\\\\.moc qtpropertymanager\\\\.moc qttreepropertybrowser\\\\.moc /\\\\.pc/ "${CMAKE_SOURCE_DIR}/debian/" ) set( CPACK_PACKAGE_INSTALL_DIRECTORY "${CPACK_PACKAGE_NAME}-${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}" ) set( CPACK_INSTALL_CMAKE_PROJECTS ${CMAKE_CURRENT_BINARY_DIR};${PACKAGE_NAME};ALL;/ ) if(WIN32 AND NOT UNIX) set( CPACK_PACKAGE_EXECUTABLES "${OUTPUT_BIN_NAME}" "${OUTPUT_BIN_NAME}" ) set( CPACK_NSIS_INSTALLED_ICON_NAME "${OUTPUT_BIN_FOLDER}\\\\${OUTPUT_BIN_NAME}.exe" ) set( CPACK_NSIS_DISPLAY_NAME "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}" ) set( CPACK_NSIS_CONTACT "${PACKAGE_CHEF}" ) set( CPACK_NSIS_URL_INFO_ABOUT "http://qsapecng.sourceforge.net/" ) set( CPACK_NSIS_MODIFY_PATH ON ) set( CPACK_GENERATOR NSIS ZIP ) set( CPACK_SOURCE_GENERATOR ZIP ) set( CPACK_NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\gui\\\\images\\\\qsapecng-ico.ico" ) set( CPACK_NSIS_MUI_UNIICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\gui\\\\images\\\\qsapecng-ico.ico" ) # la variabile CPACK_PACKAGE_ICON vuole una bmp da 150x57 pixel # la variabile CPACK_NSIS_INSTALLER_MUI_ICON_CODE vuole una bmp da 164x314 pixel #set( CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\gui\\\\images\\\\qsapecng_nsis_header.bmp" ) #set( CPACK_NSIS_INSTALLER_MUI_ICON_CODE "!define MUI_WELCOMEFINISHPAGE_BITMAP '${CMAKE_CURRENT_SOURCE_DIR}\\\\src\\\\gui\\\\images\\\\qsapecng_nsis_welcome.bmp'" ) # Codice per far creare il link sul desktop se l'utente lo seleziona durante # l'installazione da setup: CMake crea un checkbox che non funziona!!! set( CPACK_NSIS_DESKTOP_LINK_NAME "QSapecNG" ) set( CPACK_NSIS_EXTRA_INSTALL_COMMANDS "StrCmp $INSTALL_DESKTOP '1' 0 nodesktoplink\nCreateShortcut '$desktop\\\\${CPACK_NSIS_DESKTOP_LINK_NAME}.lnk' '$instdir\\\\${OUTPUT_BIN_FOLDER}\\\\${OUTPUT_BIN_NAME}.exe'\nnodesktoplink:\n" ) set( CPACK_NSIS_EXTRA_UNINSTALL_COMMANDS "StrCmp $INSTALL_DESKTOP '1' 0 nodesktoplink\nDelete '$desktop\\\\${CPACK_NSIS_DESKTOP_LINK_NAME}.lnk'\nnodesktoplink:\n" ) elseif(APPLE) set( CPACK_DMG_VOLUME_NAME "${CPACK_PACKAGE_NAME}_${PROJECT_VERSION}" ) # da testare set( CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}" ) set( CPACK_GENERATOR DragNDrop ) set( CPACK_SOURCE_GENERATOR TGZ ZIP ) else() set( CPACK_STRIP_FILES "usr/${OUTPUT_BIN_FOLDER}/${OUTPUT_BIN_NAME}" ) set( CPACK_SOURCE_STRIP_FILES "" ) set( CPACK_GENERATOR "${CPACK_GENERATOR};DEB" ) set( CPACK_SOURCE_GENERATOR TBZ2 TGZ ZIP) set( CPACK_DEBIAN_PACKAGE_MAINTAINER "${PACKAGE_CHEF}" ) set( CPACK_DEBIAN_PACKAGE_SECTION Electronics ) set( CPACK_DEBIAN_PACKAGE_VERSION "${CPACK_PACKAGE_VERSION}+sid" ) set( CPACK_DEBIAN_PACKAGE_DEPENDS "libstdc++6 (>=4.3.2-1.1), libqt4-core (>=4.6), libqt4-gui (>=4.6), libqwt5-qt4 (>=5.0)" ) endif(WIN32 AND NOT UNIX) include( CPack ) QSapecNG-2.0.0-source/README000644 001750 001750 00000023344 11617757645 016147 0ustar00simonesimone000000 000000 QSapecNG README ~~~~~~~~~~~~~~~~ QSapecNG v2.0.0 Copyright (C) 2009-2011 Michele Caini GNU General Public License v3 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 3 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. What is it? ~~~~~~~~~~~ QSapecNG is a Qt-based program for symbolic analysis of linear analog circuits. In fact, it consists of two indipendent parts: the SapecNG framework engine and the application gui QSapecNG. It is an open source, multi-platform project, continuously enhanced by students and researchers of Department of Electronics and Telecommunications (DET) of the University of Florence. It comes as continuation of SapWin for Windows, in order to give to the project a full compatibility on other platforms. Through SapecNG/QSapecNG users can draw, solve and analyze analog circuits as well as manage them. Since version 2.0.0beta1 there is also the full support for sub-circuits that can be created, saved, reopened and added as part of other circuits. SapecNG/QSapecNG is freely available on SourceForge.net . A previous version of SapecNG is available too, on SourceForge.net . Pre-compiled packages will be also available from projects related pages. Installation ~~~~~~~~~~~~ * Windows: open the setup executable and follow the instructions * GNU/Linux - binaries: install with the package manager of your distribution - sources: see section "Building and Installing" below * MacOSX: open the dmg file and copy the application bundle to the Applications folder ChangeLog ~~~~~~~~~ * 2.0.0 (current stable release) o Subcircuits support with in-place editing (was Dialog Explosion into the 2.0.0beta1 release) o Minor fixes for memory leaks o Added 24x24 and 48x48 hicolor icons for GNU/Linux o CCVS / VCVS standard graphic models o Ammeter / Voltmeter fixed graphic models o Property Editor now supports scientific notation o Workplane now supports scientific notation o Schematic Editor awares of properties modification o Enhanced control on dirty state of Schematic Editor * 1.2.2 o Fixed the inverted sign produced by some components o Adapted the debian/copyright file in order to respect the DEP-5 proposal o Created required files to install an entry in the Debian menu o Added VCS data to the debian/control file * 1.2.1 o Added support for MacOSX o Added debian subfolder o Minor bugs fixed o Created this README o Created the file src/functor/README.rpoly with the license of the rpoly.cpp source file Requirements for building ~~~~~~~~~~~~~~~~~~~~~~~~~ * Qt v4.6.0 (http://qt.nokia.com/) [QtCore and QtGui are required] * Boost v1.41.0 (http://www.boost.org/) [required] * Qwt v5.1.2 (http://qwt.sourceforge.net/) [required] * CMake v2.6 (http://www.cmake.org/) [optional, only for building] * Doxygen (http://www.doxygen.org/) [optional, needed to generate the html documentation] * NSIS (http://nsis.sourceforge.net/) [optional, needed to generate Setup file on Windows] * 7-Zip (http://www.7-zip.org/) [optional, needed to generate zip of source and binaries file on Windows] * tar+gzip (http://www.gnu.org/software/tar/ and http://www.gzip.org/) [optional, needed to generate tar.gz of source and binaries file on Unix] * tar+bzip (http://www.gnu.org/software/tar/ and http://www.bzip.org/) [optional, needed to generate tar.bz2 of source and binaries file on Unix] Note for MacOS: in order to compile properly, you need the latest "MacOS compilation workaround" patch available here https://sourceforge.net/tracker/?func=detail&aid=3269126&group_id=369990&atid=1541778 Building and Installing ~~~~~~~~~~~~~~~~~~~~~~~ To build QSapecNG you need to have CMake installed on your system, visit http://www.cmake.org/ to download it. * Unix systems Browse the filesystem to reach the root directory of the source files and execute: - mkdir build - cd build - cmake [OPTIONS] .. - make - make install This will build and install QSapecNG to /usr/local/bin, to install in a different path see 'Options' section in this readme. For MacOSX it's better not to execute "make install", see section 'Packages' below * Windows Open the program "CMake" or "cmake-gui" than - browse the filesystem and select the root directory of the source files - select the destination build directory (usually "${src_path}/build") - click on "Configure" button and select the wanted output project (i.e. Visual Studio) - click again on "Configure" and than on "Generate" The project is now ready to be opened with Visual Studio. Select "Release" instead of "Debug" and build QSapecNG. After building if you want to install the program simply compile the "INSTALL" project. Options ~~~~~~~ Specific options for QSapecNG can be passed to cmake program with the "-D" parameter followed by the desidered option. * CMAKE_LIBRARY_PATH=/path/to/the/libraries this option must be used if some of the required libraries listed above are not in default system path * CMAKE_INCLUDE_PATH=/path/to/the/include/files the same for included files of the above libraries * CMAKE_INSTALL_PREFIX=/some/path QSapecNG will be installed to /some/path/bin * (only for Windows) INCLUDE_QT_DLL_IN_BIN_PACKAGE=[ON|OFF] if you want/don't want to include the DLL files of Qt Libraries in the binary packages (this option is enabled only if you have installed Qt as shared DLL libraries) * (only for Windows) INCLUDE_QWT5_DLL_IN_BIN_PACKAGE=[ON|OFF] if you want/don't want to include the DLL files of Qwt Libraries in the binary packages (this option is enabled only if you have installed Qwt as shared DLL libraries) * (only for MacOSX) INCLUDE_REQUIRED_LIBRARIES_INTO_BUNDLE=[ON|OFF] if you want to include required libraries into the application Bundle See CMake web-site for other generic cmake options. Building the documentation with Doxygen ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * Unix systems: after the "cmake" command you can execute "make doc" to generate the html documentation that will be saved to the ./doc subfolder. * Windows: if Doxygen is installed in the system, also the "doc" project can be build with Visual Studio, it generates the html documentation in the ./doc subfolder. Uninstalling ~~~~~~~~~~~~ * From Sources If the building tree has not been deleted from the filesystem you can execute, on Unix systems, "make uninstall" to remove the installed files or you can build the project "uninstall" on Visual Studio. * From Binary Packages - If you have installed from (g|b)zipped binary file you can simply delete every file you have unzipped. - If you have installed from Windows setup file you can found the Uninstall link in Start-->QSapecNG-->Uninstall - If you have installed from deb or rpm package you can remove the program using the package manager of your GNU/Linux distribution. - If you have installed from dmg file on MacOS simply drag the icon program from Applications directory to the Trash. Note for Debian-based distributions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The sources are provided with the "debian" subfolder, and the building of QSapecNG in a Debian-based system can be done using the common Debian building tools 'devscripts'. To build execute (in the source folder) debuild binary dpkg -i ../qsapecng_${version}_${arch}.deb where ${version} is the current version of QSapecNG and ${arch} is your system architecture. To generate the whole set of debian-related files you need to create the 'orig' tarball, this can be done executing "make package_source", the resulting gzipped archive does not contain the debian subfolder and represents the 'orig' tarball. The archive containing only the debian folder can be created executing "make debian_tar". Note for (Slackware/Debian/RedHat)-based distributions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ You can use the "checkinstall" instead of "make install" to install the program, so a slackware/deb/rpm package will be generated and installed. If you have downloaded a not-stable version from svn repository, I suggest using checkinstall with the following command checkinstall --default \ --pkgname qsapecng \ --pkgversion 2.0.0 \ --pkggroup electronics Packages ~~~~~~~~ There are two additional targets for "make" command: - package_source - package The first will create compressed archives with all the source files without the debian subfolder, the second will create a binary compressed package on Unix systems, a setup executable on Windows (if the program NSIS http://nsis.sourceforge.net/ is installed on the system) and a .dmg file with the application bundle on MacOSX. * Debian users may execute (as root) "cpack -G DEB" instead of "make package" to build a .deb binary file. * RedHat users may execute (as root) "cpack -G RMP" instead of "make package" to build a .rmp binary file (this command has not been tested). Translations ~~~~~~~~~~~~ Currently only English language is supported. The Italian one is in progress and other translations are welcomed. Usage ~~~~~ TODO