tintii-2.8.2/0000755000175000001440000000000012236200474010020 500000000000000tintii-2.8.2/Makefile.in0000644000175000001440000012550412236200460012007 00000000000000# Makefile.in generated by automake 1.12.1 from Makefile.am. # @configure_input@ # Copyright (C) 1994-2012 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. @SET_MAKE@ VPATH = @srcdir@ am__make_dryrun = \ { \ am__dry=no; \ case $$MAKEFLAGS in \ *\\[\ \ ]*) \ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \ *) \ for am__flg in $$MAKEFLAGS; do \ case $$am__flg in \ *=*|--*) ;; \ *n*) am__dry=yes; break;; \ esac; \ done;; \ esac; \ test $$am__dry = yes; \ } pkgdatadir = $(datadir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@ pkglibexecdir = $(libexecdir)/@PACKAGE@ am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd install_sh_DATA = $(install_sh) -c -m 644 install_sh_PROGRAM = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c INSTALL_HEADER = $(INSTALL_DATA) transform = $(program_transform_name) NORMAL_INSTALL = : PRE_INSTALL = : POST_INSTALL = : NORMAL_UNINSTALL = : PRE_UNINSTALL = : POST_UNINSTALL = : bin_PROGRAMS = tintii$(EXEEXT) subdir = . DIST_COMMON = README $(am__configure_deps) $(dist_noinst_SCRIPTS) \ $(dist_pkgdata_DATA) $(srcdir)/Makefile.am \ $(srcdir)/Makefile.in $(top_srcdir)/configure COPYING depcomp \ install-sh missing ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)" PROGRAMS = $(bin_PROGRAMS) am__dirstamp = $(am__leading_dot)dirstamp am_tintii_OBJECTS = src/gnome/gnome.$(OBJEXT) \ src/indii/gui/About.$(OBJEXT) src/indii/gui/App.$(OBJEXT) \ src/indii/gui/ChannelMixerPane.$(OBJEXT) \ src/indii/gui/Document.$(OBJEXT) src/indii/gui/Help.$(OBJEXT) \ src/indii/gui/InfoBar.$(OBJEXT) \ src/indii/gui/OpenRecentMenu.$(OBJEXT) \ src/indii/gui/Pane.$(OBJEXT) \ src/indii/gui/PreviewImage.$(OBJEXT) \ src/indii/gui/PreviewPane.$(OBJEXT) \ src/indii/gui/Registration.$(OBJEXT) \ src/indii/gui/Splash.$(OBJEXT) src/indii/gui/Window.$(OBJEXT) \ src/indii/gui/WindowMenu.$(OBJEXT) \ src/indii/image/ImageCache.$(OBJEXT) \ src/indii/image/ImageManipulation.$(OBJEXT) \ src/indii/image/FileImageResource.$(OBJEXT) \ src/indii/image/Image.$(OBJEXT) \ src/indii/image/ImageResource.$(OBJEXT) \ src/indii/image/ColourSpace.$(OBJEXT) \ src/indii/images/indii.$(OBJEXT) \ src/indii/model/Controller.$(OBJEXT) \ src/indii/model/Model.$(OBJEXT) \ src/indii/model/Observable.$(OBJEXT) \ src/indii/model/Observer.$(OBJEXT) \ src/indii/reg/free/Components.$(OBJEXT) \ src/indii/reg/Components.$(OBJEXT) \ src/indii/tint/gui/TintApp.$(OBJEXT) \ src/indii/tint/gui/TintWindow.$(OBJEXT) \ src/indii/tint/gui/PostProcessPane.$(OBJEXT) \ src/indii/tint/gui/ThumbPane.$(OBJEXT) \ src/indii/tint/gui/ThumbImage.$(OBJEXT) \ src/indii/tint/gui/SpectrumImage.$(OBJEXT) \ src/indii/tint/gui/ThumbHSL.$(OBJEXT) \ src/indii/tint/gui/TintDocument.$(OBJEXT) \ src/indii/tint/gui/PreProcessPane.$(OBJEXT) \ src/indii/tint/images/tint.$(OBJEXT) \ src/indii/tint/model/ClusterModel.$(OBJEXT) \ src/indii/tint/model/ClusterModelObservable.$(OBJEXT) \ src/indii/tint/model/ClusterModelObserver.$(OBJEXT) tintii_OBJECTS = $(am_tintii_OBJECTS) am__DEPENDENCIES_1 = tintii_DEPENDENCIES = $(am__DEPENDENCIES_1) SCRIPTS = $(dist_noinst_SCRIPTS) DEFAULT_INCLUDES = -I.@am__isrc@ depcomp = $(SHELL) $(top_srcdir)/depcomp am__depfiles_maybe = depfiles am__mv = mv -f CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) CXXLD = $(CXX) CXXLINK = $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ -o $@ COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) CCLD = $(CC) LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ SOURCES = $(tintii_SOURCES) DIST_SOURCES = $(tintii_SOURCES) am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ *) f=$$p;; \ esac; am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; am__install_max = 40 am__nobase_strip_setup = \ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` am__nobase_strip = \ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" am__nobase_list = $(am__nobase_strip_setup); \ for p in $$list; do echo "$$p $$p"; done | \ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ if (++n[$$2] == $(am__install_max)) \ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ END { for (dir in files) print dir, files[dir] }' am__base_list = \ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' am__uninstall_files_from_dir = { \ test -z "$$files" \ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } DATA = $(dist_pkgdata_DATA) ETAGS = etags CTAGS = ctags CSCOPE = cscope AM_RECURSIVE_TARGETS = cscope DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) am__remove_distdir = \ if test -d "$(distdir)"; then \ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ && rm -rf "$(distdir)" \ || { sleep 5 && rm -rf "$(distdir)"; }; \ else :; fi am__post_remove_distdir = $(am__remove_distdir) DIST_ARCHIVES = $(distdir).tar.gz GZIP_ENV = --best DIST_TARGETS = dist-gzip distuninstallcheck_listfiles = find . -type f -print am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' distcleancheck_listfiles = find . -type f -print ACLOCAL = @ACLOCAL@ AMTAR = @AMTAR@ AUTOCONF = @AUTOCONF@ AUTOHEADER = @AUTOHEADER@ AUTOMAKE = @AUTOMAKE@ AWK = @AWK@ CPPFLAGS = @CPPFLAGS@ CXX = @CXX@ CXXCPP = @CXXCPP@ CXXDEPMODE = @CXXDEPMODE@ CXXFLAGS = @CXXFLAGS@ CYGPATH_W = @CYGPATH_W@ DEFS = @DEFS@ DEPDIR = @DEPDIR@ DEPS_CPPFLAGS = @DEPS_CPPFLAGS@ DEPS_CXXFLAGS = @DEPS_CXXFLAGS@ DEPS_LIBS = @DEPS_LIBS@ ECHO_C = @ECHO_C@ ECHO_N = @ECHO_N@ ECHO_T = @ECHO_T@ EGREP = @EGREP@ EXEEXT = @EXEEXT@ GREP = @GREP@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ LDFLAGS = @LDFLAGS@ LIBOBJS = @LIBOBJS@ LIBS = @LIBS@ LTLIBOBJS = @LTLIBOBJS@ MAKEINFO = @MAKEINFO@ MKDIR_P = @MKDIR_P@ OBJEXT = @OBJEXT@ OPENMP_CXXFLAGS = @OPENMP_CXXFLAGS@ PACKAGE = @PACKAGE@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ PACKAGE_NAME = @PACKAGE_NAME@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PACKAGE_URL = @PACKAGE_URL@ PACKAGE_VERSION = @PACKAGE_VERSION@ PATH_SEPARATOR = @PATH_SEPARATOR@ SET_MAKE = @SET_MAKE@ SHELL = @SHELL@ STRIP = @STRIP@ VERSION = @VERSION@ abs_builddir = @abs_builddir@ abs_srcdir = @abs_srcdir@ abs_top_builddir = @abs_top_builddir@ abs_top_srcdir = @abs_top_srcdir@ ac_ct_CXX = @ac_ct_CXX@ am__include = @am__include@ am__leading_dot = @am__leading_dot@ am__quote = @am__quote@ am__tar = @am__tar@ am__untar = @am__untar@ bindir = @bindir@ build_alias = @build_alias@ builddir = @builddir@ datadir = @datadir@ datarootdir = @datarootdir@ docdir = @docdir@ dvidir = @dvidir@ exec_prefix = @exec_prefix@ have_wxconfig = @have_wxconfig@ host_alias = @host_alias@ htmldir = @htmldir@ includedir = @includedir@ infodir = @infodir@ install_sh = @install_sh@ libdir = @libdir@ libexecdir = @libexecdir@ localedir = @localedir@ localstatedir = @localstatedir@ mandir = @mandir@ mkdir_p = @mkdir_p@ oldincludedir = @oldincludedir@ pdfdir = @pdfdir@ prefix = @prefix@ program_transform_name = @program_transform_name@ psdir = @psdir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ sysconfdir = @sysconfdir@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ AUTOMAKE_OPTIONS = subdir-objects # compile and link flags AM_CPPFLAGS = -DTINTII $(OPENMP_CXXFLAGS) -DDATADIR='"$(datadir)"' -DNULL=0 -Wall AM_CXXFLAGS = $(DEPS_CXXFLAGS) -funroll-loops -ffast-math -Wall -Wno-deprecated AM_LDFLAGS = $(OPENMP_CXXFLAGS) tintii_LDADD = $(DEPS_LIBS) tintii_SOURCES = \ src/gnome/gnome.cpp \ src/indii/gui/About.cpp \ src/indii/gui/App.cpp \ src/indii/gui/ChannelMixerPane.cpp \ src/indii/gui/Document.cpp \ src/indii/gui/Help.cpp \ src/indii/gui/InfoBar.cpp \ src/indii/gui/misc.hpp \ src/indii/gui/OpenRecentMenu.cpp \ src/indii/gui/Pane.cpp \ src/indii/gui/PreviewImage.cpp \ src/indii/gui/PreviewPane.cpp \ src/indii/gui/Registration.cpp \ src/indii/gui/Splash.cpp \ src/indii/gui/Window.cpp \ src/indii/gui/WindowMenu.cpp \ src/indii/image/ImageCache.cpp \ src/indii/image/ImageManipulation.cpp \ src/indii/image/FileImageResource.cpp \ src/indii/image/Image.cpp \ src/indii/image/ImageResource.cpp \ src/indii/image/ColourSpace.cpp \ src/indii/images/indii.cpp \ src/indii/model/Controller.cpp \ src/indii/model/Model.cpp \ src/indii/model/Observable.cpp \ src/indii/model/Observer.cpp \ src/indii/reg/free/Components.cpp \ src/indii/reg/Components.cpp \ src/indii/tint/gui/TintApp.cpp \ src/indii/tint/gui/TintWindow.cpp \ src/indii/tint/gui/PostProcessPane.cpp \ src/indii/tint/gui/ThumbPane.cpp \ src/indii/tint/gui/ThumbImage.cpp \ src/indii/tint/gui/SpectrumImage.cpp \ src/indii/tint/gui/ThumbHSL.cpp \ src/indii/tint/gui/TintDocument.cpp \ src/indii/tint/gui/PreProcessPane.cpp \ src/indii/tint/images/tint.cpp \ src/indii/tint/model/ClusterModel.cpp \ src/indii/tint/model/ClusterModelObservable.cpp \ src/indii/tint/model/ClusterModelObserver.cpp \ src/gnome/gnome.hpp \ src/indii/meta.hpp \ src/indii/cluster/DataSet.hpp \ src/indii/cluster/KMeansClusterer.hpp \ src/indii/cluster/ClusterVector.hpp \ src/indii/cluster/PearsonDistance.hpp \ src/indii/cluster/EuclideanDistance.hpp \ src/indii/gui/About.hpp \ src/indii/gui/App.hpp \ src/indii/gui/ChannelMixerPane.hpp \ src/indii/gui/Document.hpp \ src/indii/gui/Help.hpp \ src/indii/gui/InfoBar.hpp \ src/indii/gui/OpenRecentMenu.hpp \ src/indii/gui/Pane.hpp \ src/indii/gui/PreviewImage.hpp \ src/indii/gui/PreviewPane.hpp \ src/indii/gui/Registration.hpp \ src/indii/gui/Splash.hpp \ src/indii/gui/Window.hpp \ src/indii/gui/WindowMenu.hpp \ src/indii/gui/WindowObserver.hpp \ src/indii/gui/misc.hpp \ src/indii/image/ImageCache.hpp \ src/indii/image/ImageResource.hpp \ src/indii/image/FileImageResource.hpp \ src/indii/image/Image.hpp \ src/indii/image/ImageManipulation.hpp \ src/indii/image/ColourSpace.hpp \ src/indii/images/indii.hpp \ src/indii/model/Controller.hpp \ src/indii/model/Model.hpp \ src/indii/model/Observable.hpp \ src/indii/model/Observer.hpp \ src/indii/reg/Components.hpp \ src/indii/tint/gui/TintWindow.hpp \ src/indii/tint/gui/ThumbPane.hpp \ src/indii/tint/gui/TintDocument.hpp \ src/indii/tint/gui/PostProcessPane.hpp \ src/indii/tint/gui/ThumbImage.hpp \ src/indii/tint/gui/ThumbHSL.hpp \ src/indii/tint/gui/TintApp.hpp \ src/indii/tint/gui/SpectrumImage.hpp \ src/indii/tint/gui/PreProcessPane.hpp \ src/indii/tint/images/tint.hpp \ src/indii/tint/model/ClusterModel.hpp \ src/indii/tint/model/ClusterModelObservable.hpp \ src/indii/tint/model/ClusterModelObserver.hpp # help system dist_pkgdata_DATA = help/tintii.htb # other dist_noinst_SCRIPTS = autogen.sh EXTRA_DIST = \ README \ COPYING \ help/icons/README \ help/icons/COPYING \ help/icons/zoom-best-fit.png \ help/icons/document-open.png \ help/icons/list-remove.png \ help/icons/zoom-original.png \ help/icons/document-save.png \ help/icons/list-add.png \ help/icons/zoom-in.png \ help/icons/zoom-out.png \ help/icons/help-browser.png \ help/icons/dialog-information.png \ help/icons/document-save-as.png \ help/icons/preferences-system-windows.png \ help/icons/emblem-favorite.png \ help/icons/package-x-generic.png \ help/icons/emblem-web.png \ help/icons/system-run.png \ help/icons/window-new.png \ images/tintii/splash.xpm all: all-am .SUFFIXES: .SUFFIXES: .cpp .o .obj am--refresh: Makefile @: $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ *$$dep*) \ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ && exit 0; \ exit 1;; \ esac; \ done; \ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --foreign Makefile .PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ echo ' $(SHELL) ./config.status'; \ $(SHELL) ./config.status;; \ *) \ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck $(top_srcdir)/configure: $(am__configure_deps) $(am__cd) $(srcdir) && $(AUTOCONF) $(ACLOCAL_M4): $(am__aclocal_m4_deps) $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) $(am__aclocal_m4_deps): install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \ fi; \ for p in $$list; do echo "$$p $$p"; done | \ sed 's/$(EXEEXT)$$//' | \ while read p p1; do if test -f $$p; \ then echo "$$p"; echo "$$p"; else :; fi; \ done | \ sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \ sed 'N;N;N;s,\n, ,g' | \ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \ if ($$2 == $$4) files[d] = files[d] " " $$1; \ else { print "f", $$3 "/" $$4, $$1; } } \ END { for (d in files) print "f", d, files[d] }' | \ while read type dir files; do \ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \ test -z "$$files" || { \ echo " $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \ $(INSTALL_PROGRAM_ENV) $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \ } \ ; done uninstall-binPROGRAMS: @$(NORMAL_UNINSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ files=`for p in $$list; do echo "$$p"; done | \ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \ -e 's/$$/$(EXEEXT)/' `; \ test -n "$$list" || exit 0; \ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \ cd "$(DESTDIR)$(bindir)" && rm -f $$files clean-binPROGRAMS: -test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS) src/gnome/$(am__dirstamp): @$(MKDIR_P) src/gnome @: > src/gnome/$(am__dirstamp) src/gnome/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/gnome/$(DEPDIR) @: > src/gnome/$(DEPDIR)/$(am__dirstamp) src/gnome/gnome.$(OBJEXT): src/gnome/$(am__dirstamp) \ src/gnome/$(DEPDIR)/$(am__dirstamp) src/indii/gui/$(am__dirstamp): @$(MKDIR_P) src/indii/gui @: > src/indii/gui/$(am__dirstamp) src/indii/gui/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/gui/$(DEPDIR) @: > src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/About.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/App.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/ChannelMixerPane.$(OBJEXT): \ src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Document.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Help.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/InfoBar.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/OpenRecentMenu.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Pane.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/PreviewImage.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/PreviewPane.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Registration.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Splash.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/Window.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/gui/WindowMenu.$(OBJEXT): src/indii/gui/$(am__dirstamp) \ src/indii/gui/$(DEPDIR)/$(am__dirstamp) src/indii/image/$(am__dirstamp): @$(MKDIR_P) src/indii/image @: > src/indii/image/$(am__dirstamp) src/indii/image/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/image/$(DEPDIR) @: > src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/ImageCache.$(OBJEXT): src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/ImageManipulation.$(OBJEXT): \ src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/FileImageResource.$(OBJEXT): \ src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/Image.$(OBJEXT): src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/ImageResource.$(OBJEXT): \ src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/image/ColourSpace.$(OBJEXT): \ src/indii/image/$(am__dirstamp) \ src/indii/image/$(DEPDIR)/$(am__dirstamp) src/indii/images/$(am__dirstamp): @$(MKDIR_P) src/indii/images @: > src/indii/images/$(am__dirstamp) src/indii/images/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/images/$(DEPDIR) @: > src/indii/images/$(DEPDIR)/$(am__dirstamp) src/indii/images/indii.$(OBJEXT): src/indii/images/$(am__dirstamp) \ src/indii/images/$(DEPDIR)/$(am__dirstamp) src/indii/model/$(am__dirstamp): @$(MKDIR_P) src/indii/model @: > src/indii/model/$(am__dirstamp) src/indii/model/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/model/$(DEPDIR) @: > src/indii/model/$(DEPDIR)/$(am__dirstamp) src/indii/model/Controller.$(OBJEXT): src/indii/model/$(am__dirstamp) \ src/indii/model/$(DEPDIR)/$(am__dirstamp) src/indii/model/Model.$(OBJEXT): src/indii/model/$(am__dirstamp) \ src/indii/model/$(DEPDIR)/$(am__dirstamp) src/indii/model/Observable.$(OBJEXT): src/indii/model/$(am__dirstamp) \ src/indii/model/$(DEPDIR)/$(am__dirstamp) src/indii/model/Observer.$(OBJEXT): src/indii/model/$(am__dirstamp) \ src/indii/model/$(DEPDIR)/$(am__dirstamp) src/indii/reg/free/$(am__dirstamp): @$(MKDIR_P) src/indii/reg/free @: > src/indii/reg/free/$(am__dirstamp) src/indii/reg/free/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/reg/free/$(DEPDIR) @: > src/indii/reg/free/$(DEPDIR)/$(am__dirstamp) src/indii/reg/free/Components.$(OBJEXT): \ src/indii/reg/free/$(am__dirstamp) \ src/indii/reg/free/$(DEPDIR)/$(am__dirstamp) src/indii/reg/$(am__dirstamp): @$(MKDIR_P) src/indii/reg @: > src/indii/reg/$(am__dirstamp) src/indii/reg/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/reg/$(DEPDIR) @: > src/indii/reg/$(DEPDIR)/$(am__dirstamp) src/indii/reg/Components.$(OBJEXT): src/indii/reg/$(am__dirstamp) \ src/indii/reg/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/gui @: > src/indii/tint/gui/$(am__dirstamp) src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/gui/$(DEPDIR) @: > src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/TintApp.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/TintWindow.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/PostProcessPane.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/ThumbPane.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/ThumbImage.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/SpectrumImage.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/ThumbHSL.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/TintDocument.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/gui/PreProcessPane.$(OBJEXT): \ src/indii/tint/gui/$(am__dirstamp) \ src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) src/indii/tint/images/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/images @: > src/indii/tint/images/$(am__dirstamp) src/indii/tint/images/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/images/$(DEPDIR) @: > src/indii/tint/images/$(DEPDIR)/$(am__dirstamp) src/indii/tint/images/tint.$(OBJEXT): \ src/indii/tint/images/$(am__dirstamp) \ src/indii/tint/images/$(DEPDIR)/$(am__dirstamp) src/indii/tint/model/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/model @: > src/indii/tint/model/$(am__dirstamp) src/indii/tint/model/$(DEPDIR)/$(am__dirstamp): @$(MKDIR_P) src/indii/tint/model/$(DEPDIR) @: > src/indii/tint/model/$(DEPDIR)/$(am__dirstamp) src/indii/tint/model/ClusterModel.$(OBJEXT): \ src/indii/tint/model/$(am__dirstamp) \ src/indii/tint/model/$(DEPDIR)/$(am__dirstamp) src/indii/tint/model/ClusterModelObservable.$(OBJEXT): \ src/indii/tint/model/$(am__dirstamp) \ src/indii/tint/model/$(DEPDIR)/$(am__dirstamp) src/indii/tint/model/ClusterModelObserver.$(OBJEXT): \ src/indii/tint/model/$(am__dirstamp) \ src/indii/tint/model/$(DEPDIR)/$(am__dirstamp) tintii$(EXEEXT): $(tintii_OBJECTS) $(tintii_DEPENDENCIES) $(EXTRA_tintii_DEPENDENCIES) @rm -f tintii$(EXEEXT) $(CXXLINK) $(tintii_OBJECTS) $(tintii_LDADD) $(LIBS) mostlyclean-compile: -rm -f *.$(OBJEXT) -rm -f src/gnome/gnome.$(OBJEXT) -rm -f src/indii/gui/About.$(OBJEXT) -rm -f src/indii/gui/App.$(OBJEXT) -rm -f src/indii/gui/ChannelMixerPane.$(OBJEXT) -rm -f src/indii/gui/Document.$(OBJEXT) -rm -f src/indii/gui/Help.$(OBJEXT) -rm -f src/indii/gui/InfoBar.$(OBJEXT) -rm -f src/indii/gui/OpenRecentMenu.$(OBJEXT) -rm -f src/indii/gui/Pane.$(OBJEXT) -rm -f src/indii/gui/PreviewImage.$(OBJEXT) -rm -f src/indii/gui/PreviewPane.$(OBJEXT) -rm -f src/indii/gui/Registration.$(OBJEXT) -rm -f src/indii/gui/Splash.$(OBJEXT) -rm -f src/indii/gui/Window.$(OBJEXT) -rm -f src/indii/gui/WindowMenu.$(OBJEXT) -rm -f src/indii/image/ColourSpace.$(OBJEXT) -rm -f src/indii/image/FileImageResource.$(OBJEXT) -rm -f src/indii/image/Image.$(OBJEXT) -rm -f src/indii/image/ImageCache.$(OBJEXT) -rm -f src/indii/image/ImageManipulation.$(OBJEXT) -rm -f src/indii/image/ImageResource.$(OBJEXT) -rm -f src/indii/images/indii.$(OBJEXT) -rm -f src/indii/model/Controller.$(OBJEXT) -rm -f src/indii/model/Model.$(OBJEXT) -rm -f src/indii/model/Observable.$(OBJEXT) -rm -f src/indii/model/Observer.$(OBJEXT) -rm -f src/indii/reg/Components.$(OBJEXT) -rm -f src/indii/reg/free/Components.$(OBJEXT) -rm -f src/indii/tint/gui/PostProcessPane.$(OBJEXT) -rm -f src/indii/tint/gui/PreProcessPane.$(OBJEXT) -rm -f src/indii/tint/gui/SpectrumImage.$(OBJEXT) -rm -f src/indii/tint/gui/ThumbHSL.$(OBJEXT) -rm -f src/indii/tint/gui/ThumbImage.$(OBJEXT) -rm -f src/indii/tint/gui/ThumbPane.$(OBJEXT) -rm -f src/indii/tint/gui/TintApp.$(OBJEXT) -rm -f src/indii/tint/gui/TintDocument.$(OBJEXT) -rm -f src/indii/tint/gui/TintWindow.$(OBJEXT) -rm -f src/indii/tint/images/tint.$(OBJEXT) -rm -f src/indii/tint/model/ClusterModel.$(OBJEXT) -rm -f src/indii/tint/model/ClusterModelObservable.$(OBJEXT) -rm -f src/indii/tint/model/ClusterModelObserver.$(OBJEXT) distclean-compile: -rm -f *.tab.c @AMDEP_TRUE@@am__include@ @am__quote@src/gnome/$(DEPDIR)/gnome.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/About.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/App.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/ChannelMixerPane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Document.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Help.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/InfoBar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/OpenRecentMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Pane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/PreviewImage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/PreviewPane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Registration.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Splash.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/Window.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/gui/$(DEPDIR)/WindowMenu.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/ColourSpace.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/FileImageResource.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/Image.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/ImageCache.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/ImageManipulation.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/image/$(DEPDIR)/ImageResource.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/images/$(DEPDIR)/indii.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/model/$(DEPDIR)/Controller.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/model/$(DEPDIR)/Model.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/model/$(DEPDIR)/Observable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/model/$(DEPDIR)/Observer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/reg/$(DEPDIR)/Components.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/reg/free/$(DEPDIR)/Components.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/PostProcessPane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/PreProcessPane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/SpectrumImage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/ThumbHSL.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/ThumbImage.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/ThumbPane.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/TintApp.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/TintDocument.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/gui/$(DEPDIR)/TintWindow.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/images/$(DEPDIR)/tint.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/model/$(DEPDIR)/ClusterModel.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/model/$(DEPDIR)/ClusterModelObservable.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@src/indii/tint/model/$(DEPDIR)/ClusterModelObserver.Po@am__quote@ .cpp.o: @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< .cpp.obj: @am__fastdepCXX_TRUE@ depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ @am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ @am__fastdepCXX_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po @AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ @AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ @am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` install-dist_pkgdataDATA: $(dist_pkgdata_DATA) @$(NORMAL_INSTALL) @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ if test -n "$$list"; then \ echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ fi; \ for p in $$list; do \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ echo "$$d$$p"; \ done | $(am__base_list) | \ while read files; do \ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ done uninstall-dist_pkgdataDATA: @$(NORMAL_UNINSTALL) @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ mkid -fID $$unique tags: TAGS TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) set x; \ here=`pwd`; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ shift; \ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ test -n "$$unique" || unique=$$empty_fix; \ if test $$# -gt 0; then \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ "$$@" $$unique; \ else \ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ $$unique; \ fi; \ fi ctags: CTAGS CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ $(TAGS_FILES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ unique=`for i in $$list; do \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ done | \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ END { if (nonempty) { for (i in files) print i; }; }'`; \ test -z "$(CTAGS_ARGS)$$unique" \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ $$unique GTAGS: here=`$(am__cd) $(top_builddir) && pwd` \ && $(am__cd) $(top_srcdir) \ && gtags -i $(GTAGS_ARGS) "$$here" cscope: cscope.files test ! -s cscope.files \ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) clean-cscope: -rm -f cscope.files cscope.files: clean-cscope cscopelist cscopelist: $(HEADERS) $(SOURCES) $(LISP) list='$(SOURCES) $(HEADERS) $(LISP)'; \ case "$(srcdir)" in \ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ *) sdir=$(subdir)/$(srcdir) ;; \ esac; \ for i in $$list; do \ if test -f "$$i"; then \ echo "$(subdir)/$$i"; \ else \ echo "$$sdir/$$i"; \ fi; \ done >> $(top_builddir)/cscope.files distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f cscope.out cscope.in.out cscope.po.out cscope.files distdir: $(DISTFILES) $(am__remove_distdir) test -d "$(distdir)" || mkdir "$(distdir)" @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ dist_files=`for file in $$list; do echo $$file; done | \ sed -e "s|^$$srcdirstrip/||;t" \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ case $$dist_files in \ */*) $(MKDIR_P) `echo "$$dist_files" | \ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ sort -u` ;; \ esac; \ for file in $$dist_files; do \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -d $$d/$$file; then \ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ if test -d "$(distdir)/$$file"; then \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ fi; \ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ else \ test -f "$(distdir)/$$file" \ || cp -p $$d/$$file "$(distdir)/$$file" \ || exit 1; \ fi; \ done -test -n "$(am__skip_mode_fix)" \ || find "$(distdir)" -type d ! -perm -755 \ -exec chmod u+rwx,go+rx {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ || chmod -R a+r "$(distdir)" dist-gzip: distdir tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz $(am__post_remove_distdir) dist-bzip2: distdir tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 $(am__post_remove_distdir) dist-lzip: distdir tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz $(am__post_remove_distdir) dist-xz: distdir tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz $(am__post_remove_distdir) dist-tarZ: distdir tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) dist-zip: distdir -rm -f $(distdir).zip zip -rq $(distdir).zip $(distdir) $(am__post_remove_distdir) dist dist-all: $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' $(am__post_remove_distdir) # This target untars the dist file and tries a VPATH configuration. Then # it guarantees that the distribution is self-contained by making another # tarfile. distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ *.tar.xz*) \ xz -dc $(distdir).tar.xz | $(am__untar) ;;\ *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac chmod -R a-w $(distdir); chmod a+w $(distdir) mkdir $(distdir)/_build mkdir $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ && $(am__cd) $(distdir)/_build \ && ../configure --srcdir=.. --prefix="$$dc_install_base" \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ && $(MAKE) $(AM_MAKEFLAGS) install \ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ distuninstallcheck \ && chmod -R a-w "$$dc_install_base" \ && ({ \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ } || { rm -rf "$$dc_destdir"; exit 1; }) \ && rm -rf "$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) dist \ && rm -rf $(DIST_ARCHIVES) \ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ && cd "$$am__cwd" \ || exit 1 $(am__post_remove_distdir) @(echo "$(distdir) archives ready for distribution: "; \ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' distuninstallcheck: @test -n '$(distuninstallcheck_dir)' || { \ echo 'ERROR: trying to run $@ with an empty' \ '$$(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ $(am__cd) '$(distuninstallcheck_dir)' || { \ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ exit 1; \ }; \ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left after uninstall:" ; \ if test -n "$(DESTDIR)"; then \ echo " (check DESTDIR support)"; \ fi ; \ $(distuninstallcheck_listfiles) ; \ exit 1; } >&2 distcleancheck: distclean @if test '$(srcdir)' = . ; then \ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ exit 1 ; \ fi @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ || { echo "ERROR: files left in build directory after distclean:" ; \ $(distcleancheck_listfiles) ; \ exit 1; } >&2 check-am: all-am check: check-am all-am: Makefile $(PROGRAMS) $(SCRIPTS) $(DATA) installdirs: for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(pkgdatadir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am install-exec: install-exec-am install-data: install-data-am uninstall: uninstall-am install-am: all-am @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am installcheck: installcheck-am install-strip: if test -z '$(STRIP)'; then \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ install; \ else \ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ fi mostlyclean-generic: clean-generic: distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) -rm -f src/gnome/$(DEPDIR)/$(am__dirstamp) -rm -f src/gnome/$(am__dirstamp) -rm -f src/indii/gui/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/gui/$(am__dirstamp) -rm -f src/indii/image/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/image/$(am__dirstamp) -rm -f src/indii/images/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/images/$(am__dirstamp) -rm -f src/indii/model/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/model/$(am__dirstamp) -rm -f src/indii/reg/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/reg/$(am__dirstamp) -rm -f src/indii/reg/free/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/reg/free/$(am__dirstamp) -rm -f src/indii/tint/gui/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/tint/gui/$(am__dirstamp) -rm -f src/indii/tint/images/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/tint/images/$(am__dirstamp) -rm -f src/indii/tint/model/$(DEPDIR)/$(am__dirstamp) -rm -f src/indii/tint/model/$(am__dirstamp) maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." clean: clean-am clean-am: clean-binPROGRAMS clean-generic mostlyclean-am distclean: distclean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf src/gnome/$(DEPDIR) src/indii/gui/$(DEPDIR) src/indii/image/$(DEPDIR) src/indii/images/$(DEPDIR) src/indii/model/$(DEPDIR) src/indii/reg/$(DEPDIR) src/indii/reg/free/$(DEPDIR) src/indii/tint/gui/$(DEPDIR) src/indii/tint/images/$(DEPDIR) src/indii/tint/model/$(DEPDIR) -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags dvi: dvi-am dvi-am: html: html-am html-am: info: info-am info-am: install-data-am: install-dist_pkgdataDATA install-dvi: install-dvi-am install-dvi-am: install-exec-am: install-binPROGRAMS install-html: install-html-am install-html-am: install-info: install-info-am install-info-am: install-man: install-pdf: install-pdf-am install-pdf-am: install-ps: install-ps-am install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am -rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -rf $(top_srcdir)/autom4te.cache -rm -rf src/gnome/$(DEPDIR) src/indii/gui/$(DEPDIR) src/indii/image/$(DEPDIR) src/indii/images/$(DEPDIR) src/indii/model/$(DEPDIR) src/indii/reg/$(DEPDIR) src/indii/reg/free/$(DEPDIR) src/indii/tint/gui/$(DEPDIR) src/indii/tint/images/$(DEPDIR) src/indii/tint/model/$(DEPDIR) -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic mostlyclean: mostlyclean-am mostlyclean-am: mostlyclean-compile mostlyclean-generic pdf: pdf-am pdf-am: ps: ps-am ps-am: uninstall-am: uninstall-binPROGRAMS uninstall-dist_pkgdataDATA .MAKE: install-am install-strip .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ clean-binPROGRAMS clean-cscope clean-generic cscope cscopelist \ ctags dist dist-all dist-bzip2 dist-gzip dist-lzip dist-shar \ dist-tarZ dist-xz dist-zip distcheck distclean \ distclean-compile distclean-generic distclean-tags \ distcleancheck distdir distuninstallcheck dvi dvi-am html \ html-am info info-am install install-am install-binPROGRAMS \ install-data install-data-am install-dist_pkgdataDATA \ install-dvi install-dvi-am install-exec install-exec-am \ install-html install-html-am install-info install-info-am \ install-man install-pdf install-pdf-am install-ps \ install-ps-am install-strip installcheck installcheck-am \ installdirs maintainer-clean maintainer-clean-generic \ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ps ps-am tags uninstall uninstall-am uninstall-binPROGRAMS \ uninstall-dist_pkgdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: tintii-2.8.2/src/0000755000175000001440000000000012236200474010607 500000000000000tintii-2.8.2/src/indii/0000755000175000001440000000000012236200475011704 500000000000000tintii-2.8.2/src/indii/reg/0000755000175000001440000000000012236200475012461 500000000000000tintii-2.8.2/src/indii/reg/free/0000755000175000001440000000000012236200475013402 500000000000000tintii-2.8.2/src/indii/reg/free/Components.cpp0000644000175000001440000000156712236200473016162 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * @version $Rev$ * @date $Date$ */ #include "../Components.hpp" using namespace indii; bool Components::isActivated(const Component c) { return true; } bool Components::needsReactivation(const Component c) { return false; } bool Components::isTrial(const Component c) { return false; } bool Components::activate(const Component c, const wxString& key) { return false; } int Components::daysLeft() { return 0; } int Components::maxDays() { return 21; } wxString Components::getKey() { return wxEmptyString; } tintii-2.8.2/src/indii/reg/Components.hpp0000644000175000001440000000430112236200473015233 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_REG_COMPONENTS_HPP #define INDII_REG_COMPONENTS_HPP #include "wx/string.h" namespace indii { /** * Allows querying of installed components. */ class Components { public: /** * Component ids. */ enum Component { /** * Standalone app. */ APP, /** * Plugin. */ PLUGIN, /** * No. components. */ NUM_COMPONENTS }; /** * Is component activated? * * @param c The component. * * @return True if the component is activated, false otherwise. */ static bool isActivated(const Component c); /** * Does component need reactivation? * * @param c The component. * * @return True if the component needs to be reactivated, false otherwise. */ static bool needsReactivation(const Component c); /** * Is component in trial period? * * @param c The component. * * @return True if the component is within its trial period, false * otherwise. */ static bool isTrial(const Component c); /** * Are all components activated? * * @return True if all components are activated, false otherwise. */ static bool allActivated(); /** * Activate components. * * @param c Component in which the registration is taking place. Used to * tailor feedback to user. * @param key The activation key. * * @return True if the key is accepted, false otherwise. */ static bool activate(const Component c, const wxString& key); /** * Get number of days left in trial period. * * @return Number of days left in trial period. */ static int daysLeft(); /** * Maximum number of days in trial. * * @return Maximum number of days in trial. */ static int maxDays(); /** * Get the key. Empty string if none. */ static wxString getKey(); }; } #endif tintii-2.8.2/src/indii/reg/Components.cpp0000644000175000001440000000117012236200473015227 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Components.hpp" using namespace indii; bool Components::allActivated() { bool result = true; unsigned int i; for (i = 0; i < NUM_COMPONENTS && result; i++) { result = result && isActivated((Component)i); } return result; } tintii-2.8.2/src/indii/gui/0000755000175000001440000000000012236200475012470 500000000000000tintii-2.8.2/src/indii/gui/misc.hpp0000644000175000001440000000145012236200473014052 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_MISC_HPP #define INDII_GUI_MISC_HPP namespace indii { /** * Is the meta key pressed? * * @param evt Mouse event. */ bool is_meta(const wxMouseEvent& evt); } #include "wx/event.h" inline bool indii::is_meta(const wxMouseEvent& evt) { #ifndef WX_28 return evt.GetModifiers() == wxMOD_CONTROL; #else return evt.ControlDown() && !evt.AltDown() && !evt.ShiftDown() && !evt.MetaDown(); #endif } #endif tintii-2.8.2/src/indii/gui/Pane.cpp0000644000175000001440000000073612236200473014003 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Pane.hpp" using namespace indii; Pane::Pane(wxWindow* parent) : wxPanel(parent) { // } tintii-2.8.2/src/indii/gui/WindowObserver.hpp0000644000175000001440000000141612236200473016100 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_WINDOWOBSERVER_HPP #define INDII_GUI_WINDOWOBSERVER_HPP namespace indii { class Window; /** * Observer of main window. */ class WindowObserver { public: /** * Notify that window is closing. * * @param window The window being closed. * @param exiting Is the program exiting? */ virtual void notifyClose(Window* window, const bool exiting = false) = 0; }; } #endif tintii-2.8.2/src/indii/gui/WindowMenu.hpp0000644000175000001440000000221712236200473015215 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_WINDOWMENU_HPP #define INDII_GUI_WINDOWMENU_HPP #include "wx/wx.h" namespace indii { class Window; /** * Window menu. */ class WindowMenu : public wxMenu { public: /** * Constructor. * * @param window Window with which menu is associated. */ WindowMenu(Window* window); /** * Add menu item. */ void add(const wxString& name); /** * Update check marks. */ void update(); /* * Event handlers. */ void OnShow(wxMenuEvent& evt); void OnSelect(wxCommandEvent& evt); void OnDefault(wxCommandEvent& evt); private: /** * Window with which menu is associated. */ Window* window; /* * Control ids. */ enum ID { ID_SELECT = 1432, ID_DEFAULTS = 2758, }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/About.hpp0000644000175000001440000000102712236200473014171 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_ABOUT_HPP #define INDII_GUI_ABOUT_HPP #include "wx/window.h" namespace indii { void showAboutDialog(wxWindow* parent = NULL); } #endif tintii-2.8.2/src/indii/gui/Window.hpp0000644000175000001440000001357712236200473014403 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_WINDOW_HPP #define INDII_GUI_WINDOW_HPP #include "WindowObserver.hpp" #include "Document.hpp" #include "InfoBar.hpp" #include "wx/frame.h" #include "wx/aui/aui.h" namespace indii { class OpenRecentMenu; class WindowMenu; /** * Main window. */ class Window : public wxFrame { public: /** * Modes. */ enum Mode { /** * Standalone mode. Includes Save and Save As buttons. */ STANDALONE, /** * Embedded mode. Includes OK button. */ EMBED }; /** * Constructor. * * @param parent Parent. * @param mode Mode of operation. * @param obs Enclosing application, if not embedded mode. * * Call init() once the first document is ready. */ Window(wxWindow* parent, const Mode mode, WindowObserver* obs); /** * Destructor. */ ~Window(); /** * Open file. */ virtual Document* open(const wxString& file) = 0; /** * Open file and add to window. */ void openAndAdd(const wxString& file); /** * Restore default layout. */ virtual void layoutDefault() = 0; /** * Set model. * * @param model Set model. */ virtual void setModel(Model* model) = 0; /** * Is a pane shown? * * @param i Index of the pane. * * @return True if the pane is shown, false otherwise. */ virtual bool isShown(const unsigned i) = 0; /** * Show a pane. * * @param i Index of the pane. * @param show True to show the pane, false to hide it. */ virtual void show(const unsigned i, const bool show) = 0; /** * Set exiting status. Used predominantly under Mac to indicate whether the * closing of the window should also terminate the program. * * @param exiting Is the program exiting? */ void setExiting(const bool exiting = true); /** * Get return code. */ int GetReturnCode(); /** * Set return code. */ void SetReturnCode(const int returnCode); /** * Close event. */ void OnSystemClose(wxCloseEvent& evt); /** * Drag and drop permission event. */ void OnAllowNotebookDnD(wxAuiNotebookEvent& evt); /** * Menu opened event. */ void OnMenuOpen(wxMenuEvent& evt); /** * Open button event. */ void OnButtonOpen(wxCommandEvent& evt); /** * Open recent menu event. */ void OnOpenRecent(wxCommandEvent& evt); /** * Clear recent menu event. */ void OnClearRecent(wxCommandEvent& evt); /** * Save button event. */ void OnButtonSave(wxCommandEvent& evt); /** * Save As button event. */ void OnButtonSaveAs(wxCommandEvent& evt); /** * Close button event. */ void OnButtonClose(wxCommandEvent& evt); /** * Exit button event. */ void OnButtonExit(wxCommandEvent& evt); /** * OK button event. */ void OnButtonOk(wxCommandEvent& evt); /** * Cancel button event. */ void OnButtonCancel(wxCommandEvent& evt); /* * Toolbar button events. */ void OnButtonAbout(wxCommandEvent& evt); void OnButtonRegister(wxCommandEvent& evt); void OnButtonWindow(wxCommandEvent& evt); void OnButtonOverlay(wxCommandEvent& evt); void OnButtonHelp(wxCommandEvent& evt); void OnButtonDefault(wxCommandEvent& evt); void OnButZoomOut(wxCommandEvent& evt); void OnButZoomIn(wxCommandEvent& evt); void OnButZoomNormal(wxCommandEvent& evt); void OnButZoomFit(wxCommandEvent& evt); void OnPageClose(wxAuiNotebookEvent& evt); void OnPageChanged(wxAuiNotebookEvent& evt); /* * Window menu events. */ void OnSelect(wxCommandEvent& evt); void OnDefault(wxCommandEvent& evt); protected: /** * Initialise. * * @param doc Document to have open initially. */ void init(Document* doc = NULL); /** * Initialise panes. */ virtual void initPanes(); /** * Enable or disable menu and toolbar items as appropriate. */ virtual void enable(); /** * Enable or disable menu and toolbar. * * @param enable True to enable, false to disable. */ virtual void enable(const bool enable); /** * Add pane to window menu. */ void addPane(const wxString& name); /** * Enclosing application. */ WindowObserver* obs; /** * Return code. */ int returnCode; /** * Is program exiting? */ bool exiting; /** * Mode of operation. */ Mode mode; /** * AUI manager. */ wxAuiManager* manager; /** * Main pane for AUI. */ wxPanel* main; /** * Notebook, for standalone mode. */ wxAuiNotebook* notebook; /** * Document, for embedded mode. */ Document* doc; /** * Info bar. */ InfoBar* infoBar; /* * Menus. */ OpenRecentMenu* mnRecent; WindowMenu* mnWindow; WindowMenu* mnPopupWindow; wxMenu* mnFile; wxMenu* mnEdit; wxMenu* mnView; wxMenu* mnHelp; /* * Control ids. */ enum ID { ID_BUT_DEFAULT = 1, // can't have menu item id of 0 on Mac ID_BUT_REGISTER, ID_BUT_WINDOW, ID_BUT_OVERLAY, /* these must match those given in OpenRecentMenu */ ID_CLEAR_RECENT = 764, ID_OPEN_RECENT, /* these must match those given in WindowMenu */ ID_SELECT = 1432, ID_DEFAULTS = 2758 }; /** * Extra height for floating panels. */ #ifdef __WXOSX__ static const int EXTRA_PANE_WIDTH = 0; static const int EXTRA_PANE_HEIGHT = 16; #else static const int EXTRA_PANE_WIDTH = 0; static const int EXTRA_PANE_HEIGHT = 0; #endif static const int MIN_THUMB_PANE_WIDTH = 387; DECLARE_EVENT_TABLE() }; } inline void indii::Window::setExiting(const bool exiting) { this->exiting = exiting; } #endif tintii-2.8.2/src/indii/gui/About.cpp0000644000175000001440000000232112236200473014162 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "About.hpp" #include "../meta.hpp" #include "wx/aboutdlg.h" void indii::showAboutDialog(wxWindow* parent) { wxAboutDialogInfo info; #ifdef __WXOSX__ /* on Mac, generic about dialog is not modal which causes issues in Photoshop, * not providing a URL ensures native dialog is used instead */ info.SetName(_("indii.org / " PACKAGE_NAME)); info.SetVersion(_("Mac"), _(PACKAGE_VERSION)); info.SetDescription(_(PACKAGE_DESC)); info.SetCopyright(_("Copyright 2007-2013 Lawrence Murray")); #else info.SetName(_(PACKAGE_NAME)); info.SetVersion(_(PACKAGE_VERSION)); info.SetDescription(_(PACKAGE_DESC)); info.SetWebSite(_("http://www.indii.org/" PACKAGE_TARNAME)); info.SetCopyright(_("Copyright 2007-2013 Lawrence Murray")); #endif #ifndef WX_28 wxAboutBox(info, parent); #else wxAboutBox(info); #endif } tintii-2.8.2/src/indii/gui/Help.hpp0000644000175000001440000000200312236200473014002 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_HELP_HPP #define INDII_GUI_HELP_HPP #include "wx/html/helpctrl.h" #include "wx/menu.h" namespace indii { /** * Tint help. */ class Help { public: /** * Initialize help system. */ static void init(wxWindow* parent = NULL); /** * Terminate help system. */ static void term(); /** * Show help. * * @param section Section number. Default gives contents and welcome page. */ static void show(const int section = 0); private: /** * Help controller. */ static wxHtmlHelpController* help; /** * Was the help file successfully loaded? */ static bool haveHelp; }; } #endif tintii-2.8.2/src/indii/gui/Pane.hpp0000644000175000001440000000117612236200473014007 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_PANE_HPP #define INDII_GUI_PANE_HPP #include "wx/panel.h" namespace indii { /** * Abstract pane. */ class Pane : public wxPanel { public: /** * Constructor. * * @param parent Parent. */ Pane(wxWindow* parent); }; } #endif tintii-2.8.2/src/indii/gui/App.hpp0000644000175000001440000000553112236200473013643 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_APP_HPP #define INDII_GUI_APP_HPP #if defined(__WXMSW__) && defined(UNICODE) #define INDII_IMPLEMENT_APP(app) \ IMPLEMENT_APP_NO_MAIN(app) \ \ extern "C" int WINAPI wWinMain(HINSTANCE hInstance, \ HINSTANCE hPrevInstance, wchar_t* WXUNUSED(lpCmdLine), \ int nCmdShow) { \ wxDISABLE_DEBUG_SUPPORT(); \ return wxEntry(hInstance, hPrevInstance, NULL, nCmdShow); \ } #else #define INDII_IMPLEMENT_APP(app) IMPLEMENT_APP(app) #endif #include "Window.hpp" #include "WindowObserver.hpp" #include "../model/Model.hpp" #include "../image/ImageResource.hpp" #include "wx/app.h" #include "wx/cmdline.h" #include namespace indii { /** * Application. * * @tparam WindowType Window type. * @tparam ObserverType Window observer type. * @tparam SplashType Splash type. */ class App : public wxApp, public WindowObserver { public: /** * Constructor. */ App(); virtual void MacOpenFiles(const wxArrayString& fileNames); bool OnInit(); void OnInitCmdLine(wxCmdLineParser& parser); bool OnCmdLineParsed(wxCmdLineParser& parser); int OnRun(); int OnExit(); /** * Open menu item event. */ void OnButtonOpen(wxCommandEvent& evt); /** * Open recent menu event. */ void OnOpenRecent(wxCommandEvent& evt); /** * About menu item event. */ void OnButtonAbout(wxCommandEvent& evt); /** * Register menu item event. */ void OnButtonRegister(wxCommandEvent& evt); /** * Help menu item event. */ void OnButtonHelp(wxCommandEvent& evt); /** * Exit button event. */ void OnButtonExit(wxCommandEvent& evt); /** * Notify that window is closing. * * @param window The window being closed. * @param exiting Is program exiting? */ virtual void notifyClose(Window* window, const bool exiting = false); protected: /** * Show splash screen. */ virtual void splash() = 0; /** * Open window with file. */ virtual Window* open(const wxString& file) = 0; /** * Open window without file. */ virtual Window* open() = 0; /** * Main window. */ Window* window; /** * Open recent menu. */ OpenRecentMenu* mnRecent; /** * File name to open. */ wxString file; /** * Have a file to open? */ bool haveFile; /* * Control ids. */ enum ID { ID_BUT_DEFAULT = 1, // can't have menu item id of 0 on Mac ID_BUT_REGISTER, ID_OPEN_RECENT = 765 // must match OpenRecentMenu }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/PreviewPane.cpp0000644000175000001440000000234712236200473015345 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "PreviewPane.hpp" #include "Help.hpp" #include "wx/wx.h" #include "wx/sizer.h" using namespace indii; PreviewPane::PreviewPane(wxWindow* parent, ImageResource* res, Model* model, Controller* control) : wxPanel(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxNO_FULL_REPAINT_ON_RESIZE|wxCLIP_CHILDREN|wxBORDER_NONE) { preview = new PreviewImage(this, res, model, control); wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(preview, 1, wxALIGN_CENTER|wxEXPAND); SetSizer(sizer); } void PreviewPane::OnHelp(wxHelpEvent& evt) { Help::show(510); } void PreviewPane::OnSetFocus(wxFocusEvent& evt) { #ifdef __WXMSW__ getPreviewImage()->clear(true); Refresh(); #endif } BEGIN_EVENT_TABLE(PreviewPane, wxPanel) EVT_HELP(wxID_ANY, PreviewPane::OnHelp) EVT_SET_FOCUS(PreviewPane::OnSetFocus) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/Registration.hpp0000644000175000001440000000243312236200473015573 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_REGISTRATION_HPP #define INDII_GUI_REGISTRATION_HPP #include "../reg/Components.hpp" #include "wx/dialog.h" #include "wx/textctrl.h" namespace indii { /** * Photoshop registration dialog. */ class Registration : public wxDialog { public: /** * Constructor. * * @param parent Parent. */ Registration(wxWindow* parent, const indii::Components::Component c); /** * URL button event. */ void OnButtonUrl(wxCommandEvent& evt); /** * OK button event. */ void OnButtonOk(wxCommandEvent& evt); /** * Cancel button event. */ void OnButtonCancel(wxCommandEvent& evt); /** * Close. */ void OnClose(wxCloseEvent& evt); private: /** * Key textbox. */ wxTextCtrl* txtKey; /** * Component context. */ indii::Components::Component c; /* * Control ids. */ enum ID { ID_BUT_URL = 987 }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/App.cpp0000644000175000001440000002002112236200473013625 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "App.hpp" #include "Registration.hpp" #include "About.hpp" #include "Help.hpp" #include "OpenRecentMenu.hpp" #include "../reg/Components.hpp" #include "../image/FileImageResource.hpp" #include "../images/indii.hpp" #include "../../gnome/gnome.hpp" #include "../meta.hpp" #include "../image/ImageManipulation.hpp" #include "wx/filesys.h" #include "wx/fs_arc.h" #include "wx/stdpaths.h" #ifdef __WXMSW__ #include "omp.h" #endif using namespace indii; App::App() : window(NULL), haveFile(false) { // } void App::MacOpenFiles(const wxArrayString& fileNames) { wxLogNull logNo; if (window != NULL) { unsigned i; for (i = 0; i < fileNames.GetCount(); ++i) { if (wxImage::CanRead(fileNames[i])) { window->openAndAdd(fileNames[i]); } else { wxMessageBox(_("The given file is of an unsupported type."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); } } } } bool App::OnInit() { return wxApp::OnInit(); // for command line parsing } void App::OnInitCmdLine(wxCmdLineParser& parser) { wxApp::OnInitCmdLine(parser); parser.AddParam(_("file name"), wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL); } bool App::OnCmdLineParsed(wxCmdLineParser& parser) { if (wxApp::OnCmdLineParsed(parser)) { #ifndef __WXOSX__ /* handled by MacOpenFiles() on Mac */ if (parser.GetParamCount() > 0) { file = parser.GetParam(0); haveFile = true; } #endif return true; } else { return false; } } int App::OnRun() { #if defined(__WXOSX__) && defined(MAC_APP_STORE) if (!Components::isActivated(Components::APP)) { exit(173); return false; } #endif splash(); wxInitAllImageHandlers(); indii_initialize_images(); gnome_initialize_images(); #ifdef __WXOSX__ wxApp::SetExitOnFrameDelete(false); //wxApp::SetMacPreferencesMenuItemId(wxID_NONE); wxApp::s_macPreferencesMenuItemId = wxID_NONE; /* permanent menu for Mac */ wxMenuBar* mbMenu = new wxMenuBar(); mnRecent = new OpenRecentMenu(); wxMenu* mnFile = new wxMenu(); mnFile->Append(wxID_OPEN, _("&Open...\tCtrl-O")); #ifndef MAC_APP_STORE mnFile->AppendSubMenu(mnRecent, _("Open Recent")); #endif mnFile->Append(wxID_EXIT); // moved to program menu wxMenu* mnHelp = new wxMenu(); mnHelp->Append(wxID_HELP, _("&Help\tCtrl-?")); mnHelp->Append(wxID_ABOUT); if (!Components::isActivated(Components::APP)) { mnHelp->Append(ID_BUT_REGISTER, _("Register")); } mbMenu->Append(mnFile, _("&File")); mbMenu->Append(mnHelp, _("&Help")); wxMenuBar::MacSetCommonMenuBar(mbMenu); #endif window = open(); Help::init(window); SetTopWindow(window); window->Show(); window->Raise(); if (haveFile) { wxLogNull logNo; if (wxImage::CanRead(file)) { window->openAndAdd(file); } else { wxMessageBox(_("The given file is of an unsupported type."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); haveFile = false; } } if (!Components::isActivated(Components::APP)) { if (!Components::isTrial(Components::APP)) { Registration* dlgRegister = new Registration(window, Components::APP); dlgRegister->Centre(); if (dlgRegister->ShowModal() != wxID_OK) { dlgRegister->Destroy(); window->Close(true); window = NULL; return false; } else { dlgRegister->Destroy(); return wxApp::OnRun(); } } else if (Components::daysLeft() <= Components::maxDays()/3) { Registration* dlgRegister = new Registration(window, Components::APP); dlgRegister->Centre(); dlgRegister->ShowModal(); dlgRegister->Destroy(); return wxApp::OnRun(); } else { return wxApp::OnRun(); } } else { return wxApp::OnRun(); } } int App::OnExit() { return wxApp::OnExit(); } void App::OnButtonOpen(wxCommandEvent& evt) { if (window != NULL) { window->OnButtonOpen(evt); } else { wxString openPath; wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); if (!config.Read(_("OpenPath"), &openPath)) { openPath = wxStandardPaths::Get().GetDocumentsDir(); } wxString path = wxFileSelector(wxFileSelectorPromptStr, openPath, wxEmptyString, wxEmptyString, wildcards(), wxFD_OPEN|wxFD_CHANGE_DIR|wxFD_FILE_MUST_EXIST|wxFD_PREVIEW, NULL); if (!path.empty()) { wxLogNull logNo; if (wxImage::CanRead(path)) { wxFileName filename(path); if (filename.IsOk() && filename.FileExists()) { window = open(path); SetTopWindow(window); window->CentreOnScreen(); window->Show(); window->Raise(); openPath = filename.GetPath(); config.Write(_("OpenPath"), openPath); config.Flush(); OpenRecentMenu::AddFile(path); } else { wxMessageBox(_("The selected file does not exist. Please try another."), _("File does not exist"), wxOK|wxICON_ERROR, NULL); OpenRecentMenu::RemoveFile(path); } } else { wxMessageBox(_("The selected file is of an unsupported type. Please try another."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); } } } } void App::OnOpenRecent(wxCommandEvent& evt) { if (window != NULL) { window->OnOpenRecent(evt); } else { int id = evt.GetId(); if (id >= 300 && id < 310) { wxString path(OpenRecentMenu::GetFile(id)); if (wxImage::CanRead(path)) { wxFileName filename(path); if (!path.empty() && filename.IsOk() && filename.FileExists()) { window = open(path); SetTopWindow(window); window->CentreOnScreen(); window->Show(); window->Raise(); OpenRecentMenu::AddFile(path); } else { wxMessageBox(_("The selected file does not exist. Please try another."), _("File does not exist"), wxOK|wxICON_ERROR, NULL); OpenRecentMenu::RemoveFile(path); } } else { wxMessageBox(_("The selected file is of an unsupported type. Please try another."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); OpenRecentMenu::RemoveFile(path); } } } } void App::OnButtonAbout(wxCommandEvent& evt) { showAboutDialog(); } void App::OnButtonRegister(wxCommandEvent& evt) { if (window == NULL) { if (Components::isActivated(Components::APP)) { wxMessageBox(_("Your " PACKAGE_NAME " app is already registered."), _("Already registered"), wxICON_INFORMATION); } else { Registration* dlgRegister = new Registration(NULL, Components::APP); dlgRegister->Centre(); dlgRegister->ShowModal(); dlgRegister->Destroy(); } } else { window->OnButtonRegister(evt); } } void App::OnButtonHelp(wxCommandEvent& evt) { Help::show(); } void App::OnButtonExit(wxCommandEvent& evt) { if (window != NULL) { window->OnButtonExit(evt); } else { #ifdef __WXOSX__ ExitMainLoop(); #endif } } void App::notifyClose(Window* window, const bool exiting) { assert (this->window == window); this->window = NULL; #ifdef __WXOSX__ if (exiting) { ExitMainLoop(); } #endif } BEGIN_EVENT_TABLE(App, wxApp) #ifdef __WXOSX__ EVT_MENU(wxID_OPEN, App::OnButtonOpen) EVT_MENU(wxID_ABOUT, App::OnButtonAbout) EVT_MENU(wxID_HELP, App::OnButtonHelp) EVT_MENU(ID_BUT_REGISTER, App::OnButtonRegister) EVT_MENU(wxID_EXIT, App::OnButtonExit) EVT_MENU(300, App::OnOpenRecent) EVT_MENU(301, App::OnOpenRecent) EVT_MENU(302, App::OnOpenRecent) EVT_MENU(303, App::OnOpenRecent) EVT_MENU(304, App::OnOpenRecent) EVT_MENU(305, App::OnOpenRecent) EVT_MENU(306, App::OnOpenRecent) EVT_MENU(307, App::OnOpenRecent) #endif END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/OpenRecentMenu.cpp0000644000175000001440000000723712236200473016012 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "OpenRecentMenu.hpp" #include "../meta.hpp" #include "wx/config.h" #include "wx/filename.h" #include using namespace indii; void OpenRecentMenu::OnShow(wxMenuEvent& evt) { /* clear current menu */ while (this->GetMenuItemCount() > 0) { this->Destroy(this->FindItemByPosition(0)); } /* add recent files */ wxString key, path; bool have; long index; int id = 300; wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("OpenRecentFiles")); have = config.GetFirstEntry(key, index); while (have) { path = config.Read(key); wxFileName file(path); this->Append(id, file.GetFullName()); ++id; have = config.GetNextEntry(key, index); } /* add clear recent item */ if (config.GetNumberOfEntries() > 0) { this->AppendSeparator(); } this->Append(ID_CLEAR_RECENT, _("Clear Menu")); this->Enable(ID_CLEAR_RECENT, config.GetNumberOfEntries() > 0); } void OpenRecentMenu::OnClearRecent(wxCommandEvent& evt) { Clear(); } void OpenRecentMenu::AddFile(const wxString& path) { wxFileName file(path); file.Normalize(); /* build new list */ std::vector values; wxString key, value; bool have; long index; { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("OpenRecentFiles")); values.push_back(file.GetFullPath()); have = config.GetFirstEntry(key, index); while (have && values.size() < MAX_FILES) { value = config.Read(key); if (!file.GetFullPath().IsSameAs(value)) { values.push_back(value); } have = config.GetNextEntry(key, index); } } /* write new list */ Clear(); { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("OpenRecentFiles")); for (unsigned i = 0; i < values.size(); ++i) { key.Clear(); key << _("File") << i; config.Write(key, values[i]); } } } void OpenRecentMenu::RemoveFile(const wxString& path) { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("OpenRecentFiles")); wxFileName file(path); file.Normalize(); std::vector keys; std::vector::iterator iter; wxString key, value; bool have; long index; have = config.GetFirstEntry(key, index); while (have) { value = config.Read(key); if (file.GetFullPath().IsSameAs(value)) { keys.push_back(key); } have = config.GetNextEntry(key, index); } for (iter = keys.begin(); iter != keys.end(); ++iter) { config.DeleteEntry(*iter); } } wxString OpenRecentMenu::GetFile(const int id) { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("OpenRecentFiles")); wxString key, path; bool have; long index; int i = 0; have = config.GetFirstEntry(key, index); while (have && i + 300 < id) { have = config.GetNextEntry(key, index); ++i; } if (i + 300 == id) { path = config.Read(key); } return path; } void OpenRecentMenu::Clear() { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.DeleteGroup(_("OpenRecentFiles")); } BEGIN_EVENT_TABLE(OpenRecentMenu, wxMenu) #ifdef __WXOSX__ /* events handled here on Mac, in TintWindow on other platforms */ EVT_MENU_OPEN(OpenRecentMenu::OnShow) EVT_MENU(ID_CLEAR_RECENT, OpenRecentMenu::OnClearRecent) #endif END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/WindowMenu.cpp0000644000175000001440000000415412236200473015212 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "WindowMenu.hpp" #include "Window.hpp" #include "wx/config.h" #include using namespace indii; WindowMenu::WindowMenu(Window* window) : window(window) { AppendSeparator(); Append(ID_DEFAULTS, _("Restore Default Layout")); } void WindowMenu::add(const wxString& name) { unsigned i = GetMenuItemCount() - 2; InsertCheckItem(i, ID_SELECT + i, name); } void WindowMenu::update() { unsigned i; for (i = 0; i < GetMenuItemCount() - 2; ++i) { FindItemByPosition(i)->Check(window->isShown(i)); } } void WindowMenu::OnShow(wxMenuEvent& evt) { update(); } void WindowMenu::OnSelect(wxCommandEvent& evt) { unsigned i = evt.GetId() - ID_SELECT; window->show(i, !window->isShown(i)); } void WindowMenu::OnDefault(wxCommandEvent& evt) { window->layoutDefault(); } BEGIN_EVENT_TABLE(WindowMenu, wxMenu) #ifdef __WXOSX__ /* events handled here on Mac, in Window on other platforms */ EVT_MENU_OPEN(WindowMenu::OnShow) EVT_MENU(ID_SELECT, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 1u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 2u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 3u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 4u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 5u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 6u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 7u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 8u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 9u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 10u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 11u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 12u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 13u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 14u, WindowMenu::OnSelect) EVT_MENU(ID_SELECT + 15u, WindowMenu::OnSelect) EVT_MENU(ID_DEFAULTS, WindowMenu::OnDefault) #endif END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/PreviewImage.hpp0000644000175000001440000000642712236200473015514 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_PREVIEWIMAGE_HPP #define INDII_GUI_PREVIEWIMAGE_HPP #include "../image/ImageManipulation.hpp" #include "../image/ImageResource.hpp" #include "../model/Model.hpp" #include "../model/Controller.hpp" #include "../model/Observer.hpp" #include "wx/scrolwin.h" #include "wx/bitmap.h" #include "wx/dcclient.h" namespace indii { /** * Image preview. */ class PreviewImage : public wxScrolledWindow, public Observer { public: /** * Constructor. * * @param parent Parent window. * @param res Image resource manager. Caller retains ownership. * @param model Model. Caller retains ownership. * @param control Controller. Caller retains ownership. */ PreviewImage(wxWindow* parent, ImageResource* res, Model* model, Controller* control = NULL); /** * Zoom in. */ void zoomIn(); /** * Zoom out. */ void zoomOut(); /** * Zoom to 1:1 */ void zoomNormal(); /** * Zoom to fit. */ void zoomFit(); /** * Is overlay on? */ bool getOverlay(); /** * Set overlay on or off. */ void showOverlay(const bool on); /** * Refresh view. */ void refresh(); /** * Clear the preview on next refresh (used under Windows to minimise * flickering)? */ void clear(const bool on = true); /* * Model events. */ virtual void notify(); /** * Handle paint event. */ void OnPaint(wxPaintEvent& evt); /** * Handle resize event. */ void OnSize(wxSizeEvent& evt); /* * Mouse events. */ void OnMouseDown(wxMouseEvent& evt); void OnMouseUp(wxMouseEvent& evt); void OnMouseDoubleClick(wxMouseEvent& evt); void OnMouseWheel(wxMouseEvent& evt); void OnMouseMove(wxMouseEvent& evt); void OnEraseBackground(wxEraseEvent& evt); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); private: /** * Get location of mouse event. * * @param evt Mouse event. * @param x0 X-coordinate on original image. * @param y0 Y-coordinate on original image. * @param x X-coordinate on zoomed image. * @param y Y-coordinate on zoomed image. */ void getLocation(wxMouseEvent& evt, int* x0, int* y0, int* x, int* y); /** * Image resource manager. */ ImageResource* res; /** * Model. */ Model* model; /** * Controller. */ Controller* control; /** * Zoom numerator. */ int zoomNumerator; /** * Zoom denominator. */ int zoomDenominator; /** * Should overlay be displayed? */ bool overlay; /** * Device context should be cleared before next paint (used to control * flicker, only clear device context when not doing so may be a problem). */ bool doClear; /* * Dragging variables. */ int mouseX, mouseY; DECLARE_EVENT_TABLE() }; } inline bool indii::PreviewImage::getOverlay() { return this->overlay; } inline void indii::PreviewImage::showOverlay(const bool on) { this->overlay = on; } #endif tintii-2.8.2/src/indii/gui/Splash.cpp0000644000175000001440000000477512236200473014361 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Splash.hpp" #include "../reg/Components.hpp" #include "../meta.hpp" #include "wx/dcmemory.h" #include "wx/settings.h" using namespace indii; Splash::Splash(wxBitmap* bmp, const Components::Component c) : wxBitmap(bmp->GetWidth(), bmp->GetHeight() + 32) { wxMemoryDC dc(*this); dc.DrawBitmap(*bmp, 0, 0); if (Components::isActivated(c) || Components::needsReactivation(c)) { SetHeight(GetHeight() - 32); } else { /* add message giving days left */ int daysLeft = Components::daysLeft(); int maxDays = Components::maxDays(); wxRect bounds(0, GetHeight() - 32, GetWidth(), 32); /* construct message */ wxString message(_("")); if (daysLeft == maxDays) { message.Append(_("Welcome to ")); message.Append(_(PACKAGE_NAME)); message.Append(wxString(_(". Your ")) << (long)maxDays << _(" day trial starts today.")); } else if (daysLeft == 0) { message.Append(_("Your ")); message.Append(_(PACKAGE_NAME)); message.Append(_(" trial has ended.")); } else { message.Append(_("You have ")); if (daysLeft == 1) { message.Append(_("only ")); message = message << daysLeft; message.Append(_(" day")); } else if (daysLeft > 0 && daysLeft <= maxDays/3) { message.Append(_("only ")); message = message << daysLeft; message.Append(_(" days")); } else { message = message << daysLeft; message.Append(_(" days")); } message.Append(_(" left in your trial period.")); } if (daysLeft <= maxDays/3) { dc.SetBrush(*wxRED); } else { dc.SetBrush(*wxBLACK); } #ifndef WX_28 dc.SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); #else wxFont fntDc(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); fntDc.SetWeight(wxFONTWEIGHT_BOLD); dc.SetFont(fntDc); #endif dc.SetPen(wxNullPen); dc.SetTextBackground(*wxWHITE); dc.SetTextForeground(*wxWHITE); dc.DrawRectangle(bounds.GetX(), bounds.GetY(), bounds.GetWidth(), bounds.GetHeight()); dc.DrawLabel(message, bounds, wxALIGN_CENTRE|wxALIGN_CENTRE_VERTICAL); } } tintii-2.8.2/src/indii/gui/InfoBar.cpp0000644000175000001440000000452612236200473014441 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "InfoBar.hpp" #include "Window.hpp" #include "../meta.hpp" #include "wx/config.h" using namespace indii; InfoBar::InfoBar(Window* parent) : INDII_INFOBAR_BASE(parent), window(parent), id(-1), hasOpenButton(false), hasCloseButton(false) { #if INDII_DO_INFOBAR Hide(); #endif } void InfoBar::showStartMessage() { #if INDII_DO_INFOBAR clearButtons(); #ifndef __WXOSX__ AddButton(wxID_OPEN); hasOpenButton = true; #else AddButton(wxID_CLOSE); hasCloseButton = true; #endif ShowMessage(_("Open a photo to get started"), wxICON_INFORMATION); #endif } void InfoBar::showInfoMessage(const wxString& msg, const int id) { #if INDII_DO_INFOBAR bool show = true; if (id >= 0) { /* check if this message has been displayed before */ wxString key; key << id; wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("Messages")); show = config.ReadBool(key, true); this->id = id; } if (show) { clearButtons(); AddButton(wxID_CLOSE); hasCloseButton = true; ShowMessage(msg, wxICON_INFORMATION); } else { Dismiss(); } #endif } void InfoBar::OnButtonOpen(wxCommandEvent& evt) { #if INDII_DO_INFOBAR Dismiss(); window->OnButtonOpen(evt); id = -1; #endif } void InfoBar::OnButtonClose(wxCommandEvent& evt) { #if INDII_DO_INFOBAR Dismiss(); if (id >= 0) { /* record this message as having been displayed before */ wxString key; key << id; wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.SetPath(_("Messages")); config.Write(key, false); } id = -1; #endif } void InfoBar::clearButtons() { #if INDII_DO_INFOBAR if (hasOpenButton) { RemoveButton(wxID_OPEN); hasOpenButton = false; } if (hasCloseButton) { hasCloseButton = false; RemoveButton(wxID_CLOSE); } #endif } BEGIN_EVENT_TABLE(InfoBar, INDII_INFOBAR_BASE) EVT_BUTTON(wxID_OPEN, InfoBar::OnButtonOpen) EVT_BUTTON(wxID_CLOSE, InfoBar::OnButtonClose) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/Window.cpp0000644000175000001440000006253412236200473014373 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Window.hpp" #include "About.hpp" #include "Help.hpp" #include "Registration.hpp" #include "OpenRecentMenu.hpp" #include "WindowMenu.hpp" #include "../reg/Components.hpp" #include "../../gnome/gnome.hpp" #include "../meta.hpp" #include "../image/ImageManipulation.hpp" #include "wx/accel.h" #include "wx/config.h" #include "wx/button.h" #include "wx/sizer.h" #include "wx/textdlg.h" #include "wx/filedlg.h" #include "wx/msgdlg.h" #include "wx/dcmemory.h" #include "wx/cshelp.h" #include "wx/filename.h" #include "wx/stdpaths.h" #define INDII_STANDALONE_FLAGS wxCAPTION|wxMINIMIZE_BOX|wxMAXIMIZE_BOX|wxCLOSE_BOX|wxRESIZE_BORDER #define INDII_EMBED_FLAGS wxCAPTION|/*wxSTAY_ON_TOP|*/wxRESIZE_BORDER using namespace indii; Window::Window(wxWindow* parent, const Mode mode, WindowObserver* obs) : wxFrame(parent, wxID_ANY, _(PACKAGE_NAME), wxDefaultPosition, wxDefaultSize, (mode == STANDALONE) ? INDII_STANDALONE_FLAGS : INDII_EMBED_FLAGS), obs(obs), exiting(false), mode(mode), manager(NULL), main(NULL), notebook(NULL), doc(NULL), infoBar(NULL) { main = new wxPanel(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL|wxBORDER_NONE); infoBar = new InfoBar(this); if (mode == STANDALONE) { notebook = new wxAuiNotebook(main, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_NB_DEFAULT_STYLE|wxBORDER_NONE); } else { SetReturnCode(wxID_CANCEL); } } Window::~Window() { // } void Window::openAndAdd(const wxString& file) { wxFileName filename(file); Document* doc = open(file); notebook->AddPage(doc, filename.GetFullName(), true); doc->getPreviewPane()->getPreviewImage()->zoomFit(); OpenRecentMenu::AddFile(file); enable(); } int Window::GetReturnCode() { return returnCode; } void Window::SetReturnCode(const int returnCode) { this->returnCode = returnCode; } void Window::OnSystemClose(wxCloseEvent& evt) { int ret, unsaved = 0; bool vetoed = false; size_t i; Document* doc; if (mode == STANDALONE) { /* count number of unsaved images */ for (i = 0; i < notebook->GetPageCount(); ++i) { doc = dynamic_cast(notebook->GetPage(i)); if (!doc->saved()) { ++unsaved; } } /* prompt about unsaved changes as appropriate */ if (unsaved > 1) { #ifdef __WXOSX__ ret = wxMessageBox(_("If you don't review your images, all your " "changes will be lost."), wxString(_("You have ")) << unsaved << wxString(_(" images with unsaved changes. Do you want to review " "these changes before quitting?")), wxYES_NO|wxCANCEL|wxICON_QUESTION, this); #else ret = wxMessageBox(wxString(_("You have ")) << unsaved << _(" images with unsaved changes. Do you want to review " "these changes before quitting?\n\nIf you don't review your images, " "all your changes will be lost."), _("Save changes?"), wxYES_NO|wxCANCEL|wxICON_QUESTION, this); #endif } else { ret = wxYES; } if (ret == wxYES) { /* check for save */ for (i = 0; i < notebook->GetPageCount() && !vetoed; ++i) { doc = dynamic_cast(notebook->GetPage(i)); if (!doc->saved() && evt.CanVeto()) { notebook->SetSelection(i); ret = wxMessageBox(_("Save changes to image before closing?"), _("Save changes?"), wxYES_NO|wxCANCEL|wxICON_QUESTION, this); if (ret == wxYES) { if (!doc->hasPath()) { doc->saveAs(); } else { doc->save(); } if (!doc->saved()) { evt.Veto(); vetoed = true; } } else if (ret == wxCANCEL) { evt.Veto(); vetoed = true; } } } } else if (ret == wxCANCEL) { evt.Veto(); vetoed = true; } } if (!vetoed) { if (obs != NULL) { obs->notifyClose(this, exiting); } /* save AUI perspective */ wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); wxString persp = manager->SavePerspective(); config.Write(_("Perspective_v2"), persp); config.Write(_("x"), GetPosition().x); config.Write(_("y"), GetPosition().y); config.Write(_("width"), GetSize().GetWidth()); config.Write(_("height"), GetSize().GetHeight()); manager->UnInit(); Destroy(); } else { exiting = false; } } void Window::OnAllowNotebookDnD(wxAuiNotebookEvent& evt) { evt.Allow(); } void Window::OnMenuOpen(wxMenuEvent& evt) { if (evt.GetMenu() == mnFile) { mnRecent->OnShow(evt); } else if (evt.GetMenu() == mnView) { if (mode == STANDALONE && notebook->GetPageCount() > 0) { #ifdef URBANLIGHTSCAPE Document* doc; doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); bool overlay = doc->getPreviewPane()->getPreviewImage()->getOverlay(); mnView->Check(ID_BUT_OVERLAY, overlay); #endif } } else if (evt.GetMenu() == mnWindow) { mnWindow->OnShow(evt); } else if (evt.GetMenu() == mnPopupWindow) { mnPopupWindow->OnShow(evt); } } void Window::OnButtonOpen(wxCommandEvent& evt) { wxString openPath; { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); if (!config.Read(_("OpenPath"), &openPath)) { openPath = wxStandardPaths::Get().GetDocumentsDir(); } } wxString path = wxFileSelector(wxFileSelectorPromptStr, openPath, wxEmptyString, wxEmptyString, wildcards(), wxFD_OPEN|wxFD_CHANGE_DIR|wxFD_FILE_MUST_EXIST| wxFD_PREVIEW, this); if (!path.empty()) { if (wxImage::CanRead(path)) { wxFileName filename(path); if (filename.IsOk() && filename.FileExists()) { openAndAdd(path); openPath = filename.GetPath(); { wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); config.Write(_("OpenPath"), openPath); } } else { wxMessageBox(_("The selected file does not exist. Please try another."), _("File does not exist"), wxOK|wxICON_ERROR, this); } } else { wxMessageBox(_("The selected file is of an unsupported type. Please try another."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); } } enable(); } void Window::OnOpenRecent(wxCommandEvent& evt) { int id = evt.GetId(); if (id >= 300 && id < 310) { wxString path(OpenRecentMenu::GetFile(id)); wxLogNull logNo; if (wxImage::CanRead(path)) { wxFileName filename(path); if (!path.empty() && filename.IsOk() && filename.FileExists()) { openAndAdd(path); } else { wxMessageBox(_("The selected file does not exist. Please try another."), _("File does not exist"), wxOK|wxICON_ERROR, this); OpenRecentMenu::RemoveFile(path); } } else { wxMessageBox(_("The selected file is of an unsupported type. Please try another."), _("Unsupported type"), wxOK|wxICON_ERROR, NULL); OpenRecentMenu::RemoveFile(path); } } enable(); } void Window::OnClearRecent(wxCommandEvent& evt) { mnRecent->OnClearRecent(evt); } void Window::OnButtonClose(wxCommandEvent& evt) { int ret; bool vetoed = false; Document* doc = dynamic_cast( notebook->GetPage(notebook->GetSelection())); if (!doc->saved()) { ret = wxMessageBox(_("Save changes to image before closing?"), _("Save changes?"), wxYES_NO|wxCANCEL|wxICON_QUESTION, this); if (ret == wxYES) { if (!doc->hasPath()) { doc->saveAs(); } else { doc->save(); } if (!doc->saved()) { vetoed = true; } } else if (ret == wxCANCEL) { vetoed = true; } } if (!vetoed) { notebook->DeletePage(notebook->GetSelection()); enable(); } } void Window::OnButtonSave(wxCommandEvent& evt) { Document* doc = dynamic_cast( notebook->GetPage(notebook->GetSelection())); if (!doc->hasPath()) { doc->saveAs(); if (doc->saved()) { wxFileName filename(doc->getPath()); notebook->SetPageText(notebook->GetSelection(), filename.GetFullName()); } } else { doc->save(); } } void Window::OnButtonSaveAs(wxCommandEvent& evt) { Document* doc = dynamic_cast( notebook->GetPage(notebook->GetSelection())); doc->saveAs(); if (doc->saved()) { wxFileName filename(doc->getPath()); notebook->SetPageText(notebook->GetSelection(), filename.GetFullName()); } } void Window::OnButtonExit(wxCommandEvent& evt) { exiting = true; Close(); } void Window::OnButtonOk(wxCommandEvent& evt) { SetReturnCode(wxID_OK); Close(); } void Window::OnButtonCancel(wxCommandEvent& evt) { SetReturnCode(wxID_CANCEL); Close(); } void Window::OnButtonAbout(wxCommandEvent& evt) { showAboutDialog(this); } void Window::OnButtonDefault(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } doc->getModel()->setDefaults(); } void Window::OnButZoomOut(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } doc->getPreviewPane()->getPreviewImage()->zoomOut(); } void Window::OnButZoomIn(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } doc->getPreviewPane()->getPreviewImage()->zoomIn(); } void Window::OnButZoomNormal(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } doc->getPreviewPane()->getPreviewImage()->zoomNormal(); } void Window::OnButZoomFit(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } doc->getPreviewPane()->getPreviewImage()->zoomFit(); } void Window::OnButtonRegister(wxCommandEvent& evt) { if (mode == EMBED && Components::isActivated(Components::PLUGIN)) { wxMessageBox(_("Your " PACKAGE_NAME " plugin is already registered."), _("Already registered"), wxICON_INFORMATION); } else if (mode == STANDALONE && Components::isActivated(Components::APP)) { wxMessageBox(_("Your " PACKAGE_NAME " app is already registered."), _("Already registered"), wxICON_INFORMATION); } else { Registration* dlgRegister = new Registration(this, (mode == EMBED) ? Components::PLUGIN : Components::APP); dlgRegister->Centre(); dlgRegister->ShowModal(); dlgRegister->Destroy(); } } void Window::OnButtonWindow(wxCommandEvent& evt) { mnPopupWindow->update(); this->PopupMenu(mnPopupWindow); } void Window::OnButtonOverlay(wxCommandEvent& evt) { Document* doc; if (mode == STANDALONE) { doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); } else { doc = this->doc; } PreviewImage* previewImage = doc->getPreviewPane()->getPreviewImage(); bool overlay = !previewImage->getOverlay(); previewImage->showOverlay(overlay); previewImage->refresh(); this->GetToolBar()->ToggleTool(ID_BUT_OVERLAY, overlay); } void Window::OnButtonHelp(wxCommandEvent& evt) { Help::show(); } void Window::OnPageClose(wxAuiNotebookEvent& evt) { int ret; bool vetoed = false; Document* doc = dynamic_cast( notebook->GetPage(notebook->GetSelection())); if (!doc->saved()) { ret = wxMessageBox(_("Save changes to image before closing?"), _("Save changes?"), wxYES_NO|wxCANCEL|wxICON_QUESTION, this); if (ret == wxYES) { if (!doc->hasPath()) { doc->saveAs(); } else { doc->save(); } if (!doc->saved()) { evt.Veto(); vetoed = true; } } else if (ret == wxCANCEL) { evt.Veto(); vetoed = true; } } if (!vetoed) { enable(notebook->GetPageCount() > 1); // page not yet removed, but will be } } void Window::OnPageChanged(wxAuiNotebookEvent& evt) { Document* doc; doc = dynamic_cast(notebook->GetPage(notebook->GetSelection())); setModel(doc->getModel()); PreviewImage* previewImage = doc->getPreviewPane()->getPreviewImage(); #ifdef URBANLIGHTSCAPE previewImage->showOverlay(this->GetToolBar()->GetToolState(ID_BUT_OVERLAY)); #endif previewImage->clear(); previewImage->refresh(); } void Window::init(Document* doc) { if (mode == STANDALONE) { /* menu bar */ wxMenuBar* mbMenu = new wxMenuBar(); mnFile = new wxMenu(); mnRecent = new OpenRecentMenu(); #ifdef __WXOSX__ /* cloverleaf seems missing in default shortcuts, so explicitly encode */ mnFile->Append(wxID_OPEN, _("&Open...\tCtrl-O")); #ifndef MAC_APP_STORE mnFile->AppendSubMenu(mnRecent, _("Open Recent")); #endif mnFile->AppendSeparator(); mnFile->Append(wxID_CLOSE, _("&Close\tCtrl-W")); mnFile->Append(wxID_SAVE, _("&Save\tCtrl-S")); mnFile->Append(wxID_SAVEAS, _("Save &As...\tShift-Ctrl-S")); mnFile->Append(wxID_EXIT); // moved to program menu #else mnFile->Append(wxID_OPEN); mnFile->AppendSubMenu(mnRecent, _("Open &Recent")); mnFile->AppendSeparator(); mnFile->Append(wxID_CLOSE); mnFile->Append(wxID_SAVE); mnFile->Append(wxID_SAVEAS); mnFile->AppendSeparator(); mnFile->Append(wxID_EXIT); #endif mbMenu->Append(mnFile, _("&File")); mnEdit = new wxMenu(); mnEdit->Append(ID_BUT_DEFAULT, _("&Restore Defaults")); mnView = new wxMenu(); #ifdef __WXOSX__ mnView->Append(wxID_ZOOM_IN, _("Zoom &In\tCtrl-+")); mnView->Append(wxID_ZOOM_OUT, _("Zoom &Out\tCtrl--")); mnView->Append(wxID_ZOOM_100, _("&Normal")); mnView->Append(wxID_ZOOM_FIT, _("&Fit")); #else mnView->Append(wxID_ZOOM_IN); mnView->Append(wxID_ZOOM_OUT); mnView->Append(wxID_ZOOM_100); mnView->Append(wxID_ZOOM_FIT); #endif #ifdef URBANLIGHTSCAPE mnView->AppendSeparator(); mnView->AppendCheckItem(ID_BUT_OVERLAY, _("Over&lay\tCtrl-L")); #endif mnWindow = new WindowMenu(this); mnHelp = new wxMenu(); #ifdef __WXOSX__ mnHelp->Append(wxID_HELP, _T("&Help\tCtrl-?")); #else mnHelp->Append(wxID_HELP); #endif mnHelp->Append(wxID_ABOUT); if ((mode == EMBED && !Components::isActivated(Components::PLUGIN)) || (mode == STANDALONE && !Components::isActivated(Components::APP))) { mnHelp->Append(ID_BUT_REGISTER, _("&Register")); } mbMenu->Append(mnEdit, _("&Edit")); mbMenu->Append(mnView, _("&View")); mbMenu->Append(mnWindow, _("&Window")); mbMenu->Append(mnHelp, _("&Help")); this->SetMenuBar(mbMenu); } mnPopupWindow = new WindowMenu(this); /* toolbar */ #ifndef __WXGTK__ gnome_scale_images(this->GetContentScaleFactor()); #endif wxToolBar* tbTop = this->CreateToolBar(wxNO_BORDER|wxTB_FLAT|wxTB_HORIZONTAL); tbTop->SetToolBitmapSize(wxSize(32,32)); if (mode == STANDALONE) { tbTop->AddTool(wxID_OPEN, _("Open"), *_img_gnome_document_open, _("Open")); tbTop->AddTool(wxID_SAVE, _("Save"), *_img_gnome_document_save, _("Save")); tbTop->AddTool(wxID_SAVEAS, _("Save As"), *_img_gnome_document_save_as, _("Save As")); tbTop->AddSeparator(); } tbTop->AddTool(ID_BUT_DEFAULT, _("Restore Defaults"), *_img_gnome_system_run, _("Restore Defaults")); tbTop->AddSeparator(); tbTop->AddTool(wxID_ZOOM_IN, _("Zoom In"), *_img_gnome_zoom_in, _("Zoom In")); tbTop->AddTool(wxID_ZOOM_OUT, _("Zoom Out"), *_img_gnome_zoom_out, _("Zoom Out")); tbTop->AddTool(wxID_ZOOM_100, _("Actual Size"), *_img_gnome_zoom_original, _("Actual Size")); tbTop->AddTool(wxID_ZOOM_FIT, _("Zoom to Fit"), *_img_gnome_zoom_best_fit, _("Zoom to Fit")); tbTop->AddSeparator(); #ifdef URBANLIGHTSCAPE tbTop->AddCheckTool(ID_BUT_OVERLAY, _("Toggle Overlay"), *_img_gnome_window_new_32, *_img_gnome_window_new, _("Toggle Overlay")); // ^ first image is *_32 as otherwise appears shrunk in one quarter on Mac OS X tbTop->ToggleTool(ID_BUT_OVERLAY, true); #endif if (mode == EMBED) { tbTop->AddTool(ID_BUT_WINDOW, _("Windows"), *_img_gnome_preferences_system_windows, _("Windows")); } #ifdef __WXOSX__ /* help system causing crash under Photoshop on Cocoa, to do with menu perhaps? */ //if (mode != EMBED) { tbTop->AddTool(wxID_HELP, _("Help"), *_img_gnome_help_browser, _("Help")); //} #else tbTop->AddTool(wxID_HELP, _("Help"), *_img_gnome_help_browser, _("Help")); #endif if (mode == EMBED) { tbTop->AddTool(wxID_ABOUT, _("About"), *_img_gnome_dialog_information, _("About")); } if ((mode == STANDALONE && !Components::isActivated(Components::APP)) || (mode == EMBED && !Components::isActivated(Components::PLUGIN))) { tbTop->AddTool(ID_BUT_REGISTER, _("Register"), *_img_gnome_emblem_web, _("Register")); } #ifdef __WXOSX__ //if (mode != EMBED) { #ifndef WX_28 tbTop->AddStretchableSpace(); tbTop->AddControl(new wxContextHelpButton(tbTop, wxID_CONTEXT_HELP, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|wxBORDER_NONE), _T("Context help")); #else tbTop->AddSeparator(); tbTop->AddControl(new wxContextHelpButton(tbTop)); #endif //} #else #ifndef WX_28 tbTop->AddStretchableSpace(); tbTop->AddControl(new wxContextHelpButton(tbTop, wxID_CONTEXT_HELP, wxDefaultPosition, wxDefaultSize, wxBU_AUTODRAW|wxBORDER_NONE), _T("Context help")); #else tbTop->AddSeparator(); tbTop->AddControl(new wxContextHelpButton(tbTop)); #endif #endif tbTop->Realize(); /* info bar */ wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); sizer->Add(infoBar, 0, wxEXPAND); sizer->Add(main, 1, wxEXPAND); /* AUI manager */ manager = new wxAuiManager(main); int x, y, width, height; /* notebook */ wxAuiPaneInfo paneInfo; paneInfo.DefaultPane(); paneInfo.CaptionVisible(false); paneInfo.Centre(); paneInfo.PaneBorder(false); if (mode == STANDALONE) { manager->AddPane(notebook, paneInfo); // doc added later, after other panes... } else { assert (doc != NULL); manager->AddPane(doc, paneInfo); } /* panes */ initPanes(); /* add first document to notebook, if given */ if (mode == STANDALONE && doc != NULL) { notebook->AddPage(doc, _T("Unsaved")); } /* load AUI perspective */ wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); wxString persp; if (config.Read(_("Perspective_v2"), &persp)) { manager->LoadPerspective(persp); } /* main view seems to disappear occasionally (observed on both wxGTK and * wxOSX), so make sure it's shown */ if (mode == STANDALONE) { manager->GetPane(notebook).Show(); } else { manager->GetPane(doc).Show(); } /* dialog buttons -- loaded after restoring perspective to ensure they're * always placed appropriately */ if (mode == EMBED) { wxPanel* buttonPanel = new wxPanel(main); wxStdDialogButtonSizer* buttonSizer = new wxStdDialogButtonSizer(); wxButton* butOk = new wxButton(buttonPanel, wxID_OK); buttonSizer->AddButton(butOk); wxButton* butCancel = new wxButton(buttonPanel, wxID_CANCEL); buttonSizer->AddButton(butCancel); #ifndef __WXOSX__ wxButton* butHelp = new wxButton(buttonPanel, wxID_HELP); buttonSizer->AddButton(butHelp); #endif buttonSizer->Realize(); buttonPanel->SetSizerAndFit(buttonSizer); width = buttonPanel->GetMinSize().GetWidth(); height = buttonPanel->GetMinSize().GetHeight(); wxAuiPaneInfo paneInfo; paneInfo.DefaultPane(); #ifndef WX_28 paneInfo.Name(_("Buttons")); #else paneInfo.Name(wxString("Buttons", wxConvUTF8)); #endif paneInfo.MinSize(wxSize(width, height)); paneInfo.BestSize(wxSize(width, height)); paneInfo.CaptionVisible(false); paneInfo.Resizable(false); paneInfo.Bottom(); paneInfo.PaneBorder(false); paneInfo.Position(0); paneInfo.Layer(10); manager->AddPane(buttonPanel, paneInfo); } SetSizer(sizer); SetReturnCode(wxID_CANCEL); long val; width = intround(0.8f*wxSystemSettings::GetMetric(wxSYS_SCREEN_X)); height = intround(0.8f*wxSystemSettings::GetMetric(wxSYS_SCREEN_Y)); if (config.Read(_("width"), &val)) { width = static_cast(val); } if (config.Read(_("height"), &val)) { height = static_cast(val); } SetSize(wxSize(width, height)); CentreOnScreen(); x = GetPosition().x; y = GetPosition().y; if (config.Read(_("x"), &val)) { x = static_cast(val); } if (config.Read(_("y"), &val)) { y = static_cast(val); } SetPosition(wxPoint(x, y)); manager->Update(); if (doc != NULL) { doc->getPreviewPane()->getPreviewImage()->zoomFit(); } } void Window::initPanes() { // } void Window::enable() { enable((mode == EMBED && doc != NULL) || (mode == STANDALONE && notebook->GetPageCount() > 0)); } void Window::enable(const bool enable) { wxToolBar* tbTop = this->GetToolBar(); if (mode == STANDALONE) { tbTop->EnableTool(wxID_SAVE, enable); tbTop->EnableTool(wxID_SAVEAS, enable); } tbTop->EnableTool(wxID_ZOOM_OUT, enable); tbTop->EnableTool(wxID_ZOOM_IN, enable); tbTop->EnableTool(wxID_ZOOM_100, enable); tbTop->EnableTool(wxID_ZOOM_FIT, enable); tbTop->EnableTool(ID_BUT_DEFAULT, enable); #ifdef URBANLIGHTSCAPE tbTop->EnableTool(ID_BUT_OVERLAY, enable); #endif if (mode == STANDALONE) { wxMenuBar* mbMenu = this->GetMenuBar(); mbMenu->Enable(wxID_CLOSE, enable); mbMenu->Enable(wxID_SAVE, enable); mbMenu->Enable(wxID_SAVEAS, enable); mbMenu->Enable(wxID_ZOOM_OUT, enable); mbMenu->Enable(wxID_ZOOM_IN, enable); mbMenu->Enable(wxID_ZOOM_100, enable); mbMenu->Enable(wxID_ZOOM_FIT, enable); #ifdef URBANLIGHTSCAPE mbMenu->Enable(ID_BUT_OVERLAY, enable); #endif mbMenu->Enable(ID_BUT_DEFAULT, enable); if (doc != NULL) { doc->getPreviewPane()->getPreviewImage()->refresh(); } } } void Window::addPane(const wxString& name) { if (mode == STANDALONE) { mnWindow->add(name); } else { mnPopupWindow->add(name); } } void Window::OnSelect(wxCommandEvent& evt) { if (mode == STANDALONE) { mnWindow->OnSelect(evt); } else { mnPopupWindow->OnSelect(evt); } } void Window::OnDefault(wxCommandEvent& evt) { layoutDefault(); } BEGIN_EVENT_TABLE(Window, wxFrame) //EVT_AUINOTEBOOK_ALLOW_DND(wxID_ANY, Window::OnAllowNotebookDnD) #ifndef __WXOSX__ /* these events handled in OpenRecentMenu on Mac */ EVT_MENU(ID_CLEAR_RECENT, Window::OnClearRecent) /* these events handled in WindowMenu on Mac */ EVT_MENU_OPEN(Window::OnMenuOpen) EVT_MENU(ID_SELECT, Window::OnSelect) EVT_MENU(ID_SELECT + 1u, Window::OnSelect) EVT_MENU(ID_SELECT + 2u, Window::OnSelect) EVT_MENU(ID_SELECT + 3u, Window::OnSelect) EVT_MENU(ID_SELECT + 4u, Window::OnSelect) EVT_MENU(ID_SELECT + 5u, Window::OnSelect) EVT_MENU(ID_SELECT + 6u, Window::OnSelect) EVT_MENU(ID_SELECT + 7u, Window::OnSelect) EVT_MENU(ID_SELECT + 8u, Window::OnSelect) EVT_MENU(ID_SELECT + 9u, Window::OnSelect) EVT_MENU(ID_SELECT + 10u, Window::OnSelect) EVT_MENU(ID_SELECT + 11u, Window::OnSelect) EVT_MENU(ID_SELECT + 12u, Window::OnSelect) EVT_MENU(ID_SELECT + 13u, Window::OnSelect) EVT_MENU(ID_SELECT + 14u, Window::OnSelect) EVT_MENU(ID_SELECT + 15u, Window::OnSelect) EVT_MENU(ID_DEFAULTS, Window::OnDefault) #endif EVT_CLOSE(Window::OnSystemClose) EVT_TOOL(wxID_OPEN, Window::OnButtonOpen) EVT_TOOL(wxID_CLOSE, Window::OnButtonClose) EVT_TOOL(wxID_SAVE, Window::OnButtonSave) EVT_TOOL(wxID_SAVEAS, Window::OnButtonSaveAs) EVT_TOOL(wxID_EXIT, Window::OnButtonExit) EVT_TOOL(wxID_ZOOM_OUT, Window::OnButZoomOut) EVT_TOOL(wxID_ZOOM_IN, Window::OnButZoomIn) EVT_TOOL(wxID_ZOOM_100, Window::OnButZoomNormal) EVT_TOOL(wxID_ZOOM_FIT, Window::OnButZoomFit) EVT_TOOL(ID_BUT_DEFAULT, Window::OnButtonDefault) EVT_TOOL(wxID_ABOUT, Window::OnButtonAbout) EVT_TOOL(wxID_HELP, Window::OnButtonHelp) EVT_TOOL(ID_BUT_REGISTER, Window::OnButtonRegister) EVT_TOOL(ID_BUT_OVERLAY, Window::OnButtonOverlay) EVT_TOOL(ID_BUT_WINDOW, Window::OnButtonWindow) EVT_MENU(wxID_OPEN, Window::OnButtonOpen) EVT_MENU(wxID_CLOSE, Window::OnButtonClose) EVT_MENU(wxID_SAVE, Window::OnButtonSave) EVT_MENU(wxID_SAVEAS, Window::OnButtonSaveAs) EVT_MENU(wxID_EXIT, Window::OnButtonExit) EVT_MENU(wxID_ZOOM_OUT, Window::OnButZoomOut) EVT_MENU(wxID_ZOOM_IN, Window::OnButZoomIn) EVT_MENU(wxID_ZOOM_100, Window::OnButZoomNormal) EVT_MENU(wxID_ZOOM_FIT, Window::OnButZoomFit) EVT_MENU(ID_BUT_OVERLAY, Window::OnButtonOverlay) EVT_MENU(ID_BUT_DEFAULT, Window::OnButtonDefault) EVT_MENU(wxID_ABOUT, Window::OnButtonAbout) EVT_MENU(wxID_HELP, Window::OnButtonHelp) EVT_MENU(ID_BUT_REGISTER, Window::OnButtonRegister) EVT_BUTTON(wxID_OK, Window::OnButtonOk) EVT_BUTTON(wxID_CANCEL, Window::OnButtonCancel) EVT_BUTTON(wxID_HELP, Window::OnButtonHelp) EVT_MENU(300, Window::OnOpenRecent) EVT_MENU(301, Window::OnOpenRecent) EVT_MENU(302, Window::OnOpenRecent) EVT_MENU(303, Window::OnOpenRecent) EVT_MENU(304, Window::OnOpenRecent) EVT_MENU(305, Window::OnOpenRecent) EVT_MENU(306, Window::OnOpenRecent) EVT_MENU(307, Window::OnOpenRecent) EVT_AUINOTEBOOK_PAGE_CLOSE(wxID_ANY, Window::OnPageClose) EVT_AUINOTEBOOK_PAGE_CHANGED(wxID_ANY, Window::OnPageChanged) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/ChannelMixerPane.hpp0000644000175000001440000000271512236200473016305 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_CHANNELMIXERPANE_HPP #define INDII_TINT_GUI_CHANNELMIXERPANE_HPP #include "Pane.hpp" #include "../model/Model.hpp" #include "../model/Observer.hpp" #include "wx/slider.h" namespace indii { /** * Greyscale channel mixing pane. */ class ChannelMixerPane : public Pane, public Observer { public: /** * Constructor. * * @param parent Parent. */ ChannelMixerPane(wxWindow* parent); /** * Set model. * * @param model Model. */ void setModel(Model* model); /* * Handle model changes. */ virtual void notifyGreyscaleChange(); /* * Slider control events. */ void OnSlideRed(wxScrollEvent& evt); void OnSlideGreen(wxScrollEvent& evt); void OnSlideBlue(wxScrollEvent& evt); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); private: /** * Model. */ Model* model; /* * Slider controls. */ wxSlider *slideRed, *slideGreen, *slideBlue; /* * Slider control ids. */ enum ID { ID_SLIDE_RED, ID_SLIDE_GREEN, ID_SLIDE_BLUE }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/InfoBar.hpp0000644000175000001440000000367212236200473014447 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_INFOBAR_HPP #define INDII_GUI_INFOBAR_HPP #if !defined(WX_28) && !defined(__WXOSX_CARBON__) #define INDII_DO_INFOBAR 1 #else #define INDII_DO_INFOBAR 0 #endif #if INDII_DO_INFOBAR #include "wx/infobar.h" #else #include "wx/panel.h" #endif /** * @def INDII_INFOBAR_BASE * * Base type of indii::InfoBar. */ #if INDII_DO_INFOBAR #define INDII_INFOBAR_BASE wxInfoBar #else #define INDII_INFOBAR_BASE wxPanel #endif namespace indii { class Window; /** * Info bar for display of tips. */ class InfoBar : public INDII_INFOBAR_BASE { public: /** * Constructor. */ InfoBar(Window* parent); /** * Show generic message at startup, with open button. */ void showStartMessage(); /** * Show informational message at any other time, with close button. * * @param msg Message. * @param id Id of the message. This is used to record the message having * been seen, so that it is not displayed again. A value less than zero * will ensure that the message is always displayed. */ void showInfoMessage(const wxString& msg, const int id = -1); /** * Remove all buttons. */ void clearButtons(); /** * Button events. */ void OnButtonOpen(wxCommandEvent& evt); void OnButtonClose(wxCommandEvent& evt); private: /** * Parent window. */ Window* window; /** * Id of message currently displayed. */ int id; /** * Used to track which buttons are added, as wxInfoBar does not provide an * interface to query this itself. */ bool hasOpenButton, hasCloseButton; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/Document.cpp0000644000175000001440000000576312236200473014703 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Document.hpp" #include "../../gnome/gnome.hpp" #include "../meta.hpp" #include "../image/ImageManipulation.hpp" #include "wx/button.h" #include "wx/sizer.h" #include "wx/cshelp.h" #include "wx/config.h" #include "wx/stdpaths.h" #include "wx/filename.h" using namespace indii; Document::Document(wxWindow* parent, ImageResource* res, Model* model, Controller* control) : wxPanel(parent), res(res), model(model), control(control), isSaved(false), havePath(false) { init(); } Document::Document(wxWindow* parent) : wxPanel(parent), res(NULL), model(NULL), control(NULL), isSaved(false), havePath(false) { // } Document::~Document() { // } void Document::set(ImageResource* res, Model* model, Controller* control) { this->res = res; this->model = model; this->control = control; init(); } void Document::init() { wxBoxSizer* sizer = new wxBoxSizer(wxVERTICAL); previewPane = new PreviewPane(this, res, model, control); sizer->Add(previewPane, 1, wxEXPAND); this->SetSizer(sizer); } void Document::save() { /* pre-condition */ assert (havePath); wxImage img(res->getWidth(), res->getHeight()); model->calcFg(1, img); img.SetOption(wxIMAGE_OPTION_QUALITY, 95); wxLogNull logNo; isSaved = img.SaveFile(path); if (!isSaved) { isSaved = img.SaveFile(path, _("image/png")); if (!isSaved) { wxMessageBox(_("Error attempting to save file. File not saved."), _("Error"), wxOK|wxICON_HAND, this); } else { wxMessageBox(_("Unrecognised file extension. File saved as PNG."), _("Warning"), wxOK|wxICON_INFORMATION, this); } } } void Document::saveAs() { wxString savePath; wxConfig config(_(PACKAGE_TARNAME), _("indii.org")); if (!config.Read(_("SavePath"), &savePath)) { savePath = wxStandardPaths::Get().GetDocumentsDir(); } #if defined(__WXGTK__) || defined(MAC_APP_STORE) wxString defaultName(_("image.png")); if (havePath) { defaultName = wxFileName(path).GetName() + _(".png"); } #else wxString defaultName(_("image")); if (havePath) { defaultName = wxFileName(path).GetName(); } #endif wxString path = wxFileSelector(wxFileSelectorPromptStr, savePath, defaultName, _("png"), wildcards(true), wxFD_SAVE|wxFD_OVERWRITE_PROMPT, this); if (!path.empty()) { wxFileName file(path); savePath = file.GetPath(); config.Write(_("SavePath"), savePath); setPath(path); save(); } } const wxString& Document::getPath() const { return this->path; } void Document::setPath(const wxString& path) { this->path = path; havePath = true; } BEGIN_EVENT_TABLE(Document, wxPanel) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/ChannelMixerPane.cpp0000644000175000001440000000737412236200473016306 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ChannelMixerPane.hpp" #include "Help.hpp" #include "wx/wx.h" #include "wx/gbsizer.h" using namespace indii; ChannelMixerPane::ChannelMixerPane(wxWindow* parent) : Pane(parent), model(NULL) { static const int PADDING = 4; wxGridBagSizer* sizer = new wxGridBagSizer(); slideRed = new wxSlider(this, ID_SLIDE_RED, 76, 0, 255, wxDefaultPosition, wxSize(100,-1)); slideGreen = new wxSlider(this, ID_SLIDE_GREEN, 150, 0, 255, wxDefaultPosition, wxSize(100,-1)); slideBlue = new wxSlider(this, ID_SLIDE_BLUE, 29, 0, 255, wxDefaultPosition, wxSize(100,-1)); wxStaticText *labelRed, *labelGreen, *labelBlue; labelRed = new wxStaticText(this, -1, _("Red:")); labelGreen = new wxStaticText(this, -1, _("Green:")); labelBlue = new wxStaticText(this, -1, _("Blue:")); sizer->Add(labelRed, wxGBPosition(0,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT, PADDING); sizer->Add(labelGreen, wxGBPosition(1,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT, PADDING); sizer->Add(labelBlue, wxGBPosition(2,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT|wxBOTTOM, PADDING); sizer->Add(slideRed, wxGBPosition(0,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT, PADDING); sizer->Add(slideGreen, wxGBPosition(1,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT, PADDING); sizer->Add(slideBlue, wxGBPosition(2,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT|wxBOTTOM, PADDING); sizer->SetFlexibleDirection(wxHORIZONTAL); sizer->AddGrowableCol(1); SetMinSize(wxSize(240,-1)); SetSizerAndFit(sizer); setModel(NULL); } void ChannelMixerPane::setModel(Model* model) { this->model = model; ignore(); Enable(model != NULL); slideRed->Enable(model != NULL); slideGreen->Enable(model != NULL); slideBlue->Enable(model != NULL); if (model != NULL) { watch(model); notifyGreyscaleChange(); } } void ChannelMixerPane::notifyGreyscaleChange() { /* pre-condition */ assert (model != NULL); int r = intround(model->getRedMix()*255.0f); int g = intround(model->getGreenMix()*255.0f); int b = intround(model->getBlueMix()*255.0f); if (slideRed->GetValue() != r) { slideRed->SetValue(r); slideRed->Enable(r != slideRed->GetMax()); } if (slideGreen->GetValue() != g) { slideGreen->SetValue(g); slideGreen->Enable(g != slideGreen->GetMax()); } if (slideBlue->GetValue() != b) { slideBlue->SetValue(b); slideBlue->Enable(b != slideBlue->GetMax()); } } void ChannelMixerPane::OnSlideRed(wxScrollEvent& evt) { if (model != NULL) { float r = slideRed->GetValue() / 255.0f; model->setRedMix(r); } } void ChannelMixerPane::OnSlideGreen(wxScrollEvent& evt) { if (model != NULL) { float g = slideGreen->GetValue() / 255.0f; model->setGreenMix(g); } } void ChannelMixerPane::OnSlideBlue(wxScrollEvent& evt) { if (model != NULL) { float b = slideBlue->GetValue() / 255.0f; model->setBlueMix(b); } } void ChannelMixerPane::OnHelp(wxHelpEvent& evt) { Help::show(550); } BEGIN_EVENT_TABLE(ChannelMixerPane, Pane) EVT_COMMAND_SCROLL(ID_SLIDE_RED, ChannelMixerPane::OnSlideRed) EVT_COMMAND_SCROLL(ID_SLIDE_GREEN, ChannelMixerPane::OnSlideGreen) EVT_COMMAND_SCROLL(ID_SLIDE_BLUE, ChannelMixerPane::OnSlideBlue) EVT_HELP(wxID_ANY, ChannelMixerPane::OnHelp) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/PreviewImage.cpp0000644000175000001440000002456712236200473015514 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "PreviewImage.hpp" #include "Help.hpp" #include "../images/indii.hpp" #include "wx/dcbuffer.h" #include "wx/settings.h" #include "wx/dcgraph.h" using namespace indii; #define MAX_ZOOM_IN 16 #define MAX_ZOOM_OUT 24 PreviewImage::PreviewImage(wxWindow* parent, ImageResource* res, Model* model, Controller* control) : wxScrolledWindow(parent, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxNO_FULL_REPAINT_ON_RESIZE | wxCLIP_CHILDREN | wxHSCROLL | wxVSCROLL | wxBORDER_NONE), res(res), model(model), control(control), zoomNumerator(1), zoomDenominator(1), overlay(true), doClear(true) { watch(model); SetCursor(wxCursor(wxCURSOR_HAND)); SetBackgroundStyle(wxBG_STYLE_CUSTOM); } void PreviewImage::zoomIn() { if (zoomDenominator == 1) { if (zoomNumerator < MAX_ZOOM_IN) { ++zoomNumerator; } } else { --zoomDenominator; } clear(false); int width = res->getWidth() * zoomNumerator / zoomDenominator; int height = res->getHeight() * zoomNumerator / zoomDenominator; SetVirtualSize(width, height); SetScrollRate(1, 1); Refresh(); /* post-condition */ assert(zoomNumerator >= 1 && zoomDenominator >= 1); } void PreviewImage::zoomOut() { if (zoomNumerator == 1) { if (zoomDenominator < MAX_ZOOM_OUT) { ++zoomDenominator; } } else { --zoomNumerator; } clear(); int width = res->getWidth() * zoomNumerator / zoomDenominator; int height = res->getHeight() * zoomNumerator / zoomDenominator; SetVirtualSize(width, height); SetScrollRate(1, 1); Refresh(); /* post-condition */ assert(zoomNumerator >= 1 && zoomDenominator >= 1); } void PreviewImage::zoomNormal() { zoomNumerator = 1; zoomDenominator = 1; clear(); int width = res->getWidth(); int height = res->getHeight(); SetVirtualSize(width, height); SetScrollRate(1, 1); Refresh(); /* post-condition */ assert(zoomNumerator == 1 && zoomDenominator == 1); } void PreviewImage::zoomFit() { const int clientWidth = GetClientSize().GetWidth(); const int clientHeight = GetClientSize().GetHeight(); int width, height; if (clientWidth > 0 && clientHeight > 0) { zoomNumerator = 1; zoomDenominator = res->fitScale(clientWidth, clientHeight); if (zoomDenominator > MAX_ZOOM_OUT) { zoomDenominator = MAX_ZOOM_OUT; } clear(); width = res->getWidth()/zoomDenominator; height = res->getHeight()/zoomDenominator; SetVirtualSize(width, height); SetScrollRate(1, 1); Refresh(); } /* post-condition */ assert (zoomNumerator == 1 || zoomDenominator == 1); } void PreviewImage::refresh() { Refresh(); Update(); } void PreviewImage::clear(const bool on) { doClear = on; } void PreviewImage::notify() { clear(false); refresh(); } void PreviewImage::OnPaint(wxPaintEvent& evt) { wxPaintDC base(this); #if wxUSE_GRAPHICS_CONTEXT wxGCDC dc(base); #else wxPaintDC& dc = base; #endif DoPrepareDC(dc); /* background */ #ifdef __WXMSW__ if (doClear) { dc.SetBackground(wxBrush(*_img_indii_stipple)); dc.Clear(); } doClear = true; #else base.SetBackground(wxBrush(*_img_indii_stipple)); base.Clear(); #endif /* zoom scale */ const int width = res->getWidth()/zoomDenominator; const int height = res->getHeight()/zoomDenominator; dc.SetUserScale(zoomNumerator, zoomNumerator); /* content scale */ #ifndef __WXGTK__ const float contentScale = this->GetContentScaleFactor(); #else const float contentScale = 1.0; #endif /* centre */ const int clientWidth = GetClientSize().GetWidth(); const int clientHeight = GetClientSize().GetHeight(); int centreX = 0; int centreY = 0; wxPoint origin = dc.GetDeviceOrigin(); if (width * zoomNumerator < clientWidth) { centreX = (clientWidth - width * zoomNumerator) / 2; origin.x = centreX; } if (height * zoomNumerator < clientHeight) { centreY = (clientHeight - height * zoomNumerator) / 2; origin.y = centreY; } dc.SetDeviceOrigin(origin.x, origin.y); /* shadow */ //wxBitmap bmp1(width + 8, height + 8, 32); //wxMemoryDC dc1(bmp1); //dc1.SetBackground(wxBrush(*wxBLACK)); //dc1.Clear(); //wxImage img1(bmp1.ConvertToImage()); //hide(img1); //show(img1, wxRect(1, 1, width, height)); //dc.DrawBitmap(img1.Blur(1), 0, 0, true); /* scrolling */ wxRect rect; int xUnits, yUnits, xScale, yScale, xPixels, yPixels; GetViewStart(&xUnits, &yUnits); GetScrollPixelsPerUnit(&xScale, &yScale); xPixels = xUnits * xScale; yPixels = yUnits * yScale; /* update */ wxRegionIterator upd(GetUpdateRegion()); while (upd) { /* expand rect by one pixel all sides, helps when scrolling */ rect.x = std::max(std::min(((int) upd.GetX() + xPixels) / zoomNumerator - centreX - 1, width - 1), 0); rect.y = std::max(std::min(((int) upd.GetY() + yPixels) / zoomNumerator - centreY - 1, height - 1), 0); rect.width = std::max(std::min(((int) upd.GetW() + zoomNumerator - 1) / zoomNumerator + 2, width - rect.x), 0); rect.height = std::max(std::min(((int) upd.GetH() + zoomNumerator - 1) / zoomNumerator + 2, height - rect.y), 0); /* retina adjustments */ wxRect rect2 = rect; float scale = zoomDenominator; if (zoomDenominator > 1 && contentScale > 1.0) { rect2.x *= contentScale; rect2.y *= contentScale; rect2.width *= contentScale; rect2.height *= contentScale; scale /= contentScale; } if (rect.width > 0 && rect.height > 0) { wxImage fg(rect2.width, rect2.height); model->calcFg(rect2, scale, fg); #ifdef __WXMSW__ if (overlay && zoomNumerator == 1) { /* double buffer */ wxBitmap fg2(fg); wxMemoryDC dc2(fg2); #if wxUSE_GRAPHICS_CONTEXT wxGCDC dc3(dc2); #else wxPaintDC& dc3 = dc2; #endif dc3.SetDeviceOrigin(-rect.x, -rect.y); //dc3.SetUserScale(zoomNumerator, zoomNumerator); model->calcAn(rect, zoomDenominator, dc3); dc.DrawBitmap(fg2, rect.x, rect.y); } else { /* when zoomed in, double buffering means res of control points is * low, prefer the slight flicker in this case */ dc.DrawBitmap(fg, rect.x, rect.y); if (overlay) { model->calcAn(rect, zoomDenominator, dc); } } #else #ifndef __WXGTK__ if (contentScale > 1.0) { wxBitmap bmp(fg); wxMemoryDC mem; mem.SelectObject(bmp); dc.StretchBlit(rect.x, rect.y, rect.width, rect.height, &mem, 0, 0, rect2.width, rect2.height); } else { dc.DrawBitmap(fg, rect.x, rect.y); } #else dc.DrawBitmap(fg, rect.x, rect.y); #endif if (overlay) { model->calcAn(rect, zoomDenominator, dc); } #endif } upd++; } } void PreviewImage::OnSize(wxSizeEvent& evt) { Refresh(); } void PreviewImage::OnMouseWheel(wxMouseEvent& evt) { /* pan view */ int x, y, xUnit, yUnit; GetViewStart(&x, &y); GetScrollPixelsPerUnit(&xUnit, &yUnit); #ifndef WX_28 if (evt.GetWheelAxis() == 0) { #endif y -= evt.GetWheelRotation(); #ifndef WX_28 } else { x -= evt.GetWheelRotation(); } #endif Scroll(x, y); clear(false); } void PreviewImage::OnMouseDown(wxMouseEvent& evt) { mouseX = evt.GetX(); mouseY = evt.GetY(); int x0, y0, x, y; getLocation(evt, &x0, &y0, &x, &y); if (control != NULL) { control->down(x0, y0, x, y, evt); } #ifdef __WXMSW__ CaptureMouse(); #endif //clear(false); } void PreviewImage::OnMouseUp(wxMouseEvent& evt) { int x0, y0, x, y; getLocation(evt, &x0, &y0, &x, &y); if (control != NULL) { control->up(x0, y0, x, y, evt); } #ifdef __WXMSW__ ReleaseMouse(); #endif //clear(false); } void PreviewImage::OnMouseDoubleClick(wxMouseEvent& evt) { mouseX = evt.GetX(); mouseY = evt.GetY(); int x0, y0, x, y; getLocation(evt, &x0, &y0, &x, &y); if (control != NULL) { control->doubleDown(x0, y0, x, y, evt); } #ifdef __WXMSW__ CaptureMouse(); #endif //clear(false); } void PreviewImage::OnMouseMove(wxMouseEvent& evt) { if (evt.Dragging()) { int x0, y0, x, y, dx0, dy0, dx, dy; getLocation(evt, &x0, &y0, &x, &y); dx = evt.GetX() - mouseX; dy = evt.GetY() - mouseY; dx0 = dx * zoomDenominator / zoomNumerator; dy0 = dy * zoomDenominator / zoomNumerator; if (control != NULL) { control->drag(x0, y0, x, y, dx0, dy0, dx, dy, evt); } if (control == NULL || evt.GetSkipped()) { /* default scroll action */ GetViewStart(&x, &y); Scroll(x - dx, y - dy); evt.Skip(false); } mouseX = evt.GetX(); mouseY = evt.GetY(); clear(false); Update(); } } void PreviewImage::OnEraseBackground(wxEraseEvent& evt) { // } void PreviewImage::OnHelp(wxHelpEvent& evt) { Help::show(510); } void PreviewImage::getLocation(wxMouseEvent& evt, int* x0, int* y0, int* x, int* y) { /* pre-condition */ assert (x0 != NULL && y0 != NULL && x != NULL && y != NULL); const int width = res->getWidth() * zoomNumerator / zoomDenominator; const int height = res->getHeight() * zoomNumerator / zoomDenominator; const int clientWidth = GetClientSize().GetWidth(); const int clientHeight = GetClientSize().GetHeight(); int centreX = 0, centreY = 0, xUnit, yUnit; GetViewStart(x, y); GetScrollPixelsPerUnit(&xUnit, &yUnit); if (width < clientWidth) { centreX = (clientWidth - width) / 2; } if (height < clientHeight) { centreY = (clientHeight - height) / 2; } *x *= xUnit; *y *= yUnit; *x += evt.GetX() - centreX; *y += evt.GetY() - centreY; *x0 = *x * zoomDenominator / zoomNumerator; *y0 = *y * zoomDenominator / zoomNumerator; } BEGIN_EVENT_TABLE(PreviewImage, wxWindow) EVT_PAINT(PreviewImage::OnPaint) EVT_LEFT_DOWN(PreviewImage::OnMouseDown) EVT_LEFT_UP(PreviewImage::OnMouseUp) EVT_LEFT_DCLICK(PreviewImage::OnMouseDoubleClick) EVT_MOUSEWHEEL(PreviewImage::OnMouseWheel) EVT_MOTION(PreviewImage::OnMouseMove) EVT_ERASE_BACKGROUND(PreviewImage::OnEraseBackground) EVT_SIZE(PreviewImage::OnSize) EVT_HELP(wxID_ANY, PreviewImage::OnHelp) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/OpenRecentMenu.hpp0000644000175000001440000000253612236200473016014 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_OPENRECENTMENU_HPP #define INDII_GUI_OPENRECENTMENU_HPP #include "wx/wx.h" namespace indii { /** * Open recent file menu. */ class OpenRecentMenu : public wxMenu { public: /** * Menu shown. Rebuilds menu on-the-fly. */ void OnShow(wxMenuEvent& evt); /** * Clear recent menu event. */ void OnClearRecent(wxCommandEvent& evt); /** * Add file to recent list. */ static void AddFile(const wxString& path); /** * Remove file from recent list. */ static void RemoveFile(const wxString& path); /** * Get file from recent list. */ static wxString GetFile(const int id); /** * Clear list. */ static void Clear(); private: /** * Maximum number of files in list. */ static const unsigned MAX_FILES = 8; /* * Control ids. */ enum ID { /* these must both match those given in TintWindow */ ID_CLEAR_RECENT = 764, ID_OPEN_RECENT = 765 }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/gui/Help.cpp0000644000175000001440000000722212236200473014005 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Help.hpp" #include "../meta.hpp" #include "wx/stdpaths.h" #include "wx/msgdlg.h" #include "wx/fs_arc.h" #include "wx/fs_zip.h" #include "wx/html/helpdlg.h" #include using namespace indii; wxHtmlHelpController* Help::help = NULL; bool Help::haveHelp = false; #ifdef __WXMSW__ #define HELP_FLAGS wxHF_DEFAULT_STYLE&~wxHF_BOOKMARKS&~wxHF_INDEX // ^ wxHF_MERGE_BOOKS starts with contents expanded, but causing errors on Windows #elif defined(__WXOSX__) #define HELP_FLAGS wxHF_DEFAULT_STYLE&~wxHF_BOOKMARKS&~wxHF_INDEX&~wxHF_PRINT&~wxHF_TOOLBAR&~wxHF_MENU #else #define HELP_FLAGS wxHF_DEFAULT_STYLE&~wxHF_BOOKMARKS&~wxHF_INDEX #endif void Help::init(wxWindow* parent) { help = new wxHtmlHelpController(HELP_FLAGS, parent); if (!haveHelp) { wxFileSystem::AddHandler(new wxArchiveFSHandler()); // for *.htb file std::vector files; files.push_back(wxFileName(_(PACKAGE_TARNAME ".htb"))); files.push_back(wxFileName(wxString("help", wxConvUTF8) << wxFileName::GetPathSeparator() << _(PACKAGE_TARNAME) << _(".htb"))); files.push_back(wxFileName(wxStandardPaths::Get().GetResourcesDir(), _(PACKAGE_TARNAME ".htb"))); files.push_back(wxFileName(wxStandardPaths::Get().GetResourcesDir() << wxFileName::GetPathSeparator() << _("Plug-Ins"), _(PACKAGE_TARNAME ".htb"))); #ifdef __WXMSW__ /* support shortcuts to these files also */ files.push_back(wxFileName(wxStandardPaths::Get().GetResourcesDir(), _(PACKAGE_TARNAME ".htb.lnk"))); files.push_back(wxFileName(wxStandardPaths::Get().GetResourcesDir() << wxFileName::GetPathSeparator() << _("Plug-Ins"), _(PACKAGE_TARNAME "htb.lnk"))); #endif #ifdef __WXOSX__ /* for plugin */ files.push_back(wxFileName(wxStandardPaths::Get().GetResourcesDir() << _("/../../../Plug-ins/" PACKAGE_TARNAME ".plugin/Contents/Resources"), _(PACKAGE_TARNAME ".htb"))); files.push_back(wxFileName(_("/Applications/indii.org/" PACKAGE_TARNAME ".htb"))); #endif #ifdef __WXGTK__ /* datadir from autoconf */ files.push_back(wxFileName(_(DATADIR))); #endif std::vector::iterator iter; for (iter = files.begin(); iter != files.end() && !haveHelp; ++iter) { iter->Normalize(); // follow shortcuts etc if (iter->IsOk() && iter->FileExists()) { haveHelp = help->AddBook(*iter); } } } } void Help::term() { help->Quit(); help = NULL; haveHelp = false; } void Help::show(const int section) { if (haveHelp) { help->Display(section); //help->GetDialog()->Show(); //help->Raise(); //help->SetFocus(); //#if defined(__WXOSX__) && defined(__PLUGIN__) /* in Photoshop CS5, menus and toolbars obscure help window, and so can't * close it, make sure it won't be obscured */ //int x, y; //help->GetScreenPosition(&x, &y); //if (x < 40 || y < 120) { // x = std::max(40, x); // y = std::max(120, y); // help->Move(x, y); //} //#endif } else { wxMessageBox(wxString("The online help system could not be loaded.\n\nMake sure " "that the " PACKAGE_TARNAME ".htb file is in the " #ifdef WX_28 , wxConvUTF8 #endif ) << wxStandardPaths::Get().GetResourcesDir() << _(" directory, and restart " PACKAGE_NAME "."), _("Error"), wxOK|wxICON_HAND, NULL); } } tintii-2.8.2/src/indii/gui/Document.hpp0000644000175000001440000000516212236200473014701 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_DOCUMENT_HPP #define INDII_GUI_DOCUMENT_HPP #include "PreviewPane.hpp" #include "../model/Model.hpp" #include "../model/Observer.hpp" #include "../image/ImageResource.hpp" #include "wx/panel.h" namespace indii { /** * Image document. */ class Document : public wxPanel, public Observer { public: /** * Constructor. * * @param parent Parent. * @param res Image resource. * @param model Model. * @param control Controller. */ Document(wxWindow* parent, ImageResource* res, Model* model, Controller* control = NULL); /** * Constructor. * * @param parent Parent. * * Use set() to set image resource and model before use. */ Document(wxWindow* parent); /** * Destructor. */ virtual ~Document(); /** * Is image saved? */ bool saved(); /** * Save image. */ void save(); /** * Save image, prompting for path. */ void saveAs(); /** * Does image have path? */ bool hasPath(); /** * Get image path. */ const wxString& getPath() const; /** * Set image path. */ void setPath(const wxString& path); /** * Notify. */ virtual void notify(); /** * Get preview pane. */ PreviewPane* getPreviewPane(); /** * Get model. */ Model* getModel(); protected: /** * Set model and resource. */ void set(ImageResource* res, Model* model, Controller* control = NULL); /** * Preview pane. */ PreviewPane* previewPane; /** * Image resource. */ ImageResource* res; /** * Model. */ Model* model; /** * Controller. */ Controller* control; private: /** * Is the image, in its current state, saved? */ bool isSaved; /** * Do we have a path for saving the image? */ bool havePath; /** * Path to saved image. */ wxString path; /** * Initialise document. */ void init(); DECLARE_EVENT_TABLE() }; } inline bool indii::Document::hasPath() { return havePath; } inline bool indii::Document::saved() { return isSaved; } inline void indii::Document::notify() { isSaved = false; } inline indii::PreviewPane* indii::Document::getPreviewPane() { return previewPane; } inline indii::Model* indii::Document::getModel() { return model; } #endif tintii-2.8.2/src/indii/gui/Splash.hpp0000644000175000001440000000127012236200473014351 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_GUI_Splash_HPP #define INDII_GUI_Splash_HPP #include "../reg/Components.hpp" #include "wx/bitmap.h" namespace indii { /** * Splash bitmap. */ class Splash : public wxBitmap { public: /** * Constructor. */ Splash(wxBitmap* bmp, const Components::Component c = Components::APP); }; } #endif tintii-2.8.2/src/indii/gui/Registration.cpp0000644000175000001440000001736412236200473015577 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Registration.hpp" #include "../reg/Components.hpp" #include "../../gnome/gnome.hpp" #include "../meta.hpp" #include "wx/gbsizer.h" #include "wx/stattext.h" #include "wx/textctrl.h" #include "wx/utils.h" #include "wx/statbmp.h" using namespace indii; #ifdef __WXOSX__ /* modal dialogs shouldn't have close button */ #define INDII_REGISTRATION_STYLE wxCAPTION #else #define INDII_REGISTRATION_STYLE wxDEFAULT_DIALOG_STYLE #endif Registration::Registration(wxWindow* parent, const Components::Component c) : wxDialog(parent, wxID_ANY, _("Register"), wxDefaultPosition, wxDefaultSize, INDII_REGISTRATION_STYLE), c(c) { /* pre-condition */ assert (c == Components::APP || c == Components::PLUGIN); static const int PADDING = 8; int daysLeft = Components::daysLeft(); int maxDays = Components::maxDays(); wxString message(_("")); message.Append(_("You have ")); if (daysLeft == 1) { message.Append(_("only ")); message = message << daysLeft; message.Append(_(" day")); } else if (daysLeft > 0 && daysLeft <= maxDays/3) { message.Append(_("only ")); message = message << daysLeft; message.Append(_(" days")); } else { message = message << daysLeft; message.Append(_(" days")); } if (daysLeft == 0) { message.Append(_(" left in your trial period. Please register to continue using " PACKAGE_NAME ".")); } else { message.Append(_(" left in your trial period. Please register to continue using " PACKAGE_NAME " after this time.")); } //wxStaticBitmap* bmpKey = new wxStaticBitmap(this, wxID_ANY, *_img_gnome_emblem_web); wxStaticText *lblTitle = NULL, *lblDaysLeft = NULL, *lblDesc = NULL, *lblUrl = NULL; if (c == Components::APP) { if (Components::isActivated(c)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your " PACKAGE_NAME " app is already registered")); } else if (Components::needsReactivation(c)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your registration code must be revalidated for this version of " PACKAGE_NAME)); } else if (Components::isTrial(c)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your " PACKAGE_NAME " app is not yet registered")); lblDaysLeft = new wxStaticText(this, wxID_ANY, message); } else { lblTitle = new wxStaticText(this, wxID_ANY, _("Your trial period for " PACKAGE_NAME " has ended")); lblDesc = new wxStaticText(this, wxID_ANY, _("Please register to continue using " PACKAGE_NAME ".")); } } else { if (Components::isActivated(Components::PLUGIN)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your " PACKAGE_NAME " plugin is already registered")); } else if (Components::isActivated(Components::APP)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your " PACKAGE_NAME " plugin is not yet registered")); lblDaysLeft = new wxStaticText(this, wxID_ANY, message); lblDesc = new wxStaticText(this, wxID_ANY, _("While you have registered your " PACKAGE_NAME " app, your registration code is not valid for the " PACKAGE_NAME " plugin. You can buy a new registration code for the plugin and enter it here to register.")); } else if (Components::needsReactivation(c)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your registration code must be revalidated for this version of " PACKAGE_NAME)); } else if (Components::isTrial(c)) { lblTitle = new wxStaticText(this, wxID_ANY, _("Your " PACKAGE_NAME " plugin is not yet registered")); lblDaysLeft = new wxStaticText(this, wxID_ANY, message); } else { lblTitle = new wxStaticText(this, wxID_ANY, _("The trial period for your " PACKAGE_NAME " plugin has ended")); lblDesc = new wxStaticText(this, wxID_ANY, _("Please register to continue using " PACKAGE_NAME ".")); } } #ifdef ADOBE_EXCHANGE wxButton* butUrl = new wxButton(this, ID_BUT_URL, _("Click here to register")); lblUrl = new wxStaticText(this, wxID_ANY, _("or visit www.adobeexchange.com, and enter the code you are given in the text box below.")); #else wxButton* butUrl = new wxButton(this, ID_BUT_URL, _("Click here to register")); lblUrl = new wxStaticText(this, wxID_ANY, _("or visit www.indii.org/software/" PACKAGE_TARNAME "/register, and enter the code you are given in the text box below.")); #endif /* set fonts */ #ifndef __WXOSX__ wxFont fntUrl(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); fntUrl.SetUnderlined(true); butUrl->SetForegroundColour(*wxBLUE); #endif #ifndef WX_28 lblTitle->SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT).Bold()); #else wxFont fntTitle(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); fntTitle.SetWeight(wxFONTWEIGHT_BOLD); lblTitle->SetFont(fntTitle); #endif if (lblDesc != NULL) lblDesc->SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); lblUrl->SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); if (lblDaysLeft != NULL) { lblDaysLeft->SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT)); } wxStdDialogButtonSizer* buttonSizer = this->CreateStdDialogButtonSizer(0); buttonSizer->SetAffirmativeButton(new wxButton(this, wxID_OK, _("Register Now"))); buttonSizer->SetCancelButton(new wxButton(this, wxID_CANCEL, _("Register Later"))); buttonSizer->Realize(); txtKey = new wxTextCtrl(this, wxID_ANY, Components::getKey(), wxDefaultPosition, wxSize(250,-1)); /* wrapping */ int width = std::max(buttonSizer->GetSize().GetWidth(), std::max(txtKey->GetSize().GetWidth(), std::max(lblTitle->GetSize().GetWidth(), butUrl->GetSize().GetWidth()))); if (lblDesc != NULL) lblDesc->Wrap(width); lblUrl->Wrap(width); if (lblDaysLeft != NULL) lblDaysLeft->Wrap(width); int row = 0; wxGridBagSizer* keySizer = new wxGridBagSizer(); keySizer->Add(txtKey, wxGBPosition(0,0), wxDefaultSpan, wxALL|wxALIGN_CENTRE_VERTICAL, PADDING); wxGridBagSizer* sizer = new wxGridBagSizer(); sizer->Add(lblTitle, wxGBPosition(row++,0), wxDefaultSpan, wxALL|wxEXPAND, PADDING); if (lblDaysLeft != NULL) { sizer->Add(lblDaysLeft, wxGBPosition(row++,0), wxDefaultSpan, wxALL|wxEXPAND, PADDING); } if (lblDesc != NULL) { sizer->Add(lblDesc, wxGBPosition(row++,0), wxDefaultSpan, wxALL|wxEXPAND, PADDING); } sizer->Add(butUrl, wxGBPosition(row++,0), wxDefaultSpan, wxALL|wxALIGN_CENTRE_HORIZONTAL, PADDING); if (lblUrl != NULL) { sizer->Add(lblUrl, wxGBPosition(row++,0), wxDefaultSpan, wxALL|wxALIGN_CENTRE_HORIZONTAL|wxEXPAND, PADDING); } sizer->Add(keySizer, wxGBPosition(row++,0), wxDefaultSpan, wxALIGN_CENTRE_HORIZONTAL); sizer->Add(buttonSizer, wxGBPosition(row++,0), wxGBSpan(1,2), wxALL|wxEXPAND, PADDING); SetSizerAndFit(sizer); } void Registration::OnButtonUrl(wxCommandEvent& evt) { #ifdef ADOBE_EXCHANGE wxLaunchDefaultBrowser(_("http://www.adobeexchange.com/")); #else wxLaunchDefaultBrowser(_("http://www.indii.org/software/" PACKAGE_TARNAME "/register")); #endif } void Registration::OnButtonOk(wxCommandEvent& evt) { if (Components::activate(c, txtKey->GetValue())) { EndModal(wxID_OK); } } void Registration::OnButtonCancel(wxCommandEvent& evt) { EndModal(wxID_CANCEL); } void Registration::OnClose(wxCloseEvent& evt) { Destroy(); } BEGIN_EVENT_TABLE(Registration, wxDialog) EVT_CLOSE(Registration::OnClose) EVT_BUTTON(ID_BUT_URL, Registration::OnButtonUrl) EVT_BUTTON(wxID_OK, Registration::OnButtonOk) EVT_BUTTON(wxID_CANCEL, Registration::OnButtonCancel) END_EVENT_TABLE() tintii-2.8.2/src/indii/gui/PreviewPane.hpp0000644000175000001440000000250712236200473015350 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_PREVIEWPANE_HPP #define INDII_TINT_GUI_PREVIEWPANE_HPP #include "Pane.hpp" #include "PreviewImage.hpp" #include "../image/ImageResource.hpp" #include "../model/Model.hpp" #include "../model/Controller.hpp" #include "wx/panel.h" namespace indii { /** * Preview pane. */ class PreviewPane : public wxPanel { public: /** * Constructor. * * @param parent Parent. * @param res Image resource. * @param model Model. * @param control Controller. */ PreviewPane(wxWindow* parent, ImageResource* res, Model* model, Controller* control = NULL); /** * Get preview image. */ PreviewImage* getPreviewImage(); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); void OnSetFocus(wxFocusEvent& evt); private: /** * Preview image. */ PreviewImage* preview; DECLARE_EVENT_TABLE() }; } inline indii::PreviewImage* indii::PreviewPane::getPreviewImage() { return preview; } #endif tintii-2.8.2/src/indii/meta.hpp0000644000175000001440000000164312236200473013265 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_META_HPP #define INDII_META_HPP #ifdef URBANLIGHTSCAPE #define PACKAGE_NAME "Urban Lightscape" #define PACKAGE_TARNAME "urbanlightscape" #define PACKAGE_VERSION "1.3.2" #define PACKAGE_DESC "A photo filter for exposure correction, localised brightness adjustments and artificial lighting." #endif #ifdef TINTII #define PACKAGE_NAME "Tintii" #define PACKAGE_TARNAME "tintii" #define PACKAGE_VERSION "2.8.2" #define PACKAGE_DESC "A photo filter for selective colour effects, and adjustments of hue, saturation and lightness." #endif #endif tintii-2.8.2/src/indii/tint/0000755000175000001440000000000012236200474012661 500000000000000tintii-2.8.2/src/indii/tint/gui/0000755000175000001440000000000012236200475013446 500000000000000tintii-2.8.2/src/indii/tint/gui/PreProcessPane.cpp0000644000175000001440000001011412236200473016756 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "PreProcessPane.hpp" #include "../../gui/Help.hpp" #include "wx/wx.h" #include "wx/gbsizer.h" #include "wx/valtext.h" using namespace indii; PreProcessPane::PreProcessPane(wxWindow* parent) : Pane(parent), model(NULL) { static const int PADDING = 4; textMaxPixels = NULL; wxString maxPixels; maxPixels << 10000; /* options page */ wxGridBagSizer* sizer = new wxGridBagSizer(); wxStaticText *labelReps, *labelMaxPixels, *labelSat; labelReps = new wxStaticText(this, -1, _("Reps:")); labelMaxPixels = new wxStaticText(this, -1, _("Pixels:")); labelSat = new wxStaticText(this, -1, _("Threshold:")); spinReps = new wxSpinCtrl(this, ID_SPIN_REPS, wxString::Format(_T("%d"), 12), wxDefaultPosition, wxSize(80,-1), wxSP_ARROW_KEYS, 1, 20); textMaxPixels = new wxTextCtrl(this, ID_TEXT_MAX_PIXELS, maxPixels, wxDefaultPosition, wxSize(80,-1), wxTE_PROCESS_ENTER, wxTextValidator(wxFILTER_NUMERIC, &maxPixels)); spinSat = new wxSpinCtrl(this, ID_SPIN_SAT, wxString::Format(_T("%d"), 32), wxDefaultPosition, wxSize(80,-1), wxSP_ARROW_KEYS, 0, 255, 32); sizer->Add(labelReps, wxGBPosition(0,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxLEFT|wxTOP|wxRIGHT, PADDING); sizer->Add(labelMaxPixels, wxGBPosition(1,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxLEFT|wxTOP|wxRIGHT, PADDING); sizer->Add(labelSat, wxGBPosition(2,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxALL, PADDING); sizer->Add(spinReps, wxGBPosition(0,1), wxDefaultSpan, wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxRIGHT, PADDING); sizer->Add(textMaxPixels, wxGBPosition(1,1), wxDefaultSpan, wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxRIGHT, PADDING); sizer->Add(spinSat, wxGBPosition(2,1), wxDefaultSpan, wxALIGN_LEFT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxRIGHT|wxBOTTOM, PADDING); sizer->SetFlexibleDirection(wxHORIZONTAL); sizer->AddGrowableCol(1); sizer->AddGrowableCol(0); SetSizerAndFit(sizer); setModel(NULL); } void PreProcessPane::setModel(ClusterModel* model) { this->model = model; ignore(); Enable(model != NULL); spinReps->Enable(model != NULL); textMaxPixels->Enable(model != NULL); spinSat->Enable(model != NULL); if (model != NULL) { watch(model); notifyNumRepetitionsChange(); notifyMaxPixelsChange(); notifySaturationThresholdChange(); } } void PreProcessPane::notifyNumRepetitionsChange() { /* pre-condition */ assert (model != NULL); spinReps->SetValue(model->getNumRepetitions()); } void PreProcessPane::notifyMaxPixelsChange() { /* pre-condition */ assert (model != NULL); wxString maxPixels; maxPixels << model->getMaxPixels(); textMaxPixels->SetValue(maxPixels); } void PreProcessPane::notifySaturationThresholdChange() { /* pre-condition */ assert (model != NULL); spinSat->SetValue(intround(model->getSaturationThreshold()*255.0f)); } void PreProcessPane::OnSpinReps(wxSpinEvent& evt) { if (model != NULL) { model->setNumRepetitions(evt.GetPosition()); } } void PreProcessPane::OnSpinSat(wxSpinEvent& evt) { if (model != NULL) { model->setSaturationThreshold(evt.GetPosition()/255.0f); } } void PreProcessPane::OnTextMaxPixels(wxCommandEvent& evt) { if (model != NULL && textMaxPixels != NULL) { unsigned long n; if (textMaxPixels->GetValue().ToULong(&n)) { model->setMaxPixels(n); } } } void PreProcessPane::OnHelp(wxHelpEvent& evt) { Help::show(530); } BEGIN_EVENT_TABLE(PreProcessPane, Pane) EVT_SPINCTRL(ID_SPIN_REPS, PreProcessPane::OnSpinReps) EVT_SPINCTRL(ID_SPIN_SAT, PreProcessPane::OnSpinSat) EVT_TEXT(ID_TEXT_MAX_PIXELS, PreProcessPane::OnTextMaxPixels) EVT_HELP(wxID_ANY, PreProcessPane::OnHelp) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/ThumbPane.hpp0000644000175000001440000000355112236200473015764 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_THUMBPANE_HPP #define INDII_TINT_GUI_THUMBPANE_HPP #include "ThumbHSL.hpp" #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "../../image/ImageResource.hpp" #include "../../gui/Pane.hpp" #include "wx/scrolwin.h" #include "wx/panel.h" #include "wx/button.h" #include "wx/bmpbuttn.h" #include namespace indii { /** * Preview pane. */ class ThumbPane : public wxScrolledWindow, public ClusterModelObserver { public: /** * Constructor. * * @param parent Parent. */ ThumbPane(wxWindow* parent); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); /** * Add button event. */ void OnButtonAdd(wxCommandEvent& evt); /** * Subtract button event. */ void OnButtonSub(wxCommandEvent& evt); /** * Handle resize event. */ void OnSize(wxSizeEvent& evt); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); /** * Handle number of clusters change. */ virtual void notifyNumClustersChange(); private: /** * Update layout. */ void updateLayout(); /** * Cluster model. */ ClusterModel* model; /** * Thumbnails. */ std::vector thumbs; /* * Controls */ #ifdef __WXMSW__ wxButton *butAdd, *butSub; #else wxBitmapButton *butAdd, *butSub; #endif /* * Control ids. */ enum ID { ID_BUT_ADD, ID_BUT_SUB }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/TintApp.cpp0000644000175000001440000000201112236200473015441 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "TintApp.hpp" #include "TintWindow.hpp" #include "../images/tint.hpp" #include "../../gui/Splash.hpp" #include "wx/splash.h" using namespace indii; INDII_IMPLEMENT_APP(TintApp) void TintApp::splash() { tint_initialize_images(); wxSplashScreen* splash = new wxSplashScreen(Splash(_img_tint_splash), wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, 5000, NULL, -1); } indii::Window* TintApp::open(const wxString& file) { return new TintWindow(NULL, file, TintWindow::STANDALONE, this); } indii::Window* TintApp::open() { return new TintWindow(NULL, TintWindow::STANDALONE, this); } BEGIN_EVENT_TABLE(TintApp, App) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/SpectrumImage.hpp0000644000175000001440000000354412236200473016650 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_SPECTRUMIMAGE_HPP #define INDII_TINT_GUI_SPECTRUMIMAGE_HPP #include "../../image/ImageResource.hpp" #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "wx/panel.h" #include "wx/control.h" #include "wx/bitmap.h" #include "wx/dcclient.h" namespace indii { /** * Spectrum image. */ class SpectrumImage : public wxPanel, public ClusterModelObserver { public: /** * Types of spectra. */ enum Type { H, S, L, A }; /** * Constructor. * * @param parent Parent window. * @param cluster Cluster number to which this thumbnail pertains. */ SpectrumImage(wxWindow *parent, const unsigned int cluster, const Type type); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); virtual void notifyNumClustersChange(); virtual void notifyClusterChange(const unsigned int i); /** * Handle paint event. */ void OnPaint(wxPaintEvent& evt); private: /** * Image resource manager. */ ImageResource* res; /** * Cluster model. */ ClusterModel* model; /** * Cluster number. */ unsigned int cluster; /** * Type. */ Type type; /** * Colour layer of thumbnail. */ wxBitmap fg; /** * Is foreground prepared? */ bool fgPrepared; /** * Prepare foreground. */ void prepareForeground(); DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/TintApp.hpp0000644000175000001440000000130112236200473015447 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_TINTAPP_HPP #define INDII_TINT_GUI_TINTAPP_HPP #include "../../gui/App.hpp" namespace indii { /** * Tintii app. */ class TintApp : public App { protected: virtual void splash(); virtual Window* open(const wxString& file); virtual Window* open(); private: DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/TintDocument.hpp0000644000175000001440000000243712236200473016520 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_TINTDOCUMENT_HPP #define INDII_TINT_GUI_TINTDOCUMENT_HPP #include "../model/ClusterModel.hpp" #include "../../gui/Document.hpp" #include "wx/aui/aui.h" namespace indii { /** * Image document. */ class TintDocument : public Document { public: /** * Constructor. * * @param parent Parent. * @param res Image resource. * @param model Cluster model. */ TintDocument(wxWindow* parent, ImageResource* res, ClusterModel* model); /** * Constructor. * * @param parent Parent. * @param path Path of image to open. */ TintDocument(wxWindow* parent, const wxString& path); /** * Destructor. */ virtual ~TintDocument(); protected: /** * Image resource. */ ImageResource* res; /** * Cluster model. */ ClusterModel* model; private: /** * Do we own the model and image resource? */ bool own; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/PostProcessPane.cpp0000644000175000001440000001015512236200473017162 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "PostProcessPane.hpp" #include "../../gui/Help.hpp" #include "wx/wx.h" #include "wx/gbsizer.h" using namespace indii; #define SLIDER_RES 4096.0f PostProcessPane::PostProcessPane(wxWindow* parent) : Pane(parent), model(NULL) { static const int PADDING = 4; wxGridBagSizer* sizer = new wxGridBagSizer(); slideSatDecay = new wxSlider(this, ID_SLIDE_SAT_DECAY, 0, 0, SLIDER_RES, wxDefaultPosition, wxSize(120,-1)); slideSatSoft = new wxSlider(this, ID_SLIDE_SAT_SOFT, 0, 0, SLIDER_RES, wxDefaultPosition, wxSize(120,-1)); slideHard = new wxSlider(this, ID_SLIDE_HARD, 0, 0, SLIDER_RES, wxDefaultPosition, wxSize(120,-1)); wxStaticText *labelSatDecay, *labelSatSoft, *labelHard; labelSatDecay = new wxStaticText(this, -1, _("Decay")); labelSatSoft = new wxStaticText(this, -1, _("Edge")); labelHard = new wxStaticText(this, -1, _("Hardness")); sizer->Add(labelSatDecay, wxGBPosition(0,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT, PADDING); sizer->Add(labelSatSoft, wxGBPosition(1,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT, PADDING); sizer->Add(labelHard, wxGBPosition(2,0), wxDefaultSpan, wxALIGN_RIGHT|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT|wxBOTTOM, PADDING); sizer->Add(slideSatDecay, wxGBPosition(0,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT, PADDING); sizer->Add(slideSatSoft, wxGBPosition(1,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT, PADDING); sizer->Add(slideHard, wxGBPosition(2,1), wxDefaultSpan, wxALIGN_LEFT|wxEXPAND|wxTOP|wxRIGHT|wxBOTTOM, PADDING); sizer->SetFlexibleDirection(wxHORIZONTAL); sizer->AddGrowableCol(1); SetSizerAndFit(sizer); setModel(NULL); } void PostProcessPane::setModel(ClusterModel* model) { this->model = model; ignore(); Enable(model != NULL); /* must explicitly disable all controls, not just panel, on Mac */ slideSatDecay->Enable(model != NULL); slideSatSoft->Enable(model != NULL); slideHard->Enable(model != NULL); if (model != NULL) { watch(model); notifySaturationDecayChange(); notifySaturationSoftnessChange(); notifyIsHardChange(); } } void PostProcessPane::notifySaturationDecayChange() { /* pre-condition */ assert (model != NULL); int val = intround(model->getSaturationDecay()*SLIDER_RES); if (slideSatDecay->GetValue() != val) { slideSatDecay->SetValue(val); } } void PostProcessPane::notifySaturationSoftnessChange() { /* pre-condition */ assert (model != NULL); int val = intround(model->getSaturationSoftness()*SLIDER_RES); if (slideSatSoft->GetValue() != val) { slideSatSoft->SetValue(val); } } void PostProcessPane::notifyIsHardChange() { /* pre-condition */ assert (model != NULL); int val = intround(std::pow(model->getHard(), 0.25f)*SLIDER_RES); if (slideHard->GetValue() != val) { slideHard->SetValue(val); } } void PostProcessPane::OnSlideSatDecay(wxScrollEvent& evt) { if (model != NULL) { model->setSaturationDecay(slideSatDecay->GetValue()/SLIDER_RES); } } void PostProcessPane::OnSlideSatSoft(wxScrollEvent& evt) { if (model != NULL) { model->setSaturationSoftness(slideSatSoft->GetValue()/SLIDER_RES); } } void PostProcessPane::OnSlideHard(wxScrollEvent& evt) { if (model != NULL) { model->setHard(std::pow(slideHard->GetValue()/SLIDER_RES, 4.0f)); } } void PostProcessPane::OnHelp(wxHelpEvent& evt) { Help::show(540); } BEGIN_EVENT_TABLE(PostProcessPane, Pane) EVT_COMMAND_SCROLL(ID_SLIDE_SAT_DECAY, PostProcessPane::OnSlideSatDecay) EVT_COMMAND_SCROLL(ID_SLIDE_SAT_SOFT, PostProcessPane::OnSlideSatSoft) EVT_COMMAND_SCROLL(ID_SLIDE_HARD, PostProcessPane::OnSlideHard) EVT_HELP(wxID_ANY, PostProcessPane::OnHelp) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/ThumbHSL.cpp0000644000175000001440000001506012236200473015520 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ThumbHSL.hpp" #include "wx/wx.h" #include "wx/gbsizer.h" using namespace indii; #define SPOW 1.0f #define SLIDER_RES 4096.0f ThumbHSL::ThumbHSL(wxWindow *parent, const unsigned int cluster) : wxPanel(parent), model(NULL), cluster(cluster) { static const int PADDING = 4; wxGridBagSizer* sizer = new wxGridBagSizer(0, 0); wxGridBagSizer* slideSizer = new wxGridBagSizer(0, 0); thumb = new ThumbImage(this, cluster); slideH = new wxSlider(this, ID_SLIDE_H, 0, -SLIDER_RES, SLIDER_RES, wxDefaultPosition, wxSize(256, -1), wxSL_HORIZONTAL); slideS = new wxSlider(this, ID_SLIDE_S, 0, -SLIDER_RES, SLIDER_RES, wxDefaultPosition, wxSize(256, -1), wxSL_HORIZONTAL); slideL = new wxSlider(this, ID_SLIDE_L, 0, -SLIDER_RES, SLIDER_RES, wxDefaultPosition, wxSize(256, -1), wxSL_HORIZONTAL); //slideA = new wxSlider(this, ID_SLIDE_A, 0, 0, 255, wxDefaultPosition, // wxSize(256,-1), wxSL_HORIZONTAL); spectH = new SpectrumImage(this, cluster, SpectrumImage::H); spectS = new SpectrumImage(this, cluster, SpectrumImage::S); spectL = new SpectrumImage(this, cluster, SpectrumImage::L); //spectA = new SpectrumImage(this, cluster, SpectrumImage::A); sizer->Add(thumb, wxGBPosition(0, 0), wxDefaultSpan, wxALIGN_TOP | wxALL, PADDING); slideSizer->Add(spectH, wxGBPosition(1, 0), wxDefaultSpan, wxALIGN_TOP); slideSizer->Add(spectS, wxGBPosition(3, 0), wxDefaultSpan, wxALIGN_TOP); slideSizer->Add(spectL, wxGBPosition(5, 0), wxDefaultSpan, wxALIGN_TOP); //slideSizer->Add(spectA, wxGBPosition(7,0), wxDefaultSpan, wxALIGN_TOP); slideSizer->Add(slideH, wxGBPosition(0, 0), wxDefaultSpan, wxALIGN_TOP | wxEXPAND | wxTOP, PADDING); slideSizer->Add(slideS, wxGBPosition(2, 0), wxDefaultSpan, wxALIGN_TOP | wxEXPAND | wxTOP, PADDING); slideSizer->Add(slideL, wxGBPosition(4, 0), wxDefaultSpan, wxALIGN_TOP | wxEXPAND | wxTOP, PADDING); //slideSizer->Add(slideA, wxGBPosition(6,0), wxDefaultSpan, // wxALIGN_TOP|wxEXPAND|wxTOP, PADDING); sizer->Add(slideSizer, wxGBPosition(0, 1), wxDefaultSpan, wxALIGN_CENTRE_VERTICAL); //sizer->SetFlexibleDirection(wxHORIZONTAL); //sizer->AddGrowableCol(2); SetSizerAndFit(sizer); //unsigned naturalWidth = this->GetSize().GetWidth(); //unsigned naturalHeight = this->GetSize().GetHeight(); //SetMinSize(wxSize(naturalWidth, naturalHeight)); //SetBestSize(wxSize(naturalWidth, naturalHeight)); } void ThumbHSL::setModel(ClusterModel* model) { this->model = model; ignore(); thumb->setModel(model); spectH->setModel(model); spectS->setModel(model); spectL->setModel(model); //spectA->setModel(model); if (model != NULL) { if (cluster < model->getNumClusters()) { if (!model->hasLight(cluster)) { slideH->Disable(); spectH->Disable(); slideS->Disable(); spectS->Disable(); } else if (!model->hasSat(cluster)) { slideH->Disable(); spectH->Disable(); } } watch(model); notifyNumClustersChange(); notifySaturationDecayChange(); notifySaturationSoftnessChange(); } Show(model != NULL && cluster < model->getNumClusters()); } void ThumbHSL::notifyNumClustersChange() { if (cluster < model->getNumClusters()) { notifyHueChange(cluster); notifySatChange(cluster); notifyLightChange(cluster); notifyAlphaChange(cluster); } } void ThumbHSL::notifySaturationDecayChange() { // if (cluster < model->getNumClusters()) { // Refresh(); // } } void ThumbHSL::notifySaturationSoftnessChange() { // if (cluster < model->getNumClusters()) { // Refresh(); // } } void ThumbHSL::notifyClusterChange(const unsigned int i) { notifyHueChange(i); notifySatChange(i); notifyLightChange(i); notifyAlphaChange(i); } void ThumbHSL::notifyHueChange(const unsigned i) { if (i == cluster) { int val = intround(model->getHue(cluster) * SLIDER_RES * 2.0f); if (slideH->GetValue() != val) { slideH->SetValue(val); } } } void ThumbHSL::notifySatChange(const unsigned i) { if (i == cluster) { float s = model->getSat(cluster); float sign = (s < 0.0f) ? -1.0f : 1.0f; int val = intround(sign * SLIDER_RES * std::pow(std::abs(s), 1.0f / SPOW)); if (slideS->GetValue() != val) { slideS->SetValue(val); } if (!model->hasSat(cluster)) { slideH->Disable(); spectH->Disable(); } else if (model->hasLight(cluster)) { slideH->Enable(); spectH->Enable(); } spectH->Refresh(); } } void ThumbHSL::notifyLightChange(const unsigned i) { if (i == cluster) { float l = model->getLight(cluster); int val = intround(SLIDER_RES * l); if (slideL->GetValue() != val) { slideL->SetValue(val); } if (!model->hasLight(cluster)) { slideH->Disable(); spectH->Disable(); slideS->Disable(); spectS->Disable(); } else { if (model->hasSat(cluster)) { slideH->Enable(); spectH->Enable(); } slideS->Enable(); spectS->Enable(); } spectH->Refresh(); spectS->Refresh(); } } void ThumbHSL::notifyAlphaChange(const unsigned i) { //if (i == cluster) { //float a = model->getAlpha(cluster); //int val = static_cast(255.0f*a); //if (slideA->GetValue() != val) { // slideA->SetValue(val); //} //} } void ThumbHSL::OnSlideH(wxScrollEvent& evt) { float h = 0.5f * slideH->GetValue() / SLIDER_RES; h = bound(-0.5f, h, 0.5f); model->setHue(cluster, h); } void ThumbHSL::OnSlideS(wxScrollEvent& evt) { float s = slideS->GetValue() / SLIDER_RES; float sign = (s < 0.0f) ? -1.0f : 1.0f; s = sign * std::pow(std::abs(s), SPOW); s = bound(-1.0f, s, 1.0f); model->setSat(cluster, s); } void ThumbHSL::OnSlideL(wxScrollEvent& evt) { float l = slideL->GetValue() / SLIDER_RES; l = bound(-1.0f, l, 1.0f); model->setLight(cluster, l); } void ThumbHSL::OnSlideA(wxScrollEvent& evt) { //float a = slideA->GetValue()/SLIDER_RES; //a = bound(0.0f, a, 1.0f); //model->setAlpha(cluster, a); } BEGIN_EVENT_TABLE(ThumbHSL, wxPanel) EVT_COMMAND_SCROLL(ID_SLIDE_H, ThumbHSL::OnSlideH) EVT_COMMAND_SCROLL(ID_SLIDE_S, ThumbHSL::OnSlideS) EVT_COMMAND_SCROLL(ID_SLIDE_L, ThumbHSL::OnSlideL) EVT_COMMAND_SCROLL(ID_SLIDE_A, ThumbHSL::OnSlideA) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/ThumbImage.hpp0000644000175000001440000000500712236200473016121 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_THUMBIMAGE_HPP #define INDII_TINT_GUI_THUMBIMAGE_HPP #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "wx/panel.h" #include "wx/control.h" #include "wx/bitmap.h" #include "wx/dcclient.h" namespace indii { /** * Image preview. */ class ThumbImage : public wxControl, public ClusterModelObserver { public: /** * Constructor. * * @param parent Parent window. * @param res Image resource manager. Caller retains ownership. * @param model Cluster model. Caller retains ownership. * @param cluster Cluster number to which this thumbnail pertains. */ ThumbImage(wxWindow *parent, const unsigned int cluster); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); virtual void notifyNumClustersChange(); virtual void notifySaturationDecayChange(); virtual void notifySaturationSoftnessChange(); virtual void notifyClusterChange(const unsigned int i); virtual void notifySatChange(const unsigned i); /** * Handle paint event. */ void OnPaint(wxPaintEvent& evt); /** * Handle left mouse button down event. */ void OnLeftDown(wxMouseEvent& evt); /** * Handle left mouse button up event. */ void OnLeftUp(wxMouseEvent& evt); /** * Handle mouse enter event. */ void OnEnter(wxMouseEvent& evt); /** * Handle mouse leave event. */ void OnLeave(wxMouseEvent& evt); private: /** * Cluster model. */ ClusterModel* model; /** * Cluster number. */ unsigned int cluster; /** * Is thumbnail active? (in active state, even if cluster not selected, * e.g. on mouse button down event). */ bool isActive; /** * Is mouse over icon? */ bool isOver; /** * Colour layer of thumbnail. */ wxBitmap fg; /** * B&W layer of thumbnail. */ wxBitmap bg; /** * Alpha channel of thumbnail. */ channel a; /** * Is foreground prepared? */ bool fgPrepared; /** * Prepare background. */ void prepareBackground(); /** * Prepare foreground. */ void prepareForeground(); DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/SpectrumImage.cpp0000644000175000001440000000661012236200473016640 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "SpectrumImage.hpp" #include "../../image/ImageManipulation.hpp" #include "wx/dcmemory.h" #include "wx/dcbuffer.h" #define ICON_HEIGHT 4 #define ICON_WIDTH 256 using namespace indii; SpectrumImage::SpectrumImage(wxWindow *parent, const unsigned int cluster, const Type type) : wxPanel(parent), model(NULL), cluster(cluster), type(type), fg(ICON_WIDTH,ICON_HEIGHT) { //SetBackgroundStyle(wxBG_STYLE_CUSTOM); SetSize(ICON_WIDTH+2,ICON_HEIGHT+2); SetMinSize(wxSize(ICON_WIDTH+2,ICON_HEIGHT+2)); fgPrepared = false; } void SpectrumImage::setModel(ClusterModel* model) { this->model = model; ignore(); if (model != NULL) { watch(model); fgPrepared = false; Refresh(); } } void SpectrumImage::notifyNumClustersChange() { /* pre-condition */ assert (model != NULL); if (cluster < model->getNumClusters()) { fgPrepared = false; Refresh(); } } void SpectrumImage::notifyClusterChange(const unsigned int i) { // } void SpectrumImage::OnPaint(wxPaintEvent& evt) { /* pre-condition */ assert (model != NULL); if (cluster < model->getNumClusters()) { if (!fgPrepared) { prepareForeground(); } wxPaintDC dc(this); if (IsEnabled()) { dc.SetBackground(wxBrush(wxColour(99,99,99))); dc.Clear(); dc.DrawBitmap(fg, 1, 1); } else { dc.SetBackground(wxBrush(wxColour(200,200,200))); dc.Clear(); } } } void SpectrumImage::prepareForeground() { ColourSpace cs; ColourSpace::rgb_t rgb(3); ColourSpace::hsl_t hsl1(3), hsl2(3); int x, y; float adj, val, a; wxMemoryDC dc(fg); dc.Clear(); wxColour c(model->getColour(cluster)); wxImage img(ICON_WIDTH, ICON_HEIGHT); img.InitAlpha(); rgb(0) = c.Red()/255.0f; rgb(1) = c.Green()/255.0f; rgb(2) = c.Blue()/255.0f; cs.rgb2hsl(rgb, hsl1); /* defaults */ hsl2 = hsl1; a = 1.0f; #pragma omp for schedule(dynamic) for (x = 0; x < ICON_WIDTH; ++x) { switch (type) { case H: adj = -0.5f + static_cast(x)/ICON_WIDTH; val = fmod(1.0f + hsl1(0) + adj, 1.0f); hsl2(0) = val; hsl2(1) = 0.8f; hsl2(2) = 0.75f; break; case S: adj = (2.0f*x - ICON_WIDTH)/ICON_WIDTH; val = bound(0.0f, adj + hsl1(1), 1.0f); hsl2(0) = hsl1(0); hsl2(1) = val; hsl2(2) = 0.75; break; case L: adj = (2.0f*x - ICON_WIDTH)/ICON_WIDTH; val = bound(0.0f, adj + hsl1(2), 1.0f); hsl2(0) = hsl1(0); hsl2(1) = 0.0f; hsl2(2) = val; break; case A: adj = x/ICON_WIDTH; val = bound(0.0f, adj, 1.0f); a = static_cast(val); break; } cs.hsl2rgb(hsl2, rgb); for (y = 0; y < ICON_HEIGHT; y++) { img.SetRGB(x, y, uround(rgb(0)), uround(rgb(1)), uround(rgb(2))); img.SetAlpha(x, y, uround(a)); } } dc.DrawBitmap(img, 0, 0, true); fgPrepared = true; } BEGIN_EVENT_TABLE(SpectrumImage, wxPanel) EVT_PAINT(SpectrumImage::OnPaint) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/TintDocument.cpp0000644000175000001440000000205112236200473016503 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "TintDocument.hpp" #include "../../image/FileImageResource.hpp" using namespace indii; TintDocument::TintDocument(wxWindow* parent, ImageResource* res, ClusterModel* model) : Document(parent, res, model), res(res), model(model), own(false) { model->setForDialog(); } TintDocument::TintDocument(wxWindow* parent, const wxString& path) : Document(parent), own(true) { res = new FileImageResource(path); model = new ClusterModel(res); model->prepare(); model->cluster(); watch(model); set(res, model); } TintDocument::~TintDocument() { if (own) { delete model; delete res; } } BEGIN_EVENT_TABLE(TintDocument, Document) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/PreProcessPane.hpp0000644000175000001440000000317212236200473016771 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_PREPROCESSPANE_HPP #define INDII_TINT_GUI_PREPROCESSPANE_HPP #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "../../gui/Pane.hpp" #include "wx/spinctrl.h" #include "wx/textctrl.h" namespace indii { /** * Preprocess settings pane. */ class PreProcessPane : public Pane, public ClusterModelObserver { public: /** * Constructor. * * @param parent Parent. */ PreProcessPane(wxWindow* parent); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); /* * Handle model changes. */ virtual void notifyNumRepetitionsChange(); virtual void notifyMaxPixelsChange(); virtual void notifySaturationThresholdChange(); /* * Handle control events. */ void OnSpinReps(wxSpinEvent& evt); void OnSpinSat(wxSpinEvent& evt); void OnTextMaxPixels(wxCommandEvent& evt); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); private: /** * Cluster model. */ ClusterModel* model; /* * Controls. */ wxSpinCtrl *spinReps, *spinSat; wxTextCtrl *textMaxPixels; /* * Control ids. */ enum ID { ID_SPIN_REPS, ID_SPIN_SAT, ID_TEXT_MAX_PIXELS, }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/TintWindow.hpp0000644000175000001440000000502212236200473016202 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_TINTWINDOW_HPP #define INDII_TINT_GUI_TINTWINDOW_HPP #include "ThumbPane.hpp" #include "PreProcessPane.hpp" #include "PostProcessPane.hpp" #include "TintDocument.hpp" #include "../model/ClusterModel.hpp" #include "../../image/ImageResource.hpp" #include "../../gui/Window.hpp" #include "../../gui/WindowObserver.hpp" #include "../../gui/PreviewPane.hpp" #include "../../gui/ChannelMixerPane.hpp" #include "wx/frame.h" #include "wx/aui/aui.h" namespace indii { /** * Main window. */ class TintWindow : public Window { public: /** * Constructor. * * @param parent Parent. * @param mode Mode of operation. * @param obs Enclosing application, if not embedded mode. */ TintWindow(wxWindow* parent, const Mode mode = EMBED, WindowObserver* obs = NULL); /** * Constructor. * * @param parent Parent. * @param res Image resource. * @param model Cluster model. * @param mode Mode of operation. * @param obs Enclosing application, if not embedded mode. */ TintWindow(wxWindow* parent, ImageResource* res, ClusterModel* model, const Mode mode = EMBED, WindowObserver* obs = NULL); /** * Constructor. * * @param parent Parent. * @param path Path of image to open. * @param mode Mode of operation. * @param obs Enclosing application, if not embedded mode. */ TintWindow(wxWindow* parent, const wxString& path, const Mode = STANDALONE, WindowObserver* obs = NULL); virtual Document* open(const wxString& file); virtual void layoutDefault(); virtual void setModel(Model* model); virtual bool isShown(const unsigned i); virtual void show(const unsigned i, const bool show); protected: virtual void initPanes(); using Window::enable; virtual void enable(const bool enable); private: /** * Enclosing application. */ WindowObserver* obs; /* * Panes. */ ThumbPane* thumbPane; PreProcessPane* prePane; PostProcessPane* postPane; ChannelMixerPane* mixerPane; /** * Ids of messages displayed in the info bar. */ enum { /** * Instructions on how to use interface. */ MSG_INTERFACE }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/ThumbImage.cpp0000644000175000001440000001505412236200473016117 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ThumbImage.hpp" #include "../../image/ImageManipulation.hpp" #include "wx/dcmemory.h" #include "wx/dcbuffer.h" #define ICON_SIZE 100 #define THUMB_SIZE 80 using namespace indii; ThumbImage::ThumbImage(wxWindow *parent, const unsigned int cluster) : wxControl(parent, -1, wxDefaultPosition, wxDefaultSize, wxBORDER_NONE), model( NULL), cluster(cluster), isActive(false), isOver(false), fg(ICON_SIZE, ICON_SIZE), bg(ICON_SIZE, ICON_SIZE) { SetBackgroundStyle(wxBG_STYLE_CUSTOM); SetSize(ICON_SIZE, ICON_SIZE); SetMinSize(wxSize(ICON_SIZE, ICON_SIZE)); fgPrepared = false; } void ThumbImage::setModel(ClusterModel* model) { this->model = model; ignore(); if (model != NULL) { watch(model); prepareBackground(); notifyNumClustersChange(); notifySaturationDecayChange(); notifySaturationSoftnessChange(); } } void ThumbImage::notifyNumClustersChange() { if (cluster < model->getNumClusters()) { isActive = model->isShown(cluster); fgPrepared = false; Refresh(); } } void ThumbImage::notifySaturationDecayChange() { if (cluster < model->getNumClusters()) { fgPrepared = false; Refresh(); } } void ThumbImage::notifySaturationSoftnessChange() { if (cluster < model->getNumClusters()) { fgPrepared = false; Refresh(); } } void ThumbImage::notifyClusterChange(const unsigned int i) { // } void ThumbImage::notifySatChange(const unsigned int i) { /* pre-condition */ assert(model != NULL); if (cluster == i && model->isShown(cluster) != isActive) { isActive = model->isShown(cluster); Refresh(); } } void ThumbImage::OnPaint(wxPaintEvent& evt) { /* pre-condition */ assert(model != NULL); if (cluster < model->getNumClusters()) { if (!fgPrepared) { prepareForeground(); } int x, y; x = (ICON_SIZE - THUMB_SIZE) / 2; y = (ICON_SIZE - THUMB_SIZE) / 2; #ifndef __WXGTK__ double contentScale = this->GetContentScaleFactor(); #else double contentScale = 1.0; #endif int thumbSize = THUMB_SIZE * contentScale; wxPaintDC dc(this); #ifndef WX_28 dc.Clear(); #endif if (isActive) { dc.SetBrush(wxBrush(*wxWHITE)); dc.SetPen(wxPen(model->getColour(cluster), 3)); } else if (isOver) { dc.SetBrush(wxBrush(*wxWHITE)); dc.SetPen(wxPen(wxColor(128,128,128), 2)); } else { dc.SetBrush(wxBrush(*wxWHITE)); dc.SetPen(wxPen(wxColor(128,128,128), 1)); } dc.DrawRoundedRectangle(2, 2, ICON_SIZE - 4, ICON_SIZE - 4, 10); #ifdef __WXGTK__ dc.DrawBitmap(bg, x, y); dc.DrawBitmap(fg, x, y); #else wxBitmap bmp1(bg); wxMemoryDC mem1; mem1.SelectObject(bmp1); wxBitmap bmp2(fg); wxMemoryDC mem2; mem2.SelectObject(bmp2); dc.StretchBlit(x, y, THUMB_SIZE, THUMB_SIZE, &mem1, 0, 0, thumbSize, thumbSize); dc.StretchBlit(x, y, THUMB_SIZE, THUMB_SIZE, &mem2, 0, 0, thumbSize, thumbSize); #endif } } void ThumbImage::OnLeftDown(wxMouseEvent& evt) { isActive = !isActive; Refresh(); } void ThumbImage::OnLeftUp(wxMouseEvent& evt) { /* pre-condition */ assert(model != NULL); isActive = !model->isShown(cluster); Refresh(); Update(); model->show(cluster, isActive); } void ThumbImage::OnEnter(wxMouseEvent& evt) { isOver = true; Refresh(); } void ThumbImage::OnLeave(wxMouseEvent& evt) { isOver = false; Refresh(); } void ThumbImage::prepareBackground() { /* pre-condition */ assert(model != NULL); /* sizes, dimensions */ ImageResource* res = model->getImageResource(); double ratio = static_cast(res->getWidth()) / res->getHeight(); #ifndef __WXGTK__ double contentScale = this->GetContentScaleFactor(); #else double contentScale = 1.0; #endif int thumbSize = THUMB_SIZE * contentScale; /* crop */ wxImage* img; wxRect crop; if (ratio >= 1.0) { img = res->getDisplay(intround(thumbSize * ratio)); crop = wxRect((img->GetWidth() - img->GetHeight()) / 2, 0, thumbSize, thumbSize); } else { img = res->getDisplay(thumbSize); crop = wxRect(0, (img->GetHeight() - img->GetWidth()) / 2, thumbSize, thumbSize); } bg = wxBitmap(img->GetSubImage(crop).ConvertToGreyscale()); } void ThumbImage::prepareForeground() { /* pre-condition */ assert(model != NULL); /* sizes, dimensions */ ImageResource* res = model->getImageResource(); #ifndef __WXGTK__ double contentScale = this->GetContentScaleFactor(); #else double contentScale = 1.0; #endif int thumbSize = THUMB_SIZE * contentScale; int scale = std::max(res->fitScale(thumbSize, thumbSize) - 1, 1); int thumbWidth = res->getWidth() / scale; int thumbHeight = res->getHeight() / scale; /* rectangle for crop */ wxRect crop; if (thumbWidth > thumbHeight) { /* crop width */ crop = wxRect((thumbWidth - thumbHeight) / 2, 0, thumbHeight, thumbHeight); } else if (thumbHeight > thumbWidth) { /* crop height */ crop = wxRect(0, (thumbHeight - thumbWidth) / 2, thumbWidth, thumbWidth); } else { /* no crop */ crop = wxRect(0, 0, thumbWidth, thumbHeight); } /* draw "blob" foreground */ wxBitmap fg1(crop.width, crop.height); // ,32? wxBitmap fg2(crop.width, crop.height); // ,32? wxMemoryDC dc1(fg1); wxMemoryDC dc2(fg2); wxColour c1(model->getColour(cluster)); wxColour c2; wxImage::RGBValue rgb(c1.Red(), c1.Green(), c1.Blue()); wxImage::HSVValue hsv; hsv = wxImage::RGBtoHSV(rgb); hsv.value *= 0.9; rgb = wxImage::HSVtoRGB(hsv); c2.Set(rgb.red, rgb.green, rgb.blue); dc1.SetBackground(wxBrush(c1)); dc2.SetBackground(wxBrush(c2)); dc1.Clear(); dc2.Clear(); wxImage img1(fg1.ConvertToImage()); sparse_mask mask(model->calcMask(cluster, crop, scale)); hide(img1); show(img1, mask); dc2.DrawBitmap(img1, 0, 0, true); wxImage img2(fg2.ConvertToImage()); a.resize(crop.height, crop.width); model->calcAlpha(cluster, crop, scale, a); applyAlpha(img2, a); fg = wxBitmap(img2.Scale(thumbSize, thumbSize, wxIMAGE_QUALITY_HIGH)); fgPrepared = true; } BEGIN_EVENT_TABLE(ThumbImage, wxWindow) EVT_PAINT(ThumbImage::OnPaint) //EVT_LEFT_DOWN(ThumbImage::OnLeftDown) EVT_LEFT_UP(ThumbImage::OnLeftUp) EVT_ENTER_WINDOW(ThumbImage::OnEnter) EVT_LEAVE_WINDOW(ThumbImage::OnLeave) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/TintWindow.cpp0000644000175000001440000001724612236200473016210 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "TintWindow.hpp" #include "TintDocument.hpp" #include "../../gui/Window.hpp" #include "../../gui/WindowMenu.hpp" #include "../../reg/Components.hpp" #include "../../image/FileImageResource.hpp" #include "../../../gnome/gnome.hpp" #include "wx/config.h" #include "wx/button.h" #include "wx/sizer.h" #include "wx/textdlg.h" #include "wx/filedlg.h" #include "wx/msgdlg.h" #include "wx/dcmemory.h" #include "wx/cshelp.h" #include "wx/filename.h" #include "wx/stdpaths.h" using namespace indii; TintWindow::TintWindow(wxWindow* parent, const Mode mode, WindowObserver* obs) : Window(parent, mode, obs) { init(); enable(); if (mode == STANDALONE) { infoBar->showStartMessage(); } } TintWindow::TintWindow(wxWindow* parent, ImageResource* res, ClusterModel* model, const Mode mode, WindowObserver* obs) : Window(parent, mode, obs) { if (mode == STANDALONE) { TintDocument* doc = new TintDocument(notebook, res, model); init(doc); } else { this->doc = new TintDocument(main, res, model); init(this->doc); } setModel(model); enable(); if (mode == EMBED) { infoBar->showInfoMessage(_("Select one or more thumbnails to the right to restore colour to the image, then fine-tune the effect with the sliders."), MSG_INTERFACE); } } TintWindow::TintWindow(wxWindow* parent, const wxString& path, const Mode mode, WindowObserver* obs) : Window(parent, mode, obs) { Document* doc = open(path); init(doc); setModel(doc->getModel()); enable(); infoBar->showInfoMessage(_("Select one or more thumbnails to the right to restore colour to the image, then fine-tune the effect with the sliders."), MSG_INTERFACE); } Document* TintWindow::open(const wxString& file) { infoBar->showInfoMessage(_("Select one or more thumbnails to the right to restore colour to the image, then fine-tune the effect with the sliders."), MSG_INTERFACE); if (mode == STANDALONE) { return new TintDocument(notebook, file); } else { return new TintDocument(main, file); } } void TintWindow::layoutDefault() { wxAuiPaneInfo& thumbPaneInfo = manager->GetPane(thumbPane); thumbPane->Fit(); thumbPaneInfo.FloatingSize(thumbPane->GetMinSize().GetWidth(), thumbPane->GetMinSize().GetHeight() + EXTRA_PANE_HEIGHT); thumbPaneInfo.Right(); thumbPaneInfo.Layer(2); thumbPaneInfo.Dock(); thumbPaneInfo.Show(); wxAuiPaneInfo& prePaneInfo = manager->GetPane(prePane); prePane->Fit(); prePaneInfo.FloatingSize(prePane->GetMinSize().GetWidth(), prePane->GetMinSize().GetHeight() + EXTRA_PANE_HEIGHT); prePaneInfo.Bottom(); prePaneInfo.Position(2); prePaneInfo.Layer(1); prePaneInfo.Row(1); prePaneInfo.Dock(); prePaneInfo.Show(false); wxAuiPaneInfo& postPaneInfo = manager->GetPane(postPane); postPane->Fit(); postPaneInfo.FloatingSize(postPane->GetMinSize().GetWidth(), postPane->GetMinSize().GetHeight() + EXTRA_PANE_HEIGHT); postPaneInfo.Bottom(); postPaneInfo.Position(1); postPaneInfo.Layer(1); postPaneInfo.Row(1); postPaneInfo.Dock(); postPaneInfo.Show(); wxAuiPaneInfo& mixerPaneInfo = manager->GetPane(mixerPane); mixerPane->Fit(); mixerPaneInfo.FloatingSize(mixerPane->GetMinSize().GetWidth(), mixerPane->GetMinSize().GetHeight() + EXTRA_PANE_HEIGHT); mixerPaneInfo.Bottom(); mixerPaneInfo.Position(0); mixerPaneInfo.Layer(1); mixerPaneInfo.Row(1); mixerPaneInfo.Dock(); mixerPaneInfo.Show(); manager->Update(); } void TintWindow::initPanes() { int width, height; wxAuiPaneInfo paneInfo; paneInfo.DefaultPane(); paneInfo.CloseButton(true); //paneInfo.PinButton(true); paneInfo.PaneBorder(true); paneInfo.CaptionVisible(true); /* thumbnail pane */ thumbPane = new ThumbPane(main); width = MIN_THUMB_PANE_WIDTH; height = 512; #ifndef WX_28 paneInfo.Name(_("Thumbs")); #else paneInfo.Name(wxString("Thumbs", wxConvUTF8)); #endif paneInfo.MinSize(wxSize(width, 110)); paneInfo.BestSize(wxSize(width, height)); paneInfo.FloatingSize(width + EXTRA_PANE_WIDTH, height + EXTRA_PANE_HEIGHT); paneInfo.Caption(_("Thumbs")); paneInfo.Right(); paneInfo.Layer(2); manager->AddPane(thumbPane, paneInfo); /* preprocessing pane */ prePane = new PreProcessPane(main); width = prePane->GetMinSize().GetWidth(); height = prePane->GetMinSize().GetHeight(); #ifndef WX_28 paneInfo.Name(_("Preprocessing")); #else paneInfo.Name(wxString("Preprocessing", wxConvUTF8)); #endif paneInfo.MinSize(wxSize(width, height)); paneInfo.BestSize(wxSize(width, height)); paneInfo.FloatingSize(width + EXTRA_PANE_WIDTH, height + EXTRA_PANE_HEIGHT); paneInfo.Caption(_("Preprocessing")); paneInfo.Bottom(); paneInfo.Position(2); paneInfo.Layer(1); paneInfo.Show(false); manager->AddPane(prePane, paneInfo); paneInfo.Show(true); /* postprocessing pane */ postPane = new PostProcessPane(main); width = postPane->GetMinSize().GetWidth(); height = postPane->GetMinSize().GetHeight(); #ifndef WX_28 paneInfo.Name(_("Postprocessing")); #else paneInfo.Name(wxString("Postprocessing", wxConvUTF8)); #endif paneInfo.MinSize(wxSize(width, height)); paneInfo.BestSize(wxSize(width, height)); paneInfo.FloatingSize(width + EXTRA_PANE_WIDTH, height + EXTRA_PANE_HEIGHT); paneInfo.Caption(_("Postprocessing")); paneInfo.Bottom(); paneInfo.Position(1); paneInfo.Layer(1); manager->AddPane(postPane, paneInfo); /* channel mixer pane */ mixerPane = new ChannelMixerPane(main); width = mixerPane->GetMinSize().GetWidth(); height = mixerPane->GetMinSize().GetHeight(); #ifndef WX_28 paneInfo.Name(_("Mixer")); #else paneInfo.Name(wxString("Mixer", wxConvUTF8)); #endif paneInfo.MinSize(wxSize(width, height)); paneInfo.BestSize(wxSize(width, height)); paneInfo.FloatingSize(width + EXTRA_PANE_WIDTH, height + EXTRA_PANE_HEIGHT); paneInfo.Caption(_("Channel mixer")); paneInfo.Bottom(); paneInfo.Position(0); paneInfo.Layer(1); manager->AddPane(mixerPane, paneInfo); /* add panes to window menu */ addPane(_("Thumbs pane")); addPane(_("Preprocessing pane")); addPane(_("Postprocessing pane")); addPane(_("Channel mixer pane")); } void TintWindow::enable(const bool enable) { Window::enable(enable); if (!enable) { thumbPane->setModel(NULL); prePane->setModel(NULL); postPane->setModel(NULL); mixerPane->setModel(NULL); } } void TintWindow::setModel(Model* model) { ClusterModel* cmodel = dynamic_cast(model); thumbPane->setModel(cmodel); prePane->setModel(cmodel); postPane->setModel(cmodel); mixerPane->setModel(cmodel); } bool TintWindow::isShown(const unsigned i) { /* pre-condition */ assert (i < 4); switch (i) { case 0: return manager->GetPane(thumbPane).IsShown(); case 1: return manager->GetPane(prePane).IsShown(); case 2: return manager->GetPane(postPane).IsShown(); case 3: return manager->GetPane(mixerPane).IsShown(); default: return false; } } void TintWindow::show(const unsigned i, const bool show) { /* pre-condition */ assert (i < 4); switch (i) { case 0: manager->GetPane(thumbPane).Show(show); break; case 1: manager->GetPane(prePane).Show(show); break; case 2: manager->GetPane(postPane).Show(show); break; case 3: manager->GetPane(mixerPane).Show(show); break; } manager->Update(); } BEGIN_EVENT_TABLE(TintWindow, Window) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/ThumbHSL.hpp0000644000175000001440000000420012236200473015517 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_THUMBHSL_HPP #define INDII_TINT_GUI_THUMBHSL_HPP #include "ThumbImage.hpp" #include "SpectrumImage.hpp" #include "../../image/ImageResource.hpp" #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "wx/panel.h" #include "wx/slider.h" namespace indii { /** * Thumbnail with Hue-Saturation-Luminance sliders. */ class ThumbHSL : public wxPanel, public ClusterModelObserver { public: /** * Constructor. * * @param parent Parent window. * @param cluster Cluster number to which this thumbnail pertains. */ ThumbHSL(wxWindow *parent, const unsigned int cluster); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); /* * Handle model changes. */ virtual void notifyNumClustersChange(); virtual void notifySaturationDecayChange(); virtual void notifySaturationSoftnessChange(); virtual void notifyClusterChange(const unsigned int i); virtual void notifyHueChange(const unsigned i); virtual void notifySatChange(const unsigned i); virtual void notifyLightChange(const unsigned i); virtual void notifyAlphaChange(const unsigned i); /* * Slider control events. */ void OnSlideH(wxScrollEvent& evt); void OnSlideS(wxScrollEvent& evt); void OnSlideL(wxScrollEvent& evt); void OnSlideA(wxScrollEvent& evt); private: /** * Cluster model. */ ClusterModel* model; /** * Cluster number. */ unsigned int cluster; /* * Controls. */ wxSlider *slideH, *slideS, *slideL, *slideA; SpectrumImage *spectH, *spectS, *spectL, *spectA; ThumbImage* thumb; /* * Slider control ids. */ enum ID { ID_SLIDE_H, ID_SLIDE_S, ID_SLIDE_L, ID_SLIDE_A }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/gui/ThumbPane.cpp0000644000175000001440000001073112236200473015755 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ThumbPane.hpp" #include "../../gui/Help.hpp" #include "../../../gnome/gnome.hpp" #include "wx/gbsizer.h" #define PADDING 8 using namespace indii; ThumbPane::ThumbPane(wxWindow* parent) : wxScrolledWindow(parent), model(NULL) { unsigned i; /* HSL thumbnails */ ThumbHSL* thumb; for (i = 0; i < 16; i++) { thumb = new ThumbHSL(this, i); thumbs.push_back(thumb); } /* add/remove thumbnail buttons */ #ifndef __WXGTK__ gnome_scale_images(this->GetContentScaleFactor()); #endif #ifdef __WXMSW__ /* wxMSW seems to create invisible, but functional, buttons when classic * theme is active -- just use text buttons instead */ butAdd = new wxButton(this, ID_BUT_ADD, _T("1 More")); butSub = new wxButton(this, ID_BUT_SUB, _T("1 Less")); //butAdd->SetBitmap(*_img_gnome_list_add); //butSub->SetBitmap(*_img_gnome_list_remove); //butAdd->SetLabel(wxEmptyString); //butSub->SetLabel(wxEmptyString); #else butAdd = new wxBitmapButton(this, ID_BUT_ADD, *_img_gnome_list_add, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT|wxBORDER_SIMPLE); butSub = new wxBitmapButton(this, ID_BUT_SUB, *_img_gnome_list_remove, wxDefaultPosition, wxDefaultSize, wxBU_EXACTFIT|wxBORDER_SIMPLE); #endif wxGridBagSizer* buttonSizer = new wxGridBagSizer(0,0); buttonSizer->Add(butAdd, wxGBPosition(0,0), wxDefaultSpan, wxTOP|wxLEFT|wxBOTTOM, PADDING); buttonSizer->Add(butSub, wxGBPosition(0,1), wxDefaultSpan, wxTOP|wxLEFT|wxBOTTOM, PADDING); /* initial layout */ wxFlexGridSizer* sizer = new wxFlexGridSizer(1); for (i = 0; i < 16; i++) { thumbs[i]->Show(false); } sizer->Add(buttonSizer); SetScrollRate(10,10); SetSizer(sizer); int minWidth = thumbs[0]->GetSize().GetWidth() + 30; int minHeight = thumbs[0]->GetSize().GetHeight(); SetClientSize(minWidth, minHeight); FitInside(); } void ThumbPane::setModel(ClusterModel* model) { this->model = model; ignore(); for (unsigned i = 0; i < thumbs.size(); ++i) { thumbs[i]->setModel(model); } Enable(model != NULL); butAdd->Enable(model != NULL); butSub->Enable(model != NULL); if (model != NULL) { watch(model); notifyNumClustersChange(); } } void ThumbPane::updateLayout() { const wxSize& size = GetSize(); const wxSize& thumbSize = thumbs[0]->GetSize(); int cols = std::max(size.GetWidth() / (thumbSize.GetWidth() + 30), 1); unsigned i; wxFlexGridSizer* sizer = new wxFlexGridSizer(cols); wxSizer* oldSizer; for (i = 0; i < 16; i++) { if (model == NULL || i < model->getNumClusters()) { oldSizer = thumbs[i]->GetContainingSizer(); if (oldSizer != NULL) { oldSizer->Detach(thumbs[i]); } if (model != NULL) { sizer->Add(thumbs[i]); } } thumbs[i]->Show(model != NULL && i < model->getNumClusters()); } wxGridBagSizer* buttonSizer = new wxGridBagSizer(0,0); buttonSizer->Add(butAdd, wxGBPosition(0,0), wxDefaultSpan, wxTOP|wxLEFT|wxBOTTOM, PADDING); buttonSizer->Add(butSub, wxGBPosition(0,1), wxDefaultSpan, wxTOP|wxLEFT|wxBOTTOM, PADDING); sizer->Add(buttonSizer); butAdd->Enable(model != NULL && model->getNumClusters() < 16); butSub->Enable(model != NULL && model->getNumClusters() > 0); SetSizer(sizer); sizer->FitInside(this); } void ThumbPane::OnSize(wxSizeEvent& evt) { updateLayout(); } void ThumbPane::OnButtonAdd(wxCommandEvent& evt) { if (model->getNumClusters() < 16) { model->setNumClusters(model->getNumClusters() + 1); } if (model->getNumClusters() >= 16) { butAdd->Disable(); } butSub->Enable(); } void ThumbPane::OnButtonSub(wxCommandEvent& evt) { if (model->getNumClusters() > 1) { model->setNumClusters(model->getNumClusters() - 1); } if (model->getNumClusters() <= 1) { butSub->Disable(); } butAdd->Enable(); } void ThumbPane::OnHelp(wxHelpEvent& evt) { Help::show(520); } void ThumbPane::notifyNumClustersChange() { updateLayout(); } BEGIN_EVENT_TABLE(ThumbPane, wxScrolledWindow) EVT_SIZE(ThumbPane::OnSize) EVT_BUTTON(ID_BUT_ADD, ThumbPane::OnButtonAdd) EVT_BUTTON(ID_BUT_SUB, ThumbPane::OnButtonSub) EVT_HELP(wxID_ANY, ThumbPane::OnHelp) END_EVENT_TABLE() tintii-2.8.2/src/indii/tint/gui/PostProcessPane.hpp0000644000175000001440000000317312236200473017171 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_GUI_POSTPROCESSPANE_HPP #define INDII_TINT_GUI_POSTPROCESSPANE_HPP #include "../model/ClusterModel.hpp" #include "../model/ClusterModelObserver.hpp" #include "../../gui/Pane.hpp" #include "wx/slider.h" namespace indii { /** * Postprocess settings pane. */ class PostProcessPane : public Pane, public ClusterModelObserver { public: /** * Constructor. * * @param parent Parent. */ PostProcessPane(wxWindow* parent); /** * Set model. * * @param model Model. */ void setModel(ClusterModel* model); /* * Handle model changes. */ virtual void notifySaturationDecayChange(); virtual void notifySaturationSoftnessChange(); virtual void notifyIsHardChange(); /* * Slider control events. */ void OnSlideSatDecay(wxScrollEvent& evt); void OnSlideSatSoft(wxScrollEvent& evt); void OnSlideHard(wxScrollEvent& evt); /** * Context sensitive help. */ void OnHelp(wxHelpEvent& evt); private: /** * Cluster model. */ ClusterModel* model; /* * Slider controls. */ wxSlider *slideSatDecay, *slideSatSoft, *slideHard; /* * Slider control ids. */ enum ID { ID_SLIDE_SAT_DECAY, ID_SLIDE_SAT_SOFT, ID_SLIDE_HARD }; DECLARE_EVENT_TABLE() }; } #endif tintii-2.8.2/src/indii/tint/model/0000755000175000001440000000000012236200475013762 500000000000000tintii-2.8.2/src/indii/tint/model/ClusterModelObservable.cpp0000644000175000001440000001107112236200473021013 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ClusterModelObservable.hpp" #include "ClusterModelObserver.hpp" using namespace indii; ClusterModelObservable::~ClusterModelObservable() { notifyDestroy(); } void ClusterModelObservable::subscribe(ClusterModelObserver* o) { os.insert(o); } void ClusterModelObservable::unsubscribe(ClusterModelObserver* o) { os.erase(o); } void ClusterModelObservable::notifyClusterChange(const unsigned i) { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyClusterChange(i); } } } void ClusterModelObservable::notifyHueChange(const unsigned i) { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyHueChange(i); } } } void ClusterModelObservable::notifySatChange(const unsigned i) { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifySatChange(i); } } } void ClusterModelObservable::notifyLightChange(const unsigned i) { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyLightChange(i); } } } void ClusterModelObservable::notifyAlphaChange(const unsigned i) { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyAlphaChange(i); } } } void ClusterModelObservable::notifyNumClustersChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyNumClustersChange(); } } } void ClusterModelObservable::notifyIsHardChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyIsHardChange(); } } } void ClusterModelObservable::notifyNumRepetitionsChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyNumRepetitionsChange(); } } } void ClusterModelObservable::notifySaturationThresholdChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifySaturationThresholdChange(); } } } void ClusterModelObservable::notifyMaxPixelsChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyMaxPixelsChange(); } } } void ClusterModelObservable::notifySaturationDecayChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifySaturationDecayChange(); } } } void ClusterModelObservable::notifyCentroidDecayChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyCentroidDecayChange(); } } } void ClusterModelObservable::notifySaturationSoftnessChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifySaturationSoftnessChange(); } } } void ClusterModelObservable::notifyCentroidSoftnessChange() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyCentroidSoftnessChange(); } } } void ClusterModelObservable::notifyDestroy() { registry_t::iterator iter; ClusterModelObserver* ptr; for (iter = os.begin(); iter != os.end(); iter++) { ptr = *iter; if (ptr != NULL) { ptr->notifyDestroy(); } } } tintii-2.8.2/src/indii/tint/model/ClusterModelObserver.cpp0000644000175000001440000000147512236200473020525 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ClusterModelObserver.hpp" using namespace indii; ClusterModelObserver::ClusterModelObserver() : watching(false) { // } ClusterModelObserver::~ClusterModelObserver() { ignore(); } void ClusterModelObserver::watch(ClusterModelObservable* o) { ignore(); o->subscribe(this); this->o = o; this->watching = true; } void ClusterModelObserver::ignore() { if (watching) { o->unsubscribe(this); } this->watching = false; } tintii-2.8.2/src/indii/tint/model/ClusterModel.hpp0000644000175000001440000002432112236200473017015 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_MODEL_CLUSTERMODEL_HPP #define INDII_TINT_MODEL_CLUSTERMODEL_HPP #include "ClusterModelObservable.hpp" #include "../../model/Model.hpp" #include "../../image/ImageManipulation.hpp" #include "../../cluster/DataSet.hpp" #include "../../cluster/KMeansClusterer.hpp" #include "wx/colour.h" #include namespace indii { class ClusterModelObserver; /** * Cluster model. */ class ClusterModel: public Model, public ClusterModelObservable { public: using Model::calcFg; /** * Constructor. * * @param res Image resource. */ ClusterModel(ImageResource* res); /** * Destructor. */ virtual ~ClusterModel(); /** * Get number of clusters. * * @return Number of clusters. */ unsigned getNumClusters(); /** * Set number of clusters. * * @param k Number of clusters. */ void setNumClusters(const unsigned k); /** * Is cluster assignment hard? * * @return True if clustering is hard, false otherwise. */ bool isHard(); /** * Get cluster hardness. * * @return Cluster hardness. */ float getHard(); /** * Set cluster hardness. * * @param hard Cluster hardness, between 0 and 1. */ void setHard(const float hard = 1.0f); /** * Get number of repetitions. * * @return Number of repetitions. */ unsigned getNumRepetitions(); /** * Set number of clusters. * * @param reps Number of repetitions. */ void setNumRepetitions(const unsigned reps); /** * Get saturation threshold. * * @return Saturation threshold. */ float getSaturationThreshold(); /** * Set saturation threshold. * * @param x Saturation threshold. */ void setSaturationThreshold(const float x); /** * Get maximum pixels for clustering. * * @return Maximum pixels for clustering. */ unsigned getMaxPixels(); /** * Set maximum pixels for clustering. * * @param n Maximum pixels for clustering. */ void setMaxPixels(const unsigned n); /** * Get saturation decay. * * @return Saturation decay. */ float getSaturationDecay(); /** * Set saturation decay. * * @param x Saturation decay. */ void setSaturationDecay(const float x); /** * Get centroid distance decay. * * @return Centroid distance decay. */ float getCentroidDecay(); /** * Set centroid distance decay. * * @param x Centroid distance decay. */ void setCentroidDecay(float x); /** * Get saturation softness. * * @return Saturation softness. */ float getSaturationSoftness(); /** * Set saturation softness. * * @param x Saturation softness. */ void setSaturationSoftness(const float x); /** * Get centroid distance softness. * * @return Centroid distance softness. */ float getCentroidSoftness(); /** * Set centroid distance softness. * * @param x Centroid distance softness. */ void setCentroidSoftness(const float x); /** * Is cluster shown in colour? * * @param i Cluster number. */ bool isShown(const unsigned i); /** * Show (or hide) cluster. * * @param i Cluster number. * @param on True to show cluster in colour, false for b&w. */ void show(const unsigned i, const bool on = true); /** * Show (or hide) all clusters. * * @param on True to show all clusters in colour, false for b&w. */ void showAll(const bool on = true); /** * Get cluster colour. * * @param i Cluster number. * * @return Colour representing given cluster. */ const wxColour& getColour(const unsigned i); /** * Set cluster colour. * * @param i Cluster number. * @param col Cluster colour. */ void setColour(const unsigned i, const wxColour& col); /** * Get cluster hue rotation. * * @param i Cluster number. * * @return Hue rotation of given cluster. */ float getHue(const unsigned i); /** * Set cluster hue rotation. * * @param i Cluster number. * @param x Hue rotation to set. */ void setHue(const unsigned i, const float x); /** * Get cluster saturation adjustment. * * @param i Cluster number. * * @return Saturation adjustment of given cluster. */ float getSat(const unsigned i); /** * Set cluster saturation adjustment. * * @param i Cluster number. * @param x Saturation adjustment to set. */ void setSat(const unsigned i, const float x); /** * Does cluster have any saturation? * * @param i Cluster number. * * @return True if saturation of cluster @p i is significant (i.e. does not * round to grey), false otherwise. */ bool hasSat(const unsigned i); /** * Get cluster lightness adjustment. * * @param i Cluster number. * * @return Lightness adjustment of given cluster. */ float getLight(const unsigned i); /** * Set cluster lightness adjustment. * * @param i Cluster number. * @param x Lightness adjustment to set. */ void setLight(const unsigned i, const float x); /** * Does cluster have any light? * * @param i Cluster number. * * @return True if lightness of cluster @p i is significant (i.e. does not * round to black), false otherwise. */ bool hasLight(const unsigned i); /** * Get cluster alpha adjustment. * * @param i Cluster number. * * @return Alpha adjustment of given cluster. */ float getAlpha(const unsigned i); /** * Set cluster alpha adjustment. * * @param i Cluster number. * @param x Alpha adjustment to set. */ void setAlpha(const unsigned i, const float x); /** * Calculate alpha channel of subimage for particular cluster. * * @param i Cluster number. * @param rect Rectangular region of interest, relative to scaled image. * @param scale Inverse scale of image. * @param[out] c Output channel. */ void calcAlpha(const unsigned i, const wxRect& rect, const float scale, channel& c); /** * Calculate mask for particular cluster. * * @param i Cluster number. * @param rect Rectangular region of interest, relative to scaled image. * @param width Scaled width of image. * @param height Scaled height of image. * * @return Mask for the given cluster and region. */ sparse_mask calcMask(const unsigned i, const wxRect& rect, const float scale); /** * Prepare data set for clustering. */ void prepare(); /** * Cluster image. */ void cluster(); /** * Lock model. Ignore any calls to prepare() or cluster() until unlocked. * This is basically a hack to stop them being overcalled, lock(), change * a bunch of settings, unlock(), then prepare() and cluster() to keep the * model consistent. */ void lock(); /** * Unlock model. */ void unlock(); virtual void calcFg(const wxRect& rect, const float scale, Image& o); virtual void setDefaults(); virtual void setForDialog(); private: /** * Number of clusters. */ unsigned k; /** * Cluster hardness. */ float hard; /** * Number of repetitions. */ unsigned reps; /** * Saturation threshold. */ float saturationThreshold; /** * Maximum number of pixels for clustering. */ unsigned maxPixels; /** * Saturation decay. */ float saturationDecay; /** * Centroid decay. */ float centroidDecay; /** * Saturation softness. */ float saturationSoftness; /** * Centroid softness. */ float centroidSoftness; /** * Cluster hue rotation. */ std::vector hues; /** * Cluster saturation adjustment. */ std::vector sats; /** * Cluster light adjustment. */ std::vector lights; /** * Cluster alpha adjustment. */ std::vector alphas; /** * Cluster colours. */ std::vector colours; /** * Data set for clustering. */ indii::DataSet data; /** * Clusterer used for last clustering. */ indii::KMeansClusterer<>* minClusterer; /** * Is model locked? */ bool locked; }; } inline unsigned indii::ClusterModel::getNumClusters() { return k; } inline bool indii::ClusterModel::isHard() { return hard >= 1.0f; } inline float indii::ClusterModel::getHard() { return hard; } inline unsigned indii::ClusterModel::getNumRepetitions() { return reps; } inline float indii::ClusterModel::getSaturationThreshold() { return saturationThreshold; } inline unsigned indii::ClusterModel::getMaxPixels() { return maxPixels; } inline float indii::ClusterModel::getSaturationDecay() { return saturationDecay; } inline float indii::ClusterModel::getCentroidDecay() { return centroidDecay; } inline float indii::ClusterModel::getSaturationSoftness() { return saturationSoftness; } inline float indii::ClusterModel::getCentroidSoftness() { return centroidSoftness; } inline bool indii::ClusterModel::isShown(const unsigned i) { return hasSat(i); } inline const wxColour& indii::ClusterModel::getColour(const unsigned i) { /* pre-condition */ assert(i < k); return colours[i]; } inline float indii::ClusterModel::getHue(const unsigned i) { /* pre-condition */ assert(i < k); return hues[i]; } inline float indii::ClusterModel::getSat(const unsigned i) { /* pre-condition */ assert(i < k); return sats[i]; } inline float indii::ClusterModel::getLight(const unsigned i) { /* pre-condition */ assert(i < k); return lights[i]; } inline float indii::ClusterModel::getAlpha(const unsigned i) { /* pre-condition */ assert(i < k); return alphas[i]; } inline bool indii::ClusterModel::hasLight(const unsigned i) { /* pre-condition */ assert(i < k); return lights[i] > -1.0f; } inline bool indii::ClusterModel::hasSat(const unsigned i) { /* pre-condition */ assert(i < k); return sats[i] > -1.0f; } inline void indii::ClusterModel::lock() { locked = true; } inline void indii::ClusterModel::unlock() { locked = false; } #endif tintii-2.8.2/src/indii/tint/model/ClusterModelObserver.hpp0000644000175000001440000001001112236200473020514 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_MODEL_CLUSTERMODELOBSERVER_HPP #define INDII_TINT_MODEL_CLUSTERMODELOBSERVER_HPP #include "ClusterModelObservable.hpp" namespace indii { /** * Observer of ClusterModel. */ class ClusterModelObserver { public: /** * Constructor. */ ClusterModelObserver(); /** * Destructor. */ virtual ~ClusterModelObserver(); /** * Observe an object. */ void watch(ClusterModelObservable* o); /** * Stop observing the object. */ void ignore(); /** * Notify change specific to a single cluster. * * @param i The cluster. */ virtual void notifyClusterChange(const unsigned i); /** * Notify change of hue rotation to a single cluster. * * @param i The cluster. */ virtual void notifyHueChange(const unsigned i); /** * Notify change of saturation adjustent to a single cluster. * * @param i The cluster. */ virtual void notifySatChange(const unsigned i); /** * Notify change of lightness adjustment to a single cluster. * * @param i The cluster. */ virtual void notifyLightChange(const unsigned i); /** * Notify change of alpha adjustment to a single cluster. * * @param i The cluster. */ virtual void notifyAlphaChange(const unsigned i); /** * Notify change in number of clusters. */ virtual void notifyNumClustersChange(); /** * Notify change in hard/soft cluster assignment. */ virtual void notifyIsHardChange(); /** * Notify change in number of repetitions. */ virtual void notifyNumRepetitionsChange(); /** * Notify change in saturation threshold. */ virtual void notifySaturationThresholdChange(); /** * Notify change in maximum pixels for clustering. */ virtual void notifyMaxPixelsChange(); /** * Notify change in saturation decay. */ virtual void notifySaturationDecayChange(); /** * Notify change in centroid decay. */ virtual void notifyCentroidDecayChange(); /** * Notify change in saturation softness. */ virtual void notifySaturationSoftnessChange(); /** * Notify change in centroid softness. */ virtual void notifyCentroidSoftnessChange(); /** * Notify of destruction. */ void notifyDestroy(); private: /** * Observed object. */ ClusterModelObservable* o; /** * Are we currently observing an object? */ bool watching; }; } inline void indii::ClusterModelObserver::notifyClusterChange(const unsigned i) { // } inline void indii::ClusterModelObserver::notifyHueChange(const unsigned i) { notifyClusterChange(i); } inline void indii::ClusterModelObserver::notifySatChange(const unsigned i) { notifyClusterChange(i); } inline void indii::ClusterModelObserver::notifyLightChange(const unsigned i) { notifyClusterChange(i); } inline void indii::ClusterModelObserver::notifyAlphaChange(const unsigned i) { notifyClusterChange(i); } inline void indii::ClusterModelObserver::notifyNumClustersChange() { // } inline void indii::ClusterModelObserver::notifyIsHardChange() { // } inline void indii::ClusterModelObserver::notifyNumRepetitionsChange() { // } inline void indii::ClusterModelObserver::notifySaturationThresholdChange() { // } inline void indii::ClusterModelObserver::notifyMaxPixelsChange() { // } inline void indii::ClusterModelObserver::notifySaturationDecayChange() { // } inline void indii::ClusterModelObserver::notifyCentroidDecayChange() { // } inline void indii::ClusterModelObserver::notifySaturationSoftnessChange() { // } inline void indii::ClusterModelObserver::notifyCentroidSoftnessChange() { // } inline void indii::ClusterModelObserver::notifyDestroy() { this->watching = false; } #endif tintii-2.8.2/src/indii/tint/model/ClusterModel.cpp0000644000175000001440000003214112236200473017007 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ClusterModel.hpp" #include "ClusterModelObserver.hpp" //#include "wx/app.h" //#include "wx/busyinfo.h" #include #include #include namespace ublas = boost::numeric::ublas; using namespace indii; using namespace std; ClusterModel::ClusterModel(ImageResource* res) : Model(res), minClusterer(NULL), locked(false) { this->saturationThreshold = 0.0625f; this->maxPixels = 50000; this->reps = 12; this->k = 4; this->hard = 0.9f; this->saturationDecay = 0.0625f; this->centroidDecay = 0.0f; this->saturationSoftness = 0.125f; this->centroidSoftness = 0.0f; this->colours.resize(k, *wxWHITE); this->hues.resize(k, 0.0f); this->sats.resize(k, -1.0f); this->lights.resize(k, 0.0f); this->alphas.resize(k, 1.0f); this->minClusterer = new KMeansClusterer<>(k, time(NULL)); } ClusterModel::~ClusterModel() { delete minClusterer; } void ClusterModel::setDefaults() { lock(); setHard(0.9f); setSaturationThreshold(0.0625f); setMaxPixels(50000); setNumRepetitions(12); setNumClusters(4); setSaturationDecay(0.0625f); setCentroidDecay(0.0f); setSaturationSoftness(0.125f); setCentroidSoftness(0.0f); setChannelMix(0.299f, 0.587f, 0.114f); setForDialog(); unlock(); prepare(); cluster(); notifyAll(); notifyNumClustersChange(); } void ClusterModel::setForDialog() { fill(hues.begin(), hues.end(), 0.0f); fill(sats.begin(), sats.end(), -1.0f); fill(lights.begin(), lights.end(), 0.0f); fill(alphas.begin(), alphas.end(), 1.0f); } void ClusterModel::setNumClusters(const unsigned k) { if (this->k != k) { this->k = k; colours.resize(k, *wxWHITE); hues.resize(k); sats.resize(k); lights.resize(k); fill(sats.begin(), sats.end(), -1.0f); fill(hues.begin(), hues.end(), 0.0f); fill(lights.begin(), lights.end(), 0.0f); fill(alphas.begin(), alphas.end(), 1.0f); cluster(); notifyAll(); notifyNumClustersChange(); } } void ClusterModel::setHard(const float hard) { /* pre-condition */ assert(hard >= 0.0f && hard <= 1.0f); if (this->hard != hard) { this->hard = hard; notifyAll(); notifyIsHardChange(); } } void ClusterModel::setNumRepetitions(const unsigned reps) { if (this->reps != reps) { this->reps = reps; notifyAll(); notifyNumRepetitionsChange(); } } void ClusterModel::setSaturationThreshold(const float x) { if (this->saturationThreshold != x) { this->saturationThreshold = x; prepare(); notifyAll(); notifySaturationThresholdChange(); } } void ClusterModel::setMaxPixels(const unsigned n) { if (this->maxPixels != n) { this->maxPixels = n; prepare(); notifyAll(); notifyMaxPixelsChange(); } } void ClusterModel::setSaturationDecay(const float x) { /* pre-condition */ assert(x >= 0.0f && x <= 1.0f); if (this->saturationDecay != x) { this->saturationDecay = x; notifyAll(); notifySaturationDecayChange(); } } void ClusterModel::setCentroidDecay(const float x) { /* pre-condition */ assert(x >= 0.0f && x <= 1.0f); if (this->centroidDecay != x) { this->centroidDecay = x; notifyAll(); notifyCentroidDecayChange(); } } void ClusterModel::setSaturationSoftness(const float x) { /* pre-condition */ assert(x >= 0.0 && x <= 1.0f); if (this->saturationSoftness != x) { this->saturationSoftness = x; notifyAll(); notifySaturationSoftnessChange(); } } void ClusterModel::setCentroidSoftness(const float x) { /* pre-condition */ assert(x >= 0.0 && x <= 1.0f); if (this->centroidSoftness != x) { this->centroidSoftness = x; notifyAll(); notifyCentroidSoftnessChange(); } } void ClusterModel::setColour(const unsigned i, const wxColour& col) { /* pre-condition */ assert(i < k); ClusterVector<>::type x(ClusterVector<>::N); x(0) = col.Red()/255.0f; x(1) = col.Green()/255.0f; x(2) = col.Blue()/255.0f; indii::KMeansClusterer<>::distance_type::prepare(x); colours[i] = col; minClusterer->setCentroid(i, x); } void ClusterModel::setHue(const unsigned i, const float x) { /* pre-condition */ assert(i < k); assert(x >= -0.5f && x <= 0.5f); if (hues[i] != x) { hues[i] = x; notifyAll(); notifyHueChange(i); } } void ClusterModel::setSat(const unsigned i, const float x) { /* pre-condition */ assert(i < k); assert(x >= -1.0f && x <= 1.0f); if (sats[i] != x) { sats[i] = x; notifyAll(); notifySatChange(i); } } void ClusterModel::setLight(const unsigned i, const float x) { /* pre-condition */ assert(i < k); assert(x >= -1.0f && x <= 1.0f); if (lights[i] != x) { lights[i] = x; /* notify observers */ notifyAll(); notifyLightChange(i); } } void ClusterModel::setAlpha(const unsigned i, const float x) { /* pre-condition */ assert(i < k); assert(x >= 0.0f && x <= 1.0f); if (alphas[i] != x) { alphas[i] = x; /* notify observers */ notifyAll(); notifyAlphaChange(i); } } void ClusterModel::show(const unsigned i, const bool on) { /* pre-condition */ assert(i < k); if (isShown(i) != on) { if (on) { sats[i] = 0.0f; } else { sats[i] = -1.0f; } notifyAll(); notifySatChange(i); } } void ClusterModel::showAll(const bool on) { unsigned i; for (i = 0; i < k; i++) { show(i, on); } } void ClusterModel::calcFg(const wxRect& rect, const float scale, Image& o) { /* pre-conditions */ assert(o.getWidth() == rect.width); assert(o.getHeight() == rect.height); Image& img = *res->get(scale); #pragma omp parallel { ColourSpace::rgb_t rgb(3); ColourSpace::hsl_t hsl(3); std::vector ds(k); int x, y, cluster; float decay, light, sat; #pragma omp for schedule(dynamic) for (y = 0; y < rect.height; ++y) { for (x = 0; x < rect.width; ++x) { rgb(0) = img.r(rect.y + y, rect.x + x); rgb(1) = img.g(rect.y + y, rect.x + x); rgb(2) = img.b(rect.y + y, rect.x + x); cs.rgb2hsl(rgb, hsl); decay = threshold(hsl(1), saturationDecay, saturationSoftness); /* cluster adjustments */ indii::KMeansClusterer<>::distance_type::prepare(rgb); if (isHard()) { cluster = minClusterer->assign(rgb); /* hue */ hsl(0) = fmod(1.0f + hsl(0) + hues[cluster], 1.0f); /* saturation */ sat = decay * sats[cluster]; if (sat >= 0.0f) { hsl(1) /= 1.0f - sat; } else { hsl(1) *= 1.0f + sat; } hsl(1) = bound(0.0f, decay * hsl(1), 1.0f); //hsl(1) = bound(0.0f, decay*(sats[cluster] + 1.0f)*hsl(1), 1.0f); /* lightness */ light = lights[cluster]; if (light >= 0.0f) { hsl(2) /= 1.0f - light; } else { hsl(2) *= 1.0f + light; } hsl(2) = bound(0.0f, hsl(2), 1.0f); /* alpha */ //a = bound(0.0f, decay*alphas[cluster], 255.0f); } else { minClusterer->distances(rgb, ds); unsigned i; float h = 0.0f, s = 0.0f, l = 0.0f/*, a = 0.0f*/, D = 0.0f; for (i = 0; i < k; ++i) { ds[i] = std::pow(1.0f - ds[i], 256.0f * hard); D += ds[i]; } if (D >= 0.0f) { for (i = 0; i < k; ++i) { ds[i] /= D; if (ds[i] > 0.0f && ds[i] <= 1.0f) { // D >= 0.0 check may use extended precision, so ds[i] may not be finite h += ds[i] * hues[i]; s += ds[i] * sats[i]; l += ds[i] * lights[i]; } } } //a += ds[i]*alphas[i]; /* hue */ hsl(0) = fmod(1.0f + hsl(0) + h, 1.0f); /* saturation */ sat = decay * s; if (sat >= 0.0f) { hsl(1) /= 1.0f - sat; } else { hsl(1) *= 1.0f + sat; } hsl(1) = bound(0.0f, decay * hsl(1), 1.0f); //hsl(1) = bound(0.0f, decay*(s + 1.0f)*hsl(1), 1.0f); /* lightness */ light = l; if (light >= 0.0f) { hsl(2) /= 1.0f - light; } else { hsl(2) *= 1.0f + light; } hsl(2) = bound(0.0f, hsl(2), 1.0f); /* alpha */ // already set } /* convert back */ cs.hsl2rgb(hsl, rgb); o.r(y, x) = rgb(0); o.g(y, x) = rgb(1); o.b(y, x) = rgb(2); //o.a(y, x) = a; } } } } void ClusterModel::calcAlpha(const unsigned i, const wxRect& rect, const float scale, channel& c) { /* pre-conditions */ assert(i < k); assert((int)c.size1() == rect.height && (int)c.size2() == rect.width); Image* img = res->get(scale); #pragma omp parallel default(shared) { ColourSpace::rgb_t rgb(3); ColourSpace::hsl_t hsl(3); ClusterVector<>::type pixel(ClusterVector<>::N); int x, y; #pragma omp for schedule(dynamic) for (y = 0; y < rect.height; ++y) { for (x = 0; x < rect.width; ++x) { rgb(0) = img->r(rect.y + y, rect.x + x); rgb(1) = img->g(rect.y + y, rect.x + x); rgb(2) = img->b(rect.y + y, rect.x + x); cs.rgb2hsl(rgb, hsl); pixel = rgb; /* cluster adjustments */ indii::KMeansClusterer<>::distance_type::prepare(pixel); if (minClusterer->assign(pixel) == i) { c(y, x) = threshold(hsl(1), saturationDecay, saturationSoftness); } else { c(y, x) = 0; } } } } } sparse_mask ClusterModel::calcMask(const unsigned i, const wxRect& rect, const float scale) { /* pre-condition */ assert(i < k); sparse_mask m(rect.height, rect.width); Image* img = res->get(scale); #pragma omp parallel default(shared) { ColourSpace::rgb_t rgb(3); ColourSpace::hsl_t hsl(3); ClusterVector<>::type pixel(ClusterVector<>::N); int x, y; #pragma omp for schedule(dynamic) for (y = 0; y < rect.height; ++y) { for (x = 0; x < rect.width; ++x) { rgb(0) = img->r(rect.y + y, rect.x + x); rgb(1) = img->g(rect.y + y, rect.x + x); rgb(2) = img->b(rect.y + y, rect.x + x); cs.rgb2hsl(rgb, hsl); pixel = rgb; indii::KMeansClusterer<>::distance_type::prepare(pixel); if (minClusterer->assign(pixel) == i) { #pragma omp critical { /* sparse matrix, so need to control access, elements may be * rearranged */ m(y, x) = true; } } } } } return m; } void ClusterModel::prepare() { if (locked) { return; } /* prepare data set for clustering */ int originalWidth = res->getWidth(); int originalHeight = res->getHeight(); int pixels = originalWidth * originalHeight; float scale = static_cast(pixels) / maxPixels; Image* working = res->getLow(scale); int workingWidth = working->getWidth(); int workingHeight = working->getHeight(); /* prepare data set for clustering */ data.clear(); #pragma omp parallel { ClusterVector<>::type pixel(ClusterVector<>::N); int x, y; float s; #pragma omp for for (x = 0; x < workingWidth; ++x) { for (y = 0; y < workingHeight; ++y) { pixel(0) = working->r(y, x); pixel(1) = working->g(y, x); pixel(2) = working->b(y, x); /* saturation threshold */ s = saturation(pixel(0), pixel(1), pixel(2)); if (s >= saturationThreshold) { indii::KMeansClusterer<>::distance_type::prepare(pixel); #pragma omp critical { data.add(pixel); } } } } } } void ClusterModel::cluster() { if (locked) { return; } const unsigned MAX_ITERS = 100; const unsigned seed = time(NULL); float minError = std::numeric_limits::max(); #pragma omp parallel shared(minError) { /* cluster */ KMeansClusterer<>* clusterer; float error; int i; ClusterVector<>::type pixel(ClusterVector<>::N); #pragma omp for schedule(dynamic) for (i = 0; i < (int) reps; i++) { clusterer = new KMeansClusterer<>(k, seed + i); clusterer->cluster(data, MAX_ITERS); error = clusterer->getError(); #pragma omp critical { if (error < minError) { minError = error; delete minClusterer; minClusterer = clusterer; } else { delete clusterer; } //wxYield(); } } assert(minClusterer != NULL); /* cluster colours */ ColourSpace cs; ColourSpace::rgb_t rgb(3); ColourSpace::hsl_t hsl(3); #pragma omp for for (i = 0; i < (int) k; i++) { pixel = 0.5f * minClusterer->getCentroid(i) + ublas::scalar_vector(3, 0.5f); rgb = pixel; cs.rgb2hsl(rgb, hsl); hsl(1) = 0.8f; hsl(2) = 0.8f; cs.hsl2rgb(hsl, rgb); colours[i].Set(uround(rgb(0)), uround(rgb(1)), uround(rgb(2))); } } } tintii-2.8.2/src/indii/tint/model/ClusterModelObservable.hpp0000644000175000001440000000532712236200473021027 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_MODEL_CLUSTERMODELOBSERVABLE_HPP #define INDII_TINT_MODEL_CLUSTERMODELOBSERVABLE_HPP #include namespace indii { class ClusterModelObserver; /** * Observable object. */ class ClusterModelObservable { public: /** * Destructor. */ virtual ~ClusterModelObservable(); /** * Registry type. */ typedef std::set registry_t; /** * Register observer. */ void subscribe(ClusterModelObserver* o); /** * Deregister observer. */ void unsubscribe(ClusterModelObserver* o); /** * Notify change specific to a single cluster. * * @param i The cluster. */ virtual void notifyClusterChange(const unsigned i); /** * Notify change of hue rotation to a single cluster. * * @param i The cluster. */ virtual void notifyHueChange(const unsigned i); /** * Notify change of saturation adjustent to a single cluster. * * @param i The cluster. */ virtual void notifySatChange(const unsigned i); /** * Notify change of lightness adjustment to a single cluster. * * @param i The cluster. */ virtual void notifyLightChange(const unsigned i); /** * Notify change of alpha adjustment to a single cluster. * * @param i The cluster. */ virtual void notifyAlphaChange(const unsigned i); /** * Notify change in number of clusters. */ virtual void notifyNumClustersChange(); /** * Notify change in hard/soft cluster assignment. */ virtual void notifyIsHardChange(); /** * Notify change in number of repetitions. */ virtual void notifyNumRepetitionsChange(); /** * Notify change in saturation threshold. */ virtual void notifySaturationThresholdChange(); /** * Notify change in maximum pixels for clustering. */ virtual void notifyMaxPixelsChange(); /** * Notify change in saturation decay. */ virtual void notifySaturationDecayChange(); /** * Notify change in centroid decay. */ virtual void notifyCentroidDecayChange(); /** * Notify change in saturation softness. */ virtual void notifySaturationSoftnessChange(); /** * Notify change in centroid softness. */ virtual void notifyCentroidSoftnessChange(); /** * Notify destruction. */ virtual void notifyDestroy(); protected: /** * Registry of observers. */ registry_t os; }; } #endif tintii-2.8.2/src/indii/tint/images/0000755000175000001440000000000012236200475014127 500000000000000tintii-2.8.2/src/indii/tint/images/tint.cpp0000644000175000001440000000112312236200473015524 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "tint.hpp" #include "../../../../images/tintii/splash.xpm" #include "wx/bitmap.h" wxBitmap *_img_tint_splash; void tint_initialize_images(void) { _img_tint_splash = new wxBitmap(splash_xpm); return; } tintii-2.8.2/src/indii/tint/images/tint.hpp0000644000175000001440000000113312236200473015532 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_TINT_IMAGES_TINT_HPP #define INDII_TINT_IMAGES_TINT_HPP #include #ifndef WX_PRECOMP #include #endif extern void tint_initialize_images(void); extern wxBitmap *_img_tint_splash; #endif tintii-2.8.2/src/indii/model/0000755000175000001440000000000012236200475013004 500000000000000tintii-2.8.2/src/indii/model/Controller.cpp0000644000175000001440000000117212236200473015552 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev: 503 $ * $Date: 2013-09-23 00:17:02 +0800 (Mon, 23 Sep 2013) $ */ #include "Controller.hpp" indii::Controller::Controller() : overlay(true) { // } indii::Controller::~Controller() { // } void indii::Controller::showOverlay(const bool on) { this->overlay = on; } tintii-2.8.2/src/indii/model/Observer.cpp0000644000175000001440000000136712236200473015224 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Observer.hpp" #include "Observable.hpp" using namespace indii; Observer::Observer() : watching(false) { // } Observer::~Observer() { ignore(); } void Observer::watch(Observable* o) { ignore(); o->subscribe(this); this->o = o; this->watching = true; } void Observer::ignore() { if (watching) { o->unsubscribe(this); } this->watching = false; } tintii-2.8.2/src/indii/model/Model.hpp0000644000175000001440000001266412236200473014504 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_MODEL_MODEL_HPP #define INDII_MODEL_MODEL_HPP #include "Observable.hpp" #include "../image/ImageManipulation.hpp" #include "../image/ImageResource.hpp" #include "../image/ColourSpace.hpp" #include "wx/image.h" #include "wx/dcbuffer.h" namespace indii { /** * Abstract model. */ class Model: public Observable { public: /** * Constructor. */ Model(ImageResource* res); /** * Get underlying image resource. */ ImageResource* getImageResource(); /** * Get red channel proportion for conversion to greyscale. * * @return Red channel proportion. */ float getRedMix() const; /** * Get green channel proportion for conversion to greyscale. * * @return Green channel proportion. */ float getGreenMix() const; /** * Get blue channel proportion for conversion to greyscale. * * @return Blue channel proportion. */ float getBlueMix() const; /** * Set red channel proportion for conversion to greyscale. * * @param r Red channel proportion. */ void setRedMix(const float r); /** * Set red channel proportion for conversion to greyscale. * * @param g Green channel proportion. */ void setGreenMix(const float g); /** * Set blue channel proportion for conversion to greyscale. * * @param b Blue channel proportion. */ void setBlueMix(const float b); /** * Set greyscale mix. * * @param r Red channel proportion. * @param g Green channel proportion. * @param b Blue channel proportion. */ void setChannelMix(const float r, const float g, const float b); /** * Set default parameters. */ virtual void setDefaults() = 0; /** * Set parameters for dialog. */ virtual void setForDialog() = 0; /** * Calculate foreground of subimage. * * @param rect Rectangular region of interest, relative to scaled image. * @param scale Inverse scale of image. * @param[out] o Output image. */ virtual void calcFg(const wxRect& rect, const float scale, Image& o); /** * Calculate foreground of whole image. * * @param scale Inverse scale of image. * @param[out] o Output image. */ virtual void calcFg(const float scale, Image& o); /** * Calculate foreground of image. * * @param[out] o Output image. */ virtual void calcFg(Image& o); /** * Calculate foreground of subimage. * * @param rect Rectangular region of interest, relative to scaled image. * @param scale Inverse scale of image. * @param[out] o Output image. */ virtual void calcFg(const wxRect& rect, const float scale, wxImage& o); /** * Calculate foreground of whole image. * * @param scale Inverse scale of image. * @param[out] o Output image. */ virtual void calcFg(const float scale, wxImage& o); /** * Calculate foreground of image. * * @param[out] o Output image. */ virtual void calcFg(wxImage& o); /** * Calculate annotation layer of subimage. * * @param rect Rectangular region of interest, relative to scaled image. * @param scale Inverse scale of image. * @param[out] dc Device context to annotate. */ virtual void calcAn(const wxRect& rect, const float scale, wxDC& dc); /** * Calculate annotation layer of whole image. * * @param scale Inverse scale of image. * @param[out] dc Device context to annotate. */ virtual void calcAn(const float scale, wxDC& dc); protected: /** * Image resource. */ ImageResource* res; /** * Colour space model. */ ColourSpace cs; /** * Greyscale red mixing. */ float greyR; /** * Greyscale green mixing. */ float greyG; /** * Greyscale green mixing. */ float greyB; }; } inline indii::ImageResource* indii::Model::getImageResource() { return res; } inline float indii::Model::getRedMix() const { return greyR; } inline float indii::Model::getGreenMix() const { return greyG; } inline float indii::Model::getBlueMix() const { return greyB; } inline void indii::Model::calcFg(const wxRect& rect, const float scale, Image& o) { // } inline void indii::Model::calcFg(const float scale, Image& o) { /* pre-condition */ assert(o.getWidth() == res->getWidth()/scale); assert(o.getHeight() == res->getHeight()/scale); wxRect rect(0, 0, o.getWidth(), o.getHeight()); calcFg(rect, scale, o); } inline void indii::Model::calcFg(Image& o) { calcFg(1.0f, o); } inline void indii::Model::calcFg(const wxRect& rect, const float scale, wxImage& o) { Image img(o.GetWidth(), o.GetHeight()); calcFg(rect, scale, img); convert(img, o); } inline void indii::Model::calcFg(const float scale, wxImage& o) { Image img(o.GetWidth(), o.GetHeight()); calcFg(scale, img); convert(img, o); } inline void indii::Model::calcFg(wxImage& o) { Image img(o.GetWidth(), o.GetHeight()); calcFg(img); convert(img, o); } inline void indii::Model::calcAn(const wxRect& rect, const float scale, wxDC& dc) { // } inline void indii::Model::calcAn(const float scale, wxDC& dc) { wxRect rect(0, 0, res->getWidth()/scale, res->getHeight()/scale); calcAn(rect, scale, dc); } #endif tintii-2.8.2/src/indii/model/Observer.hpp0000644000175000001440000000262712236200473015231 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_MODEL_OBSERVER_HPP #define INDII_MODEL_OBSERVER_HPP #include "Observable.hpp" namespace indii { /** * Abstract observer. */ class Observer { public: /** * Constructor. */ Observer(); /** * Destructor. Object will automatically call unsubscribe() on any watched * Observable object if necessary. */ virtual ~Observer(); /** * Observe an object. */ void watch(Observable* o); /** * Stop observing the object. */ void ignore(); /** * Notify of change. */ virtual void notify(); /** * Notify change of greyscale parameters. */ virtual void notifyGreyscaleChange(); /** * Notify of destruction. */ void notifyDestroy(); private: /** * Observed object. */ Observable* o; /** * Are we currently observing an object? */ bool watching; }; } inline void indii::Observer::notify() { // } inline void indii::Observer::notifyGreyscaleChange() { // } inline void indii::Observer::notifyDestroy() { this->watching = false; } #endif tintii-2.8.2/src/indii/model/Observable.hpp0000644000175000001440000000223612236200473015522 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_MODEL_OBSERVABLE_HPP #define INDII_MODEL_OBSERVABLE_HPP #include namespace indii { class Observer; /** * Abstract observable object. */ class Observable { public: /** * Destructor. */ virtual ~Observable(); /** * Registry type. */ typedef std::set registry_t; /** * Register observer. */ void subscribe(Observer* o); /** * Deregister observer. */ void unsubscribe(Observer* o); /** * Notify all registered observers of change. */ void notifyAll(); /** * Notify change of greyscale parameters. */ void notifyGreyscaleChange(); /** * Notify all registered observers of destruction. */ void notifyDestroy(); protected: /** * Registry of observers. */ registry_t os; }; } #endif tintii-2.8.2/src/indii/model/Controller.hpp0000644000175000001440000000737612236200473015573 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_MODEL_CONTROLLER_HPP #define INDII_MODEL_CONTROLLER_HPP #include "wx/event.h" namespace indii { /** * Controller for handling mouse events from PreviewImage. */ class Controller { public: /** * Constructor. */ Controller(); /** * Destructor. */ virtual ~Controller(); /** * Set overlay on or off. */ void showOverlay(const bool on); /** * Called when the left mouse button is released on the preview image. To * be handled as the model sees fit. * * @param x0 X-coordinate of the pixel clicked on original scale. * @param y0 Y-coordinate of the pixel clicked on original scale. * @param x X-coordinate of the pixel clicked. * @param y Y-coordinate of the pixel clicked. * @param evt Associated mouse event. */ virtual void up(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt); /** * Called when the left mouse button is clicked down on the preview image. * To be handled as the model sees fit. * * @param x0 X-coordinate of the pixel clicked on original scale. * @param y0 Y-coordinate of the pixel clicked on original scale. * @param x X-coordinate of the pixel clicked. * @param y Y-coordinate of the pixel clicked. * @param evt Associated mouse event. */ virtual void down(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt); /** * Called when the left mouse button is double-clicked down on the preview * image. To be handled as the model sees fit. * * @param x0 X-coordinate of the pixel clicked on original scale. * @param y0 Y-coordinate of the pixel clicked on original scale. * @param x X-coordinate of the pixel clicked. * @param y Y-coordinate of the pixel clicked. * @param evt Associated mouse event. */ virtual void doubleDown(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt); /** * Called when the left mouse button is down and the mouse cursor is dragged * across the preview image. To be handled as the model sees fit. * * @param x0 X-coordinate of the pixel clicked on original scale. * @param y0 Y-coordinate of the pixel clicked on original scale. * @param x X-coordinate of the pixel clicked. * @param y Y-coordinate of the pixel clicked. * @param dx0 Change in original x-coordinate since last drag event. * @param dy0 Change in original y-coordinate since last drag event. * @param dx Change in x-coordinate since last drag event. * @param dy Change in y-coordinate since last drag event. * @param evt Associated mouse event. */ virtual void drag(const int x0, const int y0, const int x, const int y, const int dx0, const int dy0, const int dx, const int dy, wxMouseEvent& evt); protected: /** * Show overlay? */ bool overlay; }; } inline void indii::Controller::up(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt) { evt.Skip(); } inline void indii::Controller::down(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt) { evt.Skip(); } inline void indii::Controller::doubleDown(const int x0, const int y0, const int x, const int y, wxMouseEvent& evt) { evt.Skip(); } inline void indii::Controller::drag(const int x0, const int y0, const int x, const int y, const int dx0, const int dy0, const int dx, const int dy, wxMouseEvent& evt) { evt.Skip(); } #endif tintii-2.8.2/src/indii/model/Observable.cpp0000644000175000001440000000210612236200473015511 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Observable.hpp" #include "Observer.hpp" using namespace indii; Observable::~Observable() { notifyDestroy(); } void Observable::subscribe(Observer* o) { os.insert(o); } void Observable::unsubscribe(Observer* o) { os.erase(o); } void Observable::notifyAll() { registry_t::iterator iter; for (iter = os.begin(); iter != os.end(); iter++) { (*iter)->notify(); } } void Observable::notifyGreyscaleChange() { registry_t::iterator iter; for (iter = os.begin(); iter != os.end(); iter++) { (*iter)->notifyGreyscaleChange(); } } void Observable::notifyDestroy() { registry_t::iterator iter; for (iter = os.begin(); iter != os.end(); iter++) { (*iter)->notifyDestroy(); } } tintii-2.8.2/src/indii/model/Model.cpp0000644000175000001440000000374012236200473014472 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "Model.hpp" using namespace indii; Model::Model(ImageResource* res) : res(res) { this->greyR = 76.0f / 255.0f; this->greyG = 150.0f / 255.0f; this->greyB = 29.0f / 255.0f; } void Model::setRedMix(const float r) { /* pre-condition */ assert (r >= 0.0f && r <= 1.0f); if (r != greyR) { greyR = r; if (greyG + greyB > 0.0f) { float rescale = (1.0f - greyR)/(greyG + greyB); greyG *= rescale; greyB *= rescale; } else { greyR = 1.0f; } cs.setLightness(greyR, greyG, greyB); notifyAll(); notifyGreyscaleChange(); } } void Model::setGreenMix(const float g) { /* pre-condition */ assert (g >= 0.0f && g <= 1.0f); if (g != greyG) { greyG = g; if (greyR + greyB > 0.0f) { float rescale = (1.0f - greyG)/(greyR + greyB); greyR *= rescale; greyB *= rescale; } else { greyG = 1.0f; } cs.setLightness(greyR, greyG, greyB); notifyAll(); notifyGreyscaleChange(); } } void Model::setBlueMix(const float b) { /* pre-condition */ assert (b >= 0.0f && b <= 1.0f); if (b != greyB) { greyB = b; if (greyR + greyG > 0.0f) { float rescale = (1.0f - greyB)/(greyR + greyG); greyR *= rescale; greyG *= rescale; } else { greyB = 1.0f; } cs.setLightness(greyR, greyG, greyB); notifyAll(); notifyGreyscaleChange(); } } void Model::setChannelMix(const float r, const float g, const float b) { float total = r + g + b; greyR = r/total; greyG = g/total; greyB = b/total; cs.setLightness(greyR, greyG, greyB); notifyAll(); notifyGreyscaleChange(); } tintii-2.8.2/src/indii/image/0000755000175000001440000000000012236200475012766 500000000000000tintii-2.8.2/src/indii/image/ImageCache.cpp0000644000175000001440000000764612236200473015373 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ImageCache.hpp" #include "ImageManipulation.hpp" indii::ImageCache::ImageCache(Image* original) : original(original) { displayOriginal = new wxImage(original->getWidth(), original->getHeight(), false); convert(*original, *displayOriginal); } indii::ImageCache::~ImageCache() { cache_t::iterator iter1; for (iter1 = cache.begin(); iter1 != cache.end(); ++iter1) { delete iter1->second; } for (iter1 = lowCache.begin(); iter1 != lowCache.end(); ++iter1) { delete iter1->second; } display_cache_t::iterator iter2; for (iter2 = displayCache.begin(); iter2 != displayCache.end(); ++iter2) { delete iter2->second; } delete displayOriginal; } indii::Image* indii::ImageCache::get(const float scale) { Image* img; if (scale <= 1.0f) { img = original; } else { cache_t::const_iterator find = cache.find(scale); if (find != cache.end()) { img = find->second; } else { int width = std::floor(original->getWidth()/scale); int height = std::floor(original->getHeight()/scale); img = new Image(width, height); for (int x = 0; x < width; ++x) { int x1 = std::floor(scale*x); int x2; int x3 = std::floor(scale*(x + 1)); float wx1 = 1.0f - (scale*x - x1); float wx2; float wx3 = scale*(x + 1) - x3; for (int y = 0; y < height; ++y) { int y1 = std::floor(scale*y); int y2; int y3 = std::floor(scale*(y + 1)); float wy1 = 1.0f - (scale*y - y1); float wy2; float wy3 = scale*(y + 1) - y3; float r = 0.0f, g = 0.0f, b = 0.0f, w = 0.0f; for (x2 = x1; x2 <= x3; ++x2) { if (x2 == x1) { wx2 = wx1; } else if (x2 == x3) { wx2 = wx3; } else { wx2 = 1.0f; } for (y2 = y1; y2 <= y3; ++y2) { if (y2 == y1) { wy2 = wy1; } else if (y2 == y3) { wy2 = wy3; } else { wy2 = 1.0f; } float w2 = wx2*wy2; if (w2 > 0.0f) { w += w2; r += w2*original->r(y2, x2); g += w2*original->g(y2, x2); b += w2*original->b(y2, x2); } } } img->r(y, x) = r/w; img->g(y, x) = g/w; img->b(y, x) = b/w; } } cache.insert(std::make_pair(scale, img)); } } return img; } indii::Image* indii::ImageCache::getLow(const float scale) { return original; Image* img; if (scale <= 1.0f) { img = original; } else { cache_t::const_iterator find = lowCache.find(scale); if (find != lowCache.end()) { img = find->second; } else { img = new Image(*original, scale); lowCache.insert(std::make_pair(scale, img)); } } return img; } wxImage* indii::ImageCache::getDisplay(const int width) { /* pre-condition */ assert(width >= 1); double ratio = static_cast(displayOriginal->GetWidth())/displayOriginal->GetHeight(); wxImage* img; if (width == displayOriginal->GetWidth()) { img = displayOriginal; } else { display_cache_t::const_iterator find = displayCache.find(width); if (find != displayCache.end()) { img = find->second; } else { int height = intround(width/ratio); img = new wxImage(displayOriginal->Scale(width, height, wxIMAGE_QUALITY_HIGH)); displayCache.insert(std::make_pair(width, img)); } } return img; } tintii-2.8.2/src/indii/image/ImageResource.cpp0000644000175000001440000000110612236200473016140 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ImageResource.hpp" #include #include using namespace indii; ImageResource::ImageResource() { // } ImageResource::~ImageResource() { delete cache; delete original; } tintii-2.8.2/src/indii/image/FileImageResource.cpp0000644000175000001440000000144212236200473016743 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "FileImageResource.hpp" #include "ImageManipulation.hpp" #include "wx/image.h" using namespace indii; FileImageResource::FileImageResource(const wxString& path) { wxImage img; if (img.LoadFile(path)) { original = new Image(img.GetWidth(), img.GetHeight()); convert(img, *original); cache = new ImageCache(original); } else { throw 1; } } FileImageResource::~FileImageResource() { // } tintii-2.8.2/src/indii/image/ImageManipulation.cpp0000644000175000001440000000703212236200473017015 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ImageManipulation.hpp" #include "wx/wx.h" void indii::hide(wxImage& image) { int x, y; const int width = image.GetWidth(); const int height = image.GetHeight(); if (!image.HasAlpha()) { image.InitAlpha(); } for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { image.SetAlpha(x, y, (unsigned char)0); } } } void indii::show(wxImage& image) { int x, y; const int width = image.GetWidth(); const int height = image.GetHeight(); if (!image.HasAlpha()) { image.InitAlpha(); } for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { image.SetAlpha(x, y, (unsigned char)255); } } } void indii::show(wxImage& image, const wxRect& rect) { int x, y; if (!image.HasAlpha()) { image.InitAlpha(); } for (y = rect.y; y < rect.y + rect.height; ++y) { for (x = rect.x; x < rect.x + rect.width; ++x) { image.SetAlpha(x, y, (unsigned char)255); } } } #ifndef __PLUGIN__ void indii::convert(const Image& in, wxImage& out) { /* pre-condition */ assert(in.getWidth() == out.GetWidth() && in.getHeight() == out.GetHeight()); int x, y; for (y = 0; y < in.getHeight(); ++y) { for (x = 0; x < in.getWidth(); ++x) { out.SetRGB(wxRect(x, y, 1, 1), uround(in.r(y, x)), uround(in.g(y, x)), uround(in.b(y, x))); } } } #endif void indii::convert(const wxImage& in, Image& out) { /* pre-condition */ assert(in.GetWidth() == out.getWidth() && in.GetHeight() == out.getHeight()); int x, y; for (x = 0; x < in.GetWidth(); ++x) { for (y = 0; y < in.GetHeight(); ++y) { out.r(y, x) = in.GetRed(x, y)/255.0f; out.g(y, x) = in.GetGreen(x, y)/255.0f; out.b(y, x) = in.GetBlue(x, y)/255.0f; } } } wxString indii::wildcards(const bool save) { wxList handlers = wxImage::GetHandlers(); wxImageHandler* handler; wxString res, name, ext, all; wxList::iterator iter; bool first = true; for (iter = handlers.begin(); iter != handlers.end(); ++iter) { handler = dynamic_cast(*iter); name = handler->GetName(); ext = handler->GetExtension(); /* only certain file types can be written... */ if (!save || ext.IsSameAs(_("bmp")) || ext.IsSameAs(_("jpg")) || ext.IsSameAs(_("pcx")) || ext.IsSameAs(_("png")) || ext.IsSameAs(_("pnm")) || ext.IsSameAs(_("tif")) || ext.IsSameAs(_("xpm"))) { ext = _("*.") + ext; #ifndef WX_28 unsigned i; for (i = 0; i < handler->GetAltExtensions().GetCount(); ++i) { ext += _(";*."); ext += handler->GetAltExtensions()[i]; } #endif name += _(" ("); name += ext; name += _(")"); #ifdef __WXGTK__ /* do something (not perfect...) about case sensitivity */ ext += _(";"); ext += ext.Upper(); #endif all += ext; all += _(";"); if (!first) { res += _("|"); } res += name + _("|") + ext; first = false; } } #ifndef __WXGTK__ if (!save) { res += _("|All files|*.*"); res = _("Image files|") + all + _("|") + res; } #else res += _("|All files|*.*"); res = _("Image files|") + all + _("|") + res; #endif return res; } tintii-2.8.2/src/indii/image/FileImageResource.hpp0000644000175000001440000000147712236200473016760 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_IMAGE_FILEIMAGERESOURCE_HPP #define INDII_IMAGE_FILEIMAGERESOURCE_HPP #include "ImageResource.hpp" #include "wx/string.h" namespace indii { /** * File based image resource manager. */ class FileImageResource : public ImageResource { public: /** * Constructor. * * @param path Path name of the image. */ FileImageResource(const wxString& path); /** * Destructor. */ virtual ~FileImageResource(); }; } #endif tintii-2.8.2/src/indii/image/ColourSpace.hpp0000644000175000001440000001403412236200473015636 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_IMAGE_COLOURSPACE_HPP #define INDII_IMAGE_COLOURSPACE_HPP #include "boost/numeric/ublas/vector.hpp" namespace indii { /** * Colour space. */ class ColourSpace { public: /* * Types of colour tuples. */ typedef boost::numeric::ublas::vector > rgb_t; typedef boost::numeric::ublas::vector > hsl_t; /** * Constructor. */ ColourSpace(); /** * Get red channel lightness proportion. * * @return Red channel proportion. */ float getRedMix(); /** * Get green channel lightness proportion. * * @return Green channel proportion. */ float getGreenMix(); /** * Get blue channel lightness proportion. * * @return Blue channel proportion. */ float getBlueMix(); /** * Set channel proportions for lightness. * * @param r Red channel proportion. * @param g Green channel proportion. * @param b Blue channel proportion. */ void setLightness(const float r, const float g, const float b); /** * Convert RGB to HSL coordinates using greyscale parameters. * * @param in Input RGB values. * @param[out] out Output HSL values. */ void rgb2hsl(const rgb_t& rgb, hsl_t& hsl); /** * Convert RGB to L using greyscale parameters. * * @param r Red channel value. * @param g Green channel value. * @param b Blue channel value. * * @return l Lightness. */ float rgb2l(const float r, const float g, const float b); /** * Convert RGB to HSL coordinates using greyscale parameters. * * @param in Input HSL values. * @param[out] out Output RGB values. */ void hsl2rgb(const hsl_t& hsl, rgb_t& rgb); private: /** * Lightness proportions. */ float greyR, greyG, greyB; }; } #include "ImageManipulation.hpp" #define BASE_R 1.0f #define BASE_G 1.0f/3.0f #define BASE_B 2.0f/3.0f inline float indii::ColourSpace::getRedMix() { return greyR; } inline float indii::ColourSpace::getGreenMix() { return greyG; } inline float indii::ColourSpace::getBlueMix() { return greyB; } inline float indii::ColourSpace::rgb2l(const float r, const float g, const float b) { return greyR * r + greyG * g + greyB * b; } inline void indii::ColourSpace::rgb2hsl(const rgb_t& rgb, hsl_t& hsl) { float& h = hsl(0); float& s = hsl(1); float& l = hsl(2); const float& r = rgb(0); const float& g = rgb(1); const float& b = rgb(2); float k1, k2, k3; /* post-condition */ assert(r >= 0.0f && r <= 1.0f); assert(g >= 0.0f && g <= 1.0f); assert(b >= 0.0f && b <= 1.0f); /* lightness */ l = greyR * r + greyG * g + greyB * b; /* hue & saturation */ if (r == g && g == b) { // special case for greys h = 0.0f; s = 0.0f; } else if (r >= g) { if (g >= b) { // r > g > b k1 = g - b; k2 = r - b; k3 = r + b; h = (k1 / k2)/6.0f; s = k2 / k3; } else if (r >= b) { // r > b > g k1 = b - g; k2 = r - g; k3 = r + g; h = BASE_R - (k1 / k2)/6.0f; s = k2 / k3; } else { // b > r > g k1 = r - g; k2 = b - g; k3 = b + g; h = BASE_B + (k1 / k2)/6.0f; s = k2 / k3; } } else { if (r >= b) { // g > r > b k1 = r - b; k2 = g - b; k3 = g + b; h = BASE_G - (k1 / k2)/6.0f; s = k2 / k3; } else if (g >= b) { // g > b > r k1 = b - r; k2 = g - r; k3 = g + r; h = BASE_G + (k1 / k2)/6.0f; s = k2 / k3; } else { // b > g > r k1 = g - r; k2 = b - r; k3 = b + r; h = BASE_B - (k1 / k2)/6.0f; s = k2 / k3; } } /* relaxed IEEE compliance, so make sure result bounded as expected */ h = bound(0.0f, h, 1.0f); s = bound(0.0f, s, 1.0f); l = bound(0.0f, l, 1.0f); } inline void indii::ColourSpace::hsl2rgb(const hsl_t& hsl, rgb_t& rgb) { float& r = rgb(0); float& g = rgb(1); float& b = rgb(2); const float& h = hsl(0); const float& s = hsl(1); const float& l = hsl(2); float k1, k2, k3; assert(h >= 0.0f && h <= 1.0f); assert(s >= 0.0f && s <= 1.0f); assert(l >= 0.0f && l <= 1.0f); if (s == 0.0f) { // special case for greys r = l; g = l; b = l; } else { k2 = (s - 1.0f) / (s + 1.0f); switch (static_cast(6.0f*h)) { case 0: // r > g > b k1 = 6.0f*h; k3 = k1 + k2 * (k1 - 1.0f); r = l / (greyR + greyG * k3 - greyB * k2); g = k3 * r; b = -k2 * r; break; case 1: // g > r > b k1 = 6.0f*(h - BASE_G); k3 = -k1 - k2 * (k1 + 1.0f); g = l / (greyG + greyR * k3 - greyB * k2); r = k3 * g; b = -k2 * g; break; case 2: // g > b > r k1 = 6.0f*(h - BASE_G); k3 = k1 + k2 * (k1 - 1.0f); g = l / (greyG + greyB * k3 - greyR * k2); b = k3 * g; r = -k2 * g; break; case 3: // b > g > r k1 = 6.0f*(h - BASE_B); k3 = -k1 - k2 * (k1 + 1.0f); b = l / (greyB + greyG * k3 - greyR * k2); g = k3 * b; r = -k2 * b; break; case 4: // b > r > g k1 = 6.0f*(h - BASE_B); k3 = k1 + k2 * (k1 - 1.0f); b = l / (greyB + greyR * k3 - greyG * k2); r = k3 * b; g = -k2 * b; break; case 5: // r > b > g k1 = 6.0f*(h - BASE_R); k3 = -k1 - k2 * (k1 + 1.0f); r = l / (greyR + greyB * k3 - greyG * k2); b = k3 * r; g = -k2 * r; break; default: assert(false); } } /* relaxed IEEE compliance, so make sure result bounded as expected */ r = bound(0.0f, r, 1.0f); g = bound(0.0f, g, 1.0f); b = bound(0.0f, b, 1.0f); } #endif tintii-2.8.2/src/indii/image/Image.cpp0000644000175000001440000000224212236200473014432 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev: 500 $ * $Date: 2013-08-16 19:04:13 +0800 (Fri, 16 Aug 2013) $ */ #include "Image.hpp" #include "ImageManipulation.hpp" #include "boost/numeric/ublas/matrix_proxy.hpp" indii::Image::Image(const int width, const int height) : r(height, width), g(height, width), b(height, width) { // } indii::Image::Image(const Image& img, const float scale) { const int width = std::floor(img.getWidth()/scale); const int height = std::floor(img.getHeight()/scale); r.resize(width, height, false); g.resize(width, height, false); b.resize(width, height, false); for (int x = 0; x < width; ++x) { for (int y = 0; y < height; ++y) { int y1 = std::floor(y*scale); int x1 = std::floor(x*scale); r(y,x) = img.r(y1, x1); g(y,x) = img.g(y1, x1); b(y,x) = img.b(y1, x1); } } } tintii-2.8.2/src/indii/image/ColourSpace.cpp0000644000175000001440000000173212236200473015632 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include "ColourSpace.hpp" using namespace indii; using namespace std; ColourSpace::ColourSpace() { greyR = 0.299f; greyG = 0.587f; greyB = 0.114f; } void ColourSpace::setLightness(const float r, const float g, const float b) { /* pre-conditions */ assert (r >= 0.0 && r <= 1.0); assert (g >= 0.0 && g <= 1.0); assert (b >= 0.0 && b <= 1.0); if (r > 0.0f || g > 0.0f || b > 0.0f) { float sum = r + g + b; greyR = r/sum; greyG = g/sum; greyB = b/sum; } else { /* limit, as if all equal */ greyR = 1.0f/3.0f; greyG = 1.0f/3.0f; greyB = 1.0f/3.0f; } } tintii-2.8.2/src/indii/image/ImageResource.hpp0000644000175000001440000000527112236200473016154 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_IMAGE_IMAGERESOURCE_HPP #define INDII_IMAGE_IMAGERESOURCE_HPP #include "ImageCache.hpp" #include "Image.hpp" namespace indii { /** * Abstract image resource manager. */ class ImageResource { public: /** * Constructor. */ ImageResource(); /** * Destructor. */ virtual ~ImageResource(); /** * Fit scale within upper bounds. * * @param widthBound Width bound. * @param heightBound Height bound. * * @return Scale. * * Calculates the largest scale of the image such that its width does not * exceed @p widthBound and its height does not exceed @p heightBound, * while maintaining the aspect ratio. */ int fitScale(const int widthBound, const int heightBound); /** * Get width of the image. * * @return Width of image. */ int getWidth() const; /** * Get height of the image. * * @return Height of the image. */ int getHeight() const; /** * Get image. * * @param scale * * @return A version of the image of the specified size. */ Image* get(const float scale = 1.0f); /** * Get low quality image. * * @param scale * * @return A version of the image of the specified size. */ Image* getLow(const float scale = 1.0f); /** * Get image for display. * * @param width Width of image in pixels. */ wxImage* getDisplay(const int width); /** * Original image. */ Image* original; /** * Resized image cache. */ ImageCache* cache; }; } inline int indii::ImageResource::fitScale(const int widthBound, const int heightBound) { /* pre-condition */ assert(widthBound >= 0); assert(heightBound >= 0); int widthScale = (getWidth() + widthBound - 1) / widthBound; int heightScale = (getHeight() + heightBound - 1) / heightBound; return std::max(widthScale, heightScale); } inline int indii::ImageResource::getWidth() const { return original->getWidth(); } inline int indii::ImageResource::getHeight() const { return original->getHeight(); } inline indii::Image* indii::ImageResource::get(const float scale) { return cache->get(scale); } inline indii::Image* indii::ImageResource::getLow(const float scale) { return cache->getLow(scale); } inline wxImage* indii::ImageResource::getDisplay(const int width) { return cache->getDisplay(width); } #endif tintii-2.8.2/src/indii/image/ImageCache.hpp0000644000175000001440000000337412236200473015372 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_IMAGE_IMAGECACHE_HPP #define INDII_IMAGE_IMAGECACHE_HPP #include "Image.hpp" #include "wx/image.h" #include namespace indii { /** * Cache of various versions of an image. */ class ImageCache { public: /** * Constructor. * * @param original Original image. */ ImageCache(Image* original); /** * Destructor. */ virtual ~ImageCache(); /** * Get resized image. * * @param scale Inverse scale of the new image. * * @return The resized image, drawn from the cache if available. */ Image* get(const float scale); /** * Get resized image, low quality. * * @param scale Inverse scale of the new image. * * @return The resized image, drawn from the cache if available. */ Image* getLow(const float scale); /** * Get display image. * * @param width Width of the image in pixels. */ wxImage* getDisplay(const int width); private: /** * Image cache. */ typedef std::map cache_t; /** * Display image cache. */ typedef std::map display_cache_t; /** * Original image. */ Image* original; /** * Original display image. */ wxImage* displayOriginal; /** * Cache. */ cache_t cache; /** * Low quality cache. */ cache_t lowCache; /** * Display cache. */ display_cache_t displayCache; }; } #endif tintii-2.8.2/src/indii/image/ImageManipulation.hpp0000644000175000001440000002432612236200473017027 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_IMAGE_IMAGEMANIPULATION_HPP #define INDII_IMAGE_IMAGEMANIPULATION_HPP #include "Image.hpp" #include "wx/image.h" #include "boost/numeric/ublas/matrix.hpp" #include "boost/numeric/ublas/matrix_sparse.hpp" namespace indii { /** * Image channel element type. */ typedef float channel_element; /** * Dense image channel. */ typedef boost::numeric::ublas::matrix channel; /** * Sparse image channel. */ typedef boost::numeric::ublas::mapped_matrix sparse_channel; /** * Image mask element type. */ typedef bool mask_element; /** * Dense image mask. */ typedef boost::numeric::ublas::matrix mask; /** * Sparse image channel. */ typedef boost::numeric::ublas::mapped_matrix sparse_mask; /** * Threshold value. * * @param x Value to threshold. * @param a Threshold point. * @param edge Edge softness. * * @return Thresholded value. */ float threshold(const float x, const float a, const float edge); /** * Calculate saturation. * * @param r Red value. * @param g Green value. * @param b Blue value. * * @return Saturation. */ float saturation(const float r, const float g, const float b); /** * Round and cast float to unsigned char. */ static unsigned char uround(const float val); /** * Round and cast float to unsigned char. */ static int intround(const float val); /** * Bound value above and below. * * @param lower Lower bound. * @param value Value. * @param upper Upper bound. */ float bound(const float lower, const float value, const float upper); /** * Bound value above . * * @param value Value. * @param upper Upper bound. */ float upper_bound(const float value, const float upper); /** * Bound value below. * * @param lower Lower bound. * @param value Value. */ float lower_bound(const float lower, const float value); /** * Scale channel or mask. * * @tparam T Channel or mask type. * * @param src Source channel or mask. * @param dst Destination channel or mask. * * @p src is sampled to build @p dst. */ template void scale(const T& src, T& dst); /** * Hide image. * * @param image Image. * * The alpha channel across the entire image is set to transparent. */ void hide(wxImage& image); /** * Hide image, with mask. * * @tparam M Mask type. * * @param image Image. * @param m Mask. * * The alpha channel of the area indicated by @p m is made transparent. */ template void hide(wxImage& image, const M& m); /** * Show image. * * @param image Image. * * The alpha channel across the entire image is set to opaque. */ void show(wxImage& image); /** * Show image, with mask. * * @tparam M Mask type. * * @param image Image. * @param m Mask. * * The alpha channel of the area indicated by @p m is made opaque. */ template void show(wxImage& image, const M& m); /** * Show image, with mask. * * @tparam M Mask type. * * @param image Image. * @param rect Rectangle to show. * * The alpha channel of the area indicated by @p rect is made opaque. */ void show(wxImage& image, const wxRect& rect); /** * Mask channel. * * @tparam C1 channel type. * @tparam C2 channel type. * @tparam M mask type. * * @param c The channel. * @param m The mask. * @param result The result. */ template void maskChannel(const C1& c, const M& m, C2& result); /** * Update alpha of image, with channel. * * @tparam C Channel type. * * @param image Image to update. * @param c Alpha channel. * * The alpha channel is updated according to the alpha values provided by * @p c. */ template void applyAlpha(wxImage& image, const C& c); /** * Update alpha channel of image, with channel and mask. * * @tparam M Mask type. * @tparam C Channel type. * * @param image Image to update. * @param m Mask defining update region. * @param c Alpha channel. * * The alpha channel of the area indicated by @p m is updated according to * the alpha values provided by @p c. */ template void applyAlpha(wxImage& image, const M& m, const C& c); /** * Convert an image to a wxImage for writing or display. * * @param in Input image. * @param out Output image. */ void convert(const Image& in, wxImage& out); /** * Convert a wxImage to an image. * * @param in Input image. * @param out Output image. */ void convert(const wxImage& in, Image& out); /** * Return a list of file types and extensions for use with wxFileDialog. * * @param save Is this for a save dialog? */ wxString wildcards(const bool save = false); } #ifdef __WXMSW__ /* defined as macros in windows.h, which clashes with std::min and std::max, * so undef */ #undef min #undef max #endif inline float indii::saturation(const float r, const float g, const float b) { float mn, mx, s; mn = std::min(std::min(r, g), b); mx = std::max(std::max(r, g), b); if (mx > 0.0f) { s = 1.0f - mn / mx; } else { s = 0.0f; } return s; } inline unsigned char indii::uround(const float val) { if (val >= 1.0f) { return 255; } else if (val <= 0.0) { return 0; } else { return static_cast(255.0f*val); } } inline int indii::intround(const float val) { if (val >= 0.0f) { return static_cast(val + 0.5f); } else { return static_cast(val - 0.5f); } } inline float indii::bound(const float lower, const float value, const float upper) { if (!(value >= lower)) { // handles nan return lower; } else if (value > upper) { return upper; } else { return value; } } inline float indii::upper_bound(const float value, const float upper) { return (value > upper) ? upper : value; } inline float indii::lower_bound(const float lower, const float value) { return (value < lower) ? lower : value; } inline float indii::threshold(const float x, const float a, const float edge) { /* pre-condition */ assert(x >= 0.0f && x <= 1.0f); assert(a >= 0.0f && a <= 1.0f); assert(edge >= 0.0 && edge <= 1.0); if (edge == 0.0f) { /* limit case */ return (x >= a) ? 1.0f : 0.0f; } else { //return 1.0f / (1.0f + expf(-logf(255.0f)*(x - a))); return 1.0f / (1.0f + std::pow(255.0f, (a - x) / edge)); } } template void indii::scale(const T& src, T& dst) { int srcX, srcY, dstX, dstY; int srcWidth, srcHeight, dstWidth, dstHeight; double widthFactor, heightFactor; srcWidth = src.size2(); srcHeight = src.size1(); dstWidth = dst.size2(); dstHeight = dst.size1(); widthFactor = (double) srcWidth / dstWidth; heightFactor = (double) srcHeight / dstHeight; dst.clear(); for (dstY = 0; dstY < dstHeight; dstY++) { for (dstX = 0; dstX < dstWidth; dstX++) { srcX = static_cast(widthFactor * dstX); srcY = static_cast(heightFactor * dstY); if (src(srcY, srcX) > 0.0) { dst(dstY, dstX) = src(srcY, srcX); } } } } template void indii::hide(wxImage& image, const M& m) { /* pre-conditions */ assert((unsigned int )image.GetWidth() == m.size2()); assert((unsigned int )image.GetHeight() == m.size1()); int x, y; typename M::const_iterator1 iter1; typename M::const_iterator2 iter2; if (!image.HasAlpha()) { image.InitAlpha(); } for (iter1 = m.begin1(); iter1 != m.end1(); iter1++) { for (iter2 = iter1.begin(); iter2 != iter1.end(); iter2++) { x = iter2.index2(); y = iter2.index1(); if (m(y, x)) { image.SetAlpha(x, y, (unsigned char) 0); } } } } template void indii::show(wxImage& image, const M& m) { /* pre-conditions */ assert((unsigned int )image.GetWidth() == m.size2()); assert((unsigned int )image.GetHeight() == m.size1()); int x, y; typename M::const_iterator1 iter1; typename M::const_iterator2 iter2; if (!image.HasAlpha()) { image.InitAlpha(); } for (iter1 = m.begin1(); iter1 != m.end1(); iter1++) { for (iter2 = iter1.begin(); iter2 != iter1.end(); iter2++) { x = static_cast(iter2.index2()); y = static_cast(iter2.index1()); if (m(y, x)) { image.SetAlpha(x, y, (unsigned char) 255); } } } } template void indii::maskChannel(const C1& c, const M& m, C2& result) { /* pre-conditions */ assert(result.size1() == c.size1()); assert(result.size2() == c.size2()); assert(result.size1() == m.size1()); assert(result.size2() == m.size2()); unsigned int x, y; typename M::const_iterator1 iter1; typename M::const_iterator2 iter2; for (iter1 = m.begin1(); iter1 != m.end1(); iter1++) { for (iter2 = iter1.begin(); iter2 != iter1.end(); iter2++) { x = iter2.index2(); y = iter2.index1(); if (m(y, x)) { result(y, x) = c(y, x); } } } } template void indii::applyAlpha(wxImage& image, const C& c) { /* pre-conditions */ assert((unsigned int)image.GetWidth() == c.size2()); assert((unsigned int)image.GetHeight() == c.size1()); int x, y; const int width = image.GetWidth(); const int height = image.GetHeight(); if (!image.HasAlpha()) { image.InitAlpha(); } for (y = 0; y < height; y++) { for (x = 0; x < width; x++) { image.SetAlpha(x, y, uround(255.0f*c(y, x))); } } } template void indii::applyAlpha(wxImage& image, const M& m, const C& c) { /* pre-conditions */ assert((unsigned int)image.GetWidth() == m.size2()); assert((unsigned int)image.GetHeight() == m.size1()); assert((unsigned int)image.GetWidth() == c.size2()); assert((unsigned int)image.GetHeight() == c.size1()); int x, y; typename M::const_iterator1 iter1; typename M::const_iterator2 iter2; if (!image.HasAlpha()) { image.InitAlpha(); } for (iter1 = m.begin1(); iter1 != m.end1(); iter1++) { for (iter2 = iter1.begin(); iter2 != iter1.end(); iter2++) { x = iter2.index2(); y = iter2.index1(); if (m(y, x)) { image.SetAlpha(x, y, uround(255.0f*c(y, x))); } } } } #endif tintii-2.8.2/src/indii/image/Image.hpp0000644000175000001440000000235212236200473014441 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev: 500 $ * $Date: 2013-08-16 19:04:13 +0800 (Fri, 16 Aug 2013) $ */ #ifndef INDII_IMAGE_IMAGE_HPP #define INDII_IMAGE_IMAGE_HPP #include "boost/numeric/ublas/matrix.hpp" namespace indii { /** * Image. */ class Image { public: /** * Constructor. * * @param width Width of the image. * @param height Height of the image. */ Image(const int width, const int height); /** * Constructor. * * @param img Existing image. * @param scale Inverse scale of the new image. */ Image(const Image& img, const float scale = 1); /** * Width of image. */ int getWidth() const; /** * Height of image. */ int getHeight() const; /** * Channels. */ boost::numeric::ublas::matrix r, g, b; }; } inline int indii::Image::getWidth() const { return r.size2(); } inline int indii::Image::getHeight() const { return r.size1(); } #endif tintii-2.8.2/src/indii/cluster/0000755000175000001440000000000012236200475013365 500000000000000tintii-2.8.2/src/indii/cluster/ClusterVector.hpp0000644000175000001440000000141412236200473016620 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_CLUSTER_CLUSTERVECTOR_HPP #define INDII_CLUSTER_CLUSTERVECTOR_HPP #include "boost/numeric/ublas/vector.hpp" namespace indii { /** * Vector type. * * @tparam T Datum element type. */ template class ClusterVector { public: static const unsigned N = 3; typedef boost::numeric::ublas::vector > type; }; } #endif tintii-2.8.2/src/indii/cluster/KMeansClusterer.hpp0000644000175000001440000002226212236200473017067 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_CLUSTER_KMEANSCLUSTERER_HPP #define INDII_CLUSTER_KMEANSCLUSTERER_HPP #include "ClusterVector.hpp" #include "DataSet.hpp" #include "PearsonDistance.hpp" #include "boost/random.hpp" #include namespace indii { /** * Sorting comparison for centroids. */ template struct CentroidCmp { bool operator()(const typename ClusterVector::type& a, const typename ClusterVector::type& b) { unsigned i; for (i = 0; i < a.size(); ++i) { if (a(i) != b(i)) { return a(i) > b(i); } } return false; } }; /** * K-means clustering algorithm. * * @author Lawrence Murray * @version $Rev$ * @date $Date$ * * @tparam T Datum element type. * @tparam W Weight type. * @tparam K Cluster index type. * @tparam D Distance metric type. */ template > class KMeansClusterer { public: /** * Distance type. */ typedef D distance_type; /** * Constructor * * @param k Number of clusters. * @param seed Random number seed. */ KMeansClusterer(K k, const unsigned seed); /** * Perform steps of the clustering algorithm until convergence or a * maximum number of iterations is reached. * * @param data Data set to cluster. * @param maxIters Maximum number of iterations to perform, zero for * no limit (use with caution!). */ void cluster(const DataSet& data, unsigned maxIters = 0); /** * Determine the nearest cluster for a given point. * * @param x The point. This may be arbitrary, it needn't have been used in * forming the current set of clusters. * @param distance If given, on return, gives the distance of the datum from * its assigned cluster centroid. * * @return Nearest cluster for the given point. */ K assign(const typename ClusterVector::type& x, T* distance = NULL) const; /** * Determine normalised distance of point from each centroid. * * @param x The point. This may be arbitrary, it needn't have been used in * forming the current set of clusters. * @param[out] ds Vector of length equal to the number of clusters, into which * normalised distances will be written. */ void distances(const typename ClusterVector::type& x, std::vector& ds) const; /** * Get centroids. * * @return Centroids. */ const std::vector::type>& getCentroids(); /** * Get centroid. * * @param i Cluster number. * * @return Centroid for the given cluster. */ const typename ClusterVector::type& getCentroid(const unsigned i); /** * Set centroid. * * @param i Cluster number. * @param x Centroid for cluster @p i */ void setCentroid(const unsigned i, const typename ClusterVector::type& x); /** * Get estimate of error inherent in the current clustering. * * @return Error of the current clustering. */ double getError(); private: /** * Calculate centroids. * * @param data Data set. * @param clusters Assignment of points in data set to clusters. */ void calculateCentroids(const DataSet& data, const std::vector& clusters); /** * Number of clusters. */ const unsigned short k; /** * Error inherent in current clustering. */ double error; /** * Centroids. */ std::vector::type> centroids; /* * Random number generation. Mersenne Twister would be better than Linear * Congruential for random number generation, but appears to give compile * errors in Visual C++ 9 */ typedef boost::uniform_int<> RandomClusterDist; typedef boost::minstd_rand RandomClusterRNG; typedef boost::variate_generator RandomClusterGen; RandomClusterDist dist; RandomClusterRNG rng; RandomClusterGen randomCluster; }; } template indii::KMeansClusterer::KMeansClusterer(K k, const unsigned seed) : k(k), dist(0, k-1), rng(), randomCluster(rng,dist) { rng.seed(seed); /* centroids */ unsigned i; typename ClusterVector::type centroid(3); for (i = 0; i < k; i++) { centroids.push_back(centroid); } } template void indii::KMeansClusterer::cluster(const DataSet& data, unsigned maxIters) { unsigned i, j, size = data.getSize(), iters = 0, changes = 1; T distance; K newK, currentK; std::vector clusters; typename std::vector::iterator clustersIter; typename DataSet::data_set_const_iterator dataIter, dataEnd; /* allocate space for centroids */ typename ClusterVector::type x(data.getDimensions()); centroids.clear(); for (i = 0; i < k; i++) { for (j = 0; j < x.size(); j++) { x(j) = randomCluster(); } D::prepare(x); centroids.push_back(x); } /* initialise with random clustering */ for (i = 0; i < size; i++) { clusters.push_back(static_cast(randomCluster())); } /* iterate */ while (changes > 0 && iters < maxIters) { changes = 0; error = 0.0; /* assign data to nearest centroid */ clustersIter = clusters.begin(); dataIter = data.begin(); dataEnd = data.end(); while (dataIter != dataEnd) { currentK = *clustersIter; newK = assign(dataIter->first, &distance); error += distance*distance; if (newK != currentK) { changes++; *clustersIter = newK; } clustersIter++; dataIter++; } /* recalculate centroids */ calculateCentroids(data, clusters); iters++; } /* sort centroids */ std::sort(centroids.begin(), centroids.end(), CentroidCmp()); } template inline K indii::KMeansClusterer::assign( const typename ClusterVector::type& x, T* distance) const { /* pre-condition */ assert (centroids.size() == k); unsigned i = 0; T d = D::distance(centroids[i], x); unsigned imin = i; T dmin = d; for (i = 1; i < k; i++) { d = D::distance(centroids[i], x); if (d < dmin) { dmin = d; imin = i; } } if (distance != NULL) { *distance = dmin; } return imin; } template inline void indii::KMeansClusterer::distances( const typename ClusterVector::type& x, std::vector& ds) const { /* pre-condition */ assert (ds.size() == k); unsigned i; for (i = 0; i < k; ++i) { ds[i] = D::distance(centroids[i], x); } } template inline const std::vector::type>& indii::KMeansClusterer::getCentroids() { return centroids; } template inline const typename indii::ClusterVector::type& indii::KMeansClusterer::getCentroid(const unsigned i) { /* pre-condition */ assert (i < k); return centroids[i]; } template void indii::KMeansClusterer::setCentroid(const unsigned i, const typename ClusterVector::type& x) { /* pre-condition */ assert (i < k); centroids[i].resize(x.size()); centroids[i] = x; } template inline double indii::KMeansClusterer::getError() { return error; } template void indii::KMeansClusterer::calculateCentroids( const DataSet& data, const std::vector& clusters) { /* pre-condition */ assert (data.getSize() == clusters.size()); std::vector centroidWeights; typename std::vector::type>::iterator centroidsIter, centroidsEnd; typename std::vector::iterator centroidWeightsIter; typename DataSet::data_set_const_iterator dataIter, dataEnd; typename std::vector::const_iterator clustersIter; unsigned i; /* initialise centroids to zero */ centroidsIter = centroids.begin(); centroidsEnd = centroids.end(); while (centroidsIter != centroidsEnd) { centroidsIter->clear(); centroidsIter++; } /* initialise centroid weights to zero */ for (i = 0; i < k; i++) { centroidWeights.push_back(0); } /* calculate centroids as means */ clustersIter = clusters.begin(); dataIter = data.begin(); dataEnd = data.end(); while (dataIter != dataEnd) { noalias(centroids[*clustersIter]) += dataIter->first * dataIter->second; centroidWeights[*clustersIter] += dataIter->second; dataIter++; clustersIter++; } centroidsIter = centroids.begin(); centroidsEnd = centroids.end(); centroidWeightsIter = centroidWeights.begin(); while (centroidsIter != centroidsEnd) { if (*centroidWeightsIter > 0.0) { *centroidsIter /= *centroidWeightsIter; } D::prepare(*centroidsIter); centroidsIter++; centroidWeightsIter++; } } #endif tintii-2.8.2/src/indii/cluster/DataSet.hpp0000644000175000001440000000640412236200473015345 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_CLUSTER_DATASET_HPP #define INDII_CLUSTER_DATASET_HPP #include "ClusterVector.hpp" #include namespace indii { /** * Weighted data set for clustering. * * @tparam T Datum type. * @tparam W Weight type. */ template class DataSet { public: /** * Vector comparison for map. */ struct vectorCmp { bool operator()(const typename ClusterVector::type& x1, const typename ClusterVector::type& x2) const { typename ClusterVector::type::const_iterator iter1, iter2, end1; iter1 = x1.begin(); iter2 = x2.begin(); end1 = x1.end(); while (iter1 != end1) { if (*iter1 == *iter2) { iter1++; iter2++; } else { return *iter1 < *iter2; } } return false; } }; /** * Data set. */ typedef std::map::type,W,vectorCmp> data_set; /** * Data set iterator. */ typedef typename data_set::iterator data_set_iterator; /** * Data set constant iterator. */ typedef typename data_set::const_iterator data_set_const_iterator; /** * Get dimensionality of data set. * * @return Dimensionality of data set. */ static unsigned int getDimensions(); /** * Get number of points in data set. * * @return Number of points in data set. */ unsigned int getSize() const; /** * Add datum. * * @param x The datum. * @param w Unnormalized weight of the datum. */ void add(const typename ClusterVector::type& x, const W w = 1); /** * Clear the data set. */ void clear(); /** * Get iterator to the beginning of the data set. * * @return Iterator to the beginning of the data set. */ data_set_const_iterator begin() const; /** * Get iterator to the end of the data set. * * @return Iterator to the end of the data set. */ data_set_const_iterator end() const; private: /** * Data set. */ data_set data; }; } template unsigned int indii::DataSet::getDimensions() { return ClusterVector::N; } template unsigned int indii::DataSet::getSize() const { return (unsigned int)data.size(); } template void indii::DataSet::add( const typename ClusterVector::type& x, const W w) { /* pre-condition */ assert (x.size() == ClusterVector::N); data_set_iterator find = data.find(x); if (find != data.end()) { find->second += w; } else { data.insert(make_pair(x, w)); } } template void indii::DataSet::clear() { data.clear(); } template typename indii::DataSet::data_set_const_iterator indii::DataSet::begin() const { return data.begin(); } template typename indii::DataSet::data_set_const_iterator indii::DataSet::end() const { return data.end(); } #endif tintii-2.8.2/src/indii/cluster/PearsonDistance.hpp0000644000175000001440000000370512236200473017103 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_CLUSTER_PEARSONDISTANCE_HPP #define INDII_CLUSTER_PEARSONDISTANCE_HPP #include "ClusterVector.hpp" namespace indii { /** * Pearson distance. * * @tparam T Datum element type. */ template class PearsonDistance { public: /** * Preprocess point. * * @param x Point. */ static void prepare(typename ClusterVector::type& x); /** * Calculate distance. * * @param x1 First point. * @param x2 Second point, should have same size as first. * * @return %Distance between the two points. */ static T distance(const typename ClusterVector::type& x1, const typename ClusterVector::type& x2); }; } #include template inline void indii::PearsonDistance::prepare( typename ClusterVector::type& x) { /* pre-condition */ assert (x.size() == ClusterVector::N); static const unsigned int N = ClusterVector::N; T mu = boost::numeric::ublas::sum(x) / N; x -= boost::numeric::ublas::scalar_vector(N,mu); T norm = boost::numeric::ublas::norm_2(x); if (norm > 0.0) { x /= norm; } else { x = boost::numeric::ublas::zero_vector(N); } } template inline T indii::PearsonDistance::distance( const typename ClusterVector::type& x1, const typename ClusterVector::type& x2) { /* pre-condition */ assert (x1.size() == x2.size()); T d = T(0.5)*(T(1.0) - boost::numeric::ublas::inner_prod(x1, x2)); /* relaxed IEEE compliance, so make sure this is bound as expected */ //d = std::max((T)0.0, std::min(d, (T)1.0)); return d; } #endif tintii-2.8.2/src/indii/cluster/EuclideanDistance.hpp0000644000175000001440000000225312236200473017362 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef INDII_CLUSTER_EUCLIDEANDISTANCE_HPP #define INDII_CLUSTER_EUCLIDEANDISTANCE_HPP #include "ClusterVector.hpp" namespace indii { /** * Euclidean distance. * * @tparam T Datum element type. */ template class EuclideanDistance { public: /** * Calculate distance. * * @param x1 First point. * @param x2 Second point, should have same size as first. * * @return %Distance between the two points. */ static T distance(const typename ClusterVector::type& x1, const typename ClusterVector::type& x2); }; } T indii::EuclideanDistance::distance( const typename ClusterVector::type& x1, const typename ClusterVector::type& x2) { /* pre-condition */ assert (x1.size() == x2.size()); return boost::numeric::ublas::norm_2(x2 - x1); } #endif tintii-2.8.2/src/indii/images/0000755000175000001440000000000012236200475013151 500000000000000tintii-2.8.2/src/indii/images/indii.hpp0000644000175000001440000000121212236200473014670 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev: 363 $ * $Date: 2012-01-22 18:45:43 +0800 (Sun, 22 Jan 2012) $ */ #ifndef INDII_IMAGES_INDII_HPP #define INDII_IMAGES_INDII_HPP #include #ifndef WX_PRECOMP #include #endif extern void indii_initialize_images(void); extern wxBitmap *_img_indii_stipple; #endif tintii-2.8.2/src/indii/images/indii.cpp0000644000175000001440000000220012236200473014661 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev: 363 $ * $Date: 2012-01-22 18:45:43 +0800 (Sun, 22 Jan 2012) $ */ #include "indii.hpp" #include "wx/bitmap.h" #include "wx/mstream.h" wxBitmap *_img_indii_stipple; void indii_initialize_images() { { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000\b\000\000\000\b\b\002\000\000\000Km)\334\000\000\000\001sRGB\000\256\316\034\351\000\000\000\011pHYs\000\000\013\023\000\000\013\023\001\000\232\234\030\000\000\000\atIME\a\334\002\013\006;.\340\000<\320\000\000\000>IDAT\b\327u\2141\n\3000\020\303\034\323E\177\272\377\177\311k\207@p\n\365f\011\264f\006\320\275$\006\222|(`I\3556\225\364\354\177\334\311Z?s\027\272\351\356v\323M\333\275\265\230$\341\366CD\314\000\000\000\000IEND\256B`\202", 172); _img_indii_stipple = new wxBitmap(wxImage(sm)); } return; } tintii-2.8.2/src/gnome/0000755000175000001440000000000012236200475011715 500000000000000tintii-2.8.2/src/gnome/gnome.hpp0000644000175000001440000000564712236200473013465 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray/Users/lawrence/tintii/images/gnome/gnome.hpp * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #ifndef GNOME_HPP #define GNOME_HPP #include #ifndef WX_PRECOMP # include #endif extern void gnome_initialize_images(); extern void gnome_scale_images(const double contentScale = 1.0); extern wxBitmap* gnome_retinize(wxBitmap* bmp); extern wxBitmap *_img_gnome_dialog_information; extern wxBitmap *_img_gnome_document_open; extern wxBitmap *_img_gnome_document_save_as; extern wxBitmap *_img_gnome_document_save; extern wxBitmap *_img_gnome_emblem_favorite; extern wxBitmap *_img_gnome_emblem_web; extern wxBitmap *_img_gnome_help_browser; extern wxBitmap *_img_gnome_list_add; extern wxBitmap *_img_gnome_list_remove; extern wxBitmap *_img_gnome_package_x_generic; extern wxBitmap *_img_gnome_preferences_system_windows; extern wxBitmap *_img_gnome_system_run; extern wxBitmap *_img_gnome_window_new; extern wxBitmap *_img_gnome_zoom_best_fit; extern wxBitmap *_img_gnome_zoom_in; extern wxBitmap *_img_gnome_zoom_original; extern wxBitmap *_img_gnome_zoom_out; extern wxBitmap *_img_gnome_dialog_information_32; extern wxBitmap *_img_gnome_document_open_32; extern wxBitmap *_img_gnome_document_save_as_32; extern wxBitmap *_img_gnome_document_save_32; extern wxBitmap *_img_gnome_emblem_favorite_32; extern wxBitmap *_img_gnome_emblem_web_32; extern wxBitmap *_img_gnome_help_browser_32; extern wxBitmap *_img_gnome_list_add_32; extern wxBitmap *_img_gnome_list_remove_32; extern wxBitmap *_img_gnome_package_x_generic_32; extern wxBitmap *_img_gnome_preferences_system_windows_32; extern wxBitmap *_img_gnome_system_run_32; extern wxBitmap *_img_gnome_window_new_32; extern wxBitmap *_img_gnome_zoom_best_fit_32; extern wxBitmap *_img_gnome_zoom_in_32; extern wxBitmap *_img_gnome_zoom_original_32; extern wxBitmap *_img_gnome_zoom_out_32; extern wxBitmap *_img_gnome_dialog_information_64; extern wxBitmap *_img_gnome_document_open_64; extern wxBitmap *_img_gnome_document_save_as_64; extern wxBitmap *_img_gnome_document_save_64; extern wxBitmap *_img_gnome_emblem_favorite_64; extern wxBitmap *_img_gnome_emblem_web_64; extern wxBitmap *_img_gnome_help_browser_64; extern wxBitmap *_img_gnome_list_add_64; extern wxBitmap *_img_gnome_list_remove_64; extern wxBitmap *_img_gnome_package_x_generic_64; extern wxBitmap *_img_gnome_preferences_system_windows_64; extern wxBitmap *_img_gnome_system_run_64; extern wxBitmap *_img_gnome_window_new_64; extern wxBitmap *_img_gnome_zoom_best_fit_64; extern wxBitmap *_img_gnome_zoom_in_64; extern wxBitmap *_img_gnome_zoom_original_64; extern wxBitmap *_img_gnome_zoom_out_64; #endif tintii-2.8.2/src/gnome/gnome.cpp0000644000175000001440000110021312236200473013442 00000000000000/** * Copyright (C) 2007-2013 Lawrence Murray * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the Free * Software Foundation; either version 2 of the License, or (at your option) * any later version. * * @author Lawrence Murray * $Rev$ * $Date$ */ #include #ifndef WX_PRECOMP # include #endif #include #include "gnome.hpp" wxBitmap *_img_gnome_dialog_information; wxBitmap *_img_gnome_document_open; wxBitmap *_img_gnome_document_save_as; wxBitmap *_img_gnome_document_save; wxBitmap *_img_gnome_emblem_favorite; wxBitmap *_img_gnome_emblem_web; wxBitmap *_img_gnome_help_browser; wxBitmap *_img_gnome_list_add; wxBitmap *_img_gnome_list_remove; wxBitmap *_img_gnome_package_x_generic; wxBitmap *_img_gnome_preferences_system_windows; wxBitmap *_img_gnome_system_run; wxBitmap *_img_gnome_window_new; wxBitmap *_img_gnome_zoom_best_fit; wxBitmap *_img_gnome_zoom_in; wxBitmap *_img_gnome_zoom_original; wxBitmap *_img_gnome_zoom_out; wxBitmap *_img_gnome_dialog_information_32; wxBitmap *_img_gnome_document_open_32; wxBitmap *_img_gnome_document_save_as_32; wxBitmap *_img_gnome_document_save_32; wxBitmap *_img_gnome_emblem_favorite_32; wxBitmap *_img_gnome_emblem_web_32; wxBitmap *_img_gnome_help_browser_32; wxBitmap *_img_gnome_list_add_32; wxBitmap *_img_gnome_list_remove_32; wxBitmap *_img_gnome_package_x_generic_32; wxBitmap *_img_gnome_preferences_system_windows_32; wxBitmap *_img_gnome_system_run_32; wxBitmap *_img_gnome_window_new_32; wxBitmap *_img_gnome_zoom_best_fit_32; wxBitmap *_img_gnome_zoom_in_32; wxBitmap *_img_gnome_zoom_original_32; wxBitmap *_img_gnome_zoom_out_32; wxBitmap *_img_gnome_dialog_information_64; wxBitmap *_img_gnome_document_open_64; wxBitmap *_img_gnome_document_save_as_64; wxBitmap *_img_gnome_document_save_64; wxBitmap *_img_gnome_emblem_favorite_64; wxBitmap *_img_gnome_emblem_web_64; wxBitmap *_img_gnome_help_browser_64; wxBitmap *_img_gnome_list_add_64; wxBitmap *_img_gnome_list_remove_64; wxBitmap *_img_gnome_package_x_generic_64; wxBitmap *_img_gnome_preferences_system_windows_64; wxBitmap *_img_gnome_system_run_64; wxBitmap *_img_gnome_window_new_64; wxBitmap *_img_gnome_zoom_best_fit_64; wxBitmap *_img_gnome_zoom_in_64; wxBitmap *_img_gnome_zoom_original_64; wxBitmap *_img_gnome_zoom_out_64; void gnome_initialize_images() { { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\a\023IDATX\205\255\226[\214\225W\025\307\377k_\276\357;s\346\314\234\2710\303\300\2643t\246\2550@\265\001\304\022\2111VlH\215&MS-\261/>\351C\037\bI\343\003\2465\2461\226\364A\211\246\211\361\222\266JM\323\264j\304\232\020(S\244\014)Uh\207\014t\006d\340t\356\347:\347\273\354\275\227\017\347\264b2\314\234\241~\311\376\326\303N\376\377\337^{\255\235E\314\214\325|\373\016\235\355\005\360%\200\037\252EH\200\337\003\350\004@#\000\316\274\270\177[\261Q=j\024`\337\241\263\335\000\277\322\344\313m=Y\025\256\315*\257\247\315w$\210\026J\011\315\226\0227]\260\311T!\321\326\361\367^\334\277\375\245\377\033\300\276Cg\037\024\304G\356\353K\311\3765\236-Vc[\254D._\216,\000\264\246}\331\222\366eK\223\026 \251\206G\313\230-\306'\035\343\211\227\017\354\230\375T\000\373\236\0339\320\234\222\aw\014\246\234\263I\374a.\037\013\020z\2732\272=\223R\201'\251\264\030\333\251\205\212)U\023\327\236\011T\377\332Vo\354F\225\316\215\227bc\261\351\310S_\230\271\225\276Z\341\344C)_>\275\353\336T\230\233+E\013\245\310n\350\311\372\017\014\255K\267\246}\011\000T\37713&>*\306\377\370 Wy\377\312L\330\337\235\325tW\263\377\316X\3417\000\366\336\312C,c.\000~ys\257g\246\027\312q\276\022\271;\2722\336W\267\365\265d\323\276\024D$\210H\210Z\224B\320\300\272\254\377\225\373\357\314()\351\352t!\351\357\362]gF\357\376\3463'\036[5\000\300\337_\333\246\373\232|\027\315\225B\353)I\237\033\354j\322\262\356H\200 \200\210>Y\202\b\353\332\323zm{Zi%\351\243\371J\374\305\2416\226\202\177\371\365\037\036k]\025\000;\367\304`\227\246\334\\%\321J\222\247\245\3106\373\362c#A\004\022D\242\026\352\021DD\324\236I)_+\021\033\a\347l\322\333\036\3009\267sU\000\202x\243\257\331HI\364\360\316\273Z\356\355m\367\347\212\241\251\235\266f$>\201A\r\250\006\205R5v\276\226\344iIQb\321\225\365\224\265v{\303\000\217>{\252?\320\004c\235\033\352\357\014\332\232\003\265\256#\255\307&\347\343\305(q53\300Z\246(\261\"\261\216\030\265LL\344\n\261c\206\247\245\360\224$\353\230;[}\"\270\335Ky-\331\005\326\332-\315\201\212bc\271;\333\244\211\20006\216Ax\365\370\230i\n\264\336\274\241S\264g\002()81\216.M.\320\311\177]wR\n\271e\260S\005\2362\000D\024\033\327\226\321\026\314[\033\006p\316\315\305\211#)\004\205\261u\314\300T\276j\337:7\231\316\315V\364\316\315=Qq1\266\016\020\276\247\020\033\213\216\266&|\3663]\364\367\323Wu\276\022\212\275\017\0148\006;\307\222\022\303\302Z\263\344\203t\253\014\\\230-\204\351\224\227)\275\177u6\314\315\225Mh,\373\236\300\306\276\366\344\363C\353\214\257\245\220R\000\000\005\236\"0\370\356\365m\030\366'\251\277\247\325j%\310:A\236\222\362J\256\204\304\270cKy-Y\003o<\375\345\342b\230\234\235+\306\236\257\225(V\023'\205\240\241\376\316\344\342\277\347\265VBh%\310\327R\004\236\022\201\247\310\367\244\220B\320\245ky\261u\240\313*)HIA\315\201Vo\237\317Q\234\230\347\033\006\000\200\304\330\247F\306\3469\233\366\244\024\004)\b\275\335\031\273k\353\372XI\001\255$i%\311\327\222\002\255D\340)1~#\257\272;\232\270\255%\200\222\2022)O~pe\236\346\213\325\327\206\177\366\310\304\252\000\216>\373\265\267\026\212\321\345\334|U\247\003-\353mG;6\365\030)\210\244 \322J\220\247\245\b<)|-\305\345\311\274\330\265u\275\253\357#\345+\372\333\231+\034\305\346\307\267\362Y\346%\004\022c\017\236\2720m2M\236 \002Po?\"\202\020\265gX\nA\276\247\204V\222\212\225\b\367\rv\261 \242\224\247\350\237\227\246E\245\232\2349\375\213\307Fo\013\300Z\373\227\231\374\342\374\365\231\212\014<)\300\014f+\301\211b\233(vF1[a\255\305l~\221\356\354nA[&`\000\254$\321\321w&\222(6\317,\347\261,\300\361\347\277\301qb\017\23687iR\236\"\270j\0238J1[\017\304\222\231\3118K\2611\264P\252\322\306\276\254\2606\326\004G\0237\212r\241\030\345F^x\374\370m\003\324\263\360\207\353\263\345\305\311\351\242\366\024)\000p\354`\254Eb,\222\304 \214\023H\301\350h\361a\235#B\342\035==\021F\211\375\321J\372+\002\234:\374\250\211bs\340\257\247.AI\011\002\301Z\ac\034bc\020\305\006Q\234 \223\326\260\354 \b876\207K\223\3631\200#\237\032\000\000\234s\277\327\361h\370\253?\235\307|\321\300\323\001<-\240\210\0000\300\014\001Fi1\302k'.\342\325c\357\226\242\304\355\034y\341\361d%\355\206\207\322\341\337\322\376\221\342#\317\035\237\334\203\331R\200\3365\n\353\327d\340k\017\345j\210\351\205E\024\312!v\017\216b\273\376\371\237\037\374n\371\341Ft\227\035\311\376\207\024\350\370\326\256q\367\365';\n0;\227\27225\375\322\344\350\350\336\276N\276/q\351\342\362#%\315g\351t\346\354\223\0008\235\206\331\231\217\261r=\017)eO\247\341=\303\030{f|\370\333\357~\374*\225J\3452\231La\307\000\376.,#\277\370\373@\307\027_8\204\343o\2771\364K\356\322\265\223\237~\344t\002[K\000\bD\000\221\005\021\000\020\214\261p\034\376\315\302\371\314\273\241\000\r\307\301\272qs\005\243\a\306\370;\307\337\344B\210\266w\306\030(%\241\265\202T\022J)h-\241\224\204\347\373\310\345\362o\365\214@\253|_\242TZGyu\035`,\344\213\277\020f\r\023\021\341\271\203\373\361\354X\274\315\036\n`\255\005\000T\2535\224nW0\177.\215\316]\376W\031c0;\367>b.\200\226 \267\001P@\252\265\001\000\324j\033 \"\204)\032\215brr\022\216\3434W\350\r`)\250\001e\332h\035G\200\261(\222\311#]\013l\345\275\177?\360\266\blAt\245\2405\002\315np\234\b\204p\220\317\367\237\220\335P\215\bLMM\201\005\306\346?\267\005@A\r4\235\247\247\247\a.\336\372\237\255\373p{\b\000\301X\273\331\206\315\251(\245\354\"\357\364\033,6\030\200\bPRm\266\24156\000\360a\255E\376J\036\013\351y\224\313\345m,\030\256\365\252\005\200\241\231\023)\337u\305i\006\000\263s3\037\n!>7\306\034\211\271\256#\245\277\011D\004\214\214\2144Z\222\200\327^?\212\347\023\343\217\r\320\324\342\342u\344~\273\234u\000\2001|q\354Xr<\2218\270\231\357Nq\306\021\217\357\001c\335\205\3648*\026W\353\236\3475\000\b\270\240\244\234\333\2677\316\373\273\021h{\207\345@\335*\336Q\304X\216\003\200\322r\341\332J\241\3268\267w\377\362<\017\365\272\027\345\206\377\341\000@\355\201\367\223`\017#\033\365:\206b\261\235\331b\037\225Je8B\374\231\236O\033\016\000\331lVZ\242\2137\n\267a\255\335\365\253X\274\213\352\303G\277\002@3\347l\365\356jvi\271`\2555\273\032~k\rn\376s\a\225{\367.\003-\003<\221H\034z\345\325\227\177&\242\361\235*\26401\006p.\326.|\377\303\341J\245r\253\265\347\004\2001\000q\014:Y\236L\026@\025\300}lo\204>\325\356\352_\365\271\217\367k N\217\000\000\000\000IEND\256B`\202", 971); _img_gnome_document_open_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\005\353IDATX\205\315\227}l\235e\031\306\177\367\363~\234s\332\236\323\323\263\266k\273\265\242,\"F\320\b\305\231E\011l\b:\235\377\201&:\206\b\230\305\231\2210\002\201E\266\230\2059\211\177\b\301\200,\004%1\204\0204\214l8\034\011\211\205)\302\212\013n\203\225eg\265\264\263\035\355i\373~?\376\361\276\247\347\253\335\231D\022\357\344=\357\327\363>\327u_\367\365\334O\016|\2141\361&\353O\017\311\320\321g\260\227\032\243>6\360\267Y\357\270\306\263\236\233\036\234\025\363\225\245H\230\3257\2536\354\331\025\206\3016\255\343\347\317\025\356\375H\340\351\213\301\2316)\364\255\001\2619w\366\365/\277=\232vW}\363'\204\221\021(e<\370\336\013woo \020\206\341\266_\336\367\0353\333b3\371\341,\237\2358\016\201\363_\201\a\331Q>\354|\215|\367jD\245871N\030\204t\345\034\356\274\345Z\246]\313|\354\351\203\367\000\215\004\264\326f{k\212\275/\035gb\374\337|\275\345Y\304\233\271`\360\260\017J\2370\351X\276\006$\006/\036?Fp\316e\347[\277\242\245p\226\353\a\a(+\334@\000\000\021^=4\304\312\376>&\267\014\323\326\226\275 p\355\374\011w\3646\362\235WT\300\337\033\301W\375\344\277\372[J\207\20795|\224\353\257\034\250\371\256\301\204\002l\275}\003a\024\305\003\224jz\340\036\\\034\\\367\260r\365\363ds\335\350(\342\226\357\256#\252\303kP@D\030~\177\nI\356\177\274\365N6~\377\246%3\317\331\207\351O\377\234\216\256\301\005\360\323\357\236\244\344\264SZ\266\235G\037\330\315\256\235\017 \bo\034\237\340\352\313\373\316O\000\001\245\004I\030\374\372\341\207\227\004\017\347\0160_\374\005\271\302`M\346\241\364\362\231u/\320\236\357a\3555\337fr\362,\210\240\224\240\321M\024@P\"1\023\3000\214E\301\203\331\375\314\237\331D\256P+{@/\237\374\312>\362\035\275\265\363J\254\256\256\305_\254\004 J\220D\202\3336of\343\367n\254\031\223\263\0173\320\272\233\374\262\253\200z\331\357\247\364\3161\340\030\000O\375\356\031v\355\370)\002\211\002R3Wc\011\210\215W.\301\223\217?^\227\371K\234;\271\207\\\241\002~\346\344\b\221Z\301\347\327\037h\310\374\332\253\257ct\264\230\224@\241u\263\022H\271\004e2\265%(\025\267\220\353\336\204D\343L}p\2023'G\b\351\343\222\265\a\033\300k\347MJP\367\274\201\200\246\266\004\033o\375\301B\011Z\315w\030h\021\332W\254fv\272\310\351w\367Sr\362\224\226\335\307\364[G\200#\r\300\225\022\224M\330\214\200\006%\225U\360\324\023{\027\336m\271\365\016V\rh\326\257\375\r\223g\206\301\354\347\213\033\016\322\236\357Y2\363u\327\334@\261x*^]\"\350\272F\320\320\210\264\326(UY\005\345\230<{\212\347_<\315\033G\034\306f\326\320s\325\313|\341[\177?/xu\210\b\242\004-ML\030\351x\260a\304\334\212\305S\000\370\336\034\177\330\367\032\231L\013\331l\334\236\307\307\377uA\340\020\227U]\210\a\242\304\245\335=\235\334\274\347/\350\244%W\314\253\027\256\253\035\255\223\037\035\377T\306\306\360tu\026\342\266\335\254\017D\311\200\336\336.z{\273*\000:\006,\003h\255\223\243\374|\221gU\327\325\304\317O \252\0355}\342\025fF\206\320\365\3569O\2102\b\013\2273\327z)J\011\206R\264f\333\310d\322\350Z\013,\266\nj\011\314\274?\304]\333\266\222\317\027\260L\013\323\2640M\023\313\2640\014\2230\n\011\303\220(\014\011\202\000\327s\231-\225\330\365\340nV]\3665Di\264\216\030\033\233B\265f\232\267\342:\001\320QD\241\320\311?O\374\203\027\367\375\231\351\251)\000\226u.g\363\217~\210\353y\270\236\023\237]\027\320\014\254\274\210(\014\210\264F\a\232\266\214\215eY\211\011\233\256\202\306B\031\206\201a\230L\214\215\021}\356\016DkF\217>\206\353{\270\236\213\353yx\256\213\357{\244\323\231\212\212J@\203m\031\030\246\321\324\204v\\\202\006|\014e\220\262S\000\264f\342\363<\020\370>A\340\023\370>~\340cY6\226i-|W\3168e\031\013\233\\\225\a\262\300L\231\200\0009\200\260\276\006\304\373\201\235\020\310dR\b\232y\300\017\002\374\300\307\017\002\224R\330\226\205e\331H\"\263R\361\366\233\262\024*\351\003U\nd\001\277\334\011m \025+\240io\261\250\016\3030H\331i\000Z26\231D\2058\373\2000\014\260L\033\313\262\261-k\241\211\212(D\004\3332\020\025\223\250\262@\032\260kZ\261\022&\236\376\343\220\177I_\216\\\025\011\245\024);E\241\263\213\017\016=\304\330\241\207h\313\345\360\253\245\267\254\344\260q\234\371\204\000\013\231\253\306V,P\361\200\a\270c\257?q\303\233l\372}\244\271\350\306o|\311\212\264\246x\000\320\260\242\247\237\237\355\330\211\34388\256\023/9\327\301\367\275\270\317\213\302P\006\216\3432??\a@oG\232HC[\332\244;\237!\223I1\347x(\221\000p\000\257zM\244\200\216\326\356O/\357\031\334\364\\\250\345S\000\203\331\277\241\214\212\0325\016\321\232\362\266Y=\221\006t\350\363\327\231+\251\017\021\011\011\347\037\031\331\277c;0]\327\227\260\200\026bO\030\374\357\377;\206\200\017\314\021+@=\201\352PM\336\177T\002\377_\361\037\001\312\214\301\374\377]@\000\000\000\000IEND\256B`\202", 1588); _img_gnome_document_save_as_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\004\177IDATX\205\345\225]\210Te\030\307\177\317\373\236\367\314\314\316\316\252\323\256\272\246\"!EQ^)B\020Rli]x\321\205\025\224\331w,\005\006\031EX)\261\031\"\335\030\204\242\204%T\204\027RQ\021\031\004-Q\021HA(\241\306 \233[\273\264\273\356\234\357\267\213sf\347k\331\201\335\275\bz\340|\3149\357\234\377\377\375?\377\347y\340\377\036\322\370c\375\366\203Cq\034\355\261\026\a\340T\371\245E\003\272w\354\215\032`\244\224>\360\373'/\354\005R\240Z\304q\274\347\255\227\357wJ].c\377\\\345\246\321s\020y\013Gw\362\014\206\003\024\273rL\\\365\235#'\277z\021h'`\255u\226\024s\034\377\362\034\243W\376\346\356\256\217\221`r\301\370\326-q\372\312\000\245%%\266nZKM\3416\002\000\210\360\355\231aV\257Y\305\330\263g\351\356.-\230\300\324\324$\325W\276\242r\351\017\266n\\\333\364N\265\341\003\273\237\334N\234$\351\002\245\026|\000\330$\341\221\a\006HZ\360\332\024\020\021\316^\034\237q\3473\273\237c\347C\367\315{\367'\336\373\220\241\375\257!\b?\235\033e\313\206Us\023@@)A2\006\357\034>7\201\244y\325\304\371o\230\2740\214mu\317\034!J\023\22770]\274\021\245\004\255\024\305R7\205B\036\333b\255Y\252\240\231\300\344\305a\236\337\263\233\245K\313\030\307\3408\006\307q0\216Ak\2078\211\211\343\230$\216\211\242\b?\360\271:5\305\320\2017Y\177\313]\210\262X\233022\216*\026:\267\342\026\001\260IB\271\334\313o\347\177\341\263O\277fb|\034\200kzW0\370\364\343\370A\200\037x\351\325\367\001\313\332\325\353H\342\210\304Zld\351.\270\030c2\023v\254\202\366Di\255\321\332atd\204\344\346\247\020k\271\374\353\021\3740\300\017|\374 \360}\3020 \237/\324UT\002\026\\\243\321\216\356hB7MA\033>Zirn\016\200b!\275V\201(\014\211\242\220(\014\011\243\020c\\\214cf\376W\333q\316\350\231!\327\340\201\0220Y# @\017@\334\232\003\322y\340f\004\n\205\034\202\245\n\204QD\030\205\204Q\204R\n\327\030\214q\221Lf\245\322\361\2333\n\225\365\201\006\005J@X\353\204.\220K\025\260,\35124\206\326\232\234\233\a\240\253\340R\310THw\037\021\307\021\306q1\306\3055f\246\211\212(D\004\327hD\245$\032,\220\a\334\246V\254\204\321\223\247\207\303\033V\365\320\323@B)E\316\315Q\356\355\343\3173\207\0309s\210\356\236\036\302F\351\215\311\016\027\317\253f\004\230\331\271jo\305\002u\017\004\200?\362\375\261m?\263\353\203\304\262n\307=\233Mb-\225/\000\013\327\256\\\303\353\373\366\343y\036\236\357\245%\347{\204a\220\366yQh\245\361<\237ju\032\200\376ey\022\013\335y\207\345K\013\024\n9\246\275\000%\022\001\036\0204\326D\016XV\\~\375\212\225\233v\235\212\255\\\a\260\251\364#J\327\325hr\210\265\324\306f\343\207,`\343\220\037&7\322\032\"\022\023W\337\276\360\371\276\275\300D\353\3103@\027\251'4\263L\313\005F\014\204\3004\251\002s\316\\\325\341\375|\011\374\267\342_5\335\321\236\207\273D\033\000\000\000\000IEND\256B`\202", 1224); _img_gnome_document_save_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\005\331IDATX\205\315\227Ol\034W\031\300\177\337\314\316\354z7k{7\216\235M\034\023\307I\033%\241\177 (\022 \301\201sO\250\250i\020\021\210HT\001U\334@Hm\017\\\020H\024\332\013*\\hIDE%zBp\200\206\013\201P $\244\211m\354\244\215]\307\177\342ewvgg\337{\037\207\035o\354\330I\234T\250<\351\323|\243yo~\277o\336{3\273\242\252|\230\315\373P\351\377\017\002\231{u8%2\240P\002l\014\363_V\255\335\255\377k\"\303\n9\005\333\204\367N\250\266\357\326_6Z\003/\210x\373\340\031\021\276&A0\232\361}c\333m\261\326\006\300Y\224W\306\341\265\347T\035\300\353\"\333\022\370\246\bG\203lv@\302\320\241J\022E\"\252\277\263\312\213\307T\377\260)\201\323\"\273U\370u\26128646\\\310\227\372\3009$\bp\326R\233\235\347\375K\343\2658jM\252\362\244\300\016\226\315\367\034\036\032\335\031\366\214f\360\267\bfa\341\326\315V$RHX6\264\347\026\221P\360sy\314\262\003cQ\353P\227\346\316\241\326!8l}\212\035\017\355\r\2337\253\037\035\233_\372\002pj\215@F\370Ve\377\356\274\020\341\027\3720KK\035X\n\354\344nMe\331!\037\265\016[\255\247\327R\370\252\\\255\202s\270\206\301\324\257R98V\250\277\265\364\275u\002\n\237.\224\372 qU\363\204l\245\237L\3776\342\330\361\336\205\311\246Q\236\370\254\252Y'\000p\014~\024/-\237\237\377\367u\223\177\370\000\022\004\017\314\226\214On\270\214\337\273\025\347\027\231\376\313\205:N\277\372E\325\2515\216kF\251*\312\2233\377\232\250W\347\026\\\341\320cx=\371\373\206{a\206\334H\031\277\260\025#\005\256\234y;j\305\361\013GUO\257\023\335\350\367\300\253\"{E\370ce\317\360\326\241\003cA\363\312eL\365\346\246\340~>Kv\270\204\004%\222\304c\342\354\371\310$\346\033O\253\376l\243\376\033\n\000\374\\d0#\274\325?T\336\275\353\360\241\\\353\335\253\264\347\336\277+Pi\013w\224\011J\005\360K\324nTu\352\374x\343\214\323\023?\201\263@3\215h#\211\273\011\204@~%\276\357\361l\005\371\312\330\343\017\347\362\245>\232W.\341\332\011=\037\031\304+d\021\277\304\362\314\242\233\2768\331x]9\371&\\\000\032)\274\0014T\265~\277\002=\253%N\302\347\216\b\337\035yh$[\332=\354\321^\006\261\220\351gaj\326\276;~\255\366S\345\33130y;\034\250\251j\274i\201TbE\240'\215\334\023\260\377\363\302K\003\225\201\376]\217\355\017\261\206\331\361k\346\372\324\314\342\313\312\311sp\035h\245\3608=\326\351L\301:\330]\005n{\0229 \013\204\217B\371\353\302\313\345\276-\a\263\205\234??\263p\375E\345\370\337`\011h\003I\032qZ\371\206\013pS\002\253D| X\221\310C\360\003x\276G\370\370K\312\321sP\003L\nn\001\211\352&>Y\252\372\201\342y\360>\310\370M?\201\377U\373\320\377\234\376\027\036\245$(.\352@\340\000\000\000\000IEND\256B`\202", 1607); _img_gnome_emblem_favorite_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\006bKGD\000\377\000\377\000\377\240\275\247\223\000\000\000\atIME\a\326\b\002\026(\"\002\\\346T\000\000\b\341IDATX\205\315\227Y\214\034\325\025\206\277{\253\252\253{\272\247g\037\317\030/\263\331\214M0\2068\306\016K\004\030\023\026\307Q\200@@Y^\"\"ey\210\024\261\344\305 \005\220\220\020QPx\214\210\202,\031%2q,\2638F\226\0146\361`\033\307\006\217g<\233=\323\263w\217\247\227\352\252{o\345\241{\332\036\263dQ\244\344HGUR\337\252\377\257\377\374\347\334\276\360?\016\361\257.\\\272mGUDG\357\264m\371\240\220\362\032L\330\254\215\251\265\244\314 \305dh\314i\245\314\353\276\345\2753\266gG\376\277F\240c\333\363+,\344\363\206\360\233]m\255\301\206/\265U\2676%EM\"FU,B\276\3403\227-\220\232\272\030\366\234\032\232\357\037J9\022\261[c\236\030\330\363\304\310\177N\340\301]VGa\340Y)\345O\266\336\274\316\271\375\306\325\216m[L\246{\310\373-\330V?Q\367\"y\257\003m\332\211G-\232k\242(\2459\360\301\331\340\355C'\003c\314\313\003\261\216\247x\375\333\372\337\"\260\342\336\347\352\034)\377|u[\353\r\217n\337T\245\324>\346\263\357\023(\027\204C\322=B}}\025\265\265q\262\371\004G\316<\203\322!Ji\342Q\233\325\313\222\210\320\360\332\033G\362\275C\251c\2011\337\030\331\373d\372\263\260\254OI\276\345\371\032+b}x\353\3065k\036\272gut|\346\0003\35112\336M@-\363\301V\342\221\343$\252|\354H\003\251\251.\346\275\353\011\0218V\201\316\326\337c\361\006\231l\232[6\334\352\370\312i\27106\373p\335\212;^M\017\354/~\261\002\017\356\262:\275\241\277\336\262\261{\363\326\3152\242\325\313\234\031}\b\337\264\240M\003\021\307\306u|\226W?\206o\375\230\371\342Mh#\020\246\017/X\301\265m\277a>\027\307\266&1\332\307\221\323\030~\316;\207\245\177\250\247\367\360\271h\333\035W\226c\221\002\235\235\033\237\356jo\271\377\376-\3151\025<\315\321\276\237\342\251&n_\367\034!1r^\033\322\212\020p#\276Y\217c;X\014b\211\363HR\024u\013\331B\023\265\3613\304\3351\b\213\004\301a\332\227\337e\235\237\n\233\304\364\230\233>\373\316\273\237\251@\347\326\027\232\255\030\275\217?\266\245V\025\237$\031\037GZ1\274`\031\215\265\243(S\317\211\201\037\241\314r\"\216\205m[XR\242\215\301\3504qw\204\356\025\257\242\002\037\302Yo\011\263s\r\376L\306;\235\351\333\177\032\300.k\375Hw\307\322\270V\177$\264!\347\325!\255\030Gz\277\217\020\006\241)\023\2000\0141&DH\201\000\334\310\034mK\016\342Xi\22424$\216\243u@:\333@ut\2300\004\245\035\240\210V\307\351\\\371P\274\177d\362\021`\327%\002a\270\266\2616F\314\035\344h\377\303L\314]G\242*O\240\034l\333\\rj\b\241U& \004B\300W\272w\342Xi\2141\030c\210G\307QJ\023\261R\234\033\273\201\306\352\223\344\274(}c7Q\227\230\244>\031\2070\\\273\330\204!M\261h\001\211b\372\342U\324T\215\220\315\327\224\344\325\032\245\027\352\256\011\002\215\257\024\276RH\221\241>\321W^W\"V\"R\272o\251;\311\205\351u$\242S\254o\337\315\251\341\333p]\033B\232\026\b\224\0250\011\333\256\247\247\377>\266\254\373-\023s]\364\234k\277T\363\020L\030bd\210\226\002)\004B\b\352\223\027\320\332T\312\262\000\036\206\245\264e\201\234\227\240\350W\321\323\277\215L\316EZ\022B\223XL@\220\317\345\375\344\271\324F\316\216m\340\272\366\203,\2519E\367\362\243\344\212\255\314d\273\230H\257\305\310\260d\3202\201\211\351e\344\274\030\256\235%,\033\322\030S\276\226H\2655\037&_\254&\225^\211\004\n\005\037\004\371+\b\210\311\271\254\227tl\013\257`81p\033\313\032\006i\2569\213e\235c\205:\315Qe19\267\272\002.\004\370\201\344\300\261\357\260\276\353M2\363M\270\316EZ\353>^\244F\324\231#\347\305\230/TQ\345\n\346sE\020b\361 \022\241\350\235\311\344\250r\255J\315\233k\316V^\344:i6\257\331\311U\365\307\011t@\240T\311\017J3>\333\312\276\017~\300\373\247\357\341\275S\367U\314\270P\nc$\207\317lCkM,b33\227C\204\242w\021\001m\314\316\301\013\223\271%\365q\224*\031\25719\262HRK\344\331\274f\027w\177\371e,9\207\037\250\313R\343\a\232\371|\224\311L\313\242\347Fg:\031\237mE)C}2\312\350\370tV\033\263s\261\002nq\357\320\350\224\250\215\273H)\b\224\341\334\370\032\200\262\273M\245#\244\310\223\367\254\322\254/w\305\202\032\201\322L\245\233\312\343\2724\212\213A\224@\031\244\024T\307\034F\307g\245p\213{\027\021\030\332\275#\243\025{z\aS\272ci\ra\030\362\367\301\353\031\231\\]6Wy\342i\303`\252\223\202'K\255Xn\311 P\245\366\0144\210b\2453J\000\001a\030\262\274\271\232\201\221I\2555{\206v\357\310,\236\003 \362\231\301\247>\372d(\333R\037\247*\352\240\215\305\233\037~\213\234W]q\270\326\206\213\2718~\345\313\313\300\252LD)0~\005|lv%\aN\336K\314\265iHF\371\244\177$\233\317\014>\305e\273\360\002\001w\342\320+i?\237}\255\347d\277w\303\252flK\242\215E1\210.\254\345\320\251-\374\355\354&\202@\225@\313\340A\240*\345\030\232h\257\254\237\3156\242M\2145+\3539\371\361\240\027\024r\257M\034z%\r\270\227\023\260\001\ap\306\017\276\364\342\371\363\251\276\376\241q\275\256\263\221\210-Ig\033\313\303H02\325\201\326\240\315%EJ\233Q\251\347C`xr\025\000\005?\316\351\241\315t\257\254gxdR\247R\023}\343\a_zq\001\213\362Fh\225I8\200\243u\321.\316\317\274\233w\226m\217\271\221hw\307\022\231\214~@\262*\315[\307\356'5\273\202\177\026\201r\311yIN\014\334\305\362\346v\306\306\246to\377\371\231\211c\273\036\365\346F\346\201\000P\3454\026\245\335u\201\210T\271\211@eg\337\232\267\233o\366\212A\"\236\274\323N\315\264\3217\272\022m\302\317G.G\304\226D\243\253h\256\255\347\223\336\241\342\340\360\205\301\231\023\177\372^~\342\243\011\240\b\370e\022\376\202\002\000\232\2221\004\020\372\331\361B~\354\304\036\025\357h\035N\315uD\"-r\325\312fQ\035\217 \205\274\2640\004\307\226\270\021\233\232\270\313\322\306\004\255\215qf\246g\315\361\223\375\376\354Tjo\352\275\227\177\346\245\207\246\201B\231\200W\316\020>}.\210R2\210[\276\217\324\255\336\272\252\272\355\253\277\214\270\321\rM\r5\246\251\251>\226\210\307p#6\266m\021(M\261\0300\237\363\230\232\232)\314\314^\224~\321\353\231\037z\377W\351\263o\367\225\277\324+\203/\020\250\304g\035L\004%O\270\345k\004p\342W\255o\250i\273yK$\336x\237\260#\355 \352BD\225 \314C\230\016\225?\350\347\246\37727th\177n\364\304\314e2\ae\340\200\313\377(~\001\201+\303\342R\247T\274r\305\263!`\312\251\271d\264\317=\222\375\337\304?\000\275\277#\335i\224\340\021\000\000\000\000IEND\256B`\202", 2367); _img_gnome_emblem_web_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\b\336IDATX\205\355\227{p\324\325\025\307\277\367\376\366\231l\036$\273\201@\b\011\001B\236@\202\326\202\204\020)\025\025\322\031\245L\247\330\372\230i\261\324\031\034\035G\255S\255\323\321\221\006(\235\n\222*\362R\002Z_\370 \006\005L$\304\020\"\233\204\004\003y@\002d\223\335M6\273\373\333\337\353\236\376\021\203\225\230\246\376\335\236\2313\363\233\371\335\3579\237\271\367\234{~?\340\3776\216Q;\254\336\026\374\325\333\214\001o3\316z\233\260\342\207\350;;a\033tc\346\265\263\210\376O\353\330x/\274-x\324\034\275\242,z\332n\030J+\302W\326\223\034\356yrO\325\323\315\026\223i-\270\224\313HL\026\0040\316\373\030\211&E\327*V\346\355j\230>\355\342_\210\231~\301M\311f2\372\r\242\310[f\023~\037\233\211\201\011\001\3504\314>;\3261X6\307f\234\231\024\276\366(\014\221\212S[\011W\277l@\364c\217\2063\347\346\332\023\342\343\231\315\036\005\200 \313ax\a\274t\276\2555$o\335\342\230R0\031\267\225\275\002I\032\0007O\207<\360\"\"\375\233\232\023lX\310fC\031w;\274MX\353mAG\240k%i\341\323\024\361\275B\3567\234}{\223\022\305\373w\374\224\372\216|LJh\230\014\303 !\004\031\206q\375Y\327u\212\004\006\251\367\235\267\351\275\222e\264wj\022\271\017$\366\370\317\247\030\272\354\246@g\011\r\264\240t\334\344\276f\374}\350\342\217H\013\327\221.\273i\370\362Z\252\331\234re_|\274h|\245\\\310\365u\024.+\243\360\256]\244\252*)\212B\212\022\371\306\025RU\225\302\257\275F\221\362r\222O\325R\375\226\315b_|\234\250zzV\305p\317:R\006\367\223\267\031g\375\255H\033s\004\376\026,\200i\306\231\330\231\247\020\276\266\021\352\320\241p\307\251\311\025m\217E\356\273\351\365\375|\306\244\004\210\252*h\265\265\200\337\aKe%\204\311\004\200\256\207a\003\003\320\356\273\037\322\334\271\220rr\300\n\013\320\331\335\205\206\2076\210[\366\231\"\351?9\021\245\005\217@\366\374\301\a\021Y\235\220\213/\000\200\003\200A0q\223\013$\206\241\207\216C\210\204\250\266g\305\003\231\317?\307f$$@\034=\n\275\256\016\324\335\r\n\014C\375\274\032\206\241\3030\214o\\\207v\244\022\324\327\a\243\265\025zK\013\250\341\014\322R\3230\353\211\307\331\311\365\222y\260\275\030\334<\003\321)\a\022\b\3302\272\003&\000H\214\340+\037N\267k\303\207g\307\246\237\304\211g\312\340\230\323\212\234\20573:\372\031\364\272:\210\316N\2001p\227\013Z{;.O\237\n\257\337/\203\210%&$\330R\375~\230RR z{!8\207\316\030L\234#oi1\273\362\356;\246\306W\373\261\350\361\023\260N\272\037\000&\217\351\002\177+\322\204\216\227t\222\262>\371\2615\275h\357^8/]\206~\354\030D{;\300\030\244\364t\364\3102\334\r\r\350\377\315}\037\205\235\256\217\001\300~\315\263*i\367\336\025\005\213o\305\024\273\035FK\013\330\224)\220\262\263\301\347\317\203\307\021\205\352\r\017\343\347\035\373\020\351\333HBi\377]B\036^\376\336b|a\323\013+\366\227o\017\004CA2\374~\n\356\330N\376\202\002\032*)\241\346\245K\351ug\242\272c\331\262\3057\352v,_^\274\337\231\250\236_\265\212\002w\336I\203\013\026P\360\037\345\244\373\375\024\014\005\350\215\227\377B\215\237\315m\0338\207\345\343v\002\000l\336\272\351\325\272\372Z!\313a\322u\235d9L\201\257\317\323\225\r\033\350\200\303!v\026\027\317\035O\373\362\222%\331\02511\302\363\324S4\334\322D\262,\223\256\353\024\226CT[Wcl*{q\347\215\032>6\014+r\271\\\214s\016\"\002\021\201%'\343\\n\226\032\234\227\373\346o\217\037o\033\017`}u\365\271\340M\005\a[3\3225\244\246\201H\200\210\300\271\004\2473\211\233L\274hB\000\"\341\214\262G\2011\216\3216c\014\350\266\331\024\337\352;\237\035/\371\250\r\254\270\355\371K6\213\302\257G&p\306\020e\217\202 \341\232\020\3000\014\207\331b\301\267=\016\000\014\262\034\262\030\206\344\231\b\3000$\217\034\016\233\030\373\356-o6\233 \014\341\230\020@\222xP\211(\020B`\244IF<:\332\241J\222\2214\021\200$\031I\016\207C\a\030\030\033qC\b\250\252\002.\261\340\204\000\214I\003\341p\020\206a\200s\006\316\031\030\003fh\2725\256\362\350\343\023\001$\036z\373\3714\213\3256\022k\004@\030\006\202\241\0208\223\372'\004 \0305}\375\036\322\205\016\321\331\005\343\255\267 \016\037Fv\332LKT\243\373W\257.[\2349^\362\227\212\212\262\354]\227\356\2303\277\300D\365\365\020\225\225\020\235]\320\r\r\375\003\327\204\256\213\317'\004\210\261^\375\350\222\373K\215*\016\"XZ\nm\313V\320\247\237!fp\020yO=\301x[\307\331\362\222\242E7\352v\026\027\337\352\270\320\376\325\374\035\333YT \000q\374\004\264\355;\020,-\205\330\263\037\035\r\215\262A\352\2337\352\276S)>7\362\014f\375\240j\2619\265\244d9l==\240P\b,:\032|a!\314w\337\203\216\316\213\324\362\247\347\320\267\366\236\017\203\223\223>\004\200hO\337\352\3447\337\273}~\371N\244fd0\345\340!\210/\276\000uu\201EE!\354t\342xM5n\253U\267\020\351\177\2342\017\2411\000\201\363pj\032s;R\016$W\377\371C\340\355\032\334\\P\b\243\265\025\020\002,&\006\274\260\020\246\322R\030\205\01300\034$\237\337\2471\316\341JtZ\022\343\342\300{z\240\276\367>\250\246\346\372\354\220f\317Fmc#\254\367\256\301\302\207\372\241\014\356u\233%\224\304f\301\373\235#\3205<`\215\377u2\223b\221\277\256\002}\201!\343\252\307\003\236\232:R\033\303\303\020\215\215\240`\020&G\014\222\247Ne99y\226\354\254\034\213+)\011\314b\201q\256\025T[;\222\034\000OI\301\025\217\a\003JH\344\337[\005\233\363IX\023\326\347k\002O|_\r,6\307\376\014Z\350\030\2541\371X\270\313\2163\215g0\314\030xz:\3009hx\030\326\242%0\233-\220$\011\234sp\316!I\022\314f\013,YY\020\027.\214L\315\324T\014\021\241\321\355\246\271e\242I2[ \264N\230l7\201\200)c\000\302\021\324+\336m\260\304\334\205\250\344\235\230u{\2354\363\005\227\250\376\374\004<\262\014)3\023\254\260\000a\273\r\232\256\001`\220$\011\222$\001`\320t\rrj\nXZ\032\244\331\263q-\024\302\311\223')z\243\263!s\331\252y\216\351\377\204\026\374\004\301\253\033\203\036\017\366\214\346\225F\037j\233P\277rQ\227\242\016\3566kC\345\211\326\330\325\226\270i\215L\312\367\207\317\356\276j\016\004C\260\227\224@\314\313\201\252\252PU\005\212\032AD\221!GdD\224\bTMA\270\273\033\356c\307\320\336\323\215\253\253\023\267\255|\260{I\\\372\a\321\201\256\245\350\353=\262\343\360Q\365\301;\326\301\r\300\030\323\005\030\371@\261]>\215]\256\214\335k\364\320\011h\301\217a\235\\\205O\037YC\336\257,$6>\034\311\230\225a\217\217\213g6\273\035\000A\016\313\030\034\032\244\213\355\027ei\333\337\354I\267LeE\317\376\022\212\377\001\203s\227\024\233\321\b_k\262\307\225\217\014\000\362h\362\321\204\377n:\200`\224\035\207\024\337\3665\216\324waK|\004\021\3376\344\256o;x\353\335\323\236Y]w\272\270\247\267\367.\253\305<\2071\356\004\030\221 \257\242\312m=\275\275\037L_\331s\341\256u\347\3377G?\024cO\354\220\000@\035\334\003.\3418\2001W\361\367\376\230\320!H\276lTH\266\374{\270y\006\264\340\341&\263\011%\261\231\360\342\333\001q\343%&02\301\310\347F.qTpKF6\203\004C\375\272E\"\224\306\347\341\342\177\005\000\000D`\203M(2L\230$\017\242r\372\"\310\343\255\035G\317\275M\230\303M0M\312\3029\306 ~\210\376\177\307\376\005%\245o\212g\230\333\255\000\000\000\000IEND\256B`\202", 2343); _img_gnome_help_browser_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\001\346IDATX\205\355\227\335j\324p\020\305\317\371\317\304\304\254\333\202t\275p\241\005\037\252\254m\337\302\322\242h+\325\"\336\326\a\350E\021\365\251\014\210B\367\243\033-jm>\306\013\027m\267\333\3355Y\232\233=\020H 3\347\a\2319Ihf\250R\256R\3679\000\000-Z\270\276\321\212\2224]&i\000\314\251\373\374\356\350\303\312\215\001\244Y\326|\271\267O\20043\354<\177\272\\\244O\271G@\242\323mC\264x\233\3223Pv\215g6\204EA*\337\2029@\345\000#s`}\343a\224fis\0202\000`\203\003\000\214$\324\323\234$H\202 \302\333\341\257\326\332j2\334\353\342p\252\312\227\267G\357/\205\325H\200$MV^\355\277\276\340\r\030\354\317)\0013\300\321\301\011\241\252p\342\260\363l\327\237\264\a\217\237l_\011\253k\223PU\320\351v&\264\004D\004\275^o\354=$\261\264\324\030\355s]\321y\222`qaq\"\300q\373\030\215\306=8r\310\365\362E\222\234O\017 \"\375\275\027\273\3418\343\260v'\333\332\334\016=\317\203\247\212\2037\a\337\373\361\211fYF\2220\263\277\by\236\323\314\240\242\375\251\000\202[\341\3758\216\203q\000I\222v\310\1773\320\351\266\003\313~4\235\253\377\374vzj\276\357[\020\004\026\307\261\005A`\265Z\315\242(J\247\0028<<<\003p6\016\240\265\266\nq\016\252\n\021\001\000\370\376\335\257\203\332\251U*\a\234\b<\365 N\212\367(\005\340\b'\016t\025\276\216\313jF\000\006\016\257\341M\001\0245\236\011@\236\345\250\327\0270\224:\377\245\302\037\245\352y\0377\267\036= \311<\317\251\242'\321\247\253{>I\234\377\232\315\001\252\006\370\rg?\237f\272\216Tb\000\000\000\000IEND\256B`\202", 596); _img_gnome_list_add_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\341IDATX\205\355\326?\013\202@\030\307\361\337u\207JB.\2668\330\313j\210^G\324\320PD\364:\"\350e\331\322b\220$.\236u\r\225E\376\3110\260\341\271A\216{\324\357g<\246\224B\223\253\325h\235\000\004 \000\001\b\360\017\000\221w8\030\366wIrq~\036\023|\277Yo{\037\001R\236\335\345b\225\035\260z\200\361d\344fPE/\013\301\341\037\374z\305\373b\214\301\266\273\371\235\242\217b)au\254o*\245c)\343\352\000\316\371q6\237\266\001\340r{\260[\343\031QJ\225\026\037\363\327\013\217\340\342X\011`hm'\212\"\035\0004MK\377\020\236\302t\257\353z\2727\014C\001@\020\004\2313\0000MS\001\200\347y\311{\213\321\225\214\000\004 \000\001\b\3204\340\n\371\000?\324\305\024\210\024\000\000\000\000IEND\256B`\202", 335); _img_gnome_list_remove_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\004@IDATX\205\305\227K\210\034U\024\206\277s\253\272\372\335\323\235L\242y\214!!&1\003At#$Qt+>\301\200\213\250 &\032p\345BD\321\235\272p\341B\020DH\210`0\n\212 \270L\020\243\253,\024\r\021L\306\211\311\364\214\231\214\323\217\231\232\356\252{\\t\317L\365\273\307H<\233\272u\356\271\347\374\367\277\377\271]\r\377\263\311\315&8\376\034\011\211g\026\r\346\255\304\215\322\273\207>\247\266\226\365\346f\001\324\274B\334\211\305\331\272w\377k\376\372\354\304\211#\271\207o)\000\000\224\245;v\336\235\330\265\357\340\246Tv\344\263\223/\215\234\371\344Xn\347-\003`\303\232\343\317Oc\253S\214m\335\234\336\260\341\266\003\252\372\323\211\027\263\357\235>\266!\323o\355@\r|z$;Z7\341\230\2123\246V\2679\242\333\301\354F\330f\225q\205\263\242\372\300=\373\037\2452}ae]\030\004\314\\\277\276X\251V\027E\302\227\017\177X=%\240C\0018\375\024\236?\232=%\022{$\225\337\250\311t!Hf\362\342%\2621/\231u\275\324\b^\"\207q=~\370\362m\000\356=\3608\345\342/\035\271|\337\247X,j\250\341\304\326_K\273\036M\332\25113s\225K\023\023\314\375=\207\265\253l\213\b\353\n\005\214\353<\335Y\252\315\216\037\315\335\231[7\266\3218\261\276\305\001\324\206Tj.\325\272\213u\222\244\322\005\274d\201\331\271*\277_\276\304\314\354u\202\260\301x&\225\301Z\233>~$\273g\000\003\372\344\226\273\366\273\003\253\003\032\006\214\244\r\271\244\220I\030\022\256`\214!0i\312a\216k\177-pi\342\017\256MOS\017\003\322\311\224\032\261\257Gst\024r\205gr\243\333Z\375\252\330\320G\303\0326\b\260\266NP\253\343/-!\"\210i\354C\014\210(b\034,PZJ15\037\220)\373\224+W\020\r\305\210\034\002\016\367\004`\305\354u\2744\245\251\013,.T\360\227|\312\363%\346\313%fgoP\251\372\000\204V\261\026\356\333\235\301\215g\211\245\362d\223\0056:\036\250.\343F\233\317\272\205\312\374\014W\177;\347\365e@mH\314\213S\235\374\036\000\017a\275\201\365y\330\221O\000\211\225Xi\212T\003\237Z\251H\255\\\214dj\025\260\000\333\367=\301\325\213\347Z\031o\a\0004iu:S\311p\277]\355m\270l\252a\207\257'\000c\272u\250\264!\212\316tu\266\016\264\343\"\354\016\200\210\260\272Q\031\215\353m\322%\304\016\a@0\2108=\362K\317\327\256,\254L\n\350\260\000\242G\320g\227\322Z\275kD\253\r\011\2006\021\266\342\030\260\313~Q\303j\240S\204\275w:\224\370V\000\254\341\b\332\031h\315;X|\321\341\262G\206\005\200\230\325\353\265[\342ND\275\"\332\300\256\345\b\032\027{W|\255\265\207c\243\021\266\006\000\313G0T+\266\"\352\023\365o\332p\325\331-\264Y\250\367\r\331\002h\210.p\227\21354\320\231q-\355\330\036!\253G\220\002\026\272\001\310\013\250\332\272\270^\032\033\370\035)z\325\036\324\216\"\016\226\220\346\227q\276\027\000/\024\367r\361\342w;6\215?\0066\214dQ\324\206`\003TC4\014@C\324\206\250\006\315w\213\332:j-j\203F,\026\r\003T\003f&/\022\340N\000\361f\355\240\035@\360\315\371\205W\324~\361A\354\354\351\315\342\306#\333j\322\0279G\215\252:\352_\031G\346m\250u\353N}}~\341U\240NS\221\355\274\305\201Q \327\\=\324\267\341\220\266\214\246\002\3146\237]\225dh\210\344\277\371\337\330i\2134\030\000\340\037&G\220]\213_L\275\000\000\000\000IEND\256B`\202", 1161); _img_gnome_package_x_generic_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\006bKGD\000\377\000\377\000\377\240\275\247\223\000\000\000\011pHYs\000\000\r\327\000\000\r\327\001B(\233x\000\000\000\atIME\a\326\a\014\026\0019\256\360P\261\000\000\011NIDATX\303\305V{pT\325\031\377\235{\356\335\273\233\315f\363\316n^d\023\303+\220\220\267\0060\011\240\024\246>!\212\343\243\255\242\316\224):Z\224\252X\231\226)\342T\235\212\217\242\235\351\250\265 \312c\020\020#F4\004BH\020P0M\262\233l\262\257d\263I6\273{w\367\336\335\323?\334\3044\025\304\216N\277\231o\356\235s\276{~\277\363\235\357\373\335\003\374\237\215L\037X\263\246!#\n\3464\345\2310#\317\324\326\324t\364\356\372\372\245o\365\365Z*-\275\026p Y;w\356\266\377d\214\032n_\305\316\234\351`Vk/\333\273\357}\371\304\311\026e\357\276\367e\253\265\227\2359\323\301\032n_\305~L<~\372@\276)\237%''\223\364t\003n\370\371\215\274,+\020**\241(\0210\366\315\374\217I\200\233>0#oFG{{\233L)\305[o\277)\335\377\340}\301\267\336~S\242\224\242\275\275M\236\2217\243\343'%\320\324\324\2646#\303((\212\202C\207\017iB\222|\335\241\303\2074\212\242 #\303(455\255\233[Z:\243\244\262\372\257U\013\027\367W\324,f\305\345\345\267\375\307164\320\222\362\253\313\377'\002\365\365\365o\270\\\016\231\347y\254\\\261R\0225B\343\312\025+%\236\347\341r9\344k\257\255}U\245R\367\336\373\313{\036\330\361\352\366\354-\233\237\206J\245~l\352\032]}\326\235\202\310\237\256Z\264\330UTY\271\364\a\245\344\361\215\033\242}}\275,\030\0142E\221\231$ILQd\026\014\006Y__/{|\343\206hM]]\3043\342a6\373\000s:\235\254\246nIdb3\363**\352\226\374l\005\033\034\032d\255m\247\330\222\345+XIe\325\013W\\\204f\213\231x<\036\020\002\264w\264+\006\203\2218\235\016V^V\316{<\036\230-f\002\300c\3561\247(\3210\264q:,\255\257\343\024EV(\245\241H$\242\372\335\206G1<<\214\234\354l<\374\233_\343\231-[\313\177\210\016\314\210\202\365N\350\300?w\357\376\210\247\374\257R\022u\231\034\307\301\347\223\326\273\206G\267=\366\310C\352\271sfC\257\327C\020\004\360\224\207\024\224\340t9\001\006\014\272](\314\237\205\365\217\374\026N\367`\336\331\326\326\276+\"0\325\346\227UU%\350\343[o\275\351F\354\335\277\237)J\244\023 3_\374\3636n\336\334\271p\017\273\321?`\205,\207!+2\264Z-\322S3\240\327\353a\263\333\320\323c\301\326\347^\350l?\3312\373\21230\325*k\026\365?\365\344\306\354%\265\265\030\032\032\302\301\017?\304\322\272Z\030\014F\264\236j\201\317\357\003\307q1'\223\357\242(\242 \277\020\001\177\000\353\326?\302FGG\256\371\342\364\351V\000(..\326\236;w\316\377\275\004JJj\212UZ\356l\343\341\0170\354\031\202\335aG\242.\011y&\023>=v\024\241ph\n\370\177\223\340y\0369Y\271\360\371\374x`\335C\341(\230\223\347\370\314p8\304+\321H\335\371\266\266c\000@/E\300d\312\3622\202EM\307>\313\253\252\254\000Oy\314\231=\a\315-\307 \005%P\236\202\247\265\003\000J\312\252l\233\377\260\365\310\376\335\273`s\364\203\3438\020\002\b*\001\355g\316\242\361\343OX0$]\b\313\321\027>=\371i\344\262\004\212\313\252j8\212\247\324j\315\262\264\324\024\022\n\207 \252T\220\34508\216\203ZTc\310\355\006\2110i\362#\201\004\022\365z\b\202\n\202\240\002\300@\b\001\345x|r\354s8\a\254\232\356\356\356\320e\225pr-\025\177\274a\365\255\250]\274\020\224\343\020\n\205\240\022E\320\240\004\216\343\240D\024\334u\307\3558\336r\352\365\371\025\025\016\022\245!\201\027\016\334s\347\032\004$?8B@8\016\002/@Vd\204C\341\310t\360\313\326\000\317Sgey\031\342\265qp\r:1::\202\344\244\024P\236\202\362\024\243c\036\024\024\\\205\347\267m\021+JK\033\323\322\223?{\376\331-\372\353\227]\a\347\240\355\2338J!\250T\030\032\032\202\034\221\271\222\212\212\233\246\343\\\252\013Hj\232a\236^\237\260`AI\011\202\301\020\254\375\375\230=s6\274>\357d\220\317\357\303\314\302Y\270m\325j\334s\327\235HMI\305\200\323\212`(\bB\b\b\bDQ\rk\237\025%\363\347\221.\263eMbR\352B\255F\375\256\307\343\211^J\210\b\000RXZ:K\257\321^\020x\036\2140I\016+\302+\177y\236\317\310H\207\323e\003\b&Eg\2420\011! \344\333%5\3528\270\207\3348y\342$\262\262s\220i\314\302\306\2477cthd\365\371\263m{\00102\345'\224\024aQO\276)\037&\223\351\363\017\016\036\334T}\365\325/\217\217\215\025Yz-\030\034t\377>J\204g^{\371E\242K\320\301\355v\201\305z}\302\277\335\001\201(\212\360\373\0038|\350#\314\2353\a:\235\016\376@\000\233\267\374\311\177\272\245%\025@\004@\204N\005\277\377\201\265(-_\200\240$e]\177\375\362_\210*>\245fq\rWTT\204\316\257\277\256w\270\334\026\317\260'\251\240\300\004\203!\023<\317\003\204LV;\307Q\250\004\025DQ\r\217g\024\233\236\336\202\226\3266s[{G\242\250V\223\367\366\354\303\240\313\275~x\320u\021\000\003\300x\000`\034S\345\347\3463\275>\201\024\026\314B\361\334\005\274/\340Cue5\244\220\204\256\356\257\021\215F\231JT\231j\257]\204/\317\235\203\303\356@Zz\032\322RS!\306\253 \313\nB\341 \334C\303\370W\227\031/\275\262#:\350\264?\321o\2614\353\222\222t\343c\336'\031!\343\235_\236=\014@\005 \n \312\003\300\256w\336s\275\362\332\366\216\236ns\361\374\242\005\302\2167^\013\266\266\236\"\325\325U\354\376\265\017\252\273\273z\024\273kxdAqIZvv\026\300\242\b\005\303x\370\321\307\301\242,\"\210j\232m4\340\346\033V\302\341\262#Q\237\014\216@\352\267X\316\002\320\214\217\214H\347G\3327\000\220b\340r\3149.Vt\334\221#G\0362\0322\005\177\300\217\346\346\343jk\357\300\335\315\315\307\325\376\200\037\231\306,^\221\025\367\305\213\027\321\331\331\005\2431\013\377\330\265\033v\273\375\325\326\346\317\033\232\2176\256\3521\367F\030\000C\206\021\306\014\003@\270\270+\275\224R\000\342\262e\313\266;\234vY\033\247\305\242E\013\203\271y\331o/\\X\023\322\306iaw\330\2245\r\267\320\036\263\371\211\027_zy\374\321\215O\302b\3515[\273\273\367\307v%\371\003\376/;\273\272!\212j\234\377\352+\000 \311ii)\023\3631\017\001\b\307v\037\001\020%\00043g\025\032o\271\345\346\356[W\337L\n\257\232\r\215\250\201/\340C|\\\374d\r\354yo\037{v\353s\265\000B9y\205Uc\036\327\005\257\327\353\237h\345\314\334\334\362\264t\303vA\024\244@ \370\205\317;\372\216\265\247\247\031\2002%\345\341\030\211\011\"\n\017@\030\367\216\253\315\0263\031\033\363\242\253\247\023=]=Q\2431\013\016\207\r\005\205\005\334\330\230w\3422\032\006\340\353\357\355:\022\253\342I5\265[\255\215n\247s^8\034\016\305\346\242\023\255\026se\232Of \001@RnnNQ\3655U\a\001\240\254\254\254\357\215\327\377v\340\276\265\367\33686:\226k\266\230q\350\203\303\313\375\376\200\r\2007F$2!Z\323\216u\002|\3429\335#Sc\b\000\r\000-\000=\200D\000\361\2611\032\013\016\001\360\003\030\0030\016 \020Kgt\n8\231\002>\361\374>\a\000\366o\331\2713\371e\033\2352\000\000\000\000IEND\256B`\202", 2497); _img_gnome_system_run_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\011\006IDATX\205\255\227\177pT\325\025\307\277\347\376x\357\355n6\011\033\0226\204\200\201h\323\000\032\"`\300\002\313\017\261\004J)\030A\313\264ja\254:\266\035\377\265\177\266\177u\306\216\035\034\235\226\031\333?Z\253A\205\200\011\277\244\301R\a\205\200\370\0034\020\371\221d7\331MB\262\233\037\273\373\336\275\267\177D\234\230I\202\375q\346\235\271\367\314{s\317\347\236{\317\275\347\021n#uuu\026\340\255\222\216\275]r\261\322\365T\241\347e\203BX)\301Y\"\253\274\367T&\373: N\326\327\327go7\336x\241\311^D\"\021Q\024.\330\305\271\374mq8\214\232\232ey\363\312\347\361`N\016\374\376\000\222\311\001\364\335\274\211\266\2666\325\322rv \336\035\207\253\324\363\275\361\336\275\315\315\315\336\377\004\260c\307\017K\205\014\034\2335\253\244x\347\316\237\344\006\002\001|\321zY_\275vM\r\017\0172\345e\031\027\226v|~]R\\\314KKKXr \211\267\367\037Hv\305\273b\231\241\314\003\a\016\034h\377\257\000\266n\337Z\355\263\354\343[\177\264-w\371\262e\374\304\311\223^ggL\367\233P\307 \025\3055\013\016g`\271\226\311H\241\207|\001\3263\243@\364\315\232\036\n\261\005\225\025\342l\3139u\354\370\361dv$\273\266\241\241\341\374\177\004\260y\307\346\23192\360\321\323O=S8=T\200w\0167\252\036U|y\320\232\333a[6\030#\322\306\030\243\014<\255\2152\244]O\031h\217\205e\347\354\260\335{\347\374\371\025\274\253\253\013\257\277^\237p\323nUCCCt*\0006\026&W\006\033\037\256{x\332\364\202\020\3369r\304\215b\301\031\235W\331\231\037\364q\277#\271\317f\334'\271\260m\316}\226\340\216d\334\2668\223\3222\011s\307\265\266L\371\207\227[\257\272\305\3410\326\255[\033\022\216h\234(\312cE\334\352l\331\266\245\356\216\262;J\227.^*\336\334\377\266\027c\013\317^j\213\317\356N\264\345\000\004\372j\230m\233\"\027\2646Fi\230\267\033\233\253\2151\030}\200\302\202\274\024\253,;\343\264G\227.ZT%.^\274TZ\373\203\332\272\306\203\215oL\031\201H$\",i\275\360\350#\217\206N\267\234u{tI\253?X\224\356N\364\3474\356y\202\032\367\a\310h\r\346q\003\256H\377tG\355'YW\351\277\356;z7cd\210\bRp\006\220Ndr\243\371Yw\316\302\273\347\347\307\343\361\272)\001\210\2635s\313\312x\264\273\333\035\0213{,\311\231\024\214\210\2106\377\352/ \020\244\020\004\200\264!\303a\214\322 \3624\031\020c\214\260\361\331W\211\210\031\313\342\004b\324\227\311I\030=PZZZ\"\211h\315\224K\340f\335\242`^.\020\2131p\177\2061\016\3069v\355\334\370\251\3059\347\202\210\330\250#\001\242\321Mh\000\"\200A\357\334^\373\261\247\214\316\270J\267'\206\323\347\257\014\014\330H\337\\>\207/\316\011\344\300u\275\302)\0012\351L\216\337\347\003\027\234A\372\275\356\244\233Ng3\252(\344sJ\013D@2.\204 00\"\246\2415\001\n\304\311\2202\204\241L\326\275\3225\222<\1775\231l\217\017\247\225R\020L3\307\3661\245}\310f\263\301)\001\230d\203\003\311d\236e9:\331;\342\0358?\034\363\333\026YV\232,KP\270\300g\207\002\302\016\332B\330\026cY\245\365\340\260\366\342)7}=\221\035\351Ke\\O)\030\317\200K\0110 \034d\016\343R\r\r\246\004\023<5%\200`\"\336\327\333\233\3478\216\036J\217\000\304\214\002C\357\347\2476\020\021\272A(\252~\260\011PP\200q=m\003A\020W\003\251\224`\304\022\223\0010\000\310d\263'Z\257\\Q\301`\200\335\025RaO\223v\r\323\000\341\350\313\273`\000(\022Zq\251\215\260\264\021\216fB\032#\204\341R\202\000\034\377\343n\020\000\222\002\202\013\254\233\357\237mLV\\\273vCe]\367\304\224\000#\331\364\276\323\247?\354\367\371||A\011\225i\342F\201kC0Dd\014\221I\234k\254\355i9Tk 5q\251\301l\223\376\264is\346\322\341\315 \032=o\031A\b\016\313\222t\377\235\276\2732\231!\336r\356\243\376L\332\253\237z\011<4\307\272\273\323\361D\034\201`H\374x)*^\273@\227`\000\003\340\370+\273\001\000\353\236\332\013#\244\341 0\214f\301\273\257\354\032=\207\241G!8\307\356\373\355\n2\236\210Fc\210\367\364\245\0036?9%@ss\263w\377\352\325\317\275\366\367\372\227\237}\346\311\320\326\205\274\246\255\317$.\366\205z\327\375|o\301\350\2014:K)%\210\021\2146\240\257\240F/\003\203\234\374Po\325<9\375\221\373|57n\264\312\375\a\017\367\245G\262\317\275\177\372_\223\026(co*Z\275~\375\371-\2337\316_\265r\205 \356\317\274xJ4\235\211\331qnKHiA\330\022\234\0130\316\241\225\202R\036\274\214\013\327\315Be\\,\237\243\212~\375\240\263!\032m\263\217\036;\3415\035~\367\263\367O6/\302h '\024>\326\230\026\0167\\i\275\362X\361\314\031\201pQ\201X]\341\224\027\004\240/\365\210^\315\270f\234C\b\016.\005`4\264\326\320F\303aJ<\275\214-\334\275\334\212tt|i}p\246\005o\276u\260?3\250\276\327\325\325>i\n\216\217\000\000\340\336\232\232j\333\262\217o\332\270!\367\301\a\"<\220;\335u\034\277:\033\225\237\177\320\301o\\\037r\222\275i\226.p\2643'\220\311]V\352\315^2\313T\014\017\247xw\327uy\364\370?\324\221#'\334\222p\241\023*\230\226\032\036\034\274\240<\275\257\276\376\315?L\024\211\011\213\205%K\226\2242\333\177\254\270$\\\274\375\241-\271\345s\313\220\223\223\247|\201\\\317\226\222KN\334UZe\\W\245R7E\262\377&o\275r\031o\355oLvuu\307\214V\277\213\254\250y\345\236\252{D\311\254\022\\\277vC5\035n\372\323\033\177\333\367\364x\210)\253\342\201\241\364n.\370o\212f\024b\351\342\352\274\271esx^n\020~\277\017\203\203C\350O&\321\366\3455u\366\334\205\201D<\001\255\364\363y~go*\225*,+\237\327\276\250j\001\317\011\006\361\335\312\ntw\305\274\203\207\032\367\216\207\230\262\\\002\200\362\362r;\220\033\212H\307z\230s\266\322S\336t\317UA!y\2123\336\353y\352=7\235\335\327\033\2176G\243\321[\377\005f\305\3325\351\332\365k\304\365\033\355\230QX\204\025\221\357!\332\331\351\035z\347\233\020\223\001\320m\024\023\264fl\273\240\352\336\265\245sf\276u\337\342*+\332\021E8\034\306\252\310J\264w\264{\215M\207\277\206\370F\026\214s\316\306)\037\327\037\257c\277\245xW\354\252m;g\a\2073\333*+\357\342\321h\014===\250\252\252bE\205\005U\226\317.\376\354\223\213\215\223\001\260q3\236\312\276\325\037\013B\000(\321\335}\325\266\003g\206\206G\266\315\257\374\016\357\350\214\241'\336\213\352%\325L\byw \230sj\242b\321\000\320\343\034\214\2651\306\306\0040\267&\301\001\230\317>>\327\014\230:\"\252_\276l\261\025\213\305\220\350\216#=4\002R\3241Q\004\306\202L\244zL;V\3258\373\353\235\236\350\356\372RZ\3763\303##\333\026TV\360\326\266\253\356\207gZ~\177\360@C\375m\263\340[\310\370M8\3212\001\000\026.Z\262R\372\370c\022r\377\a\357\377s?\000\363\377\000\370\266\220\023\3712\377\006\316\335!\231H5\201\277\000\000\000\000IEND\256B`\202", 2383); _img_gnome_zoom_best_fit_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\b\314IDATX\205\255\227[lT\327\025\206\377\265/\3472\343\261\3017\306\030\207\002\016q\014$\016\267\000\r0\341\226\004*J!\220K\243*\250E*\251\372\222\327\364\261}\252\224*m\252V*U\037*\265IL(\030\260\271\225\232$J\223\200!iE\333\030\214\r\266g\306\343\261\261g\306\366\2349g\357\335\aC\344XfH/KZ\332k\351\034\315\372\366\277/g\r\341>\266w\357^\013\b6J\307~Nr\261\301\017TU\020\024\"BXY\301\331`A\005\357)\257\3606 .477\027\356\367{\323\215\356\365 \026\213\211\352h\305\3678\227?\251\211F\261f\315\332\262E\365\213x\244\244\004\241P\030\231\314(\206o\337FWW\227\352\350\2704\232\032H\301W\352\265\241\324\320\241\366\366\366\340\177\002x\376\371o\326\011\031>;o^m\315K/}\2474\034\016\343\363\316k\272\273\247G\215\217\347\230\n\n\214\013K;nH\327\326\324\360\272\272Z\226\031\315\340OG\217e\222\251d\302\033\363\266\036;v\254\367\277\002\330\375\334\356\345\256e\237\333\375\255=\245\353\326\256\345\347/\\\b\372\373\023z\304\224\367\345\250:\245Yd\334\203\345[\306\223B\217\271a\226\236S!\206\347U\226\227\263\245\215\r\342R\307eu\366\334\271La\242\260\271\245\245\345\312\177\004\260\363\371\235sKd\370\323W\016\376\240\252\262\274\002'O\265\252\264\252\271\226\263\026\366\331\226\r\306\210\2641\306(\203@k\243\014i?P\006:`Q\331\377@\324\036zp\311\222\006\236L&\361\366\333\315\203~\336ojii\211\027\003`SaJe\244u\337\336}\263++\312q\362\364i?\216\245\027uYc\377\254\210\313C\216\344\256\315\270+\271\260m\316]KpG2n[\234Ii\231A\363\265\236.\257\376\223k\235\335~M4\212-[6\227\013G\264\316\244\362T\343w\203]{v\355[\274x\361\213\273v\356\n\237hk\013\372\260\344RhV4\357\332\202[\202q)\031;\326\366~\323\265\033\2755]\335\2755]\335\275so\334\354\233\373\320\242\371I\002\001\004*\030\307\313\004\341\264\353\307k\032\033\033DO\317M\253\262\252\262\373Z\347\265\253E\025\210\305b\302\222\326\353/\276\360b\371G\035\227\374\264\256\355\014E\252\363\256\305\205\353\b\356:\026\0139\026g\214\250\365\315\375\324\372\346~j\373\345w\301\210(\354\332\314q$\263,\301,)hBG\262\275\343\025\237\247\aG\374\355Oo+\347B\274\036\213\305DQ\200pY86gN\265\34386\322\203C\312\263\027$C\256\305\035K2\307\222\334u%w,\316\211\210\030c\310e3 \0021\006rl\301l[0\333\222d[\222I[R<_\331\357\371\201*-+\303\354Y\345\216t\344\306\242\000\226\264\237]\275j\365\254[\275}:\243+\022%%\016\223\2223\313\026dY\2029\226\340\266-\030cw\304fDD\004\"\202\224\234I)\230esfY\234\244\340L\b\013\203^i<_\360\325\262G\226\314\342\\\356\275\027\200\000\000\342l\323\302\005\013x|`\300\237\020s\323\226\344L\nF\277o>\263l\262(\001d\210\b \272\023\000DD\346\255#g\0375\200\321\332\300\000f\307\323\261\016\020\243a\257d\320\350\321\272\272\272ZID\233\212\002\370\005\277:RV\n$\022\014<\3441\306\3018\a\021\314\3617\366\337\251gpgC\223`\000cdN\374b?\0010\306\000\306\000\333\177\370;\244s*\177\345\372\350\250\215\374\355u\363\371\312\222p\011|?\250*\n\340\345\275\222\220\353\202\013\316 C\301@\306\317\347\013\236*\004F\003\206\217\345r\223\020\304@d\300\030G~b\014\032\223\205\2651\206\313\220\272\235+\250\346\277\246\373\225R\020L3\307v\231\322.\n\205B\244(\000\223,7\232\311\224Y\226\2433C\023\301\261+\343\211\220mQn\314\3672\023\212\204,!b`D F\204\361\361q\330\216k\214\202\366'\3057~AA)\003.%\300\200h\2049\214K5\226\313\n&x\266(\200`\"5<4T\3468\216\036\313O\000\304\214\002\203\001\260\365\340o\r\201\014\0304\000\234\371\325\001x\032\240\300\230\315\337?4\251?\000h\003\020Ap\011\000\250\237\203\b\210\253\321lV0b\203\305\227\240P8\337y\375\372\302\225+V\260\305\345*\332\246e\0173\214\302\017o>)\271\200\2609\2108\322WN\356 \"\303\271\000h\362\022u\032\267\267h\023\300\370\nA\240@\276\017\001\203-K\254\a\214\361DO\317-U\360\375\363\367\002`\0000Q\310\037\376\350\243OF\\\327\345Kki\201&n\024\2706`:`L\373Z\350\000R\003d\000\200\263\311\013\224\210\300\245\204\340\022$9\204\230t\313\222\364\365\a\335\305\2367\306;.\177:\342\345\203\346\242\000\"@{b` \237\032L!\034\262\305\267W\243A\021\231\202fZ\201k\r\246\r\343\332\200`@\230T\200\000\"H)\301\271\230\204\340\034\3049\016l\b5\220\011D<\236@*=\234\017\333\374BQ\200\366\366\366`\"\357\275\372\307\267\232\207]\013\366\356e|\315\352:S\311\030\233\224\232s0\306A\000\266\036<\204-\a\017a\353\301C \000Bp0\311A\234\2011\206'\026\311\312\027\036\017\255\031\031I\332G\217\237\032\316O\024^-\326\240L\375R\321\223\333\266]\331\265s\307\222\215\033\326\013\342!\357\215\017D\333\305\204\235\342\266\204\224\026\204=9[\3069\264RP*@\340\371\360\375\002\224\347c\335|U\375\243\247\234g\342\361.\373\314\331\363A\333\251?_\375\360B\373c\230\274Df4>5\231\035\215\266\\\357\274\376r\315\3349\341hu\205x\262\301\251\257\bC\3773-\2064\343\232\361\3115\346R\000FCk\rm4\034\246\304+k\331\262\003\353\254X_\337\r\353\343\213\035x\367\310\361\021/\247\236H&{\357y\004\247+\000\000X\261f\315r\333\262\317}c\3073\245Om\215\361pi\245\3578!u).\377\365q\037\277us\314\311\014\345Y\276\302\321\316\374\260W\272\266.x`\325<\3230>\236\345\003\311\233\362\314\271\277\250\323\247\317\373\265\321*\247\274bvv<\227\373L\005\372ps\363\273?\237I\211\031\233\205U\253V\3251;t\266\2466Z\363\334\263\273J\353\027.@II\231r\303\245\201-%\227\234\270\257\264\362|_e\263\267Ef\3446\357\274~\rG\216\266f\222\311\201\204\321\352\247\261\365k~\375h\323\243\242v^-n\366\334Rm\247\332~\363\316\037\016\2772\035\242hW<:\226?\300\005\377q\365\234*\254^\271\274l\341\202\371\274\2544\202P\310E.7\206\221L\006]7z\324\245\313\237\215\016\246\006\241\225~\255,\344\034\312f\263U\013\352\027\365>\326\264\224\227D\"x\270\261\001\003\311Dp\374D\353\241\351\020E\333%\000\250\257\257\267\303\245\3451\351X\3738g\033\002\025T\006\276\212\b\311\263\234\361\241 P\357\371\371\302\341\241T\274=\036\217\337\375_`\326o\336\224\337\276m\223\270y\253\027s\252\252\261>\366\004\342\375\375\301\211\223_\206\270\027\000\335\3071\303h\246\216K\233Vl\256\233?\367\310\343+\233\254x_\034\321h\024\033c\033\320\333\327\033\264\266\235\372\002\342K\247`Zq6\315\371\264x\272O}\227R\311D\267m;\227r\343\336\236\306\306\305<\036O \235N\243\251\251\211UWU4Y\256]s\365\357\377h\275\027\000\2336\343b\371\335x*\b\001\240\301\201\201n\333\016_\034\033\237\330\263\244\361!\336\327\237@:5\204\345\253\2263!\344#\341H\311\a35\213\006\200\236V`j\216)9f\200\271;\011\016\300\\\375\333\345v\300\354%\242\346ukWZ\211D\002\203\003)\344\307&@\212\372fR`*\310L\256\247\214S]M\313\277\330\351\203\003\311\033\322\n]\034\237\230\330\263\264\261\201wvu\373\237\\\354\370\331\361c-\315\367=\005_\301\246o\302\231\226\011\000\260\354\261U\033\244\313_\226\220G?\376\360\375\243\000\314\377\003\340\253B\316T\313\374\033\366\365\322O\324\246\326B\000\000\000\000IEND\256B`\202", 2325); _img_gnome_zoom_in_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\b\351IDATX\205\255\227klT\307\025\307\377\363\272\217]\257\r\273\266Yc\014\3308\340\032\003\016\001\212\223\000[H\322&\215\022\032\002y\252J\037\221\332\264\212\224\317\371T\251\375\322J\251\024\265j\245\362\241\225\252\246\324$\305\016\230\220\020\a\362j\0026\011\215Hjc\3435\266\367\355\327\256\275\336\273\367\316L?8D\216e/\351\343HG3G\367j\316o\316c\356\\\202\233\310\341\303\207\r\300\333',\363\021\301\370^\327\223U\236W\014pn\3448\243\351\242\364\336\226N\361\030\300\317\267\267\267\027o\266\336b!\313=\210D\"\274:\034\372!c\342\0275\3410v\357n\253\330\320\270\201\005\312\312\340\363\371\221\315Ncbr\022\203\203\203\262\267\267g:\225L\301\225\362\371\361\324\370\321s\347\316y\377\023\300\243\217>X\307\205\377\2155kjk\236|\362\273\345~\277\037}\375W\325P4*\363\371\031*\275\"e\334P\226\355S\26555\254\256\256\226f\247\263\370\373\211\216l\"\225\210;\263\316\335\035\035\035#\377\025\300C\217<\264\3356\314\263\017}\347P\371\355mm\254\373\374yol,\256\246tpt\206T\247\024\r\344\035\030\256\241\035\301\325\254\355\247\231U!>\261\2462\030\244-\315M\274\247\367\222|\343\354\331lq\256x\240\263\263\363\243\377\b\340\201G\037X]&\374\037?\363\343\237TU\006C8\365Z\227\314\310\232\2533F\303\250i\230\240\224\020\245\265\326R\303SJKM\224\353I\r\345\321\260\030[\0336\307o\331\274\271\211%\022\011\034;\326\236v\013nkggg\254\024\000]\bS.\002]G\016\037YY\031\n\342\324\2313n\014-\027UE\363\330\212\200\315|\226`\266I\231-\0307M\306l\2033KPf\032\214\na\350\264^\037\035t\032/\\\355\037rk\302a\334u\327\201 \267x\327RQ^(\354\306\344\340\241\203G6n\334\370\370\301\a\016\372O\236>\355\215bs\217oE\270`\233\234\031\2342!(\205T\342T\367\373[\006\006GV\017\016\215\254\2766<\272z\323\206u\011\002\002\020\220\242\266\234\254\347\317\330n\254\246\271\271\211G\243\303FeU\345\320\325\376\253WJF \022\211pC\030/<\376\330\343\301\017z{\334\214\252\355\367\005\252\013\266\301\270mqf[\006\265\014\316\207c\311\312'\357\335F\273~\363=r\372\267?\000%\204\370m\223Z\226\240\206\301\251!8\231S\201\334H>\324\227IO\271\367}\353\236 \343\374\205H$\302K\002\370+\374\221U\253\252-\3132\221I\217K\307\254O\370l\203Y\206\240\226!\330_;\272\267\236|\375\275\226\252\000j\016\337\275\025\205B\036\204\200P\nb\231\234\232&\247\246!\210i\b*LAb\205\3121\307\365dyE\005V\256\bZ\302\022\373\226\003\340\000`\b\363\341];w\255\270>2\252\262*\024/+\263\250\020\214\032\006#\206`\224R\202c\277|\002J)\024\035\207H%A\b\321\204\020\b\301\250\004\001\250\204\364\264\322\000\005\210J;\345\261\025Ew\335\226\255\233W\244R\251\303\000\336\\6\002\204\321\375\r\365\365,\235\311\3109^\225\021\202Q\301)a\214P\301\011!\363uD(\245\304\266}\240\224\003\000\231\a\230\337\275a\b\"\004'\206\301\210\020\234L8ei\255\240\352\352j\031!d\177\311\024\270E\267:PQ\016(E\301|\016\245\014\2241p\3165%\034 \300\203\317\375\021\017>\367'\200\200\b\006B)\001\241\204\030&#\234SbpN\030g$3#\013\347\257L\246\317\\\316\016s\306h\231\277\014\256\353U\225L\201Sp\312|\266\r\306\031\205\360y\311\254[(\024\035Y\035\264\255\272\020\367\377\364\373\a\3738'\344\305\243'6\021\nP\312@@@\b\001\245\034\263N\321\035H\314e?\032\312fGR\371\202\224\022\234*j\2316\225\312F\261X\014\224\004\240\202\316Lg\263\025\206a\251\354\370\234\327\361Q>\3563\rb\030\005b\030\234\204C\266\031\364s3\233\367\352\035\027p$\205t\225\236\314\271\352woN\364M\344\034\327\223\022\332\323`B\000\024\b\a\250E\231\220\26339N9\313\225\004\340\224\247&\306\307+,\313R\263\2059\200P-A\341j\006(\256\343Sj.\236\365\346\362E\351\316\271\032\236\002\224\247\265#5\244K\335y\247\024\036\241\340\237\237;\215\253\020\000ar:\227\343\224\320t\311\032p\212\305\356\376\201\001\031\b\370\351\306\240\014{\212(WS%)W\022Ly\224)I\270\322\363\225\247)\345\032d\376\020eB\200\231\002B\314+\021\034\234q\334\265\331\267V\353\"\217F\257\313\242\353v\227\004\230+\026\216\177\360\301\205)\333\266YK-\251W\204i\011\2464\250\362(U\256\342\312\203P\000\321\300|\r`\036\006L\bp&@\004\003\347\363j\030\202\334q\213\275\321qfY\357\245\217\247\234\202\327^:\005\036\316\305\223\311B*\235\202?\020\344O\354B\323K\227\311gEE\265\000\003\001\005\241\014\032\004\a~t\024\004\200\236'\200\020\002\362\363\305<\005\020\245\360\364\035f\023\321\036\217\305\342He&\n~\223\235_\016\200\001@4\032U5uu\243\211x\342\300\035m;\002\233\252\330\352\341I:\232\312\213<\345\034\224\317\207\325\267~K_\371\372\326\276\262\372m}\376\265[\372\2545\315}\024\200&\032Zk@i\264\255\247\225\317\356\367\035H&\207\215?\277t|\"\231\314<\373\217w\337\371\244$\000\000\214D\243\237\256\b\205\036\263-\253\262\241~\255\330\333h6\304\2624\036\237\021\263Tp0.\300\r\001\306\005\230\020 d\276\r\265\322PZ\001RcO\003\251\376\331\375\376\373\022\211\250\321\375\326\333^o\357\307\003\027\336{\347\331\345\234\177\011\000\000V\206\303\235\003\375\003O\325\254^\345\017W\207\3707\232\254\306\220\037\352\263\014\037W\224\251\371\303\211\201\011\016h\005\245\024\224V\260\250\344\317\264\321-O\337nDFG\257\031\037^\354\305\313\257\274:\345\314\310;\023\211\221e[\020X\342[}\333\356\335\333M\303<{\377\267\357-\377\346\335\021\346/\257t-\313'{b\342_\037\216\262\353\303\263Vv\274@\013!KY\353\374Ny[\235\267v\347\032\335\224\317\347X21,^?\373\226X\336\330P\217\262\262\ni\373\313=S\b&\030a\256T\322q]\231\313M\362\354\324$\353\037\270\212WNte\023\211d\\+\371\253\310\236\335\277\337\326\272\215\327\256\251\305p\364\272<\375\332\351?\374\355/\307\237Y\014Q\362V<=[x\232q\366\363\352UU\330\265c{EC\375:VQ\036\200\317gcff\026S\331,\006\257Ee\317\245\313\323\351T\032J\252\347+|\326\321\\.WU\337\270a\344\326\326\026V\026\b\340k\315MH&\342\336\253'\273\216.\206(y]\002\200\306\306F\323_\036\214\b\3138\302\030\335\353I\257\322se\200\013\226c\224\215{\236|\333-\024\217\217\247b\347b\261\330\215\377\002\275\347\300\376\302}\367\354\347\303\327G\260\252\252\032{\"w\"66\346\235<\365e\210\345\000\310M\024K\214z\341\330\322z\333\201\272u\253_\371\372\216V#6\032C8\034\306\276\310^\214\214\216x]\247_\373\002\342K]\260\3109]\244l\321|\261.|\227\244\022\361!\323\264zf\362\316\241\346\346\215,\026\213#\223\311\240\265\265\225VW\205Z\r\333\254\271\362\311\247]\313\001\320E;.e\337\230/\004!\000H:\231\0342M\377\305\331\374\334\241\315\315\233\330\350X\034\231\3248\266\357\334N9\027[\375\201\262w\227\272,j\000j\221\203\2056\026\330X\002\346\306&\030\000}\345\237\227\316\001\3720!\244\375\366\266\035F<\036G:\231Bav\016D\222\321\245\"\260\020d)U\013\306\205*\027\331_Tz:\231\270&\014\337\305\374\334\334\241\226\346&\326?8\344^\270\330\373\353W;:\333o\332\005_A\026\027\341Ri\002\000l\271u\347^a\263\247\004\304\211\017\337\177\347\004\000\375\377\000\370\252\220K\371\322\377\006y\263\337\300\303\374@\356\000\000\000\000IEND\256B`\202", 2354); _img_gnome_zoom_original_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\b\260IDATX\205\255\227\337sU\325\025\307\277{\255\275\3179\367g ?o\b\001\023#\306\000\032\201P\202\202\021\264?\324\261T\004m\353t\354L}\320V\377\001\237:\323>\365\241S\237:S;}h\247\035\033\264\020\204\2102\bj\253\002\001\254\305\266I0\027\222\334_I\200\334\334$\367\336s\366\336}\210\330\230I\202\375\261f\326\354\275\346\2349\353\263~\315\336G\340&\262o\337>\a\b\356S\236\373\204b\271\323\017tM\020\224cR:S\222i\254\254\203wt\251\374\n Ouww\227o\366\275\205\"\226z\320\325\325%k\023U?`V?\255O$\260m[g\305\255-\267r,\032E8\034A>?\211\253\327\256\341\322\245K\272\257\357\354d.\233\203\257\365\213\023\271\211\227O\236<\031\374O\000O>\371\315F\251\"o\255^\335P\377\324S\337\213G\"\021\374\263\177\300\014%\223zf\246@:(\023K\307x\241\260i\250\257\347\306\306\006\312O\346\361\247\203\207\362\231\\&]\232.=x\350\320\241\341\377\n\340\261'\036\333\024r\334\343\217}ko|{g'\2378u*\030\035M\233\353\266r\244 js\206b3%8\276cKJ\232\351P\204\306\353\252\344\325\325\325\225\225\264\241\255U\236\355;\247\337:~<_\236-\357\356\351\3519\377\037\001<\372\344\243\253\242*r\341\271g\177XS]Y\205#o\034\325\343\272~\240\3404\217\270\216\013\"!\214\265\326j\213\300\030\253\2550~\240-L@\0115\272&\341N\334\266~}+g2\031\274\362J\367\230_\364\333{zzR\313\001\320|\230\270\212\035\335\277o\377\312\352\252J\0349v\314Oa\303\031S\3216\272\"\026\342\260\2478\344\022\207\024K\327e\0169\222=E\354:LJ9v\314\336\222\274Tj9=\320?\344\327'\022x\340\201\335\225\322\223G\027\313\362|\341\033\233={\367\354_\267n\335w\366<\272'\362zoo0\202\365g\303+\022\305\220+\331\221\304J\021I&R\212\205b\022R\262 \022B\000B@\000\002\242l\275R>\210\214\207\374T}[[\253L&/;\3255\325C\003\375\003\027\227\005\350\352\352\222\361\212x\357\363?z\276\356\302\305\277\371C\327c\003*\3268\031rYz\256$G\315\251RL\374\231cb\022,\011L\014A\002\020B\220 \224\265*Y\001?J\263+o\277\2559\332w\376\302\366U\211\372\227\222\311\244Y\262\004\221\212HW]]\255\347y.\306\307&t\311m\312\204C\016{\216\"\317Q\034\n)\366\034f\327\221\024r\025\205\\\207\\G\222\253${\256$\327\225\344:J\270\216\"\345*\221*V\217\226\374@\307+*\260rE\245\247\370\340\364\365P(\304\033\032D\223\021l5\330X\220\011\210\214o\244\011\240\214\001\033\013e\004+\003r\255R\n\254\024$+\b\305\220rN\035G\211{n\013\255+\225\246\271\357\334\205\353\245b\320\275,\200\014p2\235\315\026sc9D\302\256\374\356V\264j!l\331\220\321`c@\306\022\033K\216\261RYV\016\244\253\240\224\013\245\024\230\345\034\0043\0043\236\331\031n\0256\220\251T\032\271\361\253\305\210\313\247\226\002`\000H&\223\246\276\261q$\223\316\354\276\247sK\354\366\032^u\371\032\215\344f\324\014I\011\222\022\222%\204b(\251\300\212AD\260b.\002+\354\\/\030\213\316[\250\372\205]\341\335\331\354e\347w\1778p5\233\035\177\341\375\367\336\375xY\000\000\030N&?YQU\365\355\220\347U77\255Q;[\334\346T\236\322\351\202\232&%\301RA:\n,\347\322.\204\200\020\002\326X\030k\000m\261\243Y\324\376\370\221\310C\231L\3229\361\366;A_\337\205\301\323\177~\367\205\245\234\177\001\000\000V&\022=\203\375\203O\327\257\252\213$j\253\344\375\255^KU\004\346\357\343r\302\020\033\342\271\032\263\222\20050\306\300X\003\217\264|\256\2236>\263\335\351\032\031\371\324\371\360L\037^}\355\360\365RA\337\233\311\014/9\202\300\"g\365\346m\3336\271\216{\374\221\207\277\021\377\332\203]\034\211W\373\236\027\326gS\352\037\037\216\360\225\313\323^~\242H\305*\317xk#\245xgc\260\246c\265m\235\231\231\342l\346\262z\363\370\333\372\330\261\023~C\242\306\253\254Z95S(|\244\003s\240\273\373\325\22707\305\313\003\000@GGG#\271\341\267\352\033\022\365O<\276'\336\322\334\204h\264B\207\"\361\300U\212\025\013\366\265\321%\337\327SS\327d\376\3725\356\037\034\300k\a\217\3463\231l\332\032\375\263\256\035\333~yW\373]\262au\003.'\257\350\3367z\177\365\307\337\037xn!\304\262\267\342\311\351\3423,\371'\265u5\330\272eSEs\323Z\256\210\307\020\016\207P(L\343z>\217K\237&\365\331s\037M\216\345\306`\264y\261\"\354\275<55U\323\324r\353\360\335\355\0338\032\213\341\216\266Vd3\351\340\360\353G_^\b\261\354u\011\000ZZZ\334H\274\262Ky\316~f\332\031\350\240:\360uL*\236b\342\211 \320\357\370\305\362\201\211\\\352d*\225\272\361_`w\354\336U|\350\253\273\344\345+\303\250\253\251\305\216\256{\221\032\035\r^?\362E\210\245\000\304M\024\213\254v\376\272\241}\363\356\306\265\253^\373\312\226v'5\222B\"\221\300}];1<2\034\034\355}\343s\210/L\301\002\347\264@y\301~\241\316\177W\3442\351!\327\365\316\026fJ{\333\332\326q*\225\306\370\3708\332\333\333\251\266\246\252\335\011\271\365\027?\376\344\350R\000\264 \342\345\354\033\373\371 \002\200\030\313f\207\\7rfzfv\357\372\266\333yd4\215\361\334\0046ul\")\325\235\221X\364=\271\b\200\005`\0268\230oc\236\215E`n\004\301\000\354\305\277\236;\011\330}B\210\356\355\235[\234t:\215\261l\016\305\351Y\b-F\026\313\300|\220\305\324\314[\347\253^`\177\336\351c\331\314\247\312\011\237\231\231\235\335\273\241\255\225\373/\r\371\247\317\364\375\374\360\241\236\356\233N\301\227\220\205M\270X\231\000\000\033\357\356\330\251B\374\264\202:\370\341_\336=\b\300\376?\000\276,\344b\276\354\277\000}\203\332\035\236v\240h\000\000\000\000IEND\256B`\202", 2297); _img_gnome_zoom_out_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\001\327IDATX\205\305\226\275K\303P\024\305O\232\0271M\235\264KiEDtrPhq,\016\016\342\a\210\2438wS\004\321\301U\374\030D\377\005\207\016\242\342\344 8;8t\025D\220\"ZZ\004\aQ\3044\327\301\274\266I\373\252Bn\274S\363\362\270\347\274s\337/\024\370\347\322F\346v\346_\2538\374\374tL\016\001\303\210\274\307t,\026N\327\216[\275\027\037\024\311OMd\214\201T\017\207>n\213\025\363\342\362:\017\240\265\201\267\017\333\030\036L\340\352\246\014\242`\3055\r\030\033J\340\354\3346T{\004\000tv\032\210Y,\023\200iv\264}\037\001\000C\217\260\210\377\246\267\310e\035L\217\3061>\304\223\200e\305p\227u\260~\2560\000\000\272.X\304\033{\367Mnyn\230\244\203O\331W\253\271\031\317\263\244#4\003\205\373\227\332\357F:j\006(h\006}\325\025\363\3361I\207k\200\340\220\303$\335\372`\222\016!\2678\016\217\001)\2771\233\362\254K:\204\334E\\\011(&+\351\250\217\200)\001\245\003\267\352#`J\340\247\253\355\216\2001\001\227.\025e\241a\330\2340\325\r\204A\201\277\277\\\017\355;\320D\0315\032 \276\004\244Ps\177\377\b\230)\360\367\367\216\200\b \n\374\"j\232V\243\240)\001w]\350BTJ\345R\2747\331\017-P\371\357S\226\312O\210Z\226\032C\262\235\205\343\223\243|\325\256v\a\254\017\000\210\232&\322\351\214\222\002\345\241\267w7iyi\005\017\217E\016_H&z\261\177\260\207\366\177HB\240\243\255\2010\350\370!\001~:\224\006\302\240C\027\242\2424\300M\207.\364g\262i\201\243\367\237\352\013\004\314\342\270\b\370\002\202\000\000\000\000IEND\256B`\202", 544); _img_gnome_preferences_system_windows_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000 \000\000\000 \b\006\000\000\000szz\364\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\004\201IDATX\205\355\227?l\034U\020\306\177\363v\367\376\357\331wg;v\300V\210M\022\021\"\001\221\240%\0244@\021\240\200\206\202*U\n\n\352\264\001ZD\003\022\212D@\244\243\005$\323\020\032\244HI $\226\023\342(q\034\333\361\335\371\366v\367v\337P\234\215\235\3708G\216\2454|\315\333ff\276\357{o\336\316\203'\014\331\255D\252G\275F#\364\301\326\\WJ\222\210g\035\242$q\032i\032,U\2533-\021\322]'\240\212\023,\036\0351\331p\322\24255\306\027\253\271nnIE4Pc\032\036\272\260\032\005\327\252\325\331\372\256\021\270|\371pfb\3029`4\335\2170\212\352\220\030\031P\325<\250QL\"\242\201Zs\037\364\036Fn\307\261^\251T.\337\022\301n!\360\342\333\247\337]M9\323\351\330\374v\305\035\243L\216\327yf\254\316\330p\213=\325\200Z9\244\\\214(\344\rS\023'\230\271\371\025\315V\207\225\325,K\365\034\313\365bgb8\370\354\2757\376\370\242P\2704\a\340nN\032\2519\373\346\353/{S\343C\333\252/f\357Q\363\257\343\027\356\342\347\356R\312-P\310\264\311f\332\224\n\357\220\317\037\247R\276O}\365\014a\234#\210\212\334\272W\362\316\377n>\266\226i\325\251\272\310L\343\001\002A\224xG\016\354\345\374\225\005T\377\273\270\347\306\354\033\236\005\231\307q\346)e\347\311x\013\370\371\373\270\356^r\271\017\001\310f\337\307O\276\3055s\304I\310\304\3508\177\226W\035\320\261 \360\246T\271\340>\234<\227\363(\025\373\357\300@\241\315\320@Lm\240M\255\334\244\352\257P-.\343\272\257\340eN 2\000\200H\036/\367)\360\0115\377*A\247Hm \001t\b\334=p\270\260\205\200\347\230\276\305\005\245\224m\220\365Br^\300h\345\020c\325\223\270\356$\"\345\036n\275\200W:K^\233\370\351\034\317M\376\200\350lET\313\355\2663\370\000\201\023\257Z\336zi\230\327\016\366s \305\310\n\306\024\020qq\335\000\317{\036\360\372\023\027\037\317=\304\210\377\r\252\266\240\306\3444M\313[\344:\316\026S\036\202\005I\272+)6\275@\024~\004$\333\304\245\304\321)\202\340W\020q\304\212+B\246\277\337=a@\235\356\212A\325!M~\241\023}\3357\252\023\177I\232\374\264v\270\305*\232\252\272\235\235\021 \203j\006\325,\220\a\n$\351\317}\243\222\344G\224<\235\304CD\333F\b\223$j\365\364[\373\365 `\251`( RB\361Q\255`\210\372\323\226!\254\nq\030\242V\352\2504\a\a\223\345\036\004\024\253\266o2\301\aJ\240\003\bU\240\205#\a7\011X$M/b\314\001\214y\252\033#G\020s\211\240\275\210 \213\342\231\305\351\351\247\203-\004\024\260\266?\001\310`e\004W\033\210i\201\304\300\b\326\336\241\023\237!\351|\017\304 Y\\\3678^\346\003\224=\3002\253\255\000\034\271\223O\342\231c\307\246\223\255\016(\3506\016tU\216\220\322DHPQ\302\360:Q|\nC\023d\037h\n\342\022E\177\021\206\247\261Z\241\220\337O\243y\233$q\256Q\276\270\014\017\375\013\326\031l\357\000\200`\3558\216Q0\016jr\210\372XZ\210D\200\2428\335\203\252%\254V\200\011\356\257\\\245\\~vV\344\202\366$\240\260\355\031\330\200\207\332}X\362\210\0261\322@h#\022\323\275'\334\265n)\242Z\306\230\303\254\254\374\206\310\271\177\a\223\036[\360\250\016l8\221\246\243\210T\020ibL\035\241\353\000jP\311c\355 \252%\224\n\252\017\216 ;j\303\3361\031\240F\232\326\200\224\215Q\243\377U\263\303.\330\016\233Un\344\352%kG\367\300\316\261\225B\3176||\a\036\271\376\343v\301c\327\357\335\005\250\356\350 \366\203\210\320k\316[' @\321\030gi~a\2766\361\364\376\335{\261\254A\201\371\205;\030\343,\001%\240\005\350:\001\003\2707o\374}\362\334\271\357>\267V\aw\271~\267\210\221\225\2337\346N\322\025n\200t\263P\a(\000\271\265o\303\356=\335\224\365\021\nB X\373\376\037O\036\377\000\202]\374p:\360$\217\000\000\000\000IEND\256B`\202", 1226); _img_gnome_window_new_32 = new wxBitmap(wxImage(sm)); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\030tEXtTitle\000Dialog Information\365/\320\370\000\000\000\024tEXtAuthor\000Jakub Steiner\346\373\367/\000\000\000!tEXtSource\000http://jimmac.musichall.czif\343^\000\000\020\014IDATx\234\345[i\220\035\325u\376\316\271\275\275mV\2154ZGB\033B\230\305(v\201\\\266\034\234\030;8$\216\301[ N\342\230\270\212J\331N\n\227]qa\354P\251\030\307U@\305N\312q\205\245\234\"\220\000\016\261c\260\330\267XB\bI,\002I\243\231\321H\2034\353\233\267u\277\276\367\236\374\350\367f\336\b0\222\346\315LR\356\2513\335\357Nw\277\357\373\356\271\347\236\273\014\211\b~\235\017^h\000\013}\374\332\013\340,\324\027_\365\375W\262n%\334H\"\033A\262\002 \003\262\307\331\252c\232\344\330\306\342E\257\337p\003\354\\\343\240\371\214\001\327|w\357b\241\350\323\000\375\211\000\347\001\000\201,\301T\001\202\005\371\000\250\006m\\`\037 R\367\271\205\311\355\377r\303\266p.0\315\213\000\237\271\345\227K\224Q\337\021\340\263\020\221\3264\252=\213\334\270=\343H[\306C:p\b\000\252\261\265\245\310P)248\022\251c\343\232#Mi\"\014[\301_\307\253\016\377\350\236+\2574\315\3046\247\002\\u\357\275\312\037X}\235\200nR$j\375R7Z\327\035\330\316\226\224\262\"R\016\265\255D\261\204\261\026\200\020\270\212<\317\241\224\307\234\366]\256j#\307\307B\263\273\257\344\217\024(\000I/ \177t\327W~\343\331fa\2343\001\256\275qW\272\234\221{\205\344\303\313\332\251|\321YY\335\232\011x\264\020\3527F\013f\254\030i\020\210@ \000D3\237\367=\227\272Z\002gI{\306Iy\314G\206\313v\327\341\320\233\254\210'b\377\374\307\177\365\236\0375\003\347\234\bp\325m\273\273\274\330\374\234\201\315\027\235\345\226\327ugy\262\034\233CC\023\325J\244-3\021\021\201I\210\210k\344\251\336\370!\265\337\"\200\210EW[F\255\354\312y\314$\317\356\237p\372\206MF\254\275\355\356\353\337\373%\251\337~\206G\323\005\270\366\306]\351RVv9Jz.^\037\204\335\355i:44V\035\311GZ1\0213\201\211h\325\342\026\267gI\316kIy\252%\343\261\347:\\\016c3Y\256\332\211Rd^;2\026\225*\261\265\020\210\205\200\200u\335m^k\316W{\017\347\261\247/\314\031\310\215\367|\365\342o\315\006o\323\005\270\372{\317\377+A\376\340\375\233\322\305\266\254G\a\217\216G\305\260*L\014\305D\313\273r\316E\353\026\247\273\332\323NB\353\255\017\201\310\241\243\371\352\336\276\341\260T\211\215\265\002+\"\313:3\356\322\366\254\263\353P\236\367\rT\262\"\366\023\367~m\353}g\212\267\251\002|\366\357\237\377\002\001\377x~\217\223_\333\235\221W\372G\24306\3422\201\230i\343\312v\177\353\346\345\031\324\272\272\031\355\236\246\2632\013L9v%2\366\027\273\016\027\n\225\330Z+b\254`\331\242\254\323\225K\251G\366\216x\203#U\326Zo\272\377\206m}g\202\271i\231\340\237~\347\231\034\003\177\267\274\215Kk\226d\244\377\370d\034\305F\034\006)\305\264\246\273\305\273\244F\236(!\317DS\246@H\342\001Ca\272<\0238|\351\205=\331L\340\262\243\210\034\207ih\264\250\213a\325n\335\324\026;J\210\025\337t\246\270\233&@\244\274/\203$\263ieP\235,Ef\254\020\032\305L\216RP\212i\313\206%i\246\204<\023AQ\362\241N4\211\201\222\030\201\352\345D\204\226\264\2476.o\367\035\245(y'\323\300pA\273\016\313\205k[\252\306\312\247\257\370\366\223\027.\230\000\327\336\270+\r\320\365\253:U\224\366\025\035\035-j\305 G\021\034\305\324\022\270\252%\343\253FRD\204)\302\250w\207\323?\300\264 D\204\356\216\214\253\024\223\253\022\001\b\300\310dh6,\313\230\234O\021\214\376\372\202\011P\316\311\207\004\222^\327\355W\363\305HkcE\325j^1Qg[J1%\264\270\2018M\2111\2639p\255\254Q\250\326\254\257j\344\341\324D\030/DF\000lZ\225\325\"\362\321\217\376\305\177\373\013\"\200\326\366w\263\236TR\276\242\361bd\025\023\245}\2277\257^\024dR.\347\213\261M\2529!S'\306\230n\006\365\270\320\030\037\032\357\231,WMB\234\310Q\212\224bb\006\025+\261]\325\2256\306\330\264\264:\227.\210\000\020\373{\335m\216\025\001\302X\213\357(\376\300\371+\262\347\256^\024\234\267\246+e\254`\262\\\265u\362uRu\262Hz\2057\331\264 \204\261Bd\3525\257\030pX\221\243\230Ja,\271\214\213\366\254[!k?6\357\002\374\376\215\217\267Y\221\316\266\254c\312\2411D\204\363\327.\016:\262\201\"\000\035\271@)\005\274<0\032\n(\211p\r\304\023~\323qa\206\325\204(\224\253vh\254\244\3535\357(&\245\000\305\204j\254- X\334\352\021D6\315\273\000\312\363\273\255\265\b\\\026m5\024\023uw\244]\252\345\267i\337eG)\312\027\253v\357\241\221\b\365\266]#n-\020\305\232JaL\345(\246jl\310\212L\325|\250\255}\271\1774\"\000\216\0029\234\364\004u#f\262\026H\005J\254\225\025\247\213\177\326\023\"dL\267\020\220rYJU-\031\337\345\226t\300\250\021,\224B\313I\217@c\305\212\331\261\377\215\260%\355\371\035\331@U\265\241z\036F\0044\346d\2450\306\236\203\303\266\020\306v\315\262V\362]\225t\224H\362b\001A\204`\205a\215 \343;b\305v\317\273\000\002\355X\313P*\231\321\360\\5\225\341\021\200\361RU+\305\320Fh\357\301\023\336\013\257\035\367'KU~\377\371+\364\373\316_.K;2\324\325\236F&p\020\305V\362\305\020'&*\262\347\320\b^|\375\270:pd\334\267V\3745\313[\365\307\267m,;\314\311 \011\200\265\002%\0020\211R\004c\355i{\364\254\005\210\331\354cM\230(\307\234\011\\\032+\224M56\360=\a\332X\031\032+\031EL\367<\372Jv4\037\361\005\033\272\342\255\347-\327]miq\024Q\030\033\014\216\024\211xz4\350\371\016\266\234\275\004\027mX\254\213a\225\236\336sLm\337\331\347\215\346KNwGF[!\2100,\013D\004\201\247\370\370XY\221`\347\351\342\237u\014\370\311\327/=.bG\307\363\261J\371\01631\035\031\236\254F\261\226\335\aOT\"mjM\200\261~e\233\271|\353\272jB>\351\323\225\223\0045\227\223$\307\255];\212I9L\331\224'D\240L\340\312\312\305m\226\230(\031U\202X\021|O\021\0230p\274$\261\266O\317\273\000\000`Ev\2751\021)O1\371\256\242\327\006\307\243'\366\016\226\n\311(\220\230\b\347\254\356\214\017\035\235P\326\032(Ep\024A)&\247F\334qN\262\332\337\224b\332\3377\252\316\356\3510\216\002\0243\024\327\022&0\345\322\236\032/T\325\360D9 1\017/\210\000F\233\333\217\234\250x\205JL\035\271\224C5\322\211\001\314D\347\254]\244cm\250\367\350\204\243\230\210\247\bR\342\001\212\311U\212\023K>+ET*\307w\355\"\233\366\234\351\207\b\b<\305\373zGy,_Q$\374\215\331`n\372\342\250\b\276rb\274\034\034:6\311\201W\233\271\230\376\353\233\256\004\020H\222\006[+\2606\231\0167F0^\014\261yu\347\214YK\217\231\210\200\377y\371(\201d\373\263?\270\362\350l\3606]\200\355\337\375\330N\202\274\260\373\365Q\005\001\002OQ}\356^\004\011c\021I\346\374\223L\316\210\210\261V\264I\314X+C\243E\344\322.z\272[l\355^\201\000\216\313T,U\261\277\177\3245\332\3341[\274s\2620\342(&(&\262Im\213\210L\271\272\261\002c\255\350Z\355\307:1m\254T\215\226e\213\322\266~\257\265\002\207\211\254\265\330\371\352\020\004\362\340\363\377\364\205\362l\261\316\211\000\017\335|u\011\326\336\261\343\3257\250\022i\233\362\034\022\001\214\005L2\267/FD\214I,\251\375\351&P\014\253\222\n\034\311e\002kL\355^+\242\024c\254\020\311\341cy\027\206\376\255\031X\347l\207H$\346o\213\245\230\177\371\312\033.\251$\312\213X\261V\304Z\013c,\214X\211\255\2016\006:6\250{@\034\213\264\345R\226\bb\254\025c,\024\201H \367?q@1\323\221\361T\373O\233\201s\316\004\330\361\017\237:\242\255\276\365\211\335\203j\262\030!\355;\354(R\326\306\256\321\241oM\030\230\270\222\262:\364\215\216H\370\213S~\227\265\026\312qQ\215\221%\242\200\210|\"\362j\337\361\266\273MO\345hZ&X\003\302\000T\355\314\000\370\300 \036\336\344\214}\243\367\245=\316\362\265\033\340\343\3247y[c0vb\bC\207\017\241\032V\252\257\365\343>\000)$\233I\005I2!DdjeFDN\353\277Lf=\026\250\021W\rV'_\277Vw\335\204\313V-\305M\212\261\"Hg\220mkG\220\311\202\225B\265R\201\3211\2141\260\306\300h\rk4\2541\210\302JRf1\360z\037\276\371g\337\302\3035\242u3oq\335(\306;\222\233\225\000Dt2\361\267\372\314\000\324\262EH\335\360E\\\261\270\023\357Q\354~\260-\247;\230\336\374\335\245(\300H\336\225b\005\307\322\252\260\275\367(v\375\315?\343\3518F\014L\231\256\021m$\375V\327\372\235<\342\214\005\250\255T9'\221u\336B\b\027\200\327h\313V\255\332\322\265\270\373\226\225\313\332\320\321\352\301U\006D\202b\230\302d\261\212\301\241a\231\030\033\271y\240\267\367\261\006\322\325\232\305\000\242\206r\333 H]\000\335(\306\257\022\341\214b@\315\355\247W\267\246\r5\001\352\237\353\"\315\260c\003\003\257fr-\017\016\034\303\345\223\305,e3)\020\001\245r\001c\023\223\022\205\341\316\201\336\336]\000|L\aj\301\314\266\337\350\356\214\3728{\032\2034`z{.\013\341\001\365\262\236u\353>\322\322\332~\r\021u&\014e\262\220\237\374\217#\275\a\177j\214\251\327\366\234z\300\274\305\200\032\351F\233\022,\235\313\265+\245\234\302\304\3048\246kr\252\0357\330\377\235\030\320 \302;\366\002H\\\261~>Y\250zY\243\273\326\335\375dB'\333\302\366\0023^\3646y\300I\326\030\033\320pn\214'\r\013\3073\332u\235\350\311\261`FL\230\367<\340m_<\275\237\341\344Z>\331\2007\a+9\351\272\321l\303\265Fm\261\371\214q\316\347\277\3166\244\255'\367 \215e\300\314\232\237:\317\206\350\333\035\377\013\253\262;\213+\b\321\306\000\000\000\000IEND\256B`\202", 4352); _img_gnome_dialog_information_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\030tEXtTitle\000Folder Drag Accept\341\231\030\367\000\000\000\024tEXtAuthor\000Jakub Steiner\346\373\367/\000\000\b\245IDATx\234\355[\335\217S\307\025\377\235\271\266\327k\257W\330\273\220\206>\320(%\2014\011\037\213@Q\332\274\204\207VU\242\212\300*\224\206?\241\312k\237\372\a\364\261\252Z5j\245J\001\025\207$\005\251mZH\244\226\252\260l\226\260\001\0266\204\240,\330\373m\357\332\336\365\307\2753\247\017\367\303\037\334{\275\353\365b\272\341'\217\356\365\314\235\2313\2779\347\314\2713613\276\311\020\235\026\240\323xL@\247\005\3504\036\023\320i\001:\215\200W\301\341\243\207\367\021\323\200`\246vt\244\210\312\244\350L2\231\314\264\243\275v\201\334\226\301#G\217\274J\314\347\205 \011\240-\353$3\004\200\n\024\377\374\324\251\323\357\264\243\315v\300U\003\210\371`8\034\322\a\366=\035lWGR*LL\314\206\323\251\314o\a\177z\350N\362\344\a\237\264\253\355\265\300\225\000f\220\020\304\337\331\266\035\211x?\332\021,\025\213\313\350\355\275\213r\371\0262\363\371\017\006\a\a\367$\223\311\273knx\215\360t\202\2337\367\323\356\027\017`\357\236\227\021\n\206`\030F\313\011\000\236\330\262\025{w\275\204\003\a^\320\"\221P\2044\365\327\343\307\217G\037\332H=\340\351\004\303]]\264\270\230A*=\201\341\221\177\257\271\243H\244\a\317n\177\036/~o\000\322P\301\217?\271\374\335\222^\374\363\261c\307\216\2378q\"\273\346\016Z\204'\001\000\240\224\302\327\023\267\333\322\321\362r\001\237_\037\306s;vc\357\356\375\020\"\020\032\270.\250u\252\225\212\216\256\220wD\337\234\000\217|\245\270\206\000\202 B@k\360\346-\017\274\265\212v-AU\243\250Tt(\345m>\315M\300K\003\230!\2550\227\b\020\232\200\0260\011\310\347\363\310f\333\033\3334\243$\036\217#\026\213\001\000\204\020\216\343\223\206\001\345\343\310[6\001\002@d\331\026\021\204\020\216\011\230\346\340\266\266{\303\177\200\3155\"\020\b\326\365o\327!\022\276\265W`\002\036\354\021@\202\034\3614!\034\023H\304\343H\304\343M\205v\032j\005>\325\204&\034\277C\202|\237]\201\011x\365O\216\232\021\221\257\023l'\374\035\252Y\250YQ\242-[\3432Y\213\246\022+\245\\\315\200\3015\301\252m\002U\037\220\311\264{\347\313_S\022\211\004z{m\037\240U5\000\325\367\0137x\022\340\274\204(v\365\242J\325\030\a\325\023@\326\367\366\241\271\231h\232\346,\177D\302\251\302\226\254^\013As\r`\011f\345R\302ub\021\011\330c\216\307\023\210\307\0235eM\345\367@k\025\205\020\216\332[\257R\253\327\000\033,\025\330\205\276\332<\333\a\370\305\334\253\301Z\3331\353W\333`\305\236\253\231\267\011XW\305\354\272\216\326\346\020\0214M\300\336A\317\345r\230\237\237\367\023\321\247l\365 \002\372\372\372\320\333\333\353\310S\313!\303;\240[\201\023\224`\365\240\011\230yV\263L\346zK\260\022y\304\001\353\027\023kZ\240~_\301a\200MY[5\001\257U\240\026\215\003N$\372\220H\3649\337;r\004\337\320\345\252M\300\206\337*\000K\345\2452 \245t\017\232\036\352\330\355\316\b\312\336\000a2W\254\366k\000;\032-\rs?n\375g\332\275\375\306\\\"\202!-\002\310|\302K4\2378\300\274\332\033\215\215\250e\325\336\230t\r\230\230WH\216\317\316\323*\253\021\021\312\345\2123yk\322\000f\257\312\325<\351A@\271\\\206\256\353\276ChYg|*\022\021J\245b\315\304y\257\003>\004\330\333\321^q@\325\247\233[\324\206C\226a\030\320u\035S\323S\030\031\031\301\255\361\233(\225J\315\aU\337u\013\260*\022\241R)#\024\n!\225\312\201\310\324X!\304\246\243\307\006\277b\240\310\206\3725\263x\247\251\006H\245\334\343\000k\337\3360\014,/-#\227\313\325i\313\245\241K8s\366/xb\313f\014\014\274\200h4\342.\262}\006\340\226l\025\366{fu\317\nf~*\237_\342\033c\267\177\003\305\373\003\000\360\306[o<\251\031\330\313,b\000@\340\235\371\374\022\215\335\034G6\233w\316\367\032\005\227R\201\210\360\345\235/Q\256\224\301\314\230\234\232\304\370\370-LOO\343\265\327\016\342\a\337\177\011\004\240\\.\325mM3[\a u\367\226\263r\356-B\255\003\223\352w\267z\265\317*\230E\366\204<@\004u\205\203\364\331\225[\a\351\310\233\207\336\002\323\237\000\220\031\315\325\b\210\a\357\233a\353\223[\260s\347v\014\014\354\302\346\376>d2sX\314-t&\026\360\301\350\350-\\\034\032\315\a4-\360\366\201\375\273\351\307?:\210\256px\025M\360\203\301\006L\a$\r\003\271\374\002\276\236\270\003)WvZ\364\260\221J\317(\200.\004\2408\027\213\305\320\025\016cvv\n\206\2417\257\355\001i\030\320\r\335u\331|\224\240\024#\225\232V\254\324?\003R\251+##\237\277|\360\325W\202\272\256cyy\251\323\362\255;ff20\014\031P\002\347\205\022\370\343\334\\&\230J\245\321\023\355Au\315\334\270\351~j\n\232\240\371\323'O\337\020\247O\236\276\241\011\361\351\360\345\253*\332\023k\033\313\2172\356\335\233\322\225R\037\001\326Od$\313\337\r\r_\205\241\033\b\207#\315\327\334\377\343\244\353:ff2\032\230\3169\004@j\247\244\224\345\261\233_ \266\301\265`rr\016J)a\004\371c\300\" \231L\026\230\371\344\205\013C\272i\006\235\267\323\365\263\377ih\202\276z\377\335\367\357;\004\000\000\224\372\303\304\275tpvv\036]]\335V$\265\361\322\275\211)\275R1\316\333\303v\bx\357\275\017G\000\334\035\031\031\345H$\322\361\231Z\217T*\225\220]\310\005\027r\271a\"\322\3525\000\b-..\236\272x\3513&\021\350\370L\255GJ\245f\001\200\307\307\306?\005\020l$ pm\364\306\337\312\3452\337\271}\027\241P\250\3433\326\356\224JOC\032\362v*\225*\333c\257%@\237\234\234\234+\026\213\377\031\032\036U&\001\033\013\023\023S\310\027\nC\000*\000\014\240~CD\aP\274\237J\277\333\335\335\375\312\371\363\027\021\215v\255\347N\366C\003307\233\305\362r\011S\323\323\377\000P\006 \201\032\002\230\271BD\013WG\256^\210F\272\177i\030\362g\301``\033\321\206\370S\005+\245rs3\363\277\277v\365\332e\000Yf\226@\303\377\005\310\374\305\303&+Ea\022\264\272_:<\232\22005\274\000 \013 \307\326\300\037\370\303\004\231\aka\000]\000B\330\020F\000\206i\367Ef.\327\026\270\376c\304)l\327i\347#\000\366\030\250/\001\337\004l\004\a\267&<&\240\323\002t\032\217\011\350\264\000\235\306\377\0007\362;\330:\373\221\342\262xy\337\177\256\235\204\017\035\001Q\360\351\341\3351#\207\310\r_\023\263Tz\274\272,^\336\367\344\332H\020\255|\300\226\253\357\272@\b\371\025\203\271\002\023\222\365\370\206\273I\226\216u\001\343\304Lea\375n\211\314\014\222\035\335\215S\265).\275\201\221\343T\212+\034\376\277\377\340\235#)\376|\357\255,\225\323\000\b!\336\002s\317\301\247\277\370\255Fm6%@\374\326\223jK\361\235\311\323\306G\206\256\274x\273\262,\027\377J\261\314gJ_\247\2470\371>\301lb\211\n\234\377\032$\262dFn\302\251\332\024\026\367Q).S\255\030T\362\034J+s\314\274\265\207\271\312Gx\266\364 \306\b\336\233\232e\337k\357 \020\277|\360;_x\256\276Y\253\331\363\266\344\337\336i\004\243\267\355\276\224\222\255Y,T\301\300r\261J<\333K\217\376\340\b0\2112\345\035\257\243\343\253\301WJ%\204u\nv\245\302\361\351}8F\361\323\305\033\2602\212x\"\311\245\027\236\311\354\374Rubf\341&\240s\002\214\024\003\030C\246'\316\217\1776\303\301\351e\3000?\267\300\2477\036\"3\375\342\373\2119\354G\017T\256\024\230\370:\017|\225\302\342+5\340\r\275\314\035z\216R\376\b\337\374\351\255L\331[H\244\347\221V\234]\2770N.\233\212\211i\223k\324~S\002B\023<\365\340\355Tl\315\247>w\027\207\247fx\355\334\273I^\363\020\311d\352d\343\2555g\n3w5h\207\314\320\r\315\301O\300\005\353\312\311c@\204\367O\2529\2238\263Wa\234f\3407\201\360\301\317\222:\365^\3726\354$\223\311\240\224\244P(\000\002!\300\355\232\337\277\346\022\350`\n\210U\200\375\277B\b\376\376\361\3079w\307\331\244R\311.\220\203%fXo\335\202B\222\031\276\301\003\377\n\225b>\002~\200\271\211\347)\346\217\262\234\375\022\245\352\026\376\373\251\247\270\356\332kH\251\224\327\307\260o\030\327[\231\026N`\355\n\b\300\203\020'g\n\204\340\025\231\341\353[\200\177!\000\037\357\377Ezzz\210\305\343\200\254Qc\350\373D\313\371\017\035\372\000\341\001\366J\236\004\\Rn\276i\367\211#\a\214=Au\346\263\030\307\"3t\035N\245La)\n~\014\304\000\363\223/PZ9J\372\364\373\031\333p9\331l\226d2\311\216\263?\n@\245R\016:,\b\325j\004\210n\247@\320\240\241&\244t\353\003\\\360\237\3008x\340K\024\226\366\327\201\037d~\322\035\371\364i\367\321\277\361\212\000|}O\335>y\212E\2000`Z\a\255\216\024\2007\005Ld6u\033\005\214}\210\362\364\025\030\a\262C\327cW\212M\300\277H1\177\204\314\326\a\030\330\370\211&\340A\312\350\024\b\025\333\365\024\360\235\251\210\024Dy\352r\017\374\r\330\225B\035\370\215\021\3603d\267>\300\300\330\225M\301Gz\032\276\363\006\314}`\327N\220PR\221\a\236\b\001\306>Dir'\332\021\336\3107\002\277.\000\237\333\366`\a\340\375\001\362\035\240\247\200\000x\027>\300m4\352\004\211\204E\311\357\177\366V\256\336u9}}\275m\333\211\253\243\2341\360'X2Nn\270\311\310\313u\314\035z\211b~\232i\371G\034\236J\323s\354'\304\343\361\206m>\372\330\023\334y\307\035\214\016\017\373\275\255u\202\264\024@'>\300\a-\"\002\020Ah\374\302\347?Oo.\323\276\031=I|\351wA'<\360+\036\370\025\027\274\334\340\202\237x\211\322\3124r\354\036\316\030\271\214L:C\"\231h\332\356\237\376\361\030\233\307O\241T*z=\213NO\177\ntA\200\033Rk3\301\250#\334z\332\351m\301\353\352{\344\337\273\026\255-r\303\3277\006\257\206\230\237x\211R~\232\3363\276\311\272\361\253\332\312\036`dx}\320\027\277\303A\302&DM\372\336\310\326\020\005\3347\"\022n\242\236\267\225\345'\257B\333\"\004\277\270\237Ji5\370b~\232\376\263\276\3251\370\232n\326%BQ\005t\027\006\275\330\037$@\301sDG\231`u\345\373\224\227\337\244\377\324\207\321\325e\nK\377\022\001\277\036\3240\363\223\036\370\355\337f\335\246]\344r\2715\201\207(\001\236f='hhM@G\201\334\237WD\237\321\241\025g\037@&\317G\250\215h\321G,{5\325\212\361\300\217\270\340\227\017\323\177\326C'\014\276\246\257\"\222\014y*\350j\n\004\331\177\315B(\264\003o\035 \233m\342\004\365\002\316\321\177\245w\354\3138v\031\247\262\002\242\227\344\300\257Q\\<\300\374\344\017(.\037F\216\335\203I}\234Bq\005m\034Xl\2133\260\371\371\005\316:\363\254\272\273a\342\326n\264:\n\203~&\350\246U\241\037\000\370\313\277\276\233\253w\355l\030\006\ac\377\314\200\325\203\225:\027\2555\302\032Eh\203\225\210\2610\365\017\024\226&\231\226\267\301\361Qz*o7\ru\255\354\321\307\236\340+\177v'\243#n\030\364C\240\037\271\332M\201\366\n0u\213\241:B\037~\350\241f\337\344\366\333n\342\272\337\274\214a\r\245\345\267\311\317\355ca\372'\254,\274\001\"\306\300\366o\263u\374\252\256d\177\305e\273\000(\024V\334\033\"\352\004i\273{\325\241\002L\230\017th{\236\376\033\356\272w\201\357\374\327wy\364\257\276G\245X\240\354\214A\317E\244N\375\034\275\243\227\220\353\035\352z\3167\350l\350\263|\353&\017\250\021\375\032\234\340\375\367}\215\376^\301\320`\232w\026?E\262\377b\322\275\247\220\315f\031\034\034d``\200T*\365\376l\253\371\241\333_\011v\223\011\372\253\251h\242\341\336\327-\277\367\245;\277\312\333\357U\021B\222\033\032bll\214\241!w\304\225R\355A\254\321\374\023.\177\335\342G\000\023\301\320\310:P@\355&xO*\305\376\203\3079gS\232\211\211w\233~/\333\177&\033\252G\031\036\036!\235\356\001 \237_$\237_\203\213_\243\375\357\324\n H\246\022\201\023\204.7D\352\331\033\032\031\344\231\227\337\345\360\3542\243\203\351\340s\367\265\376A\n\016\316\341\217D\2609\321\260?u\247\rA\335\325\225M]\301\000\225\212\315\377\274>M:\335C\"\021\257\371\232i\261j]3\001\203\203}$\023qf\346\217s\370\370b\244\216\211\2003M\276\337\214\210\020\374\252\303\332\006D\204u\303\nB\300\272\341u\344z\263\236\303\3667DiB\270k\035D\201\325{J\351L\017\351L\317\352\232\r\210\b\025b\032\3261\230\032\2205\367\243\365#\250\333\3251\306\324\204\201\256\363\200N\017\202\202]#\003\b\2031n\336\340n\245\011/\242\230\232:\241\213nPnP\307x\021)(\265j\307w\214\335\373\200\326\024\024g\017\260r\370u\252\225\nF\353\350\004\250y\251\273\333\344f\203\025\234\214C\337i\220\032]\365i8\330\202d2A2\221\360\360\373Dt\231\n\267\033\375\225\311WXx\355i\3067o\"\335\337\203\2241\204\220\b)\221B \245@\nYw\317-c\\\271\032\2431\306\240\275\367h\367\275c4Zk\216\035;\316\304;O#6\\\014\375\333\020F\270\333\335\336\356\257\220`\264!\277\274B\245R%\327\233\011\325gZ\257\a:P@\353\303\305\345w\177\300\331;\266s\321\305\027\242\224\205\245,,\313B)\205\245b(\313\"&-\224\345}\246\334\262\024\022\307qp\264\203\326\032\307q\320\332\301q4Z;\330\216\215m\273\367\244T\354\335\273\227\375o\274A\377\031\277\344J\332\337\241\n\217)(\227+\314\316-b\264q\011>\031\213\241v\n\250\346\347\331t\312\307)WJ,//\021\213\305\231=\272\300\263{_\300\256VW\325\037]\277\201?\270\345\367\260,\013\307q\201:\266\215]S\266ql\367\275eY\3442\275l\331\274\231\037\375\360Gh\035\270\2760b\030PJ\220I%YPy\264v\260\224\364\330i}\230\277\3460\330\310|\231+e\241\224\305\273o\277KE\365Q\035\334\016D\306\300\030f\246\237\345\300[\a\330\266u\233;\372\216\203\243\335Q\017\313\032G;(\251PR!d\260\035\033Y\344x\223\337\200\021\006)\004JI\224\362\246[p6(\272t\202\365\011J#\002\204B*\205eYXJ\271\244\305\263\310\376\323k\011\0008\362,\325J5\224\276\a\336\225~X\006\220\312mWH\031fu\301VW\255\327\227B\240$(\257\276\313M\2703|\302\004t\022\003\245\024(i\005\n\020\322\353\220\345\345\374\021\006\334\334\334\270`\235:\022\264\203\366|\200eY\201\002\244+\001\217\000\360\016\374j\210\020\002o\364E\344\034\303\177h\267\231`\033\022\244p;jy*\360=\275\025[\335|\005\320Fw$}W\322\n)Ud1\026\311\003\"DH)Q\336\310\327\234f\233\226\370;\233\002\355LJ\351u\326S\200\220H)\210\305\242\253>\021\020`\264\351H\372R\205\n\b\267\342\243\355y\233^\306\r\205J\212P\001\221\365\273h\341\310NJ&\350\002\016\303\234?\002\261\006\n\000<\300\355\245\257\244G\204\014\317\377\003i\327\244\273\236\023\224\"\262\203-\202p\331\325?H4\310\313V\231\222\002\313R\330\266\033\377\205\227\000\305\254\210\002\"\271\2716\246#\351\373\227\273i\322\304\011zD\b!\260\224\b\266\357\242\333\342\255\254\243D\250\235\011)\221RE\024\340O\201\306\315\033\243;\222\276{I\244t\223&\227\000\202\365@\224\bW\0012B@\355AI\027\004\3246\326\310\244\220ng-\205R\256\023\364\275r#\323\235J\337S\200\301\340h\237\200\306\213-)\005R\205\021 z\232}b;BZ\227\020\202\211#\307\331<\234#_\264Y)\333\215\011\220\256d-\355\245\272J\341\024\027(L\277^W\323x\204\211\216\244\257\244\033\001\264\343N\027\337B\a\347g\202\002)\334v}\375\207y@\244^\243\276\327\337\020\256\251\342\324\367\237\001\366\336\377w{\354\331\371%\266\217\347\350I4\346\313\017\203\376Z\340\274\363\316C\224\2171\277\377\337\352\256\177ghx\204\215c\033;\222\276R\312M\227m'\230\002u}\215x\375\310\374\017>\363\0239\327!\210\006R\266\"\215\011@y\244\310#\257~\217\314\321\331\353\207\316\273\366\311\373\036\336s\321\2557\177\322:kS\2167&\026)\224k;#\224p\245j\014\312\262\330\266m\033w\334\376E\034\307\315\361\233\345\372\235J\337\277\232Y=\021\321\177\220\360w\264\2151\022\210\011!4\340\030\317\271Y^\0032\n\336/\347g\366U\365\017\0137\216\234\377\231'\036x\344\273\027\374\341\315WZg\216\345X\\\251\006\242\232\300\365\001\361X\202D\"E\314\262\320\306 \245\302q\024\312\266\261\245B96\312\226\330R!\035\205-m\342$\"\222\367V\220>!Ja\333U\214\3268\266\215\321\356\023\a2\361\206;B\251\204E:i\321\233\216\023\217\307\260,\025\204\360\305\343\313\2661&\357\341\362\004\"\034c\214\266\274\221\367\343\314\252ra\356\315\312\364+\217}z\364\2437\376\343\203\217\3549\377\327w]`%\343V\360`\200\311\211I\224\264\220\236\307\216\246\270\216c{\253>\215vlO\025\032m\264\2331\n\011R\242\204\b\242\207\0202X\"\333v\025Gk\246\246\246\334gM\316\270\300L\030\240\215\001K\011f{\342\034\235[\"\026s\367$\2141L\035\236ena\321\322\245\305\177\362\260\371\241C\n!\2140\306 \204\360G\177\225\n\374rr\364\214\236\365\037\273\351\021#\324%Q\371\355\310\275I\302,7\225\347\311\264\022Y~\266\274mM\337\021\202\203Ne\345\033\207\236\371\213\277\005\264w9\2006\3068\"\314\"V[\201\325\226\377\003\260\332\n\254\266\250f\017w\334\360\340\345D\342~\006_\013\216\301:x\356C(/\234\376\340\265[\206\3344\361`\342\236\210\336\006\370'\307\236\276\347WY\355)\317\011\322\227\237\222;\346\337\035\332\271m\323\206\353\256\332#\225\262\366\317\316/\342\366\205\237\242knh\205U_\0319\240\017@)\001A\002\314\300\177\206\307\360\362\353\357\202@\237>\366\347\273\377\226n\237\313\200\0353\357\\\303\204\376\357\336v5\026\002\203\251\271:\300\300\364|\035\305\336>t\231\316\004\200g\005\212\2452\n\005\005\"\340\352+vcl\374L}pt\342V\000\255\003\300\202\326\201\031=]E\374\363\265Q\034\033\231\006\300\030?5\201[\266\274\207\236\221\347?H;\226-\257M\235D\271R\206,\024\000\000\373?\261\r\325\336J\201F\270\232\325\276\251\017\260B\370\323\303\367\242\026\030|\341;\017\342\304\360(^\277\364!\224\277\370\b\312\345\312\212*\337\216\004A\200\205\205y\324\0378\202\241g\017B\361<\256\377\352\017\301\014\200)\367{K\003@\300\325\237\273\rg\346\352\000\001\265\305:\030\235\233<\005u\215\235\037\273\016k\252\005\020\021\000\002\362\355_\032\000\002\260e\347^\250\311y\314-j\004A\200\016\266\037F\a\350\332\274\r\325uU\314,\004`0\232%\273-1`n1\300\2513\213`\216\301$\"\b\3219i\204\035m+3\013\001\364\351y0\030\227l_\327\364{-\370\000\333\271}\201C\200\032_\272\332\022\253B \n\357\303\312|\n\2640\005\250\301\340\360/\021\341w\a\017\342\322\275\027\243R)/O\3636\345\271\347_\300M\237\277\021\025\347\220C\303\211\b`\353\255\270\211\0238{\006 |\001@\324\001S\200\b\200H\2601\366}\324t\376\003-\372\000r\006\273\222\243\200\005\345\216[o[\276\362+ \003\273v\003\000j\265EWCv\226:@\230\000jw\nD\0352\022!\245\223|@41\3111\026\004\020\003\334\372\310#\313\323|\205\344\332\317\354\a\000\314\315\315\332\212\364\024h{5\b\330\014\220\250\223\247\276'q\252\036I;y@\202\364\276\243\355d\011Cw\270\022l'\023\014WS~\242a\353M[:\256\264\204'\\\341\272%\314\003\030hoS\224S\233\340]\225\n^=6\211K\266vcp\360x[J\257\264\374{x\026\000\241\\)EN\020hsC$\215\336\206M\353q\350\037\307qbl\032\375\353\273\243\347\3663\357E\016\304\220\222\231\315R\247\rQ\333\306\306\234*0\200Z-\300\013o\214\240\273\273\013\245R1\3615n\262j=k\000\326\257_\203r\251\210\321\361I\234\230\234\362\332\260g\034\347|?\017\210\330\370\206\303\332\014 \342\266q\003\"\340\234\215\347\240\332\327\353\034v\270!\212\034\300\255\264\020\005\032\367\224\272{\272\320\335\323\325\3302\003\210\230!\234\331\206\301\011#\023\365~{\317\352\245\3320s\"\014\264\235\a\264z\020\024\355\0321\000b0\223K\241\331\356\320\002\321\337\260M\354\2423\312\031m\330E\244\250\324\254\237\3201\266\357\003\232C0?v\024\263'\336@\275V\003\033\343O\200\304G\2526\2472c\005'\212\300\232\235@\245\277\341i<\330\204r\271\204r\251\344\354\017\201h3\025^j\364g\207^\301\304\353Oc\333\366\255\350^\333\005!\n \022 ! \210 \004A\220H\325\3312\330\322\225\331\200\231a\334=\214\275\327l`\214\301\351\323\223\030|\367i\320\271W\001k\a@Lv\273\333\355\376\222\000\3300f\246gQ\253\325Q\355\353\211\331\307\315\327\003-0\240\371\341\342\364\361\277\343\342\275{p\345UW@J\005%\025\224R\220RB\311\002\244R(\b\005\251\3343i\313\202\004\264\326\320F\303\030\003\2555\214\321\320\332\300\030\215@\a\b\002['\204\304\341\303\207\361\352\233ob\355\205\237\264\224\016w\250\342c\n,.\3260vj\nl\330\002\274\022\213\241\245\030P\237\031\307\326\363?\216\305\332\002\246\247\317\240P(b\354\344\004\216\034~\016A\275\336\320\276\177\363\271\370\3467\276\006\245\024\264\266\206\352 @\220(\a\320\201\275WJ\241\332\323\207\035\333\267\343\245\027_\2021\221\353\213#\006\003R\022z*eL\310\031\030\243\241\244p\3504?\314?\3530\230%!\315\245T\220R\341\370;\307Q\223kP_\277\a\2007\006\314\030\0359\202\243o\037\305\300\005\003v\364\265\2066v\324\343\262\2016\032RHH!A\"\332\216\365\0269\034mR01\004\021\244\024\220\322M\267\350l\220\332t\202\351\004%\013\000\222\020RB)\005%\245\005\255\330\013\261vW\022\000\000x\377\b\352\265zL}g\274\245~\\\006\000!m\277$D\234\325E[]I\257/\210 \005 ]{\213M\2743\274l\000Z\211\201B\020\244P\021\003H8\205\224D\032\001\233\233\2635V\247@0\032\306\371\000\245T\304\000a)\340\000\000\334\201_\002\b\"\270\321'\357\034#|i\273\231\340\022 \b\262\212*\307\202\320\323\253Bc\3675\000\206MK\324\267\224\226\020Bz\2131/\017\360\200\020B@\272\221O\234fsS\373[\233\002K\211\020\302)\353\030@\002B\020\n\005\351\265\242\b\0006\334\022\365\205\214\031\020o\305\373\375\271M/\266\241P\n\212\031\340\255\337\251\211#[\221L\320\032\034\207\271p\004\n\031\014\000\340\014^\232\372R8 D|\376\037Q;\221\356:'(\310\333\301\246(\\\266\365\003\211\214\274\254A\244 (%\021\0046\376\223K\200\n\312c\200\227\233\033\346\226\250\037^\366\024:\307\011: \210\bJR\264}\347o\2137\223\226\022\241\245\204\204\200\020\322c@8\005\262\273g6-Q\337^\002B\330\244\311\002\200h=\340\003a\031 <\000\222\a%m\000\220\354,K\004\011\253\254\222\220\322:\301\320+g\211i\225\372\216\001\014\2066!\000\331\213-!\bB\306\021\300?\315^\336\216\2201\013 \302\340\373\223\330\276\261\212\231\371\000\263\213A6\000\302RV\031\227\352J\011=?\201\271\2217R-\331\001F-Q_\n\033\001\214\266\323%\224\330\301\205\231 A\220\3557\344\177\234\ax\355\262tOW\220\0259?\374\354!\000\207\177\361\233g\202\261\3613\330\263\255\212\256R6^a\030\014\327\002\373\366\355\003-\236\306\370\253\177H]\177\304\206\215\233\260\345\274--Q_Ji\323\345@GS \245\253\347\365\275\371\037=\013\0239\353\020(\203\312\312\353\214\000H\a\212x\377_\177E\317\311\261\257l\330\367\245\247~\376\3503W\336y\307\365\352\242\255U\27498\205\271\305\2442$\311R\225\031R)\014\014\014\340\276{\357\201\3266\307\317\313\365[\245~x\345I\032\b\377\a\022\341\21663\013\000\005\"2\0004;\347\246\\\a\3027>,\317\214\276\\7/\316\335\274\351\262\333\237\374\345c\177\271\374[w\\\247v\237W\305\324l=\"\325 \254\017(\026J(\225*((\005\303\014!$\264\226\220A\200@HH\035@\006\002\201\220\020Z\"\020\001\212(y\224w+\310\020\020)\021\004u\2601\320A\0006\366\215\353z\212\231;B\225\222BwY\241\257\273\210b\261\000\245d\024\302\247&\247\003f\236qv9\202\220ff\243\334\310\207q\246\241\353>\257\316\277(U\316\272|\341\234+T\332/g]\272\205\272\350\236\2315\200\344\377\014y\323!\313H\337I\246\333e\031\274\224\341Y\000,\005\304R\200\204u:\365<\001\004{F\347\377\323T#\030Y\206S\306g\236\361@\366\310\247\305_\177\346\201\220\006$\rF\0038\234ch.\000\r\r\343\030\232\a\200o<\320|\324\363@\340\214O\377\002\222 \344\001\200<\203\033\354Z\211\377\035N\201\343\033\351\203\341\177\246\313@2]K\003aRuged3Y\021\000\376\227\245s~\346\265J\362\241\a\340\277\341\004|\202\302X\246\232\000\000\000\000IEND\256B`\202", 3035); _img_gnome_document_save_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\031tEXtTitle\000Favourites (emblem)\262\255\343\376\000\000\000\024tEXtAuthor\000Jakub Steiner\346\373\367/\000\000\000\030tEXtCreation Time\0002005-02-01\204\213\0234\000\000\000\"tEXtSource\000http://jimmac.musichall.cz/\365i\310\304\000\000\017iIDATx\234\355\233y\214$\327]\307?\257\216\276\246\347\3509w\256\235\235\275\274\361\256\0279fe#V\011\022D\212I\224\000\321\006\333k'\206\000\026\220\304q@1\301`\300\016!\220\000\001Y(\011BJl\257c\311\261\005\nG\024\204\211\002\004\014\306Y\331^\257\367\236s\347\236\3519\372\252\252\367~\374Q\3353\325=\275\2733\273^\217Q\362\223J\365\272\216W\357\373\371\035US\257F\211\b?\310fm\365\000\266\332~\b`\253\a\260\325\366\003\017\300\271\332\023\237P\352m\026\274_\301\373P4\013\030\005\0060\"\344\025\374\223\206g\357\0219y-\327\260\341\003\300\373\225\"\011\004\006\264\202\000\310\211\360m\r\317}H\344\364\325^Cm\346.\360\244R\335\n\036P\212\017\2120`\331\226\237\351ju\335T\002\245,\304\262\220 \2408\277\300r6\347\033\301Up\006xZ\3017\356\024y\371J\3278\246\324M\300\a\225\342N\021v9\256\343g\272\333\\;\346\202\021\304\030D\204\240\344\223\235\231\367\215\026W)\316 |\220\346\303\aq;[@k@\326\322@\033\004\203h\203\224<\226_<\303\322\013'1%!\271{/v\272\221\354\205aF_9\347\a\332\024\201\306\366\3566\351\275\345\200\302h\n\247N\"~\221\364\217l\247a\177\037\312\261\240\234\367\030\023i\013\210A\347=r''(\234\233\305J6\220\330\265\027+\221`\366\324Y\306_\037\021\201?<*\362\273\233\006pL\251g\034\327\371\231\275\207ovbM\215\024N\275\006\370t\336\361\223$\006\273\312\203\021\304\350\362\200B\000\242\rHy\240\306\224\267i\362\247\306Y\374\367\223X\311\026\342\333\a\011\212\005&O\236'\335\332Dfp\000\177n\206\342\37134\274\255\233\364\201^T\314\256\021.\210T\326\321ma\333\024\003r\247\246(\216.\022\357\333N\254\247\237\331\223\247\030;=\206\202\373\357\022\371\313\r\0038\246\324C\300#\273o=`\245;\332\310\275\3662v\322a\333Gn\307n\210G\004F\204\227\275\023\266#\321P\366\224\030\203)\371,<\177\002or\231\304\340n\234L+\342\373\224F\207\360g\247h9\274\207xOs\265\330r\237\321mH\004\202H\371\032\341\2728\274@\376\354|\b\241\273\227\251WN294%\300=w\211\034\273\"\200\257+\325e`\264\263\273\305\355\375\261C\024N\237\304\224rt\337\373S\330\215\211j\257\210T\335\001\242b\327\006W\275F\033V^\031c\371\370\b\312u\221 \300rmZ\016\357\302\311$#\002#b\253 \310\332\030dMx\024\2147\235#\177v\201x\377 nG'c/\275\312\374\304\274g\301\340\035\"\027\243z\327=\b\031\3705KA\327\215{\321\313K\370\2633\264\275\367\020VLa\n\205\262@\251\n\361*\261\265\200\314z!\311\335m([Xzi\024;\031\243\371\266\001\354\006\033)\225V\275\031\365\276\030\001\242\000j\243\200\360X\000#\270\215\016\211\3364\305\221\013(\327\245g\377\036\262\323\377\243\2146\277\r|\364\222\021\360U\245\0221\270\330\271\243+\323\363\366\203\344^9\216\235Tt\034\271m\275PY\017!Z\234V!\325\206\2521@\330\366&\226p\232\023X1\273Z\254DD\011\325\036\257@\020\211\354\243*\025B8P\032\317\021\344\241a\377Af\316\0141qv<\260`\347\035\"\243u#\300\205{P4u\356\333\215?;\203^^\"\363\316\233\221b\261\216\360\362@7\232\257U\347\205\203uZ\342 \032]\014V\317\253>\276\272\275\266\217j\261\246\014C\"\307\030\260\342\026\222-\342\317L\3236\320\313\364\320\244\350@?\014\374r]\000\n\21666\306-'\225\"?t\236xo\006\247%\216)\226\312^\214\n\270\204\330\272\371J\331\253R\035\342u\305U\357['nU8U\251\201\260\032\201b\004\177\336'X\011\000\360&'H\265\266\321\265c\233;~v\374\027\236Q\352\343GD\n\353k\200b_\252\271I\001\350\374\n\311\235\333B\361\321\320\216\016\270\236\330\313\345k\024\230P\223\313\321\343\251*r\353<^\001b\"m\021\214'\004+\001\272\240\303?\313\312&\201O\220] \235i\002\306m\037n\000\216W\001xF\251$\320\031oJ#\276\217x\036v\312AJ\245\352\374]\315\315\232\342\024\315WXw\354\272|\255\202\263&b\315\373! !\014\347h\370\207\327\006\011\014\246d0\236\301\224\004\321k\365\254\326L\241@\254\255\035\302\336\366\257\003P\204]\026\250dS\032\235[\001\300\216+L\321\213\320\217\026\263\313\344kU\341\252\223\257\324x\277\"\266r\374j\237\020\026\314\262h_\320%\203x\006\343_^\360:\000\305\002\312q\211\307l\337\363\364\215\225\355\253\000,\330\243@b\215i\245\227\262X\011\a\023\324)N\233\316W\"\302k\274i\244\034-Q\341\254B4^\331\273\236 \276\011A\\\245\231r$'\032\222\261\222\267r`\035\000\240K)\002\345\272n\345`)\371\365\363\265*\n6\221\257P'\354Y\373m\004S2\350B\350a6\356\340+\232\262T\230N!E\275\016\200\300\274\021\\t\200r\234r^\3715\236\257\021[S\204*\267\237\332\274^\203P\273\217\325\266.\030L\361\332\274|Y\000\216\013\"xE\317S0R\017\300\254\002\002\317G9NXU\013~\370\326\260^\276\256\013\347\260\027)\2571\353Cz\355\367Z[\264\240\363\233\313\347M\213\267\024V<\006Z\343{\032S\017\200\003\263\006\320^\200\343\270\000\350\274\217\345\252\352\342t\211|\255\252\320Q\217C\004\020kEP@\002A\227\336\330P\257gN[\032e\307\bJ%\002#n\335\b(\301\264\013\370\245\"\261L3\000\246\024\200X\325\325}5_C\025\225\334\255\365\360Z\365\256\021^yd\017\004\011\256\253n\000\254\230\203\235\212\241\234F\262\223\263(0.<\277\272\277\322\270WdR)\206W\246\346\261\323\215(\307A\027\002\214\247\021O\207\267\236\362\022\336\206t\244\035.\342\207\325\332\370\225\312-\230\362\"A\371w\331\353o\206x\000\267\243\021\321\026\3306\331\351\205@\340[GD\346\327\001\000@\370\333\354\324\234\207\bNs\006\2353k\202\374\332\366\232\330\260]\021\033\206\266)\213]\025\356S\336\307u\017\371\212\331\rq\254\244\003V\222 \237ge\271h+x=\356#|\267\a\036\270\334\371\227t\353\021\221\031\005\267\257,\345\203\261\027_\021'\323\032\026\305\267\220Y1\207\304@\033V\314\306h\005\252\021o\245\300\205\023\303\2766\346<\360\201\237\220\313?r]6\256\313\323\331w\315O\3163q\374\004n{\a\311\3357\274%\322\301N\305H\014\264\241l\025\376\351L\232\322J\236\363'F\374 0'\265\360\343w\211,\\\251\237\rM\217?\245\324\275\002\177\323\332\225\241\377\3557Z:\237\247x\366T8)\262\005f7&\303\031$1\210\a\2064\245\345\327M%)^8\213\316\3456\325\317\246L)\022}\255\330\215\011DkLQ\020R\344\027\226\03093\021\210\310?g\340g7\372UHU\327W\363\245\350\223Ju\003\377\342:\366\356\2357\357u\023\315\215\024G\206\320K\033J\273\315\r\320\266\210\017\264c'\335\320\363\005\203\320@na\221\221\263\023\332\027\376\361\257\341\350\177@QD\374M\367\277Y\000J)\013p~\0112\357\200\347l\245n\035\274i\320Nw\266S\032\037#X\230\333\354\030.}-\327!9\330\201rm\320:\374\363\\\245X\231\3172rn\322\224\204\277{\b\356\233\004\017\360\011\277\036\013D6\376fqS\000\312\342]\3027I\316\r\320\360 |)\006\357\351\337\333g\265\364w\023\314\315\340MNlR\352z\263\0221\222\203\235\341\215Zk\202\025\001+\301\342\364<\343C3f\005\236}\000~\263\020\212\017\210\000\000\374\215B\3300\000\245\224bM\374\352:\011\356\027\340\221\026\370pgo\273\352\334\263\035\235\317\341\215\217^\365m\322N'I\356\350\b?\265\361\003t\316\002+\306\302\3704\223\343\0132\013\307>\005\217\226\326\304G\001\254\256e\003\3426\003\240Jxd\355\002\316\347\340#}\360`SK\212\276\033w)\205\301\033\037\r'$6aN&M\242\277-\374\354\305\017\3209\005\312efx\212\231\351EF\341\261O\303W\352\210\256\a\340\212/\3366\003\240\"v\235\370J\373cp\370\020\374Y\"\341\306\a\367\017\332n2\20179\216^\331\330m9\326\325B\274;\203\350\000S\362\321y\033\260\2318\177\221\205\371\234\274\006\237\373,\b\002\274\251I$\b\307\245\034\233\344\236\236\325{\274\316\225\320E\a\355\005\014\235\036\327\205R\220\373\006\374\3067\341u\326\027\273z\305\257\n\206\210\\\261\no\3666X\257\020:\227\370m\003\316'\340]?\n\017'R1g`o\237e\273\016\376\3144H@jo/\312\265\021\035\020,\0261\276\213_\360\030>s1\310\373z\356kp\377w`4\"V_B\374:\030\033)\200\233\006P\206P+\264\336bG\326\366\021\330\367^\305\027c\226\325:\260\247\307N45`\271\032\2479\374\320:X(`\002\227R\256\300\360\331\311 \257\315\310c\360\321\357\303lYte\251\aa\335\262\231'\302\253z\024.\247C\005DE\354\252\340\232\266\005\330\207\240\355>\370bBq\260w{\273\325\334\331\n\342\203\322\210\211Q\310.3|~Z\347E^\376\002|\354\024\254D\204\233:\020\242 *m\177#a\177\315\000\312\020\324\025\204W\304[\225v\0338\177\000\017\267\300\035\355\355i:\266w\201R,\317e\031\033\23659\341_\037\205O\216A\221\362\260\011\362\001\020\260\365\300\243~\217\330\247\021\342N!\304\035J\353\232\272\332*gOO\247\325X\027\246\256&L]u\220\232\352\000\241\200\217x\"Et5\311\362j\202\245\3258\013\221\030\357\364\215;\321\3255KH\271\254\225~\022x:\034N>w\352\361\a\354K:Y.!\001\342{\337\223\033_\017\334\203\344!\255u[G[\243\263o\317&\353\262m\355t4\327`H\211\343)R\216G\312Q$m\017\327SX\246\304o\031\370\255tm\031\022W)&fW8\331?\305\261\223C\316\364l\304\222R\216+\245\276=\362\354w\036\323\232K\246\265KB@\367\355\017\037\224\360}\r\333\366_\261U\034\274y\267hi\b\343)\315\302J\222\371\345YfW\002(\2451\244K\320\277H\320\277\202\317\214\263\260\262\035\307\013\2425h\2551\014AS\215\237\346\272 Mu~\244\020L/\306\370\345K'\325\261\267\207\204\020\234\022\350o\014\036\372\316\377\275\004\370\377i\004t\335\371H\273\351\251\307\264\346\246\355\233;\274\317|\374*cC[-\263KI\306\347\227\260\355\267i\n\037\3024VYM]C\3307\300\272\2721B!I \340\3034%\266#\231Z\330E\377\344\227\361\224Dk\215\322\032\2454\002Mc\215\237\r\315U\254\253\3653<\265\314?\376\352-\367\334\320\244)\204x\301\222\346=}\317|s\341C!`\363\247\036\332\247Mq\250\266:T\177\367\035\327[\27365\263\034\26397q\026S\274LM\240\227\325\324\325\b!h\256z\034\000\303\220\204B~B!\177\216\000\317S\314/urr\364\233i\360*O@Z\024\236\3224V\373\330\321UGM\310\342\235\301Y~\372\364a'\026K\314\n\274O\r\034\372\367\247\376Y\011\350>\370\360]R\350\037m\354j\221\377\372\3637\231\226ipjd\211\331\245${:\376\003>#\202\306\304\366\3261\036\275\237Z\377q\326\205~\202e\3329\002\202A\037\226e\340\272\212\336\221\273\230[\331_\000\\\345\b\3602\355t\255hk\014\261\273\273\236x\302\346\357\036\177\305\035\237Zp@}q\350\320\375\317\274\037\002\336s\"\324}\360\301\277\020\350\237\356\277r\233\365\325\273o1\035W\363\342\211i\246#qZk\237'\345\2660\034\371\006\243\313_G\n\207\316\232\377N\302\335\305R\362\213\2711\204\000!\004B\bb\211\r\270\366$\226\261\204!\004R\n\244\224H)\020R`\232.\r\325\003\2645\234\3004l&\027\326x\361\3044\b\311\237~\371V\363\252\335\233\002Z\313\2476\035|\350\317\337\017\001\357\311\0026\035x\350O\264\340\321;?\261\227\217^\263\225\261\271\030o\017.r\355\366G\031_\270\231\206\340s,\304>I]\350\r&\243_\3032\034\252\375o\222\364\256\246\275\352/\b\372\306\b\207\375X\376\026b\366\215\314\257\334\200c\257\341\227\257\020\265?\217\247,\274\002\315\327\206\372\331\331\365#L\271\212R\n\327\205\225\265vz\307\356$\226laww'\035\353B<\177\270\217\347_|\013\241\305\275C\317~\373\307\037\b\001\335\a\036\372\210\220\342\377\334r\355N\3433\037\331\303\251\341\bK\261c\354X\377\002\365\325\023\234\034\371\n\013\321\313\221\206\304\220\022C\n\214L\3334\222tV\177\025\313L\220\022\237%\262\366\207 \r\004\002\255un\355{Z\243<\205\247\024\226\261\304\316\256\037R\035\034\346\354\370AZ\353\217\020\264\346xg\344_b;~6\267>\303k}\177Lg\323F\266w\325\361\017\277z\233\303o\3649J\252\233G~q\377\221\213%\340\242\226\300\206\333\037\332$%On\337\324.>}\363.\372\306\227\211D_g\357\226\037\022\362/\362\366\310=\314._F\300\277L\330\277\2307q\004\b\320\204Xu\016b\253M,\256}\001!\315\"\222\244\224\b)X\347\377>B@\300\027\345\272\235\017RW5\312\312Z73\221k\360\231\011\000vu=\301\356\r?%\350\213\260o\313\3372<3\302\340T\224;n\335\315\246\r\255Rjyh\313'\377s\347%#\240\343\216\357\205\014!\237m\254\257\011\335s\347~9\267\234`b\376(Wo\371!\263K{x\371\364\375LG\256\002\001=\035\277\340\206\235\017S\033\036C\n\2174~\201\020\020s>\315\\\374?\2010\021\002\244\310\200\027\002K\016b\311\021\034\335I\320:\212\355V\263\034\333\312Bt'\206\341\342\2500\253\361\365\b\221\266VCz\000\204\374\021\256\334\370\277xgh\216\205h\222\273o\277\306\250\253\255\252V\226\371\313\255\a\036-K\267\337\027\001~/\360\rC\210\315_\371\334M\246\347i\336\354;\307\025\335\377\033)\\\\\345C\251\364~\3122\022\2645\234@J\227\375=\177Ic\315\331\374 \0324~t\311\336+\273\370\0041\014\261\210\300\246\316\367c\320\212\241\231\333\030\236\371\024\275#w\263\265\375\027\305\343\345\212\24064\312\266\366\247x\375\364,Z\300=w^o\201\330\351\260\366'\027C\300\005}\300\226O~\277\331\263\274\221\217^\277+\370\251\033w\360\374\321Qvw\375\rM\265C\031\323\025(\302\2743\372%\256\332\3743\374\276$RJ\014C\260\226Z\317\311\341?\302v\327e\314=\335/3m)\005\"CB\326\351Y\3428\216\273\216P(\312\346\326\247\b\370\246I$\253\361\231\213x^&\034z*\023&\025\236\227\311\023<\305\361\241/\021K\356\345\226+:x\346\305S\034=\321\037\325Vj\303\360\223\017,_\210\200\013Z\200g9\3771\3507\255\233\367na`r\205\226\332_\322X=\200\020\371\317XF\202\313\272\037\3032\343\000\270^\200x\252\221\225\265N\302\346\361\\\212\233\316\360\3108\274\364\244\275\002@Zi\022\316\025H#\310\216\256\307\251\nN!\205G\300\267T\2541A\305\262\273\353\357\261\235IFfV\371\027{\267`\032f\020;p\377\205\360]\220\200\315\a\037\334\006\342\337~\354\206=\246\3172\350\033\037bK\333o\000(5\032\237\031\003`-\331\314\320\314Gx\363\334W85\362\005V\223\2332\340Ai\215\316\205\270\264\306\275\214\307\3672\331_80\311\365\273\036$\350\213\234w\302\3473XS\246\330\323\3658\275#\021\202\001\213\353\367\365X\002\276\276\365\300#\353\337\027\001\nq\177]uH\355\337\263\201\336\221\b\353\033~\205\024N\341T\212\332ZC\320\277HS\315\031\342\311z\264\326\304\235\215\271\334>\247y\245r\231\236\227\313\370\024Z\333\204\002\323$\354z\264\206xr\035I\273\226\244]\213\326F\331;\313\211\3204T\r\3423F\030\230\\a\377\236n\202A?\016\336\267.D@\305\023!\361\205'\214\215\202\317^\271{\223\251\201\201\311\021>\272\373\265\212\354g\373b\211\026\216\234\375wh\002\3515nh\204\326(\225\246\023$Z\202T\240\005\b4Y'\240\201+\267\376\204\246\332\223x\236\340\354\330\001\006&o!`\315\263s\303\317X\\\271\212\356\226_\341z~\004\311\212\357\317\326\033\233_\341\344h\a\335\255\325\354\331\336i\035=1\360E!\370\323\363m\241+Z@wb\360&\255\251\331\276\261\205\211\371U66\375\032)\335\302\327\026\220\241\351\237\374\030\257\236\271\017\327\363\3455\256\n66Z\347\035W\241x\371\266 \205\3260\265p9\003S\267\240\264&\226ldd\366\006\306\346\257a!\272\215W\317|\rOYE\357.-\355\ro\001Q\346\"q\266lhAk\335\264\351\266\207\366V\302\011\347;\023T|&\034\016\330\255\353\252}GO\217s\371\206\327IG\013Qd\005Z\303Z\262\221\276\211Od\362\367\264:E\306\341\245\325\237\341X\244?/\005 t\306\231\211\034\231\307\316|\231\256\226WYK\326\261\241\371\267\230\306\032K\321v\246\026/C)\315\033\375_\306v}\034>\373\307\324\004\306\350\\\367;B\276\2512eH\341\261\261\371\b\223\013\255\354\332\330@\300\357\263SI\373N\340\330\305\023 \304\347vlY\357\323J\223H\365bH'\a8\375\302\264+N\244\35286po\306\3145\240\021\200\312jFfI\020h!\220\"]\027\202\317N\334\347\213\262\261\355\267XF4\277\033l\321\204\307o\245o\342\2434T\r\262\264\326\302\362\352z\226W\233h\251=N\310G\231B\000\272\232\336\344\327'?\316\256\215\rl\356n\363\235\356\033\373\034\360\335\213\"\240\373\366Gv\b\255\333\267u73\035Y\243><\302\341\276{A\273\\\326\375\014J\011\342\266\313\272\332 \264\226^{)\326\212\004 i\263L\323\265L\3513\305\000R\272$\235*\242\211F\014\2315q\215\343\372\212L\237\354\351\275T\240\004\032\2311{\215\324\242\300\0022\244eX\350n9R\246\361b!Gta\377\346\326\337r\354\334\347i\253;\216\326.\325\301Yn\332\361\003L\231\342\320\033\177N\302\366\323\332\340\342\263$\322\020\216\347\311\266J\004\224\205A\251i\257\256\n\n\2454)7\275\0055\245\215)\2234\325\364\263\263\363\371\374\331]\301\271]\3419\236\247\n\223\236\202\314\257$\005\326\332\306o\255\024$C\272\314\n\n}B\306F\321\032jC\023\264\324\3662\031\331\225#'\350[\3010\034\320\036Zi\222)\027\001\004\375~-\205\252h\001e\004h\350\b\207\002\226\322\232\321\331ML,\366`\0326\a\367>\302\215;~\204\353\232\005\361]\345\343\275*Hk\313\372\362\231_!9A\377<\246\021\313\001\316\376\337\205,!\037\211`C\323Q\336\031\275\215\244\035\006\300\365|\0349\373\207\304\355\020Jk\022)\aOi\252\302AS\353\312\026P\356\004\301U\n\255\224\026\032\315o\336\276\213-m'\331\323\375\022>3\301\346\266\303$\235ZF\347\367\345LF\253\214\247\317\206=!\320\244M>\273\366\265H\357\376\310\326@\320ZD\340V4\363r+('!\034\210\020\264\026\261\335\000\361T\210W\317\334\303\362Z}>\031\203\214ezZ\243=*\224r'\b\223\261\265\270\243\224\366\005-\223D\312c`\372r\206g\257\240&\264\314u\333\177Nup\006\2455\006\016\327\365\374\234\265T\023\275c\237\300\220\016\312\013\340\011\211\320\032)\013\326>:\263\356u\316\011N,lc5^K8\260\224\001_\274\316+\223PLFO\307K\304\222\265,\305\332\02089\213\324Jc\031\022\317\323\304\326R\236\320\272,\002T$\000\304t,\236\304S\032\277\317@)\205\220\022\245!\232\250\347\345\336\273\271v\373\223\\\263\365q\252C\313\264\324\215!\245`{\347\3570\r\315+\247\356ef\251\a!\322Y\243\020:\037\376\262\0160sT\006\360\346\271\333\270a\347\317\322V\2223\357\302\265_\352\034)j7\327\236C)MK\355\000#\263\273\363\251\267\326\370-\211\343z\244l[ \304t%\002\312|\200\320Ly\2362\343)'M\200.^\323\011;\304\313\247\356\346\304\320\307\360\031k\271\311\b<\224\322lj{\r\313\214\026\355\372T\201\003\314\371\002/-\2433\333y\243\377\000Ji\\\317@)X\214\266Vt\202\345K!\237\006/\256v0\277\322\226\323\276R\032\3134\210'm\224R>!.\326\002\204\230F+\271\226\260\361[Fz\260L\270\243`g\207\366\250\016\316g&#PJ#%\2647\234\345\017\256{\210\227\337\371\022S\221\236\342\344G\024k?[\316\214\355Ck\207\211\371\036@\023\2157`\031Iz\326\277\312\256\r/\236'L\346\237\001\372&\366\027o\276\264\3062%k\311t\032/\274\312\026PF\2002\354\001\341\231,,\305h\250\rg\262\273\014h\231'a[\307\253h\255\212\300k\235\366\201R\302\025\233\237#n\207\210\254\256\317\035\214\246\223\240\312'\032\275#\327\026-\001\327\365\021\215\327\225i\276K\026lg\363\367v\355\r}\231\311\225{n\2454\325\301yn\273\372\177p\363\236\237P\033\236\314\207?O\025\034\204\350\242%\221\275\a\314\206\313\224m\026\215Y\211\004\307\363s\344\314A\224\242\350Z\315\3573\250\016Y\214O/j!8>\361\217\367/^\024\001\031;xbtr\316v\\EkC\2708\341Q\n\313\214Q\025X\252\230\275\225\306\364\366\206>\016\354\373\0017\355\376\031\236\3622`u\316\a\244\2454QJ\277gxf\as\313\353\317\033\001\000\006\246\256 a\aPZ\025)\251\251.\204\355*\246g\026]\255\371ye\234\347!@x\342)\307v|S\363QZ\033\323IFV\363\236\322\330\216E\302\256\002\336-n\353\3142Q4\325\214d\200\026'HY\260\331\354\320S\n\345\345\255\300;\357\270\351\271\256%\253\n,'\r\036\240\2516\310\314\302\n\236\347YJ\253\363^\234V$`\350\371\357\274!\020s\243\223\013\254\253\r\342\267\214\"\022l\307\340\215s\267\346\355\245\314LKSeM\377\304\345y\220^1\001\371\276<\011Y\253\030\235\355)\263\254\302\243\374\354\222(\354\367[\0065U>&\246\" \030\035}\366\376\323\357\211\2004\301\372\261\301\221i\307v<\266v\326\027\374-\255\301\263\023{\210\2546W$\241\224\210X\242\212c\375\267\024\254sU\274\004r\347\374\371\263\377\354g\242k\325eK\240\260\b\341\340e\366\021\331\322\335ZC<\3510>9\347\b\364O\317\a\376\274\004\000x\246|\330\266]u\362\3548]\315\325\204\003V\236\004\300\363\340\320\321\273X\214\266\226\221\220'B\345\034\245\343\212\342\315P\251\224ZEf=w4\366\027\215YZ\252\002+E\317\241\200EKC\230\323\375\023(\345\245\0347\360\337\3363\001B\b1\376\314\267\027\360\354\277:\335?\356\256%l\266\025XA\266\254%\303\022\011\221\305P(B\024_\257\312\202\372\274\022\235<\276\034\035;|\337Jt\325;|\374\234n\256\017\322\323\325\220\333\327\327UE\312r\374\224\023``jg\031)\357\247,\026\204\333\244\035\344\227G\277\210\355\372\021B\260\251\275\226\272\352\000o\236\034\322\261\2655;:\370\273\177\2636\331\033{\027L\271\222]\027\202\374\036M\026\255u\356\2423K\200q>\300\225\372\032w\334quu\367\376\207\203\241`\360\272\275;\314\252\220\237\211\271U\346\227\027im\030fx\246\262\347\376\247\026C\nZ\032\302\2645\206\211\306\022\034?\321\357&S\311\350\312\310\253__>\363\334\251\n\340KIp2\004\344\302V\226\000\361n\240K\353\252\365Wv4\356\372\203\377j\372\002];\266u\033\335\235\353PJ3:\033en)N\205\320\375\276\213\020\320T\027\242\2751\214\020\202\321\311y\316\rNx\312N\364\317\237\374\373?\213\317\234\231\273\b\340\205\004\344f\227\373\216P\201\025\024\205\216\013\365\231\341\306p\353\276?\372\246\031\252\277-\030\360{\333\267m0\327\267\326\223H\271\314D\326\210\254&\261\235\212\207\261\027U\374\226A]\225\237\246\372\020~\323`r6\302\271\301\0117\225\262\245\263\266\360\324\354\353\177\367\227nr5Q\000\260\024lY_\241\366\213\b\310\220\220\005X\n\270\322s.o\250\333|\313\266\352\2157\336g\370\302\373j\252\253\274\255[:\214\246\206jL\231>\222\212\254&Y\216\245H\332\036\236w\376\037\200\030\206$\3403\250\013\373\251\255\362\023\364\233\270\236bai\225\301\241)/\026[3\274T\354w+#/\377mt\360\225\301\014(\257\000h)\360\242\347\302\265_\221\200\014\011Y`\347\005\\\241\337\000\314\306]w^U\265\376\312\257\n\303\337c\030\206\333\264\256\336li\256\243\251\241\006\313\314l\251\225\306v=lW\341z\nS\n,\323\3002\323\337\031\324hR\216\307bd\225\331\205%\"\213\313\256\347)S\271\251\336\330\344\033\177\025\351=t\"\003\272\024xV*\022R\252\371\363\022\220!!\353\023*\0017J\372dA\277\004\214\206\236\003\273\003\315[o\262B\215\267\n\303\352F\b\257\246\272J\006\003\226\360\373}\370}>\374~\013\3132\261\035\227T\312\316\210C\"\231R\253\2615\320H\3559\203N|\3617\211\371\263/-\235}\341,\351\023\311,@U\002\272\024x\366\271h\315_\024\001\005Dd\301\025\022QX\027\212,\250\263mQ\335uMGu\347\336\233\245\277f\227a\004Z1\315f!d\003\210`\376M:\256\225\027\321\312\231U\256=\353&\243\247\342c\307^\214N\034\233\311\000Q\005\340\263u\241\270\025jWk\375\256?\270\272\250/K\027\020Q\250\355\013\201/\224\322\244\n\000\253\266-\340\253]_k/\014/9\361\205\354\217\241\262G\320\272\240]*\027\"A],\360\367D\300\005\310\250D@v_Q\n\274P*\025]\"\205Dx\005}\245\004\274g\320Ex\336+\001E\377\234\366\025\225\264/(\267\200R\360\331v\341\004*\221\240(\267\006\017P\027Z\333\027\215\341\022\214Q<`\232\224J\004\300\305Y@a;G\300\245\000[q\276\037\320\270\377\337\224\337\373\037O\377?\233~BMM\310U\265\000\000\000\000IEND\256B`\202", 6076); _img_gnome_emblem_web_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\033\326IDATx\234\345\233y|\224\325\275\377\337\347<\263f\022\222\231\254\204\000\001\002\204\030\241\254.\205\"\326\245V\021\352\326z\253\266U\201\272\325\353\202u\253\313u\271\212\264z\251\313\325\326\345\326\035\254V\333*n\340\256\200\200\301\020\204$$\220e&3\311Lf\222\31123\3179\277?f\262A\202K\355\357\376^\277~\363:\257\363\362\332\252\250\251cK\r\303\370\261\326z\201\224R\344\344\344$2GeZ\32232dzz:ii.\000\272\272:\351\354\350\244\243\263CE\302\221Dk[\253E)\245\205\020\357\233\246\371\274!l\177Y\271r\245\257\255B\214\021\026\356\000N\001\262\r[\011\226\264\357\242\314 fo\025*V\253\321\274&\r.\316\232\246\367}\353\004\204\252\304\265\b\327\177fN\336C,\374\002]\276\313\243h>F\310\343\322\n~\213\335\275\202\3327\217a\323\035\241X`\372\"\253*)Q\223'O\026\223&M\226cF\027b\261Z\021B\014T\230j[\013\201H\335+ \021\217\321\324\324DMm\215\252\255\255\321\306\236j\231\361\361\207MG\335\354\265\026\036\226\223ow/\303\232\261\030\303^\n:\006\302\006h\342\235\353\351\362\255\304\354\335\271\027\223\205\236\351\272\361KAi\255\2774\371*p\265Ur[[%fw\340\036\255\314\260\016}\221\247\333v\262JkMp'\3276|\354\322/\375t\261~\322j\325k'M\324\225o\275\256\303\341v\035\355\352\354O]\335Q\335\325\035\325\335=\335\272\247\267[\367\364\366\244R\267\356\356\351N>\357\212&\313G;tg\264C\207\332\203\372\263\277\277\242\237\037?N?i\265\352\277\234{\266\016\267T\350\356\326{u\244n\221n\333i\321\301*\247\216\354;Y\307\273\266h\025\367\353\366\3522\335V\311n\377N\n\276\014\333!- X#F\351\036.\025\202+\204L\317I\033\275\006{\326/\350\362^JO\360\201\240\241(\311<\\\207\376\373{\363\037v\355\370|\231E#\212\257\271\232\362\037\375\ba\232\310\222I\b$\322\220Hi \205DJ9\324\n\016\350\014\245\024J+\2242Q\246B\253\004\352\213=(CR\371\302\013\354[s?\011C\220\267\"\257w\356\2715\317\011x]\203\013\315\005\302p\035\2311~=\3226\231H\335Q\250\336\272\307=\345\372\374C\031\300\360\004T\011[\033\\%4\327\b#+\313\341\371\025\216\354\313AX\2106]@,\362B\\\b~^\261\366\346\2655/\376y\263\263r\347\314\354\363\177\316\234\253\256\"MJ\324\376\375P\273\027\313\202\005X\247M\303\220\006}\355\014\264w`\273IR\372\310\021B`*\223\330\326\255\230UU\2101\205\220\237O4\026c\333\275\367\322\366\314st\227\037\266\275\344\264\323\347\035s\313-\011\336\021\226`.\317\n9\352\214\314\222Jb\341g\210\372\257\rd\227Qp\250\345\371 \002\202;\305\211\300\032!]S\0349\327\341\310\276\014\264\242'\270\206\236\266\373\320f\310'\340\214\347o\\Zm\253\334\261\303\276\2771\177\332\037\036f\312\211'BK\013\354\333\217\364\372\222\327\246\211\363\206\033\320F\037\001:5\354\373\362A\212\210$\011\003\271\200\366vz\037~\030\322\323Q\356,\264\333\215.(@x\334|\361\372\353\354\276\374\nz\307\025\265\304\312\247O\377\345K/\371\251\022\266\240\246%\255\340\276,k\372\017\b\327\224\"4\213\335\345\372o#\021\320\277\023l\335-2\202U\342E`\275m\324iS2Kv\341\360\\BO\353j\332\253\213\351\366\337\334\256\315\320\355V\203\362\247\256\373A\324\261yS\275\263-\224?\347\325\2771\345\304\023\321\215\215\310}\3731\374\001D \200\366y1+>\243w\355\332\2449+\023\323TC\362\301i\270g\275\217?\206\351\365B\260\r#\034I&\237\017\355\367Sz\342\017\230\265n-\316\326`\276c\363\246\372\337\237z\322w(\3231\004/\366\266?\216a\237\2125\375$\264\340\256\326\335\242\360K- \270S\334&\014\317\215\351EOcM?\221\336\366?\321\335r\r\246\351\017H\370\235\266\361\240\247DG~\267xq\216g\353\247\r\016\207\303~\364K/\nOA\001\242\241\021\321\322\202l\361\243\275^\314\346fTs3\332\347\003\245p\374\375o\220\2211\31408\320\n\006\314_o\331B\357\035w\"=\036DNN2\317\316Fdg\243\2622Q\0367\344\347\323\352\365\362\361O\316\326\275\361xop\366\234\261\277\270\363o\243\265dG\306\370\277#m\223\351\334\277\030\263w\267O\b\316r\227\351\367\207\265\200\266\n1\006\270\302\231{=\026\347\034\"u\363\2116\375\\\351\204\377\001\331\315dw\231\276\313S\242#\000Y\325{\266\332{z\035\363\377\372\262\310\316\317\207\206F\244\337\217\364\a\320>\037\246\327\213\362z\321--\350p\030\335\321Ab\303\206\344\344\246\024\246i\246\256\315\003\322\340g\212\330\332u\020lC\205B\350\2666T0\210N%\031\216`\204\332\321^/\331\371\005|w\335Za\353\352vdU\357\331\352>\\\177\016\254\2176-C'Z\0315q\013\266Q\247\027h\315\333mU\342\262a\011\020\006\343\001\2275\343Tz\333\377\207D\327GQ\245\230\347>L_\352\236\255\303}\205\037\231;\347\025GM\355\270\303\237x\214\254\234\\Tc\023\322\357G\370S&?\030|{{\177#\346\373\357\367\203\034\000\2570M\2252y5\364y$\214~\377}tG\347\020\360*\330\226$\241\255-IB8\002\376\026\334\271\271\034\366\360\203\330\253k\306=2w\316+\026\301OU\242y}\244\376\030b\341gI\037\373\002\316\274\333\254B\2135m;\305\003\254\023F\237n\026\200\270\242\302j\240\315\236Ja8f\000\270\244`Y\260J\234+4n\r\316\212\277L\230\232\266m\337\3641\267\334D\361\021G@s3\206?\200\014\264\246z\336\207\362\371\320->t(4\204e\365\311&D,6h2\266\314\237 \214l\020\314\0332\004\000\224\342\374x\347\033=Q\357e\330\263.$\263\244\212Q\0237\2231~=\333\236\234\201\364\a\231u\313M\320\326\n\215\315\210@+\370Z\222\023^\212\000B\303\200O\211\336\262\025!$\026\213\005\303H\366]OO\027\335\335]\200\3000,X,\026\244\224\340\365\035\\A$\202\n\006a\360phk\203P\b\031\016#\332\202\020\0161\363\272k\205%\030\262\332>\335\374H[\2258B+\316\004\322\014{\031Z\367 \244\023\004\305}\325\366\373\003r\312\365\247m\225byo\360\301\ac\241\307\322\r{\031J\265\023\357\014\323xo\202\234\263\177\214\333\355A\327\326\"\002\001\204?\220\004\357\363\241\275^\b\016\177p\023\016\a\262\260\020\355\363\321\334\330H}\343>jjj\022\321\256\350\020_\204+\315\225\230\337\210\340\345\350\321\310\321\243i\330\275\233\317\266o'\221\233\323\333U<\341\254\225W\376\372\225a\212\177\232\312\357z\340\365\r\247\266\356\250X\373\366\313/\333g\035q\004E3f \\.\314\275\203\374,\241\020\n\372-\201\224U\b\273\r\244\201kL!9\027\236O\323\206\215\204\353N\300\354z\033P_h\301\317\373qE\3664\375\227\341\300\177)\001R\312\323'M\232d\025\"\271\\I\231<\316&Or\0322Fa]u7\306\2157\202\303\2214\305\011\023\210\370\375\354\332\261\203\256\031\323\237Y\261\361\335{\016\325\306\241d\305\306w\357\351\2321\375\231\235\2337\023in\3062}:H\231l\347\3143\261>\367,r\306\214~}\372\364\023B \205d\302\204\211V)\345\351\207\3048\322\203\325\253\357\234\256\224*\034;v,J\353\376\263|\322\221\300\240\323\235F\234\272\030\371\247'\220G\036\001iil\335\262\205D\321\230\360\262\315\237\236\363M\301\367\311\262\315\237\236\223(\032\023\376\364\235w\320.\027r\366l\304\003\367#W^\235$\035=D')%RH\264\206qc\307\242\224*\\\275\372\316\351_\233\000\023}\234\303\341\210\271=\036\222\354&\227\235\244\014&!u?v\034b\365=|\021\213\021\351\350\240wJ\311\022\016>\364\177\023\321\275SJ\226D\302aj\302\355\310\373\356\205\2313\373\253\356\003\337w/\204DJ\001h\334\236l\034\016G\314D\0377R\345#\017\001-\306y<\036D\277\243B\"\2448\250\301\276{!@X\255\354\2328>\021Z\374\303\027\226\277\265\361\335o\001<\000\313\337\332\370n\373\342\037\376ygQa\\\332m\b\301\301\035\220\272\027}\035\225\\\034p\273\335\240\305\270\257M\200@\024\272\322]V\221\302*R\177}\r\302\201\336\035\201i*|\231\031F\364\250y\353\376a\324\aH\347Q\363\3266\271\234\026\323T)K\034\336\303\324\257\247N\336%1\214\354\017\030\231\000)\307\273\234.\221\254G\244\030\035\360\345\035\354\321\021\204\303\355h\255\205\222\342\200\315\374?.J\212\317\264\326\"\022\011\247L|@\006\353\"R\272&]K\2324g\232\020R\216\037\251\336C\255\002\205\3164'\372K\207\361\300\020\b\206BH)\273\257\273\362\272\352/E\3645\345\272+\257\253\226Rv\207\332\333\0011d\030\216\254\0318\323\322\000\276\276\005(\245\362\034\016\347\210\336\233\001\031\360\343\005\203m\b\250\374R\315\276\231h\001\225\241P\220\344\262\234l\363\320oh\234v\aJ\251\274\221\212\214<\004\2040\265V\bMj\306\031z\206?\320\263-\204\3000\0144\330\277\n\232o\"\032\354\311}\310\320\306\207\306Ztj[\220\314M\255\020B\230#\3259\"\001R\340\357Jms\373\003\011\350!\314\017\314\011\311\361\226\355\311Fk]z\353\255\267~\343\250\363Hr\353\255\267Z\264\326\2459\331\331\b\241\207\325A\b\320\014\004=\000\272\273\273\220\002\377\2108Gz\240\240\251\253\253\033R\225*\255\320J3\330\344\373\024\350\273w{1\024\326\311\355\270\032\324\256\030\242S_h\r@\241\350\214v$\204\306;R\275#[\000\324\205\202\355\3224\373\030\035p_\247\026\332\376FE4\n-~\b\2673\271x\202%c\343\273\013\036Z\264\360\334o\013\374C\213\026\236\233\376\316{\363\247\034>\303\320ZC<\016\361\370\001\275/\206\272\333\265B\231&\355\241\260\324P7R\335#NV\022\265>\221HX\002\255\001\362\363\013P)\367\265\251L,\206\005\265u+\211\212\nT[+\332\225\016yy\250qEL;\371\024\352\346=\241\315\252]\177X}\302\011/^\375\306\033\321\177\004\374\352\023Np\345V\355\372\203k\301|=e\311\022\021\357\354\204\206\006\360zQ\035\035h\207\0031\272\020f\314\300\224)\022\314d'\005\002\001\022\211\204E\242\326\177m\002V\256\274\261v\325o\357\252ilh()\310+\300\324&fts347\223hnF\233&\306\005\347c.:\006S\231\b\255ihl@HY\263\362\252\353kG\252\377\320\016\021e\276P\267\267.\256\264BG\243\350+\257\"v\315\2571w\357NF}\374~\264\337\017\376\000\272\305\217\016\264\222\250\256&\323\343\246\364\256;H\333\271\353{\217\314\235\375\3447\005\377\310\334\331O\246\355\334\365\275\362G\037eT~>\361\375\373\222\036c\257\027\274\315\350T\bN55\241jk\211_\177\003\372\302\345\020hEiE}]}\\+\363\205C\265q\310\365Z\011\371J\2645pm\307\336Zr\037\373\023\372\223MC\011jo\357[\217R{\360d\000#\341pp\330\251K\351\366\005\250_\265\352\234\307K&\035\3373\271x\341E\257\275\275\373\253\000\177\350\244\357OuT\327\277\353\332[\227_r\317*\246\235v\032\361\306\006\364\376FDK\222\000\335\354E7'I\320\321A\243l\347N\354\267\337I`\371\371D\003\255V\225\346\034\316\a\331/\207\264\200\013N\272)=\357\251'u\353\262\2131\022&\302\3418\250\214\016\205\320\201@\322\022Z[\021~?\252v/\211\332Z\346\374r\005G\275\3622\366p$\337\365\341\226\252\207\216?\366\226u\353\326\031\3034\005\300\272u\353\214\207N<\356f\327\207[\252\354\221\216\374\005\237|\304\254K.%\356\365b\326\326!|}\300S\340\275\336\241ns@\330\355\030\b\374\027]F\356\237\236\216\305\242\261M#4\227,?\322^?\270S,\003\036\334\376\364\"\213\357\256w8\376\364\323q\306b\230\325\303\237s\204\307\223\232\023r!/\037\235\227\207\2348\021\353\264R\342B\360\361m\267\261\357\263\355\204\316>+\254\224z\031\304.D\352\033\036-\212@O\223R.q?\375\\\346\244\357.\340\310;\356\300b\267\021kh@\355\335\213H\365:^/\272\261\021\335\324\204\3568\330\315(\213\213\351\266Zy\353\257\177\305s\331\304\360Q\027\326.\311:\\\217\350\233\030\226\200\266*q\235\320\334\351\314\375\r6\317oxnl\021\34322\2319\177>\346\216\035\303z\202\201d\370\272ob\314\313C\344\347Aa!\306\224)\030\305\305\364$\342455Q]\263'\321\332\032\320\341\366\260\001\220\345v\233y\271\271b\312\224R\313\230\3021\330l6\314X\014\263a?\252\24119\346\233\233\321M)\223ojB\207\303\a\267\357p`L\233\306\266O>\241\241;\312\311\037\314Au\377]#x,\236\340\362\374\351\372\240\025\351\2409 X%~ 4w\244\215^\203\303\375K\242\336\213)\272\330\251\367\337T-J\312\312H\037?\036s\327\256a\011\320mm\311\330~\337\372,\005\b\211\2362\205\204\326\330\2546&M\234D\311\244\022\313\300\3665\331q\311\335d2Z\034\213\305\320\201\000\242\251\031|-\003c\336\2332\375a\300\003\310\242\"\"\355\3554\354\335\313\204\373.#k\342\032b\221u\"\332|\361\005V\243un\373\027bIV\251\256\037\362\316\340\233\216=\"\a\315S\266\314\237\n\207\347R:\033\177Lo\350\217\321\322\245\215\247'\306\024vWl\331\002\031\031\3101c\206U\000@\265\266\202\337\217\366\a\320\376\000H\211\2340\241\177\227\226H\304\211\307\343\304\343\261T\036'\026\213\023\213\365\022\217\307P\312L\236,\263\262\222\237\331\0348\341\r\n\273\017\001RP\200v\271\250\330\266\r5~t\242\364\270\373u\307\276\223\2618\347\2219\351S\014\307\214\351\312\344\343\216=\"gD\002\0221~!dF\266\253\360!zZW\021\213\274d\266\264qf\301t\363\255\246\011\305\027\265\005\002\354\332\272\025YT\204\310\314\034\231\204@\000R\023\243u\336\334~wu2\031\203\266\261I\351\333QJi\014\224s:\021YY\375\313\235\366z\017\n\273\367\277\237\221\201\034=\232]\025\025\004\333\332h\030;\341\302\332z}Bo\344\325]\341\332Y\230\261\275\214\232\360\036\322:\246 \021\347\267#\022\200`\271-+\351\311\356\016\334Ag\224\325e\013\331\0048n\370\340\2437|\263f\027\375\247\325~\002\204\020R\201\307b\237N\242{+Zu`\265\261\240a\013\3175l\341\371=\037pO\332\251\237\276\324>\275|\307\326\017?$\022\211 \247N\035vi\354\023\353\202\005)0C\301&\201\312\376g\311ky0)9\271\310\374\202C\203\2374\211H$\302\266-[h\237^\276\343\352M\237\336\271\3448r*7p\315-\227\263IJ9\325\232\261\024!\323Q\361f4\004^\274\237\376\235\241\320Z#\2040\000K\353\016>O\313\277~\262#\347\006z\002\267\243\022Mh\235@\b\013\211\236\355\230=\237S\337`<\271\375\342\242%\031\376\326Q\337]\270\220L\267\033\263\272z\330%\311\261\366y\254\323\312\222\236\242o\362\235\240i\322\373\344\223\304V\255:\030|z:\262\270\230p8\314G\037|@G~n\344j\177\3531'\034\033M\273\367\026\376\350L\313,\265g]\210#\373R\244\245\210Xd\035]-\327\320\323\325\370\370\350\231\\\004$\264\326\246E$[\224\200\354I\360\236h]5YZ\306\340\310\271\032!3H\316\3161\204L\243\333\177\023c\325mK/3\242g\375bt\301\323\357\275\361\206g\336\202\005\344O\231\202YW7\264\247\322\323\211\217\033\213\212\365${SJD*j#\304\340 \013\375\304h\2551\225\211V\n3u\2623\217\234\307\201\"\334n\214q\343\36055\261\345\343\217\211\026\217\017\376.\322\361\343\254\334\250\355\276[y\312\231>\261xT\361\006\204\221Mo\373\023\364\264\376\026\025\2577\273{\371\363\346\355\254\356\303+\204P\026\372\316\222 \212fq\345\336\217\022!\364%WG\275\227\014\351\235\264\321k\260\273\227\321\035\270=c\331\245\255\207]vm\347\322;K\247>\372\311\306\215\223\247\317\236\315\204\2622tV\026fc#\304b\250\031\207\223H\3040\224\2114\006>\223\225R&\375\366b`\031\324)\037\236f\320g2\251\343\254\231\227\2031\266\b\321\320\b6[2\354\236\225\305\336\335\273\371|\373v\202\345\207U__S{AgOO\357Sk8\332n\023\305\031\343_G%Z\351\330;\027\025\017D\303\021\326\275\375\036\017.\277\216Z 1\030\263\005P\364G;\321\023\217\346\316g\356\347E\217\233|\213$\3234\261\224L\324\247\033\216GOrx.\305\342\234\307\214\322Ms:{z>\374U\345\316\363\327,:\374\336\035\357n\237\343\367\373)\2375\013Wy9\252\245\205\236\303\3131c\275\030\203\307\266HZ\201H}\32518\316\322\357\313\353\377V8e\001Ja=r\036\216\204\211\310\315%\032\215\262\363\203\017\36057\3230k\306\206\353\266U\334\234\002\245\276S\316B\213s\016\206\255\204p\355w\350\352\014|r\345M\234\277\366UB\2512\372\200\244,\2519`0+\374\333\245|\001\324\220\334(Y6<\217#+\363\363\223@!m\305\270\\\233<@\034\320?\274\375s\031\3325\237\335\377\261\017\337_\377\312\344\322R&\227\227\243\216\230\207i\232\230\011\023!\343\375\340\373\206\300\340\361>x~H\372\036U*Oj$\027\035C\242r\0275\025\025T\357\331\003c\362\310\277ml\30397T\374\0060\201DZ\032*7\233\205\326\214\245\250X-fO\005\333*\271o\355\253\264\247\312\230)\022\372\257\265\326\311\235\240\326Z\013!\342\3030\244\001\025\355\301\2136\321\2116\244\245\000\247\235\034\240\367\305?p\254;S\314\032\377o\3670\375\254\0166\334\374K\252\037\251\327uuu\"\363\230\243\031\357\316\304\345J\aH\216ms\300;=\324\257\177`\200\263\317B4\321\316(\373\252v\022~\3555\022\206\240\340\372\013Yp\315\031t\356?a\354[\223Xz\334Ox\0320\257Z\3068\213\201\333\232~\002\261\316\365(M\344\322\253y?\325Q\211A\340\023)\360\032\006m\205S\377\210\247|\350\226AL\031\3010\373\001\314X5\026\307\034\322\322\230\361\314\375\224\317\237\307\257\355\236\213\2608f\021\256\235M\311\351{\337\277\371\371\302\273\316.\310\273\255qOMiEg4-\313\235\025/..\266\216\0313\206\214\364\214\376M\220f\000pr[\254A'\235\253\221\2160M\215\315\324\357\253\217\267\207\332\255\226\226\226.c\352\224\335\307\337\261G\216\235\366\305\014[\372\"\322\nV3\223\253Wn]\217\355\243\315\274\271\340H\026 \014\014G9\275\241\2070\023\354\330\337J\327\001=\237\320z\350\227\343#\236\006S\253\203\321\227\002;\330\352\314^V\352\032\375\000\221\372E$\242\037*i\033+3Kv\322\323\366;\272Zn\351]\363\004\213\377\343\267\354\a\244\313\345\262\234\272\364\344\271\343\306\027\037\237\2255\352\004\201\360X,\026\323\351t\232\256t\227t\271\322-iN'\000]\335\335D\243\235\211hGTu\367t\033\211D\302\320\350`{{\344\215\375\373\352\337|\345/\177\337\022\215F\023\017\334\311ag\235\302\3778\262\316HK/z\226\236\340\375t\373oB\253\016@`w\377\002W\341\243\311\361\037\256XS8\233k\372:R\217\000\364+\375dF\bA`\a\313\245ay8c\354KX\322\346\323\023z\b[\372\017@X\011\327\316\306\037\210\3356\355\030\036\"\271\304\364/\255\200\260\333\355\362\2143~4#;7g\212\303\356\310\267\331\255\3716\253\265\300b\265\026\001$\342\361\306X<\356\213\365\306[zz{Z\332\002\255{^x\341\245\212\336\336\336\276\011Z\245\222~\355)\346\315\235\301S\366\3143\322\322\213\236Bk\023\025\257C\030n\244\245\220\236\340\357\351\362\376J+\370~\316az\343\227b\373:\277\031\n\356\024\017\013\351\\\356\314\275\011[\326y\230\275Uty\257 \321S\271}\311\231,\374\360\013\372\034\366\362\200\274\177\202=\340\372@\351\233w\006_\367\021\320\237\177\276\201\371\205y\374Y\030\3564\333\2503\220\226B\300$\336\361*\211\236m\b\270\326}\230\276\373\253`\372\232?\233\0232X\305\335h.\004\262Rh6j\301\245\203\177\256&\206\306\314\206Kp0\011\303\001\037\234\030l\306\255\273\304hC\3633\255\371\021\2324\004\206\206\215\032^\370*=\337\257\3537\371\355p}\275p\214\352b\261\204\232\2542\275\375kW\360\377\220|#\002\376\177\222\177\371\037O\377\313\023\360\177\000\276M\363p\264\242\214\251\000\000\000\000IEND\256B`\202", 7292); _img_gnome_help_browser_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\003\300IDATx\234\355\233Mo\033U\024\206\337s\356\330\036w\214P*EJ\025,\002\213\320*l\272\312\226\r\177\200E\210\272B\244!?#\376\023\004\262\200\260\253\344\r\273\254P[v\354\272@\026\"\331P\032hP\220\"\025\327\031\317\307=,f\354$J\334zl:g\204\347\335\314\347\275\367\3653\347\334\271\367jL\"\202Y\026k\033\320V\011@\333\200\266J\000\332\006\264U\002\3206\240\255\022\200\266\001m9y7\270\276\376\311\2071\314\035\026\261\302b\001\304\"l\001\304\016E\277`\a\217\001\2745u\243\306\0011\2019\011@f\2021\016D\244\262~o\255;e\365\377\330\b\037\265\333\355_\307\3622n\255\302r\327ZY\370\374\263\215\253\327\256\331\033q\003\234\212\203w\232M\304q<\004@\304X\\\\\304\375\215M\304Q\354\3415\001q\0360\227o\024\b\366\366\276\365\204\351.\200\377\026\300@\267o\337A\030\205\260\326f-:\224\210 \216c\0201\210\000kc\210\265Xzwi\342:\3310\034\223=\2433\227 \002|\377\014\375~?=\236<\177\215I\" \b\002\004A0q=\000P\253\325\320hd\317\316\314\000\2020\204\357\367\207\2539yh\034\310\"\002\327u3\327=Q\004x7n\240V\253e.wQQ\024\241\327\353\001\000\352\365:*\225\312\250\222\2578:\2271\006\364\272\316\343\032e\006p\364\354Y\346F.\3128\016n-\334B\030E\360}\037\000\340\272.\252\225*\216\217\217\021\206!\222\356,\321\340\013\226d#W\267\351E\301h8\257\322\330\000\310R\207\014\316v\276\336\251O\320\316%}\261\271\205f\263y\351-p\364\307\021v\276\372r\334*$)G2\330O\030\b\230\371\205\215\360d\334\212\306\006\320n\267\177\336\332\332z;\b\0023n\231\353t\326\177\371w\024E\0363\303\230\244*\303\214(\216\001\000\335\027=\267\321h\310\334\334\234\034\034\034\310\374\374\274\254\254\254H\253\325\022y\003\0374eJ\201\335\335\335\020@8M\203\353\367>\005Q\362\324\207\021\300\004N;\211\375\375\375\376u\345\266\267\267\247iv\244t\206\302\3040\027\"\200\231A\303t z\023Oz\224\224\000\320\345\2410\3610\002\362V\356\000\b)\200+)\220\354\267Z-B\216\013D\005I\001\003\346\031\211\000 \035\024\321\371tx\320)\002@\247\323\311\225Dq\026D\224\226\004\212\003 %prrRF@\236*\014\200\301Dfyy\271\214\200\203\275\003\210\225\236sr~s}[^\255r\314\326\226\300a<\276o\2125=\000\325\006Xq\321\271\304|1\207s.t\352A\314\367C\274\260\221E-\n\276\235\360\000\306\000Y6C\236\347\313\355\252n\341g\304q\214$\011\177;\203\003\274\317\347\310\262\034Y6\013\276XY|\"\213\b\352\365z\360\271K=\001\315F\003q\034\a\317\363}\340\313\001\262\226qx\204~\263\336\000\000\000\000IEND\256B`\202", 733); _img_gnome_list_remove_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\rtEXtTitle\000Package[\002\254k\000\000\000\024tEXtAuthor\000Jakub Steiner\346\373\367/\000\000\000\"tEXtSource\000http://jimmac.musichall.cz/\365i\310\304\000\000\011\rIDATx\234\355\232]\214$U\025\307\177\347VU\177\367L\317\027\260\313.\273 \354\004\021\327\000\013\032\321h\300\004\305\200\017D\036L\374 \301eYy!\372\202>\310\223Q\343\203&\212\301\270,\370@\224'M4\304\304\027 &&\206\217\370\205\200\354.\273\310\356\316\347NO\177Tw\325=>t\367L\367tOwU\317\314\366&r\222\352\352[u\357\271\377\363\257{\316=\267n\211\252\362\377,f\324\000F-\357\0230j\000\243\226\367\011\0305\200\307\037\227\221b\0309\001\373\317\346\316?s$\377\374\261\207\307fG\321\377\310\011@\031s\023\231\3178V\377q\374\241\261\037=yxr\374bv?r\002D\304?\364\371G\315\r\267\335\353$\223\351G\222\022\274}\374\310\330\203\027\3135FN\000P\263\365*\341\362[\\\177\360\343\336\336k\017N\210\360\363\375\357\345^=\376\360\330'v\272\363K\201\200j\335/\201\030*\213'\311\030_f?x\310\214O^~\275X}\341\231#\371\337\374\352p\346\252\235\352\374\022 @*A\255\214\030\a\000\265\001Z]\342\212\351I\367\252}\327\342%\222\367Zq\336<~$\377\335\347\036\225\364v\367>z\002D\253\201_Z#\240%j\003R\236\260\177\357\276\304\364\324L\302\021\371v\245\222{\353\231\207\362\367oo\367\243X\014\211\310\261\a\246s\371\342\274_\235\316\277t\335M\237;\344\372\347\251W\2267m\022\204!\363\363\363v\245\270bD\344\317\020~\343\313O\224^\3312\224\255\020\360\354\341\261i\037\273\013\307\024\260\024\020[@\245\200R@\244`\324\026TdB`\na\262y}LUs\200\0218\212\310W\256\276\361\323\267\246Y\245^^\032\330g\325\257r~\356|P\255\372\016\302/\255\317c_;V\234\033\326\206\370\004\210\310\361\257\347\276c\014\367\241\334\250 \000b\034\357\030\2038-O\223\216\023\364,\002)\022\271k\330{\335-\274\366\302\263`\245\020\311\256\310\004\000\252\026Q\313\352\231\227\001\360\200q\201\361\034\220\003f6.\325#\202W\213\r\252\020\370\204\275:\356\033s\327o\212q\311\314\034\350oD\017\211\225\011\266\242t? Q.o\274\031\255\332\200\331G\032\017)\256\304 @\032\207\b\333\016\276W\223MFP\277vJ\374\245}\254\021\320\360\323\315gBi\373\215\237-\367h\320WU\217\031dg\011h\232\027\325\005b\201\357\333e\3176]\346\013\215)'\246D&\2401?\367\037\001\235\r6-D0_\206\033A;I@\253\223A\313\323a\301w5\211\030@\327\256\bC8@\034\002Z\261\257\203\200\016\257\337x\271\217\242\301}\36501B\263\035\216\001B\004\027\350\002?\304\342i\223Q\266\271\246\326\310\3341\002L\363\315g\004\027\030\002|\304\212=+I\373yGc\200H\323\003\272]`\263\342&\212\372W\217\347Ok\242m\277q$v&\330za\271\235\340;\273\030\346}\303\216\273@\243\223~\263\300p\300[z\273\377\366(\016\276\272\363y@\037\027\330\002\370\376\267#\206T\271(\231`\237Y`+\340\327n\0169\374\0316\021\036*\023\334,\355\035\036\374\272\216hmz\212\201\213\020\004\351X\rn\033\370\315=)\262\362a#P\314T\330t\273\300\246\340c@\032\300d\244\034b\310 \034/\023\354\n\202l\035|,\334\233\344\020\322\212P;\372B\244\321\223\264\277\020\331&\360\203\352GR\335\230\a\343\000\002\342\316\002\033\227\303[\005\337\345>q\207\261\264=\213\341\266,b\255\006[\353\201Vy\3754\334\014\320\257Y\344`\330\276\030\330\251DHU\315\372\bh\216\267\355\004?\254\226\216\030\270^\b\202\350\303a`E\021I\205\212\323J6D\014bz\354\341\265\035\255-\357\365\243G\275\016\035\246\307\321Ko\347\321Q\037h\305\200\205U\233\026\221H\017\267o\245\246\222\264\2658H\333,\020-\212\365\225\370k\207\001\271v\233\276bUS@\032(\016\322:\210\245\004\220\014\025\a\265 \016\0303\204\311\203\027\n\261\023\240.\225\353\251p\265\326\300-\"\025U\r\372\251\031D\200\003\2706\324j\371\302Y\025\307\025/;CP\236\357\203%\002=\021\227\315\375\026>\033\305x)\352\325\022\000\245\032!M\354\300\226\b\000`\271b\3776\377\337\267n\017\252Ew\374\352\333\361\227Na\353\225Ma*\332x\036\315\335\321\306\206\205\266Ei\245\361uZ\353Z\363u\206\266\227\333\332*keY\333\376X\257+n\0221\036\013\347^\a\260/\376+x#\212]@\377\317\344D$\003\214\035\272\306\333{\344\316\324\037'g\366\344go\271\313\031\273\374\000b\274\236mT-\250m;kG\031lcg\271\253N\330y\266\266\207.\333$%l\356>[\260!A\255\314\342\371\323\234x\3435\373\356R\370\213\307~]\376\001\260\002,\017r\201A\004\270@\036\310\177\341\226\344\rw\035L|/\345\352\301\201\264\216@\024\361\317,\204O~\377w\345'Vk\\\000\212\252:0\b\016\374PRDR@\026\310\000\251\331]\336\370m\327\312\225j\351\376ZiDR\r\244\370\333W\374wk5\252@\025(\001\245AO\037\"\020\000 \"\011 \005$i\304\r\345R\370\322|]Z\253\240:\340\003\025U\355\271\333\276Qb}*+\"\036\\:O~\203(\020D5\274%\243\371\\\376\022\222Ki\030\217D\336'`\324\000F-\377\003&\307P:g\200\220c\000\000\000\000IEND\256B`\202", 2551); _img_gnome_package_x_generic_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\024tEXtTitle\000Window ManagerU\327<\242\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\004\354IDATx\234\355ZML\034e\030~\336ofvv\267@\273\273 \013\241\002\205J5\261\246\232\212\207Mo\232\246M\325\0360UO\032\2176\20641\032\017\304\203XR\r\2111^\254\036<56\351A\253i\342_o\215\261H=X\177Z\261\005\214\001\032\220\026\354\302\316\314\353a\231e\354\016e\2463\303~[x\222\331\235|;\363~\317\367\314\373\367m\206\230\031\353\031\242\322\004*\215\r\001*M\240\322X\367\002\250\267\016l\333\377V\253\005\361\022\201\266W\202\220\aX\000\177el\212\237\030\373\264\367fPc\344\254\002;\236z\373\325\005C\034\315l\331\204\306\206\024\0055\036\005L\313\304\325\361I,\026\214\177\241\361\256?N\275\376{\020{%\017\240gN*]\2407\367t\357\240\335\017u\200H\312\365\003\000\n\206\201\223\247\317%\027\346g\a\000\034\014b\253$\300.\\>8cP\374\221\235\33301\233\307\225\211\271\300D\243\200\"\b;\333\323x\370\301\016\234\371\356\307\003A\355\225\004\310\326qnf\236P[\223\300\337\263\213\210\307cAmG\006\023\204\332\232$\014\223\225\240\266\226\223 \221\000\000MS\241\3531\304\343\362v\210\261\230\006U\r\274v\000.U@U\0044UAL+\373I\032h\252\002E\011'Gm\364\001\366Ik\032\227\033RItw\326\241\243A\303|\276PI^\267E\375\346$\376\332\274\210?\037\320\002\333*\011\320\326\300\223\34094\247\342\310$\011\246i\0046\036\025t]G\r\022\270\377\236\205\300\266\312B@\b!u\017\000\024\363\265\252\206\223\243\312\254\024\005\b\305vd \"(J\261\n\264\357?\352\251\\\251\n\215\232\006\037S\260\360\311\245/\373\256\227\306#\342\270fx\362\211\335\236\256\2736={\357O?_yOX\264\017\300>{\274\352\005HgR\253_D@Gk#\232\263i:\365\305\367{\267\356\035L\217\235\351\235\006\356\002\001F&\275\265\354\215[\022\330\336\226\205\305Lm\3657_\000\360.p\027\b\220\320\275\265\3541M\205\036+\226\315\332\004\265\332\343e\0020\333\207\274\255\260\223\232\327=\213\256k\320\\\272[W\017`f\251\005\000\0306;E\361\326\314\n! Dyy[!\004\3301\205\254\360\307O\b\202\346\"\226\213\000\305\305\313\354\001\316\207\363\332\201\026O\367\250Jq\227\373\333\036\206\020t\2564\356:\201\3449\000\214\222\003\250.n\355\006U!\250\212\002E0@\313\213+O\202\220?\a\334Yx\022\204\360\022\002E\005\244\026\000\354_\004\"\270\356q\334C\240\212r@P\254\220\004\303\235DfTe\037\020&?\327$(}\016\b\021\267\361\000k\255\271xF\361\341\260\343\334\313=\377o\241m\270T\001\371\033!\200K\213\361.\200\373u\356\255\260\344!\340\244\346\235\247\017\001\344\257\002\216\020\360\310\223\235\355\243\003U\332\011./\305O\016pCU6BN\005\374\344\000\267+]\033!\351s\2003\004\274V+\266\\\323\200\353^\240\032v\203\276C\300\361\351DUv\202N\005B/\203v\005\220Y\200\"5\277\215\220\237>\000\362\227A.;\363rW9\334w\203\222\207\200\223Yh\036\300\314&\201\300\314\260\277e\005\021\3012-\020y\347\311vv\277\005%\001t\325\370\246`\306\026\247\246&c\231L=\342\361Dx\214C\204\020\002\211x\022C#\347\321\334\334\354\375A\255\346\001\275\275}\323\003\357\364\237\370\374\364g\317u?\372\230\232\251\257\017\205p\330\260,\013C#\347q\341\3020r\271\\\270\235`^/\034\246\0337~8{\366\333WL\313\352\014\3146\002\020\021\232\232\232\220\313\345\220\315f}\205\300\252I\260\357p\337u\000\357/\035\2360p\254\237\237=\364<\352\352\3520\375\3175\257\267\205\002\177\025\300g\031\364OE\356\312\001\307\237(N\204\"\200\335\227\310,\300\n\353\017\311\003\226\024\220[\200\250C@v\017\360\222\004\357\334\370\322\024\022\377\221\032i\016(%A\211\367\017\221U\001\0224\227\317/\324\244R\351\342D\222\206\201\246\306`\030K/\177\232\230\261\307\203{\000\343\370\360\360\320\313[[\236V\333Z:\002\233\213\n\014\306/\277^\004\011\232ho\353\374\332\036\017\356\001l~0>>\366\342G\037\177X{_W\0274U\223\3575Kf\214\216\215\032SSS\n`\365\367\364\364\230\366O\024\206\313\016\016\016&\n\205\374!\020\036\207\244o\2403\254K\252\300\361#G\336\270\352\034\017E\200j\206\224Ok-\261!@\245\011T\032\353^\200\377\000\314\2708z\0340\350M\350\350\352\002\245\254^\b\301'\003\314\221\310\244l\202\371%e\367,\2347\367\216?\334v+\353\356\351\202\242D\221\236\226\211\344\344d$'%\203\020@\345\034\202s\250\234#\034\016\301\351t\242z\307N\261f\355\372\240\252\362\013\353k*_\005\000B\b-(.^)\004\275\003\204\337ZWU\365\301\2176\360\adR\bXP^\236\250QE\367\003\367\336\255KJL\304\302\205\371\220$\011}\375\275\350\354\352\200\313\325\017I\226 \313\032hd\031\011V\033\322\3232\240(Qt9\034\270\363\217\367\240\267\267w\035\347\242J\222\330\037\rFCN\211\335.\266|\361\205O\025\274\360hf\210I\311\002TQ\026rP\215-\321\206E\213\026\243\307\331\215\235\265;\020\016\207@\b\005\245\004\221(\005\245A\020B\340\031\364\300\341\354BFz\026\26223\261n\315#\270\342\332\033/\213D\"W\374\366\302\013\310\322c\312a1\233\311\200\327c\250\257kx\036\300\322\311\260\363`r\330\036PX\\v\261\340\330c\324\322\272m\333\266\005\013\n\216Iez\336\370\314\372uI\205\005\205\244\245\265\011u\r\265 \004 \204\202P\002J\310(\021\023G\203\301\210\234\03131\350\365\302\355\366\302d4!\242\204\221\2251\005\203C\2038\347\374\013A\210XP[U\325x4\b8\2544XTRRH\031}Fo\324n\367G\325a{\3711\315T\307\267\376j\345\331\266\202\374\002\322\370MC\014<\001\245\024\224R0JA)\003ccG::\206#at;:a\265Z\241\321J\250k\330\011\217\307\215p$\014\213\331\014\253\325\"\004\350\245G\003\262\302\214Q\350\365\006\030\rFh\265ZP\312\240(Q\014\r\017\201\253*\b\245\240\204 \020\364c\300\355BFF\006\006\275CH\264%b_S\023\036|\370\257|\330\347\377\232)\354\321\377+\b\2204\362\312\237\237\264\\\212F\243PU\005i\251)HNJ$\231\031Y\330UW3\316\275%\211\301\226`\203$k000\200n\207\0236[\002\346\315\231\213\224\224T\364\366\365 \020\b\304B\204\302\347\037BB\202\r\211I\211\330\374\332\233\352\273\037|\244\n\340\226\372\352\3125G\363\274p\310\004\314Y\272\324\254\215*\323\246deAU\024\370\003~8\235=X0\177!\206\375>8z\272A\331\310\212\022J\221\230\230\004J\031\036\370\313_\225\375\a\332\243\224\240B\200\314\241\224\244\257]\363\b\2311=\a\355\235m\bG\"\261=\202 \030\014\300l6\341\275\017?f be]e\345\353G\013x\\\016y\017\320\207\303\371\000\310\013/mT\017\264\267\303d4##m\nL&3\274^\317\210\313\307\342\335\240\327\303d4\343\305\215\257*\373\333\333w25\232\261\243b\373O\254z\355\264H$z\357U\327\376Np\256\"5%}\3443\214\202Q\206P$\004\235N\207\262\322\022!8\314G\021\367\250\0342\001\011&S%\2108\371\325\327\336x\361\272\233n\365_}\303\315\370d\313\026U\222$D\243\321q\233\233\321`\202\3129>\377b\253\004U\271\261\246\246f\020\000\266l\331\242\324\327T\335%\204\350lnmERb\362(x\312(\270:R\020\346\345\346pBH\366QA \0042\3222\241\2214\3437\2671:\021\274N\253\207$\311\250\257\337\203\2476\200iS\262\221hKDjj\0324\032\315\b\22112UUE_\237\023\275}.\\s\303M\020\020O\371\335\003\327577\207\001 \337^\276\2201\361\a.\204\267\256\252\342{\373\011\223zg\b\000\n\212K\377\274\250\260\360\226sV\236!7\2654!#-\035\003\003\036\254\333\360\367\370\024A(\365\247\247\244\350\256\275\362R)\034\211@\226e$'\247\340\336\a\376\",\026\013\256\277\352\n2#g\006R\222S1\344\033Bgg;\034\316np\225C\243\321@\226e\030\014FdeN\201,\313p\273\a\360\314?^\344\037\177\374I\243\302\225;\031a\227\b\340\224\223\227\237\310?\374\370S\026U\325\213\353\253*\236=\230\275\223~o\220RV\234\227\227+\351\365z\350tZ\330l6|\271u\273\002\220w\011\025\267\370\335\356\366\224\224\024\332\333\357\332\375\305\326m\323O?\355\024&\3132\006\334np\316Ioo\237\2307o\036(c\370\374\313O\341\032p\215k\241\205#!\020J18\344Eo\277\023)\311\251\310H\313\300uW^F\223\223l\3636\276\274\351\2553N;U=\363\027\247\221\264\264TVRl\307\335\367\336\277~\321\242\245\037\036,D&\377\346(\021\366\351S\247\020\275\336\2009ys\240\n\216\252\232\235\222\200\372T]eu\023\000\024..]\316\011\326~\370\311g\017\347\346\346\240m\377~\361\301G\237\"+3\003\377z\376\037$\022\215b\333\227\237!\034\011\203Q:\256\256\210w\221\b\031\031\335\356\001\014\ry\221\223=\023\253\316:\203\025\027\025\301b\261\260H4\014\327\200\013\313\2169\006\031\031\351\304\341\350\271\004\300\237\276\263`\223\211}nii\022Wy\302\013\377zU\375r\353\327\30234\204\346\2266\204#\221\241$\223\351\343\370<&K\033\314&\343#B\b\262v\375\006|\364\311g!Y\222\360\374\263\317\020\020\201/\276\372\014\221hx\264L\036\327S\244\343{\212\214\215@\350\354\356\000\000dN\311\304\276\346}hik\206\252\252\210D\"(/-\221\b!\227\223\2119\030Ga\017XXV\226F9\316a\224\236\3079/\020B\310\004\344\251\332\352\212\313\001\240\260\270\270D\326\350*\337ym\023\006\334\003\250\250\254\206\312\0251\177\356\034RV\272\004[\276\370\004\203C\336q\3555\235N\013\203\336\b\203\301\000JG\216\314\303\303>\204\"\341\321\016\024%\004Z\255\026S2\247\241\275\243\035\022\323\200Q\206u\033\236Vjk\353\274\252P/\256\253\252z{\242\275\223\036\002\r\025\025\275\000\036\a\360\370\011'\234 y\374\376\331\220\230wt\002a\247\236p\3342\205IL\342\\A\376\302\271\210\204\243d\366\354\331\350q:0\344\033\214\035\252F*F\263\331\002\263\311\014\277?\200\372\206Fh\264\032\314\316\313\303\264\251\331\030\366\017\243\317\345\004\215\265\337UUE \350GJJ*\252\252v\210'\236|\212\204\303\221\315\212D\256\334\275\255\312}0{'\225\000\273\335n\r\013i:c|\246\337\343y7\226\222\306\365\363)!v\373\342\"\246(\n\"\321\b\234\275=\220d\r\254\226\0044\354\376b\244Z\214\255\250\321h\202\325b\305G\237n\341/m\334D\230\304\252\251 \232\250\252\024^|\341\271\374W\277\374%\005\301\310!,\3461\201P\000I\266d\354?\260_\r\205B\257\326UW\256\376!\233\177\364\036\260\240\274<1\337^z\353\342%\345\215Q\302<\026\213\261\216Ri\263!!y\371\301\346s\240\350\255w\336\343\225\325\325`TFjJ\006\322S\323\020U\242\243\253\317(\005c\022l\011\211\350v8\261\361\345\327\"\340\244|\347\366m\2455\025_\027\021A~\362\354?7F\36655!#-s\244\231\022\333\033\242\221(\270\3408n\331\261\014\224X\3777\373\177\024\001\005\213K\217\225\024\341\230?o\356}\367\334\365\207y\357\274\261\211\274\377\326\3538\355\224\025\n\241\342\354\211\363\347,]j\206\340\317\325\355n|\360O\177~\340\300o.\277\022\317=\377\242B)C$\034\036w\343d$\356\365\330\264\371\215(\347|]\335\216\212\212\370ujk*\266\b\316\237x\341\305\215\212^o\200\331d\031\335,)\033\011\005\275AG$\312r\216*\001T&N!\270\366\341\a\357c\213\n\n18\350\205\243\273\033\307\036\263D\"\204\236n\267\333\345\370\\\273\335\236aP\370vB\350\255\022c'\252\340\307F\302\252\275\242\252\312O(E$\032\031\005O\031\203,\311\320h\265\350\352r\020*\360\235\347\a\b\320\332\3337 dI\002\223\330\370\314@)TU\205\252\252\271\205%e\367\026\226\224\314?*\004\324VV\266H\214\371ZZ[\341pt\243qO\003Z\366\267@+kA\000s\224\260\263W\255Z\305\n\212\213gsIS\275`\301\274\331\177\377\333:\224\025\333\027I \325L\306\020!\264%np\034<\243\024\034\200F\326\342\270\343\227RP\372\363\357\020\300\350\212c\217]B\031\223b\275\3058\011l\244)\003\202\353\256\276B^\\Tx\033%l\367\342\262\362\275\205\366\222\333&\225\000!\204\020\004U\337\354\335+|\276ax\334\036\264\267\037@\277\253\037\313\226\226\253\000^j\351\350rQ&U/-/K\277\364\242\013$\3019\256\275\372\n\251\264\264$\205\200\276\247\252j{Gg\2270\030\014\320h4\243\261\314U\005*Wp\316\312\263)!8%\277\270tM\321\222%\331\205\345\345Y\005\366\222\307\004\027\247]t\336\371\314\037\030F4\022\031\177\344\006\201ox\b\331\323\246\341\352+.\225\236yj\035~q\352\317gS\211]4\021\303\217\316\002\252\312\033\253\253w,\313LK\227\363\362f!9)\031I\211\211XTT\300.<\1775\272\035\216\204\275{\2331}\332\024t;\27218\344E^\356,\\\366\333\213XggWvWw\267\355\355\367\336WKK\212\245\244\244\024\014\014\364\217f\201\276\376>\314\312\235\215\177\275\360,\356\370\375\237\256hik\273\006\000\262\2622\325\rO\3767l\266D\264\036h\032\355)\306\373\212\\p8z\234\b\004\374HJLBaA\021L&\023W9\2579b\002\n\354K\026Q\206\217\000\262\203su;\025\250\026\204$R\202\253\216=v\011-)Y\014\225stwwcw\343n\020B`\265& 7'\a93f\240\241q7\232\233\367\301l6#\022\016\243\243\275\003=\316^)11\311v\322O\377\213\272\335n$&$\302\343\035\030\315\353\341p\020]=\035\310\236\226\203W^z^\362\373\375\340\202\303jI`\\p\354\357hA0\024\030\327o\320h\264p\273\275HKI\207\331d\202\301h\000\001\301\366\312*\001.*\217\230\000\312\360\273\237\2578\3116;/\357\304\355\025\025'\324\354\254\225\303\3410\356\272\363Vq\374\262\343HsK3\252\252+! \240\325h \313\0328\373\234\320h4\230\221=\003\371\013\027\002B\300\347\033\206wh\020O<\3717L\233:\005\267\335t\003\035\362\r\241\251y\037JK\312\220dK\306\240\317;J\302\220o\b{\3665 91\025z\235\036\2141t:\3321\344\033\004 \306u\230dY\006\004\360\336\373\037\251\225U5d\366\254<>+o\246d\265Z\321\324\334B!\321\327&\342:\244Rxnii\222N\220\336\315\257ldZY\003\227\313\005\267\333\r\177`\030\245\245%hllDm\335.\350\365z\230M&\350\364z\350t:h4Z(J\004\301P\020i\251\351\260Z\254\330\261c\027^\370\327\253BU9Y\267\346Q\270\006\\h?\320\006\255V\217\331sf#=-\035\335=]\b\205\202\243\035fB\311h;mloq\2540\306\240\323\352\341\352\037\300%W\\\247\b\340v\"x6e\254\214s\261\220\020\354\330UYQ~D\036\240U\311b\275Q\317\222l\211h\330S\217\356\356N\004\374\001\330\027\025cpp\020\r\273\353a\266\230a6\232\320\345p\342\243O\266(\002 \253\316>\235\025,X\200\250\242`\3207\362\364G\336\254\\\364\366\365\023\306\230\210D\243\304j\265b\326\254\271\360z\274\370\344\343-X\261b9\322S3\320\353r\"\032\211\214#!N\300w@H2tZ\035<\236A\334z\307\335\202\013\365\206\206\232\232u\361\247\317V\255Z\305\232\233\233\017z\263\365\220\b\340D\314?\376\270e\252\242(LU\024\004\003Ax<\036\244\245\245\241\252\272\022Z\235\026\211\266D\354jh\024\357\274\363\201\217+\352\303\240\224<\261v\303\037W\237s\0269\343\027\247Q!T\004#AX\255VH\222\3049\347\256'\377\366t\322\245\027_\304\276\332\272Mlz\375M\370\203A\377;\037|hX\277\356q\232\226\222\201p8\b\237\337\aUU\276w\325eI\206$\311\350\353\353\307\375\177yD\035p{>j\250\251\371;\000\r!\204\003\340\000T!\204\367`\330\0165\r.\b\004\003\324\345v!%)\r\323\246\316\300\324\254i\000\200!\337\020,f34\032\r\336|\363=\242r\365\274\332\232\252{k\253*\356\021\\\374\346\305\215\233(\204\200\325b\005 \300\030\303\261K\227\b\316y\312\366\212*\362\233\313\257\302?_zy\277\327\353\375mKcC\236\323\331\373\360/W_(\266|\376\245P\024\025\311\211)\260%$\302l\262\300\2407B\247\323C\247\035\271\375n\320\233\240(\034\273v\354\202\323\321\2072{1\245\024s\000\350\000h\000\310q%\204\260#&\200\200\274\367\345W_\177\265j\365\257\371\3657\337\252\354\336\263G\230\255\326X\265\245\300d4A\247\323\217L\346\254;\3769\001\265\022\0008\027\320\353\r`L\002\245\024e\366E\354\374_\255$\307,)!Z\255\216s\256\316\240\224\026\373\375~4\326\356|\334\353\035<\357\201\207\036!_|\376\025jk\353\320\353\354E(\030\206\022U\001A\000\001\364t;\261\365\253m\330\273g\037\034==\b\006\375(*, Z\2156{\366\202\3743\306\200\227\342J\b\221&\366\004\016)\004\352\252+6\003\330\\PpLj_o\337\231\317=\377\342\225\363\347\315\2353\177\336\\\331j\261\2022\006\253\305\002\255V+\"\341\310Uv\273\375\362\232\232\232(\245\322-&\223IIHH\220|\303C\320i\265 \224\240\265\255\025F\203\021KJ\213\311\211?9\236l|\365uu\367\356F\0263\230FB~7\265\230\221\222\234\202\276\376>8\272\273a\265\332\360\360\343\377\r\277\177\344.\030\245$\b\020\335\365W_Nf\346\346\301\355v\301\232`\301i\247\254\300+\233_\277\005\300\273\000\310\004\035YPB\324\370c7\207U\011\326\325}\335W[S\271\236G\371\315\365\r\215r(\024\2025\301\206H4\002\203\321\210\207\356\277\233H\262t\001\2274\a\026\225\225\273\001\\\364\344\232G$I\222\020\211\206!I\022\374~?\372\373\373\321\357\352\207\323\351\000!\004}}\375P\025\245\011\000\003 \351\365\306\374\364\324T\236`\263\200\b\201\364\214\014x\274^\004\202\201P\177\217\363\327m{\233~R[UyL8\024z\376\245\2277\251Z\255\026\2713\363@\000\270\006\006\004\200\334)\3313g\307\360}\237\036\272\aL\024\225\022N!\340\354u\"#=\035~\277\017\036\317\000f\346\344\342\245\177>\315Z[[3u:\035rsra2\231\340\031tC\304\342\277\253\253\033i\251\351\320\310\022,\026+\206\375~\270\335n\026\n\205\233\343\306I\262\264 o\326L\256\327\353\351\364\351\331\220d\031\357\276\377\221\032\rG>\357\351\356h\303\310\306&77\357[/k5\307\277\373\341\307S\246O\235B_\336\364\2322\354\033\366\372\274\356\313\273\016\264\264\304\256'b\363I\354}\374\365\221\021\260p\361\222\271\222L6\237\374\263\023\205\243\273\207X\255VL\311\232\212>W/:\035\235\310L\317D\361\342b\200\000\221H\030\375\356>D\243Q\310\222\214@ \200O?\373\022\026\223\021\026\213\005f\263\005\337\354m\002\241\324\335\323y`\264qB%iFu\315Nf\320\351xQa>MHH@\365\216]\3147\344\035w\357O\011\006#\356\276\336\333?\372\370\323\347\011\245\303\221p\370\225\376\356\316u.\227\313u\250x\016\271'H\ba\263g\347O3X\r\333\226\224\225\244\254:\363\014\266\377@\033\002\301\000\216[\266\014\224Q\370\206\207\3009\207$K\220\244\021\245\224Bb2\242J\024\217>\266V\335\261\263>\b!\264B\bY\247\323q\000\030\036\032ztO}\355\032\214\204\000\323h4\272\254\354\334\343\215F\375\351L\326\224\011\316M\204\020\337\236\332\235'F\243Q\025\337\256*\a\240N\315\316\235\337\333\357\334\023\361\373\003\000\3241\252|\337{!\204zH\004\020B4\030I)\232|{\311\2473sr\026\336w\357]\314\321\335\215\206\306:\204\202a\244\245\246a\316\2749H\262%\002\004\020\261\022\225\220\221G\205\034\335\335X\263v\203\332\332v\300\331\331\272\377\"\237\3173\220\234\226\231m0\033\346jd\355\374\336\256\216'\334nw\177\034P\234\b\304B\"9==]\326jm=\355\355M1\263\304\030\345c>\247Nx=Q\307\022 \200\037\b\201X\336\214\347S-\0009\024\b\274\322\343t\026\206\303a$%%!59\025f\263\025\303\303\303\270\373\336\a\325\254\214\014\224\227\027\263\334\234\034\250\212\202\266\2666\364\366\366\301d0\001B\210p0P\345v\367\005\001\350z\272\332\273\001t\000x?f\23066R\000\321\230\241\024\000q9\235\035\000:\361m\354\n|?\011\023\307\357\350\330\a/\017\352\001c\300kc\032'A;\277h\321C)\311\311'>\362\320\003L#\313hoo\307\203\217>\316\275\003\356=\341H\304\2517\030\212\322\323\323\022\3166_3|[n\216\225\211\033\323\330\234<\352\r\377\256\025\237(G|w8\366\253\320\211$\374P\272\032\a\376?\371[\301\2612\351\267\307\377_\223\377\001\2541@\321\311\031\340\231\000\000\000\000IEND\256B`\202", 7035); _img_gnome_system_run_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\025tEXtTitle\000Create a window\3116aI\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\b]IDATx\234\355\232Kl\234W\025\307\177\347~\317\231\371f23\216\035'M\233\224\246MK\033hI\241\242\205\212\302\202\005H\240J\025\022\213\212\207\220X\202\204D\221\220xUH\335\260c\305\002\244\"P\272a\001TB\002\205GK[\304\243E\201\364\221\306\320\332i\033\307v\306\231\3477\337w\017\213o\354\304\301\265g&vf\322\344?\272\366,\356\343\234\377=\367\234s\317\035QU\256f\230Q\0130j\\#`\324\002\214\032W=\001\356\250\005\030\0167\206\260\313?w.\361\215\3518\005\033\244K\011\335J\303\217\331\373L\033\372\367\354r\345D\0011\365\372]\023\"\311\264\261ZLEC\021<@\000U\245\353(\035\233R\307\2237\237|\362\330\231\207\036\322t\323Y\257\004\002fg\357\315U*\365\003 S\306\332\2225\024\304j\210\210\aj\000E\351\252\221\266Q\032VdY\272f!\337\321\227\331\365Bc\243\271\307\234\000\221F\343\216)k\355-.f\247BU\214\226T)\"\022\212\305\267=\002\214!V\325\266\nu\261R\023aI0g\3241'r\271\027\336\000\265\353\2550\326>\240\335\276\353\006\325\370&\327\310.\224I\320\011\253Z\026\241\244\252y\004\3371\373\362\326\316\266\254\246\035Qm\011r\016\341,B\224B\210\265\336\362\362m\371RIN\254\347\033\206\"\340\246OF\214\343xZ\257\277\247\026E\234\276x\235\201\b\330\377\311\307\356\365\204\037Z\364N\266\361\344\270\216%\ncN\316\225h\264]v5=v\226[Tw8T\212m\234B\212\357*\305\342\027\021)\222\313}*\n\032?\215\226;\257\321h\273\314\315O\274\017\344\265C\a\316\374:\364\255\032\223&\211\352A\270\271\006\257t\326\2545\210`Q\240?\233\232\232\334w\377=\357f\242R\334Z\255/@)\367\026\345\302\034\205\360\014\205`\201B\270@!X \347w\310\3711\201W\307\230\017\022\206\017\366F\030\252\225G(\204\237\243\332U\252eO^{\303\33173W\276\377\366\233\026\032\250\266\035\244\021\327\303w\371\221\274x\341Q\350\233\200\203\017>\366\336\270\303\276\217\335w\b\307\0138q\352\334\226+\016\340\273\035\366TO\241\272\000\272\210g\026\311\371\213\030Y\"\364\226\b<\037\225\273\361\202G\2700\217s\234\367\343\270\237'\340\027\030\263\314\236\311\"\263o\272\267*\372\027\220\272\032\226\255\312\324\342\342\201\271j\225\345\225q}\023\260\257\244\237ye\036\246\247*\2744[\343\\g\323\020;\024v8\rRm\2424\021\323\304u\033\004^\203B(\024\362w#\346\243\030s'\216s\313\377\215\365\203/\2238\207q\355\237\251r\234\305\332\234\213jYU\316\032(Z\253\2211Q\025\206 \300\3654\002\301\363\034\202\300#\014\327\215*\227\214j\251C!\257\024r)\371\260K\2458\305\201\275\217\342\2717l:V$\302\363\036\000\036\300\017\340\360\035]\324\036\375@\273\365\325y\253\2227F\362\276\253\025\220\377\256\034\203\201\243\200\357\271\204\201G\256\273\365^P\304\022\345!\027@\030(\241\237\342\232%\034\2472\344|\036V[\006\325PDB+\370&\265!\034v\201.\214\331e\310\210E\304b$]mV\027\250\325\276\202\352\206\011\335\272h\265\177O\247\363\315Y\021\361\000\027\254+Xgv\326_\335\370\276- \nX\3323\231\343\372\211\020\233&T\362[\317\2351\011\023\221O)\364(\346\\\212\241C\350\031\254=N\247\363\r\302\360\a}\213\234\246\317S\253}\235R\224jv]8\217\275{\317\177\357\233\200\303\373\365\370amp\370\306\022\207\256\013H\323\244\337\241\003 E\344,\"m\204\006\"\313\210\004\b\036\232>C7\3761\236\377\245MgQ{\212\270\3635\\I@%A%E4\005\223*\222\302\362\252\a\037x\033\2151\210l\336o88\200wQ\013\200\000\325\026i\372l_\263X=\201\332S$\211\203\240m\025:\252\3221J\254\216v\341_\253\2737$\001\333\306\000P\004\365\311\024\317\201\346\200.\252!\"\005\224\026\320A4\001Y!\300E\011\201\020\250`\325\243\336\230\3015\234\364OwNR~b\335\333\333P\026\220\021p9j\211\016\252\327!\022!2\207\220C5B\244\005\304(I\357N#d\252\370\250\206\300\004\326\302\231\2052~t\354E\016\274\275\260C\020\240\300\345\"\240\267\242\226\200\034\"\363\210\324\020m\0031\220\202\330^a8K\242\224\020d\232$\ri6\377\312fo\004CZ\000\227\225\200\014.\252\273\201ID\332@\013\241K\026\005\\\024\017\bQ\rQ\255\202\236\355s\326!p\371\216\300zpP-\000\205\r\372\364/\333\340N\220\354\025B\267\263*z\211\320\013\376n\206\301-@\201\221Z@\037\320\376\267g('\230q0\276\004\014\"\331\025\350\003\372@\346\245\373\352\372\216$@\351\337\n\206r\202\214$\014\016\200\001d\033\316\002\256\356(\320S\177\234-\000\355\333\b\206\273\r\216\273\017\030@\264+(\025\036\004\375\273\301\3413\3011&`\200(8d\"\244\366\262\324\003\206\3076Z\300\312\334\343n\001\375\342\035\031\006\031@\272wd&\bl_*\274r\272\306\231\200Ad\353\353aDD$\216\273=\262t5\017\030\327\326\223rEvO6x\313\333\320\002z\003}\300o6\032\241_\316\236\246\306\375\b(k\342`\001\350\212H\254\252\335\213\373nv\004V\236g\375\271\327gO\226\313e\352\365:Q\2418\266\004\030c\b\203\0343\0133\240\374\207\254Nn\200\336\373\302Z\022\336\226\200\336\356\033\262\232\263y\374\361\237\277\374\350\367\277\363\302SO\377\351\320\207\356\373\260\231\3329\275}Z\\\002\024e~\3764\317=\367lzf~\376'\234\327a\245\255\301\333\022\240\252*\")Y\331\325\001\314\314\2533\337\026\370\326K/\275x\347\366\210\2775\020\221n\263\325\374\345o\216\376\356\b\254\226\216WtY\333w3S\026\021C\317\017\220\021\346<\374\360g\357\230\234\336uPUE\255n\363\203y\3770\216\2616M\355\363\177\377\333\037\216\036}z\201L\341\204\214\204X\327Q\266\357_\213\367\216\204\323k\253Gc\253\204\337\"(\331k\351\312\377D7\311\331\307\374\347\362\333\217q\333\301\313\216k\004\214Z\200Q\343\032\001\243\026`\324\270F\300\250\005\0305\256z\002\376\ai\272X\263Y\226\361\332\000\000\000\000IEND\256B`\202", 2340); _img_gnome_window_new_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\ntEXtTitle\000Find\302\204H[\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\000\030tEXtCreation Time\0002006-04-21\242>4\367\000\000\031\002IDATx\234\345\233y\224\\\305\225\247\177\367F\274\334j\313\314\332\253$U\011\201\004B+ZX\215\331\232\201\352>\246Y\214\301\330\246\005\203g\006\273\317\000\215=\200\215\001\343\r\0173\330sf\360\302n\032\317\000n\220i[\264\317\261\2610\026\bIHBF*\201\026$U\225j\313\312\245*+\267\367\"\356\374\3612KE!\2016\246O\237\211\243PD\346{\365\336\273\337\273\367\306\215\033\221\264j\325*\374\377\\\370_\373\001\376\265\213\376\244o\320\325\325E\237\375\354g\033\254\262\323H\250\035\000\204\244\217\r\367>\377\374\363\211U\253V\311'\375\014\037U\350x\233\3003\317>\242\036\274\0345\200\247\236zd!\261\376\237\306\332s\346\316\235k\257\273\366\013\334\331\331\211\\>\207\354\370\030\262\343\243p=\027\"\202B\241\200B\241\210B\276\000\" \024\016#\034\016!\024\n\201\210\241\265F8\024F(\020A\300q\260\257g\037\236{\3769\273m[7\263\242?\233\222|\365\246\233nz\3738\313\016\340(\001<\376\324\343\3270\343\251\366\366v\365\205\317\177Q-\230\277\000\231\261\014\022#\203p=\027\243\231\014\006\006\006\321\337?(\331\2611\372\250k\325\324\326H[[+\265\266\266\242.\032\205V\n\325\221Z\204\202!l\333\336\215g\237{\326\364\366\364\032\001\256\277\351\206\233\376\317QKz\210rD\000\272\272\272\350\252\253\257\370\016\021\335u\336y\347\341\246\033\377\003\362\205q\014&\006\220\317\347\260g\317^\354\336\271[\212\305\"\211\n\026\306l\274?'\321\244\207P\321\245p\301C\270\b\000\032\371\240#\371\220F!\030\241t\274\226S\255d\213\241`($\263g\237D3gv\"\020\b\241:R\r\305\n\317\374\357g\360\312\037W\003\300\367~\375\302\257\277y<}\303a\003x\342\211'\002\320\362\002\254\\\372\305/|\221\273\272\376\006\203\303\375H\246\022\330\337\333\207\356\355\357I\241P\300\030\232\367\2461\255\247@\3211\"@1\021\b \000DD\"\200\210\210\025\021\277\357_?$\231\2328\367M\257\245\241\216p8\202\271sO\246i\323\247!\034\214\240*\\\205?\274\362\a\374\343/\177i\211\350e\207\235+V\254XQ:\036\000\016;\016\020\266\217:\354\\r\373\327n\347\005\013\026b_\357\373\310\214\246\261i\343f\014\r\016#\307\365\375\011Z\364n\211\252\362\001G\251jMZ\021\021\210\b\000&\013<\031\200\265~\277$\321l\277\324m\033\261\235\357\267\026v\317\331\264is[\177\177?N[r\032\2545\270\340\374\013\320\332\332\312\017\375\370\307\227\024\335\342\243\000\276t<\000\250\353\256\273\356cOz\364\361\237\177\035D\267\335r\313-\274h\341b\354\331\267\023\211\221\021\254}\343MIg\306\275\375\264`]\212g\355\325\201\220\255\011;\201PP\261V\314\212\211\024\201\374\226\210\011(\267\244\210\210 BDeDD\314D\226\034/#\315\203y\251I\350B_\313`\377~nh\254'\020\320\336\326\216\216\031\323\371\215\265o.X\377\326\372\374\262%\313\326|\342\000\036}\342\321\317\000x\364\352\253>K\177u\321\277\303\336\336\335\030\030\034\300\033k\326J\256\244\306zi\351Z\343\304\362uU\332\251\nj\245\0253SYp\305\304\314D\014b&0\023\021\303o\011\360\017\372\246A8`& \"\027\341B\3066\364El\242a\177\357\236@}}=9\001\215\216\351\235\b8\016\275\363\316\326\213\326oX\277i\371\322\345\357\036\013\200\217\364\001\217<\362H\023kz\377\364\323\227\207\377\341\326\257Q\317\376\275\030\036\036\304\237_[#Y\023\031\371\313\350I{\013\256[\023\320JqY\002\202o\363\223Kk}4Q[\035\316ADL\331\0042\331|d \221n\260\002\021\021\33740\321\027\000\020\000\221\200\223]\336\3243\2436Ph8\367\334s\251\246\246\026\221P\004?\375\371\317\344\3657\326\346K\\\234y\313M\267\014\035-\200\217\366\001,\367\206\"\341\300\315\377\361+4<2\200t&\211\365\0336J\311\352\374{\205\223w\216\244\323\263\256:\357DV\212Qqt\300$\361\011\370\247\325;\321\024\253\031s\264\312\213\b)\201X\0212\306\004\307\306\363\321+>}\"*\302\242,8\304\357\032k\361\302\253\273\342o\af\356\\\336\260\243j\375\206\r\341\263\317>\213\0243n\370\273\025\264\371\355-\001\031\263\367\002\270\371\270\003x\370\261\207O\322\320_\276\362\362+\025+\205Dr\030\333\336\331\206\\.o\366\323\222\r\000\207\225\"\276\364\314Y8\360\362?|\235\027^\335\005\305L\216f\236p|\"`\305D\004\272d\371\011\376\013\027\034\220\036\aF\207\027\376\264\013F\240v\025f\257\237C\335go\333\272M/\\\270\020\221P\025\256\274\374o\365\223\277x\372\313\017=\374\360C\267\336|\363\216\343\n\300\201z \026\217K\327\245]\030\032\036@&\223A\177\377\000Fh\366V\253j\013\221P\276\206\b`\002\345\363\005\030\343N\275\004\021 L\200\326L\216\243HD`\005d\255\210V\276#\030\037\367\003\245\262\346\223\210\377\221\310GA 0\021J\250\312\367\025\247\275\303\373\367-\232\331\331\011\2555.\274\340B\374v\325\313\222\030I<\000\340\212\343\006\340'\217\375\344d2t\371\265\327^\003\267\344\"3\226\306\216\367v\212Q\325c\243\2306P\027\321\316\350\270\"\236\360\337\300\276\3011\274\366\316\320T- \"\202RDJ1\211\b\221@\230\005e\000\364\364\357w\372\303#\201\312.\000W\2343\213b5!x^I\210\000VDJ\021%M\313@\033\215\214\276\373\336\216\232\345\313\243\004\r\\{\3155\372\241\037\377\217\313\177\364\243\037\235|\313-\267l?R\000\aM\210\220\241\313#\221\210\373\251\263\316E\"5\214d2\211T2E\011\236\325\035\b(\016\205\034\246\262+\257\324\324\270K[v\217` \355\216\r\244\275\261\301rmn\250\035\255\211\204=G)\232T9\022\011\272\r\361\232Lo\2624\332\233,ez\206\213\351\275C\305\314\333;G\240\265\206\326\n\376\200I b(\245IiE\275\245i\335\251\324\b%\223I\270\236\213\345\313\226\241\272\252\3125\314\227\037\251\360\300!4\200\231\257^\274h\241#\260\310\345\263\350\353\355\203\321u\251\"5gj#\216VL\244U9\302#\200yb\364\302\031\363f\016\020\221\200\204|\257N\002\001Y\b\213%0 F\3046\305k\013\365\321\352>kE\214\025\261\006\360\217\230X1X+\2528S\362\255\337\377\237\211\224R\225\277\247\224W\327\237H\014\213\210\300X\203eK\227\301\365\274\205\017=\364P\3331\003pa.SJ\331%\213\226\";>\206T*\005\021Ky\335:\034t\024\263\3774\244|\363\227\003o\212\201\262\303R\376)\320\312\027L)\305\254\024)\305\320Z\261\326\212\265\"RZ\221VLJ3i\377|\020\021\270\214\226\271\254a\304`\305`b(\255h\3246\014\011@\311d\022\"\026\363\347-\200\3438\326\210\\v\314\000`eA[[\233\004\002\016r\205q$G\222\020U\235\265*R\0148J13\024\021\210\375\020.\221\316\341\335}i\354\035\032C9\272\203RD\304~\024\310\332\207\241\230H\225\337\274R4\341\330\224\"hV\304\254H\225\315j\317\300(\366\re\351\255\035\011\240\014\242\254%\304Lp\021)Z\ngGF\022\260\"\b\0044\246O\237&\226\260\340H\001\034\304\aP[<\036\325V,\214gP\310\027Q\242\252\014)\202\243\024\021\243\034\310\373\016\377\356\307^\307\201h\236\300\345\340\236\017\204E$\020\300\237\b\222\025\001Yb\"\262\206AB\226\024\000\220\020H@Dx\3447\177\251\004CD\200PY\003\004\026\200\202\025\203q\033\316\344\363\371\352\312\240S__\257i\347\256#6\201\017\001`\305\035\321h\014\306\030\b\004%\327\025\303UE\315\212\231\001f&\006\313\264\226\372\321\316\266\206n\255\313\223\036\366\355\323\327\002\232\230\343\370#\034\227\355E\000Kb\001\337\271\211\205X&\003\177\364'a\271\350\354E[\255\265b\254\2101\"\326Z\361\214\225\304h\251\264\263\177<;\224*\224\022\231\222{\335b\333\326\0365\255\376\354B\020\213\307\241\024w\0343\000\261\266-\036\217\303u\375\351\266\347\226 \034)*f\200\024\230*S9&\366[LLe\310wX\000\300 !\256\034\020\b\201DH\250\342.\214\205\b\211\022\"\220\210\260\220\022\220?5`0\013D,zF\334\334\372\035\231\324\256\201\361<<\013O\004\260\036z\323\222^Xr\011D\020\000\365\2618\254\305\261k\200gL\274\256\256\026\236g\000?l%\253\203%\326\014\"\240d`\222\231R1\020 \256\257\011\005kB\b\020\303\aC\004!\202\"\224=c\331\211\201\250\234\n \013\bA\000Vd\254\b1@\0200\014\2540)\b29\267\264k(7\266i\347Xf0\355\226,<\0201D\003\332Zx\244\221)\252\034\244Pq\305\210F\353\340y^\374\230\0010\361x>\227\257\255Lp\224R\242 \232A\224\314z\305\325[SC\005O\014\261\206VD\261\032\307\231\321\020\216\264\307\003\341\326X \022\255r\202 \220\342\312\324\2662\244\201\374\251\036\310\n\201!V\000\312{\326\035\315\231R2\353\226\366\014\227\262\333\367g\263Ci\267\004+\260bA\212\300V\203\265\a\317c\200\001\r\213\352 \005\224r\204\230\011 \344r90\321\3701\003\000h`$\231\254eV\000\200@0\210\200[\014\026\b\362\373-\351\301\234+\236RL\014@\240\220\031\267\356\326b.\323\335_\312\020\374\270\277:\254tu\320\321\221\000\251p\220U$\244t\304!m\0046\235\363J\251\254)\rgM1\221q\335\274k\215\261\020\317\030\021ca\255\200\224\006\330\003{\0140\303\302\203X\r\255-<\217@\014\324WIU0\030\360\023*\002$S)\020\363\3001\003\260\342\365$\223\251\331\252\014 \024\014\222\343\271\241}#\245\361\321\202q\211\031\304\0046\245(\212\303\323-\023\011\000Ke}\217ulM\027\340f\212n\211@\360g\177,\266<\3331\002\261V`,\304X\022\245\024<\030\201(\020\030\265^\317BT\362\003$\000\004\343\252fo\201\235\264x\014\255\001\317\023\304#R\035\016G\330\367\201\202d2\005\317\230\236c\006\340\031\333\223L\245\014\021\0243#\020\014 \230/E\336\355\317\215\271\226D3HD\011\311x\210\274\\\363\347/:\031D@_\"\207W\337\356\205%\374\205\305\267jK\200py\246'\344K$\200\220\025!\021\220\2025\"\004\202f\013\313\026N>\337\372\351E\323P\033\011\240\177$\213\365\335\003(qd\250\204p\332\262\a\261\014\326\026\2155\034\215\204\303\276\337\201 \221H\030s<\000\210\305\373}}}V\004*\340\004QWW\213L\272'j=K\236\025\253\240Y\340{t\001p\361\3513A $\322y\274\372v/D\024,\023\204 L\014\362\011\b\210`\375;\b\201\205E\340s\261B\332\002V\201\255\037=|\346\234Y\250\257\011\301\212\305\212\355\203\276\306\011\001\242a\341\241Z)\335V\347\265\304c\361J\372\000{\366\365X\261\366\375#\005\360\241HP\200U\251T\332\331\261k\a\"\341*D\2431\020\021\237\034O\265Z\220\210@,H\340W@\b\236q\361no\022\000`\210\254\205\262$J,\261\bC,+XVbHYKZ,iX\305b\231\204\265\202&\rV\032\244}3\252\344\321\231\270\234l!\0203\230\000f\306Y\035\371iL\304\r\215M\000\004\357\357\335\203Db\3041\326\036\361*\317\207\000|\375\326[7(\245\206^\177\343u\204\203!8\216FuU\265\314\216g;\b\014\313\020\021_0\370s\001!b)\307\202 (\b\023\014+\261PbH\011\024[\020\0111\201\230\204\025\204\224\022V\032D\032\244\025X\0234\371\n\351\307\377\023\213\011\376H@\014\322~{Z\273{B]]TB\301\020 \202\265k\327Ak5t\3577\276\261\341\230\001\000\200\347z\317\255}s\203\313\254\020p\002\250o\210\321\214\232BGc\265\033\361\254\022+\020k\271\242}(\247\001E\000\261\371\341&;>\322$\271\341f\344\206\2331\236h6\245R\310\212\022a%\226\225X\321B^)\244\013\211\326@i\270\325)%Z\235B\262\325\361FZ'\aU\225\354\n\201\341\217v\032\3155^\344\244\206\322\314\326\226\026\022\353\337\364\2655\257\273\256g\236;R\341\201C\344\003\254\310\312\236\236\336\257\356\335\267\017\215\215\365\250oh\304\340\320\b]1gx\351\243[:\376d@bE&\344\367\023\232\345\250<\263\177AE\033\244\314\206b\035[\020\252\316A\340\aI\014Ha,F\243=\013QA\aL\002Z\306:9\301\314\014\266\006\327.\034[\032\016\006\251\275m:\214g\320\267\277\037\273v\277\357@x\345q\003\320\322\320\260z8\231\334\365\344\323O\237p\367\235wR\300\311bZ[+\213\355\2313+\226\337\262'[\233F9\017.\360m\365\214ym8s\376\264\312B\320D\226\364\372\357\375\013@J\240\324\a\262e\304\n \302\223w]\202I\031QLp\3653\204\023&@\3048\251!\037\235\333X\232s\342\211s\211\011p\255\301\223\277\370GQJ\355\236\336\322\274\372h\000\034\324\004V\254Xa\2141\267\257[\267\201\272\267oGMU-\242\261(B\341\b\256\235;p\276\303\226'f{\223Z?\247/\230\310\362\226\205\361\035\230\206.W&\rb\236\370\353\211\305\303\017^n\342\003\203\340\260\345\025\213\323\347WWU\243\245\271\005\236\347\341\275\035\273\260\372O\257\221\353\271\267\257X\261\302\034\r\200Cf\205\357\374\372\327W\376\340\301\a\337|\364\211'\227\376\267\a~\240\202\301\020:gL'o\327\356\206\033\027\364\236\373\213M\321\355\0000\234\316c0=\216l\316\233x\373\023-\227'H\304`]\326}\000\n\026\226\030\206\bk\273\a\016\230\300\224\266\344z\025\032\362\225e\211s\233\252m\303\374S\347\223X\013c,~\366\330cFi\265\341\336\273\356<*\365\377H\000\000\340z\336m\333\267\277\267\346\367\257\274\202\013\316?\017\326\032tt\314 \342\236\331\027\317\016'Wo\017'\277\366\360\253\361\262\324\250\244\210+>`b\261\200\011\254\264\357\310\000X\313\260\376\\\011?Y\271\371\300\252\210\000\a\226\205\3120\234p\362\257\347\231\246S\032\013\263\347\315]\210\252\252*\344r9\274\372\332\032l~{\213\022\246\333\216Vx\3400\226\307\277\363\375\357\377\230\265\363\225\a\177\360]5\353\204\231H\217\245\220\030\031\301\320\340 \326\017\3056\274\270\273s#\224\277\335\205\224\006k\362U\274<\254\221> <\225\2079\021\017\326\n\254\361 \236\300\023\277\265\342\301z\0021\036\026\000\037\273O\260\275\245\3456c\315\352o}\373~/=:\212\232\252Z464\240\275\275\035\2477\217.\271y\301\316\213\303\332\350\203^\211\001\020O\b\317\232\300\272\334g\002\210\017\376\004\014\204\265\321\267.\335w\361\031mcKf\2378\a\323\332\247#\237\317#\231L\342\216o\336\355YcV\237\330\321~Lo\0378\314\r\022w\337\375\337\353\002\325\356\306\216\351\323;\036|\340{\312\321\032\331\3748r\271q\364\364\364J\326Sc\277\337\327\362\372\272d\353\276\017h\200\322 \245\300\254\300\212'\034\237X\013k,\2545\020c\340\231\017j\300\351\215C3.\351\034:\2536 5\247\2362\217\352j\243(\026\013\310\214f\360\205\353oD.\237/4D\253\236p\002\3015\232\365\372\225+W\3568\332]#\207\275C\344\276\373~p\022\002x\263\245\271\251\346{\367\335\243\233\232\2331\236\033C\321-bhp\020\331\261,FJ\341\301\337\365\267\257\355N7\rN6\001\220\206\326\037\\2\362<\001\344\203&pj4\321|\311\364\375g\324\a\362\315\365\361\006\234\320y\002\002\201\020J\245\022\006\006\a\360\237\376\376V\233J\247y\361\202\271R,\024\314h&\243\225\243\240\225\3162a\223b\372\207\353\257\377\367\353?\021\000\000p\327\267\277\335\031t\002\277\r\005\002\263\357\375\326]z\301\374\371(\024\013p\275\022\n\371<\006\207\207\245\220\317Q\321:\271]c5\273\266f\032\366t\2175\r\b\263\200\016X\211\005\000\361@\326\322)5C-\363\352\022\235\263\352\262\263\202\344F\252\253kef\307L\252\251\251\2055\006\306xxgk7\356\270\373^/\227\033\037\n9\252\355\232\317]\201\272h\024UUU`\305\310\347r\330\266u\233\335\271swN\014]\270b\305\212u\237\b\000\000\270\343\216;\252\002\325\265\277$\340oV\\\177\035_q\331e\320Z\243P*\300\030\017\205B\036\331l\026\231\2611\361\334\022\001$%\321\205\242urYOg\001\240Z{\325Av#\001\362B\200P \030\222\372X\214b\261z\324\326\324B,\374}\205n\011/\375\346\267x\370\347\217Y\021\374\206`\356\r8\316\306\213/:\017\261X\024\332q\320\330\330\210\246\246F\304bQ\374\363K\277\261[\267n;\"\bG\265M\256\253\253\213\026-?\343N\305|O\274>\3167\376\335\227\364_]p>\254\265\376\246H\353\307$%\327E!\237\207\347y\360<\027ny\\\017\004\034\004\234\000\234@\020\325\325U\b\205\"\230H![@\304\342\217\257\276\206\237=\366\2707<\234\260\326\332\373\266lX\367}\000X~\326\231cKO[X\325\3211\003\236g\021\215\326!\024\n\243\255\275\005\315-\315xi\345?\333m\333\266\345H\354\005\207c\016\307\264S\364\316\373\357og\203\373\255\330\353g\316\354\260W_y\205>\353\214\323Q[S\003+\026\306\232r\346\317?\337O\013\220?*`bQ\315?.\300\330X\026o\256_\207g\177\365\242\267k\367\373LDO\031\222o=p\317=\275\225{~\363\376\373_\233}B\347\331K\227,\242T2\215\252\252jx\306CUU\025\346\315;\005M-\315X\371\342\257m\367\326\356\034\341\343!\034\227\275\302w\336s\317\251J\351\a\214\261\227\020\021\317=e\216\375\324\331g\251\323\227-CsS#\002\201\300\a\316\257Dz\256[\302\340p\002\353\326\277\205?\277\376\272\371\313;\333XD\254R\374\273R\261p\347\326\315\233\267N\275\327\302\245\313\177\330\320\030\373\373\013?}\216\223\034\031\301\300\340\020\352\352\242\210\305b\210\305b\230\267`.\232\233\232\360\342\013+m\367\266\3559Cr\376\215_\272\361\220\323\344\243\006\320\325\325\365\241\350}\366\354%\261`\r\376\232Y\177\206\200K\215\265a\"Buu\225\033\217\307\321\334\330\240\000`hx\304\214\214$\220\035\3179\"\002\305\234\027\310\277\030\343\2754\236*\275\374\376\373\357\244\246\334nb\210\233\273x\361%A'\370\322\031\313\027c\372\2646\364\365\365\"\231LO\000\210\307\3531o\376\\\264\2644\343\205\027V\332\356\255\335\037\011\341\210w\212N\025zJ\177\342\272\215\215\215\201\206\326\326E \335\312\n\255\004n\205H\213\177\224\006\254\230\001k\244\037\326\353\037\354\353\333\222J\245\246n|\234:\256O|\236\277\370\264\333\265\023\370\316\031\313\027cZ{+z{{\221Ng\020\215F\021\217\307\021\217\3071\177\301<457\342\205_\255\264\333\273\267\347\304\322y+V\254x\353\250\000L\021\374p \034\024\312!\372\037U\344P\375SO[\362\265\200\322\337>\343\364\305\230\326\336\206\236\236^\244\323\a4!\026\213c\301\242\371hjj\360!l\337>\016\313\347O\205\360\261\373\004\313\302\037M\345\217i+\375\203\325\251\327\230\\\001\200\206\373\373_\257on)\355\357\037:\277\256\266\032\323\247\265\243T*!\235NOl\260\032\315\214\241\266\266\026K\226-\246\241\301ag$9\362\371-o\277\365\273E\213N\353?,\000\223\204\307\224\366\243\372\037\365\335\241\340L\205A\000\324!\376\266Rhx\240\177M}S\263\273\277\177\350\274\272\272\032L\237\336\216b\301\207P)\231\314(j\353j\261t\331i488\354$F\222\327M\206p\244?\232:\\\325=\324\271S\315\240\"\270:D[\351O\255\272r\316\326\315\033\037,y\336}o\276\271\011\373\373\372\3219s\006\242\261:\244RI\244R\376\257R6o\334\202d\"\215+\257\372[\2363gv\225\005\375\341\271\347\236\013\001\207\a\340`vx\250\357\016\325\237\374]\245\332r\225\203\264S!M\326\226\251px\333\246\267\376k\261T\272\377\215u\233\321\323\323\207\2313;\021\215F\221N\247\221N\247\220J%\261i\323\333\030\033\313\342\374\013\317c\000\321\361\361\361S?\026\300\244\031\326\324\207?\330w\a\253\a\023pr5\000\274r[\251\a\0033\325\244>\344W\266n\336\370\303R\261x\377\332u\233\321\333\263\037\263N<\001\321h\024\251T\n\251T\n\351t\n\371\\\016\345\205\r\303\354\246?\026@\005B\031\304\301\004;\224\320\a\253fJ\337L\351O\256^\271V\316\367\016r\317\017\371\216w6o\374\241[,~g\315\233\033\321\323\323\207Y'\236\200X,\212\\n\034\035\0353`\214\305\323\277x\306\270\326{\350\372\353\277\274\0138\206\271@\271{\244\303\337\301>O=\366q\316v\362g\231\324V\340c\376\222e\377\305q\234\273?u\346RttNG0\030B(\030\304\2327\326\232\375\373\373\a\013\331\374\234\325\253WgW\255Zu\374~67E\270\303\021\372p\034\352\341\306\030\037\362M\363\227,\373\206\3438\337<\371\244\231\210\305\352\360\336\216\335\236\353z\003\254\354e\257\374\356\225\315\225\363\217\373\017''\227I`\246>\360\221\226\217\013\250\016z\355\371K\226\177\325q\324\365J\251F\245\370\371\2741\337}{\315\232\221\362a\301'\r\340\223(]]]\300\221\231\034\360\021#\331\2779\000\207*e0\300\021\204\331\307\315\a\374[.\377\027\000\237_F\364pD\362\000\000\000\000IEND\256B`\202", 6626); _img_gnome_zoom_best_fit_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\ntEXtTitle\000Find\302\204H[\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\000\030tEXtCreation Time\0002006-04-21\242>4\367\000\000\030\211IDATx\234\345\233y\220d\305}\347\277\277_\346{U\335\325GU\365\335=M\367p\314\300\300\334\a\210c\305\200,C\313!V\210S#\011\017,\336]Y\216\2200\366\202\004\002\201\314.\262\274\340\b\205\2545\b\214e\244\3450\214\2204,\021\022\032\203\006\206\271\a\317\005\3030GwO\237uuu\327\365^\346o\377xUM\323\3640'\353plFdg\326{\257\363\275\337\347\345\357\312\312\242\265k\327\342\377\347\302\377\326\017\360o]\364'}\203\236\236\036\272\376\372\353\033\255\262\263H\250\003\000\204\244\237\r\367=\367\334s\243k\327\256\225O\372\031>\256\320\351V\201\247\237~\272\256d\362W3\324\027I\361\245\326\230&\021\231\0214\021\371\254\324\210\030\373{\013\363\317\256\252zy\325\252Uc\247\365\201\216QN\013\200\236\236\036\272\356\306\353n\324\212n\265VV\002P\335\335\335\366\374\363\317W\r\215\215h\2105 \036\213\241\261\261\011\"@\"1\214\321d\022\311d\022\211\321\021\354\336\263\333\034\220\223h\322G\270\350QU\301GU\021\0004\362!G\362a\215B\250\232\322\361:N\265\221-\206C\341\260\314\231s\016\315\236\335\r\327\r\243\246\272\006\212\025\236\376\371\323x\365w\353\000\340\241_\274\360\213{N\247m8n\000O>\371\244\013-/\300\312\325_\371\362W\270\247\347\217042\200dj\024G\372\372\261g\357\273R(\024\220E\313\2414f\365\026(\232%\002\024\023\201\000\002@D$\002\210\210X\021\011\372\301\370a\311\324\306\271\277\263\216\206\273\252\252\2521o\336\2714\253s\026\252B\325\210TE\360\333W\177\213\177\372\331\317,\021\275\354\260s\355\352\325\253K\247\003\300q\307\001\302\366q\207\235\253\356\374\213;y\301\202\2058\334w\000\231\2614\266m\335\216\341\241\021\344\270a`\224\026\275S\242H\336u\224\252\321\244\025\021\201\210\000`\252\300S\001X\033\364K\022\035\037\220\372\335\011\333}\240\255\360\376\334m\333\266\267\017\014\014`\311\322%\260\326\340\212\225W\240\255\255\215\037\371\333\277\275\252\350\025\037\a\360\325\323\001@\255Z\265\352\230\027=\376\304\337\377%\210\356\370\3067\276\301\213\026.\306\301\303\357a4\221\300\2067\337\222tf\302?B\0136\246\370\254C\332\r\333\332*\307\r\207\024k\305\254\230H\021(h\211\230\200rK\212\210\b\"DTFD\304Ld\311\3613\3222\224\227\332Q]\350o\035\0328\302\215M\r\004\002:\332;\320uF'\277\271\341\255\005\233\266l\312/_\272|\375'\016\340\361'\037\377<\200\307o\270\356z\372\203\317\374!\016\365\275\217\301\241A\274\271~\203\344J*\333G\3136\030'\226\257\217h'\022\322J+f\246\262\340\212\211\231\211\030\304L`&\"F\320\022\020\234\014T\203\360\201\232\200\210\232\031\213\217\246\263\361\221t\266!\231\311\306\023\231lC\"\223\215'2cqG3\273\212\311\321D\314\200RDSA\260R\362~\351\274mE\253\363\2336o\226b\251\200b\251\200[\377x5UWW\273\216\347\334\177*\000\216\252\002?\372\311\217\316a\360\2237\337x\223>\347\2349\350\037\354\305\316\267w\"\231\312\230~Z\374\026\353\210_\027q\034G3k\016\336\266\322\314\212\231\264bR\016\223b\346M\273\016\314M\244'\352\223\231\361h\"3\021Mf&\242\251\261\211h23\021Kg'b]\355M\003\b\024\001\304\004\"\020\aZ\020X\006\020\011\261\214\371u\303u20\253T(pSs\023Bn\030\341p\210\267\355\330\261\344\215M\233\177\376\251\345\313\223'\003\340\250^\300\201z8\026\217K\317\325=\030\036\031D&\223\301\300\300 \0224g\227Uu\205\372\212\360Z\0211\221\346@\223\031\b\376\020\bBBD\370\233\257]F\315\361\032\340\003\257\207\241\3048\376\374G\257\301\321\212\225X\361I\300\226\330\003\213\220\200\030\200%\210\261\200\005J\022\311\367\027g\355\344#\207\027\315\356\356\206\326\032W^q%~\275\366e\031M\214>\014\340\332\223\0010\243\n\374\335O\376\356\\c\344\0137\337|\223\366J\0362\3314\366\275\373\236\030U36\306\263\006k\253\265\016\271\212\035G\0213\221\023\35049\232X\273\212\035\255\330Q\nZ3\aA\000\301X\203B!O\205B\236\2541\b\214\037\240\025\223\"EJ+\322Z\221\253\231\034]\236Q\314\304JAi&\245\210\222\266u\320Pd\354\235w\367\2111\006\000p\363M7i\337\267_x\364\321G\317=m\000\310\320\027\252\253\253\275\313.\376\017\030M\215 \231L\"\225L\321(\237\265\307u\025\207\303\0163+\322\212\310u\0249Z\221R\314\216V\201\321\013\204Q\256\243\250\"\250X\011\022#\317\203\025[6\374\004\255\025kW\223V\014\245\230\224\016<\207R\nNYpf\206R\232\224V\324W\232\265'\225JP2\231\204\347{X\261|9j\"\021\3170\177\341\264\001`\346\033\026/Z\350\b,r\371q\364\367\365\303\350\372T\221[25\325\256R\034\274qV\301\014P\212Yk&\255\024iV\254\025\223\326D\254\312N-P\210\311\260\210@e\227\aR\232\240\024\310\321Jif*\317\034b\035\b\256\3133\203\031`b\214\331x\252H\265\251\276\276>X1 \",[\266\304q\025\337pZ\000\374\370\307?n\367\215Y\270\374\302\025\310\345&\340\373>\222\311\264\214\243i\320q\231\302\216RZ1q\305\245\261\"\305\034TM\254\035&VL\252|\274\022\a3\001\314e\n\\\226\036\004\305\212\0241\261b\260V\304\212H)\005M\001PU\231\031J\221\326L\212\211R~\375\300\350\350\210\210\b\2145X\276l9<\337_\370\310#\217\264\2372\000\017\346\032\245\224]\272h\031\306'\262H\245R\020\261\224\327m#!G1\a\257\234431\223\260\"\"\305`\305`b0\021Tp\011\264\342\251y\000\200r0T\266\361D\3015*\320yh\305P\254\210\025\023k\005.\333\001\305\037\214\257\264\2421\3338,\000%\223I\210X\314\277`\001\034\307\261F\344\232\023\005\360Q/`eA{{\273\270\256\203\\a\002\311D\022\242j\306\255\252.\272\216r\230\031\212*.\213\351\360P2\252\210\300\212\240\210\270\374\266I&\247ypm |\300{\212\036H\337P\"j-`D\254\265\"~9I\020+bD\244\271!\226dX(a\202\n\216{\246\272h\251j<\221\030\255inn\201\353:\350\354\234%\357\276\267\177\301\251\003\000\265\307\343Qm\305\302\370\006\205|\021%\212dH\021\034\245\210\030\240\212ab\246\355{{;\250\362\202Q\326\366\031\n\021\004SN\225\355\000m\337{\270\023\002\b\202$I\000\004\237\203?\355M\r)_\b\002+\002\013@\301\212\301\204\255\312\344\363\371\232\312\210\r\r\r\232\336\333\177\302*\360\021\000\254\270+\032\215\301\030\003\201\240\344yb8R\324\254\230\031`fb\260\004\257\026B\000\375\315\237^\206\346X\r\002\b\020\240\202#\020\014\000\214\361\2119\220\215\230\320\034\257\301O\357\271z\362|%@\250\020\030J\215\343\216\037\276\006f\002\213 9\356\227\336\033\230\030\037N\025J\243\231\222\267j\261m\357\210\232\266 \273\020\304\342q(\305]\247\014@\254m\217\307\343\360\274 \335\366\275\022\204\253\213\212\031 \005\246J*\027\030\302\340\277\b\326Z\030\343U\344\006\360\341\251`Qa\0062\276/\306\370\025:\024d\310\025\000\002\255\335 8\004\241?\345\3456\355\313\244\366\017N\344\341[\370\"\200\365\321\227\226\364\302\222G\345\251\205\206X\034\326\342\324g\200oL\274\276\276\016\276o\000\001\254\bY\035*\261f\020\001%\003\223\314\224\212\256K\334P\033\016\001\b\254:\004\326\232)#M.\005L\026f\256\254\a\004S\241\"tY\a\312:\"\306Z)\372bR\343%\377\2377$\216X\370 b\210\006\264\265\360I#ST9H!\270\203\000\321h=|\337\217\2372\000&\236\310\347\362uJ1@\200RJ\024D3\210\222\343~q\335\256\324p\301\027C\254\241\025\221\032\367\316\313\027\205\275jacI).'\367\223J\360\341BT\026T \240\362\342\210%k\254\210g\305x\276\030\3071R(\011\214\005H\021\330j\260\366\341\373\0140\240aQ\023\"W)G\210\231\000B.\227\003\023M\2342\000\200\006\023\311d\035\263\002\000\270\241\020\\\257\030*\020\3447o\247\207r\236\370J11\000\201\202\265\220\222\261\246h\330\020\205<#AN\317\223\251}\3400D,\225J%X\021\253\264+\000[c%\260}\004\200\001\305\000\353\362\264\240\"\b\000\263\206\205\017\261\032Z[\370~\020G4D$\022\n\271\301\202\212\000\311T\n\304\336\335\267\037\353^{\235<\337\273s\365\352\325f&Y\216U\216\272,~\331%\227\354}c\303\206\253\017\036:\324\326\363\207W\261o|TW\205\2510\236\254\356\252/\324n\035i8HL V E RP\345\226\313-i\002\nc5\aGK\331\035\207\263\331\035\207\306\263;\016e\263;\016\215e\017\216\224\262\320UY\252o\031\bl\204\000B \022\330\362g\221\300\307\003\204\257/\033\372tw\314\357\\\274`1)\245\340y>\036\372\353\037\230\321Db\323\003\367|\373\316\223\021\0368\306\227\243\236\357\337\261w\357\273\353\177\363\352\253\270b\345\345\260\326\240\253\353\014\"\356\235\363\3713\a\022\277<\334\376\257\2017\a\002Ue\200+n\253\254\363g,\331R\321e\016\362\004X+\260\326B\304\302\372\006\226-\3302,[\3000\230\r\254\011\246\247e\340\213sF\346\237\327T\230s\301\274\205\210D\"\310\345r\370\227\327\327c\373\216\267\2250\335q\262\302\003\307\370n\360\323\227^\332\373\372\357_\217o\334\262m\331\262%\213\271\255\245\rB\002V\n\215j\2443\026\362do::\000VP\314 \236\362\366\025\005j\300\004Vj\322\232\023q\3319\020 \026d\011\226,`\011 \033\314\002\021\330 \322\300\227\316\035\\rY\347\330\205g\315>\am\255m\310\347sxo\377\001\334\375\235\373\2155\362\303\207\356\273\367\261S\001p\314}\202\035\255\255w\030k\326}\347\201\a\375\364\330\030j#uhjlDGG\a.l\031[\372\265\005\357}\266J\033=\343H\214\300\210\361\024\177\256\247\2725\236\371\011\030\250\322F\177s\331\341\317^\324\236]:\347\354\271\230\325\321\211|>\217d2\211\273\356\271\327\267\306\254;\273\253\343\224\336>p\234\033$\356\275\367\177\326\2735\336\326\256\316\316\256\037<\374\220r\264\306x~\002\271\334\004z{\373d\334W\331\337\034n}cc\262\355p\020\264\004\356L+\rR\n\314\252l\375\003i\305ZXca\255\201\030\003\337\370\020_`\305\207\365\005\0276\r\237qU\367\360\305u\256\324\236\177\336\005T_\027E\261X@f,\203/\337r\033r\371|\2411\032y\322qC\3535\353Mk\326\254\331w\262\273F\216{\207\310w\277\373?\316\201\213\267Z[\232k\037\372\356}\272\271\245\005\023\271,\212^\021\303CC\030\317\216#Q\252\032ze\240c\303\236t\363\020\225]\031\225]\233\326\037\016\201}_\000\011\004\367\313\355\371\321\321\226\253:\217\\\324\340\346[\032\342\2158\263\373L\270n\030\245R\011\203C\203\370\257\177\366M\233J\247y\361\202yR,\024\314X&\243\225\243\240\225\036g\3026\305\364\347\267\334\362\2376}\"\000\000\340[\017<\320\035r\334_\207]w\316\375\337\371\226^0\177>\n\305\002<\277\204B>\217\241\221\021)\344sT\264Nn\177\266v\377\256L\343\301=\331\346Aa\026\320\aZb\001@|\220\265t^\355p\353\005\365\243\335g\325\217\237\025\"\257\272\246\246Nfw\315\246\332\332:Xc`\214\217\235\273\366\340\256{\357\367s\271\211\341\260\243\332o\272\361Z\324G\243\210D\"`\305\310\347r\330\275k\267}\357\275\367sb\350\312\325\253Wo\374D\000\000\300]w\335\025qk\352~F\300\037\255\276e\025_{\3155\320Z\243P*\300\030\037\205B\036\343\343\343\310d\263\342{%\002HJ\242\013E\353\344\306}=\016\0005\332\257\011\261W\355\222\037\006\204\334PX\032b1\212\305\032PW[\a\261\b\366\025z%\274\364\253_\343G\177\377\023+\202_\021\314\375\256\343l\375\354g.G,\026\205v\034455\241\271\271\011\261X\024\277|\351Wv\327\256\335'\004\341\244\266\311\365\364\364\320\242\025\027\335\255\230\357\2137\304\371\266?\376\252\376\203+V\302Z\033l\212,\257\r\226<\017\205|\036\276\357\303\367=x\236\017\000p]\a\256\343\302qC\250\251\211 \034\256\016\222\304 \033\206\210\305\357\376\345u\374\257\237<\341\217\214\214Zk\355w\337\336\274\361\277\003\300\212\213?\225]\266da\244\253\353\014\370\276E4Z\217p\270\n\355\035\255him\301Kk~iw\357\336\235#\261W\034\217:\234\322N\321\273\037|\260\203\r\036\264bo\231=\273\313\336\360\305k\365\305\027]\210\272\332ZX\2610\326\0049~e\025D\202\225a./\232\004\013$<\271~\236\315\216\343\255M\033\361\314\363/\372\373\337?\300D\364\224!\371\316\303\367\335\327W\271\347=\017>\370\372\2343\273/Y\266t\021\245\222iD\"5\360\215\217H$\202\013.8\017\315\255-X\363\342/\354\236]{r\204cC8-{\205\357\276\357\276\363\225\322\017\033c\257\"\"\236w\336\\{\331%\027\253\013\227/GKs\023\\\327\375\320\365\2255p\317+ahd\024\0337m\301\357\337x\303\374\353\316\335,\"V)~\245T,\334\275k\373\366]\323\357\265p\331\212\35776\305\376\354\312O_\352$\023\011\014\016\r\243\276>\212X,\206X,\206\013\026\314CKs3^|a\215\335\263{o\316\220\254\274\355\253\267\0355M>i\000===\025\263>\331\316\231\2634\026\252\305\347\230\365\347\011\270\332X[ED\250\251\211x\361x\034-M\215\n\000\206G\022&\221\030\305\370D\316\021\021(\346\274@\376\2171\376K\023\251\322\313\a\016\354LM\273\335\244\213\233\267x\361U!'\364\322E+\026\243sV;\372\373\373\220L\246'\001\304\343\r\270`\376<\264\266\266\340\205\027\326\330=\273\366|,\204\023\336):]\350i\375\311q\233\232\232\334\306\266\266E \335\306\nm\004n\203Hkp\226\006\255\230Akd\000\326\037\030\352\357\177;\225JM\337\3708\335\257O~\236\277x\311\235\332q\277w\321\212\305\230\325\321\206\276\276>\244\323\031D\243Q\304\343q\304\343q\314_p\001\232[\232\360\302\363k\354\336={sb\351\362\325\253Wo9)\000\323\004?\036\b3B9J\377\343\212\034\255\177\376\222\245\177\341*\375\300E\027.\306\254\216v\364\366\366!\235\376`&\304bq,X4\037\315\315\215\001\204\275{'`y\345t\b\307\334'X\026\376d*\037\243\255\364g\252\323\307\230Z\001\200F\006\006\336hhi-\035\031\030^Y_W\203\316Y\035(\225JH\247\323\223+\313c\231,\352\352\352\260t\371b\032\036\032q\022\311\304\227\336\336\261\345\225E\213\226\014\034\027\200)\302cZ\373q\375\217;v48\323a\020\000u\224\377\255\024\032\031\034X\337\320\334\342\035\031\030\276\274\276\276\026\235\235\035(\026\002\b\225\222\311\214\241\256\276\016\313\226/\241\241\241\021g4\221\\5\025\302\211\376h\352x\247\356\321\256\235\256\006\025\301\325Q\332J\177z\325\225kvm\337\372\203\222\357\177\367\255\267\266\341H\377\000\272g\237\201h\254\036\251T\022\251T\360\253\224\355[\337Fr4\215/^\367\037y\356\3349\021\013\372\355\263\317>\033\006\216\017\300Lzx\264cG\353O=V\251\266\\e\206v:\244\251\263e:\034\336\275m\313_\027K\245\a\337\334\270\035\275\275\375\230=\273\033\321h\024\351t\032\351t\n\251T\022\333\266\355@6;\216\225W^\316\000\242\023\023\023\347\037\023\300\224\014k\372\303\317tl\246:\223\200S\253\001\340\227\333J\235\011\314t\225\372\210]\331\265}\353\367K\305\342\203\0336nG_\357\021\234u\366\231\210F\243H\245RH\245RH\247S\310\347r(\177\261a\230\275\3641\001T \224A\314$\330\321\204\236\251\232i}3\255?\265\372\345Z\271\336\237\341\236\037\261\035;\267o\375\276W,~o\375[[\321\333\333\217\263\316>\023\261X\024\271\334\004\272\272\316\2001\026?\375\307\247\215g\375Gn\271\345O\366\003\247\220\013\224\273'\352\376f\372<\375\334\261\214\355\324\3172\245\235\374Bv\376\322\345\377\315q\234{/\373\3242tuw\"\024\n#\034\na\375\233\033\314\221#\003C\205\361\374\334u\353\326\215\257]\273\366\364\375ln\232p\307#\364\361\030\324\343\2151>b\233\346/]\376m\307q\3569\367\234\331\210\305\352\361\356\276\367}\317\363\aY\331k^}\345\325\355\225\353O\373\017'\247\226)`\246?\360\211\226c\005T3\216=\177\351\212\257;\216\272E)\325\244\024?\2277\346\257v\254_\237(\237\026|\322\000>\211\322\323\323\003\234\230\312\001\037\343\311\376\335\0018Z)\203\001N \314>m6\340\337s\371\277X^\226\233\216\306\270w\000\000\000\000IEND\256B`\202", 6505); _img_gnome_zoom_in_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\ntEXtTitle\000Find\302\204H[\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\000\030tEXtCreation Time\0002006-04-21\242>4\367\000\000\030\363IDATx\234\345\233y\224\\\325}\347\277\277\337\275\357UuUw\327\322{\267\244n!$\201@\373j\2261\213\343@;\307\014\230\325\262\215\005!3\2238g\214\207d\300f\307\203\003\341\004r\216\217\343\204-\304\301\036\300\003\202\330\">\307\006<\262@h\207A\013hWw\253\367Z\272\272k{\357\336\337\374\361\252\205\334\264\320\312\344\344\314\355s\373\336\367\352\325{\367\367y\367\267\334\245h\315\2325\370\3779\361\277u\003\376\255\223\376\254\037\320\331\331I\327]w]\275Uv\n\011\265\001\200\220\364\260\341\356\227^zih\315\2325\362Y\267\341\323\022\235i\025x\376\371\347k\313\246p%C}\205\024_d\215i\020\221IA\023\221\317J\r\212\261\277\2630\377\313UU\257\257\\\271r\344\2146\3508\351\214\000\350\354\354\244ko\270\366\006\255\350\026k\345R\000\252\243\243\303\236w\336y\252\256\276\036u\211:$\023\011\324\3277@\004\030\036\036\300P*\205T*\205\341\241A\354\330\271\303\0348p\220E`\230\350M#\3763?\177\341\225\027\376_\364\216\323\006\360\314s\317\\\251\024?&\326\236;{\3669X\272d\011-_\3669\304b\265(\225\213\360<\017\276\361`\214\201\347\373\000\004Zi0+h\245\240\224\003Gkd\263\031l\334\274\031[6o\226]\037~\bf\332i}\377\216[n\371\223\327\317\214\250\223\247S\006\360\334sO\316'\326?4\326^4g\316\034\273\362\246\257qGG\a\362\205\023\000N8\016\020\266O9\354\\q\307_\334\301\363\346\315\307\241\356\375\310\216d\260u\3136\014\364\017\"\317u\275C\264\340\3032E\013\256\303\\\255Y+&\"\020\215\313j\001@\004V\000+\"\020\300X\021+\"e\211\217\366Jl\307\260\355\330\337R\3347{\353\326m\255\275\275\275X\264x\021\2545\270\354\322\313\320\322\322\302\217\377\355\337^Q\362JO\001\370\306\231\000\240V\256\\y\334\213\236z\346\037\376\022D\337\371\366\267\277\315\013\346/\304\201C{04<\214\365\357\274+\231\354\230\177\230\346mH\363\214\203\332\r\333\332\210\343\204\035\245\264bVL\304L\244\230\210\0251\023\202:\203\230\210\b\0001\201@\000\201\230\211,9~V\232\372\013R3\244\213=\315\375\275\207\271\276\241\216@@[k\033\332\247M\345w\326\277;o\343\346\215\205\245\213\227\256\373\314\001<\365\354S_\006\360\324\365\327^G\177\360\205?\304\301\356}\350\353\357\303;\353\326K\276\254r\335\264d\275q\342\371X\324u\"a\245\365\021\241\231Y\201\230\030\304\343\202\aB\253\212\364\024\034\0231\002\030\000(\3504\344\241\252\230\265\365=\021;T\177\270\373\200[WWG\216\253\321>\265\003\256\343\320\a\037l\377\302\306M\033\267.[\262\354\303\323\001\360\251c\201'\237|\262\221\200\237\255X\261\034\327]{\003\272{\017!\223Nc\363\206\315R@\365p\227Z\361\016\207\252\275D\265\353\206\\VZ\021iE\354hf\307!v\024\263\243\210\265\"V\314\354(\"\255\230\231\20328\016z\210RDJ\005\026CQ\000\311\247H\371\243\362\202w\362&:\264i\343&\311\217\345\221/\346\361\245\316/\341\302\013.\000\021\377\354\211'\237h\374\314\000\200\345\376p$\354\376\351\177\3763\032\034\356C&\233\302\306M[\244lu\241\227\027l\r\271\016\307\243\216\353hf\255*\002k\305\216b\326\314\344h&\327a.\227\313\241\236\276\201dw\337`\335\341\376\301do\377`]\357\300@\362p\337@\322\321\314\216bv\025\02330\021\004+%\373\312\347n-Y]\330\270i\223\224\312E\224\312E\334\362\315U\024\211D\\\307s\356?\035\000\307T\201\037=\375\243\231\014~\366\246\033n\3243g\316BO_\027>x\377\003\244\322Y\323C\013\337e'\352\307\"\216\343hb\315\034\274I\305\254\024\223b\016\352\314 f\332\276k_\363\256\335\a[\373\006\206\343\375\003\303\361\201\301T\274\177p818\224\212\2373sz/1U\214\002\201\002\373\200\212\211\000\201H\210e\304\257\035\250\225\336)\345b\221\033\032\033\020r\303\b\207C\274\365\275\367\026\275\275q\323\317>\267ti\352T\000\034\323\0138P\217$\222I\351\274\262\023\003\203}\310f\263\350\355\355\3030\315\332nTM!\021\251\274y\315\304\304\244T\320\344\300\360#Pj\011\204\030\030J\307\376\352\277^As\317n\201\004\236\020\275\203Y\374\361\003/\223\243\025+\261\342\031\021\002\261gY\204\004\304\000,A\214\005,P\226h\241\2474\345\003>|h\301\364\216\016h\255q\371e\227\343\227k^\227\241\341\241G\000\\s*\000&U\201\277{\372\357\3161F\256\276\351\246\033\265W\366\220\315e\260\373\243=bT\365\310\bO\351\253\2158\216\343*v\034\315\212\231\224&r4\223\243\025\353\240$Gi\326\232\351PO\177\314\363<\367\334\263\232\340\373\036\212\305i\004\255\314kmm\025\327u\220/\216!5\234\202\250\352Q\253\"%\327\011\342[\005\0021@\025\003\026\370\201 \322\003\200\335]\303\324?\234\243\301\314\030\245F\212\000\005\023\037D\252\022\3661\020\370\272q!9\360$\212\210\031\212\21143\261b\220b0\023\024q\000\206\011\036\"%KU\243\303\303C\260\"p]\215\251S\247\210%\314;Y\000\223\330\000jM&\343\332\212\205\361\r\212\205\022\312\024\315\222\"8J\021\001\2504\204\202FQ\360\346)\350\326 \242G\237[\373{7|\352\336k\244>^E\314\020TF\205\343#\000\305\n\004A\240\021\002\001\223\001\211\205\220\"\001\201\340\013A`E`\001(X1\030\263U\331B\241P=>\331PWW\247i\317\336\326\323\006\300\212\333\343\361\004\2141\020\b\312\236'\206\243%\2472\232aU\011X\002C&\343!K\000\201\360g\337\374\362N\242\340%\003D?|\372\325\331\201\311\343\300\006\000\202\243\202\177R\225\270\001,$\002f!\300\002\004\021\243\000\266`\021\244F\375\362\236\336\261\321\201t\261<\224-{+\027\332\326\266\270i!\"\006\004\211d\022Jq\373i\003\020k[\223\311$\237\a\023\215\2356\000\200\372\206S\251Zf\005\000pC!\270^)T\004\341\327\357g\006\362\236\370J11\000\201Bf\314\372#\245\374\310\216\336\362\b\001\320\232\251\272J\253\352\220\326\221\020\351\354\230\337\236/[*\372\226|\237`E,\031+#\005c\373\322%\371\233\177\035\334e,\3047F\304XX+ \245\001\366\301>\003\314\260\360!VCk\013\337\0174\\\036\033)Z\2572\235\003\202\"!\210e\006\201\203\256\255\230|a\311\024\305\317\226<\217@(\224\215_\362\200BY`L\245\327+\300\330@\005\224R\360a\004\242@`0[\260\265\260V\303\352\240\016\322\260\354C|\206\326\200\357\013\222\021\251\256\252\212p`\003\005\251T\032\2761]\247\r\3007\266+\225N\033\"(f\206\033r\021*\224#\037\366\346s\236%\321\014\022Q\022\330j\"X\222 \252Q\200\205\260\006X\b\002\206\255tuA\020\371p\345\200\030R\231\376\201%\026\002A\263\205e\013\3533\240\030\314>\3403,\003\014\013\330\n\004\313`m\321P\303\361HU\025\210\b\002\301\320\320\2201\247\000\340\023\201\220X\354\357\351\351\261\"\200\353\204\020\213\325\"\204\\\334\372\226|+V\240D\000X\220XKV\230\304B\213\200@\254 \242`\211a\b\002b\201P\305\347\a\001\0201K\200\"0~B,\244\011\244\024\2304\264V`&\020i\260&\004SjA0\304\254AL\250v\225n\215\371\315\311D\2622\270\006\016\034\352\262b\355\376\323\a\000\254I\2473\316\356\275\273\021\251\212\"\036O\200\210\370\234d\272\305\202*\263\273$\000\2110\301\212\022K\020K\312\032!k\210\254\205\262$J,\261\004~\017\020\n\2763\356\021\306\247\310Y+h\322`\245A:\b X\005\302\177\002B%\336\270\240\2750\205\211\270\276\241\021\200`\377\301\003\030\032\032v\214\265'\275\312\363\011\000\177y\373\355\233\224R\003o\277\3636\252Ba8\216Fu\264Zf%G\333\011\014\313\020\021\026a\222q\341E\224X\000\302\014\202\2020\301\260\022\033\364\026\001H\230\b\201\375\bl\b\306\343\006\322 \255\300\232\002\020Z\005q\003M\002\241R.j\363\316\212\305\342\022\016\205\001\021\254_\277\001Z\253\201\373\277\367\275M\247\r\000\000|\317\177q\375\273\233^\031;\022+\034\225\264&\260\342\n\210@@\256@\342 z\014 0\001\244\321T\343Gf\326\227\247\26747\a\017\026`\355\272\267=\3177/\236\254\360\307\004`EVwuu;\a\017\035B\264\252\032u\365\rp\\\207\256\231=\270\204\001\030\220\030+\"`\261`\361\001\2010,\023\214\004z*P\260\242\002\r\255\030\274\243\377\216\234\243\312J\261\016\004\034\207\000\016\346\313\231+Md\006\003\270i~nIU(Dm\255Sa\255E\317\341^\354\335\267\337\021\203\325\247\002`\322\011\221\346\372\372\267\006S\251\275\377\370\223\237\234u\317]w\221\353\214bJk\013\213\355\232=#Qx\377\300hm\206\024\301\b\211%\300\021\005OAH\024\264\002|\031\017\177\003}\377\352]/L\372p\002\2015\301Z\206XT\374\274\006\264\017\355k\370:\360\004\254\003\3570\263\276\020\237\323P\236}\366\331s\210\011\360\254\301?\376\323?\213Rj\337\324\346\246\267\316\030\200U\253V\231\037<\372\350\035\0336lze\347\256]\2301c:|\337\307\340\3600n\232\323w\351c\233\252_\0258\226\0000\030B\000\011\a\306N\002=W\244\0000\"\323\027l\016FFtD\031\244\362_\304\006\272\316\026>\0001\000\263\2015\014a\0036\014\013\003\006C\261\307\253\026f.\255\216V\243\271\251\031^\271\204\217v\357\305[\377{-\201\344\216U\253V\231S\001p\314i\361\213/\274p\327\333\353\327_y\340\340\301\226\316?\274\202}\343#R\025\246\342h*\322\036+\326l\031\254;\020Lg+\220\"\020)\250J\311\225\2224\301\255m\312\205b\r\271P\274>\347\306\032sn\254!\347\306\352rNMCNW7\344\300\202\nA\004cK\201\255\034\213\004>\036 |kI\377\347;\022\376\324\205\363\026\222R\n\236\347\343\341\277~\314\014\r\017o|\360\356\357\335q*\302\003\307Y\030\361|\377;\273v}\244~\375\306\033\250\255\216!\022\215\242\275}\032\315J\346g}\371\254\336\271\bT5\230\005\342\312\355x\334mU\014\232\246`RCihGA;*py\212\217rq\343z_\351S\\\271g\345\226_9gp\356\271\r\305Y\347\317\231G\321h\024\345r\031\277]\273\016\333\336{_\225\215\377\235S\025\0368\316\332\340\347/\272\250k\355\357\326&7l\336\272d\311\242\205\334\322\324\002!\001+\205z585\021\362dW&\336\013V\b\026A\216z\373\212\240\250\342\322\324\307\301M0#\024\274U\210\005Y\202%\013X\002\310\006\275\240\262\202L\"\370\3529}\213.\236:\262|\306\364\231hinA\241\220\307\236\275\373q\327\275\367\033k\344\207\017\337w\317\223\247\003\340\270\373\004\333\232\233\277c\254y\353\336\a\037\3623##\250\211\326\242\241\276\036mmmX\3364\262\370O\347\355\371b\2256z\322;1\000\342\337\217\354\364\321n\215'o\001\003U\332\350\333\227\034\372\342\212\326\334\342Yg\317\306\224\266\251(\024\nH\245R\270\363\356{|k\314[g\267\267\235\326\333\aNp\203\304=\367\374M\314\255\366\266\264O\235\332\376\330#\017+Gk\214\026\306\220\317\217\241\253\253[F}\225\373\365\241\346\2677\244Z\016\005\335:pgZ\351 \304e\025\370\372\212K\023ka\215\205\265\006b\014|\343C|\201\025\037\326\027,o\030\230vE\307\300\005\265\256\324\234w\356\371\024\253\215\243T*\";\222\305\327n\276\025\371B\241X\037\217>\353\270\241u\232\365\306\325\253W\357>\325]#'\274C\344\201\a\376j&\\\274\333\334\324X\363\360\003\367\351\306\246&\214\345s(y%\014\364\367c47\212\341rU\377\257z\333\326\357\3144\366S%\262\243\212\177\327\372\367\003 \337\027@\002\301\375Jy^|\250\351\212\251\207W\324\271\205\246\272d=\316\3528\013\256\033F\271\\F_\177\037\376\313\237\337n\323\231\014/\2347GJ\305\242\031\311f\265r\024\264\322\243L\330\252\230\376\333\3157\377\361\306\317\004\000\000|\367\301\a;B\216\373\313\260\353\316\272\377\336\357\352ys\347\242X*\302\363\313(\026\n\350\037\034\224b!O%\353\344\367\346j\366n\317\326\037\330\231k\354\023f\001}\254%\301N\021\037d-\235[3\320|~l\250cFltF\210\274Huu\255Lo\237N55\265\260\306\300\030\037\037l\337\211;\357\271\337\317\347\307\006\302\216j\275\361\206k\020\213\307\021\215F\301\212Q\310\347\261c\373\016\273g\317\276\274\030\272|\325\252U\033>\023\000\000p\347\235wF\335\352\332\237\022\360G\253n^\311\327\\u\025\264\326(\226\2130\306G\261X\300\350\350(\262\271\234\370^\231\000\222\262\350b\311:\371Q_\217\002@\265\366\253C\354E\\\362\303\200\220\033\nK]\"A\211D\035jkj!\026\301\276B\257\214\327~\361K\374\350\037\236\266\"\370\005\301\334\357:\316\226/~\341\022$\022qh\307ACC\003\032\033\033\220H\304\361/\257\375\302n\337\276\343\244 \234\3226\271\316\316NZ\260l\305]\212\371\276d]\222o\375\3467\364\037\\v)\254\265\301\246H\033\304$e\317C\261P\200\357\373\360}\017\236\347\003\000\\\327\201\353\270p\334\020\252\253\243\b\207#\225\325d\2402\300\300\233\277]\213\277\177\372\031\177pp\310Zk\037x\177\323\206\037\000\300\262\013>\227[\262h~\264\275}\032|\337\"\036\217!\034\256Bk[3\232\232\233\360\332\352\177\261;v\354\310\223\330\313ND\035Nk\247\350]\017=\324\306\006\017Y\2617O\237\336n\257\377\3125\372\202\025\313Q[S\003+\301\252\220\330\217\307C\"2\276:\364\361\034!*N_\200\\n\024\357n\334\200\027~\376\212\277w\337~&\242\347\014\311\275\217\334w_\367\3703\357~\350\241\265\263\316\352\270p\311\342\005\224Ne\020\215V\3037>\242\321(\316?\377\\467a\365+\257\332\235\333w\346\011\307\207pF\366\n\337u\337}\347)\245\0371\306^AD<\347\334\331\366\342\013/P\313\227.ESc\003\\\327\375\275\353\245\2627\316\363\312\350\037\034\302\206\215\233\361\273\267\3376\377\347\203\035,\"V)\376U\271T\274k\373\266m\333'>k\376\222e\217\3267$\376\374\362\317_\344\244\206\207\321\327?\200X,\216D\"\201D\"\201\363\347\315ASc#^yy\265\335\271cW\336\220\\z\3537n=\3460\371\224\001tvv\216\233\365#\345\254Y\213\023\241\032|\211Y\177\231\200+\215\265UD\204\352\352\250\227L&\321\324P\257\000``p\330\014\017\017at,\357\210\b\024sA \377j\214\377\332X\272\374\372\376\375\037\244'<\356\210\213\233\263p\341\025!'\364\332\212e\0131uJ+zz\272\221Je\216\000H&\353p\376\3349hnn\302\313/\257\266;\267\357\374T\b'\275St\242\320\023\352G\356\333\320\320\340\326\267\264,\000\351\026Vh!p\013D\232\203O\251\317\212\351\263Fza\375\336\376\236\236\367\323\351\364\304\215\217\023\375\372\221\343\271\013\027\335\241\035\367\373+\226-\304\224\266\026tww#\223\311\"\036\217#\231L\"\231Lb\356\274\363\321\330\324\200\227\177\276\332\356\332\271+/\226.Y\265j\325\346S\0020A\360\023\2010)\224c\324?-\311\261\352\347-Z\374\027\256\322\017\256X\276\020S\332Z\321\325\325\215L\346\343\236\220H$1o\301\\46\326\a\020v\355\032\203\345K'B8\356>\301\212\360\247\222\3718\345x}\262<\361\036Gg\000\240\301\336\336\267\353\232\232\313\207{\a.\215\325Vc\352\2246\224\313ed2\231#\333oG\2629\324\326\326b\361\322\2054\320?\350\014\247\206\277\372\376{\233\177\265`\301\242\336\023\002p\224\360\230P~Z\375\323\316\035\013\316D\030\004@\035\343\273\343\211\006\373z\327\32556y\207{\a.\211\305j0uj\033J\305\000\302x\312fGP\033\253\305\222\245\213\250\277\177\320\031\032N\255<\032\302\311\376h\352D\273\356\261\256\235\250\006\343\202\253c\224\343\365\211Y\217_\263}\333\226\307\312\276\377\300\273\357n\305\341\236^tL\237\206x\"\206t:\205t:\370U\312\266-\357#5\224\301W\256\375\217<{\366\254\250\005\375\346\305\027_\014\003'\006`2=<\326\271c\325\217>7\236m%\313$\345DHG\367\226\211px\307\326\315\177]*\227\037zg\3036tu\365`\372\364\016\304\343qd2\031d2i\244\323)l\335\372\036r\271Q\\z\371%\014 >66v\336q\001\0345\302\232\330\370\311\316M\226'\023\360\350l\000\370\225r\013\361x\034\351t\032\351t\032\231L\032\205|\036\225\205\r\303\354e\216\013`\034B\005\304d\202\035K\350\311\262\231P7\023\352Gg\277\222\307\257\367'y\346'l\307\a\333\266<\352\225J\337_\367\356\026tu\365`\306\331g!\221\210#\237\037C{\3734\030c\361\223\177z\336x\326\177\374\346\233\377d/p\032c\201J\365d\335\337d\307\023?;\236\261=\372X\216*\307\341c\356\342\245\377\335q\234{.\376\334\022\264wLE(\024F8\024\302\272w\326\233\303\207{\373\213\243\205\331o\275\365\326\350\2325k\316\334\317\346&\bw\"B\237\210A=\321\030\343\023\266i\356\342\245\337s\034\347\356sfNG\"\021\303G\273\367\371\236\347\367\261\262W\275\361\2537\266\215_\177\306\1778yt:\n\314\304\006\237l:^@5\351\275\347.^\366-\307Q7+\245\032\224\342\227\n\306\374\217\367\326\255\033\256|,\370\254\001|\026\251\263\263\02389\225\003>\305\223\375\273\003p\254T\001\003\234D\230}\306l\300\277\347\364\177\001\205\256\234\"\255\"\2672\000\000\000\000IEND\256B`\202", 6611); _img_gnome_zoom_original_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } { wxMemoryInputStream sm("\211PNG\r\n\032\n\000\000\000\rIHDR\000\000\000@\000\000\000@\b\006\000\000\000\252iq\336\000\000\000\004sBIT\b\b\b\b|\bd\210\000\000\000\011pHYs\000\000\022t\000\000\022t\001\336f\037x\000\000\000\031tEXtSoftware\000www.inkscape.org\233\356<\032\000\000\000\ntEXtTitle\000Find\302\204H[\000\000\000\027tEXtAuthor\000Lapo Calamandrei\337\221\032*\000\000\000\030tEXtCreation Time\0002006-04-21\242>4\367\000\000\027\341IDATx\234\345\233y\220\\\305\235\347\277\277\337/\337\253\352\256>\252\252\357n5-qH \320} c\360px\274\320\2360\303i\260l3\202\305\273;\236\211\260Y\306\013\2661`<\336\305\343Y\230\b\a\343\031.3\036\354\005< 3\036y\035ac\215\261@\267\004\213\016@B\240\356V\337U\335\352\356\272\336{\371\333?\336+\251iZ\350jvbb3\"+\363\345\313\312\367~\237\374\375~yT\026\255[\267\016\377?\a\376\267~\201\177\353`>\352\atvv\322\r7\334Po\305\316\"\2456\000P\322\036\016\270\373\271\347\236\033Z\267n\235~\324\357\360a\201f\332\004\236~\372\351\232R\220\277\212!\327\221\360\3056\b\032TuZ\320D\344\263\310\240\006\366\367\026\301?\271R\361\313\325\253W\037\236\321\027:N\230\021\000\235\235\235t\375g\257\377\254\021\272\325Z\275\014\200\314\236=\333\236\177\376\371RW_\217\272T\035\322\251\024\352\353\033\240\n\014\017\017`(\223A&\223\301\360\320 v\357\331\035\274\373\356{\254\212\200\211~\033\250\377\304\317\236y\341\231\377\027\332q\332\000\236x\352\211\253D\370\373j\355y\363\346\235\213\025\313\227\323\205+?\206\332\332\032\024K\005x\236\a?\360\020\004\001<\337\a\2400b\300,0\"\020q\340\030\203\321\321\021l\331\266\r\333\267m\323\275o\276\011f\332c}\377\316[o\375\322/gF\324\351\303)\003x\352\251G\027\021\233\037\004\326^<\177\376|\273\372\346\317\363\354\331\263\221\313\3470>1\206\361\211\303\360|\017\252\212B\241\200B\241\210B\276\000\" ^Q\201\212\2128\342\3618\210\030\306\030T\304+\020w+\341:\016\016v\035\304\263\317=kw\357\336\303,\364\373\240\244\177v\373\355\267\2776\303\262\0038E\000O<\365\304M\314x\252\255\255M>\377\271/\310\302\005\0131:6\212\241\341~x\276\207\303\243\243\350\353\353Goo\277\216\217\215\321\207\265U]S\255\255\255-\324\322\322\202\332d\022F\004U\2255\210\307\342\330\275w\017\236y\366\231\240\273\253;P\340\226\333o\275\375\177\235\262\244\307\b'\005\240\263\263\223\256\277\361\332\357\020\321\327/\275\364R\334~\333\177B\2760\201\376\241>\344\3639\274\373\356{xg\337;Z,\026I%V\030\263\351\336\234&3>\342E\217*\n>*\212\000`\220\2179\232\217\033\024b\2254\222\256\341l\013\331b<\026\217\353\334\271\347\320\2349\263\341\272qTUVAX\360\364O\237\306K\277]\017\000\337\375\371\363?\377\346L\372\206\023\006\360\344\223O\2720\372<\254^\365\205\317\177\201;;\377\b\375\203\275\310d\207p\250\273\a{\366\276\245\205B\001chzo\004\263\272\n\224\034#\002\204\211@\000\001 \"R\005TU\255\252\206\371\260\375\270\216V\247\271\247\275\206\006:***1\177\376\2714\253}\026*b\225HT$\360\233\227~\203\177\374\311O,\021\375\322a\347\3325k\326\224f\002\300\011\317\003\224\355c\016;W\336\371\027w\362\302\205\213p\260\373\000F\017\217`\307\366\235\030\350\037D\216\353z\207h\361\233%J\344]G\244\312\220\021\"\002\021\001\300d\201'\003\2606\314\22749\336\253\265\273\207\355\354\003-\205w\346\355\330\261\263\265\267\267\027K\227-\205\265\001.\277\354r\264\264\264\360C\177\3637W\026\275\342c\000\2768\023\000d\365\352\325\307\255\364\330\023\177\3775\020\335\361\225\257|\205\027/Z\202w\017\356\303\320\36006\276\272IGF'\374C\264ps\226\317z\317\270q[]\341\270\361\230\260\021fa\"!P\230\0221\001QJBD\004U\"\212\020\0211\023Yr\374Qm\352\317k\365\220)\3644\367\367\036\342\372\206:\002\001m\255m\3508\243\235_\335\270i\341\226m[\362+\226\255\330\360\221\003x\354\311\307>\003\340\261\033\257\277\201\376\360\223\377\001\357u\277\203\276\376>\274\272a\243\346J2\326M\3137\006N*_\2330N\"f\304\b3S$\270013\021\203\230\011\314D\304\bS\002\302\233\241i\020\216\232\011\210\310CEa\324\326\367T\332\241\372C\335\357\272uuu\344\270\006\035\355\263\341:\016\275\361\306\256On\331\272e\307\312\345+\337<\035\000\037\272\026x\364\321G\033\011\370\351\252U\027\342\206\353?\213\356\336\203\030\311f\261m\3636\315\243j\270KV\275*\261\204\227\252r\234\230#,Bd\204\310\030\"\3430\031!r\014\221#LF\230\035!2\302\034\226\037\275\026\216\322\243\360 L\344Se\351\255\322\342WsAbh\353\226\255\232\233\310!W\310\341\323\235\237\306\307/\272\bD\374\323\207\037}\270\361#\003\000\326\373\342\225q\367O\377\363\227ip\270\017#\243\031l\331\272]K\326\344{y\361\216\270\353Pm\302u\035Cl\014\2631\314\216av\231\331\2410\357\030a\307av\214\2201\302\256\021r\214\260c\312\200\230]ar\014\0213 B4\031\004\213\350;\245\363v\024\255\311o\331\272U\213\245\002\212\245\002n\375\2235TYY\351:\236s\337G\002\340\221\307\0379G\201/]w\315u\206E0\224\031\304\3567v#\227\313\a\207h\321VcbZ]\3518aO\n9B\3448\314\30609\216\220\023\013\0055\345\373! *G\221\020\2101\002q\204E\204\034GB\355\021\202\021&f\"&\"\260\261\373\013s\267\214O\344\203\335\273v\303\363=\030cp\3355\177l,\364K\017=\362\31093\016\300\201<\230N\247\265\363\252N\014\r\367ctt\024\275\275}\030\306\331\273\254\324\024j\022\221\360FH\034a\3071\354\210!W\204\215\303\354\030\026\307\b\271N(\230\343\034\311\263c&\245F\330u\230\034\303\344\2100\263!\026!1Q\214 \224\220\310\367\024g\275\321s\250\a\207GGQ\362\213\270\342\362+\320P_\257\016\331\ag\024\300\337>\376\267\347\006\201^s\363\3157\031\257\344atl\004o\277\265O\003\251:|\230g\365UW\032\023s\205\035G\210\231\302\3367L\216!6\256\204j/\202\320,\204\214a\026a\222\320\316\311\230P\340\320O0\011\205\302\032#\344\226\357\011\2210\023\213@\014\223\bQ\3066\367\005\2248\374\346[ok\020\004\000\200\233o\272\311\370\276\275\346\341\207\037>w\306\000P@\327TVVz\227\\\364\011\014e\a\221\311d\220\315di\210\317\332\343\272\302\361\270\303\314BF(\354U#$\302Q\217\022E\366.\256\023\326\011M\344}1\004Q6\003\327\220\021\206\b\223\230p\344\020\0218\221\340\314\014\021Cb\204\272K\263\366d\263\303\224\311d\340\371\036V\256X\201\252D\302\013\230\257\2311\000\314|\343\222\305\213\034\205E.?\216\236\356\036\004\2466[\344\246\321\252JW\204\303\036g\0115@$\262o\0212,l\204\311\030\"\026\"\221\020\216\030\342\250\036\263a\030#$\206I\014A\004\344\030\021\303L\221\346\020\233Pp\023i\0063\300\3048l\323\331\"Ug\273\273\273a5\000\021a\371\362\245\216+|\343\214\000\370\341\017\177\330\352\a\301\242\025\027\256D.7\001\337\367\221\311\214\3508\032\372\034\227)\356\210\030a\342\362\220\306B\302\034FCl\034&\026&\211\312\035f\026!8\221\352\013\023LT\337PT\217\230X\030l\244\014\r\206B\240R\326\014\221\362\367)\353\327\366\016\r\r\252\252\"\260\001V,_\001\317\367\027=\364\320C\255\247\r\300Cp\265\210\330e\213\227c|b\014\331l\026\252\226\362\246e0\346\bs\330\345d\230\211\231\224\205\210\204\301\302`b0\021$\254\022zraHh\374$\302\210<K\337\332\267\177\341\351\003\000\265\246\323Ic\325\"\360\003\024\362E\224(1JBpD\210\030\240\262cb\246\235{\273\332\302\331,\000\020\302\265\337\264A\247~L\206\242\b\027I\345\373Q\241\2666\324e}%(\254*,\000\201\325\000\023\266b4\237\317W\225\037VWWgh\337\376\2236\201\017\000`\341\216d2\205 \b\240P\224\0320\"\213\260\0266PU\253\260\201\325\320\367\021\000\006\204\0016\221ZP\021\004\200\331\300\302\207Z\003c,|\237@\014\324%4\021\213\271\341\206\212\002\231l\026\304\334w\332\000\254\372]\231Lv\256D\000\342\261\0309\276\027?8\\\2328\\\b0\025V`]6;\342\274\275\377mTV$\220L\246@D|n:\333b\303\036T\013R\200T\231`U\324\022\324\222\330@\311\006D\326B,\251\250%Ve\250e\201e\321\200\304Z2j\311\300\n\253eR6\002C\006,\006d\bD\014\026\0036\004\2420\345pS\021L\0003\343\242\216\374,&\342\372\206F\000\212\003\357\275\213\241\241a'\260\366\244\177\345\371\000\200\257}\365\253[Ed\340\225W_AE,\016\3071\250JT\351\334\364x\a\201a\031\252\312\252LZ\026^U\324\002Pf\020\004\312\204\200E-D\003\022\205\260\005\221\022\023\210IY\240$\242,\006D\006d\004l(\004a\004\304\004\246i D\351\3226\357\314\332\332\244\306cq@\025\0337n\20612p\3377\276\261\365\264\001\000\200\357\371\317n\334\264\325c\026\270\216\213\272\372\024\235Q]\350h\250\362*}+j\025\352[Q\013\250Z\322P{\311ZK6 \330@\305*\221\202HA\242V\r\254\212*\213Z\026\265j\224\310\200E`\014\201\205#\020\241\200\0349Z\006\2039\202\300\2413l\252\366+\317\251/\315iin\016\037\254\300\313\033^\361\214\352D\r\032\352\353\321\326\326\206\013\233\016/\373\323\205\373>Ua\0023mK\214I\352\035\215\347f\362\260\306\323\277\001\003\025&0_]~\360S\253Z\307\226\315={\036f\265\265#\237\317#\223\311\340\256o\336\343\333 X\177vG\333i\365>p\202\a$\356\271\347\177\326\272U\336\366\216\366\366\216\357?\370]q\214\301x~\002\271\334\004\272\272\272u\334\227\261_\037l~es\246\345 GvO\206`\304\200DB{\027\216\034\035\240\326\302\006\026\326\006\320 \200\037\370P_a\325\207\365\025\0276\014\234q\345\354\201\213j\\\255>\377\274\013\250\266&\211b\261\200\321\303\243\370\374-\267!\227\317\027\352\223\211'\0357\266\301\260\331\262v\355\332\267O\365\324\310\011\237\020\271\377\376\377q\016\\ljnj\254\376\356\375\367\232\306\246&L\344\306P\364\212\030\350\357\307\370\3308\206K\025\375\277\352m\333\270g\244\261\237\242\241\214\242\241\315\230\367\357\r\370\276\002\032\n\356G\351\371\311\241\246+\333\017\255\252s\363Mu\351z\2349\373L\270n\034\245R\011}\375}\370/\177\376U\233\035\031\341%\013\347k\261P\b\016\217\216\032q\004F\3148\023v\b\323\177\275\345\226\377\270\345#\001\000\000_\377\366\267g\307\034\367_\342\256;\367\276o}\335,\\\260\000\205b\001\236_B!\237G\377\340\240\026\3629*Z'\267\177\254z\377\256\321\372w\367\2145\366)\263\202\216Z\211\005\000\365A\326\322y\325\003\315\027\324\016\315>\253v\374\254\030y\225UU5:\247c\016UW\327\300\006\001\202\300\307\033\273\366\340\256{\356\363s\271\211\201\270#\2557}\366Z\324&\223H$\022`a\344s9\354\336\265\333\356\333\367NN\003\272b\315\2325\233?\022\000\000p\327]w%\334\252\232\237\020\360GknY\315\327^}5\2141(\224\n\b\002\037\205B\036\343\343\343\030\035\033S\337+\021@ZRS(Z'7\356\233q\000\2502~U\214\275J\227\3748\240\344\306\342Z\227JQ*U\207\232\352\032\250Ex\256\320+\341\305_\374\013\036\371\373\307\255*~A\b\356s\035g\373\247>y)R\251$\214\343\240\241\241\001\215\215\rH\245\222\370\347\027\177aw\355\332}R\020N\351\230\\gg'-^\271\352na\2767]\227\346\333\376\344\213\346\017/\277\014\326\332\360Pd\2647X\362<\024\362y\370\276\017\337\367\340y>\000\300u\035\270\216\013\307\215\241\252*\201x\2742\334G\016W\303P\265\370\355\277\276\214\277{\374\011\177pp\310Zk\357\177}\353\346\377\016\000+/\372\330\330\362\245\213\022\035\035g\300\367-\222\311Z\304\343\025hmkFSs\023^\\\373\317v\367\356\3359R{\371\211\230\303i\235\024\275\373\201\a\3328\300\003V\355-s\346t\330\033\257\273\326\\\264\352B\324TW\303\252E`\203p\215_\336\030\321p7\235\243M\223p\237\214\217\354\237\217\215\215c\323\226\315x\346g/\370\373\3379\300D\364T@\372\255\a\357\275\267\273\374\314o>\360\300\313s\317\234\375\361\345\313\026S63\202D\242\n~\340#\221H\340\202\013\316Ccs\023\326\276\360s\273g\327\236\034\341\370\020f\344\254\360\335\367\336{\276\210y0\b\354\225D\304\363\317\233g/\371\370Er\341\212\025hjl\200\353\272\357\253_\336\003\367\274\022\372\a\207\260y\3136\374\376\225W\202\377\363\306nVU+\302\277*\025\013w\357\332\271s\327\324g-Z\276\362{\365\r\251?\277\342\017.v2\303\303\350\353\037@mm\022\251T\n\251T\n\027,\234\217\246\306F\274\360\374Z\273g\367\336\\@z\331m_\274\355\230\313\344S\006\320\331\331Yv\353G\322\271s\227\245b\325\3704\263\371\014\001W\005\326V\020\021\252\252\022^:\235FSC\275\000\300\300\340p0<<\204\361\211\234\243\252\020\346\274B\377w\020\370/NdK\277\232\233\233\360\374\363k\355\236]{>\024\302I\237\024\235*\364\224\374\221v\033\032\032\334\372\226\226\305 \323\302\202\026\002\267@\2659\274K}V\203>\033h/\254\337\333\337\323\363z6\233\235z\360q\352\270~\344z\301\222\245w\032\307\375\316\252\225K0\253\255\005\335\335\335\030\031\031E2\231D:\235F:\235\306\202\205\027\240\261\251\001\317\377l\255\335\273goN-]\272f\315\232m\247\004`\212\340'\002aZ(\307\310\177X\320c\345\317_\272\354/\\1\337^u\341\022\314jkEWW7FF\216jB*\225\306\302\305\013\320\330X\037B\330\273w\002\226/\233\n\341\270\347\004#\341O%\362q\322r~\2728\265\215\311\021\000h\260\267\367\225\272\246\346\322\241\336\201\313jk\252\320>\253\r\245R\011###Gv\226\017\217\216\241\246\246\006\313V,\241\201\376Ag83\374\271\327_\333\366\253\305\213\227\366\236\020\200I\302cJ\372a\371\017+;\026\234\2510\b\200\034\343\273\345@\203}\275\033\352\032\233\274C\275\003\227\326\326V\243\275\275\r\305B\b\241\034FG\017\243\246\266\006\313W,\245\376\376Agh8\263z2\204\223\375\323\324\211\252\356\261\352N5\203\262\340r\214\264\234\237\032M\271\316\256\235\333\277_\362\375\3737m\332\201C=\275\230=\347\014$S\265\310f3\310f\303\177\245\354\334\376:2C#\270\356\372?\346y\363\346&,\3507\317>\373l\03481\000\323\331\341\261\312\216\225\237\\V\2166\212:M:\025\322dm\231\n\207w\357\330\366W\305R\351\201W7\357DWW\017\346\314\231\215d2\211\221\221\021\214\214d\221\315f\260c\307k\030\033\033\307eW\\\312\000\222\023\023\023\347\037\027\300\244\025\326\324\227\237\256l\2728\235\200\223c\000\300\217\322r\234\016\314T\223\372\200_\331\265s\373\367J\305\342\003\0337\357Dw\327!\234u\366\231H&\223\310f\263\310f\263\030\031\311\"\237\313!\372a#`\366F\216\013\240\014!\0021\235`\307\022z\272\030L\311\aS\362\223\243\037\305r}\177\232g~\300w\274\261s\373\367\274b\361;\0336mGWW\017\316:\373L\244RI\344r\023\350\3508\003A`\361\343\177x:\360\254\377\320-\267|i?p\032k\201({\262\303\337t\327S\357\035\317\331N\276\326I\351\221\037d\027,[\361\337\034\307\271\347\222\217-G\307\354v\304bq\304c1lxucp\350Po\177a\021\207z\242s\214\017\370\246\005\313V|\303q\234o\236{\316\034\244R\265x\353\355w|\317\363\373X\354\325/\375\352\245\235\345\3723\376\307\311\311a\022\230\251/|\262\341x\023\252i\333^\260l\345\2379\216\334\"\"\r\"\374\\>\b\376\362\265\r\033\206\243\333\212\217\032\300G\021:;;\201\22339\340CF\262\177w\000\216\025\"0\300IL\263g\314\a\374{\016\377\027\316E#)\033\321vk\000\000\000\000IEND\256B`\202", 6337); _img_gnome_zoom_out_64 = gnome_retinize(new wxBitmap(wxImage(sm))); } gnome_scale_images(); } void gnome_scale_images(const double contentScale) { if (contentScale < 2.0) { _img_gnome_dialog_information = _img_gnome_dialog_information_32; _img_gnome_document_open = _img_gnome_document_open_32; _img_gnome_document_save_as = _img_gnome_document_save_as_32; _img_gnome_document_save = _img_gnome_document_save_32; _img_gnome_emblem_favorite = _img_gnome_emblem_favorite_32; _img_gnome_emblem_web = _img_gnome_emblem_web_32; _img_gnome_help_browser = _img_gnome_help_browser_32; _img_gnome_list_add = _img_gnome_list_add_32; _img_gnome_list_remove = _img_gnome_list_remove_32; _img_gnome_package_x_generic = _img_gnome_package_x_generic_32; _img_gnome_preferences_system_windows = _img_gnome_preferences_system_windows_32; _img_gnome_system_run = _img_gnome_system_run_32; _img_gnome_window_new = _img_gnome_window_new_32; _img_gnome_zoom_best_fit = _img_gnome_zoom_best_fit_32; _img_gnome_zoom_in = _img_gnome_zoom_in_32; _img_gnome_zoom_original = _img_gnome_zoom_original_32; _img_gnome_zoom_out = _img_gnome_zoom_out_32; } else { _img_gnome_dialog_information = _img_gnome_dialog_information_64; _img_gnome_document_open = _img_gnome_document_open_64; _img_gnome_document_save_as = _img_gnome_document_save_as_64; _img_gnome_document_save = _img_gnome_document_save_64; _img_gnome_emblem_favorite = _img_gnome_emblem_favorite_64; _img_gnome_emblem_web = _img_gnome_emblem_web_64; _img_gnome_help_browser = _img_gnome_help_browser_64; _img_gnome_list_add = _img_gnome_list_add_64; _img_gnome_list_remove = _img_gnome_list_remove_64; _img_gnome_package_x_generic = _img_gnome_package_x_generic_64; _img_gnome_preferences_system_windows = _img_gnome_preferences_system_windows_64; _img_gnome_system_run = _img_gnome_system_run_64; _img_gnome_window_new = _img_gnome_window_new_64; _img_gnome_zoom_best_fit = _img_gnome_zoom_best_fit_64; _img_gnome_zoom_in = _img_gnome_zoom_in_64; _img_gnome_zoom_original = _img_gnome_zoom_original_64; _img_gnome_zoom_out = _img_gnome_zoom_out_64; } } wxBitmap* gnome_retinize(wxBitmap* bmp) { #ifndef __WXGTK__ wxMemoryDC mem1; mem1.SelectObject(*bmp); wxBitmap* bmp2 = new wxBitmap(); bmp2->CreateScaled(32, 32, wxBITMAP_SCREEN_DEPTH, 2.0); wxMemoryDC mem2; mem2.SelectObject(*bmp2); mem2.StretchBlit(0, 0, 32, 32, &mem1, 0, 0, 64, 64); return bmp2; #else return bmp; #endif } tintii-2.8.2/help/0000755000175000001440000000000012236200474010750 500000000000000tintii-2.8.2/help/tintii.htb0000644000175000001440000015562312236200473012702 00000000000000PKì³eC &mtacknowledgements.htmUT ;yR;yRux èdSÁnÛ0 ½û+ˆœ]9Î0 Ø\YФÚn@Ú ÛM‘i[ˆ#57ûúÑN‡ë€íbÁä#ùôøT´|ìʤhQWr°åË¥98:¬<¢ãPdçxRdϸ=U§2‘²ü/` Jª/Z„ëØZÐ}ßY£Ù’kä3èÛ8¬`‚B'­ÇújÖ2÷ï²leµ°Õ2ßÒéëò‡è6¿}v_”ÖgµùXg<;Žª±˜;"#¤©D¡;Áî A>ÈB+Ÿ3•k5¯ƒ!ﳩÊ9µ8𔉪‘sšˆÛZaÉ‹Æúcƒ* @4Äké9]š”3EðØJ¼Èt$|WÀ A³•AX¨ÒjÛ9Dho'Ù´]©úZgïUE¬j„×xA´–iM•ÈŠü+UÙ´ÈÇüü‰%óY8–.¡W&âP°Gö(0$ݱ(‚ÖS:’žâú‚x# 8Ž|‹“«ûU- ¿¢@®Q†C9ñÁÒèG2ô©´ ÑÞ«¹Œþ(Id ·;`ÌBÂZß5©‚'ÇÇûâ@MPN™u8÷BUh¡Èæq =u8WÖxúÕ‘ z9F€ÕµË.ØF¢®Rë%4=rÂâv-ìàÿ8šÛÇì{bëwת²\ríÚ–d¬PA¥m°ºòN¨YL”ÜJxû9+ŽŽÐ^¨‰EÃÀfáõ‡3ù§¥ÆKg<wNjͪ»uÔ ¬å½BW®ŠvÉŽÌd§C2Ýjm,#Ç™§êœ§NœžMÎö‡é;x÷aò~ÿða q¦ƒ““ÉÛýC€k•п÷Ö¬`Cœ-Ƀ3ï aÀóÄ““DöêÎމ›)&Öaãbt2J­'t͈÷F†n‘hSs1Ò4 #žBy»½åßR[ëUPèÜaõö¤ÓQþ%,…â×½H•ãΉ«ò—€9¤äíAi´·Ç\?¾ß¶~¤ •^E­©¨òÏ@Âb5¼_ÛÅ–Whôé& ·±^c},Ê¥4ˆò6×wðGÇž¥ìw)ßÍ&ÈàÝq .³´i#±.‰;{é:ìµ ¼’îî)éÏž(Ñél¯&Ý!µ7r“õf05ÑÎûRüoe×ßcÏl²^ÅþI”.¶Ûá4Þüï‡iúöÀ7Eü˜ù PKì³eCÅ+0„ógettingstarted.htmUT ;yR;yRux èdUT±®Û0 Üó„‡vqãâuk/:¶(𖎲ÍXz‘%W¤’æïKZN^ˆM‹§ãÝI­åÙw»Ö¢å{ì~g7œ€Ø$n›RڵͶ¤ãµÛIÇËó:y—êÒ½F˜¥š×oɸÉ2¸PC&¶mßýpáÃÄßàׂ¡múf ã 1}Ý´lzÝ@ŸS×ògãÝÇ¥êZ7O@i8Tnˆš1Y@øSÈý¦jí½¸‘í¡úòREåRžû˜FL‡êsÆKMy€•®m£>2ÇYöjxTp¿1.µF¨)ÛæNWA@~:*Çè{“j0aB¯u7› á¨*°5 ט…(Yi€•~Û,›œ÷ÕçýúQÄ,:° ‡jIxvxYLÀ½øYu[´Ò6¦«•VpìŒ÷Wmï½w”ÔÅŠæ{×2³HÖ?íÀ6Ï=½oPÞïø@6^\˜Ö¦!ú˜•Á^]`ç΂YÀñ6À:×¾{‘(f`Å Æy"!qL›BU:7jÛˆ{ø#Ò &ÜÓeÆ73H €¼‡I‘fsB°k Ã9vº[Ëëĉ´1k‚ÖÅ*Ž ám¦zkzV?/)‚!<˜ðT÷J¨@I&TkŽ1I‚ðÏA–>šïHÜØTüH"’×uýt%9-µ¨JCr½îa4!G9EGÔI‘Šb¢¼ˆº‡Ÿ‘‹J³ˆ«*Ì&ž"["`×ÀŠ€Š'eºdY²²±Úβô2þ½1Dì\è­gZqüuü  pÝÐA1RôtKFX"Æx©ÕŽ>é€y)Å—³ ,H$é+zæ¦cS®,¹¢Ö»î?PK ì³eCicons/UT ;yR;yRux èdPK ì³eCÝ‹ÕGGicons/emblem-favorite.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<ÙIDATX…Í—OlWÀßÌÎìz7k{7ŽMÇI%¡ ( ÁsO¨¨iˆHTUÜ@Hm\HÚ *\hIDE%zBp€† P $¤‰mì¤]Çâewvggß{‡oìØIœT¨<éÓ|£yo~¿oÞ{3»¢ª|˜ÍûPéÿ™{u8%2 Pl ó_V­Ý­ÿk"à 9Û„÷N¨¶ïÖ_6Z/ˆxûà¾&A0šñ}cÛm±ÖÀY”WÆáµçTÀë"Ûø¦Gƒlv@ÂСJE"ª¿³Ê‹ÇTÿ°)Ó"»Uøu±28646\È—úÀ9$pÖR›çýKãµ8jMªò¤À–Í÷ÝöŒfð·faáÖÍV$RHX6´ç‘Pðsy̲cQëP—æÎ¡Ö!8l}Ší ›7«›_úpj@FøVeÿî¼áú0KKX ìänMeÙ!µ[­§×Røª\­‚s¸†ÁÔ¯R98V¨¿µô½u Ÿ.”ú qUó„l¥ŸLÿ6âØñޅɦQžø¬ªY'p ~/-ŸŸÿ÷u“øÌ–ŒOn¸Œß»ç™þË…:N¿úEÕ©5ŽkF©*Ê“3ÿš¨Wç\áÐcx=ùû†{a†ÜH¿°#®œy;jÅñ GUO¯Ýè÷À«"{EøceÏðÖ¡cAóÊeLõæ¦à~>Kv¸„%’ÄcâìùÈ$æO«þl£þ ü\d0#¼Õ?TÞ½ëð¡\ëÝ«´çÞ¿+Pi w” JðKÔnTuêüxãŒÓ?³@3h#‰» „@~%¾ïñlùÊØãçò¥>šW.áÚ =Ä+d¿ÄòÌ¢›¾8Ùx]9ù&\)¼4Tµ~¿=«%NÂçŽßyh$[Ú=ìÑ^±égajÖ¾;~­öSåÙ30y;¨©j¼iTbE 'ܰÿóÂK•þ]í±†ÙñkæúÔÌâËÊÉsph¥ð8=ÖéLÁ:Ø]n{9 „BùëÂËå¾-³…œ??³pýEåøß` hIqZù† pS«D| X‘ÈCðx¾GøøKÊÑsPL n‰ê&>Yªúâyð>ÈøM?ÿUûÐÿœþ¥$(.ê@àIEND®B`‚PK ì³eCÓô/*Á Á icons/system-run.pngUT ;yR;yRux èd‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÖ 9®ðP± NIDATXÃÅV{pTÕÿ{îÝ»›ÍfóÎn^dÃ+·0  ¦>!Šã£­¢Î”):Z”ªX™–)âTТ鍵 Êc#F4BHP0M²›l²¯d³I6»{w÷ÞÝÓ?ÜÄ4ÄŽN¿™oîs¾{~¿óïûÝüŸLX³¦!# æ4å™0#ÏÔÖÔtôîúú¥oõõZ*-½p Y;wî¶ÿdŒn_ÅΜé`Vk/Û»ï}ùÄÉeï¾÷e«µ—9ÓÁn_Å~L<~ú@¾)Ÿ%''“ôtnøù¼,+**¡(0öÍüI€›>0#oFG{{›L)Å[o¿)Ýÿà}Á·Þ~S¢”¢½½Mž‘7£ã'%ÐÔÔ´6#Ã((Š‚C‡iB’|ݡÇ4Š¢ #Ã(455­›[Z:£¤²ú¯U ÷WÔ,fÅåå·ýÇ164Ð’ò«Ëÿ'õõõo¸\™çy¬\±R5BãÊ+%žçár9äk¯­}U¥R÷ÞûË{Øñêöì-›Ÿ†J¥~lê]}Ö‚ÈŸ®Z´ØUTY¹ô¥äñ¢}}½, 2E‘™$ILQd Y__/{|ã†hM]]Ä3âa6ûs:¬¦nIdb3ó**ê–üld­m§Ø’å+XIeÕ W\„f‹™x<´w´+ƒ‘8V^VÎ{<˜-fÀcî1§(Ñ0´q:,­¯ãEV(¥¡H$¢ú݆G1<<Œœìl<ü›_ã™-[ˈ̈‚õNèÀ?wïþˆ§ü¯Ru™ÇÁç“Ö»†G·=öÈCê¹sfC¯×C𔇔àt9 º](ÌŸ…õüN÷`ÞÙÖÖ¾+"0Õæ—UU%èã[o½éFìÝ¿Ÿ)J¤ 3_üó6nÞܹp»Ñ?`…,‡!+2´Z-ÒS3 ×ëa³ÛÐÓcÁÖç^èl?Ù2ûŠ30Õ*kõ?õäÆì%µµÂÁ?ÄÒºZ F´žjÏïÇq1'“ï¢(¢ ¿ëÖ?ÂFGG®ùâôéV(..Öž;wÎÿ½JJjŠUZîlãá0ì‚ÝaG¢. y&>=v¡ph ø“ày9Y¹ðùüx`ÝCá(˜“çøÌp8Ä+ÑHÝù¶¶c@/EÀdÊò2‚EMÇ>Ë«ª¬OyÌ™=Í-Ç %Pž‚§µJʪl›ÿ°õÈþÝ»`sôƒã8*íg΢ñãOX0$]ËÑ>=ùi䲊˪j8ЧÔjͲ´Ô ‡ ªTå08ŽƒZTcÈí‰0iò#õz‚ ‚ À@åx|rìs8¬šîîîÐe•pr-¼aõ­¨]¼”ã … EРŽã DÜuÇí8Þrêõù¥!Üsç$?8B@8/@Vd„CáÈtðËÖÏSgeyâµqp :1::‚ä¤Pž‚ò£c\…ç·m+JKÓÒ“?{þÙ-úë—]ç í›8J!¨T‚‘¹’ŠŠ›¦ã\ª Hjšaž^Ÿ°`AI ‚Á¬ýý˜=s6¼>ïdÏïÃÌÂY¸mÕjÜs×HMIÅ€ÓŠ`(BDQ kŸ%óç‘.³eMbRêB­Fý®Çã‰^JˆRXZ:K¯Ñ^xŒ0I+Â+yžÏÈH‡Óe&Eg¢0 ! äÛ%5ê8¸‡Ü8yâ$²²siÌÂÆ§7cthdõù³m{02å'”aQO¾)&“éóÜT}õÕ/Yz-tÿ>J„g^{ùE¢KÐÁívÅz}¿Ý(Šðû8|è#Ì3:þ@›·üɺ¥%@@„N¿ÿµ(-_€ $e]ýò_ˆ*>¥fq WTT„ί¿®w¸Üϰ'© Àƒ!<Ï„LV;ÇQ¨DQ g›žÞ‚–Ö6s[{G¢¨V“÷öìà˽~xÐuÀx`Såçæ3½>ÌBñܼ/àCue5¤„®î¯F™JT™j¯]„/σÃî@ZzÒRS!Æ« Ë Bá ÜCÃøW—/½²#:è´?Ño±4ë’’tãcÞ'!ã_ž= @ ÊÀ®wÞs½òÚöŽžnsñü¢ÂŽ7^ ¶¶ž"ÕÕUìþµª»»z»kxdAqIZvvÀ¢ÃxøÑÇÁ¢,"ˆjšm4àæVÂá²#QŸ Ž@ê·XÎÐŒŒHçGÚ7bàrÌ9.VtÜ‘#G22ÀææãjkïÀÝÍÍÇÕþ€™Æ,^‘÷Å‹ÑÙÙ£1 ÿصv»ýÕÖæÏš6®ê1÷FC†Æ @¸¸+½”Râ²e˶;œvY§Å¢E ƒ¹yÙo/\XÒÆiawØ”5 ·Ð³ù‰_zyüÑOÂbé5[»»÷Çv%ùþ/;»º!Šjœÿê+ Éii)ó1Çv%43go¹åæî[WßL ¯š ¨/àC|\üd ìyo{vësµB9y…Ucׯ×ëŸhåÌÜÜò´tÃvA¤@ ø…Ï;ú޵§§€2%åበ" @÷Ž«Í3󢫧=]=Q£1 ‡ …ÜØ˜wâ2àëïí:«âI5µ[­n§s^8Åæ¢­sešOf @RnnNQõ5U ¬¬¬ï×ÿvྵ÷Þ86:–k¶˜qèƒÃËýþ€ €7F$2!ZÓŽu|â9Ý#Sc -=€Dñ±1 ð0 Kgt 8™>ñü>öoÙ¹3ùe2IEND®B`‚PK ì³eC&=' ' icons/help-browser.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆÞIDATX…í—{pÔÕÇ¿÷þö™l$»@ Bž@‚Ö‚„)Ò¥L§Øú˜i±ÔG­S­ÓÑ‘( ’*òRZ_ø L$Ä"›„y@d“ÝM6»ûÛßëžþƒ•˜¦þÝž™3ó›ùÝï9Ÿ¹÷œ{~?àÿ6ŽQ;¬ÞüÕÛŒo3Îz›°â‡è;;atcæµ³ˆþOëØx/¼-xÔ½¢,zÚnJ+ÂWÖ“îyrOÕÓÍ“i-¸”ËHL0Îû‰&E×*Væíj˜>íâ_ˆ™~ÁMÉf2ú ¢È[f~›‰ è4Ì>;Ö1X6Çfœ™¾ö( ‘ŠS[ W¿l@ôc†3çæÚâã™Í€ Ëax¼t¾­5$oÝâ˜R0·•½I7O‡<ð""ý›šlXÈfCw;¼MXëmAG k%iáÓñ½Bî7œ}{“Åûwü”úŽ|LJh˜ à !†qýY×uŠ©÷·é½’e´wj¹$öøÏ§ºì¦@g ´ tÜä¾fü}èâH ב.»iøòZªÙœre_|¼h|¥\Èõu.+£ð®]¤ª*)ŠBŠùÆRU•¯½F‘òr’OÕRý–Íb_|œ¨zzVÅpÏ:R÷“·gý­Hsþ,€iƙؙ§¾¶êСpÇ©ÉmEî»éõý|Ƥˆª*hµµ€ßKe%„É€®‡aÐî»ÒܹrrÀ ÐÙÝ…†‡6ˆ[ö™"é?9¥@öüÁY‹/€€A0q“ $†¡‡ŽCˆ„¨¶gÅ™Ï?Çf$$@= ½®ÔÝ Cý¼†¡Ã0Œo\‡v¤Ô×£µzK ¨á ÒRÓ0ë‰ÇÙÉõ’y°½Ü<Ñ)Ø2º&HŒà+N·kÇgǦŸÄ‰gÊà˜ÓŠœ…73:úôº:ˆÎN€1p— Z{;.OŸ ¯ß/ƒˆ%&$ØRý~˜RR z{!8‡ÎLœ#oi1»òî;¦ÆWû±èñ°Nº&é+Ò„Ž—t’²>ù±5½hï^8/]†~ìD{;À¤ôtôÈ2Ü èÿÍ}…®À~ͳ*i÷Þ‹oÅ»FK Ø”)²³ÁçσÇ…ê ãçûéÛHBiÿ]B^þÞb|aÓ +ö—oCA2ü~ îØNþ‚*)¡æ¥Kéug¢ºcÙ²Å7êv,_^¼ß™¨ž_µŠwÞIƒ Pðå¤ûý è—ÿBŸÍm8‡åãvlÞºéÕºúZ!ËaÒud9L¯ÏÓ• è€Ã!vÏOûò’%Ù11ÂóÔS4ÜÒD²,“®ë–CT[Wcl*{qç>6 +r¹\Œs"%'ã\n–œ—ûæoo`}uõ¹àM[3Ò5¤¦H€ˆÀ¹§3‰›L¼hB"ጲG1ŽÑ6c è¶Ùßê;Ÿ/ù¨ ¬¸íùK6‹Â¯G&pÆe‚ ášÀ0 ‡ÙbÁ·= ²²†ä™À0$›ûî-o6› á˜@’xP‰(B`¤IF<:Ú¡J’‘4€$I‡CqC¨ª.±à„ŒIáp†a€sÎfhº5®òèã$zûù4‹Õ6k@‚¡8“ú' 5}ýÒ…ÑÙã­· FvÚLKT£ûW¯.[œ9^ò—ŠŠ²ì]—î˜3¿ÀDõõ••]Ð ýׄ®‹Ï'ˆ±^ýè’ûK*"XZ mËVЧŸ!fpyO=Áx[ÇÙò’¢E7êvßê¸ÐþÕüÛYT qü´í;,-…س ²Aê›7ê¾S)>7ò fý j±9µ¤d9l== P,:|a!Ìw߃ŽÎ‹Ôò§çзöžƒ““>€hOßêä7ß»}~ùN¤fd0åà!ˆ/¾uuEE!ìtâxM5n«U·éœ2¡1ópjs;R$WÿùCàíÜ\P£µ,&¼°¦ÒR… 00$Ÿß§1ÎáJtZãâÀ{z ¾÷>¨¦æúìfÏFmc#¬÷®Á‡ú¡ îu›%”ÄfÁû#Ð5<`ÿu2“b‘¿®}!ãªÇžš:RÃà`&G ’§Ne99y–쬋+) Ìbq®T[;’OIÁJHäß[›óIXÖçkO|_ ,6Çþ Zè¬1ùX¸ËŽ3g0Ìxz:À9hxÖ¢%0›-$ œspÎ!IÌf ,YY.ŒLÍÔT ¡Ñí¦¹e¢I2[ ´N˜l7€)cÂÔ+Þm°ÄÜ…¨ä˜u{4ó—¨þü<² )3¬°a» š®`$ ’$`Ðt rj XZ¤Ù³q-ÂÉ“')z£³!sÙªyŽéÿ„üÁ«ƒöŒæ•Fj›P¿rQ—¢î6kCå‰ÖØÕ–¸iLÊ÷‡Ïî¾jC°—”@Ì˪ªPUŠAD‘!GdD”TMA¸»îcÇÐÞÓ««·­|°{I\úÑ®¥èë=²ãðQõÁ;ÖÁ ÀÓù@±]>]®ŒÝkôÐ hÁa\…OYCÞ¯,$6>ɘ•a‹g6»Aˤ‹íeiÛßìI·LeEÏþŠÿƒs—›Ñ_k²Ç• òhòÑ„ÿn:€`”‡ßö5ŽÔwaK|ß6ä®o;xëÝÓžY]wº¸§·÷.«Å<‡1î‘ ¯¢Êm=½½L_Ùsá®uçß7G?cOì@Ü.á8€1Wñ÷þ˜Ð!H¾lTH¶ü{¸y´àá&³ %±™ðâÛqã%&02ÁÈçF.qTpKF6ƒCýºE"”ÆçáâD`ƒM(2L˜$¢rú"Èã­GϽM˜ÃM0MÊÂ9Æ ~ˆþÇþ%¥oŠg˜Û­IEND®B`‚PK ì³eC?ÿ –ÈÈicons/document-save.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆIDATX…å•]ˆTeÇÏûž÷ÌÌÎΪӮº¦"!EQ^)BRli]xÑ…”Ùw,EX)±"Ý„¢„%T„RQ-QHA(¡Æ ›[»´»îœï·‹sfçkÙݽzà|Ì9ïœÿÿý?ÿçyàÿÒøcýöƒCqí±àTù¥Eºwì`¤”>ðû'/ìR ZÄq¼ç­—ïwJ].cÿ\å¦Ñsy Gwò †»rL\õ#'¿zh'`­u–sÿò£Wþæî®‘`rÁøÖ-qúÊ¥%%¶nZKMá6ˆðí™aV¯YÅØ³géî.-˜ÀÔÔ$ÕW¾¢ré¶n\ÛôNµá»ŸÜNœ$é¥|Ø$á‘HZðÚÎ^Ÿqç3»ŸcçC÷Í{÷'Þû¡ý¯!?eˆUs@@)A2ï>7¤yÕÄùo˜¼0ŒmuÏ!J—70]¼¥­ÅR7…BÛb­Yª ™ÀäÅažß³›¥KËÇà8Çq0ŽAk‡8‰‰ã˜$މ¢?ð¹:5ÅÐ7YË]ˆ²X›022Ž*:·â°IB¹ÜËoçá³O¿fb|€kzW0øôãøA€xéÕ÷ËÚÕëHâˆÄZldé.¸c2v¬‚öDi­ÑÚatd„äæ§k¹üëü0À|ü ð}Â0 Ÿ/ÔUT\£ÑŽîhB7MA>Zirn€b!½V( ‰¢( £c\ŒcfþWÛqÎè™!×à0Y# @@ÜšÒyàf …‚¥ „QD…„Q„R ׌q‘Lf¥Òñ›3 •õJ@Xë„.K°,é24†Öšœ› «àRÈTHwÇÆq1ÆÅ5f¦‰Š(D×hD¥$,ܦV¬„Ñ“§‡ÃVõÐÓ@B)EÎÍQîíãÏ3‡9sˆîžÂFéÉÏ«f˜Ù¹joÅu€?òý±m?³ëƒÄ²nÇ=›Mb-•/ ×®\Ãëûöãyžï¥%ç{„aöyQh¥ñ<Ÿju€þey Ýy‡åK  9¦½%4ÖDXV\~ýŠ•›vŠ­\°©ô#J×ÕhrˆµÔÆfã‡,`ã&7Ò"Wß¾ðù¾½ÀDëÈ3@©'4³LËF „À4©sÎ\Õáý| ü·â_5ÝÑž‡»DIEND®B`‚PK ì³eCP!?ñO O icons/zoom-best-fit.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆ IDATX…­—pTÕÇ¿çþxïín6 6„€hÓ"`À˱J)AË´ja¬:¶ÿµ¶uÆŽ–Û?Z«A…€ ¿¤ÁR…€ø4ù‘d7ÙMB²›»ûÞ½·Dœ˜I‚ýqæ¹÷Ì{sÏçž{Ͻçn#uuuà­’Ž½]r±ÒõT¡çeƒBX)ÁY"«¼÷T&û: NÖ××go7Þx¡É^D"Q.ØÅ¹ümq8ŒššeyóÊçñ`Nüþ’Éôݼ‰¶¶6ÕÒrv Þ‡«Ôó½ñÞ½ÍÍÍÞÿ°cÇK… ›5«¤xçΟä|ÑzY_½vM 2åe–v|~]R\ÌKKKXr ‰·÷HvÅ»b™¡Ìhÿ¯¶nßZí³ìã[´-wù²eüÄÉ“^ggL÷›PÇ Å5 g`¹–ÉH¡‡|Ö3£@ôÍš ±•âlË9uìøñdv$»¶¡¡áü°yÇæ™92ðÑÓO=S8=T€w7ªU|yКÛa[6#ÒÆ£ <­2¤]Oh…eçì°Ý{çüù¼«« ¯¿^ŸpÓnUCCCt*6&W®{xÚô‚Þ9rÄbÁWÙ™ôq¿#¹ÏfÜ'¹°mÎ}–àŽdܶ8“Ò2 sǵ¶Lù‡—[¯ºÅá0Ö­[Žhœ(ÊcEÜêlÙ¶¥î޲;J—.^*ÞÜÿ¶c Ï^j‹ÏîN´åúj˜m›"´6Fi˜·›«1}€Â‚¼«,;ã´G—.ZT%.^¼TZûƒÚºÆƒoLH$",i½ðè#†N·œu{tI«?X”îNôç4îy‚÷Èh æq®HÿtGí'YWé¿î;z7cdˆRpNdr£ùYwλççÇãñº)ˆ³5sËÊx´»Û3{,É™Œˆˆ6ÿê/ ¤€´!ÃaŒÒ ò4cŒ°ñÙW‰ˆËâbÔ—ÉI=PZZZ"‰hÍ”KàfÝ¢`^.‹1p†1Æ9víÜø©Å9炈ب#¢ÑMh"€AïÜ^û±§ŒÎ¸J·'†Óç¯ ØHß\>‡/Î äÀu½Â)2éLŽßçœAú½î¤›Ng3ª(äsJ D@2.„ 00"¦¡5 ÄÉ2„¡LÖ½Ò5’<5™l§•RL3Çö1¥}Èf³Á)˜dƒÉdže9:Ù;â8?óÛYVš,KP¸Àg‡ÂÚBØcY¥õà°öâ)7}=‘éKe\O)Ï€K 0 dãR ¦<5%€`"Þ×Û›ç8ŽJÄŒCïç§6ºA(ª~° PP€q=mAW©”`Ä“0Èd³'Z¯\QÁ`€ÝRaO“v ÓáèË»`(Zq©°´ŽfB#„áR‚ÿãn’‚ ¬›ïŸmLV\»vCe]÷Ä”#Ùô¾Ó§?ì÷ù||A •iâFkC0Dd ‘Iœk¬íi9Tk 5q©Ál“þ´isæÒáÍ =oAË’tÿ¾»2™!Þrî£þLÚ«Ÿz <4Ǻ»ÓñD`Hüx)*^»@—`àø+»ëžÚ #¤á 0ŒfÁ»¯ì=‡¡G!8Çîûí 2žˆFcˆ÷ô¥6?9%@ss³wÿêÕϽö÷ú—Ÿ}æÉÐÖ…¼¦­Ï$.ö…z×ý|oÁè4:K)%ˆŒ6 ¯ F/ƒœüPoÕ<9ý‘û|57n´Êý÷¥G²Ï½ú_“(co*Z½~ýù-›7Î_µr… îϼxJ4‰ÙqnKHiAØœ 0Ρ•‚R¼Œ ×ÍBe\,Ÿ£Š~ý ³!m³;á5~÷³÷O6/Âh '>Ö˜7\i½òXñÌpQX]á” /õˆ^͸fœC.`4´ÖÐFÃaJ<½Œ-ܽ܊tt|i}p¦o¾u°?3¨¾×ÕÕ>i ŽàÞššjÛ²oÚ¸!÷Á"<;Ýu¿:•ŸÐÁo\r’½i–.p´3'É]VêÍ^2ËT §xw×uyôø?Ô‘#'Ü’p¡*˜–¼ <½¯¾þÍ?L‰ ‹…%K–”2Û¬¸$\¼ý¡-¹åsË““§|\Ï–’KNÜUZe\W¥R7E²ÿ&o½roíoLvuuÇŒV¿‹¬¨y垪{Dɬ\¿vC5núÓÛ÷ôxˆ)«â¡ôn.øoŠfbéâê¼¹esx^n~¿ƒƒCèO&Ñöå5uöÜ…D<­ôóy~go*•*,+Ÿ×¾¨jÏ ñÝÊ twżƒ‡÷އ˜²\€òòr;ŠHÇz˜s¶ÒSÞtÏUA!yŠ3Þëyê=7Ý×6G£Ñ[ÿfÅÚ5éÚõkÄõí˜QX„‘ï!ÚÙéz盓Ðm´fl» êÞµ¥sf¾ußâ*+ÚE8ƪÈJ´w´{M‡¿†øFŒsÎÆ)ׯc¿¥xWìªm;g‡3Û*+ïâÑh ===¨ªªbE…U–Ï.þì“‹“°q3žÊ¾Õ B(ÑÝ}Õ¶g††G¶Í¯üï茡'Þ‹ê%ÕLyw ˜sj¢bÑÐ㌵1ÆÆ0·&Á˜Ï>>× ˜:"ª_¾l±‹ÅèŽ#=4RÔ1QÆ‚L¤zL;VÕ8ûëžèîúRZþ3Ã##ÛTVðÖ¶«î‡gZ~ð@Cým³à[ÈøM8Ñ2.Z²Rúøcrÿïÿs?óÿø¶ù2ÿÎÝ!™H5¿IEND®B`‚PKì³eC¡ôFN›¬F icons/COPYINGUT ;yR;yRux èd\[sÛȱ~Ÿ_1¥KU4wíœädW©­¢$Êb"SZ’²£·€äPD  –ÿþô×Ý xñî‰+[$0ÓÓׯ/#kÿ|?ÙOÃñp2¸·OW÷£kKÿ ÇÓ¡9ò4þ|q¥O‹Ü~ìÙ¿×¹³~úéƒ1öºØîÊôe]Ùóë úð¯?õø+{[:g§ÅªzKJgo‹:_&-г£|Ñïûg<“äß²4·ÓŠž®zö6]Uk{›EÙ³W…¯ðüçýñã‡?¾ÿð§?اéÀØá«+wQ‘z»uå&­*·´UaDŽMò¥]¦¾*Óy]9KÏÎië ¾L7¶XÙjMoféÂåÞÙe±¨7.§ýéy»X'ùKš¿Ø´ÂòyQÙ$ËŠ7·ì›SÌá?¥K6óÌá©ÙÚ…å½]¥ÝÐa¬ìÀKçÓ—\È®’oôá[²³»¢.ÍŠ¸±,6øÆ¯ùy:ÓE'®úÖ^íè0yU&žˆ®h/–§Ë]™dö±žÓÖæ^OGgHóÊåKÙê¥Nˆë [Ùïm…ïL ùý{zd:}MaÓæ8´žåƒ¯ˆFokO Ó'Roº¤Ù@Z²Ýf$lÎüaÁ¸®ê˜VuÞùˆƒ9Ÿ&Éw¶ wJ»-‹—2ÙØ·u•ëj]”ž¸´!å 'MíE¦DÒù´Ø8}픚v·(H‡ˆ}ó ̾wžhO,Í}å’eÿÂÚ碶‹$ç³î¬ÐœW‚= °(Xµ¾®]n߈¯[—|3˜©¾A¥[¹²Äiˆ*¿ôÔlKÚŸøPŸ¢Ì¨^,Ò¤‚R˜uò*Ž”#²'1£ú칪Nùš`ØÆˆI¯´µMWXÚ¾¥~}Ñk¶¢³,\úŠEêr¥—$˜’öâÈþ*^$¥£WñŒ*jGéuÒ=K4.„J,’Ûܽ ½ï—¢Ca¹oyñÖ¬»,°¦ÇÊÄgÏÒ™xµr‹J,‡½žg©ä.âeéÀ©”ÈËòÄŒyº4¤«pY`¦ËÙÒuY „C£ý7ùª€TJØmÉ”§úf&ïtv!‹öYRñâ WV ˜žØÒ—é<ÍÒ*U7„•…£æ¨DcNö@‘²S,ÓÔ—YqK_¸ß’Í6£‡ô‰£Ëùz±¶I`9ñjí`u†~ªR>1» »r´ïS“xIUÿH;RZ*'æÀ­´\`¾ÂŒ,tµ/VÆïî©3½²cë5ª©}k"Í£u¤ ~M*AÏl‚2P¤ âUEaè_ii‚h`ÃÞS\«ÞH¦•ÛúŸíù‡ ŽU:»\'µ4ç/ˆdçª&Q´z[§ÄTðÈó—™{!3ç(è9BkìŦ5à(ÄbŒ÷cª™'A.ÄØ{’»Õ£`U Hž­1(¼*œa†»™k(®¯è5߈B¼i^Ðû%‚ÐŽ·äÓub b´:1L|Ên˜>ß8ìâ2/±`›?& sÐgÔ[øXƒˆ\ó”ƒ(ÄyìXHÒ<Éz´‡ 1†A‘}á´,–õBÈàé’vbrÍD)Dk Gïèm]q€u¹Å×ٮǛÄî $UkB¹i/ŠöàeE!„O¯±q‹¯+„YÒ;øVö ¯Eºäý—ðŽ¥œ˜âWPF2ÎD˜ÞN"Í—ékº¬A”-æìHd“ÎÅçÖ‘n.ØÚ8­Ûeèo C®JÊ]_&éÔ…ÄÌÊÃß$K`»È\¢ ô@b~óB-E5UµÞ)Ú€—§Á÷湄ÁZ?@°-äßX.ǧ‚N(^kÂPè½Ö}©®Ѷ…€Uxÿ}Kφ“ÏS;ߨë‡ñÍh6zOííÄ~||?õìÍh:›Œ®žð?øùáft;ºàlùcŸQÔ1ؤºÉœ§ã¦y+Êoê&€I†Þ$àñ6KTy¡!­Z"OvŠ}7„FI­Yšº FÂФc¾ÈàìQè;#x툋=æ!ŸcDtPÏNôŒ2OÄ´yç°šÙ8 zÖ¥|äè¬u‰Ôô•ÄGÊÆ«ñí³äíg1ð”i¡“Ó¶ò¬²Mu»³²Ý%ë#‹žQš$'€³õÇÿÛê% ÎÏ3j¼€eçwä&É+¬ˆÅ½ælÈ@~‘ÕòØ¢¨¡øoõëÜÉØ³x÷3ÀÐ!üºš û»d¹,ûÌÄÛ3 $g¤Þòõ¯‚ å+PÖ)#é’‘%Ph‹–E;T.Åß2D«+Ÿ²ýS8¥Õƒª$p+SÖùëÕCØã–=…o¼9Uò Å&~ÅDÀ½È½W¼!dË}jZqx´ŠfÂÎçäÝ8,ç …Üˆ›;ëìÅèœG(¾è›¯‚vl£de ìµôÑ$»?’Ñà¦Ë¼ó1¨xc¤ æl! 5¡22>òù®Ã¬Ù¦‹º¨}&»“ÏaÇNºKŸlaèmè ”Èø)ÓZšz=Ä"KÒ q…ˆ0àÒ~sn “€(Ô3òšá `©rÇJˆÃ'sïrÚÎÖ,mð #Ê6WŒPA—u¤|”àØt“dIW@\û4‰ª‘’¤=ŒdÔ«]ï<G¦z-Ær7ÙIÐÞNWI4[õ08sƒ•"0†ü[ÈÒ‚fÍùØjŽ‚=^QNUW˜à1Õ³ñlôDÍAr#äžtÅ= ¬¢§1êd×Þu„êàí‘P2ÕÃ}0Éœìöˆ^’júÞ8'J"§ð. ê?KˆN.ÚŒ`‘Ô^Ò‰@®ÒLÂç‚xËŒ¥3¼Uåx ¿Ê6Næ·øY!x %R/UåyQ“wA•Pƒ0EÇãÙ£/áôƒÓ‰Ð9.%3½€ÀýP+:š.ÚêWÚØâ#Œ/¸Íââö Fè˲¿°œåÌ·°¯©{Ûó‰¼J‹ð·¿-»«Ÿ`;!»ò.[…úcÑÆK ÖqHo4A˜/%ƒ¼Ãòž8±Ž §9Dÿ©ÓRê1²âÞbý ÓÔPøÑ¸>§Á¤QWÞ²µNLM (@ß'”Zï´ÃüAjɯ:i™=K¨CÌAG⋜Vãª.Qɱ…xØ;2>¨6ð ÷6ÄâWäd !6A,[h5-®e·ç,(²5ä³%íù#®}$~okÔŸëªyÁìéœO6Wèmö<œoЇ‘Ì$õ˜böc ûÕojÌ’5B‚¨o'dºZp[‘œO0@À”Bü†ê¸ŠÞ@´¥n0fÍÁBJ#ô'¢r¬Ò½$å’bËŸ^²oˆÒR(›Ñ‹½¨J¹_5þRùı¸(ª2Nõ•‰ËHô˜$w%:˜X) Ðs—–¤´æ¼¡Ýгã~s¥¤Â¡ˆ&u"”3²£ÌŽò§¢$4—¡²²) ЙG92‹T:=8ºäå\ ËjÊ#çWŽ-dö¡ûGþð;@ä?'öµÈjÔ÷W”ôúª()¯R—ÞžO oë„æepuâ5Y§‘¤ rú>Rß?Â>õÈ %–ôóñ!ª˜ÿõ•P'é-êŠý Ù‘ðk¦Áâ>0 -ƒ¨SŠœÊgjSRÞ ´ði° ¼Z!ým¤Ï2Ç¡®”ú2ÇÁ Y¨÷ˆå RðS›ƒôÔæƒÕF5…ïA 5Ýã°€Ux Z­Ø$eJú_‡"Q[0DÌ0vI,ì5€ìðdIcOŒ¸{ö5ÉRYŽx–‘w®¸'çÚ¹¤ä¦M›U0>b‡°ë)W•£³%Åè\z{Œ‹´Ù?W¨­Œ‹õµÇAXxÏ+ìs< ÑûÂéÈqŸÄß?&ƒÓü—“ü2XœÒ®4 ÄSD)+ÃS Ì, ý{=©GDáâY’-¹ø3E1ÚÖ•êÀŠK‰9€(<%emÕŽPE@ÐÃû }1Ôú}ãåó6ø4i´Y9ñ¥”êŽÖóæÂ}E.fÙªu*RZ¸E(âØ4‘¡1§UÛnbFüäæè-ç 1ÑRkL_v7¼»lz3tÑç´IT)m“Jì²Úsb’x_,ÒP#H øn•æ©Ô]‘féóâ‡Ët+ÍelâˆKµLưÕò,KbàОˆNyG‚ÓíŒß:–¸ X¶wpžØ\¸Ý‡¨¡å8tö¸QØTzL¿vެ]ª…º2ñhÎ ˆœ.ZKØ$ÿf°!ftz.'ÅßH]&ÐÄÃ_è ŨRrV¿óA7®1ÁñvÏD‰¸ZçŒ[˜æf+£¨=Q å:s—{äWh!Z+²tn´LÆŠNôZ·Ö Flj¶¥Y¸J­¨6¼e×É5ƒÊ½´/Àm£¼}Q3Î÷æ¬ìxI4,€ë—uäÛSížKs³¥œ):‰Ù«EÌ`Èð?-d€IHŠ5”ýq ]àk Z:Pˆ¢ByÝo[”q9}ÒH¼y„TÐØDy‰”b[†8o ‹“ÛŸÞî-&QAn%5¢@¥± A$…;-Ð#d™Æ  ¹?ÔøV©X13BÇ¥‹ZTlZqaˆ!-ÛAœ†0¶–²¸â@¥ƒèyÑÿVu&Ž%KJYtÑ…ì.Î5¡‘Ûj/ó)J’¡OÍš£“ìk›ã³†£ù‚_Š¶Ý®®ôȃŸ ªA•ßï|ÈÞ$$e%÷ëÖé<­¤PŸ%oM#_óÄÃóÈ:[ ´©ç;é‘qµ¢ƒ¯÷J÷çZ^šI5R“ Ý”ðPԔ؛aÕYÊ\TÈÄÛ¢:êTܶuÉìHÉ$Sk|æŸÄê£AßU ÌOªºÓâWëÂÌž–ê¤nV;í®eË“—ÝÍ׉&48]DaèñéP ýRꊕNd¶ùuGÄ‚ù{MyÕ¤P}x ñ[ÎÚ¿å‚<fíg–£+èùv:Ǽ`ªƒÌZ¼ŽnÓdâohà—ÜÄ ßIni‚¶³ëÒ”„ÕŸ¹Ô»=;NžjYD)[B`‰_ºÔj½mš½K2å©+ë׬3ƒÞ;µ‚†Ö@_댔H>i¦%Ô j$G¼.RÆ„³=«‰Õ”§ã@(vAqŸgÞ4GœÜ«ÀÜF+‰ª¾:pψrí‡ÎÚ~•âÝsX©f'Ð<c¢œ•ðYš›BUZåŸïÚ¶Vœ¥‹‹nÑÈÁ œ"'^¾CÇaÀ=Y.¥ê i¿8<¾]sû¼sÄhâ…š4âŒøáæ(=ÒLªî«ËRÌÉl(0-#ÄsÔ^7pKDÄ\:S‹D‚käŠ ãdÀhxöç‰d椔¡¼¨½Çy±<1`©þÔç1˜“3éàT½(ÝkÊ­[9Æ›_劆7*ûÃébaMô7oгÅk°í@/)À§ðíD»ß¦%°‡"“‡ÝêryìÄܽ°t¤b{x™6â-šYJir"ò0$ck] ¢BuÕFˆd\Ó¡áÃy½™»² ©1×rVœ«ï={Gˆ§Œ¦é4ОÁwcJ« +œõÚ$Ž#vÐhKçQù´‹§Ã„X袊2Œ t¶ ngô æˆ:œ½mgvÇX°×"Û5,E€ùᤦǩ9v9Cæ–~ìì¦Q#ë`¨p0|ƒpâ~ãyT¯Ý»ŽïajÑ4nÃÄ\7<¦zoiE†Mhº‘±›ûÎïmwÊ^/ù2G±q02o84%FßÌ>ë… Ä0æ;—0ÈòHå—--)’Œ­›m¯| j'¨€\N-ƒ½ô~[àÂUŸÎY©ØMÊŽ+@2ذ$£a¤yåEüI¶û‹Pãûu0™ ƳgVŠ}{5¼ {xn2ÄñZ˜š §øçá?gÃñÌ>'ŸG³­võl´øàê~hï_‰ÅÃ^göëÝpl°ü×Ñ3 ðÂhl¿NF³Ñø/ˆÑÜÉèÓÝÌÞ=Üß '<¿ûíÎ/ÚÇÁd6N ÑñetÓ=ÔÙ`JdŸÙ¯£ÙÝÃÓ¬!‡ŒŸí?F㛞Žx¡á?'Ã)ßÐÚ£ÏDñ¾¯ïŸnx4øŠV?̈Ot2¢söÀ¬ φՉZß|NˆãÙàjt?¢-1K|;ši ž8å×O÷:ÄÓäña:DM,¤Eˆá“Ñôv05ÊØ_ŸÍBÄ]Zãó`|Í‚Ú$ŽkŸžJèÜ÷7xÀ„À¨¡½Þ¯g£/$^z’¶™>}*¿§3fÐý½¯‰ÞÁäÙN‡“/£kðÁL†ƒ±SÓ“ Vy‹Ãù؇ðHK†_ Oã{œv2üõ‰ÎsD°Æài˜ÉÝ|ÑæÐ¾ð{ü }Ñ ÿ™ÔèÁ~<˨ö³ª‘ÙÌrwµ‚”¢ÕÎÁÕxpEôŒ˜," ˆnŸŸ†Óži”€·Öñòž>¯Gø}OªG²¾®ýú)Òºˆ8q4衊 6]¡½÷íò¼Ý{Oÿ ÷S(m2X¦˜þ¾âéÉpLübs\_?MÈ´ðÞ j¦Odl£1 Åà¼lÍ£ÉM°'æ³½ŒîŸ&:F;? ±$ëZ# dÓ‹ë€ÝÒV×w*=Û±Úg{G¢¸Òcƒ›/#xÙÇ-LGÊ“]AùxÊÛÑiùí#þÝ7îd˜jÀY«Tbg èÃgxæ1¡" ‡¯j]RΊ-Eq…Mí´et%Ngù4ª¾ð•_ÊU¤œVû&PI ¨™9R ¸v½F*"èH¦á9X¥•é –ÍÌ/uŠ ÑåѦ§ÊŒá](ÝVU¢©C5#¿bJ¹‚8Â)“OV8(nÞÞ„‡y [QøF[1h 6×KåÒŠL’xu;mmÊ÷ŠçÚ‘džôÁR¼†_sÁ…` `°Öà†3þ¹–·ì¶àT‰'vxÞZKs‚/D“T»þ~òûa° bÀ;BuhdÉÒsJRV–°A"3G kÏŽÿÂkuïdÿ  ¿Ð¼à££_d_Î_£;Gy_6";R˜ÜÞ'“9ËêøPè±»Éíü¶ïÌf¦ï4¢j¯[Èmô°É}Û4ãUλ³Ô‡@»œqÇVóµ5†*ås@gdV$ΞL•Pæ>Sú—Í= í(r8ãÁÂ0øIˆKìÇnbîÝSÇzÂ+|‡Ír/þ"!óztàc½nç-:ã$ß“zh2¥+ÝΖ——H|I×ÿ Vn~-ýùï3®°`¼ å„xš7qÂ<„ —3¬†ÚÊ"§3É-BJÈ÷¥™”H;ƒ9Ö^ðáúIV–Íèo–~jxN’žcÿäåîEg"–ŒÈéàÕ§œÐø«¤AÅÿòSoÏ¢aжkÍo/(íÐk§ƒ«éÃ=!’ûçM_²V¨BØjG*þ/¾ðúö®ßƾGh£‡—aðuÏAð zãª)4…Üí2Þnñ.&¤/.ëÝ!÷ÃÚÙð@Óм­.ëvî tΓ·ÔV܂ѮI»·˜=ª¡;TBЛãÎ1%t\Šˆ®H%MoÜ`æGù”bG¯‡ËòÍÔ²¾½qå…•ëߥñÈõ3é‰ä2÷ަ4®ÛµU¼ö¢ÎY{Ÿ% terÜ®÷rÉóNçÙŒ[l3 ÷õ'; 0;—º25ýÒäèèÞ¾N¾/qéâò#%Ígétæì“8†Ù™±r=)eO§á=Ã{f|øÛï~ü*•Jå2™LaÇþ.,#¿øû@Ç_8„ão¿1ôKîÒµ“Ÿ~ät[KD‘Œ±pþÍÂùÌ»¡ ÇÁºqs£Æø;ÇßäBˆ¶wÆ(%¡µ‚TJ)h-¡”„çûÈåòoõŒ@«|_¢TZGyu`,ä‹¿f ṃûñìX¼Í `­T«5”nW0.Î]þWc0;÷>b.€– ·P@ªµÔj "„)brrŽã4Wè `)¨eÚhG€±(’É#] lå½?ð¶lAt¥ 5Ínpœ„pÏ÷ŸÝPLMMÆæ?·@A 4§§§.ÞúŸ­ûp{ÁX»Ù†Í©(¥ì"ïô,6€PRm¶¡56ða­EþJ éy”Ëåm,®õª€¡™)ßuÅi³s3 !>7Ɖ¹®#¥¿ DŒŒŒ4Z’€×^?Šçã ÐÔââuä~»œu€1|qìXr<‘8¸™ïNqÆïcÝ…ô8*Wëžç5¸ ¤œÛ·7Îû»h{‡å@Ý*ÞQÄXŽ€ÒráÚJ¡Ö8·wÿò<õºå†ÿá@í÷“`#õ:†b±Ùb•Je8Bü™žOÙlVZ¢‹7 ·a­Ýõ«X¼‹êÃG¿@3çlõîjvi¹`­5»~k nþs•{÷.-<‘HzåÕ—&¢ñ*´01p.Ö.|ÿÃáJ¥r«µç€1q :YžL@À}lo„>Õîê_õ¹÷k NIEND®B`‚PK ì³eC-¹µ˜ùùicons/zoom-out.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆ°IDATX…­—ßsUÕÇ¿{­½Ï9÷g ?o#ÆP‚‚´?Ô±TmëtìL}ÐVÿŸ:Ó>õ¡SŸ:S;}h§´„ˆ2j«¬Å¶I0’Ü_I€ÜÜ$÷ÞsöÞ}ˆØ˜I‚ý±fÖì½æœ9ë³~ÍÞGà&²oß>îSžû„b¹ÓtM”cR:S’i¬¬ƒwt©ü Ouww—oö½…"–zÐÕÕ%kU?`V?­O$°m[gÅ­-·r,E8A>?‰«×®áÒ¥Kº¯ïìd.›ƒ¯õ‹¹‰—Ož<üOO>ùÍF©"o­^ÝPÿÔSß‹G"ü³À %“zf¦@:(KÇx¡°i¨¯çÆÆÊOæñ§ƒ‡ò™\&]š.=xèСáÿ à±'ÛrÜã}ko|{g'Ÿ8u*M›ë¶r¤ js†b3%8¾cKJšéP„ÆëªäÕÕÕ••´¡­Uží;§ß:~<_ž-ïîéé9ÿ<ú䣫¢*rá¹gXS]Y…#oÕãº~ à4¸Ž "!ŒµÖj‹À«­0~ -L@ 5º&áNܶ~}+g2¼òJ÷˜_ôÛ{zzRËÐ|˜¸ŠÝ¿oÿÊêªJ9vÌOaÃSÑ6º"â°§8ä‡K×e9’=Eì:LJ9vÌÞ’¼Tj9=Ð?ä×'xàݕғGËò|á›={÷ì_·nÝwö<º'òzoo0‚õgÃ+Å+Ù‘ÄJI&RŠ…bR² BB@¢l½R>ˆŒ‡üT}[[«L&/;Õ5ÕCý—èêê’ñŠxïó?z¾îÂÅ¿ùC×c*Ö8rYz®$GÍ©RLü™cb, L AB ”µ*Y?J³+o¿­9ÚwþÂöU‰ú—’ɤY²‘ŠHW]]­çy.ÆÇ&tÉmÊ„C{Ž"ÏQ )öfבr…\‡\G’«${®$וä:J¸Ž"å*‘*V–ü@Ç+*°rE¥§øàôõP(ÄD“l5ØX ˆŒo¤  Œ e+r­R ¬$+ÅrNG‰{n ­+•¦¹ïÜ…ë¥bн,€ p2Ísc9D®üîV´j!lÙÑ`c@ÆKޱRYV¤« ” ¥˜å33žÙn6©T¹ñ«ÅˆË§–`H&“¦¾±q$“Îì¾§sKìö^uùäfÔ I ’’%„b(©ÀŠAD°b.+ì\/‹Î[¨ú…]áÝÙìeçw8p5›áý÷ÞýxYN&?YQUõíçU77­Q;[ÜæTžÒ邚&%ÁRA: ,çÒ.„€ÖXkm±£YÔþø‘ÈC™LÒ9ñö;A_ß…ÁÓ~÷…¥œV&=ƒýƒOׯª‹$j«äý­^KUæïãrÂâ¹³’€50ÆÀX´|®“6>³ÝéùÔùðL^}íðõRAß›É /9‚À"gõæmÛ6¹Ž{ü‘‡¿ÿÚƒ]‰WûžÖgSêŽð•ËÓ^~¢HÅ*Ïxk#¥xgc°¦cµm™™âlæ²zóøÛúر~C¢Æ«¬Z95S(|¤s »ûÕ—07ÅË@GGG#¹á·êõO<¾'ÞÒÜ„h´B‡"ñÀUŠ öµÑ%ß×SS×dþú5îÀkæ3™lÚý³®Û~yWû]²au.'¯èÞ7zõÇßxn!IJ·âÉéâ3,ù'µu5غeSEsÓZ®ˆÇ‡P(Lãz>KŸ&õÙsMŽåÆ`´y±"ì½<55UÓÔrëðÝí8‹á޶Vd3éàðëG_^±ìu ZZZÜH¼²KyÎ~fÚè :ðuL*žb≠ÐïøÅò‰\êd*•ºñ_`wìÞU|è«»äå+è«©ÅŽ®{‘ ^?òEˆ¥ÄM‹¬vþº¡}óîÆµ«^ûÊ–v'5’B"‘À}];1<2í}ãsˆ/LÁç´@yÁ~¡ÎWä2é!×õÎfJ{ÛÚÖq*•Æøø8ÚÛÛ©¶¦ªÝ ¹õ?þäèR´ âåìûù €Ëf‡\7rfzfvïú¶Ûyd4ñÜ6ul")Õ‘Xô=¹€`8˜ocžE`nÁìÅ¿ž; Ø}Bˆîí[œt:±lÅéY-FËÀ|ÅÔÌ[ç«^`ÞécÙÌ§Ê Ÿ™™Ý»¡­•û/ ù§Ïôýüð¡žî›NÁ—…M¸X™ïîØ©Bü´‚:øá_Þ=Àþ?¾,äb¾ì¿}ƒÚžv hIEND®B`‚PK ì³eCR—WÉTTicons/list-add.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<æIDATX…í—ÝjÔpÅÏùÏÄĬۂt½p¡ª¬mßÂÒ¢h+Õ"ÞÖèEõ© ˆB÷£-jm>Æ m·ÛÝ5Yš›=H 3ç™9Ihf¨R®R÷9-Z¸¾ÑŠ’4]&iÌ©ûüîèÃʤYÖ|¹·O€43ì<º\¤O¹G@¢ÓmC´x›Ò3Pvg6„EA*ß‚9@å#s`}ãa”fis2`ƒŒ$ÔÓœ$H‚ ÂÛá¯ÖÚj2ÜëâpªÊ—·Gï/…ÕH€$MV^í¿¾à ìÏ)3ÀÑÁ ¡ªpâ°ólן´Ÿl_ «k“PUÐév&´D½^oì=$±´Ôís]Ñy’`qaq"ÀqûÆ=8rÈõòE’œO "ý½»á8ã°v'ÛÚÜ=σ§Šƒ7ßûñ‰fYF’0³¿yžÓÌ ¢ý©‚[áý8ŽƒqI’vÈ3Ðé¶Ë~4«ÿüvzj¾ï[DZA`µZÍ¢(J§8<<<p6 µ¶ qª øþݯƒÚ©U*œ<õ NŠ÷(à't¾ŽËjF¯áM5ž @žå¨×0”:ÿ¥Â¥êy7·= É<Ï©¢'ѧ«{>IœÿšÍªø g?ŸfºŽTbIEND®B`‚PK ì³eCeÜ7ÇÊÊicons/window-new.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆIDATX…í—?lUÆóv÷þïÙwg;vÀVˆM"‘ %4@ €†‚*U ê´ZDŠD@¤£$Ó¤HI $–â(qÛñÝùöv÷vßPœø8GŽ¥4|ÍÛff¾ï{oÞ΃' Ù­DªG½F#ôÁÖ\WJ’ˆg¢$qi,U«3-Ò]' Š,1ÙpÒ¢55Æ«¹nnIE4Pcº°תÕÙú®¸|ùpfbÂ9`4Ý0ŠêPÕ<¨QL"¢ZsôFnDZ^©T.ßÁn!ðâÛ§ß]M9ÓéØüvÅ£LŽ×yf¬ÎØp‹=Õ€Z9¤\Œ(ä S'˜¹ùÍV‡•Õ,KõËõbgb8øì½7þø¢P¸4ànN©9ûæë/{SãCÛª/fïQó¯ãîâçîRÊ-PÈ´ÉfÚ” ïϧR¾O}õ aœ#ˆŠÜºWòÎÿn>¶–iÕ©ºÈLãA”xGìåü•Tÿ»¸çÆìž™Çqæ)eçÉx øùû¸î^r¹ÈfßÇO¾Å5sÄIÈÄè8–Wб ð¦T¹à>œ<—ó(ûïÀ@¡ÍÐ@Lm M­Ü¤ê¯P-.㺯àeN 2€H/÷)ð 5ÿ*A§Hm tÜ=p¸°…€ç˜¾Å¥”mõBr^ÀhåcÕ“¸î$"ån½€W:K^›øéÏMþ€èlETËí¶3ø¯ZÞzi˜×ös ÅÈ ÆqqÝÏ{ðúÏ=Ĉÿ ª¶ Æä4MË[ä:ÎS‚Iº+)6½@~$ÛÄ¥ÄÑ)‚àWqÄŠ+B¦¿ß=a@îŠAÕ!M~¡}Ý7ªIšü´v¸Å*šªº ƒjÕ, $éÏ}£’äG”<ÄCDÛF“$jõô[ûõ `©`( RBñQ­`ˆúÓ–!¬ q¢Vê¨4“å«¶o2ÁJ U …#7 X$M/bÌŒyª#Gs‰ ½ˆ ‹â™Åé駃-°¶?È`eWˆiÄÀÖÞ¡Ÿ!é|Ä Y\÷8^æ”=À2«­¹“Oâ™cǦ“­(è6tUŽÒDHPQÂð:Q| Cdh âE†§±Z¡ßO£y›$q®Q¾¸ ý Ölï€`í8ŽQ0jrˆúXZˆD€¢8݃ª%¬V€ î¯\¥\~vVä‚ö$ °íØ€‡Ú}Xòˆ1Ò@h#Ó½'ܵn)¢ZƘì¬ü†È¹“[ð¨l8‘¦£ˆTibL¡ëjPÉcí ª%” ªŽ ;jÃÞ1 FšÖ€”Q£ÿU³Ã.Ø›Unäê%kG÷Àα•BÏ6||¹þãvÁc×ïݨîè öƒˆÐkÎ[' @Ñgi~a¾6ñôþÝ{±¬Aù…;ã,% è:¸7oü}òܹï>·Vw¹~·ˆ‘•›7æNÒn€t³P(¹µoÃî=Ý”õ B XûþOÿ‚]üp:ð$IEND®B`‚PKì³eCIUÙMOicons/list-remove.pngUT ;yR;yRux èdë ðsçå’âb``àõôp Ò ÌÁ$‹«ª¾)–b'Ï ¨áHéò%K\#J‚óÓJÊ‹RÊËËõ2󲋓 Rõò‹Òg¿³‘*zèéâÑúöš=w“ƒÄñ÷KÛ½œô¶YÜ8Õç~åB€Ë+¥©7/%MPÑ›WÊ;ÕõßIƒ w:öU_yŸn³lŠÓäÕW3æ2°(00r|àg˜Xn!ñ­Ü³¨°NN¸fd~µ~Åpîg¡ÙümŒŠª7D?– ôš*&ÿù:wÿƒGœ ¹ê]J² &¾Þÿæ*Yÿºj—93£ƒËLcß`Ɔç•'«»/Ní8è‚É®Ÿ öWŽŠtˆ=Ëàéêç²Î)¡ PK ì³eCè+þ<‰‰icons/package-x-generic.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆ@IDATX…Å—KˆU†¿s«ºúÝÓL¢yŒ!!&1At#$Qt+>Á€‹¨ &påBDѺpáBDHˆ`0 Š ¸L£«, LƉÉôŒ™ŒÓ™šîª{\tÏLõ»ÇH<›ºuî¹çü÷¿ÿ¹] ÿ³ÉÍ&8þ ‰g æ­ÄÒ»‡>§¶–õæfÔ¼B܉ÅÙºwÿkþúìĉ#¹‡o)”¥;vÞØµïà¦Tv䳓/œùäXnç-`ÚãÏOc«SŒmݜްᶪúÓ‰³ï>¶!Óoí@ |z$;Z7ᘊ3¦V·9¢ÛÁìFØf•q…³¢úÀ=û¥2}ae]Ì\¿¾X©VE—X=% C8ýž?š=%{$•ߨÉt!Hfòâ%²1/™u½Ô^"‡q=~øòmî=ð8åâ/¹|ß§X,j¨áÄÖ_K»MÚ©13s•KÌý=‡µ«l‹ë Œë<ÝYªÍŽÍÝ™[7¶Ñ8±¾ÅÔ†Tj.Õº‹u’¤Ò¼dÙ¹*¿_¾ÄÌìu‚°Áx&•ÁZ›>~$»gúä–»ö»«Œ¤ ¹¤I®`Œ!0iÊaŽk-piâ®MOSÒÉ”±¯Gstr…gr£ÛZýªØÐGÃ6°¶NP«ã/-!"ˆiìC ˆ(b,PZJ15)û”+W ň÷`Åìu¼4¥© ,.Tð—|Êó%æË%fgoP©ú„V±îÛÁg‰¥òd“6:¨.ãF›Ïº…Êü W;çõe@mHÌ‹Süa½õyØ‘O‰•XiŠTŸZ©H­\Œdj°Û÷=ÁÕ‹çZo4iu:SÉp¿]ím¸lªa‡¯'cºu¨´!ŠÎtu¶´ã"쀈°ºQëmÒ%Ä@0ˆ8=òKÏ×®,¬L è°¢GÐg—ÒZ½kD« €6¶â°Ë~QÃj S„½w:”øV¬áÚhÍ;X|Ñá²G†€˜Õëµ[âND½"ÚÀ®å{W|­µ‡c£¶ËG0T+¶"êõoÚpÕÙ-´Y¨÷ Ùhˆ.p—‹54Йq-íØ!«GºÈ ¨Úº¸^ø)zÕÔŽ"–æ—q¾/÷rñâw;6?6ŒdQÔ†`TC4 @CÔ†¨Íw‹Ú:j-jƒF, Tf&/àNñfí @ðÍù…WÔ~ñAììéÍâÆ#ÛjÒ9Gª:ê_Gæm¨uëN}}~áU NS‘í¼ÅQ ×\=Ô·á¶Œ¦Ì6Ÿ]•dhˆä¿ùߨi‹4à&G]‹_L½IEND®B`‚PK ì³eC²‡±Q  icons/zoom-in.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆÌIDATX…­—[lT׆ÿµ/ç2ã±Á7Ƈq $· 0á–*J!K£*¨E*©ú’×ô±}ª”*mªV*U*µIL(°¹•š$J“€!iEÛŒ ¶gÆã±±gÆöœ9gïÝCäXfH/KZÚkéÍúö¿/g á>¶wï^ 6JÇ~Nr±ÁTU"BXYÁÙ`Aï)¯ð6 .477î÷{Óîõ ‹‰êhÅ÷8—?©‰F±fÍÚ²Eõ‹x¤¤¡P™Ì(†oßFWW—êè¸4šHÁW굡ÔСöööàxþùoÖ >;o^mÍK/}§4ãóÎkº»§Gç˜ Œ K;nH×ÖÔðººZ–ÍàOGe’©dÂó¶;v¬÷¿ØýÜîå®eŸÛý­=¥ëÖ®åç/\úûzÄ”÷å¨:¥Yd܃å[Æ“B¹a–žS!†çU–—³¥ âRÇeuöܹLa¢°¹¥¥åʰóùsKdøÓWþ ª²¼'Oµª´ª¹–³öÙ– ƈ´1Æ(ƒ@k£ i?P:`QÙÿ@ÔzpÉ’žL&ñöÛ̓~Þojii‰`SaJe¤ußÞ}³++Êqòôi?Ž¥uYcÿ¬ˆËCŽä®Í¸+¹°mÎ]KpG2n[œIi™Aóµž.¯þ“kÝ~M4Š-[6— G´Î¤òTãwƒ]{ví[¼xñ‹»vî Ÿhk ú°äRhV4ïÚ‚[‚q);Öö~Óµ½5]ݽ5]ݽsoÜì›ûТùI*ÇËá´ëÇkDOÏM«²ª²ûZ絫EˆÅbÂ’Öë/¾ðbùG—ü´®í Eªó®Å…ëî: 9gŒ¨õÍýÔúæ~jûåwÁˆ(ìÚÌq$³,Á,)hBG²½ãŸ§GüíOo+çB¼‹ÅDQ€pY86gNµã86ÒƒCʳ$C®ÅK2Ç’Üu%w,ΉˆcÈe3 1rlÁl[0Û’d[’I[R<_Ùïù*-+ÃìYåŽt䯢–´Ÿ]½jõ¬[½}:£+%%“’3ËdY‚9–à¶-cwÄfDD"‚”œI)˜esfYœ¤àL ƒ^i<_ðÕ²G–Ìâ\î½€âlÓ x|`ÀŸsÓ–äL F¿o>³l²(dˆ ºDDæ­#g5€ÑÚÀfÇÓ±£a¯dÐèѺººZID›Šø¿:RV $ <ä1ÆÁ8Ìñ7öß©gpgC“`cdNüb?0ÆÆÛø;¤s*åúè¨üíuóùÊ’p |?¨* àå½’ë‚ Î CÁ@ÆÏç ž*F†år“Ä@dÀG~b “…µ1†Ëº+¨æ¿¦û•RL3Çv™Ò. …B¤(“,7šÉ”Y–£3CÁ±+ã‰mQnÌ÷2Š„,!b`D F„ññqØŽkŒ‚ö'Å7~AA).%À€h„9ŒK5–Ë &x¶(€`"5<4Tæ8ŽËOÄŒƒ°õào 4œùÕx À˜Íß?4©?hAp ¨Ÿƒˆ«ÑlV0bƒÅ— P8ßyýú•+V°Åå*Ú¦e3ŒÂo>)¹€°9ˆ8ÒWNî "ùhòu··hÀø A @¾ƒ-K¬ŒñDOÏ-Uðýó÷`0QÈþè£OF\×åKki&n¸6`:`LûZèRd€³É ”ˆÀ¥„à$9„˜tË’ôõÝÅž7Æ;.:âåƒæ¢"@{b` ŸL!²Å·W£A™‚fZk ¦ ãÚ€`@˜T€"H)Á¹˜„àÄ9l5 D<ž@*=œÛüBQ€ööö`"ï½úÇ·š‡] öîe|Íê:SÉ›”šs0ÆA¶<„-aëÁC Bp0ÉAœ1†'ÉÊ­IÚGŸÎO^-Ö LýRѓ۶]ÙµsÇ’Ö â!ïDÛńⶄ”„=9[Æ9´RP*@àùðý”çcÝ|Uý£§œgâñ.ûÌÙóAÛ©?_ýðBûc˜¼Df4>5™¶\ï¼þrÍÜ9áhu…x²Á©¯Cÿ3-†4ãšñÉ5æRFCk m4¦Ä+kÙ²ë¬X_ß ëã‹x÷Èñ/§žH&{ïy§+X±fÍrÛ²Ï}cÇ3¥Omñpi¥ï8!u).ÿõq¿usÌÉ åY¾ÂÑÎü°Wº¶.x`Õ<Ó0>žåÉ›ò̹¿¨Ó§ÏûµÑ*§¼bvv<—ûLúpsó»?ŸI‰›…U«VÕ1;t¶¦6Zóܳ»Jë.@II™rÃ¥-%—œ¸¯´ò|_e³·Efä6ï¼~ G޶f’É„Ñê§±õk~ýhÓ£¢v^-nöÜRm§Ú~óο2¢hW<:–?Àÿqõœ*¬^¹¼lá‚ù¼¬4‚PÈE.7†‘L]7zԥ˟¦¡•~­,äÊf³U êõ>Ö´”—D"x¸±ÉDpüDë¡éEÛ%¨¯¯·Ã¥å1éXû8gT¾Šɳœñ¡ PïùùÂá¡T¼=ßý_`Öoޔ߾m“¸y«sªª±>öâýýÁ‰“_†¸ÝÇ1Ãh¦ŽK›Vl®›?÷Èã+›¬x_ÑhcÐÛ×´¶úâK§`Zq6Íù´xºO}—RÉD·m;—rãÞžÆÆÅ<O N£©©‰UWU4Y®]sõïÿh½›6ãbùÝx* ÁnÛ_ŸØ³¤ñ!Þן@:5„å«–3!ä#áHÉ35‹€žV`jŽ)9f€¹; À\ýÛåvÀì%¢æukWZ‰Dƒ)äÇ&@ŠúfR`*ÈL®§ŒS]MË¿ØéƒÉÒ ]Ÿ˜Ø³´±wvuûŸ\ìøÙñc-Í÷=_Á¦o™– °ì±U¤Ë_–G?þðý£Ìÿà«BÎTËüöõÒOÔ¦ÖBIEND®B`‚PK ì³eCí< Ì2 2 icons/zoom-original.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆéIDATX…­—klTÇÇÿóº]¯ »¶Yc Ø8àŠ“[HÒ&yªJ‘Ú´Š”ÏùT©ýÒJ©µj¥ò¡•ª¦Ô$Řòj6 Hjcã5¶÷í×®½Þ»÷ÎL?8DŽe/éãHG3G÷jÎoÎcî\‚›ÈáÇ ÀÛ',óÁø^דUžW pnä8£é¢ôÞ–NñÀÏ···o¶Þb!Ë=ˆD"¼:ú!câ5á0vïn«ØÐ¸ÊÊàóù‘ÍNcbrƒƒƒ²··g:•LÁ•òùñÔøÑsçÎyÿÀ£>XÇ…ÿ5kjkž|ò»å~¿}ýWÕP4*óù*½"eÜP–íSµ55¬®®–f§³øû‰Žl"•ˆ;³ÎÝ#ÿÀC<´Ý6̳}çPùímm¬ûüyol,®¦tpt†T§ 䮡ÁÕ¬í§™U!>±¦2¤-ÍM¼§÷’|ãìÙlq®x ³³ó£ÿàGX]&ü?óãŸTUC8õZ—ÌÈš«3Fèi˜ ”¥µÖRÃSJKM”ëI åѰ[6ÇoÙ¼¹‰% ;Öžv nkggg¬]S.]GYY âÔ™3n -UEóØŠ€Í|–`¶I™-7MÆlƒ3KPfŒ aè´^t/\írkÂaÜu× ·x×RQ^(ìÆäࡃG6nÜøøÁúOž>íbsoE¸`›œœ2!(…TâT÷û[GV¬¾6<ºzÓ†u ¢¶œ¬çÏØn¬¦¹¹‰G£ÃFeUåÐÕþ«WJF ‰pC/<þØãÁz{ÜŒªí÷ª ¶Á¸mqf[µ ·cÉÊ'ïÝF»~ó=rú·?%„øm“Z– †Á©!8™SÜH>Ô—IO¹÷}ëž ãü…H$ÂKø+ü‘U«ª-Ë2‘IKǬOølƒY† –!Ø_;º·ž|ý½–ªjß½…B„€P b™œš&§¦!ˆi*LAb…Ê1ÇõdyEV®ZÂû–à`óá];w­¸>2ª²*/+³¨Œ#†`”R‚c¿|J)‡H%AÑ„Á¨¨„ô´ÒˆJ;å±EwÝ–­›W¤R©ÃÞ\6„Ñý õõ,ÉÈ9^•‚QÁ)aŒPÁ !óuD(¥Ä¶} ”™˜ß½a"'†ÁˆœL8ei­ êêj!dɸE·:PQ(EÁ|¥ ”1pÎ5% ÀƒÏý>÷'€€B)¡„&#œSbpNg$3# ç¯L¦Ï\ÎsÆh™¿ ®ëU•LSpÊ|¶ Æ…ðyɬ[(Y´­º÷ÿôûû8'äÅ£'6 PÊ@@@¥³NÑHÌe?ÊfGRù‚”œ*j™6•ÊF±X ” ‚ÎLg³†a©ìøœ×ñQ>î3 bbœ„C¶ôs3›÷êp$…t•žÌ¹êwoNôMäדÚÓ`B¨E™³39N9襈Ӥ&ÆÇ+,ËR³…9€P-Aáj(®ãSj.žõæòEéιž”§µ#5¤KÝy§¡àŸŸ;«ar:—ã”ÐtÉpŠÅîþøéÆ  {Š(WS%)WLy”)I¸Òó•§)ådþeB€™BÌ+œqܵٷVë"F¯Ë¢ëv—˜+ŽðÁ…)Û¶YK-©W„i ¦4¨ò(U®âʃPÑÀ| `Lp&@çój‚Üq‹½ÑqfY不œ‚×^:ÎÅ“ÉB*‚?äOìBÓK—ÉgEEµ¡ ~t€ž'€òóÅ<¥ðôfÑÅâHe& ~“_€@4U5uu£‰xâÀm;›ªØêáI:šÊ‹<å”χշ~K_ùúÖ¾²úm}þµ[ú¬5Í}€&Zk@i´­§•Ïî÷H&‡?¿t|"™Ì<ûwßù¤$ŒD£Ÿ®…³-«²¡~­ØÛh6IJ4Ÿ³Tp0.À Ƙ d¾ µÒPZRcO©þÙýþû‰¨ÑýÖÛ^oïÇÞ{çÙåœ V†ÃýOÕ¬^åW‡ø7š¬Æê³ W”©ùÉ h¥”V°¨äÏ´Ñ-OßnDFG¯^ìÅ˯¼:åÌÈ;‰‘e[Xâ[}ÛîÝÛMÃ<{ÿ·ï-ÿæÝæ/¯t-Ë'{bâ_޲ëóVv¼@ !KYëüNy[·vçÝ”ÏçX21,^?û–XÞØP²² iûË=S&a®TÒq]™ËMòìÔ$븊WNte‰d\+ù«ÈžÝ¿ßֺ׮©Åpôº<ýÚé?üí/ÇŸY QòV<=[xšqöóêUUصc{ECý:VQ€ÏgcffSÙ,¯EeÏ¥ËÓéTJªç+|ÖÑ\.WU߸aäÖÖVàkÍMH&âÞ«'»Ž.†(y]€ÆÆFÓ_ŒË8ÂÝëI¯Òse€ –c”{ž|Û-§bçb±Øÿ½çÀþÂ}÷ìçÃ×G°ªª{"w"66æ<õeˆåÈMKŒzáØÒzÛºu«_ùúŽV#6C8ƾÈ^ŒŒŽx]§_ûâK]°È9]¤lÑ|±.|—¤ñ!Ó´zfòΡææ,‹#“É µµ•VW…Z Û¬¹òɧ]ËÐE;.eߘ/!H:™2MÿÅÙüÜ¡ÍÍ›ØèX™Ô8¶ïÜN9[ý²w—º,jj‘ƒ…6ØXæÆ&}埗Îú0!¤ýö¶F<G:™BavD’Ñ¥"°d)U Æ…*Ù_Tz:™¸& ßÅüÜÜ¡–æ&Ö?8ä^¸ØûëW;:ÛoÚ_AáRil¹uç^a³§ĉßçýÿøªKùÒÿy³ßÀÃü@îIEND®B`‚PK ì³eC ÍÖ icons/dialog-information.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<IDATX…­–[Œ•WÇÿk_¾ï;sæÌœ¹0ÃÀ´3t¦­0@µÄ‰1VlH&MS-±/>éCIã¦5¦1–ôA‰¦‰ñ’¶JMÓ´jÄš(S¤ )Uh‡ tdàtîç:ç»ì½—ç´b2Ìœ¡~ÉþÖÃNþÿß^{­EÌŒÕ|ûíð%€ªEH€ßè@#μ¸[±Q=j`ß¡³Ý¿ÒäËm=Y®Í*¯§Íw$ˆJ Í–7]°ÉT!ÑÖñ÷^Ü¿ý¥ÿÀ¾CgÄGîëKÉþ5ž-Vc[¬D._Ž,´¦}Ù’öeK“ ©†G˘-Æ'㉗ì˜ýTûž9М’w ¦œ³Iüa. z»2º=“R'©´Û©…Š)Uמ TÿÚVoìF•Ηbc±éÈS_˜¹•¾ZáäC)_>½ëÞT˜›+E ¥ÈnèÉú ­K·¦} Tÿ13&>*Æÿø WyÿÊLØßÕtW³ÿÎXá7öÞÊC,c.~ys¯g¦Êq¾¹;º2ÞW·õµdÓ¾D$ˆHˆZ”BÐÀº¬ÿ•ûïÌ()éêt!éïò]gFïþæ3'[5Àß_Û¦ûš|Í•Bë)IŸìjÒ²îH€ €ˆ>Y‚ëÚÓzm{Zi%é£ùJüÅ¡6–‚ùõk];÷Ä`—¦Ü\%ÑJ’§¥È6ûòc#AD¢êDDÔžI)_+çlÒÛÀ9·sU‚x£¯ÙHIôðλZîím÷犡©¶f$>A ¨…R5v¾–äiIQbÑ•õ”µv{Ã>{ª?Ðcêï Úšµ®#­Ç&çãÅ(q53ÀZ¦(±"±ŽµLLä ±c†§¥ð”$ë˜;[}"¸ÝKy-ÙÖÚ-ÍŠbc¹;Û¤‰€06ŽAxõø˜i ´Þ¼¡S´g()81Ž.M.ÐÉ]wR ¹e°Sž2D×–ÑÌ[pÎÍʼn#)…±uÌÀT¾jß:7™ÎÍVôÎÍ=Qq1¶¾§‹Ž¶&|ö3]ô÷ÓWu¾н 8;Ç’ÃÂZ³äƒt« \˜-„é”—)½u6ÌÍ•Mh,ûžÀƾöäóC댯¥Rž"0øîõmö'©¿§Õj%È:Až’òJ®„ĸcKy-Yo<ýåâb˜œ+Æž¯•(V'… ¡þÎäâ¿çµVBh%È×Rž§È÷¤BÐ¥ky±u Ë*)HIAÍVoŸÏQœ˜ç€ÄاFÆæ9›ö¤)½Ý»këúXI­$i%É×’­Dà)1~#¯º;š¸­%€’‚2)O~pežæ‹Õ׆öÈĪŽ>ûµ·ŠÑåÜ|U§-ëmG;6õ)ˆ¤ ÒJ§¥<)|-Ååɼصu½«ï#å+úÛ™+ÅæÇ·òYæ%cžº0m2Mž Po?"‚µgX A¾§„V’Š•÷ v± ¢”§èŸ—¦E¥šœ9ý‹ÇFo ÀZû—™üâüõ™Š <)À f+Á‰b›(vF1[a­Ål~‘îìnA[&`¬$ÑÑw&’(6Ï,ç±,Àñç¿Áqbž87iRž"¸j8J1[Ä’™É8K±1´PªÒƾ¬°6ÖG7Šr¡åF^xüømÔ³ð‡ë³åÅÉé¢ö)pì`¬Eb,’Ä ŒHÁèhña#Bâ==F‰ýÑJú+œ:ü¨‰bs௧.AI ÁZcbcÅQœ “Ö°ì 876‡K“ó1€#Ÿœs¿×ñhø«?Ç|ÑÀÓ<- ˆ0À Fi1Âk'.âÕcï–¢Äíyáñd%톇ÒáßÒþ‘â#ϟ܃ÙR€Þ5 ë×dàkåjˆé…EÊ!vŽb»þùŸünùáFt—Éþ‡èøÖ®qn‹óâò: µ·ÛLàê¦ ¢`Å5 JàìÜ6T{tvˆY,€iv´}C°ˆÿ¦·ÈeLÆ1>Ä“€eÅp—u°~®0º.XÄ{÷Mnyn˜¤ƒOÙW«¹ϳ¤#4…û—ÚïF:j(h}ÕóÞ1I‡k€àÃ$Ýú`’!·8)¿1›ò¬K:„ÜE\ (&+騀)¥·ê#`J৫펀1—.e¡aØœ0Õ „A¿¿\í;ÐD5 ¾¤Psÿ˜)ð÷÷Ž€ ü"jšV£ )w]èBTJåR¼7Ù-PùïS–ÊOˆZ–C²…ã“£|Õ®v¬ˆš&Ò錒å¡·w7iyiE_H&z±°‡öHB £­0èø!~:” C¢¢4ÀM‡.ôg²i£÷Ÿê Ìâ¸ø‚IEND®B`‚PKì³eC/LLÀù icons/READMEUT ;yR;yRux èd%OÍj1¾ç)æ$ÛzAÊÒúЪ-´·l2nb"“ÉÁ·w¶^¾áû=Gò%WÐ#Ž2  ©B F/…àáÊ妄!—ÂÚ¾o`T‘9GT<= ÿîÿÆa}Æ9µº2Qä¾í:ÇbçEd Ï,ôÚ-¡w7ãnmA-^!ª0MM´†:*׸&±0´_ù‡ ˜‘]‚S›yø"¹"ü W*Y˽­t†O-üï1‹îóxú\)¡5OPK ì³eCçåÌ? ? icons/emblem-web.pngUT ;yR;yRux èd‰PNG  IHDR szzôbKGDÿÿÿ ½§“tIMEÖ("\æTáIDATX…Í—YŒÕ†¿{«ª«{º§gÏ/³ÙŒM0†8ÆKÇQ€@@Y^""eyˆ±äÅ QPxŒˆ‚,%2q,³8F– 6ñ`Çg<›=Ó³w§—êª{oå¡{Ú³dQ¤äHGURߪÿ¯ÿüçܾð?ñ¯.\ºmGUDGï´mù òLج©µ¤Ì ÅdhÌi¥Ìë¾å½3¶gGþ¿F cÛó+,äó†ð›]m­Á†/µU·6%EM"FU,B¾à3—-šºöœšïJ9±[cžØóÄÈNàÁ]VGaàY)åO¶Þ¼Î¹ýÆÕŽm[L¦{Èû-ØV?Q÷"y¯mÚ‰G-šk¢(¥9ðÁÙàíC'cÌË±Ž§xýÛúß"°âÞçê)ÿ|u[ë nßT¥Ô>æ³ï(„CÒ=B}}µµq²ùGÎ<ƒÒ!JiâQ›ÕË’ˆÐðÚGò½C©c1ßÙûdú³°¬OI¾åù+b}xëÆ5kºgut|æ3é12ÞM@-óÁVâ‘ã$ª|ìH©©.æ½ë 8VÎÖßcñ™lš[6ÜêøÊi¹06ûpÝŠ;^Mì/~±î²:½¡¿Þ²±{óÖÍ2¢ÕËœ}ß´ MÇÆu|–W?†oý˜ùâMh#¦/XÁµm¿a>Ƕ&1ÚÇ‘Ó~Î;‡¥¨§÷ð¹hÛW–c‘Ÿîjo¹ÿþ-Í1<ÍѾŸâ©&n_÷!1r^ÒŠp#¾Yc;X b‰óHRu ÙBµñ3ÄÝ1‹ÁaÚ—ßeŸ ›Äô˜›>ûλŸ©@çÖš­½?¶¥VŸ$GZ1¼`µ£(Sω¡Ìr"Ž…m[XR¢Áè4qw„ÂYo ³s þLÆ;éÛÀ.kýHwÇÒ¸V$´!çÕ!­Gz¿¡)€0 1&DHÜÈmKâXi”24$Ž£u@:Û@ut˜0¥ ˆVÇé\ùP¼dò`×%a¸¶±6FÌähÿÃLÌ]G¢*O lÛ\rj¡U& BÀWºwâXiŒ1cˆGÇQJ±Rœ»Æê“ä¼(}c7Q—˜¤>‡0\»Ø„!M±h‰búâUÔTÍ×”äÕ¥ê® ¯¾RH‘¡>ÑW^W"V"Rºo©;É…éu$¢S¬oßÍ©áÛp]Bš”0 Û®§§ÿ>¶¬û-s]ôœk¿TóLbdˆ–)Bê“ÐÚTʲ†¥´eœ— èWÑÓ¿LÎEZB“XL@Ïåýä¹ÔFÎŽmàºöƒ,©9E÷ò£äŠ­Ìd»˜H¯ÅȰdÐ2‰éeä¼®%,ÒS¾–Hµ5&_¬&•^‰ ù+ˆÉ¹¬—tl ¯`81pËi®9‹ec…:ÍQe19·º.øäÀ±ï°¾ëM2óM¸ÎEZë>^¤FÔ™#çŘ/TQå æsEbñ ¡èÉä¨r­JÍ›kÎV^ä:i6¯ÙÉUõÇ t@ TÉJ3>Ûʾ~Àû§ïá½S÷U̸P c$‡ÏlCkM,b33—C„¢wmÌÎÁ “¹%õq”*¯19²HRKäÙ¼fwùe,9‡¨ËRãšù|”ÉLË¢çFg:ŸmE)C}2ÊèøtV³s±nqïÐ蔨»H)”áÜø€²»M¥#¤È“÷¬Ò¬/wÅ‚ÒL¥›Êãº4Š‹A”@¤TÇFÇg¥p‹{Ú½#£{zSºci aò÷Áë™\]6WyâiÃ`ª“‚'K­XnÉ P¥ö 4ˆb¥3Ja²¼¹š‘I­5{†vïÈ,ž ò™Á§>úd(ÛR§*ê Å›~‹œW]q¸Ö†‹¹8~åËËÀªLD)0~|lv%NÞK̵iHFù¤$›Ï >Åe»ðwâÐ+i?Ÿ}­çd¿wêflK¢E1ˆ.¬åЩ-üíì&‚@•@ËàA *åšh¯¬ŸÍ6¢MŒ5+ë9ùñ r¯Mz% ¸—°pƾôâùó©¾þ¡q½®³‘ˆ-IgËÃH02ÕÖ Í%EJ›Q©çC`xr?Îé¡Ít¯¬gxdR§R}ã_zq‹òFh•I8€£uÑ.Îϼ›w–m¹‘hwÇ™Œ~@²*Í[Çî'5»‚rÉyIN ÜÅòævÆÆ¦toÿù™‰c»õæFæPå4¥ÝuˆT¹‰@egßš·›oöŠA"ž¼ÓNÍ´Ñ7ºmÂÏG.GÄ–D£«h®­ç“Þ¡âàð…Á™ú^~⣠ øeþ‚š’1úÙñB~ìÄïhNÍuD"-rÕÊfQ …¼´0Ç–¸›š¸ËÒÆ­qf¦gÍñ“ýþìTjoê½—楇¦B™€WÎ>}.ˆR2ˆ[¾Ô­Þºªºí«¿Œ¸Ñ M 5¦©©>–ˆÇp#6¶m(M±0Ÿó˜šš)ÌÌ^”~Ñë™zÿWé³o÷•¿Ô+ƒ/¨ÄgL%O¸åkpâW­o¨i»yK$ÞxŸ°#í êBD• ÌC˜•?èç¦ÿ27thnôÄÌe2eà€Ëÿ(~+ÃâR§T¼rų!`Ê©¹d´Ï=’ýßÄ?½¿#Ýi”àIEND®B`‚PK ì³eC·+=44icons/document-save-as.pngUT ;yR;yRux èd‰PNG  IHDR szzôsBIT|dˆëIDATX…Í—}leÆ÷ó~œsÚžÓÓ³¶k»µ¢,"FÐÅ™E l:ÿ&:†˜Å™‘0E¶˜…9‰Á€,%1„4Œl8 ‰…)Š nƒ•egµ´³íiû~?þñ¾§ç«Ý™Dïä=ï×ó>×u_÷õÜO|Œ1ñ&ëOÉÐÑg°—£>6ð·Yï¸Æ³ž›œó•¥H˜Õ7«6ìÙ†Á6­ãçÏîýHàé‹Á™6)ô­±9wöõ/¿=švW}ó'„‘(e<øÞ woo †á¶_Þ÷3Ûb3ùá,Ÿ8ó_ÙQ>ì||÷jD¥871N„tåî¼åZ¦]Ë|ìéƒ÷´Öf{kн/gbüß|½åYÄ›¹`ð°JŸ0éX¾$/?FpÎeç[¿¢¥p–ë(+Ü@^=4ÄÊþ>&· ÓÖ–½ píü wô6òWTÀßÁWýä¿ú[J‡‡95|”믨ù®Á„l½}aÅ”jzà\\÷°rõódsÝè(â–ï®#ªÃkP@D~ Iî¼õN6~ÿ¦%3ÏÙ‡éOÿœŽ®ÁðÓä´SZ¶GØÍ® oŸàêËûÎO¥Iüúᇗç0_ü¹Â`Mæ¡ôò™u/Оïaí5ßfrò,ˆ ” ÑM@P"1À0ŒEÁƒÙýÌŸÙD®P+{@/ŸüÊ>ò½µóJ¬®®Å_¬ JD‚Û6ofã÷n¬“³3к›ü²«€zÙï§ôÎ1àOýîvíø)‰R3Wc ˆW.Á“?^—ùKœ;¹‡\¡~æä‘ZÁç×hÈüÚ«¯ct´˜”@¡u³H¹e2µ%(·ëÞ„DãL}p‚3'Géã’µÀkçMJP÷¼€¦¶oýÁB ZÍwhÚW¬fvºÈéw÷Srò”–ÝÇô[G€# À•”MØŒ€%•UðÔ{Þm¹õV hÖ¯ý “g†Áìç‹ÒžïY2óu×Ü@±x*^]"èºFÐЈ´Ö(UYå˜<{Šç_<ÍGÆfÖÐsÕË|á[?/xuˆ¢-MLéx°aÄÜŠÅSøÞØ÷™L ÙlÜžÇÇÿuAà—U]ˆ¢Ä¥Ý=ܼç/è¤%WÌ«®«­“ÿTÆÆðtuâ¶Ý¬DÉ€ÞÞ.z{»*:,h­“£ü|‘gU×ÕÄÏO ª5}âfF†Ðõî9Oˆ2 —3×z)J †R´fÛÈdÒèZ ,¶ j ̼?Ä]Û¶’ϰL Ó´0MË´0 “0 Ã( ‚×s™-•ØõànV]ö5Di´Ž›Bµfš·â:ÐQD¡ÐÉ?Oüƒ÷ý™é©)–u.gó~ˆëy¸žŸ]Ð ¬¼ˆ( ˆ´Fš¶ŒeY‰ ›®‚ÆB†a˜LŒ}îDkF>†ë{¸ž‹ëyx®‹ï{¤Ó™ŠŠJ@ƒm¦ÑÔ„v\‚| e²S´fâó<ø>Aàø>~àcY6–i-|WÎ8e ›\•²ÀL™€9€°¾ÄûÈdRšyÀüÀÇ”RØ–…eÙH"³Rñö›²*éU d¿Ü m + io±¨Ã0HÙiZ26™D…8û€0 °L˲±-k¡‰Š(DÛ2“¨²@°kZ±&žþãI_Ž\ ¥);E¡³‹=ÄØ¡‡hËåð«¥·¬ä°qœù„ ™«ÆV,Pñ€¸c¯?qÛlú}¤¹èÆo|ÉŠ´¦xа¢§ŸŸí؉ã88®/9×Á÷½¸Ï‹ÂPŽã2??@oGšHC[Ú¤;Ÿ!“I1çx(‘p¯zM¤€ŽÖîO/ïÜô\¨åSƒÙ¿¡ŒŠ5Ñšò¶Y=‘tèó×™+© çÙ¿c;0]×—°€bOüïÿ;†€Ì+@=êPMÞTÿ_ñÊŒÁüÿ]@IEND®B`‚PKì³eCÀXƒ¯Ítinstallation.htmUT ;yR;yRux èdu?kÄ0 Å÷| qSohM×¢z?èÑ!”Îj¢4æÛØ I¾}•K—† †§÷ÓŸ‡½ ÞVØ3µú‰ÏöŠ÷$.4›V¡ùõ|Åv±•"Ï;£ *'[³çF@zJ)Ç” CQQ}ÐÅ K3ÄÄYÑð e)ÂÃK…£î€ÞY$è3w¯§É…6NåI=ýú>·"²h”ÚÃ5Çà•š!ïÂ8cokiáB QoÌðÜüèݵÑ{}Þz¢Ñ[Ф5³E¦ ÝÃþPKì³eCÊGD‚ linux.htmUT ;yR;yRux èd•TÁnÛ0 ½û+ˆœZ ¶ö²ªvÀŠa ´Ö›¶¹È’&Éqò÷£ä$MÐ]±)“ïñ=Ò}T•‰e×@AaõMû •’Œþ=’·p!u&ôèà‡¦m®hðôr)ʹ*åeeš]•1èÕCqI,¼®žñÏHÔÁóñu<¶Õ+é@n~èo21r÷BQ5mRÓað°¹*>qÀ´è–1ü| ¹¶6Ã6ØÀ…\Ü;lo}ö¦,§i*¦í4#Æu‹êÑ(eu¹%“î¹ïñ¡ïï^ j›ãg¾5§0ÏG–UÊ92ÃStQF}IyA:„ؾÑj4{Ë:& ýÞÚ†|p´£á>ªv<R»Ln$)¹R¡wfìz°²^Ëaš/ÎðËŒí@#ƒs`€Ï RƒYT—îò7¨ ~™tOÛ‡×ïïwsÎò˜Ä€ÜRƒ.cpÖaIa!J»Ÿù鲜Ìü˜š€=ñö€u¦sr€ÑãÍÆ:ÞÄ¢¬n©Ù®; ]*oÀ[¬©Ý%¶6Z®åz–hˆÛÂâŒe7HS ¦Ûý›p+Ëãým»sÆrþ<°Àôéù PKì³eCÕ;Ë ,mac.htmUT ;yR;yRux èd•TÁjÜ0½ë+†J[\z­k¡… ¡É¥ÇY{v=D–„4Nðßw$Û»šKaa-Íè½™÷FjG™lgÚ‘pÐ?a±ÔÝ»$h- {úû…}Û¬!Ó6[êÁKgôä×÷óu_£¡{)oÀà_õ8'@8=Ox"zïÙiȯp!`ÿ¬)5<òìbâì4]ÄïYðÄN˜u©‚9ÍháˆiÔZjÈä-ÂéøýFóÝ€Ö;ªµë›ChìÌ++ÌμC†oEºæ6Ë}é+5+‘ !] ÷GXü d©—«jŒ\;ŸØ­dëwæ«€vN랣üËÈn`®}>d÷´¯XSµÎ*ç›Òky'ª3T=9Û!·ƒK&³ö=¥TNmé/ŒeÙºŸl…b‚'ùç×å.ò¡ƒ‰ÜlXÉÞ^U¯?,iš¤³!=:ç¥*ßE GÅO³7¢ÚOèæ¬Æ•„—qÚƒÕfÍ*Ç…1»ô -}ÑÅ娚ú¸T¦LŸÊü®›·ƒW…ÎHŸ›705ÜEÊ|zÐ2&ø˜–ɲ{þ¤‚V¹íÞ‡eÕð¿&Žl󄨛g¿I{r©¥*^oþnnêí ŒoÇlËÐP¹Å6©Ó/È6Û®•E?ŸÆRa-U*×ÐÀ> zR-Ú›õÑ÷¢ø­hr4çy¼³>f0Xfg¢i¬.IÓß~ÊVM#ìŒ Ñ'OQÁË‹œ˜3= =ð‰ó‰:Î'zЇòeÚA¹ ¢¹F#Ó­B½¢q-¬%Ú«(權IÜt+zL$üé'³SPr ­5íó *e0Zïen$Õˆ-£oâØ¥—ÀW§@<ÂÙ·pøÈ혃àÓÞD—ÌVKÄÊb©Åœ™„Ÿ£ŽÑxw#]DTŠ,–RÔ˜ © 9µ½Ð.ÝG‰˜Åó¸oþ^bq¬Ä‡°xüAoï¿šÜæ(AŠe.¿ÓÊrñˆÒ‹)­‘q’ê~0íðv›poäáQ;$µ¢GŸT[J„i@óAW\µÜÒ¥Gþ˜JóPäþGô’J(P&%ãbBdÜÕš©I,¨ÚfÓzëÃÝõOïäsÍ'¡®ÐXhN³qw×`°ëúÉŒ` 4फ"VNï÷> Ròü8“L†i(“Å Mcº8êÖôˆÕ‚L8Ê0¡„Fæ¡óJ¢ñ0eÀ〵ñüû6MÊÒ£ù/”À~¢ÁHñO§Ò !X6h¦æËìC)z&‚È{‹™³#›lPtpBzአԸãèì”±2qTí¥5‰ÚYuÈÄê7[àéLñžÃT“*Ó_3ÿ:+鹜Á¦cÆé€¨ßçTÁø‰·É±Ê(d,õåG¹/”«Ú Š™°G"g¥ÎKX8U…&¥CÙzSüËÒ–¢{P˜nŸ1ì_S©ÏÒKYI0évÌ ó!8¬BȆ2G績šHú]a*r=U™Áí¢mìù<ç̤™ÓbÛ§fð“L²Ò~ñáÕ¸‰®&Í´²“ØœËÍSs®–ní¿hŽc\®íË,8wƒ¿Rï]41Eò#æ"Ô˜¶Z›öù©ÙPQcM›àÔ0ÍAÆO‡5ÈÅÈU-O(öÐÖƒœ©9sKkð3H$†ÿ~‹$f46IÌ“›3Â?Ê’æméâ=Iy¾çL\-ßbºð> ë·m$}B’îF/Æ%cˆÝp¯ §à­:s"GX@1¸ÞØî‘¾^]?³sbó&á^c=¥||/õ]6A0Ü*9À0i ".—×ÙM¨Æ€±§Ñ‡¥‚æPÕ ¶ú˜Ða/1"þ;zþqþo–ë!\€]šY‹üzö “¿?~ t&÷È_\aì»Xi¨l”ìäD½œJÍmÎk‘ö7˜Ž¼Ùt¤*vð N²sT&äX&èCºmjÌ4§Œ¢Yظ€¸Ût>%¿œèh<0ê¬èmÝ$j¥º±RuóYó*ÏͲÚõÖô¯9^ÞÔqØgMݲ²†À™¤¡™œ\u,}4Šé‰~ËÁ{v$èøw<úWŒ ÷QÃÉ0IÜv„|Púઉµš1òE«ëŒiÐ{yCÁE G-6Abòº;0¹'o Ùœ6ò¢ÀA@©ŒhPË”g§f× Ý H-ó¥pÛµ_ÊFüvJ?Ðï% ýT´„(D¿f÷æÜµw%,â¶¢ý—É7ITšUØÞ¬„v“ 9|:|ó9zÚÒº°5“ƒªüzh_ÌúŒ½>ãfh?cL*™tÇЯ“Õ)¿!™~³ t3n6C³Î>ù̔ÊOPÅv@Û®`õ3Ìä¡ aFº¾e0~†,xácæcáŽ#ÆÁk(_E÷¿ƒËFA§UBJ6²Â¥Ï¢¯;¿œ—}fÐø'6xÌÉ?6Ü xâ+èÂÈ”ì;ã\^šx;æ—î_PKì³eC»KÈ9'‹ plugin.htmUT ;yR;yRux èdTÁŠÛ0½ç+†=ôdlè±u ˲KK ìBϲ4އ•5F’7øï;’ì4i»PŽF™™÷æÍ‹Û1N¶;´#*#_‘¢Åîh—9˜Ø`Û”«CÛl)=›µ;HÅÇÛ<‰åvî¾9ˆ#…|[Á ¹H~q”|`.5g’$'ñÈ!‚šgKZEbWÃW>E pPZchÀàŒÎàÔÿªúÔ6s'ù‚ß.6äl)‘¹7Ü#GŽFžýUðhqBC-ê˜ @ÛwOd#zøpŠŸœ!ªÙŸJX¦j›¾)_„.NuÛ`Aîý …öhᨤ žìÑsKÀêq<”æEÕä.ÿžfodò¬ƒ¨ðsDwQ¯Ê84©ÂÊ èÅ{™Ú®0ª7iäŸÂJß3Y "¡¡0[µÊ2úu#QÃK@¶èqør—èÔb¨».ÚFu²Epœd½TWɲßÙóL¿')†Å°8@•¥¸FÙÉJ@EfÛ+_ж`¼‚ê—†q'ANÛÅ\dÿ!ƒ'«<‹YT1ÈÂ}È7¤Ù…z—ö>æúžcä xÈÑY–Äg™MT7†Ê ¤neÛ§|á"Ô¢´}Ϲ‰Þ÷Œ9/d×¼º4‘Å%œwš70V)¿ @Yù{Æ„å4ÚE[KnÿXå DõZ Ó+ýºõÍÉ=®\R8±ˆ­GåĽ§ßŽ»À_ù3=äY^%òêÈï _PKì³eC¸ÓÄ¡Dpostprocessingpane.htmUT ;yR;yRux èdUÁŽë6 ¼ç+ˆwN g×@¶hï¶À;ÓëU–R‰Þ¼ü}‡²’MÐØË.ìHÃáÌîf]B¿ëfa‡ê5Hÿ-å¿}<ÑÅëL: SÑsN£”bïÏ¥;ngwݱÝ’»ö;@ýüIÄñsÿöÿÏïÞI¡1EÍ)šR¦ÉGùI×hÇ8’_ø$Ä“JÞNr.’iœ9žpsæw¡A$ÒÂN>øtLs–é—/:¯ËP¬ÜJ|é·g m¹?мøà9{½ÞŠ|ò…ÀZ¢z¤ • È€PÞ<^ûCw:Vôuö?$”ýÇ,\=Ò—‡2t è]À°BIð‹¬¦RH+LËi!¶›t™%ƒ«šn1)]8ª¸'d¸ìäötcößB5 „(È&š³ ä´âÇ4|‡€ðzUÍÄÑ»ç†õi…nÃ@8¶3ç†ü`àï(Yý»‡ÁàëB`ÖrNoÖè+²]EÀµæÐ’2ií±Ø›2s>#ÀÖ^ÙC>äv2[k÷£”05ËÞÌ oídõã8‡+­E¦5ÔIj¤ƒñxª‰¸wç§É®ëBYǙ؆Ëç=MÂ(—KÍç”0)'y¥×Ÿœ¥÷Y³9]>mIñÛàÅ)¬Gié¼ @] úUëäÃQ*¢ŠN÷Ä– üpá«åáAÉ= £µŠfÂqõʉPn¸>œ)h7+AüeÚ‚5FcHEpaa±*õÒæàNªúô‚T£4 ÂKNòæ²Ñª—M'#ì;½`å=ÞØãÝJó„Ó à£Ä w^µQÕ·FöÕme,¶qå‚§76É"Ñ8ퟹm0 çZ…'™jt›Ñ¯"ŒE-£ßš²$”Fkì¼¹´oëFSªAß&9Š^í ãÖѤÆÒâ3á¾HÔOŒ1hYîŽXÝm·O¾`õãù/PKì³eCpvÁpreprocessingpane.htmUT ;yR;yRux èdUMÛF ½ûWîÕ° ­€ §Þ‚bƒ Ç‘DKÓ̇2ÃY¯þ}g쵋4Éú ÛÒ|ïñ‘êñ®ßu › _bÅqÿ%¦¯6Ìt±²,Lkâ5Å‘sÖÛ« ÜÚÑ]wº†qÚú2ýþ¾xœÃéU‹šÁ1 ó]LOûß>ÖÏ^Ÿ¤¾CŠãìžö×}ÿl×?P}Á“©þßäd3…(”—x dƒbØ>ŸMqBÎl±È‘>g®øº¡ÿbÃ/Ýiè©3´$>?í=‡r„@û^u'Ó“Äšµf³r©Ç%©•þ­Ø±%“ØmT2O2a"~µY2Å€»¨`œ‹:[œ–‰rñ\‘–0qr›f3nŽ ûšHã&…TÇ’ò‘ž³ц:Ûg‰ãb²Ø±;Ùþ ÏFË ‚Ð"o6@S™2´_ÄmÈ2Ùó™¡Ä:fb3¢ÃÖ3x8Yb™š9pPÑúë\íÆÀúeGV™ €•Q0_ž7>Òß±ÔÒqM¶1h’An~át Ìw4w,Èt%ŒüUT:ÇT+dãщ%ª²»þÍ,ÆùøÖ®hŠö¶¸I¡ `º,¸˜éŸ’¥éÃhKÊBr‰×–ä{2X hV“À²8È&Ãkifµpá\Ùyd¾NEœ“Aûä\cÈö…ïxº‚¹$êœíaÏ¿xÍÕœ¨•›nÅœ*èßîÝ-¡.+A- Rœo=£sŠ^¦ÏÕª…Žôg›Ü¨Ú×zà|Á|Æ6ÌH÷­` e«jŽŠ; ‡qS,­W'¢…È)Ͷåf­«ˆ«¶jƒD2©úfš`t-±GIôq(R½[¢<èV® ªìT!=ˆôɾ²û¡Lk}Ú†E­Ñ ª­ï`?¬ ûj½¾ù×›°Ýb«EÊ­N³¨”M„ÌüsÍ/•{„sx°Ð4/а_›ãÕð”}í'ÏÂ9¿Ä/Ô—öº=Þ¥þ3–&æÇMÿm€·Áúâ1vR’Q^m”³iÂÖv`íH¬^mÊ`Ï–÷÷–úð0?ùAˆ{´fÌQ7€•RáäïuN-Ñ=¨¦ÂÚ0nz[8íÕÒš¯£”uJÛéKÿFDnZW6©m¿¡VHf¬TnfÒ½oÜuZ¯Zw',ƒëf8µ-^ õÍý/PKì³eCÆBôå÷previewpane.htmUT ;yR;yRux èd…S=¯Û0 Üó+ˆ7õA tv½t*:tèC;Ó2m  INšþúR’'íÐI$ïŽG©“ãîÐ΄ƒ.É&¦î§„wë'¸Ø4Cš –@gKXÐSÛÔ¤CÛlE½ ×î ÿW©š·toE`°qa¼ÆRcN= ¤¡âa›tˬAˆx¦áðÁzhæ@ã§—˜ÐÈâ餽t¸,mƒ8è$Àh9QPDñ†´:óµ}÷íkÛôôkJâÁƬ.FM{B_x¬¯Èu¯:s¼žÚf©í}ñ6Yd¾>YpnÄ-L‰4<ºFƒL'øNL&©,Ê2„ªnu½GËÆ ®ª½©)Á˜í«ŠêysZ{NÚDªH&+>‚ŒÊϲ†|žÑOÁá@9ÙˆOA”ª´õDµHLK£žèPvÊçû;µ–ëör£LžØÙ_öâíÊõ.©Ú1»¡þ÷×MËÍEä(»ÓowÙ%é·¨ILgâ#¬ña¾?´´Lø®É‘_«Ž¼ËÌÇkE¸Ç°ùZ[c…šâež“ÒÀe&â‡ñÏS9˜5òéAa~eŒaÒÞ“:ñÏo9H½F3CF£mf%…Ù°5ïÅæ!à”ççä¬tAV½»óßT5õ“ê,ÿýPKì³eCý^J%cregistration.htmUT ;yR;yRux èdUÁŽÛ6½ïW öPdCBrlUÛ¢E{²H虢Æš#”Uý}ß–7›h/¶LϼyóÞ ÕMùìû»nb3â+»ì¹ÿÈ'—r4ÙIèÚzv׵טAÆ­¿CÊÛ¯q€ã¹ŠåŽôìBvîpGtqÉeê M‘?ßO9Ï?¶íº® £sÄS›ä˜W55­Ýaîûÿ×µ¦×ZÖ;û™òÄÔ¹þ—e£ k׺ž†%g dÂHGñ^ÖäšX¬v‘( Íf] '³=OÉFÁßš86];×N?Ë}æÉ%´mÙ]x<Ð& ­ÎûýˆÌU“*Y™† %ølœoèyâp %q¥=ô°Ÿé‡Sþ‰>Þºzr™Ï$‰%n— –^Þ÷úTtPÖW¬WW ¾ÅÈ"~0±Â\(RCÉÌ/ì·k9%MDuøeöËÉ… RŸÁQ–ÓDO“dI“ÌJïÉ ™>á—j¥¡?Õœ 2Cˆ›†DŽrž3jÄæÚÚ·’æÉd`iêd.|s¤¡ßBZb (c|Û+lm”3™T‚F)"¹t(3³'G:ºÈ«·}Õþ ™/ö³ §]—#ˆïup¬p¯K½LÓî’fs²fæJ¢@hÊ»·4b4st˜É2ÂFú ‹!k* ßÛЇY;x…™5> >¼Æ(ìs¶³-þÓó*¼º<ã<Žo^,}s¥8¸ .úý«Dö_x­NßBÑ€ßTo—¶óŒí-–êV8seØ0|äˆE¤2È‘V‰EëÂézÕ(”v˜QŒJÑJê®a…5^‡–¦ÅN>Ä%M¬ì¹^òfãXE5ãßKʺ䉪XW¡ó™ –× žUT‹õ\VXVR/ÿ^uQ"Š¼Ú¿”QÌx \•‡*»ÞÖ¿Òlq™·¢K±hzP¹ªç7v·Bmà=Î3}ʰ¥*¬ ü±•©0gV]ôy/ý¬Jp+¸Ûyï²­o¼Ê»å_PKì³eC~ZŽU•Ùstandalone.htmUT ;yR;yRux èdMR±ªÜ0ìï+–W¤:lHÅáI íZÚ;/O–„$Çøï3²}/YÒìÌìhÍTg?\Ì$ì°T­^†/)јþØ_LÞÑmÃðO lp”†ïê¤e?½Ò/ U•ò 1>*’8s┼Z®CG¯ÑÿPKì³eCš¬dD1¨thumbspane.htmUT ;yR;yRux èd­XÛŽÛ6}߯ ÜǺv.@Q^i ‚¶h¶è3%Ò³)Ô*úûžR–ìx7Y ñÊä\Μ93Ú]“Z»¿Ù5Z*ü—L²zÿ¯÷ÆÅ`R#R£ñÓ·Utz·ÍgnvÛr§òjÜßÀÄ«o\Äëöwç_ˆ.ø£tR4Ò©Co…?äN+L+øVéÎԉ̓åV~öá¦öÖ÷! ãø!Ÿ\ I‡“®“V¢Åqɘx'ëfa66~ ŸÇ ÇXK«otˆÆ»ì½XO­4lIŠþœç<éTA p!ƒ–p½‘p}SPivºÙm» ¯Úi¹D‰¾ŽdB¤Á‹ªOÉ»ø†Ï ±K²"Ð… Ïa¿KJ´>œ.2RèãûhÇMöºEÚÏÌ?èÕ{6óµïC!Ÿý°:ÆïÿgNÐçnÿ9 ‰A 4c¶Rãç`ÒÔ(ƒqÊkëà­­$Ž ÆZ˜’]§e@Yë LÖ5…”<=šŒnÄ?=zùóÉ y¨´P&vVŽZªspø¤s'PQ8ŸDçc4H€ÌSèëTZU A«N(À3H‰n¢T”ŽzjMÛÙç]B:œ CGé@<ÅGg»ÉÃRD–u“kÕ;Ôߎ”íeÙ%Sºf•ÊF¸Q K¬D'7KíXB;XTG:²ýðÿ[-9ÝœsúÎtèÿÔ0×þ7Šíƒ ‘4ñ"pOy–ÝFgž K–Â顈™áBF Õ¾ ¤_à›øp`s¥*¥p¨0©po"E€š§Ak·Ð˜KM¡0ˆOº”AbôýZô‘± É¥œjCèËá@pê@Mìfc§¨á *=Œ%ö.<,:tv´êë©€âk Ö¬çÑgj™ÃHCäÕç>¦V»¯7c‘÷æõþ]D¸’RÁø{=?6«QÅAŽävxbpNE+$·¦¾Þ•Ø¿š’\^ òràkþ§Ûx‹uNQWužWbâK¾ƒá9['u ö¦¡éHEJ£ÇAi ï ·+Ö+=Pä,«}yP–¹_SQß7>.ýï°7Eýt4·7â¯"¢ oN¯Ö;;R«÷±­™¢¤‘Š;êT!f -¤•Œ¦.@˜‡‰Ù0¦<Š›¹ÒoÕƒt5¬?Rë««NXÈÅâ—¢Mú|;A[yfïé:)óL>úv.a¥Gï?ˆ¬#(ë`*D'+VÎT0xâ| K,äy¶‘ ª {¢_Þœö•·Ltkhì½ïsG¿Î|Ñ ÃÖ~zùË øDihË*cõ!­É‡ó¢Æ,"ҥšÙÍßþxåj ! ¨á”|WaÂ'™ú î+‘Ôž c¢\;Ëp.ƒYÜŽÙ!øí >ÒwóòjL kã3±dðšçÝ)ÛárŸde^‘pÐz+•A´Œ2µ<-Ð,õ_À Œfɤ.Â@“ïcôƒ)|3´ÃÌf]ž×ؼvξ—A2/ü×êàc‚_Z)`w!gÏOZÁ)Ø<Ò!•dÍÏP¬s¶ŒñÙ+_㜨-¡´¼s”†;ezÖpy²cEi ­ú‘„j´Å,z<‹®d=G*ƒë©sõy ‹Øè‚Ó›^Ö3è9Y¨Ý)Ь³|ó¸PPru­@ SB%é‘Ë1rø7³uªåÜþÅF¥Ñ/ô†f"MAÅo`¶‘´1É,3k*Pf•úF|4÷:CeNŸwÓ“—Ø.C&]k.£¦Áø†r:çÙÀĈ|0 Mh™Î,›O¬}ß^ú>¸/š—!–ˆ“ôOLf oe\Vü@ ÃÏ z{ìçAó¬7»aÍeÜqÍ ×¾äÉ¿{lÇUákPÂúó屢Çcá ¥diWǪ²‘»MQ×Gý° Ú×BŠ-Ë‘;¼N<¥!'€(MR‹BŠ|aü”â(­¹Ž>ÐØå‰j y71y6l-MlËœ?$f¥ Õq¼â‚€;¢áj.¢.¥)öØ1 VUr-¸ýn"ñ‰ÌÑ="&Ú¨†j÷ÊÆ@Èñ˜8@t%ôöͳ¶²SÜ;®Ÿ&æÊš`SúE‰$db|O#Îj½°i^[·õ[€•S¦Á]ÄË…êõ7¦ÀÐZµáî:ý„x#‚ÿb ã†r3§DôZ.èÍ|÷Ïì$”5<¸ª•h¨ÖWð˜z“SÙ‰«² î;”9+ Ï«ü÷ç™vp#6Ç¿;™œ‰‡¶"Rn (¦åÕ qŒ´ké >:Zs±5¶T'àç7Òþ{iFøéKF¾PK ì³eC tintii.hhkUT ;yR;yRux èdPKì³eC×ËóÛK[ tintii.hhpUT ;yR;yRux èdsÎÏ+IÍ+)VHËÌIµ-ÉÌ+ÉÌÔËÈHæòÌKI­@Íæ É, „€œ^ 9 Jú d̲ƒp ?~Ð6j 5¶v;¡í¬tPXHÑyÕÜÍC”¶–ÆYµ‚éó k¹x;'±ÁŒ­¶I$=³Tïjµo-íÏ?„Žbðn«kcDË "ecšÑVQ;+ŽûÃËã&½²cÚ‚žhƒ•xãLM0`ïÆ  ¬}p^¸­‚ãVèÊYÑà…Ú‰ ð»ðØáÕVI«Âqïù&”¬:mÐ`wêó`¤¶ªJØË+Q«(µ¥2n·¸d» q£}ˆ¢õn’7ö@𬋢Öêöжë”%à§Áùk±R|g…C*a•ÑëËÙí$³>›Àa%hI=v ; Ì!ªE¹O!(7÷X^¬ËÍ‹á k¢,)g… g¿)b-¶PÜÚ»9Òn¾)tߊૻ9[¸®]5BA\ºAÙÕ`Û9¯Ýé:vwó_~ž‹Né¶‹é¹t¾Vþnþã\Hƒwï•"œVåÃÑÁ0TPMlàI²”½lÕ*}]ÃȬ r«®¶ö=M³–$ÙZ‚ í±§Ù#yª"¥ { ÞR‰èÀÚ·SâEÝ+þÉ‚¢“i ¨ÈlN`Zu!pÊïݘ ¢T¬ д'í)P@°AqQ*Yä·p)Ãm(¾ Ó„0cI†]du;¹b‚ç$ðª‚T§üC”m匃ß½æ?súBxu—x}ЊN°£%˜cÙèxµ£÷:Nsð>“lj`)8‰4Oý;ÌÓ _e=ZóÛ«Åêa˜÷僓2@P‘›d(È)8 RóµfT–˜Vð• xÞv/*®·Z4RÒrwTOÔc‚8}Ym RíÔ, V8¤‚³¶ÎA²‰ezTÎÖ`ˆ˜*†pœÎšZáå½&~T2¯ ª*Ñ»'o%=y¦u³ˆ&ØF÷£!÷6ó_0î>ša9žÑ£d‚=“ãB=¡<ÃFÂT.ó´·½Ÿ Ÿú•~PKì³eCÑúRe¬ windows.htmUT ;yR;yRux èd½VakÜ8ý®_1ŸŽ¦8»\J¹. !lËBHõ¡WZ{¼'KF–“øßßh$Ûët“˧ƒ°a½ÖÌ›7ožfUùZ¯ÅªBYÐ?¯¼ÆõÖ´^j-½²èï‡2…}lWËø³X-Óë;[ôáðÙËGè7!VÍú{…ÃC £­,@µ ¡Eß5€O˜w^î4‚¯¤‡ÞvK®3à­P1>|WÆ+ŠRÀ®í¤†ZƒnÛ’O¡ÆÜÓÎЛⶲ޶•mÀ:¸•¾…o·ÎB£»½2GŒ`g÷NÖð¨è¸ì¼­©°œbõà]/(vž³ÐmóTv ¯¥¡7žƒÜÖMçÑ4…8À˜p€Ìsë eöº_ÀO*ˆâuº€B¤ÇÆ”8ñ ¤çW»õg¥)r ¿íý'ª¿PjaÝ>~o¯–»5Ôh:Pë@äˆ9š‚lÊ’jKAnT{䨬º‘}ê™±>¥ÕÚ>r]¡F×壖ªKÊ$CãBÿ‹Õ² Z©Îן{3*Ç/ÃeOÊJÔ±žJE$­¼_Ç‚w%)ׯÑŒýz¬Ða=t‹DR•Eíqò?îo£ ñ‹íýHì½OœÒ[ ¸rº"CÜ'5‡VùŠ@HY¨#·MO o³Ø4:8>Ý’ÌB9¢ßº>Š3U¯Æl)Z[#å1{ÐêŸòjÄ óeaw?§xâýý,wª!D:¨‚ h–è‚ü2m¨€G£–”®k >"P¶ŠdM4—ï mÖI•|ô|¸8ÝQ„j›d Ù h>´ Õ,gÏúkƒwO?œ¼Ô•ísÅ!‰¡8ürXŽ’qÏZ8? ȳ0¹¬›4™/i= ŽÈË1 44ÒIJÐToƒÕz &y^K?ùCžä'ÆÆ ‚ty9}úp1 O SàøäkÂLЦ›â¦¤!¢`©ç¤»CúѳdÓ t¡È¹u=s®Ñvž›ÃÌ|/¨.Ö_¦ïwztñöàÿo{ˆ­HvÀœp-;“{:üóëÝŸ__Þ|¹»ü²áé|Íf4ˆ£ît™¾Å ®¨;:~Ƹbˆû>06;4ŸdÝ7`'7°¡ëJµ¼»ûv2s)¾çá_gÓúȲ`Qê1•α‹°OÉX€”ò~¢xs3ãuT Ø’¡aìRŸd¤äFËasC ÷l7?ƒƒ´1+gäBÏ3 Ë0m4žõÄ;)ò¨«PUi¬w¶Ì 26i¹™à͘¨3ÜeF;]î·3´Šš×ŽñìÂBï+ò¼ºk}X<‚Â"®#Çç|®Ä£Ã>Îð8¦gÓ˜^êDûê>{«¤é ‘WÖ¶|‰™ /„Éb0m5|Ÿ¡É1­9üÓuýiÛ¼í”ÎÖLç/kÏ'Zyݤèl–êÄGØN1hÙZ„Æ2]²(b¯&ð‘z~ j™öëe\ÒÿPKì³eC &mt¤acknowledgements.htmUT;yRux èdPKì³eCοCÔ¤Pchannelmixerpane.htmUT;yRux èdPKì³eCÅ+0„ó¤ágettingstarted.htmUT;yRux èdPK ì³eCíA±icons/UT;yRux èdPK ì³eCÝ‹ÕGG¤ñicons/emblem-favorite.pngUT;yRux èdPK ì³eCÓô/*Á Á ¤‹icons/system-run.pngUT;yRux èdPK ì³eC&=' ' ¤šicons/help-browser.pngUT;yRux èdPK ì³eC?ÿ –ÈȤ#icons/document-save.pngUT;yRux èdPK ì³eCP!?ñO O ¤*(icons/zoom-best-fit.pngUT;yRux èdPKì³eC¡ôFN›¬F ¤Ê1icons/COPYINGUT;yRux èdPK ì³eCø­óËˤ¬Licons/document-open.pngUT;yRux èdPK ì³eC-¹µ˜ùù¤ÈPicons/zoom-out.pngUT;yRux èdPK ì³eCR—WÉTT¤ Zicons/list-add.pngUT;yRux èdPK ì³eCeÜ7ÇÊʤ­\icons/window-new.pngUT;yRux èdPKì³eCIUÙMO¤Åaicons/list-remove.pngUT;yRux èdPK ì³eCè+þ<‰‰¤acicons/package-x-generic.pngUT;yRux èdPK ì³eC²‡±Q  ¤?hicons/zoom-in.pngUT;yRux èdPK ì³eCí< Ì2 2 ¤Ÿqicons/zoom-original.pngUT;yRux èdPK ì³eC ÍÖ ¤"{icons/dialog-information.pngUT;yRux èdPK ì³eC0M£  $¤ù‚icons/preferences-system-windows.pngUT;yRux èdPKì³eC/LLÀù ¤w…icons/READMEUT;yRux èdPK ì³eCçåÌ? ? ¤}†icons/emblem-web.pngUT;yRux èdPK ì³eC·+=44¤ icons/document-save-as.pngUT;yRux èdPKì³eCÀXƒ¯Ít¤’–installation.htmUT;yRux èdPKì³eCÊGD‚ ¤©—linux.htmUT;yRux èdPKì³eCÕ;Ë ,¤0šmac.htmUT;yRux èdPKì³eCfâñ ¤œmenu.htmUT;yRux èdPKì³eC +t#U? ¤Á¡modes.htmUT;yRux èdPKì³eC¦ÂA| ¤Y£panes.htmUT;yRux èdPKì³eC»KÈ9'‹ ¤Ý¦plugin.htmUT;yRux èdPKì³eC¸ÓÄ¡D¤H©postprocessingpane.htmUT;yRux èdPKì³eCpvÁ¤²¬preprocessingpane.htmUT;yRux èdPKì³eCÆBôå÷¤w°previewpane.htmUT;yRux èdPKì³eCý^J%c¤¥²registration.htmUT;yRux èdPKì³eC~ZŽU•Ù¤¶standalone.htmUT;yRux èdPKì³eCš¬dD1¨¤â·thumbspane.htmUT;yRux èdPKì³eC 1_)´ç ¤[¾tintii.hhcUT;yRux èdPK ì³eC ¤SÀtintii.hhkUT;yRux èdPKì³eC×ËóÛK[ ¤—Àtintii.hhpUT;yRux èdPKì³eCž‡-ån ¤&Átoolbar.htmUT;yRux èdPKì³eCö etú­ ¤PÇwelcome.htmUT;yRux èdPKì³eCÑúRe¬ ¤Èwindows.htmUT;yRux èdPK**D9Ítintii-2.8.2/help/icons/0000755000175000001440000000000012236200475012064 500000000000000tintii-2.8.2/help/icons/emblem-favorite.png0000644000175000001440000000310712230652053015566 00000000000000‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<ÙIDATX…Í—OlWÀßÌÎìz7k{7ŽMÇI%¡ ( ÁsO¨¨iˆHTUÜ@Hm\HÚ *\hIDE%zBp€† P $¤‰mì¤]Çâewvggß{‡oìØIœT¨<éÓ|£yo~¿oÞ{3»¢ª|˜ÍûPéÿ™{u8%2 Pl ó_V­Ý­ÿk"à 9Û„÷N¨¶ïÖ_6Z/ˆxûà¾&A0šñ}cÛm±ÖÀY”WÆáµçTÀë"Ûø¦Gƒlv@ÂСJE"ª¿³Ê‹ÇTÿ°)Ó"»Uøu±28646\È—úÀ9$pÖR›çýKãµ8jMªò¤À–Í÷ÝöŒfð·faáÖÍV$RHX6´ç‘Pðsy̲cQëP—æÎ¡Ö!8l}Ší ›7«›_úpj@FøVeÿî¼áú0KKX ìänMeÙ!µ[­§×Røª\­‚s¸†ÁÔ¯R98V¨¿µô½u Ÿ.”ú qUó„l¥ŸLÿ6âØñޅɦQžø¬ªY'p ~/-ŸŸÿ÷u“øÌ–ŒOn¸Œß»ç™þË…:N¿úEÕ©5ŽkF©*Ê“3ÿš¨Wç\áÐcx=ùû†{a†ÜH¿°#®œy;jÅñ GUO¯Ýè÷À«"{EøceÏðÖ¡cAóÊeLõæ¦à~>Kv¸„%’ÄcâìùÈ$æO«þl£þ ü\d0#¼Õ?TÞ½ëð¡\ëÝ«´çÞ¿+Pi w” JðKÔnTuêüxãŒÓ?³@3h#‰» „@~%¾ïñlùÊØãçò¥>šW.áÚ =Ä+d¿ÄòÌ¢›¾8Ùx]9ù&\)¼4Tµ~¿=«%NÂçŽßyh$[Ú=ìÑ^±égajÖ¾;~­öSåÙ30y;¨©j¼iTbE 'ܰÿóÂK•þ]í±†ÙñkæúÔÌâËÊÉsph¥ð8=ÖéLÁ:Ø]n{9 „BùëÂËå¾-³…œ??³pýEåøß` hIqZù† pS«D| X‘ÈCðx¾GøøKÊÑsPL n‰ê&>Yªúâyð>ÈøM?ÿUûÐÿœþ¥$(.ê@àIEND®B`‚tintii-2.8.2/help/icons/system-run.png0000644000175000001440000000470112230652053014637 00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“ pHYs × ×B(›xtIMEÖ 9®ðP± NIDATXÃÅV{pTÕÿ{îÝ»›ÍfóÎn^dÃ+·0  ¦>!Šã£­¢Î”):Z”ªX™–)âTТ鍵 Êc#F4BHP0M²›l²¯d³I6»{w÷ÞÝÓ?ÜÄ4ÄŽN¿™oîs¾{~¿óïûÝüŸLX³¦!# æ4å™0#ÏÔÖÔtôîúú¥oõõZ*-½p Y;wî¶ÿdŒn_ÅΜé`Vk/Û»ï}ùÄÉeï¾÷e«µ—9ÓÁn_Å~L<~ú@¾)Ÿ%''“ôtnøù¼,+**¡(0öÍüI€›>0#oFG{{›L)Å[o¿)Ýÿà}Á·Þ~S¢”¢½½Mž‘7£ã'%ÐÔÔ´6#Ã((Š‚C‡iB’|ݡÇ4Š¢ #Ã(455­›[Z:£¤²ú¯U ÷WÔ,fÅåå·ýÇ164Ð’ò«Ëÿ'õõõo¸\™çy¬\±R5BãÊ+%žçár9äk¯­}U¥R÷ÞûË{Øñêöì-›Ÿ†J¥~lê]}Ö‚ÈŸ®Z´ØUTY¹ô¥äñ¢}}½, 2E‘™$ILQd Y__/{|ã†hM]]Ä3âa6ûs:¬¦nIdb3ó**ê–üld­m§Ø’å+XIeÕ W\„f‹™x<´w´+ƒ‘8V^VÎ{<˜-fÀcî1§(Ñ0´q:,­¯ãEV(¥¡H$¢ú݆G1<<Œœìl<ü›_ã™-[ˈ̈‚õNèÀ?wïþˆ§ü¯Ru™ÇÁç“Ö»†G·=öÈCê¹sfC¯×C𔇔àt9 º](ÌŸ…õüN÷`ÞÙÖÖ¾+"0Õæ—UU%èã[o½éFìÝ¿Ÿ)J¤ 3_üó6nÞܹp»Ñ?`…,‡!+2´Z-ÒS3 ×ëa³ÛÐÓcÁÖç^èl?Ù2ûŠ30Õ*kõ?õäÆì%µµÂÁ?ÄÒºZ F´žjÏïÇq1'“ï¢(¢ ¿ëÖ?ÂFGG®ùâôéV(..Öž;wÎÿ½JJjŠUZîlãá0ì‚ÝaG¢. y&>=v¡ph ø“ày9Y¹ðùüx`ÝCá(˜“çøÌp8Ä+ÑHÝù¶¶c@/EÀdÊò2‚EMÇ>Ë«ª¬OyÌ™=Í-Ç %Pž‚§µJʪl›ÿ°õÈþÝ»`sôƒã8*íg΢ñãOX0$]ËÑ>=ùi䲊˪j8ЧÔjͲ´Ô ‡ ªTå08ŽƒZTcÈí‰0iò#õz‚ ‚ À@åx|rìs8¬šîîîÐe•pr-¼aõ­¨]¼”ã … EРŽã DÜuÇí8Þrêõù¥!Üsç$?8B@8/@Vd„CáÈtðËÖÏSgeyâµqp :1::‚ä¤Pž‚ò£c\…ç·m+JKÓÒ“?{þÙ-úë—]ç í›8J!¨T‚‘¹’ŠŠ›¦ã\ª Hjšaž^Ÿ°`AI ‚Á¬ýý˜=s6¼>ïdÏïÃÌÂY¸mÕjÜs×HMIÅ€ÓŠ`(BDQ kŸ%óç‘.³eMbRêB­Fý®Çã‰^JˆRXZ:K¯Ñ^xŒ0I+Â+yžÏÈH‡Óe&Eg¢0 ! äÛ%5ê8¸‡Ü8yâ$²²siÌÂÆ§7cthdõù³m{02å'”aQO¾)&“éóÜT}õÕ/Yz-tÿ>J„g^{ùE¢KÐÁívÅz}¿Ý(Šðû8|è#Ì3:þ@›·üɺ¥%@@„N¿ÿµ(-_€ $e]ýò_ˆ*>¥fq WTT„ί¿®w¸Üϰ'© Àƒ!<Ï„LV;ÇQ¨DQ g›žÞ‚–Ö6s[{G¢¨V“÷öìà˽~xÐuÀx`Såçæ3½>ÌBñܼ/àCue5¤„®î¯F™JT™j¯]„/σÃî@ZzÒRS!Æ« Ë Bá ÜCÃøW—/½²#:è´?Ño±4ë’’tãcÞ'!ã_ž= @ ÊÀ®wÞs½òÚöŽžnsñü¢ÂŽ7^ ¶¶ž"ÕÕUìþµª»»z»kxdAqIZvvÀ¢ÃxøÑÇÁ¢,"ˆjšm4àæVÂá²#QŸ Ž@ê·XÎÐŒŒHçGÚ7bàrÌ9.VtÜ‘#G22ÀææãjkïÀÝÍÍÇÕþ€™Æ,^‘÷Å‹ÑÙÙ£1 ÿصv»ýÕÖæÏš6®ê1÷FC†Æ @¸¸+½”Râ²e˶;œvY§Å¢E ƒ¹yÙo/\XÒÆiawØ”5 ·Ð³ù‰_zyüÑOÂbé5[»»÷Çv%ùþ/;»º!Šjœÿê+ Éii)ó1Çv%43go¹åæî[WßL ¯š ¨/àC|\üd ìyo{vësµB9y…Ucׯ×ëŸhåÌÜÜò´tÃvA¤@ ø…Ï;ú޵§§€2%åበ" @÷Ž«Í3󢫧=]=Q£1 ‡ …ÜØ˜wâ2àëïí:«âI5µ[­n§s^8Åæ¢­sešOf @RnnNQõ5U ¬¬¬ï×ÿvྵ÷Þ86:–k¶˜qèƒÃËýþ€ €7F$2!ZÓŽu|â9Ý#Sc -=€Dñ±1 ð0 Kgt 8™>ñü>öoÙ¹3ùe2IEND®B`‚tintii-2.8.2/help/icons/help-browser.png0000644000175000001440000000444712230652053015131 00000000000000‰PNG  IHDR szzôsBIT|dˆÞIDATX…í—{pÔÕÇ¿÷þö™l$»@ Bž@‚Ö‚„)Ò¥L§Øú˜i±ÔG­S­ÓÑ‘( ’*òRZ_ø L$Ä"›„y@d“ÝM6»ûÛßëžþƒ•˜¦þÝž™3ó›ùÝï9Ÿ¹÷œ{~?àÿ6ŽQ;¬ÞüÕÛŒo3Îz›°â‡è;;atcæµ³ˆþOëØx/¼-xÔ½¢,zÚnJ+ÂWÖ“îyrOÕÓÍ“i-¸”ËHL0Îû‰&E×*Væíj˜>íâ_ˆ™~ÁMÉf2ú ¢È[f~›‰ è4Ì>;Ö1X6Çfœ™¾ö( ‘ŠS[ W¿l@ôc†3çæÚâã™Í€ Ëax¼t¾­5$oÝâ˜R0·•½I7O‡<ð""ý›šlXÈfCw;¼MXëmAG k%iáÓñ½Bî7œ}{“Åûwü”úŽ|LJh˜ à !†qýY×uŠ©÷·é½’e´wj¹$öøÏ§ºì¦@g ´ tÜä¾fü}èâH ב.»iøòZªÙœre_|¼h|¥\Èõu.+£ð®]¤ª*)ŠBŠùÆRU•¯½F‘òr’OÕRý–Íb_|œ¨zzVÅpÏ:R÷“·gý­Hsþ,€iƙؙ§¾¶êСpÇ©ÉmEî»éõý|Ƥˆª*hµµ€ßKe%„É€®‡aÐî»ÒܹrrÀ ÐÙÝ…†‡6ˆ[ö™"é?9¥@öüÁY‹/€€A0q“ $†¡‡ŽCˆ„¨¶gÅ™Ï?Çf$$@= ½®ÔÝ Cý¼†¡Ã0Œo\‡v¤Ô×£µzK ¨á ÒRÓ0ë‰ÇÙÉõ’y°½Ü<Ñ)Ø2º&HŒà+N·kÇgǦŸÄ‰gÊà˜ÓŠœ…73:úôº:ˆÎN€1p— Z{;.OŸ ¯ß/ƒˆ%&$ØRý~˜RR z{!8‡ÎLœ#oi1»òî;¦ÆWû±èñ°Nº&é+Ò„Ž—t’²>ù±5½hï^8/]†~ìD{;À¤ôtôÈ2Ü èÿÍ}…®À~ͳ*i÷Þ‹oÅ»FK Ø”)²³ÁçσÇ…ê ãçûéÛHBiÿ]B^þÞb|aÓ +ö—oCA2ü~ îØNþ‚*)¡æ¥Kéug¢ºcÙ²Å7êv,_^¼ß™¨ž_µŠwÞIƒ Pðå¤ûý è—ÿBŸÍm8‡åãvlÞºéÕºúZ!ËaÒud9L¯ÏÓ• è€Ã!vÏOûò’%Ù11ÂóÔS4ÜÒD²,“®ë–CT[Wcl*{qç>6 +r¹\Œs"%'ã\n–œ—ûæoo`}uõ¹àM[3Ò5¤¦H€ˆÀ¹§3‰›L¼hB"ጲG1ŽÑ6c è¶Ùßê;Ÿ/ù¨ ¬¸íùK6‹Â¯G&pÆe‚ ášÀ0 ‡ÙbÁ·= ²²†ä™À0$›ûî-o6› á˜@’xP‰(B`¤IF<:Ú¡J’‘4€$I‡CqC¨ª.±à„ŒIáp†a€sÎfhº5®òèã$zûù4‹Õ6k@‚¡8“ú' 5}ýÒ…ÑÙã­· FvÚLKT£ûW¯.[œ9^ò—ŠŠ²ì]—î˜3¿ÀDõõ••]Ð ýׄ®‹Ï'ˆ±^ýè’ûK*"XZ mËVЧŸ!fpyO=Áx[ÇÙò’¢E7êvßê¸ÐþÕüÛYT qü´í;,-…س ²Aê›7ê¾S)>7ò fý j±9µ¤d9l== P,:|a!Ìw߃ŽÎ‹Ôò§çзöžƒ““>€hOßêä7ß»}~ùN¤fd0åà!ˆ/¾uuEE!ìtâxM5n«U·éœ2¡1ópjs;R$WÿùCàíÜ\P£µ,&¼°¦ÒR… 00$Ÿß§1ÎáJtZãâÀ{z ¾÷>¨¦æúìfÏFmc#¬÷®Á‡ú¡ îu›%”ÄfÁû#Ð5<`ÿu2“b‘¿®}!ãªÇžš:RÃà`&G ’§Ne99y–쬋+) Ìbq®T[;’OIÁJHäß[›óIXÖçkO|_ ,6Çþ Zè¬1ùX¸ËŽ3g0Ìxz:À9hxÖ¢%0›-$ œspÎ!IÌf ,YY.ŒLÍÔT ¡Ñí¦¹e¢I2[ ´N˜l7€)cÂÔ+Þm°ÄÜ…¨ä˜u{4ó—¨þü<² )3¬°a» š®`$ ’$`Ðt rj XZ¤Ù³q-ÂÉ“')z£³!sÙªyŽéÿ„üÁ«ƒöŒæ•Fj›P¿rQ—¢î6kCå‰ÖØÕ–¸iLÊ÷‡Ïî¾jC°—”@Ì˪ªPUŠAD‘!GdD”TMA¸»îcÇÐÞÓ««·­|°{I\úÑ®¥èë=²ãðQõÁ;ÖÁ ÀÓù@±]>]®ŒÝkôÐ hÁa\…OYCÞ¯,$6>ɘ•a‹g6»Aˤ‹íeiÛßìI·LeEÏþŠÿƒs—›Ñ_k²Ç• òhòÑ„ÿn:€`”‡ßö5ŽÔwaK|ß6ä®o;xëÝÓžY]wº¸§·÷.«Å<‡1î‘ ¯¢Êm=½½L_Ùsá®uçß7G?cOì@Ü.á8€1Wñ÷þ˜Ð!H¾lTH¶ü{¸y´àá&³ %±™ðâÛqã%&02ÁÈçF.qTpKF6ƒCýºE"”ÆçáâD`ƒM(2L˜$¢rú"Èã­GϽM˜ÃM0MÊÂ9Æ ~ˆþÇþ%¥oŠg˜Û­IEND®B`‚tintii-2.8.2/help/icons/document-save.png0000644000175000001440000000231012230652053015255 00000000000000‰PNG  IHDR szzôsBIT|dˆIDATX…å•]ˆTeÇÏûž÷ÌÌÎΪӮº¦"!EQ^)BRli]xÑ…”Ùw,EX)±"Ý„¢„%T„RQ-QHA(¡Æ ›[»´»îœï·‹sfçkÙݽzà|Ì9ïœÿÿý?ÿçyàÿÒøcýöƒCqí±àTù¥Eºwì`¤”>ðû'/ìR ZÄq¼ç­—ïwJ].cÿ\å¦Ñsy Gwò †»rL\õ#'¿zh'`­u–sÿò£Wþæî®‘`rÁøÖ-qúÊ¥%%¶nZKMá6ˆðí™aV¯YÅØ³géî.-˜ÀÔÔ$ÕW¾¢ré¶n\ÛôNµá»ŸÜNœ$é¥|Ø$á‘HZðÚÎ^Ÿqç3»ŸcçC÷Í{÷'Þû¡ý¯!?eˆUs@@)A2ï>7¤yÕÄùo˜¼0ŒmuÏ!J—70]¼¥­ÅR7…BÛb­Yª ™ÀäÅažß³›¥KËÇà8Çq0ŽAk‡8‰‰ã˜$މ¢?ð¹:5ÅÐ7YË]ˆ²X›022Ž*:·â°IB¹ÜËoçá³O¿fb|€kzW0øôãøA€xéÕ÷ËÚÕëHâˆÄZldé.¸c2v¬‚öDi­ÑÚatd„äæ§k¹üëü0À|ü ð}Â0 Ÿ/ÔUT\£ÑŽîhB7MA>Zirn€b!½V( ‰¢( £c\ŒcfþWÛqÎè™!×à0Y# @@ÜšÒyàf …‚¥ „QD…„Q„R ׌q‘Lf¥Òñ›3 •õJ@Xë„.K°,é24†Öšœ› «àRÈTHwÇÆq1ÆÅ5f¦‰Š(D×hD¥$,ܦV¬„Ñ“§‡ÃVõÐÓ@B)EÎÍQîíãÏ3‡9sˆîžÂFéÉÏ«f˜Ù¹joÅu€?òý±m?³ëƒÄ²nÇ=›Mb-•/ ×®\Ãëûöãyžï¥%ç{„aöyQh¥ñ<Ÿju€þey Ýy‡åK  9¦½%4ÖDXV\~ýŠ•›vŠ­\°©ô#J×ÕhrˆµÔÆfã‡,`ã&7Ò"Wß¾ðù¾½ÀDëÈ3@©'4³LËF „À4©sÎ\Õáý| ü·â_5ÝÑž‡»DIEND®B`‚tintii-2.8.2/help/icons/zoom-best-fit.png0000644000175000001440000000451712230652053015215 00000000000000‰PNG  IHDR szzôsBIT|dˆ IDATX…­—pTÕÇ¿çþxïín6 6„€hÓ"`À˱J)AË´ja¬:¶ÿµ¶uÆŽ–Û?Z«A…€ ¿¤ÁR…€ø4ù‘d7ÙMB²›»ûÞ½·Dœ˜I‚ýqæ¹÷Ì{sÏçž{Ͻçn#uuuà­’Ž½]r±ÒõT¡çeƒBX)ÁY"«¼÷T&û: NÖ××go7Þx¡É^D"Q.ØÅ¹ümq8ŒššeyóÊçñ`Nüþ’Éôݼ‰¶¶6ÕÒrv Þ‡«Ôó½ñÞ½ÍÍÍÞÿ°cÇK… ›5«¤xçΟä|ÑzY_½vM 2åe–v|~]R\ÌKKKXr ‰·÷HvÅ»b™¡Ìhÿ¯¶nßZí³ìã[´-wù²eüÄÉ“^ggL÷›PÇ Å5 g`¹–ÉH¡‡|Ö3£@ôÍš ±•âlË9uìøñdv$»¶¡¡áü°yÇæ™92ðÑÓO=S8=T€w7ªU|yКÛa[6#ÒÆ£ <­2¤]Oh…eçì°Ý{çüù¼«« ¯¿^ŸpÓnUCCCt*6&W®{xÚô‚Þ9rÄbÁWÙ™ôq¿#¹ÏfÜ'¹°mÎ}–àŽdܶ8“Ò2 sǵ¶Lù‡—[¯ºÅá0Ö­[Žhœ(ÊcEÜêlÙ¶¥î޲;J—.^*ÞÜÿ¶c Ï^j‹ÏîN´åúj˜m›"´6Fi˜·›«1}€Â‚¼«,;ã´G—.ZT%.^¼TZûƒÚºÆƒoLH$",i½ðè#†N·œu{tI«?X”îNôç4îy‚÷Èh æq®HÿtGí'YWé¿î;z7cdˆRpNdr£ùYwλççÇãñº)ˆ³5sËÊx´»Û3{,É™Œˆˆ6ÿê/ ¤€´!ÃaŒÒ ò4cŒ°ñÙW‰ˆËâbÔ—ÉI=PZZZ"‰hÍ”KàfÝ¢`^.‹1p†1Æ9víÜø©Å9炈ب#¢ÑMh"€AïÜ^û±§ŒÎ¸J·'†Óç¯ ØHß\>‡/Î äÀu½Â)2éLŽßçœAú½î¤›Ng3ª(äsJ D@2.„ 00"¦¡5 ÄÉ2„¡LÖ½Ò5’<5™l§•RL3Çö1¥}Èf³Á)˜dƒÉdže9:Ù;â8?óÛYVš,KP¸Àg‡ÂÚBØcY¥õà°öâ)7}=‘éKe\O)Ï€K 0 dãR ¦<5%€`"Þ×Û›ç8ŽJÄŒCïç§6ºA(ª~° PP€q=mAW©”`Ä“0Èd³'Z¯\QÁ`€ÝRaO“v ÓáèË»`(Zq©°´ŽfB#„áR‚ÿãn’‚ ¬›ïŸmLV\»vCe]÷Ä”#Ùô¾Ó§?ì÷ù||A •iâFkC0Dd ‘Iœk¬íi9Tk 5q©Ál“þ´isæÒáÍ =oAË’tÿ¾»2™!Þrî£þLÚ«Ÿz <4Ǻ»ÓñD`Hüx)*^»@—`àø+»ëžÚ #¤á 0ŒfÁ»¯ì=‡¡G!8Çîûí 2žˆFcˆ÷ô¥6?9%@ss³wÿêÕϽö÷ú—Ÿ}æÉÐÖ…¼¦­Ï$.ö…z×ý|oÁè4:K)%ˆŒ6 ¯ F/ƒœüPoÕ<9ý‘û|57n´Êý÷¥G²Ï½ú_“(co*Z½~ýù-›7Î_µr… îϼxJ4‰ÙqnKHiAØœ 0Ρ•‚R¼Œ ×ÍBe\,Ÿ£Š~ý ³!m³;á5~÷³÷O6/Âh '>Ö˜7\i½òXñÌpQX]á” /õˆ^͸fœC.`4´ÖÐFÃaJ<½Œ-ܽ܊tt|i}p¦o¾u°?3¨¾×ÕÕ>i ŽàÞššjÛ²oÚ¸!÷Á"<;Ýu¿:•ŸÐÁo\r’½i–.p´3'É]VêÍ^2ËT §xw×uyôø?Ô‘#'Ü’p¡*˜–¼ <½¯¾þÍ?L‰ ‹…%K–”2Û¬¸$\¼ý¡-¹åsË““§|\Ï–’KNÜUZe\W¥R7E²ÿ&o½roíoLvuuÇŒV¿‹¬¨y垪{Dɬ\¿vC5núÓÛ÷ôxˆ)«â¡ôn.øoŠfbéâê¼¹esx^n~¿ƒƒCèO&Ñöå5uöÜ…D<­ôóy~go*•*,+Ÿ×¾¨jÏ ñÝÊ twżƒ‡÷އ˜²\€òòr;ŠHÇz˜s¶ÒSÞtÏUA!yŠ3Þëyê=7Ý×6G£Ñ[ÿfÅÚ5éÚõkÄõí˜QX„‘ï!ÚÙéz盓Ðm´fl» êÞµ¥sf¾ußâ*+ÚE8ƪÈJ´w´{M‡¿†øFŒsÎÆ)ׯc¿¥xWìªm;g‡3Û*+ïâÑh ===¨ªªbE…U–Ï.þì“‹“°q3žÊ¾Õ B(ÑÝ}Õ¶g††G¶Í¯üï茡'Þ‹ê%ÕLyw ˜sj¢bÑÐ㌵1ÆÆ0·&Á˜Ï>>× ˜:"ª_¾l±‹ÅèŽ#=4RÔ1QÆ‚L¤zL;VÕ8ûëžèîúRZþ3Ã##ÛTVðÖ¶«î‡gZ~ð@Cým³à[ÈøM8Ñ2.Z²Rúøcrÿïÿs?óÿø¶ù2ÿÎÝ!™H5¿IEND®B`‚tintii-2.8.2/help/icons/COPYING0000644000175000001440000004325412230652053013044 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. tintii-2.8.2/help/icons/document-open.png0000644000175000001440000000171312230652053015266 00000000000000‰PNG  IHDR szzôsBIT|dˆ‚IDATX…í•ÏkeÇ¿ïûÎîlšMÄhsXE„BI·—RAERAXcc±zðà©ÿCAð¶ÉÊ=¬QÐÕC)t›&MuKívÛl»i¶ÛìÌûëñ°³Éþ˜Ýmr²_˜yfžy?ïóëžêÿ.Öúpâƒ÷¾ÔÚœèĘåŽ8“>÷õ'; 0;—º25ýÒäèèÞ¾N¾/qéâò#%Ígétæì“8†Ù™±r=)eO§á=Ã{f|øÛï~ü*•Jå2™LaÇþ.,#¿øû@Ç_8„ão¿1ôKîÒµ“Ÿ~ät[KD‘Œ±pþÍÂùÌ»¡ ÇÁºqs£Æø;ÇßäBˆ¶wÆ(%¡µ‚TJ)h-¡”„çûÈåòoõŒ@«|_¢TZGyu`,ä‹¿f ṃûñìX¼Í `­T«5”nW0.Î]þWc0;÷>b.€– ·P@ªµÔj "„)brrŽã4Wè `)¨eÚhG€±(’É#] lå½?ð¶lAt¥ 5Ínpœ„pÏ÷ŸÝPLMMÆæ?·@A 4§§§.ÞúŸ­ûp{ÁX»Ù†Í©(¥ì"ïô,6€PRm¶¡56ða­EþJ éy”Ëåm,®õª€¡™)ßuÅi³s3 !>7Ɖ¹®#¥¿ DŒŒŒ4Z’€×^?Šçã ÐÔââuä~»œu€1|qìXr<‘8¸™ïNqÆïcÝ…ô8*Wëžç5¸ ¤œÛ·7Îû»h{‡å@Ý*ÞQÄXŽ€ÒráÚJ¡Ö8·wÿò<õºå†ÿá@í÷“`#õ:†b±Ùb•Je8Bü™žOÙlVZ¢‹7 ·a­Ýõ«X¼‹êÃG¿@3çlõîjvi¹`­5»~k nþs•{÷.-<‘HzåÕ—&¢ñ*´01p.Ö.|ÿÃáJ¥r«µç€1q :YžL@À}lo„>Õîê_õ¹÷k NIEND®B`‚tintii-2.8.2/help/icons/zoom-out.png0000644000175000001440000000437112230652053014305 00000000000000‰PNG  IHDR szzôsBIT|dˆ°IDATX…­—ßsUÕÇ¿{­½Ï9÷g ?o#ÆP‚‚´?Ô±TmëtìL}ÐVÿŸ:Ó>õ¡SŸ:S;}h§´„ˆ2j«¬Å¶I0’Ü_I€ÜÜ$÷ÞsöÞ}ˆØ˜I‚ý±fÖì½æœ9ë³~ÍÞGà&²oß>îSžû„b¹ÓtM”cR:S’i¬¬ƒwt©ü Ouww—oö½…"–zÐÕÕ%kU?`V?­O$°m[gÅ­-·r,E8A>?‰«×®áÒ¥Kº¯ïìd.›ƒ¯õ‹¹‰—Ož<üOO>ùÍF©"o­^ÝPÿÔSß‹G"ü³À %“zf¦@:(KÇx¡°i¨¯çÆÆÊOæñ§ƒ‡ò™\&]š.=xèСáÿ à±'ÛrÜã}ko|{g'Ÿ8u*M›ë¶r¤ js†b3%8¾cKJšéP„ÆëªäÕÕÕ••´¡­Uží;§ß:~<_ž-ïîéé9ÿ<ú䣫¢*rá¹gXS]Y…#oÕãº~ à4¸Ž "!ŒµÖj‹À«­0~ -L@ 5º&áNܶ~}+g2¼òJ÷˜_ôÛ{zzRËÐ|˜¸ŠÝ¿oÿÊêªJ9vÌOaÃSÑ6º"â°§8ä‡K×e9’=Eì:LJ9vÌÞ’¼Tj9=Ð?ä×'xàݕғGËò|á›={÷ì_·nÝwö<º'òzoo0‚õgÃ+Å+Ù‘ÄJI&RŠ…bR² BB@¢l½R>ˆŒ‡üT}[[«L&/;Õ5ÕCý—èêê’ñŠxïó?z¾îÂÅ¿ùC×c*Ö8rYz®$GÍ©RLü™cb, L AB ”µ*Y?J³+o¿­9ÚwþÂöU‰ú—’ɤY²‘ŠHW]]­çy.ÆÇ&tÉmÊ„C{Ž"ÏQ )öfבr…\‡\G’«${®$וä:J¸Ž"å*‘*V–ü@Ç+*°rE¥§øàôõP(ÄD“l5ØX ˆŒo¤  Œ e+r­R ¬$+ÅrNG‰{n ­+•¦¹ïÜ…ë¥bн,€ p2Ísc9D®üîV´j!lÙÑ`c@ÆKޱRYV¤« ” ¥˜å33žÙn6©T¹ñ«ÅˆË§–`H&“¦¾±q$“Îì¾§sKìö^uùäfÔ I ’’%„b(©ÀŠAD°b.+ì\/‹Î[¨ú…]áÝÙìeçw8p5›áý÷ÞýxYN&?YQUõíçU77­Q;[ÜæTžÒ邚&%ÁRA: ,çÒ.„€ÖXkm±£YÔþø‘ÈC™LÒ9ñö;A_ß…ÁÓ~÷…¥œV&=ƒýƒOׯª‹$j«äý­^KUæïãrÂâ¹³’€50ÆÀX´|®“6>³ÝéùÔùðL^}íðõRAß›É /9‚À"gõæmÛ6¹Ž{ü‘‡¿ÿÚƒ]‰WûžÖgSêŽð•ËÓ^~¢HÅ*Ïxk#¥xgc°¦cµm™™âlæ²zóøÛúر~C¢Æ«¬Z95S(|¤s »ûÕ—07ÅË@GGG#¹á·êõO<¾'ÞÒÜ„h´B‡"ñÀUŠ öµÑ%ß×SS×dþú5îÀkæ3™lÚý³®Û~yWû]²au.'¯èÞ7zõÇßxn!IJ·âÉéâ3,ù'µu5غeSEsÓZ®ˆÇ‡P(Lãz>KŸ&õÙsMŽåÆ`´y±"ì½<55UÓÔrëðÝí8‹á޶Vd3éàðëG_^±ìu ZZZÜH¼²KyÎ~fÚè :ðuL*žb≠ÐïøÅò‰\êd*•ºñ_`wìÞU|è«»äå+è«©ÅŽ®{‘ ^?òEˆ¥ÄM‹¬vþº¡}óîÆµ«^ûÊ–v'5’B"‘À}];1<2í}ãsˆ/LÁç´@yÁ~¡ÎWä2é!×õÎfJ{ÛÚÖq*•Æøø8ÚÛÛ©¶¦ªÝ ¹õ?þäèR´ âåìûù €Ëf‡\7rfzfvïú¶Ûyd4ñÜ6ul")Õ‘Xô=¹€`8˜ocžE`nÁìÅ¿ž; Ø}Bˆîí[œt:±lÅéY-FËÀ|ÅÔÌ[ç«^`ÞécÙÌ§Ê Ÿ™™Ý»¡­•û/ ù§Ïôýüð¡žî›NÁ—…M¸X™ïîØ©Bü´‚:øá_Þ=Àþ?¾,äb¾ì¿}ƒÚžv hIEND®B`‚tintii-2.8.2/help/icons/list-add.png0000644000175000001440000000112412230652053014206 00000000000000‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<æIDATX…í—ÝjÔpÅÏùÏÄĬۂt½p¡ª¬mßÂÒ¢h+Õ"ÞÖèEõ© ˆB÷£-jm>Æ m·ÛÝ5Yš›=H 3ç™9Ihf¨R®R÷9-Z¸¾ÑŠ’4]&iÌ©ûüîèÃʤYÖ|¹·O€43ì<º\¤O¹G@¢ÓmC´x›Ò3Pvg6„EA*ß‚9@å#s`}ãa”fis2`ƒŒ$ÔÓœ$H‚ ÂÛá¯ÖÚj2ÜëâpªÊ—·Gï/…ÕH€$MV^í¿¾à ìÏ)3ÀÑÁ ¡ªpâ°ólן´Ÿl_ «k“PUÐév&´D½^oì=$±´Ôís]Ñy’`qaq"ÀqûÆ=8rÈõòE’œO "ý½»á8ã°v'ÛÚÜ=σ§Šƒ7ßûñ‰fYF’0³¿yžÓÌ ¢ý©‚[áý8ŽƒqI’vÈ3Ðé¶Ë~4«ÿüvzj¾ï[DZA`µZÍ¢(J§8<<<p6 µ¶ qª øþݯƒÚ©U*œ<õ NŠ÷(à't¾ŽËjF¯áM5ž @žå¨×0”:ÿ¥Â¥êy7·= É<Ï©¢'ѧ«{>IœÿšÍªø g?ŸfºŽTbIEND®B`‚tintii-2.8.2/help/icons/window-new.png0000644000175000001440000000231212230652053014603 00000000000000‰PNG  IHDR szzôsBIT|dˆIDATX…í—?lUÆóv÷þïÙwg;vÀVˆM"‘ %4@ €†‚*U ê´ZDŠD@¤£$Ó¤HI $–â(qÛñÝùöv÷vßPœø8GŽ¥4|ÍÛff¾ï{oÞ΃' Ù­DªG½F#ôÁÖ\WJ’ˆg¢$qi,U«3-Ò]' Š,1ÙpÒ¢55Æ«¹nnIE4Pcº°תÕÙú®¸|ùpfbÂ9`4Ý0ŠêPÕ<¨QL"¢ZsôFnDZ^©T.ßÁn!ðâÛ§ß]M9ÓéØüvÅ£LŽ×yf¬ÎØp‹=Õ€Z9¤\Œ(ä S'˜¹ùÍV‡•Õ,KõËõbgb8øì½7þø¢P¸4ànN©9ûæë/{SãCÛª/fïQó¯ãîâçîRÊ-PÈ´ÉfÚ” ïϧR¾O}õ aœ#ˆŠÜºWòÎÿn>¶–iÕ©ºÈLãA”xGìåü•Tÿ»¸çÆìž™Çqæ)eçÉx øùû¸î^r¹ÈfßÇO¾Å5sÄIÈÄè8–Wб ð¦T¹à>œ<—ó(ûïÀ@¡ÍÐ@Lm M­Ü¤ê¯P-.㺯àeN 2€H/÷)ð 5ÿ*A§Hm tÜ=p¸°…€ç˜¾Å¥”mõBr^ÀhåcÕ“¸î$"ån½€W:K^›øéÏMþ€èlETËí¶3ø¯ZÞzi˜×ös ÅÈ ÆqqÝÏ{ðúÏ=Ĉÿ ª¶ Æä4MË[ä:ÎS‚Iº+)6½@~$ÛÄ¥ÄÑ)‚àWqÄŠ+B¦¿ß=a@îŠAÕ!M~¡}Ý7ªIšü´v¸Å*šªº ƒjÕ, $éÏ}£’äG”<ÄCDÛF“$jõô[ûõ `©`( RBñQ­`ˆúÓ–!¬ q¢Vê¨4“å«¶o2ÁJ U …#7 X$M/bÌŒyª#Gs‰ ½ˆ ‹â™Åé駃-°¶?È`eWˆiÄÀÖÞ¡Ÿ!é|Ä Y\÷8^æ”=À2«­¹“Oâ™cǦ“­(è6tUŽÒDHPQÂð:Q| Cdh âE†§±Z¡ßO£y›$q®Q¾¸ ý Ölï€`í8ŽQ0jrˆúXZˆD€¢8݃ª%¬V€ î¯\¥\~vVä‚ö$ °íØ€‡Ú}Xòˆ1Ò@h#Ó½'ܵn)¢ZƘì¬ü†È¹“[ð¨l8‘¦£ˆTibL¡ëjPÉcí ª%” ªŽ ;jÃÞ1 FšÖ€”Q£ÿU³Ã.Ø›Unäê%kG÷Àα•BÏ6||¹þãvÁc×ïݨîè öƒˆÐkÎ[' @Ñgi~a¾6ñôþÝ{±¬Aù…;ã,% è:¸7oü}òܹï>·Vw¹~·ˆ‘•›7æNÒn€t³P(¹µoÃî=Ý”õ B XûþOÿ‚]üp:ð$IEND®B`‚tintii-2.8.2/help/icons/list-remove.png0000644000175000001440000000051712230652053014760 00000000000000‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<áIDATX…íÖ? ‚@Çñßu‡JB.¶8ØËjˆ^GÔÐPDô:"èeÙÒb$.žu •EþÉ0°á¹AŽ{Ôïg<¦”B“«Õh ð‘w8öwIrq~|¿Yo{RžÝåb•°z€ñdäfPE/ ÁáüzÅûbŒÁ¶»ù¢b)au¬o*¥c)ãêÎùq6Ÿ¶àr{°[ãQJ•ó× àâX `hm'Š"4MKÿžÂt¯ëzº7 C@™30MS€çyÉ{‹Ñ•Œ Ð4à ù?ÔňIEND®B`‚tintii-2.8.2/help/icons/package-x-generic.png0000644000175000001440000000221112230652053015755 00000000000000‰PNG  IHDR szzôsBIT|dˆ@IDATX…Å—KˆU†¿s«ºúÝÓL¢yŒ!!&1At#$Qt+>Á€‹¨ &påBDѺpáBDHˆ`0 Š ¸L£«, LƉÉôŒ™ŒÓ™šîª{\tÏLõ»ÇH<›ºuî¹çü÷¿ÿ¹] ÿ³ÉÍ&8þ ‰g æ­ÄÒ»‡>§¶–õæfÔ¼B܉ÅÙºwÿkþúìĉ#¹‡o)”¥;vÞØµïà¦Tv䳓/œùäXnç-`ÚãÏOc«SŒmݜްᶪúÓ‰³ï>¶!Óoí@ |z$;Z7ᘊ3¦V·9¢ÛÁìFØf•q…³¢úÀ=û¥2}ae]Ì\¿¾X©VE—X=% C8ýž?š=%{$•ߨÉt!Hfòâ%²1/™u½Ô^"‡q=~øòmî=ð8åâ/¹|ß§X,j¨áÄÖ_K»MÚ©13s•KÌý=‡µ«l‹ë Œë<ÝYªÍŽÍÝ™[7¶Ñ8±¾ÅÔ†Tj.Õº‹u’¤Ò¼dÙ¹*¿_¾ÄÌìu‚°Áx&•ÁZ›>~$»gúä–»ö»«Œ¤ ¹¤I®`Œ!0iÊaŽk-piâ®MOSÒÉ”±¯Gstr…gr£ÛZýªØÐGÃ6°¶NP«ã/-!"ˆiìC ˆ(b,PZJ15)û”+W ň÷`Åìu¼4¥© ,.Tð—|Êó%æË%fgoP©ú„V±îÛÁg‰¥òd“6:¨.ãF›Ïº…Êü W;çõe@mHÌ‹Süa½õyØ‘O‰•XiŠTŸZ©H­\Œdj°Û÷=ÁÕ‹çZo4iu:SÉp¿]ím¸lªa‡¯'cºu¨´!ŠÎtu¶´ã"쀈°ºQëmÒ%Ä@0ˆ8=òKÏ×®,¬L è°¢GÐg—ÒZ½kD« €6¶â°Ë~QÃj S„½w:”øV¬áÚhÍ;X|Ñá²G†€˜Õëµ[âND½"ÚÀ®å{W|­µ‡c£¶ËG0T+¶"êõoÚpÕÙ-´Y¨÷ Ùhˆ.p—‹54Йq-íØ!«GºÈ ¨Úº¸^ø)zÕÔŽ"–æ—q¾/÷rñâw;6?6ŒdQÔ†`TC4 @CÔ†¨Íw‹Ú:j-jƒF, Tf&/àNñfí @ðÍù…WÔ~ñAììéÍâÆ#ÛjÒ9Gª:ê_Gæm¨uëN}}~áU NS‘í¼ÅQ ×\=Ô·á¶Œ¦Ì6Ÿ]•dhˆä¿ùߨi‹4à&G]‹_L½IEND®B`‚tintii-2.8.2/help/icons/zoom-in.png0000644000175000001440000000442512230652053014104 00000000000000‰PNG  IHDR szzôsBIT|dˆÌIDATX…­—[lT׆ÿµ/ç2ã±Á7Ƈq $· 0á–*J!K£*¨E*©ú’×ô±}ª”*mªV*U*µIL(°¹•š$J“€!iEÛŒ ¶gÆã±±gÆöœ9gïÝCäXfH/KZÚkéÍúö¿/g á>¶wï^ 6JÇ~Nr±ÁTU"BXYÁÙ`Aï)¯ð6 .477î÷{Óîõ ‹‰êhÅ÷8—?©‰F±fÍÚ²Eõ‹x¤¤¡P™Ì(†oßFWW—êè¸4šHÁW굡ÔСöööàxþùoÖ >;o^mÍK/}§4ãóÎkº»§Gç˜ Œ K;nH×ÖÔðººZ–ÍàOGe’©dÂó¶;v¬÷¿ØýÜîå®eŸÛý­=¥ëÖ®åç/\úûzÄ”÷å¨:¥Yd܃å[Æ“B¹a–žS!†çU–—³¥ âRÇeuöܹLa¢°¹¥¥åʰóùsKdøÓWþ ª²¼'Oµª´ª¹–³öÙ– ƈ´1Æ(ƒ@k£ i?P:`QÙÿ@ÔzpÉ’žL&ñöÛ̓~Þojii‰`SaJe¤ußÞ}³++Êqòôi?Ž¥uYcÿ¬ˆËCŽä®Í¸+¹°mÎ]KpG2n[œIi™Aóµž.¯þ“kÝ~M4Š-[6— G´Î¤òTãwƒ]{ví[¼xñ‹»vî Ÿhk ú°äRhV4ïÚ‚[‚q);Öö~Óµ½5]ݽ5]ݽsoÜì›ûТùI*ÇËá´ëÇkDOÏM«²ª²ûZ絫EˆÅbÂ’Öë/¾ðbùG—ü´®í Eªó®Å…ëî: 9gŒ¨õÍýÔúæ~jûåwÁˆ(ìÚÌq$³,Á,)hBG²½ãŸ§GüíOo+çB¼‹ÅDQ€pY86gNµã86ÒƒCʳ$C®ÅK2Ç’Üu%w,ΉˆcÈe3 1rlÁl[0Û’d[’I[R<_Ùïù*-+ÃìYåŽt䯢–´Ÿ]½jõ¬[½}:£+%%“’3ËdY‚9–à¶-cwÄfDD"‚”œI)˜esfYœ¤àL ƒ^i<_ðÕ²G–Ìâ\î½€âlÓ x|`ÀŸsÓ–äL F¿o>³l²(dˆ ºDDæ­#g5€ÑÚÀfÇÓ±£a¯dÐèѺººZID›Šø¿:RV $ <ä1ÆÁ8Ìñ7öß©gpgC“`cdNüb?0ÆÆÛø;¤s*åúè¨üíuóùÊ’p |?¨* àå½’ë‚ Î CÁ@ÆÏç ž*F†år“Ä@dÀG~b “…µ1†Ëº+¨æ¿¦û•RL3Çv™Ò. …B¤(“,7šÉ”Y–£3CÁ±+ã‰mQnÌ÷2Š„,!b`D F„ññqØŽkŒ‚ö'Å7~AA).%À€h„9ŒK5–Ë &x¶(€`"5<4Tæ8ŽËOÄŒƒ°õào 4œùÕx À˜Íß?4©?hAp ¨Ÿƒˆ«ÑlV0bƒÅ— P8ßyýú•+V°Åå*Ú¦e3ŒÂo>)¹€°9ˆ8ÒWNî "ùhòu··hÀø A @¾ƒ-K¬ŒñDOÏ-Uðýó÷`0QÈþè£OF\×åKki&n¸6`:`LûZèRd€³É ”ˆÀ¥„à$9„˜tË’ôõÝÅž7Æ;.:âåƒæ¢"@{b` ŸL!²Å·W£A™‚fZk ¦ ãÚ€`@˜T€"H)Á¹˜„àÄ9l5 D<ž@*=œÛüBQ€ööö`"ï½úÇ·š‡] öîe|Íê:SÉ›”šs0ÆA¶<„-aëÁC Bp0ÉAœ1†'ÉÊ­IÚGŸÎO^-Ö LýRѓ۶]ÙµsÇ’Ö â!ïDÛńⶄ”„=9[Æ9´RP*@àùðý”çcÝ|Uý£§œgâñ.ûÌÙóAÛ©?_ýðBûc˜¼Df4>5™¶\ï¼þrÍÜ9áhu…x²Á©¯Cÿ3-†4ãšñÉ5æRFCk m4¦Ä+kÙ²ë¬X_ß ëã‹x÷Èñ/§žH&{ïy§+X±fÍrÛ²Ï}cÇ3¥Omñpi¥ï8!u).ÿõq¿usÌÉ åY¾ÂÑÎü°Wº¶.x`Õ<Ó0>žåÉ›ò̹¿¨Ó§ÏûµÑ*§¼bvv<—ûLúpsó»?ŸI‰›…U«VÕ1;t¶¦6Zóܳ»Jë.@II™rÃ¥-%—œ¸¯´ò|_e³·Efä6ï¼~ G޶f’É„Ñê§±õk~ýhÓ£¢v^-nöÜRm§Ú~óο2¢hW<:–?Àÿqõœ*¬^¹¼lá‚ù¼¬4‚PÈE.7†‘L]7zԥ˟¦¡•~­,äÊf³U êõ>Ö´”—D"x¸±ÉDpüDë¡éEÛ%¨¯¯·Ã¥å1éXû8gT¾Šɳœñ¡ PïùùÂá¡T¼=ßý_`Öoޔ߾m“¸y«sªª±>öâýýÁ‰“_†¸ÝÇ1Ãh¦ŽK›Vl®›?÷Èã+›¬x_ÑhcÐÛ×´¶úâK§`Zq6Íù´xºO}—RÉD·m;—rãÞžÆÆÅ<O N£©©‰UWU4Y®]sõïÿh½›6ãbùÝx* ÁnÛ_ŸØ³¤ñ!Þן@:5„å«–3!ä#áHÉ35‹€žV`jŽ)9f€¹; À\ýÛåvÀì%¢æukWZ‰Dƒ)äÇ&@ŠúfR`*ÈL®§ŒS]MË¿ØéƒÉÒ ]Ÿ˜Ø³´±wvuûŸ\ìøÙñc-Í÷=_Á¦o™– °ì±U¤Ë_–G?þðý£Ìÿà«BÎTËüöõÒOÔ¦ÖBIEND®B`‚tintii-2.8.2/help/icons/zoom-original.png0000644000175000001440000000446212230652053015303 00000000000000‰PNG  IHDR szzôsBIT|dˆéIDATX…­—klTÇÇÿóº]¯ »¶Yc Ø8àŠ“[HÒ&yªJ‘Ú´Š”ÏùT©ýÒJ©µj¥ò¡•ª¦Ô$Řòj6 Hjcã5¶÷í×®½Þ»÷ÎL?8DŽe/éãHG3G÷jÎoÎcî\‚›ÈáÇ ÀÛ',óÁø^דUžW pnä8£é¢ôÞ–NñÀÏ···o¶Þb!Ë=ˆD"¼:ú!câ5á0vïn«ØÐ¸ÊÊàóù‘ÍNcbrƒƒƒ²··g:•LÁ•òùñÔøÑsçÎyÿÀ£>XÇ…ÿ5kjkž|ò»å~¿}ýWÕP4*óù*½"eÜP–íSµ55¬®®–f§³øû‰Žl"•ˆ;³ÎÝ#ÿÀC<´Ý6̳}çPùímm¬ûüyol,®¦tpt†T§ 䮡ÁÕ¬í§™U!>±¦2¤-ÍM¼§÷’|ãìÙlq®x ³³ó£ÿàGX]&ü?óãŸTUC8õZ—ÌÈš«3Fèi˜ ”¥µÖRÃSJKM”ëI åѰ[6ÇoÙ¼¹‰% ;Öžv nkggg¬]S.]GYY âÔ™3n -UEóØŠ€Í|–`¶I™-7MÆlƒ3KPfŒ aè´^t/\írkÂaÜu× ·x×RQ^(ìÆäࡃG6nÜøøÁúOž>íbsoE¸`›œœ2!(…TâT÷û[GV¬¾6<ºzÓ†u ¢¶œ¬çÏØn¬¦¹¹‰G£ÃFeUåÐÕþ«WJF ‰pC/<þØãÁz{ÜŒªí÷ª ¶Á¸mqf[µ ·cÉÊ'ïÝF»~ó=rú·?%„øm“Z– †Á©!8™SÜH>Ô—IO¹÷}ëž ãü…H$ÂKø+ü‘U«ª-Ë2‘IKǬOølƒY† –!Ø_;º·ž|ý½–ªjß½…B„€P b™œš&§¦!ˆi*LAb…Ê1ÇõdyEV®ZÂû–à`óá];w­¸>2ª²*/+³¨Œ#†`”R‚c¿|J)‡H%AÑ„Á¨¨„ô´ÒˆJ;å±EwÝ–­›W¤R©ÃÞ\6„Ñý õõ,ÉÈ9^•‚QÁ)aŒPÁ !óuD(¥Ä¶} ”™˜ß½a"'†ÁˆœL8ei­ êêj!dɸE·:PQ(EÁ|¥ ”1pÎ5% ÀƒÏý>÷'€€B)¡„&#œSbpNg$3# ç¯L¦Ï\ÎsÆh™¿ ®ëU•LSpÊ|¶ Æ…ðyɬ[(Y´­º÷ÿôûû8'äÅ£'6 PÊ@@@¥³NÑHÌe?ÊfGRù‚”œ*j™6•ÊF±X ” ‚ÎLg³†a©ìøœ×ñQ>î3 bbœ„C¶ôs3›÷êp$…t•žÌ¹êwoNôMäדÚÓ`B¨E™³39N9襈Ӥ&ÆÇ+,ËR³…9€P-Aáj(®ãSj.žõæòEéιž”§µ#5¤KÝy§¡àŸŸ;«ar:—ã”ÐtÉpŠÅîþøéÆ  {Š(WS%)WLy”)I¸Òó•§)ådþeB€™BÌ+œqܵٷVë"F¯Ë¢ëv—˜+ŽðÁ…)Û¶YK-©W„i ¦4¨ò(U®âʃPÑÀ| `Lp&@çój‚Üq‹½ÑqfY不œ‚×^:ÎÅ“ÉB*‚?äOìBÓK—ÉgEEµ¡ ~t€ž'€òóÅ<¥ðôfÑÅâHe& ~“_€@4U5uu£‰xâÀm;›ªØêáI:šÊ‹<å”χշ~K_ùúÖ¾²úm}þµ[ú¬5Í}€&Zk@i´­§•Ïî÷H&‡?¿t|"™Ì<ûwßù¤$ŒD£Ÿ®…³-«²¡~­ØÛh6IJ4Ÿ³Tp0.À Ƙ d¾ µÒPZRcO©þÙýþû‰¨ÑýÖÛ^oïÇÞ{çÙåœ V†ÃýOÕ¬^åW‡ø7š¬Æê³ W”©ùÉ h¥”V°¨äÏ´Ñ-OßnDFG¯^ìÅ˯¼:åÌÈ;‰‘e[Xâ[}ÛîÝÛMÃ<{ÿ·ï-ÿæÝæ/¯t-Ë'{bâ_޲ëóVv¼@ !KYëüNy[·vçÝ”ÏçX21,^?û–XÞØP²² iûË=S&a®TÒq]™ËMòìÔ$븊WNte‰d\+ù«ÈžÝ¿ßֺ׮©Åpôº<ýÚé?üí/ÇŸY QòV<=[xšqöóêUUصc{ECý:VQ€ÏgcffSÙ,¯EeÏ¥ËÓéTJªç+|ÖÑ\.WU߸aäÖÖVàkÍMH&âÞ«'»Ž.†(y]€ÆÆFÓ_ŒË8ÂÝëI¯Òse€ –c”{ž|Û-§bçb±Øÿ½çÀþÂ}÷ìçÃ×G°ªª{"w"66æ<õeˆåÈMKŒzáØÒzÛºu«_ùúŽV#6C8ƾÈ^ŒŒŽx]§_ûâK]°È9]¤lÑ|±.|—¤ñ!Ó´zfòΡææ,‹#“É µµ•VW…Z Û¬¹òɧ]ËÐE;.eߘ/!H:™2MÿÅÙüÜ¡ÍÍ›ØèX™Ô8¶ïÜN9[ý²w—º,jj‘ƒ…6ØXæÆ&}埗Îú0!¤ýö¶F<G:™BavD’Ñ¥"°d)U Æ…*Ù_Tz:™¸& ßÅüÜÜ¡–æ&Ö?8ä^¸ØûëW;:ÛoÚ_AáRil¹uç^a³§ĉßçýÿøªKùÒÿy³ßÀÃü@îIEND®B`‚tintii-2.8.2/help/icons/dialog-information.png0000644000175000001440000000360112230652053016271 00000000000000‰PNG  IHDR szzôsBIT|dˆtEXtSoftwarewww.inkscape.org›î<IDATX…­–[Œ•WÇÿk_¾ï;sæÌœ¹0ÃÀ´3t¦­0@µÄ‰1VlH&MS-±/>éCIã¦5¦1–ôA‰¦‰ñ’¶JMÓ´jÄš(S¤ )Uh‡ tdàtîç:ç»ì½—ç´b2Ìœ¡~ÉþÖÃNþÿß^{­EÌŒÕ|ûíð%€ªEH€ßè@#μ¸[±Q=j`ß¡³Ý¿ÒäËm=Y®Í*¯§Íw$ˆJ Í–7]°ÉT!ÑÖñ÷^Ü¿ý¥ÿÀ¾CgÄGîëKÉþ5ž-Vc[¬D._Ž,´¦}Ù’öeK“ ©†G˘-Æ'㉗ì˜ýTûž9М’w ¦œ³Iüa. z»2º=“R'©´Û©…Š)Uמ TÿÚVoìF•Ηbc±éÈS_˜¹•¾ZáäC)_>½ëÞT˜›+E ¥ÈnèÉú ­K·¦} Tÿ13&>*Æÿø WyÿÊLØßÕtW³ÿÎXá7öÞÊC,c.~ys¯g¦Êq¾¹;º2ÞW·õµdÓ¾D$ˆHˆZ”BÐÀº¬ÿ•ûïÌ()éêt!éïò]gFïþæ3'[5Àß_Û¦ûš|Í•Bë)IŸìjÒ²îH€ €ˆ>Y‚ëÚÓzm{Zi%é£ùJüÅ¡6–‚ùõk];÷Ä`—¦Ü\%ÑJ’§¥È6ûòc#AD¢êDDÔžI)_+çlÒÛÀ9·sU‚x£¯ÙHIôðλZîím÷犡©¶f$>A ¨…R5v¾–äiIQbÑ•õ”µv{Ã>{ª?Ðcêï Úšµ®#­Ç&çãÅ(q53ÀZ¦(±"±ŽµLLä ±c†§¥ð”$ë˜;[}"¸ÝKy-ÙÖÚ-ÍŠbc¹;Û¤‰€06ŽAxõø˜i ´Þ¼¡S´g()81Ž.M.ÐÉ]wR ¹e°Sž2D×–ÑÌ[pÎÍʼn#)…±uÌÀT¾jß:7™ÎÍVôÎÍ=Qq1¶¾§‹Ž¶&|ö3]ô÷ÓWu¾н 8;Ç’ÃÂZ³äƒt« \˜-„é”—)½u6ÌÍ•Mh,ûžÀƾöäóC댯¥Rž"0øîõmö'©¿§Õj%È:Až’òJ®„ĸcKy-Yo<ýåâb˜œ+Æž¯•(V'… ¡þÎäâ¿çµVBh%È×Rž§È÷¤BÐ¥ky±u Ë*)HIAÍVoŸÏQœ˜ç€ÄاFÆæ9›ö¤)½Ý»këúXI­$i%É×’­Dà)1~#¯º;š¸­%€’‚2)O~pežæ‹Õ׆öÈĪŽ>ûµ·ŠÑåÜ|U§-ëmG;6õ)ˆ¤ ÒJ§¥<)|-Ååɼصu½«ï#å+úÛ™+ÅæÇ·òYæ%cžº0m2Mž Po?"‚µgX A¾§„V’Š•÷ v± ¢”§èŸ—¦E¥šœ9ý‹ÇFo ÀZû—™üâüõ™Š <)À f+Á‰b›(vF1[a­Ål~‘îìnA[&`¬$ÑÑw&’(6Ï,ç±,Àñç¿Áqbž87iRž"¸j8J1[Ä’™É8K±1´PªÒƾ¬°6ÖG7Šr¡åF^xüømÔ³ð‡ë³åÅÉé¢ö)pì`¬Eb,’Ä ŒHÁèhña#Bâ==F‰ýÑJú+œ:ü¨‰bs௧.AI ÁZcbcÅQœ “Ö°ì 876‡K“ó1€#Ÿœs¿×ñhø«?Ç|ÑÀÓ<- ˆ0À Fi1Âk'.âÕcï–¢Äíyáñd%톇ÒáßÒþ‘â#ϟ܃ÙR€Þ5 ë×dàkåjˆé…EÊ!vŽb»þùŸünùáFt—Éþ‡èøÖ®qn‹óâò: µ·ÛLàê¦ ¢`Å5 JàìÜ6T{tvˆY,€iv´}C°ˆÿ¦·ÈeLÆ1>Ä“€eÅp—u°~®0º.XÄ{÷Mnyn˜¤ƒOÙW«¹ϳ¤#4…û—ÚïF:j(h}ÕóÞ1I‡k€àÃ$Ýú`’!·8)¿1›ò¬K:„ÜE\ (&+騀)¥·ê#`J৫펀1—.e¡aØœ0Õ „A¿¿\í;ÐD5 ¾¤Psÿ˜)ð÷÷Ž€ ü"jšV£ )w]èBTJåR¼7Ù-PùïS–ÊOˆZ–C²…ã“£|Õ®v¬ˆš&Ò錒å¡·w7iyiE_H&z±°‡öHB £­0èø!~:” C¢¢4ÀM‡.ôg²i£÷Ÿê Ìâ¸ø‚IEND®B`‚tintii-2.8.2/help/icons/README0000644000175000001440000000037112230652053012662 00000000000000The icons contained in this directory are from the Gnome 2.18 Icon Theme by AMAZIGH Aneglus, http://art.gnome.org/themes/icon?page=2. They are distributed by the author under the GNU General Public License Version 2.0, included in the COPYING file. tintii-2.8.2/help/icons/emblem-web.png0000644000175000001440000000447712230652053014537 00000000000000‰PNG  IHDR szzôbKGDÿÿÿ ½§“tIMEÖ("\æTáIDATX…Í—YŒÕ†¿{«ª«{º§gÏ/³ÙŒM0†8ÆKÇQ€@@Y^""eyˆ±äÅ QPxŒˆ‚,%2q,³8F– 6ñ`Çg<›=Ó³w§—êª{oå¡{Ú³dQ¤äHGURߪÿ¯ÿüçܾð?ñ¯.\ºmGUDGï´mù òLج©µ¤Ì ÅdhÌi¥Ìë¾å½3¶gGþ¿F cÛó+,äó†ð›]m­Á†/µU·6%EM"FU,B¾à3—-šºöœšïJ9±[cžØóÄÈNàÁ]VGaàY)åO¶Þ¼Î¹ýÆÕŽm[L¦{Èû-ØV?Q÷"y¯mÚ‰G-šk¢(¥9ðÁÙàíC'cÌË±Ž§xýÛúß"°âÞçê)ÿ|u[ë nßT¥Ô>æ³ï(„CÒ=B}}µµq²ùGÎ<ƒÒ!JiâQ›ÕË’ˆÐðÚGò½C©c1ßÙûdú³°¬OI¾åù+b}xëÆ5kºgut|æ3é12ÞM@-óÁVâ‘ã$ª|ìH©©.æ½ë 8VÎÖßcñ™lš[6ÜêøÊi¹06ûpÝŠ;^Mì/~±î²:½¡¿Þ²±{óÖÍ2¢ÕËœ}ß´ MÇÆu|–W?†oý˜ùâMh#¦/XÁµm¿a>Ƕ&1ÚÇ‘Ó~Î;‡¥¨§÷ð¹hÛW–c‘Ÿîjo¹ÿþ-Í1<ÍѾŸâ©&n_÷!1r^ÒŠp#¾Yc;X b‰óHRu ÙBµñ3ÄÝ1‹ÁaÚ—ßeŸ ›Äô˜›>ûλŸ©@çÖš­½?¶¥VŸ$GZ1¼`µ£(Sω¡Ìr"Ž…m[XR¢Áè4qw„ÂYo ³s þLÆ;éÛÀ.kýHwÇÒ¸V$´!çÕ!­Gz¿¡)€0 1&DHÜÈmKâXi”24$Ž£u@:Û@ut˜0¥ ˆVÇé\ùP¼dò`×%a¸¶±6FÌähÿÃLÌ]G¢*O lÛ\rj¡U& BÀWºwâXiŒ1cˆGÇQJ±Rœ»Æê“ä¼(}c7Q—˜¤>‡0\»Ø„!M±h‰búâUÔTÍ×”äÕ¥ê® ¯¾RH‘¡>ÑW^W"V"Rºo©;É…éu$¢S¬oßÍ©áÛp]Bš”0 Û®§§ÿ>¶¬û-s]ôœk¿TóLbdˆ–)Bê“ÐÚTʲ†¥´eœ— èWÑÓ¿LÎEZB“XL@Ïåýä¹ÔFÎŽmàºöƒ,©9E÷ò£äŠ­Ìd»˜H¯ÅȰdÐ2‰éeä¼®%,ÒS¾–Hµ5&_¬&•^‰ ù+ˆÉ¹¬—tl ¯`81pËi®9‹ec…:ÍQe19·º.øäÀ±ï°¾ëM2óM¸ÎEZë>^¤FÔ™#çŘ/TQå æsEbñ ¡èÉä¨r­JÍ›kÎV^ä:i6¯ÙÉUõÇ t@ TÉJ3>Ûʾ~Àû§ïá½S÷U̸P c$‡ÏlCkM,b33—C„¢wmÌÎÁ “¹%õq”*¯19²HRKäÙ¼fwùe,9‡¨ËRãšù|”ÉLË¢çFg:ŸmE)C}2ÊèøtV³s±nqïÐ蔨»H)”áÜø€²»M¥#¤È“÷¬Ò¬/wÅ‚ÒL¥›Êãº4Š‹A”@¤TÇFÇg¥p‹{Ú½#£{zSºci aò÷Áë™\]6WyâiÃ`ª“‚'K­XnÉ P¥ö 4ˆb¥3Ja²¼¹š‘I­5{†vïÈ,ž ò™Á§>úd(ÛR§*ê Å›~‹œW]q¸Ö†‹¹8~åËËÀªLD)0~|lv%NÞK̵iHFù¤$›Ï >Åe»ðwâÐ+i?Ÿ}­çd¿wêflK¢E1ˆ.¬åЩ-üíì&‚@•@ËàA *åšh¯¬ŸÍ6¢MŒ5+ë9ùñ r¯Mz% ¸—°pƾôâùó©¾þ¡q½®³‘ˆ-IgËÃH02ÕÖ Í%EJ›Q©çC`xr?Îé¡Ít¯¬gxdR§R}ã_zq‹òFh•I8€£uÑ.Îϼ›w–m¹‘hwÇ™Œ~@²*Í[Çî'5»‚rÉyIN ÜÅòævÆÆ¦toÿù™‰c»õæFæPå4¥ÝuˆT¹‰@egßš·›oöŠA"ž¼ÓNÍ´Ñ7ºmÂÏG.GÄ–D£«h®­ç“Þ¡âàð…Á™ú^~⣠ øeþ‚š’1úÙñB~ìÄïhNÍuD"-rÕÊfQ …¼´0Ç–¸›š¸ËÒÆ­qf¦gÍñ“ýþìTjoê½—楇¦B™€WÎ>}.ˆR2ˆ[¾Ô­Þºªºí«¿Œ¸Ñ M 5¦©©>–ˆÇp#6¶m(M±0Ÿó˜šš)ÌÌ^”~Ñë™zÿWé³o÷•¿Ô+ƒ/¨ÄgL%O¸åkpâW­o¨i»yK$ÞxŸ°#í êBD• ÌC˜•?èç¦ÿ27thnôÄÌe2eà€Ëÿ(~+ÃâR§T¼rų!`Ê©¹d´Ï=’ýßÄ?½¿#Ýi”àIEND®B`‚tintii-2.8.2/help/icons/document-save-as.png0000644000175000001440000000306412230652053015665 00000000000000‰PNG  IHDR szzôsBIT|dˆëIDATX…Í—}leÆ÷ó~œsÚžÓÓ³¶k»µ¢,"FÐÅ™E l:ÿ&:†˜Å™‘0E¶˜…9‰Á€,%1„4Œl8 ‰…)Š nƒ•egµ´³íiû~?þñ¾§ç«Ý™Dïä=ï×ó>×u_÷õÜO|Œ1ñ&ëOÉÐÑg°—£>6ð·Yï¸Æ³ž›œó•¥H˜Õ7«6ìÙ†Á6­ãçÏîýHàé‹Á™6)ô­±9wöõ/¿=švW}ó'„‘(e<øÞ woo †á¶_Þ÷3Ûb3ùá,Ÿ8ó_ÙQ>ì||÷jD¥871N„tåî¼åZ¦]Ë|ìéƒ÷´Öf{kн/gbüß|½åYÄ›¹`ð°JŸ0éX¾$/?FpÎeç[¿¢¥p–ë(+Ü@^=4ÄÊþ>&· ÓÖ–½ píü wô6òWTÀßÁWýä¿ú[J‡‡95|”믨ù®Á„l½}aÅ”jzà\\÷°rõódsÝè(â–ï®#ªÃkP@D~ Iî¼õN6~ÿ¦%3ÏÙ‡éOÿœŽ®ÁðÓä´SZ¶GØÍ® oŸàêËûÎO¥Iüúᇗç0_ü¹Â`Mæ¡ôò™u/Оïaí5ßfrò,ˆ ” ÑM@P"1À0ŒEÁƒÙýÌŸÙD®P+{@/ŸüÊ>ò½µóJ¬®®Å_¬ JD‚Û6ofã÷n¬“³3к›ü²«€zÙï§ôÎ1àOýîvíø)‰R3Wc ˆW.Á“?^—ùKœ;¹‡\¡~æä‘ZÁç×hÈüÚ«¯ct´˜”@¡u³H¹e2µ%(·ëÞ„DãL}p‚3'Géã’µÀkçMJP÷¼€¦¶oýÁB ZÍwhÚW¬fvºÈéw÷Srò”–ÝÇô[G€# À•”MØŒ€%•UðÔ{Þm¹õV hÖ¯ý “g†Áìç‹ÒžïY2óu×Ü@±x*^]"èºFÐЈ´Ö(UYå˜<{Šç_<ÍGÆfÖÐsÕË|á[?/xuˆ¢-MLéx°aÄÜŠÅSøÞØ÷™L ÙlÜžÇÇÿuAà—U]ˆ¢Ä¥Ý=ܼç/è¤%WÌ«®«­“ÿTÆÆðtuâ¶Ý¬DÉ€ÞÞ.z{»*:,h­“£ü|‘gU×ÕÄÏO ª5}âfF†Ðõî9Oˆ2 —3×z)J †R´fÛÈdÒèZ ,¶ j ̼?Ä]Û¶’ϰL Ó´0MË´0 “0 Ã( ‚×s™-•ØõànV]ö5Di´Ž›Bµfš·â:ÐQD¡ÐÉ?Oüƒ÷ý™é©)–u.gó~ˆëy¸žŸ]Ð ¬¼ˆ( ˆ´Fš¶ŒeY‰ ›®‚ÆB†a˜LŒ}îDkF>†ë{¸ž‹ëyx®‹ï{¤Ó™ŠŠJ@ƒm¦ÑÔ„v\‚| e²S´fâó<ø>Aàø>~àcY6–i-|WÎ8e ›\•²ÀL™€9€°¾ÄûÈdRšyÀüÀÇ”RØ–…eÙH"³Rñö›²*éU d¿Ü m + io±¨Ã0HÙiZ26™D…8û€0 °L˲±-k¡‰Š(DÛ2“¨²@°kZ±&žþãI_Ž\ ¥);E¡³‹=ÄØ¡‡hËåð«¥·¬ä°qœù„ ™«ÆV,Pñ€¸c¯?qÛlú}¤¹èÆo|ÉŠ´¦xа¢§ŸŸí؉ã88®/9×Á÷½¸Ï‹ÂPŽã2??@oGšHC[Ú¤;Ÿ!“I1çx(‘p¯zM¤€ŽÖîO/ïÜô\¨åSƒÙ¿¡ŒŠ5Ñšò¶Y=‘tèó×™+© çÙ¿c;0]×—°€bOüïÿ;†€Ì+@=êPMÞTÿ_ñÊŒÁüÿ]@IEND®B`‚tintii-2.8.2/Makefile.am0000644000175000001440000001034712230652053011777 00000000000000AUTOMAKE_OPTIONS = subdir-objects # compile and link flags AM_CPPFLAGS = -DTINTII $(OPENMP_CXXFLAGS) -DDATADIR='"$(datadir)"' -DNULL=0 -Wall AM_CXXFLAGS = $(DEPS_CXXFLAGS) -funroll-loops -ffast-math -Wall -Wno-deprecated AM_LDFLAGS = $(OPENMP_CXXFLAGS) #-fomit-frame-pointer # programs bin_PROGRAMS = tintii tintii_LDADD = $(DEPS_LIBS) tintii_SOURCES = \ src/gnome/gnome.cpp \ src/indii/gui/About.cpp \ src/indii/gui/App.cpp \ src/indii/gui/ChannelMixerPane.cpp \ src/indii/gui/Document.cpp \ src/indii/gui/Help.cpp \ src/indii/gui/InfoBar.cpp \ src/indii/gui/misc.hpp \ src/indii/gui/OpenRecentMenu.cpp \ src/indii/gui/Pane.cpp \ src/indii/gui/PreviewImage.cpp \ src/indii/gui/PreviewPane.cpp \ src/indii/gui/Registration.cpp \ src/indii/gui/Splash.cpp \ src/indii/gui/Window.cpp \ src/indii/gui/WindowMenu.cpp \ src/indii/image/ImageCache.cpp \ src/indii/image/ImageManipulation.cpp \ src/indii/image/FileImageResource.cpp \ src/indii/image/Image.cpp \ src/indii/image/ImageResource.cpp \ src/indii/image/ColourSpace.cpp \ src/indii/images/indii.cpp \ src/indii/model/Controller.cpp \ src/indii/model/Model.cpp \ src/indii/model/Observable.cpp \ src/indii/model/Observer.cpp \ src/indii/reg/free/Components.cpp \ src/indii/reg/Components.cpp \ src/indii/tint/gui/TintApp.cpp \ src/indii/tint/gui/TintWindow.cpp \ src/indii/tint/gui/PostProcessPane.cpp \ src/indii/tint/gui/ThumbPane.cpp \ src/indii/tint/gui/ThumbImage.cpp \ src/indii/tint/gui/SpectrumImage.cpp \ src/indii/tint/gui/ThumbHSL.cpp \ src/indii/tint/gui/TintDocument.cpp \ src/indii/tint/gui/PreProcessPane.cpp \ src/indii/tint/images/tint.cpp \ src/indii/tint/model/ClusterModel.cpp \ src/indii/tint/model/ClusterModelObservable.cpp \ src/indii/tint/model/ClusterModelObserver.cpp \ src/gnome/gnome.hpp \ src/indii/meta.hpp \ src/indii/cluster/DataSet.hpp \ src/indii/cluster/KMeansClusterer.hpp \ src/indii/cluster/ClusterVector.hpp \ src/indii/cluster/PearsonDistance.hpp \ src/indii/cluster/EuclideanDistance.hpp \ src/indii/gui/About.hpp \ src/indii/gui/App.hpp \ src/indii/gui/ChannelMixerPane.hpp \ src/indii/gui/Document.hpp \ src/indii/gui/Help.hpp \ src/indii/gui/InfoBar.hpp \ src/indii/gui/OpenRecentMenu.hpp \ src/indii/gui/Pane.hpp \ src/indii/gui/PreviewImage.hpp \ src/indii/gui/PreviewPane.hpp \ src/indii/gui/Registration.hpp \ src/indii/gui/Splash.hpp \ src/indii/gui/Window.hpp \ src/indii/gui/WindowMenu.hpp \ src/indii/gui/WindowObserver.hpp \ src/indii/gui/misc.hpp \ src/indii/image/ImageCache.hpp \ src/indii/image/ImageResource.hpp \ src/indii/image/FileImageResource.hpp \ src/indii/image/Image.hpp \ src/indii/image/ImageManipulation.hpp \ src/indii/image/ColourSpace.hpp \ src/indii/images/indii.hpp \ src/indii/model/Controller.hpp \ src/indii/model/Model.hpp \ src/indii/model/Observable.hpp \ src/indii/model/Observer.hpp \ src/indii/reg/Components.hpp \ src/indii/tint/gui/TintWindow.hpp \ src/indii/tint/gui/ThumbPane.hpp \ src/indii/tint/gui/TintDocument.hpp \ src/indii/tint/gui/PostProcessPane.hpp \ src/indii/tint/gui/ThumbImage.hpp \ src/indii/tint/gui/ThumbHSL.hpp \ src/indii/tint/gui/TintApp.hpp \ src/indii/tint/gui/SpectrumImage.hpp \ src/indii/tint/gui/PreProcessPane.hpp \ src/indii/tint/images/tint.hpp \ src/indii/tint/model/ClusterModel.hpp \ src/indii/tint/model/ClusterModelObservable.hpp \ src/indii/tint/model/ClusterModelObserver.hpp # help system dist_pkgdata_DATA = help/tintii.htb # other dist_noinst_SCRIPTS = autogen.sh EXTRA_DIST = \ README \ COPYING \ help/icons/README \ help/icons/COPYING \ help/icons/zoom-best-fit.png \ help/icons/document-open.png \ help/icons/list-remove.png \ help/icons/zoom-original.png \ help/icons/document-save.png \ help/icons/list-add.png \ help/icons/zoom-in.png \ help/icons/zoom-out.png \ help/icons/help-browser.png \ help/icons/dialog-information.png \ help/icons/document-save-as.png \ help/icons/preferences-system-windows.png \ help/icons/emblem-favorite.png \ help/icons/package-x-generic.png \ help/icons/emblem-web.png \ help/icons/system-run.png \ help/icons/window-new.png \ images/tintii/splash.xpm tintii-2.8.2/COPYING0000644000175000001440000004310312236200473010773 00000000000000 GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. tintii-2.8.2/autogen.sh0000755000175000001440000000005012230652053011732 00000000000000#!/bin/sh autoreconf --force --install tintii-2.8.2/install-sh0000755000175000001440000003325512236200460011747 00000000000000#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tintii-2.8.2/depcomp0000755000175000001440000005055212236200460011317 00000000000000#! /bin/sh # depcomp - compile a program generating dependencies as side-effects scriptversion=2012-03-27.16; # UTC # Copyright (C) 1999-2012 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. # Originally written by Alexandre Oliva . case $1 in '') echo "$0: No command. Try '$0 --help' for more information." 1>&2 exit 1; ;; -h | --h*) cat <<\EOF Usage: depcomp [--help] [--version] PROGRAM [ARGS] Run PROGRAMS ARGS to compile a file, generating dependencies as side-effects. Environment variables: depmode Dependency tracking mode. source Source file read by 'PROGRAMS ARGS'. object Object file output by 'PROGRAMS ARGS'. DEPDIR directory where to store dependencies. depfile Dependency file to output. tmpdepfile Temporary file to use when outputting dependencies. libtool Whether libtool is used (yes/no). Report bugs to . EOF exit $? ;; -v | --v*) echo "depcomp $scriptversion" exit $? ;; esac # A tabulation character. tab=' ' # A newline character. nl=' ' if test -z "$depmode" || test -z "$source" || test -z "$object"; then echo "depcomp: Variables source, object and depmode must be set" 1>&2 exit 1 fi # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. depfile=${depfile-`echo "$object" | sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} rm -f "$tmpdepfile" # Some modes work just like other modes, but use different flags. We # parameterize here, but still list the modes in the big case below, # to make depend.m4 easier to write. Note that we *cannot* use a case # here, because this file can only contain one case statement. if test "$depmode" = hp; then # HP compiler uses -M and no extra arg. gccflag=-M depmode=gcc fi if test "$depmode" = dashXmstdout; then # This is just like dashmstdout with a different argument. dashmflag=-xM depmode=dashmstdout fi cygpath_u="cygpath -u -f -" if test "$depmode" = msvcmsys; then # This is just like msvisualcpp but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvisualcpp fi if test "$depmode" = msvc7msys; then # This is just like msvc7 but w/o cygpath translation. # Just convert the backslash-escaped backslashes to single forward # slashes to satisfy depend.m4 cygpath_u='sed s,\\\\,/,g' depmode=msvc7 fi if test "$depmode" = xlc; then # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations. gccflag=-qmakedep=gcc,-MF depmode=gcc fi case "$depmode" in gcc3) ## gcc 3 implements dependency tracking that does exactly what ## we want. Yay! Note: for some reason libtool 1.4 doesn't like ## it if -MD -MP comes after the -MF stuff. Hmm. ## Unfortunately, FreeBSD c89 acceptance of flags depends upon ## the command line argument order; so add the flags where they ## appear in depend2.am. Note that the slowdown incurred here ## affects only configure: in makefiles, %FASTDEP% shortcuts this. for arg do case $arg in -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; *) set fnord "$@" "$arg" ;; esac shift # fnord shift # $arg done "$@" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi mv "$tmpdepfile" "$depfile" ;; gcc) ## There are various ways to get dependency output from gcc. Here's ## why we pick this rather obscure method: ## - Don't want to use -MD because we'd like the dependencies to end ## up in a subdir. Having to rename by hand is ugly. ## (We might end up doing this anyway to support other compilers.) ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ## -MM, not -M (despite what the docs say). ## - Using -M directly means running the compiler twice (even worse ## than renaming). if test -z "$gccflag"; then gccflag=-MD, fi "$@" -Wp,"$gccflag$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ## The second -e expression handles DOS-style file names with drive letters. sed -e 's/^[^:]*: / /' \ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ## This next piece of magic avoids the "deleted header file" problem. ## The problem is that when a header file which appears in a .P file ## is deleted, the dependency causes make to die (because there is ## typically no way to rebuild the header). We avoid this by adding ## dummy dependencies for each header file. Too bad gcc doesn't do ## this for us directly. tr ' ' "$nl" < "$tmpdepfile" | ## Some versions of gcc put a space before the ':'. On the theory ## that the space means something, we add a space to the output as ## well. hp depmode also adds that space, but also prefixes the VPATH ## to the object. Take care to not repeat it in the output. ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; hp) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; sgi) if test "$libtool" = yes; then "$@" "-Wp,-MDupdate,$tmpdepfile" else "$@" -MDupdate "$tmpdepfile" fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files echo "$object : \\" > "$depfile" # Clip off the initial element (the dependent). Don't try to be # clever and replace this with sed code, as IRIX sed won't handle # lines with more than a fixed number of characters (4096 in # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; # the IRIX cc adds comments like '#:fec' to the end of the # dependency line. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ tr "$nl" ' ' >> "$depfile" echo >> "$depfile" # The second pass generates a dummy entry for each header file. tr ' ' "$nl" < "$tmpdepfile" \ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; xlc) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; aix) # The C for AIX Compiler uses -M and outputs the dependencies # in a .u file. In older versions, this file always lives in the # current directory. Also, the AIX compiler puts '$object:' at the # start of each line; $object doesn't have directory information. # Version 6 uses the directory in both cases. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.u tmpdepfile2=$base.u tmpdepfile3=$dir.libs/$base.u "$@" -Wc,-M else tmpdepfile1=$dir$base.u tmpdepfile2=$dir$base.u tmpdepfile3=$dir$base.u "$@" -M fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then # Each line is of the form 'foo.o: dependent.h'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else # The sourcefile does not contain any dependencies, so just # store a dummy comment line, to avoid errors with the Makefile # "include basename.Plo" scheme. echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; icc) # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'. # However on # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c # ICC 7.0 will fill foo.d with something like # foo.o: sub/foo.c # foo.o: sub/foo.h # which is wrong. We want # sub/foo.o: sub/foo.c # sub/foo.o: sub/foo.h # sub/foo.c: # sub/foo.h: # ICC 7.1 will output # foo.o: sub/foo.c sub/foo.h # and will wrap long lines using '\': # foo.o: sub/foo.c ... \ # sub/foo.h ... \ # ... # tcc 0.9.26 (FIXME still under development at the moment of writing) # will emit a similar output, but also prepend the continuation lines # with horizontal tabulation characters. "$@" -MD -MF "$tmpdepfile" stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" # Each line is of the form 'foo.o: dependent.h', # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'. # Do two passes, one to just change these to # '$object: dependent.h' and one to simply 'dependent.h:'. sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \ < "$tmpdepfile" > "$depfile" sed ' s/[ '"$tab"'][ '"$tab"']*/ /g s/^ *// s/ *\\*$// s/^[^:]*: *// /^$/d /:$/d s/$/ :/ ' < "$tmpdepfile" >> "$depfile" rm -f "$tmpdepfile" ;; hp2) # The "hp" stanza above does not work with aCC (C++) and HP's ia64 # compilers, which have integrated preprocessors. The correct option # to use with these is +Maked; it writes dependencies to a file named # 'foo.d', which lands next to the object file, wherever that # happens to be. # Much of this is similar to the tru64 case; see comments there. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then tmpdepfile1=$dir$base.d tmpdepfile2=$dir.libs/$base.d "$@" -Wc,+Maked else tmpdepfile1=$dir$base.d tmpdepfile2=$dir$base.d "$@" +Maked fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" # Add 'dependent.h:' lines. sed -ne '2,${ s/^ *// s/ \\*$// s/$/:/ p }' "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" "$tmpdepfile2" ;; tru64) # The Tru64 compiler uses -MD to generate dependencies as a side # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put # dependencies in 'foo.d' instead, so we check for that too. # Subdirectories are respected. dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` test "x$dir" = "x$object" && dir= base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` if test "$libtool" = yes; then # With Tru64 cc, shared objects can also be used to make a # static library. This mechanism is used in libtool 1.4 series to # handle both shared and static libraries in a single compilation. # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. # # With libtool 1.5 this exception was removed, and libtool now # generates 2 separate objects for the 2 libraries. These two # compilations output dependencies in $dir.libs/$base.o.d and # in $dir$base.o.d. We have to check for both files, because # one of the two compilations can be disabled. We should prefer # $dir$base.o.d over $dir.libs/$base.o.d because the latter is # automatically cleaned when .libs/ is deleted, while ignoring # the former would cause a distcleancheck panic. tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 tmpdepfile2=$dir$base.o.d # libtool 1.5 tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 "$@" -Wc,-MD else tmpdepfile1=$dir$base.o.d tmpdepfile2=$dir$base.d tmpdepfile3=$dir$base.d tmpdepfile4=$dir$base.d "$@" -MD fi stat=$? if test $stat -eq 0; then : else rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" exit $stat fi for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" do test -f "$tmpdepfile" && break done if test -f "$tmpdepfile"; then sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" else echo "#dummy" > "$depfile" fi rm -f "$tmpdepfile" ;; msvc7) if test "$libtool" = yes; then showIncludes=-Wc,-showIncludes else showIncludes=-showIncludes fi "$@" $showIncludes > "$tmpdepfile" stat=$? grep -v '^Note: including file: ' "$tmpdepfile" if test "$stat" = 0; then : else rm -f "$tmpdepfile" exit $stat fi rm -f "$depfile" echo "$object : \\" > "$depfile" # The first sed program below extracts the file names and escapes # backslashes for cygpath. The second sed program outputs the file # name when reading, but also accumulates all include files in the # hold buffer in order to output them again at the end. This only # works with sed implementations that can handle large buffers. sed < "$tmpdepfile" -n ' /^Note: including file: *\(.*\)/ { s//\1/ s/\\/\\\\/g p }' | $cygpath_u | sort -u | sed -n ' s/ /\\ /g s/\(.*\)/'"$tab"'\1 \\/p s/.\(.*\) \\/\1:/ H $ { s/.*/'"$tab"'/ G p }' >> "$depfile" rm -f "$tmpdepfile" ;; msvc7msys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; #nosideeffect) # This comment above is used by automake to tell side-effect # dependency tracking mechanisms from slower ones. dashmstdout) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout, regardless of -o. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done test -z "$dashmflag" && dashmflag=-M # Require at least two characters before searching for ':' # in the target name. This is to cope with DOS-style filenames: # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. "$@" $dashmflag | sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile" rm -f "$depfile" cat < "$tmpdepfile" > "$depfile" tr ' ' "$nl" < "$tmpdepfile" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; dashXmstdout) # This case only exists to satisfy depend.m4. It is never actually # run, as this mode is specially recognized in the preamble. exit 1 ;; makedepend) "$@" || exit $? # Remove any Libtool call if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # X makedepend shift cleared=no eat=no for arg do case $cleared in no) set ""; shift cleared=yes ;; esac if test $eat = yes; then eat=no continue fi case "$arg" in -D*|-I*) set fnord "$@" "$arg"; shift ;; # Strip any option that makedepend may not understand. Remove # the object too, otherwise makedepend will parse it as a source file. -arch) eat=yes ;; -*|$object) ;; *) set fnord "$@" "$arg"; shift ;; esac done obj_suffix=`echo "$object" | sed 's/^.*\././'` touch "$tmpdepfile" ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" rm -f "$depfile" # makedepend may prepend the VPATH from the source file name to the object. # No need to regex-escape $object, excess matching of '.' is harmless. sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \ ## Some versions of the HPUX 10.20 sed can't process this invocation ## correctly. Breaking it into two sed invocations is a workaround. sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" rm -f "$tmpdepfile" "$tmpdepfile".bak ;; cpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi # Remove '-o $object'. IFS=" " for arg do case $arg in -o) shift ;; $object) shift ;; *) set fnord "$@" "$arg" shift # fnord shift # $arg ;; esac done "$@" -E | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | sed '$ s: \\$::' > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" cat < "$tmpdepfile" >> "$depfile" sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" rm -f "$tmpdepfile" ;; msvisualcpp) # Important note: in order to support this mode, a compiler *must* # always write the preprocessed file to stdout. "$@" || exit $? # Remove the call to Libtool. if test "$libtool" = yes; then while test "X$1" != 'X--mode=compile'; do shift done shift fi IFS=" " for arg do case "$arg" in -o) shift ;; $object) shift ;; "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") set fnord "$@" shift shift ;; *) set fnord "$@" "$arg" shift shift ;; esac done "$@" -E 2>/dev/null | sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" rm -f "$depfile" echo "$object : \\" > "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" echo "$tab" >> "$depfile" sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" rm -f "$tmpdepfile" ;; msvcmsys) # This case exists only to let depend.m4 do its work. It works by # looking at the text of this script. This case will never be run, # since it is checked for above. exit 1 ;; none) exec "$@" ;; *) echo "Unknown depmode $depmode" 1>&2 exit 1 ;; esac exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tintii-2.8.2/aclocal.m40000644000175000001440000010367012236200457011610 00000000000000# generated automatically by aclocal 1.12.1 -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY, to the extent permitted by law; without # even the implied warranty of MERCHANTABILITY or FITNESS FOR A # PARTICULAR PURPOSE. m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.69],, [m4_warning([this file was generated for autoconf 2.69. You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) # Copyright (C) 2002-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_AUTOMAKE_VERSION(VERSION) # ---------------------------- # Automake X.Y traces this macro to ensure aclocal.m4 has been # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version='1.12' dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to dnl require some minimum version. Point them to the right macro. m4_if([$1], [1.12.1], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) # _AM_AUTOCONF_VERSION(VERSION) # ----------------------------- # aclocal traces this macro to find the Autoconf version. # This is a private macro too. Using m4_define simplifies # the logic in aclocal, which can simply ignore this definition. m4_define([_AM_AUTOCONF_VERSION], []) # AM_SET_CURRENT_AUTOMAKE_VERSION # ------------------------------- # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], [AM_AUTOMAKE_VERSION([1.12.1])dnl m4_ifndef([AC_AUTOCONF_VERSION], [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # AM_AUX_DIR_EXPAND -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets # $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to # '$srcdir', '$srcdir/..', or '$srcdir/../..'. # # Of course, Automake must honor this variable whenever it calls a # tool from the auxiliary directory. The problem is that $srcdir (and # therefore $ac_aux_dir as well) can be either absolute or relative, # depending on how configure is run. This is pretty annoying, since # it makes $ac_aux_dir quite unusable in subdirectories: in the top # source directory, any form will work fine, but in subdirectories a # relative path needs to be adjusted first. # # $ac_aux_dir/missing # fails when called from a subdirectory if $ac_aux_dir is relative # $top_srcdir/$ac_aux_dir/missing # fails if $ac_aux_dir is absolute, # fails when called from a subdirectory in a VPATH build with # a relative $ac_aux_dir # # The reason of the latter failure is that $top_srcdir and $ac_aux_dir # are both prefixed by $srcdir. In an in-source build this is usually # harmless because $srcdir is '.', but things will broke when you # start a VPATH build or use an absolute $srcdir. # # So we could use something similar to $top_srcdir/$ac_aux_dir/missing, # iff we strip the leading $srcdir from $ac_aux_dir. That would be: # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` # and then we would define $MISSING as # MISSING="\${SHELL} $am_aux_dir/missing" # This will work as long as MISSING is not called from configure, because # unfortunately $(top_srcdir) has no meaning in configure. # However there are other variables, like CC, which are often used in # configure, and could therefore not use this "fixed" $ac_aux_dir. # # Another solution, used here, is to always expand $ac_aux_dir to an # absolute PATH. The drawback is that using absolute paths prevent a # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], [dnl Rely on autoconf to set up CDPATH properly. AC_PREREQ([2.50])dnl # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- # Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 10 # AM_CONDITIONAL(NAME, SHELL-CONDITION) # ------------------------------------- # Define a conditional. AC_DEFUN([AM_CONDITIONAL], [AC_PREREQ([2.52])dnl m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl AC_SUBST([$1_TRUE])dnl AC_SUBST([$1_FALSE])dnl _AM_SUBST_NOTMAKE([$1_TRUE])dnl _AM_SUBST_NOTMAKE([$1_FALSE])dnl m4_define([_AM_COND_VALUE_$1], [$2])dnl if $2; then $1_TRUE= $1_FALSE='#' else $1_TRUE='#' $1_FALSE= fi AC_CONFIG_COMMANDS_PRE( [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then AC_MSG_ERROR([[conditional "$1" was never defined. Usually this means the macro was only invoked conditionally.]]) fi])]) # Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 17 # There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be # written in clear, in which case automake, when reading aclocal.m4, # will think it sees a *use*, and therefore will trigger all it's # C support machinery. Also note that it means that autoscan, seeing # CC etc. in the Makefile, will ask for an AC_PROG_CC use... # _AM_DEPENDENCIES(NAME) # ---------------------- # See how the compiler implements dependency checking. # NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". # We try a few techniques and use that to set a single cache variable. # # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular # dependency, and given that the user is not expected to run this macro, # just rely on AC_PROG_CC. AC_DEFUN([_AM_DEPENDENCIES], [AC_REQUIRE([AM_SET_DEPDIR])dnl AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl AC_REQUIRE([AM_MAKE_INCLUDE])dnl AC_REQUIRE([AM_DEP_TRACK])dnl m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], [$1], [CXX], [depcc="$CXX" am_compiler_list=], [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], [$1], [UPC], [depcc="$UPC" am_compiler_list=], [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], [depcc="$$1" am_compiler_list=]) AC_CACHE_CHECK([dependency style of $depcc], [am_cv_$1_dependencies_compiler_type], [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_$1_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` fi am__universal=false m4_case([$1], [CC], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac], [CXX], [case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac]) for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_$1_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_$1_dependencies_compiler_type=none fi ]) AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) AM_CONDITIONAL([am__fastdep$1], [ test "x$enable_dependency_tracking" != xno \ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ]) # AM_SET_DEPDIR # ------------- # Choose a directory name for dependency files. # This macro is AC_REQUIREd in _AM_DEPENDENCIES. AC_DEFUN([AM_SET_DEPDIR], [AC_REQUIRE([AM_SET_LEADING_DOT])dnl AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ]) # AM_DEP_TRACK # ------------ AC_DEFUN([AM_DEP_TRACK], [AC_ARG_ENABLE([dependency-tracking], [dnl AS_HELP_STRING( [--enable-dependency-tracking], [do not reject slow dependency extractors]) AS_HELP_STRING( [--disable-dependency-tracking], [speeds up one-time build])]) if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) AC_SUBST([AMDEPBACKSLASH])dnl _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl AC_SUBST([am__nodep])dnl _AM_SUBST_NOTMAKE([am__nodep])dnl ]) # Generate code to set up dependency tracking. -*- Autoconf -*- # Copyright (C) 1999-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # _AM_OUTPUT_DEPENDENCY_COMMANDS # ------------------------------ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], [{ # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`AS_DIRNAME("$mf")` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`AS_DIRNAME(["$file"])` AS_MKDIR_P([$dirpart/$fdir]) # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ])# _AM_OUTPUT_DEPENDENCY_COMMANDS # AM_OUTPUT_DEPENDENCY_COMMANDS # ----------------------------- # This macro should only be invoked once -- use via AC_REQUIRE. # # This code is only required when automatic dependency tracking # is enabled. FIXME. This creates each '.P' file that we will # need in order to bootstrap the dependency handling code. AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], [AC_CONFIG_COMMANDS([depfiles], [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ]) # Do all the work for Automake. -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 19 # This macro actually does too much. Some checks are only needed if # your package does certain things. But this isn't really a big deal. # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) # AM_INIT_AUTOMAKE([OPTIONS]) # ----------------------------------------------- # The call with PACKAGE and VERSION arguments is the old style # call (pre autoconf-2.50), which is being phased out. PACKAGE # and VERSION should now be passed to AC_INIT and removed from # the call to AM_INIT_AUTOMAKE. # We support both call styles for the transition. After # the next Automake release, Autoconf can make the AC_INIT # arguments mandatory, and then we can depend on a new Autoconf # release and drop the old call support. AC_DEFUN([AM_INIT_AUTOMAKE], [AC_PREREQ([2.62])dnl dnl Autoconf wants to disallow AM_ names. We explicitly allow dnl the ones we care about. m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl AC_REQUIRE([AC_PROG_INSTALL])dnl if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl # test to see if srcdir already configured if test -f $srcdir/config.status; then AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi AC_SUBST([CYGPATH_W]) # Define the identity of the package. dnl Distinguish between old-style and new-style calls. m4_ifval([$2], [AC_DIAGNOSE([obsolete], [$0: two- and three-arguments forms are deprecated. For more info, see: http://www.gnu.org/software/automake/manual/automake.html#Modernize-AM_INIT_AUTOMAKE-invocation]) m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl AC_SUBST([PACKAGE], [$1])dnl AC_SUBST([VERSION], [$2])], [_AM_SET_OPTIONS([$1])dnl dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. m4_if( m4_ifdef([AC_PACKAGE_NAME], [ok]):m4_ifdef([AC_PACKAGE_VERSION], [ok]), [ok:ok],, [m4_fatal([AC_INIT should be called with package and version arguments])])dnl AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl _AM_IF_OPTION([no-define],, [AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl # Some tools Automake needs. AC_REQUIRE([AM_SANITY_CHECK])dnl AC_REQUIRE([AC_ARG_PROGRAM])dnl AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) AM_MISSING_PROG([AUTOCONF], [autoconf]) AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) AM_MISSING_PROG([AUTOHEADER], [autoheader]) AM_MISSING_PROG([MAKEINFO], [makeinfo]) AC_REQUIRE([AM_PROG_INSTALL_SH])dnl AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl AC_REQUIRE([AC_PROG_MKDIR_P])dnl AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl # We need awk for the "check" target. The system "awk" is bad on # some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], [_AM_PROG_TAR([v7])])]) _AM_IF_OPTION([no-dependencies],, [AC_PROVIDE_IFELSE([AC_PROG_CC], [_AM_DEPENDENCIES([CC])], [m4_define([AC_PROG_CC], m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl AC_PROVIDE_IFELSE([AC_PROG_CXX], [_AM_DEPENDENCIES([CXX])], [m4_define([AC_PROG_CXX], m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl AC_PROVIDE_IFELSE([AC_PROG_OBJC], [_AM_DEPENDENCIES([OBJC])], [m4_define([AC_PROG_OBJC], m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl dnl Support for Objective C++ was only introduced in Autoconf 2.65, dnl but we still cater to Autoconf 2.62. m4_ifdef([AC_PROG_OBJCXX], [AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], [_AM_DEPENDENCIES([OBJCXX])], [m4_define([AC_PROG_OBJCXX], m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])])dnl ]) _AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl dnl The 'parallel-tests' driver may need to know about EXEEXT, so add the dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. AC_CONFIG_COMMANDS_PRE(dnl [m4_provide_if([_AM_COMPILER_EXEEXT], [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl ]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further dnl mangled by Autoconf and run in a shell conditional statement. m4_define([_AC_COMPILER_EXEEXT], m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) # When config.status generates a header, we must update the stamp-h file. # This file resides in the same directory as the config header # that is generated. The stamp files are numbered to have different names. # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the # loop where config.status creates the headers, so we can generate # our stamp files there. AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], [# Compute $1's index in $config_headers. _am_arg=$1 _am_stamp_count=1 for _am_header in $config_headers :; do case $_am_header in $_am_arg | $_am_arg:* ) break ;; * ) _am_stamp_count=`expr $_am_stamp_count + 1` ;; esac done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 8 # AM_PROG_INSTALL_SH # ------------------ # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi AC_SUBST([install_sh])]) # Copyright (C) 2003-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # Check whether the underlying file-system supports filenames # with a leading dot. For instance MS-DOS doesn't. AC_DEFUN([AM_SET_LEADING_DOT], [rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 5 # AM_MAKE_INCLUDE() # ----------------- # Check to see how make treats includes. AC_DEFUN([AM_MAKE_INCLUDE], [am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. AC_MSG_CHECKING([for style of include used by $am_make]) am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi AC_SUBST([am__include]) AC_SUBST([am__quote]) AC_MSG_RESULT([$_am_result]) rm -f confinc confmf ]) # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- # Copyright (C) 1997-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 7 # AM_MISSING_PROG(NAME, PROGRAM) # ------------------------------ AC_DEFUN([AM_MISSING_PROG], [AC_REQUIRE([AM_MISSING_HAS_RUN]) $1=${$1-"${am_missing_run}$2"} AC_SUBST($1)]) # AM_MISSING_HAS_RUN # ------------------ # Define MISSING if not defined so far and test if it supports --run. # If it does, set am_missing_run to use it, otherwise, to nothing. AC_DEFUN([AM_MISSING_HAS_RUN], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl AC_REQUIRE_AUX_FILE([missing])dnl if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= AC_MSG_WARN(['missing' script is too old or missing]) fi ]) # Helper functions for option handling. -*- Autoconf -*- # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 6 # _AM_MANGLE_OPTION(NAME) # ----------------------- AC_DEFUN([_AM_MANGLE_OPTION], [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) # _AM_SET_OPTION(NAME) # -------------------- # Set option NAME. Presently that only means defining a flag for this option. AC_DEFUN([_AM_SET_OPTION], [m4_define(_AM_MANGLE_OPTION([$1]), [1])]) # _AM_SET_OPTIONS(OPTIONS) # ------------------------ # OPTIONS is a space-separated list of Automake options. AC_DEFUN([_AM_SET_OPTIONS], [m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) # ------------------------------------------- # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) # Check to make sure that the build environment is sane. -*- Autoconf -*- # Copyright (C) 1996-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 9 # AM_SANITY_CHECK # --------------- AC_DEFUN([AM_SANITY_CHECK], [AC_MSG_CHECKING([whether build environment is sane]) # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[[\\\"\#\$\&\'\`$am_lf]]*) AC_MSG_ERROR([unsafe absolute working directory name]);; esac case $srcdir in *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$[*]" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$[*]" != "X $srcdir/configure conftest.file" \ && test "$[*]" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken alias in your environment]) fi if test "$[2]" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$[2]" = conftest.file ) then # Ok. : else AC_MSG_ERROR([newly created file is older than distributed files! Check your system clock]) fi AC_MSG_RESULT([yes]) # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi AC_CONFIG_COMMANDS_PRE( [AC_MSG_CHECKING([that generated files are newer than configure]) if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi AC_MSG_RESULT([done])]) rm -f conftest.file ]) # Copyright (C) 2001-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 2 # AM_PROG_INSTALL_STRIP # --------------------- # One issue with vendor 'install' (even GNU) is that you can't # specify the program used to strip binaries. This is especially # annoying in cross-compiling environments, where the build's strip # is unlikely to handle the host's binaries. # Fortunately install-sh will honor a STRIPPROG variable, so we # always use install-sh in "make install-strip", and initialize # STRIPPROG with the value of the STRIP variable (set by the user). AC_DEFUN([AM_PROG_INSTALL_STRIP], [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. if test "$cross_compiling" != no; then AC_CHECK_TOOL([STRIP], [strip], :) fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) # Copyright (C) 2006-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_SUBST_NOTMAKE(VARIABLE) # --------------------------- # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. # This macro is traced by Automake. AC_DEFUN([_AM_SUBST_NOTMAKE]) # AM_SUBST_NOTMAKE(VARIABLE) # -------------------------- # Public sister of _AM_SUBST_NOTMAKE. AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- # Copyright (C) 2004-2012 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. # serial 3 # _AM_PROG_TAR(FORMAT) # -------------------- # Check how to create a tarball in format FORMAT. # FORMAT should be one of 'v7', 'ustar', or 'pax'. # # Substitute a variable $(am__tar) that is a command # writing to stdout a FORMAT-tarball containing the directory # $tardir. # tardir=directory && $(am__tar) > result.tar # # Substitute a variable $(am__untar) that extract such # a tarball read from stdin. # $(am__untar) < result.tar AC_DEFUN([_AM_PROG_TAR], [# Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AC_SUBST([AMTAR], ['$${TAR-tar}']) m4_if([$1], [v7], [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], [m4_case([$1], [ustar],, [pax],, [m4_fatal([Unknown tar format])]) AC_MSG_CHECKING([how to create a $1 tar archive]) # Loop over all known methods to create a tar archive until one works. _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' _am_tools=${am_cv_prog_tar_$1-$_am_tools} # Do not fold the above two line into one, because Tru64 sh and # Solaris sh will not grok spaces in the rhs of '-'. for _am_tool in $_am_tools do case $_am_tool in gnutar) for _am_tar in tar gnutar gtar; do AM_RUN_LOG([$_am_tar --version]) && break done am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' am__untar="$_am_tar -xf -" ;; plaintar) # Must skip GNU tar: if it does not support --format= it doesn't create # ustar tarball either. (tar --version) >/dev/null 2>&1 && continue am__tar='tar chf - "$$tardir"' am__tar_='tar chf - "$tardir"' am__untar='tar xf -' ;; pax) am__tar='pax -L -x $1 -w "$$tardir"' am__tar_='pax -L -x $1 -w "$tardir"' am__untar='pax -r' ;; cpio) am__tar='find "$$tardir" -print | cpio -o -H $1 -L' am__tar_='find "$tardir" -print | cpio -o -H $1 -L' am__untar='cpio -i -H $1 -d' ;; none) am__tar=false am__tar_=false am__untar=false ;; esac # If the value was cached, stop now. We just wanted to have am__tar # and am__untar set. test -n "${am_cv_prog_tar_$1}" && break # tar/untar a dummy directory, and stop if the command works rm -rf conftest.dir mkdir conftest.dir echo GrepMe > conftest.dir/file AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) rm -rf conftest.dir if test -s conftest.tar; then AM_RUN_LOG([$am__untar /dev/null 2>&1 && break fi done rm -rf conftest.dir AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) AC_MSG_RESULT([$am_cv_prog_tar_$1])]) AC_SUBST([am__tar]) AC_SUBST([am__untar]) ]) # _AM_PROG_TAR tintii-2.8.2/images/0000755000175000001440000000000012236200474011265 500000000000000tintii-2.8.2/images/tintii/0000755000175000001440000000000012236200475012566 500000000000000tintii-2.8.2/images/tintii/splash.xpm0000755000175000001440000116257712230652053014551 00000000000000/* XPM */ static const char * splash_xpm[] = { "330 298 7685 2", " c None", ". c #000000", "+ c #050505", "@ c #212121", "# c #252525", "$ c #1D1D1D", "% c #0E0E0E", "& c #191919", "* c #3D3D3D", "= c #393939", "- c #4E4E4E", "; c #8E8E8E", "> c #8A8A8A", ", c #808080", "' c #9C9C9C", ") c #505050", "! c #383838", "~ c #A0A0A0", "{ c #B8B8B8", "] c #5C5C5C", "^ c #232323", "/ c #9A9A9A", "( c #070707", "_ c #1A1A1A", ": c #FFFFFF", "< c #FDFDFD", "[ c #797979", "} c #A1A1A1", "| c #010101", "1 c #E3E3E3", "2 c #BCBCBC", "3 c #080808", "4 c #4F4F4F", "5 c #E1E1E1", "6 c #7C7C7C", "7 c #2D2D2D", "8 c #707070", "9 c #3B3B3B", "0 c #1C1C1C", "a c #C0C0C0", "b c #0D0D0D", "c c #959595", "d c #101010", "e c #909090", "f c #F9F9F9", "g c #666666", "h c #5B5B5B", "i c #2F2F2F", "j c #292929", "k c #6D6D6D", "l c #040404", "m c #5F5F5F", "n c #A3A3A3", "o c #313131", "p c #3E3E3E", "q c #494949", "r c #727272", "s c #444444", "t c #6A6A6A", "u c #030303", "v c #535353", "w c #717171", "x c #757575", "y c #E0E0E0", "z c #C7C7C7", "A c #151515", "B c #8C8C8C", "C c #878787", "D c #F7F7F7", "E c #0C0C0C", "F c #DEDEDE", "G c #B1B1B1", "H c #FBFBFB", "I c #D5D5D5", "J c #1B1B1B", "K c #CCCCCC", "L c #ABABAB", "M c #EFEFEF", "N c #606060", "O c #C5C5C5", "P c #2C2C2C", "Q c #F0F0F0", "R c #7A7A7A", "S c #F4F4F4", "T c #ACACAC", "U c #AFAFAF", "V c #EAEAEA", "W c #1F1F1F", "X c #CECECE", "Y c #B2B2B2", "Z c #353535", "` c #131313", " . c #B4B3B4", ".. c #626262", "+. c #A6A6A6", "@. c #F6F6F6", "#. c #D0D0D0", "$. c #989898", "%. c #272727", "&. c #979797", "*. c #ADADAD", "=. c #464646", "-. c #DADADA", ";. c #696969", ">. c #C3C3C3", ",. c #575757", "'. c #242424", "). c #171717", "!. c #7E7E7E", "~. c #0B0B0B", "{. c #9E9E9E", "]. c #A8A8A8", "^. c #B5B5B5", "/. c #838383", "(. c #929292", "_. c #404040", ":. c #2E2E2E", "<. c #2A2A2A", "[. c #454545", "}. c #323232", "|. c #282828", "1. c #636363", "2. c #555555", "3. c #3F3F3F", "4. c #515151", "5. c #5A5A5A", "6. c #525252", "7. c #616161", "8. c #676767", "9. c #373737", "0. c #4A4A4A", "a. c #363636", "b. c #2B2B2B", "c. c #6C6C6C", "d. c #787878", "e. c #414141", "f. c #545454", "g. c #6B6B6B", "h. c #363734", "i. c #434743", "j. c #3A3F39", "k. c #2B2E2B", "l. c #30322F", "m. c #70726D", "n. c #B0AFB0", "o. c #BEBEBE", "p. c #BBBBBB", "q. c #BFBFBF", "r. c #B9B9B9", "s. c #BABABA", "t. c #B1B3AF", "u. c #9B9B97", "v. c #B7B7B7", "w. c #BABAB9", "x. c #B8B8B7", "y. c #B9B9B8", "z. c #B7B8B6", "A. c #B7B8B5", "B. c #B7B8B4", "C. c #B5B6B2", "D. c #B4B5B0", "E. c #B6B7B3", "F. c #ABADA6", "G. c #363B36", "H. c #616060", "I. c #353636", "J. c #312F31", "K. c #A3A0A0", "L. c #1A1A1B", "M. c #191B1C", "N. c #181A1B", "O. c #151A1A", "P. c #191B1B", "Q. c #222223", "R. c #595B5C", "S. c #27292A", "T. c #222326", "U. c #222226", "V. c #202226", "W. c #202022", "X. c #353534", "Y. c #565654", "Z. c #5B5B5A", "`. c #5F6160", " + c #626362", ".+ c #646565", "++ c #666767", "@+ c #686868", "#+ c #4D4D4D", "$+ c #646364", "%+ c #484A47", "&+ c #1B2328", "*+ c #1F282E", "=+ c #3F4141", "-+ c #454544", ";+ c #464645", ">+ c #424242", ",+ c #222525", "'+ c #4D4C4C", ")+ c #4B4B4B", "!+ c #C4C4C4", "~+ c #B6B6B6", "{+ c #E4E4E4", "]+ c #E2E2E2", "^+ c #E5E5E5", "/+ c #E2DFDD", "(+ c #DEDDDD", "_+ c #DDDDDD", ":+ c #DFDFDF", "<+ c #DCDCDC", "[+ c #DFDEDD", "}+ c #E0DFDD", "|+ c #DEDEDF", "1+ c #DBDBDB", "2+ c #D8D8D8", "3+ c #D7D7D7", "4+ c #D9D9D9", "5+ c #E7E7E7", "6+ c #E6E6E6", "7+ c #E3E0DF", "8+ c #DFE0E0", "9+ c #141414", "0+ c #949494", "a+ c #090909", "b+ c #202020", "c+ c #858585", "d+ c #222222", "e+ c #0F0F0F", "f+ c #434343", "g+ c #181818", "h+ c #0B0D0D", "i+ c #1E201C", "j+ c #1C1D1B", "k+ c #0D0D0F", "l+ c #505151", "m+ c #575753", "n+ c #B0AFAF", "o+ c #C2C2C2", "p+ c #C0C0C2", "q+ c #C1BFC0", "r+ c #B6B6B1", "s+ c #989993", "t+ c #BABAB8", "u+ c #BDBEBA", "v+ c #BBBCB8", "w+ c #C2C2BE", "x+ c #BCBDB8", "y+ c #BBBCB7", "z+ c #BABBB6", "A+ c #B9BAB5", "B+ c #B5B6B0", "C+ c #E0DDDC", "D+ c #C8C5C7", "E+ c #CBC9CA", "F+ c #BAB8B8", "G+ c #BEBCBD", "H+ c #D9D8D8", "I+ c #858282", "J+ c #7C7979", "K+ c #787777", "L+ c #797879", "M+ c #737276", "N+ c #6E6C71", "O+ c #69666C", "P+ c #626163", "Q+ c #5E5B5D", "R+ c #5A5559", "S+ c #585558", "T+ c #858589", "U+ c #6A686C", "V+ c #7D797B", "W+ c #727173", "X+ c #676769", "Y+ c #403F40", "Z+ c #494344", "`+ c #706766", " @ c #6E6B6C", ".@ c #6D6768", "+@ c #6A6162", "@@ c #6B6668", "#@ c #676163", "$@ c #686162", "%@ c #696365", "&@ c #635D5D", "*@ c #686563", "=@ c #646160", "-@ c #5D5C5B", ";@ c #41403F", ">@ c #3C3B3B", ",@ c #595959", "'@ c #363736", ")@ c #000307", "!@ c #01070E", "~@ c #29292A", "{@ c #2F2F2C", "]@ c #2F2F2E", "^@ c #333333", "/@ c #BDBDBD", "(@ c #ECECEC", "_@ c #EBEBEB", ":@ c #EEEEEE", "<@ c #EDEDED", "[@ c #EDEBEB", "}@ c #EAE8E6", "|@ c #E8E8E8", "1@ c #E9E9E9", "2@ c #F1F1F1", "3@ c #F2F2F2", "4@ c #F3F3F3", "5@ c #ECEBEB", "6@ c #EAE8E7", "7@ c #EAE9E8", "8@ c #060606", "9@ c #1D1F1C", "0@ c #191B19", "a@ c #0E0C0C", "b@ c #0E0F10", "c@ c #525353", "d@ c #595453", "e@ c #B1AFAF", "f@ c #C0C2BF", "g@ c #C0C2BE", "h@ c #C2C2BF", "i@ c #C0C0BE", "j@ c #BCBDBB", "k@ c #C1BFBF", "l@ c #C4C4C2", "m@ c #BFBFBD", "n@ c #B5B7B0", "o@ c #999A95", "p@ c #BABBB8", "q@ c #BDBEB9", "r@ c #C0C2BC", "s@ c #BCBDB7", "t@ c #B6B7B1", "u@ c #BEBEBC", "v@ c #CCCCC6", "w@ c #9EA392", "x@ c #BEBEBB", "y@ c #EBEBE8", "z@ c #B5B6AF", "A@ c #C6C6C5", "B@ c #E3E3DF", "C@ c #F6F4F3", "D@ c #FAF8F7", "E@ c #EDECEB", "F@ c #D0D0C5", "G@ c #C5C6B6", "H@ c #CED1C0", "I@ c #D7D8CC", "J@ c #DAD9D0", "K@ c #DEDDD3", "L@ c #E0DFD5", "M@ c #E1E1D9", "N@ c #E4E3DF", "O@ c #E6E5E3", "P@ c #EAE9E6", "Q@ c #E9E9E6", "R@ c #E6E6E2", "S@ c #E7E4E1", "T@ c #E6E2E1", "U@ c #E7E2E1", "V@ c #E6E1E0", "W@ c #E4E0DF", "X@ c #E3DEDD", "Y@ c #E2DEDE", "Z@ c #DCD8D8", "`@ c #DDD9D7", " # c #D5D3D2", ".# c #D1CECE", "+# c #B4B2AF", "@# c #7C7F7B", "## c #6C6C6B", "$# c #505152", "%# c #5A595A", "&# c #565454", "*# c #525050", "=# c #4C4C4C", "-# c #474747", ";# c #7B7B7B", "># c #EAEAE9", ",# c #EEEDEC", "'# c #E7E7E8", ")# c #121212", "!# c #343434", "~# c #5D5D5D", "{# c #161817", "]# c #131314", "^# c #535454", "/# c #595754", "(# c #B2B0B0", "_# c #C4C5C4", ":# c #C2C3BD", "<# c #C0C2BD", "[# c #C3C4BE", "}# c #BEBFBA", "|# c #BBBBB8", "1# c #BBBCB6", "2# c #BBBCB9", "3# c #B8B8B4", "4# c #A8ABA7", "5# c #30352C", "6# c #6F6C6B", "7# c #B2B2AD", "8# c #46433E", "9# c #9A9897", "0# c #6B7369", "a# c #54574F", "b# c #B6B4B0", "c# c #CAC8C3", "d# c #76766C", "e# c #282A1F", "f# c #0D0E06", "g# c #0D0E08", "h# c #11130C", "i# c #14150D", "j# c #1B1C12", "k# c #545950", "l# c #5B6058", "m# c #999B92", "n# c #8C8F85", "o# c #8A8F81", "p# c #3F4333", "q# c #444239", "r# c #6F6D69", "s# c #797976", "t# c #7F807B", "u# c #85867A", "v# c #818476", "w# c #8E8F85", "x# c #93948F", "y# c #D2D0CE", "z# c #DCDDD9", "A# c #989A8F", "B# c #D4D0CE", "C# c #DBDCD5", "D# c #909286", "E# c #777772", "F# c #5F615B", "G# c #484B48", "H# c #4D504E", "I# c #5D5D58", "J# c #5D5D5B", "K# c #B0B0B0", "L# c #EEEFEF", "M# c #EFEEED", "N# c #EDEBEA", "O# c #E7E6E6", "P# c #F0EFEF", "Q# c #EBEAE9", "R# c #777777", "S# c #3C3C3C", "T# c #656565", "U# c #595957", "V# c #B4B2B2", "W# c #C3C3C4", "X# c #C2C2C0", "Y# c #C2C3BF", "Z# c #C4C5C3", "`# c #C0C2BB", " $ c #BFC0BB", ".$ c #999995", "+$ c #BBBBB9", "@$ c #B7B7B1", "#$ c #DDD9D9", "$$ c #D0CCCE", "%$ c #D3CDCE", "&$ c #D1CDCD", "*$ c #D3CDCF", "=$ c #D2D0D0", "-$ c #878585", ";$ c #484646", ">$ c #B7B5B4", ",$ c #E8E7E6", "'$ c #F7F5F6", ")$ c #E4E1E4", "!$ c #BCBABD", "~$ c #979798", "{$ c #8E8E93", "]$ c #79797F", "^$ c #464648", "/$ c #767677", "($ c #797676", "_$ c #A6A3A0", ":$ c #989594", "<$ c #8D8D8D", "[$ c #332E30", "}$ c #655B5B", "|$ c #676161", "1$ c #635F5F", "2$ c #615A58", "3$ c #655D5B", "4$ c #5C5757", "5$ c #5D5A5B", "6$ c #595353", "7$ c #C1BBB8", "8$ c #CECFCB", "9$ c #504C4B", "0$ c #BEB4AE", "a$ c #BDBBB4", "b$ c #383836", "c$ c #000103", "d$ c #01050A", "e$ c #F1EDEB", "f$ c #EBEBEA", "g$ c #EBE9E8", "h$ c #ECEBEA", "i$ c #EBEBEC", "j$ c #E7E7E6", "k$ c #E9E9EA", "l$ c #848484", "m$ c #B4B4B4", "n$ c #C2C3BE", "o$ c #C5C5C2", "p$ c #C4C5BF", "q$ c #B5B6B1", "r$ c #989894", "s$ c #BEBEBF", "t$ c #CECECB", "u$ c #ADAFA1", "v$ c #C8C6C5", "w$ c #BEC0B5", "x$ c #D9D9D6", "y$ c #EFEDEB", "z$ c #BDBABA", "A$ c #8F8F8D", "B$ c #92928B", "C$ c #B9B9B0", "D$ c #D3D3CC", "E$ c #DBDCD3", "F$ c #EBEAE6", "G$ c #F9F9F8", "H$ c #F9F6F6", "I$ c #E3E3E0", "J$ c #DFDFDB", "K$ c #E5E4DF", "L$ c #E8E6E2", "M$ c #E7E7E3", "N$ c #E6E6DF", "O$ c #E5E2DE", "P$ c #E5E1E0", "Q$ c #E4E0E0", "R$ c #E5E1E1", "S$ c #E5E0E0", "T$ c #E3DFDF", "U$ c #DFDEDE", "V$ c #E0DCDC", "W$ c #E0DBDB", "X$ c #E6E5E5", "Y$ c #E8E7E7", "Z$ c #DCD5D5", "`$ c #E5E2E1", " % c #CCC9C8", ".% c #929290", "+% c #53575A", "@% c #535455", "#% c #D1D1D1", "$% c #F0EFEE", "%% c #F2EEEC", "&% c #F0EEEA", "*% c #EBEAEA", "=% c #EAECEB", "-% c #EAEAEB", ";% c #E7E6E3", ">% c #E8E8E7", ",% c #888888", "'% c #747474", ")% c #939393", "!% c #8F8F8F", "~% c #020202", "{% c #C2C3C2", "]% c #C3C4C0", "^% c #C5C6C2", "/% c #C3C4BD", "(% c #B6B7B0", "_% c #959792", ":% c #BEBFB9", "<% c #BDBEB8", "[% c #BFC0BA", "}% c #C0C2BA", "|% c #BCBDB6", "1% c #A5A89F", "2% c #12180D", "3% c #666663", "4% c #ACACA8", "5% c #37372F", "6% c #92938F", "7% c #979F90", "8% c #ADB0A5", "9% c #E6E6E0", "0% c #949492", "a% c #363732", "b% c #0B0D05", "c% c #252819", "d% c #787C6D", "e% c #CBCBC6", "f% c #EFEFED", "g% c #DADAD5", "h% c #88897F", "i% c #424639", "j% c #2F3425", "k% c #363B2F", "l% c #404337", "m% c #5B5D51", "n% c #7C7C75", "o% c #81827B", "p% c #8A8A81", "q% c #8E8E80", "r% c #939488", "s% c #999A92", "t% c #D7D4D3", "u% c #DADAD4", "v% c #A3A395", "w% c #D6D4D2", "x% c #D5D6D0", "y% c #A5A895", "z% c #7F8075", "A% c #5F615D", "B% c #545252", "C% c #CBCBCB", "D% c #F0EFEC", "E% c #ECEBE9", "F% c #F1EFEF", "G% c #E8E6E6", "H% c #6E6E6E", "I% c #868686", "J% c #AEAEAE", "K% c #9F9F9F", "L% c #8B8B8B", "M% c #818181", "N% c #C4C5BE", "O% c #BBBCBA", "P% c #BDBFB9", "Q% c #888B7E", "R% c #858881", "S% c #858680", "T% c #ABABA7", "U% c #BFBFBB", "V% c #BCBCBB", "W% c #BCBDBA", "X% c #B9BAB4", "Y% c #BCBCBA", "Z% c #A7ACA5", "`% c #1A1D19", " & c #666665", ".& c #8A8A86", "+& c #30322D", "@& c #989897", "#& c #5E615F", "$& c #171915", "%& c #2E3128", "&& c #6E7160", "*& c #D1CFC7", "=& c #EAEAE8", "-& c #C5C3C5", ";& c #616163", ">& c #060705", ",& c #4D4F47", "'& c #BEBEBA", ")& c #E2E2DF", "!& c #D9D6D7", "~& c #908D90", "{& c #323235", "]& c #040507", "^& c #1C1C1F", "/& c #4B4B4A", "(& c #545453", "_& c #4E4E4B", ":& c #4F504C", "<& c #4C4C4A", "[& c #C8BFBC", "}& c #C9CAC3", "|& c #4A4C47", "1& c #C0BBBA", "2& c #B5B7AF", "3& c #393B34", "4& c #575954", "5& c #EFEEEE", "6& c #EDECEC", "7& c #E9E8E8", "8& c #C9C9C9", "9& c #C6C6C6", "0& c #C8C8C8", "a& c #CACACA", "b& c #CDCDCD", "c& c #898989", "d& c #C4C4BF", "e& c #C3C4BF", "f& c #C3C3BE", "g& c #C5C6BF", "h& c #95978E", "i& c #C2C3BC", "j& c #7A7C75", "k& c #676768", "l& c #61615F", "m& c #9F9D9A", "n& c #BDBDB9", "o& c #A6ABA3", "p& c #181B18", "q& c #7E7671", "r& c #CBC5BE", "s& c #3A3C35", "t& c #979795", "u& c #636365", "v& c #181819", "w& c #0C0C0D", "x& c #010201", "y& c #0D1007", "z& c #3A3F32", "A& c #A5A49A", "B& c #E6E5DF", "C& c #E7E4E4", "D& c #A19F9F", "E& c #3C3C3E", "F& c #0E0E12", "G& c #434443", "H& c #25281E", "I& c #7C7F71", "J& c #D2D2C9", "K& c #ECEBE8", "L& c #C6C4C4", "M& c #828181", "N& c #61605F", "O& c #515150", "P& c #545552", "Q& c #535351", "R& c #CAC4C2", "S& c #CACBC5", "T& c #535350", "U& c #C5BEBE", "V& c #B4B8B0", "W& c #424341", "X& c #ECECEB", "Y& c #EDEBE9", "Z& c #EFEBE9", "`& c #EFEBEA", " * c #F0F0F1", ".* c #EBE7E6", "+* c #A9A9A9", "@* c #A7A7A7", "#* c #B7B7B9", "$* c #B8B8BA", "%* c #BDBDBC", "&* c #BEBEBD", "** c #BEBFBC", "=* c #959592", "-* c #BBBBBA", ";* c #BEBFBB", ">* c #C2C3BB", ",* c #92948E", "'* c #727171", ")* c #A8A7A4", "!* c #BFBFBE", "~* c #BFBDBE", "{* c #A7A9A1", "]* c #121912", "^* c #8C817C", "/* c #ECE7DF", "(* c #444940", "_* c #949495", ":* c #626365", "<* c #101213", "[* c #050506", "}* c #010202", "|* c #010200", "1* c #181B10", "2* c #67685E", "3* c #C8C8BE", "4* c #D3D3D3", "5* c #A2A0A2", "6* c #242525", "7* c #040506", "8* c #0A0D07", "9* c #464642", "0* c #A8A7A0", "a* c #E4E3E1", "b* c #C1BEBD", "c* c #7C7B7B", "d* c #525251", "e* c #50514C", "f* c #545553", "g* c #CBC5C3", "h* c #CACAC2", "i* c #51524B", "j* c #C6BFBD", "k* c #B5B6B4", "l* c #424342", "m* c #EDEFEF", "n* c #EFEDED", "o* c #F2EDEB", "p* c #F0EBEA", "q* c #E9E8E7", "r* c #EFEBE7", "s* c #EEECEB", "t* c #E9E9E8", "u* c #B5B5B7", "v* c #B6B4B6", "w* c #818180", "x* c #737373", "y* c #6A6766", "z* c #ADA9A6", "A* c #A5A8A0", "B* c #1D1F1B", "C* c #9A8F8B", "D* c #E8E6E1", "E* c #515450", "F* c #989899", "G* c #68696B", "H* c #1A1F23", "I* c #0E1213", "J* c #090B0C", "K* c #070507", "L* c #040505", "M* c #010203", "N* c #000101", "O* c #030403", "P* c #30332C", "Q* c #979993", "R* c #E2E1DF", "S* c #E6E6E5", "T* c #B1B1B2", "U* c #505052", "V* c #353533", "W* c #939492", "X* c #D1D1D0", "Y* c #D9D6D6", "Z* c #A5A3A3", "`* c #656563", " = c #51514F", ".= c #4E4E4C", "+= c #CAC6C4", "@= c #C8C8C0", "#= c #484A46", "$= c #C6C0BE", "%= c #B7B5B7", "&= c #EEEAE7", "*= c #F0ECEB", "== c #EDEDEC", "-= c #EEEDED", ";= c #E6E6E7", ">= c #E3E5E5", ",= c #999999", "'= c #9B9B9B", ")= c #ABA9A9", "!= c #AEAEAC", "~= c #A4A6A3", "{= c #736E69", "]= c #A8A3A0", "^= c #A9A9A7", "/= c #959590", "(= c #A1A39E", "_= c #9E9B99", ":= c #A5A0A2", "<= c #9A9797", "[= c #918A8A", "}= c #8F8889", "|= c #8A8484", "1= c #837F7D", "2= c #7D7879", "3= c #636061", "4= c #383637", "5= c #312F2E", "6= c #5B5B57", "7= c #80807D", "8= c #CECBCA", "9= c #D6D3D3", "0= c #898686", "a= c #4B4A47", "b= c #53514F", "c= c #777674", "d= c #E5E4E4", "e= c #C1BFBE", "f= c #8C8988", "g= c #D3CCC9", "h= c #CACBC8", "i= c #73716D", "j= c #CCCCCB", "k= c #D6D6D6", "l= c #EEEEEF", "m= c #DADBDC", "n= c #525558", "o= c #7D7D7D", "p= c #ACACAD", "q= c #A6A4A3", "r= c #A09E9B", "s= c #9F9F9D", "t= c #A1A3A0", "u= c #9FA09F", "v= c #DFDEDB", "w= c #E7E3E1", "x= c #E7E2DE", "y= c #E6DFDD", "z= c #E5E0DE", "A= c #E4DFDB", "B= c #E1DDD8", "C= c #E0DBD7", "D= c #D0C9C5", "E= c #B1A9A4", "F= c #918A86", "G= c #797873", "H= c #787169", "I= c #898582", "J= c #B9B6B5", "K= c #E6E3E2", "L= c #EEECEC", "M= c #D6D2D1", "N= c #B4ACA7", "O= c #9B8E85", "P= c #8C7D71", "Q= c #8C857F", "R= c #B3AEA8", "S= c #DAD7D5", "T= c #DCD9D9", "U= c #D1CFCE", "V= c #EBEDED", "W= c #EDEBE8", "X= c #D1D1D2", "Y= c #414447", "Z= c #9D9D9D", "`= c #A6A8A4", " - c #C6C7C4", ".- c #E6E3E0", "+- c #EDEBE6", "@- c #F2EEE9", "#- c #F1ECE7", "$- c #F1EBE6", "%- c #F0EBE6", "&- c #E2DDD8", "*- c #CBC5C2", "=- c #ADABA8", "-- c #99928D", ";- c #8B8076", ">- c #8B8885", ",- c #ABA9A6", "'- c #CFD0D0", ")- c #EAE9E9", "!- c #EBEAE8", "~- c #DBD3CE", "{- c #BBB5AF", "]- c #A99D92", "^- c #9E958E", "/- c #ADABA6", "(- c #CBC8C6", "_- c #ECECED", ":- c #EFEBEB", "<- c #B9BABA", "[- c #4F504E", "}- c #CFCFCF", "|- c #A5A4A5", "1- c #B0B0AE", "2- c #C7C7C8", "3- c #D0D0CE", "4- c #E7E3E0", "5- c #EEEAE5", "6- c #EEE9E4", "7- c #EAE6E0", "8- c #D6D2CE", "9- c #BDB6AF", "0- c #A89F98", "a- c #9D948B", "b- c #97928E", "c- c #A29F9D", "d- c #DCDCDD", "e- c #E4DFDE", "f- c #C9C5C0", "g- c #B4ACA3", "h- c #ADADAE", "i- c #767676", "j- c #939597", "k- c #282A29", "l- c #3A3C38", "m- c #191818", "n- c #9E9E9D", "o- c #ADAFAC", "p- c #DEDBD9", "q- c #E9E7E6", "r- c #EFEAE5", "s- c #EEE9E5", "t- c #E3DED9", "u- c #CFC8C2", "v- c #BBB0A7", "w- c #A99F95", "x- c #9C9792", "y- c #E6E5E4", "z- c #BBBBBC", "A- c #D2D2D2", "B- c #828282", "C- c #B4B4B0", "D- c #CDCDCB", "E- c #E7E4E2", "F- c #EDE9E5", "G- c #EEE8E3", "H- c #ECE7E3", "I- c #DDD6D1", "J- c #C0B9B4", "K- c #AAA39A", "L- c #9C9790", "M- c #949290", "N- c #B9B7B6", "O- c #7F7F7F", "P- c #EBE9E6", "Q- c #E7E9E9", "R- c #F1F1F0", "S- c #6E6E71", "T- c #31312F", "U- c #3D3736", "V- c #3A3838", "W- c #CECECD", "X- c #DCDDDD", "Y- c #EFEAE6", "Z- c #EEEAE6", "`- c #F0EBE5", " ; c #CCC5BF", ".; c #B1ACA6", "+; c #A09993", "@; c #9C938E", "#; c #636362", "$; c #434141", "%; c #4A4949", "&; c #4B4644", "*; c #484544", "=; c #4B4B4C", "-; c #D4D4D4", ";; c #B7B8B8", ">; c #A5A7A3", ",; c #B2B2AF", "'; c #D3D3D1", "); c #E5E4E3", "!; c #EBEAE7", "~; c #ECEAE6", "{; c #EAE5E1", "]; c #D9D2CD", "^; c #BCB9B6", "/; c #999A9A", "(; c #BCBCBD", "_; c #535352", ":; c #BBB9B9", "<; c #C4C2C2", "[; c #C7C7C6", "}; c #EFE9E4", "|; c #AFAFAD", "1; c #ABABA6", "2; c #D7D7D6", "3; c #EDE9E6", "4; c #BDBEBB", "5; c #DEDEDD", "6; c #B1B1AF", "7; c #A6A8A5", "8; c #B7B7B6", "9; c #F5F5F5", "0; c #FAFAFA", "a; c #F8F8F8", "b; c #2B2B2C", "c; c #343433", "d; c #282829", "e; c #1D1D1C", "f; c #3F413F", "g; c #2E2B2A", "h; c #2A2725", "i; c #222323", "j; c #191918", "k; c #2D2E2C", "l; c #3F322A", "m; c #412C20", "n; c #1E2122", "o; c #4F4B48", "p; c #52504F", "q; c #5A5553", "r; c #4C4745", "s; c #4A4A49", "t; c #ABADAD", "u; c #A5A7A7", "v; c #8A8B8A", "w; c #AFAEAE", "x; c #ADACAA", "y; c #5D5D5C", "z; c #464745", "A; c #ADADAB", "B; c #767877", "C; c #7D7C7C", "D; c #6C6968", "E; c #8F8D8B", "F; c #B2B2B0", "G; c #ABABA8", "H; c #A7A7A8", "I; c #727271", "J; c #72726E", "K; c #ACABAB", "L; c #B0B0B1", "M; c #747470", "N; c #6E6E6B", "O; c #737374", "P; c #69696B", "Q; c #A0A0A2", "R; c #A8ABA5", "S; c #AEAEAB", "T; c #ADADAA", "U; c #71736E", "V; c #71716B", "W; c #1F1F1C", "X; c #141413", "Y; c #242426", "Z; c #252524", "`; c #C5C6C6", " > c #A7A7A5", ".> c #A8A8A3", "+> c #A8A8A6", "@> c #5A5F5A", "#> c #292B24", "$> c #383934", "%> c #3E3E3A", "&> c #52524F", "*> c #40403B", "=> c #4D4F4E", "-> c #2A2D29", ";> c #23241E", ">> c #2E2E2D", ",> c #9F9F9E", "'> c #A3A3A0", ")> c #BCBDB9", "!> c #D3D4D4", "~> c #CECFD0", "{> c #B5B6B3", "]> c #A7A9A7", "^> c #6B6D6D", "/> c #151713", "(> c #141510", "_> c #151513", ":> c #323430", "<> c #13130D", "[> c #3B3B39", "}> c #B4B3B1", "|> c #ACACAA", "1> c #9F9FA1", "2> c #7F7F7B", "3> c #555554", "4> c #79797B", "5> c #6C6C6D", "6> c #A1A1A0", "7> c #DDDCDD", "8> c #C9C9C7", "9> c #60605F", "0> c #434440", "a> c #464643", "b> c #383835", "c> c #A8A8A4", "d> c #B1B1AD", "e> c #AFAFAC", "f> c #A5A79F", "g> c #A8A8A5", "h> c #A6A8A3", "i> c #A0A09F", "j> c #959794", "k> c #6E6E6C", "l> c #999997", "m> c #979897", "n> c #6D6D6B", "o> c #989890", "p> c #BABCB6", "q> c #D4D5D3", "r> c #C9C9C8", "s> c #B0B0AD", "t> c #A6A6A7", "u> c #6C6C68", "v> c #7C7C78", "w> c #959594", "x> c #A6A6A4", "y> c #A5A4A3", "z> c #A9A9A6", "A> c #AEAEAA", "B> c #AAACA6", "C> c #AFAFB0", "D> c #A1A19D", "E> c #A3A3A5", "F> c #9FA09A", "G> c #9E9E9A", "H> c #9A9A99", "I> c #90908E", "J> c #72746D", "K> c #9D9D9B", "L> c #7C7F79", "M> c #8D8E8B", "N> c #B9B7B9", "O> c #D4D2D3", "P> c #8D8D89", "Q> c #72746E", "R> c #747473", "S> c #9A9A98", "T> c #989995", "U> c #98988E", "V> c #B7B9B0", "W> c #D4D7D5", "X> c #757772", "Y> c #777976", "Z> c #8E8E8B", "`> c #9A9898", " , c #A3A39E", "., c #B1B3B1", "+, c #B5B6B5", "@, c #A9A9AB", "#, c #7D7D79", "$, c #999998", "%, c #7A7C78", "&, c #AFB3AD", "*, c #CED1CF", "=, c #CBCCCA", "-, c #C5C6C5", ";, c #888886", ">, c #8E8B8B", ",, c #9D9D99", "', c #AEB1A7", "), c #D1D2D1", "!, c #CFCDCE", "~, c #C3C3C2", "{, c #ABABAC", "], c #A4A6A0", "^, c #ADADA8", "/, c #A3A3A1", "(, c #A6A6A1", "_, c #999A94", ":, c #767871", "<, c #7C7C7B", "[, c #939090", "}, c #989998", "|, c #A7A9A6", "1, c #ACACA6", "2, c #8F8F90", "3, c #98998F", "4, c #989992", "5, c #B0B2AE", "6, c #BCBEBA", "7, c #C6C8C4", "8, c #A8ABA6", "9, c #939092", "0, c #969495", "a, c #858586", "b, c #909092", "c, c #7B7D7B", "d, c #8E8F8D", "e, c #7D7D7F", "f, c #9A9B99", "g, c #9B9B99", "h, c #9B9B98", "i, c #ADB0A7", "j, c #C8C8C9", "k, c #BDBEBC", "l, c #A3A49F", "m, c #9D9D9A", "n, c #9B9D97", "o, c #80807C", "p, c #7D7D7C", "q, c #9C9A99", "r, c #A4A1A1", "s, c #A9A9A5", "t, c #9B9D9B", "u, c #8D8D8B", "v, c #7B7D79", "w, c #61625A", "x, c #717167", "y, c #85897F", "z, c #979892", "A, c #979893", "B, c #9E9F99", "C, c #A6A8A0", "D, c #AEB3AC", "E, c #A3A49E", "F, c #A0A09E", "G, c #A3A4A3", "H, c #A0A09B", "I, c #9B9B9A", "J, c #8A8A8B", "K, c #858584", "L, c #7C7F6E", "M, c #818473", "N, c #999A8D", "O, c #898A81", "P, c #97978D", "Q, c #8A8B7E", "R, c #95978D", "S, c #B1B3AC", "T, c #CDCECB", "U, c #CCCDCB", "V, c #A3A49D", "W, c #92928F", "X, c #989597", "Y, c #828280", "Z, c #81827D", "`, c #949589", " ' c #939390", ".' c #8F8F8E", "+' c #9E9E9B", "@' c #888984", "#' c #363733", "$' c #383936", "%' c #3D3F3A", "&' c #393E36", "*' c #3F4139", "=' c #42453F", "-' c #484A44", ";' c #4A4F46", ">' c #575957", ",' c #62635A", "'' c #646760", ")' c #686C67", "!' c #6F746D", "~' c #777B73", "{' c #808178", "]' c #90928B", "^' c #ACAEAA", "/' c #A7A7A4", "(' c #9FA09D", "_' c #9D9E95", ":' c #9B9D92", "<' c #9D9D94", "[' c #9B9B95", "}' c #A4A69D", "|' c #A7A9A0", "1' c #B9BAB7", "2' c #A7ACA4", "3' c #A5A4A1", "4' c #8A8A88", "5' c #858884", "6' c #898985", "7' c #8B8B88", "8' c #868685", "9' c #89898A", "0' c #989999", "a' c #898988", "b' c #929485", "c' c #95958F", "d' c #9B9D9A", "e' c #A6A4A5", "f' c #A7A6A4", "g' c #A3A4A5", "h' c #959793", "i' c #52534F", "j' c #474943", "k' c #464743", "l' c #43443F", "m' c #444540", "n' c #3E403B", "o' c #A5A4A6", "p' c #A1A1A4", "q' c #787877", "r' c #373736", "s' c #363735", "t' c #353632", "u' c #2F312C", "v' c #2F312F", "w' c #2C2D29", "x' c #494946", "y' c #A8A8A9", "z' c #B0B2B0", "A' c #5F5F5C", "B' c #393B37", "C' c #3E403A", "D' c #41423A", "E' c #444440", "F' c #454543", "G' c #454644", "H' c #444543", "I' c #4D4F49", "J' c #575951", "K' c #54544F", "L' c #51524F", "M' c #50504F", "N' c #50514E", "O' c #535451", "P' c #5B5D5B", "Q' c #636360", "R' c #5A5C58", "S' c #7B7D78", "T' c #A6A6A3", "U' c #A0A099", "V' c #A6A6A0", "W' c #A1A19E", "X' c #81827F", "Y' c #6D6D6C", "Z' c #545753", "`' c #53544F", " ) c #50514A", ".) c #5B5B58", "+) c #5C5C58", "@) c #4E514E", "#) c #4B4E4B", "$) c #6B6C6B", "%) c #464644", "&) c #444542", "*) c #414140", "=) c #3E3E3F", "-) c #3B3E3A", ";) c #32342F", ">) c #B4B4B6", ",) c #939490", "') c #43463A", ")) c #878586", "!) c #6D6B6B", "~) c #5C5C5B", "{) c #5A5A58", "]) c #9D9E9D", "^) c #A4A6A4", "/) c #9F9F9B", "() c #A1A19F", "_) c #7A7C73", ":) c #545551", "<) c #626561", "[) c #595B57", "}) c #525352", "|) c #686863", "1) c #676763", "2) c #5E605B", "3) c #5C5F59", "4) c #5E605A", "5) c #5F615F", "6) c #B4B5B3", "7) c #7A7C71", "8) c #555552", "9) c #545452", "0) c #545550", "a) c #585A53", "b) c #4E4E49", "c) c #51524E", "d) c #787B77", "e) c #959593", "f) c #B4B4B3", "g) c #A19FA1", "h) c #9B9B9E", "i) c #B9B9BB", "j) c #494B45", "k) c #868484", "l) c #71716E", "m) c #8E8F8F", "n) c #82817F", "o) c #797978", "p) c #777776", "q) c #787774", "r) c #6F6C68", "s) c #787B73", "t) c #5A5A54", "u) c #6F6C69", "v) c #6D6B69", "w) c #676765", "x) c #5C5B58", "y) c #545250", "z) c #575755", "A) c #53544B", "B) c #80807B", "C) c #5F5F5D", "D) c #555558", "E) c #6A6868", "F) c #525351", "G) c #5B5D59", "H) c #636361", "I) c #575754", "J) c #9B9B94", "K) c #949592", "L) c #939392", "M) c #777778", "N) c #777474", "O) c #686666", "P) c #777972", "Q) c #5C5C57", "R) c #90908F", "S) c #A09A97", "T) c #8B8989", "U) c #797878", "V) c #77736E", "W) c #7C7771", "X) c #6D6867", "Y) c #8B8B8A", "Z) c #A3A4A0", "`) c #AFAFAB", " ! c #ABADAB", ".! c #B6B6B5", "+! c #5A5C52", "@! c #81817C", "#! c #827F7C", "$! c #818281", "%! c #777979", "&! c #7C7877", "*! c #81807D", "=! c #817D7B", "-! c #807F7C", ";! c #68625F", ">! c #626161", ",! c #AEB0AE", "'! c #A1A19B", ")! c #535448", "!! c #A19F9E", "~! c #848485", "{! c #A8A7A7", "]! c #959797", "^! c #AEADAB", "/! c #5C5F5A", "(! c #898986", "_! c #B1B0AE", ":! c #7B7B7C", "~ c #4F5049", ",~ c #181814", "'~ c #292924", ")~ c #10100F", "!~ c #2C2C2B", "~~ c #B9B9B7", "{~ c #B7B7B5", "]~ c #AFB1AE", "^~ c #ADAFAD", "/~ c #B4B5B4", "(~ c #2E332B", "_~ c #282A23", ":~ c #292927", "<~ c #20201F", "[~ c #3E3E3B", "}~ c #212021", "|~ c #31312E", "1~ c #474746", "2~ c #333535", "3~ c #393B35", "4~ c #5A5A57", "5~ c #716E6E", "6~ c #515251", "7~ c #181A19", "8~ c #A3A39F", "9~ c #A4A19E", "0~ c #B1B1AE", "a~ c #3D3F39", "b~ c #292B25", "c~ c #292B28", "d~ c #50504E", "e~ c #42423B", "f~ c #2A2A25", "g~ c #434441", "h~ c #2B2B29", "i~ c #2D2D2C", "j~ c #A0A19F", "k~ c #22271E", "l~ c #272A23", "m~ c #2A2D26", "n~ c #1C1D16", "o~ c #2D2E27", "p~ c #1B1B15", "q~ c #42423F", "r~ c #181A15", "s~ c #2C2C2A", "t~ c #3A3C37", "u~ c #888884", "v~ c #D3D3D4", "w~ c #BFC0BF", "x~ c #B4B3AE", "y~ c #3E413E", "z~ c #1F221C", "A~ c #1A1D17", "B~ c #292B29", "C~ c #12140E", "D~ c #22231D", "E~ c #434342", "F~ c #121210", "G~ c #1F211C", "H~ c #171914", "I~ c #151514", "J~ c #161814", "K~ c #A1A19A", "L~ c #A1A3A1", "M~ c #90928D", "N~ c #686B69", "O~ c #474942", "P~ c #50504C", "Q~ c #4D4F4B", "R~ c #71716D", "S~ c #555553", "T~ c #D6D6D7", "U~ c #AFB2A8", "V~ c #626361", "W~ c #33352E", "X~ c #292925", "Y~ c #403F3B", "Z~ c #21241D", "`~ c #2E2F2C", " { c #4A4C4B", ".{ c #AEADAD", "+{ c #2E2F2D", "@{ c #252721", "#{ c #1F211B", "${ c #D4D5D4", "%{ c #A5A7A1", "&{ c #939394", "*{ c #A0A09D", "={ c #9E9F98", "-{ c #9D9D97", ";{ c #B4B5B1", ">{ c #797973", ",{ c #767674", "'{ c #99999A", "){ c #72726D", "!{ c #868684", "~{ c #5A5F57", "{{ c #6E7169", "]{ c #92928E", "^{ c #656663", "/{ c #C9CAC8", "({ c #CACBCB", "_{ c #B0B4AE", ":{ c #ABADA5", "<{ c #7F7F79", "[{ c #6B6B6C", "}{ c #ACACA7", "|{ c #A0A1A0", "1{ c #4C4C48", "2{ c #393937", "3{ c #393938", "4{ c #212122", "5{ c #D7DAD8", "6{ c #D9D9DA", "7{ c #D7D7D8", "8{ c #999A93", "9{ c #9E9E97", "0{ c #999A8E", "a{ c #9E9F9A", "b{ c #9E9E99", "c{ c #A4A6A1", "d{ c #B3B4AD", "e{ c #989893", "f{ c #A0A097", "g{ c #7B7D73", "h{ c #80817F", "i{ c #949493", "j{ c #787873", "k{ c #9F9F99", "l{ c #848482", "m{ c #7B7B79", "n{ c #8D8E84", "o{ c #93948B", "p{ c #979793", "q{ c #979794", "r{ c #9B9999", "s{ c #A7A9A5", "t{ c #B4B3AF", "u{ c #9A9A9B", "v{ c #7C8077", "w{ c #686967", "x{ c #858885", "y{ c #C7C8C6", "z{ c #D5D6D5", "A{ c #DCDBDC", "B{ c #A8ABA3", "C{ c #A0A195", "D{ c #A7A9A3", "E{ c #A4A69F", "F{ c #93938D", "G{ c #737370", "H{ c #A1A3A3", "I{ c #93938F", "J{ c #424243", "K{ c #888988", "L{ c #C7C9C5", "M{ c #D3D4D2", "N{ c #D8D9D7", "O{ c #D7D8D7", "P{ c #8B8B8D", "Q{ c #8A8B84", "R{ c #93948A", "S{ c #93948D", "T{ c #9B9D98", "U{ c #94958D", "V{ c #9E9E92", "W{ c #8A8B82", "X{ c #737671", "Y{ c #9D9D9F", "Z{ c #84847D", "`{ c #76786C", " ] c #828281", ".] c #888880", "+] c #8E8F84", "@] c #A0A198", "#] c #A0A495", "$] c #9FA397", "%] c #AEAEAF", "&] c #81847C", "*] c #6F7469", "=] c #8D8D8A", "-] c #9D9D98", ";] c #6C6D6B", ">] c #949595", ",] c #898984", "'] c #C9CCC8", ")] c #B9BAB8", "!] c #9FA398", "~] c #6E6E6D", "{] c #474745", "]] c #2A2A29", "^] c #1E1C1C", "/] c #C6C7C6", "(] c #D2D3D1", "_] c #C0C2C0", ":] c #A0A19A", "<] c #8F908D", "[] c #949594", "}] c #7A7C77", "|] c #77796E", "1] c #898A86", "2] c #94948B", "3] c #9B9D95", "4] c #9FA09E", "5] c #ACAEA8", "6] c #767971", "7] c #848880", "8] c #858684", "9] c #9FA098", "0] c #737670", "a] c #8D8D88", "b] c #989990", "c] c #CBCECA", "d] c #DADDDA", "e] c #E4E4E3", "f] c #AAADA4", "g] c #9A9A94", "h] c #8A8A89", "i] c #717172", "j] c #333532", "k] c #040304", "l] c #060506", "m] c #080607", "n] c #0C0807", "o] c #262322", "p] c #CBCBCC", "q] c #A09EA0", "r] c #777771", "s] c #787876", "t] c #929293", "u] c #88887C", "v] c #888882", "w] c #9A9B97", "x] c #9A9B95", "y] c #9E9F9B", "z] c #76786E", "A] c #6D6E67", "B] c #949293", "C] c #CCCFCC", "D] c #D3D6D3", "E] c #DFE0DE", "F] c #B7B7B4", "G] c #6C696B", "H] c #979792", "I] c #949490", "J] c #5C5F5D", "K] c #08080A", "L] c #020203", "M] c #040303", "N] c #050405", "O] c #050303", "P] c #060202", "Q] c #070505", "R] c #0A0808", "S] c #120D0D", "T] c #21201F", "U] c #97978E", "V] c #898A7B", "W] c #92928D", "X] c #767671", "Y] c #84857A", "Z] c #7D7D7B", "`] c #9A9A93", " ^ c #ABAEA5", ".^ c #D8DBD8", "+^ c #9D9E99", "@^ c #888881", "#^ c #909086", "$^ c #5A5C59", "%^ c #161818", "&^ c #030203", "*^ c #030202", "=^ c #050404", "-^ c #060403", ";^ c #080505", ">^ c #0A0505", ",^ c #0D0707", "'^ c #0F0807", ")^ c #0F0C0B", "!^ c #0E0908", "~^ c #231F1B", "{^ c #343331", "]^ c #BDBFBA", "^^ c #D0D3CF", "/^ c #D3D6D4", "(^ c #D1D4D1", "_^ c #ADAFA8", ":^ c #8A8A7E", "<^ c #93938B", "[^ c #8E8E8A", "}^ c #8E8E88", "|^ c #2C2D2D", "1^ c #040202", "2^ c #100D0B", "3^ c #15120F", "4^ c #191313", "5^ c #1D1817", "6^ c #292523", "7^ c #1D1814", "8^ c #1E1814", "9^ c #403C38", "0^ c #767878", "a^ c #BCBDBC", "b^ c #CCCFCB", "c^ c #CDD0CC", "d^ c #CACDCA", "e^ c #BFC3BE", "f^ c #898689", "g^ c #858581", "h^ c #030101", "i^ c #030201", "j^ c #050302", "k^ c #090606", "l^ c #140F0D", "m^ c #231F1C", "n^ c #2A2724", "o^ c #363332", "p^ c #312F2F", "q^ c #2F2D2D", "r^ c #34312F", "s^ c #2D2928", "t^ c #C5C5C4", "u^ c #CDCEC9", "v^ c #C9CBC7", "w^ c #C8CAC7", "x^ c #A1A39A", "y^ c #909288", "z^ c #8D8E8E", "A^ c #020101", "B^ c #100C0B", "C^ c #1E1C1B", "D^ c #201B1A", "E^ c #282827", "F^ c #242221", "G^ c #241D1B", "H^ c #2A2929", "I^ c #282727", "J^ c #454342", "K^ c #CBCCC9", "L^ c #BEC2BC", "M^ c #BBBDBA", "N^ c #B4B6B0", "O^ c #94998A", "P^ c #8D9480", "Q^ c #828872", "R^ c #8D8D8E", "S^ c #706966", "T^ c #342523", "U^ c #0E0505", "V^ c #030100", "W^ c #040100", "X^ c #0C0705", "Y^ c #130E0C", "Z^ c #1A1411", "`^ c #231C1A", " / c #211C1B", "./ c #0C0C0B", "+/ c #101212", "@/ c #141010", "#/ c #1E1B19", "$/ c #292828", "%/ c #1E1B1A", "&/ c #616160", "*/ c #858682", "=/ c #7E8172", "-/ c #707364", ";/ c #65695F", ">/ c #656962", ",/ c #586057", "'/ c #5F665B", ")/ c #666965", "!/ c #868688", "~/ c #8E8F89", "{/ c #756559", "]/ c #B99078", "^/ c #AA7F6E", "// c #34201C", "(/ c #020000", "_/ c #080503", ":/ c #1A1513", "( c #B4B5AE", ",( c #9FA49B", "'( c #A4A7A0", ")( c #9FA39E", "!( c #83867F", "~( c #767872", "{( c #777973", "]( c #A9A9A1", "^( c #A5A79D", "/( c #9A9F97", "(( c #544E49", "_( c #2E221A", ":( c #553627", "<( c #A86E53", "[( c #C58A71", "}( c #875246", "|( c #46251E", "1( c #160905", "2( c #120704", "3( c #1A100C", "4( c #28221E", "5( c #14100E", "6( c #090605", "7( c #0E0907", "8( c #8E928D", "9( c #939590", "0( c #858986", "a( c #B2B1B2", "b( c #B6B6B8", "c( c #B8B8B6", "d( c #ADB0A8", "e( c #A5ABA5", "f( c #ACAFAA", "g( c #AEB3AA", "h( c #AEB1AA", "i( c #A5A89E", "j( c #A9A9A4", "k( c #A6A89F", "l( c #A8AB9F", "m( c #989A89", "n( c #939784", "o( c #AEB1A6", "p( c #A19E95", "q( c #472F28", "r( c #41291A", "s( c #844F39", "t( c #AE6B52", "u( c #C88D75", "v( c #A66757", "w( c #804B3E", "x( c #4F2D25", "y( c #2D1A12", "z( c #1E100C", "A( c #160F0D", "B( c #130D0C", "C( c #0A0807", "D( c #131210", "E( c #252321", "F( c #8C8F8B", "G( c #9EA098", "H( c #A3A69A", "I( c #A8ABA4", "J( c #949992", "K( c #888B86", "L( c #999797", "M( c #C8C9C7", "N( c #CACBC6", "O( c #CCCDCA", "P( c #C7C7C3", "Q( c #BBBDB6", "R( c #B7B8B1", "S( c #A6A9A1", "T( c #ABAEA7", "U( c #766962", "V( c #684032", "W( c #6B4532", "X( c #7D4A39", "Y( c #B7765B", "Z( c #D3947C", "`( c #BB806B", " _ c #9B604E", "._ c #955F4F", "+_ c #3A2018", "@_ c #24120D", "#_ c #0A0706", "$_ c #080504", "%_ c #080605", "&_ c #161310", "*_ c #B7B8AF", "=_ c #ADAFA6", "-_ c #92938E", ";_ c #787C73", ">_ c #72786E", ",_ c #7F8280", "'_ c #8A8D8D", ")_ c #42433B", "!_ c #494B44", "~_ c #5B5D57", "{_ c #686C61", "]_ c #73766E", "^_ c #ACABAC", "/_ c #AAACA8", "(_ c #806D68", "__ c #513327", ":_ c #744734", "<_ c #BC7C61", "[_ c #D49981", "}_ c #D7A493", "|_ c #BB7D6D", "1_ c #C28B7A", "2_ c #462822", "3_ c #2E1811", "4_ c #180D08", "5_ c #060302", "6_ c #0B0606", "7_ c #0F0B07", "8_ c #191312", "9_ c #B8B9B8", "0_ c #BCBCB9", "a_ c #575A5A", "b_ c #4E5153", "c_ c #424343", "d_ c #373831", "e_ c #373734", "f_ c #30322B", "g_ c #2E2F2A", "h_ c #8F9090", "i_ c #45322B", "j_ c #533322", "k_ c #AA6C54", "l_ c #D59D88", "m_ c #DFB1A1", "n_ c #CC9384", "o_ c #BF8271", "p_ c #52322F", "q_ c #200F0C", "r_ c #150C07", "s_ c #070302", "t_ c #14100F", "u_ c #080606", "v_ c #050201", "w_ c #3F3C3C", "x_ c #53534F", "y_ c #595954", "z_ c #383837", "A_ c #403F3F", "B_ c #424241", "C_ c #474545", "D_ c #39393B", "E_ c #373835", "F_ c #56443F", "G_ c #341D12", "H_ c #7C4E39", "I_ c #C88A73", "J_ c #D89F8D", "K_ c #C68676", "L_ c #C08270", "M_ c #623F3A", "N_ c #180B07", "O_ c #110805", "P_ c #050100", "Q_ c #0E0B07", "R_ c #010000", "S_ c #222120", "T_ c #888985", "U_ c #ACABA8", "V_ c #7E746E", "W_ c #372218", "X_ c #573528", "Y_ c #925A45", "Z_ c #B7735F", "`_ c #B67360", " : c #BE826E", ".: c #5B3833", "+: c #180C08", "@: c #140906", "#: c #040000", "$: c #0A0705", "%: c #18130F", "&: c #16100F", "*: c #444545", "=: c #333530", "-: c #2E2C2C", ";: c #373433", ">: c #353434", ",: c #363635", "': c #4F504A", "): c #474945", "!: c #B2B2B4", "~: c #827C7B", "{: c #442B22", "]: c #492D1F", "^: c #5E392A", "/: c #84503F", "(: c #845041", "_: c #7E4F40", ":: c #3D231C", "<: c #1D0F0A", "[: c #0B0503", "}: c #070504", "|: c #0E0B08", "1: c #020100", "2: c #1D1A16", "3: c #4F4F50", "4: c #4F4F4E", "5: c #343333", "6: c #908D8B", "7: c #4A3226", "8: c #4B2F20", "9: c #4E3222", "0: c #543226", "a: c #47291C", "b: c #372013", "c: c #321C12", "d: c #190D07", "e: c #070301", "f: c #0A0504", "g: c #120D09", "h: c #181310", "i: c #100D0C", "j: c #0F0806", "k: c #5A5A5B", "l: c #3B3939", "m: c #6E6C6B", "n: c #686561", "o: c #5C5B5A", "p: c #604C41", "q: c #482B1A", "r: c #472919", "s: c #3E2416", "t: c #3C2719", "u: c #3F291C", "v: c #2F1D12", "w: c #0B0501", "x: c #080201", "y: c #0B0605", "z: c #130D0D", "A: c #120D0B", "B: c #17120E", "C: c #0F0B08", "D: c #060200", "E: c #33322E", "F: c #686968", "G: c #575959", "H: c #595B5B", "I: c #474949", "J: c #C4C4C3", "K: c #63605B", "L: c #A7A7A1", "M: c #9FA0A0", "N: c #ADADA7", "O: c #9D9E9E", "P: c #9B9895", "Q: c #736258", "R: c #726053", "S: c #655950", "T: c #41362E", "U: c #2E2117", "V: c #1D1008", "W: c #0C0401", "X: c #070100", "Y: c #1A120E", "Z: c #442F23", "`: c #3D291D", " < c #0D0807", ".< c #070502", "+< c #4F5051", "@< c #928980", "#< c #75675A", "$< c #898684", "%< c #71675E", "&< c #746B65", "*< c #6E6968", "=< c #696968", "-< c #615C59", ";< c #635D57", ">< c #161413", ",< c #3C3C3A", "'< c #6B6B69", ")< c #717373", "!< c #9FA099", "~< c #A8ABAB", "{< c #BCBDBE", "]< c #2B2723", "^< c #0D0502", "/< c #0B0502", "(< c #0E0503", "_< c #0C0706", ":< c #1C130D", "<< c #967356", "[< c #B68D6F", "}< c #5C5450", "|< c #56463B", "1< c #624430", "2< c #8A6753", "3< c #94715F", "4< c #64473D", "5< c #44332A", "6< c #968D84", "7< c #A49B95", "8< c #848585", "9< c #7C6D5F", "0< c #797168", "a< c #807D7D", "b< c #6F6660", "c< c #7B746E", "d< c #151710", "e< c #1B1B1A", "f< c #0D0505", "g< c #0A0401", "h< c #090201", "i< c #070201", "j< c #261B11", "k< c #A17C5D", "l< c #C7A78D", "m< c #7D7670", "n< c #BBA18C", "o< c #E9CDB9", "p< c #F3DCCF", "q< c #F6DFD3", "r< c #F6DFD5", "s< c #E2C8BE", "t< c #B2998E", "u< c #ABA19A", "v< c #797470", "w< c #7B7D7F", "x< c #656666", "y< c #1D1F1A", "z< c #686867", "A< c #302D2C", "B< c #090300", "C< c #060100", "D< c #050301", "E< c #291B12", "F< c #9D7759", "G< c #B6987E", "H< c #7F7977", "I< c #D5C2B4", "J< c #E5CEBF", "K< c #E8D1C4", "L< c #F0DACF", "M< c #F0DFD5", "N< c #F4E1D9", "O< c #EDD6CE", "P< c #DEC9BF", "Q< c #A99890", "R< c #80807F", "S< c #656566", "T< c #444040", "U< c #160F0F", "V< c #0A0301", "W< c #050000", "X< c #2A1C14", "Y< c #987358", "Z< c #9D7D67", "`< c #777370", " [ c #D3BEB3", ".[ c #DBC0B0", "+[ c #DDC6B7", "@[ c #E5CFC2", "#[ c #EDD9CF", "$[ c #EFDBD2", "%[ c #EFD9D1", "&[ c #F1DCD4", "*[ c #EBD4CF", "=[ c #AB9B95", "-[ c #7F8080", ";[ c #767672", ">[ c #1A1414", ",[ c #190D11", "'[ c #221316", ")[ c #271B1B", "![ c #170F0F", "~[ c #2C1F17", "{[ c #AA886F", "][ c #96786B", "^[ c #686262", "/[ c #C5AEA0", "([ c #CFAF9F", "_[ c #D3B3A3", ":[ c #D8BBAC", "<[ c #E2CBBD", "[[ c #E9D2C7", "}[ c #EED7CF", "|[ c #F1DAD3", "1[ c #F1DED7", "2[ c #E5CFC9", "3[ c #867F7B", "4[ c #6F6D6D", "5[ c #807F7D", "6[ c #1F1A1A", "7[ c #32292A", "8[ c #3F3336", "9[ c #260F13", "0[ c #2C1F1D", "a[ c #241916", "b[ c #0A0403", "c[ c #090301", "d[ c #0D0705", "e[ c #37271B", "f[ c #C8AB93", "g[ c #B59B94", "h[ c #776563", "i[ c #C4AB9B", "j[ c #D1B2A3", "k[ c #D3B3A4", "l[ c #D2B5A5", "m[ c #D9BEAF", "n[ c #E2C4B6", "o[ c #E7D0C6", "p[ c #E7DED9", "q[ c #E4DFDC", "r[ c #EBE6E4", "s[ c #A19494", "t[ c #131212", "u[ c #3D3533", "v[ c #392E2E", "w[ c #47383B", "x[ c #46373A", "y[ c #291316", "z[ c #2D1C1B", "A[ c #261A18", "B[ c #281A18", "C[ c #0F0605", "D[ c #080301", "E[ c #402B1D", "F[ c #D6B7A3", "G[ c #CFB7AF", "H[ c #A3928D", "I[ c #E4D0C6", "J[ c #E2CDC3", "K[ c #E0CABF", "L[ c #DAC0B4", "M[ c #DAB8AB", "N[ c #D7C0B7", "O[ c #D3D3D2", "P[ c #DADDDD", "Q[ c #D3CAC7", "R[ c #D1CDC9", "S[ c #515252", "T[ c #6D6765", "U[ c #43342F", "V[ c #473837", "W[ c #463635", "X[ c #3E3131", "Y[ c #2D1B1B", "Z[ c #291515", "`[ c #291B19", " } c #1E120F", ".} c #090202", "+} c #080302", "@} c #3C2919", "#} c #C9A189", "$} c #C1A497", "%} c #90857F", "&} c #DABDB0", "*} c #D3B4A7", "=} c #BE998A", "-} c #B28872", ";} c #C4A898", ">} c #BBBCBC", ",} c #C7C2BE", "'} c #E2CFC6", ")} c #E2C3BA", "!} c #DDBBAF", "~} c #DEBCAF", "{} c #AE9A93", "]} c #1F211D", "^} c #524B46", "/} c #4D3F38", "(} c #4A3836", "_} c #4A3736", ":} c #402B2A", "<} c #442B29", "[} c #2C1313", "}} c #2C1F1C", "|} c #1C100D", "1} c #090302", "2} c #070200", "3} c #0C0605", "4} c #39291A", "5} c #A27C64", "6} c #7D655B", "7} c #555251", "8} c #9E7D6E", "9} c #AB806B", "0} c #8F6552", "a} c #8F7461", "b} c #ADABA5", "c} c #D9BFB1", "d} c #F1DAD0", "e} c #F5E0D9", "f} c #F4DFD7", "g} c #F2DAD2", "h} c #DEBCB1", "i} c #695B53", "j} c #363737", "k} c #8B8986", "l} c #524F4B", "m} c #53443F", "n} c #49362F", "o} c #523933", "p} c #7E5C4E", "q} c #BB9D87", "r} c #624041", "s} c #1F0E0E", "t} c #342316", "u} c #99765B", "v} c #67534B", "w} c #B69E8E", "x} c #C5AC9A", "y} c #A78975", "z} c #9E9FA1", "A} c #C4AF9E", "B} c #E6CCBD", "C} c #ECD6CB", "D} c #F2DFD7", "E} c #F3E0D9", "F} c #EFD7D0", "G} c #E7C8BB", "H} c #A08878", "I} c #858686", "J} c #A0A19E", "K} c #777672", "L} c #5E4A42", "M} c #8A6752", "N} c #BD9983", "O} c #DABFAC", "P} c #E5CDB9", "Q} c #94675C", "R} c #250D0E", "S} c #1E1310", "T} c #0F0602", "U} c #0F0502", "V} c #0F0503", "W} c #130904", "X} c #3C291C", "Y} c #B58F76", "Z} c #7D6962", "`} c #636261", " | c #D1BCAE", ".| c #CFB7A7", "+| c #B49F8D", "@| c #A09E9D", "#| c #A59990", "$| c #D2B199", "%| c #DEC0B0", "&| c #E6CEBF", "*| c #EEDBD2", "=| c #EFDED4", "-| c #ECD4CA", ";| c #E7C8B9", ">| c #AF9585", ",| c #A6A8A6", "'| c #7C7978", ")| c #745C4B", "!| c #C4A389", "~| c #D5B7A3", "{| c #D6B59D", "]| c #AA816C", "^| c #2D1413", "/| c #1A0F0F", "(| c #0E0401", "_| c #120702", ":| c #100702", "<| c #1E130C", "[| c #503928", "}| c #C8A78F", "|| c #897770", "1| c #D5C2B3", "2| c #CBB3A4", "3| c #A7A09A", "4| c #A88A73", "5| c #C59F81", "6| c #D4B39D", "7| c #E0C3B3", "8| c #E8D0C3", "9| c #EDD3C8", "0| c #E7CFC2", "a| c #E3C5B3", "b| c #BF9E89", "c| c #818484", "d| c #676766", "e| c #797877", "f| c #78604D", "g| c #BA987C", "h| c #D5BAA6", "i| c #D0AD94", "j| c #BF9475", "k| c #6D4C3D", "l| c #321F1B", "m| c #110807", "n| c #160704", "o| c #190D05", "p| c #130702", "q| c #120703", "r| c #0A0200", "s| c #080502", "t| c #2A1B12", "u| c #5E432D", "v| c #CEAD93", "w| c #8F7C75", "x| c #D4BFB1", "y| c #C1AE9E", "z| c #9B8D84", "A| c #B18868", "B| c #C39D83", "C| c #D1AD96", "D| c #DCBDAB", "E| c #E6CBBC", "F| c #EACFC3", "G| c #E6CBBB", "H| c #DEBFAC", "I| c #C5A68E", "J| c #959393", "K| c #7A7671", "L| c #705541", "M| c #BB9779", "N| c #CBAB92", "O| c #C8A389", "P| c #896048", "Q| c #3F271B", "R| c #271710", "S| c #140907", "T| c #0F0705", "U| c #1E120A", "V| c #201208", "W| c #1E1009", "X| c #100703", "Y| c #0B0301", "Z| c #0A0502", "`| c #0F0804", " 1 c #2B1C12", ".1 c #694E35", "+1 c #CDAC91", "@1 c #947F75", "#1 c #C9B7A6", "$1 c #ABA198", "%1 c #929394", "&1 c #A3866D", "*1 c #BA9071", "=1 c #C3A188", "-1 c #D2B19D", ";1 c #DCBEAE", ">1 c #E6C9BA", ",1 c #E8CDC0", "'1 c #E0BFAC", ")1 c #C8A993", "!1 c #868482", "~1 c #8A8885", "{1 c #644F3F", "]1 c #A78064", "^1 c #C39A80", "/1 c #BB937C", "(1 c #563729", "_1 c #2E1C12", ":1 c #21140F", "<1 c #22150E", "[1 c #27170D", "}1 c #2A1B14", "|1 c #090200", "11 c #2D1D12", "21 c #785A43", "31 c #CCAD94", "41 c #958072", "51 c #BAAFA5", "61 c #8E847C", "71 c #916547", "81 c #B28968", "91 c #C2A085", "01 c #D3B5A1", "a1 c #DDC0B3", "b1 c #E5CABB", "c1 c #E7CCBF", "d1 c #E3C2B0", "e1 c #CEAE9A", "f1 c #8A8886", "g1 c #818182", "h1 c #A6A8A8", "i1 c #665143", "j1 c #997256", "k1 c #C1997F", "l1 c #9F7864", "m1 c #3E241B", "n1 c #29140B", "o1 c #3F291A", "p1 c #271B15", "q1 c #06070A", "r1 c #23150D", "s1 c #2A1C19", "t1 c #342319", "u1 c #805F43", "v1 c #C4A487", "w1 c #968172", "x1 c #6A4A3D", "y1 c #613621", "z1 c #96684D", "A1 c #BF977B", "B1 c #D1AF9B", "C1 c #DCBEAF", "D1 c #E3C8B9", "E1 c #E6CBBD", "F1 c #E6C9BB", "G1 c #E2C0B0", "H1 c #CEB19F", "I1 c #655247", "J1 c #A3795E", "K1 c #CDAD97", "L1 c #845F50", "M1 c #3D231B", "N1 c #2A140D", "O1 c #210B04", "P1 c #2E1912", "Q1 c #3F322E", "R1 c #3F3231", "S1 c #322423", "T1 c #20100E", "U1 c #150805", "V1 c #0C0301", "W1 c #150804", "X1 c #A28464", "Y1 c #D5C0AC", "Z1 c #817972", "`1 c #616563", " 2 c #907B72", ".2 c #512919", "+2 c #502917", "@2 c #70462F", "#2 c #AE8466", "$2 c #CCA991", "%2 c #D9BAAB", "&2 c #DFC4B5", "*2 c #E2C7B8", "=2 c #E2C3B4", "-2 c #E1BFAE", ";2 c #CDB09F", ">2 c #6C6158", ",2 c #9F795E", "'2 c #C09F8C", ")2 c #6B4A42", "!2 c #482B25", "~2 c #2E1813", "{2 c #1D0402", "]2 c #2E0F0A", "^2 c #574442", "/2 c #45353C", "(2 c #230D0E", "_2 c #1B0505", ":2 c #130402", "<2 c #0C0200", "[2 c #271910", "}2 c #61473B", "|2 c #C27C67", "12 c #D98E80", "22 c #936868", "32 c #8F9392", "42 c #876C5A", "52 c #6C4130", "62 c #4A2413", "72 c #58311E", "82 c #A07658", "92 c #C6A189", "02 c #D6B5A3", "a2 c #DCBDAE", "b2 c #DFC0B4", "c2 c #DFC0B1", "d2 c #DFBDAC", "e2 c #C6AE9E", "f2 c #A8ABAC", "g2 c #7A6E67", "h2 c #987359", "i2 c #B48F7C", "j2 c #6A4942", "k2 c #492D29", "l2 c #301B19", "m2 c #27090B", "n2 c #2C090C", "o2 c #48393F", "p2 c #301013", "q2 c #230504", "r2 c #210503", "s2 c #180201", "t2 c #110503", "u2 c #34221B", "v2 c #682F2B", "w2 c #B81B1B", "x2 c #D2191A", "y2 c #B5544E", "z2 c #97A39F", "A2 c #8A6162", "B2 c #B6958D", "C2 c #88685E", "D2 c #3C1B12", "E2 c #532D1B", "F2 c #A4785A", "G2 c #C7A18A", "H2 c #D3B2A1", "I2 c #DBBAAC", "J2 c #DEBDAF", "K2 c #DEBDAE", "L2 c #DCBAA8", "M2 c #C3AEA0", "N2 c #9B9D9D", "O2 c #79716C", "P2 c #926D57", "Q2 c #B28E7E", "R2 c #6E4B45", "S2 c #472E2A", "T2 c #331F1D", "U2 c #280609", "V2 c #391B1F", "W2 c #472F35", "X2 c #2C0205", "Y2 c #2C0202", "Z2 c #280202", "`2 c #1E0402", " 3 c #180805", ".3 c #170B06", "+3 c #2E120D", "@3 c #4E0705", "#3 c #A70D0D", "$3 c #C32823", "%3 c #A99488", "&3 c #968181", "*3 c #AA131D", "=3 c #E4463E", "-3 c #C9A9A4", ";3 c #452C2D", ">3 c #583121", ",3 c #B08265", "'3 c #C8A48D", ")3 c #DAB8A8", "!3 c #DCBBAB", "~3 c #DCBAAA", "{3 c #DAB7A5", "]3 c #C1B0A5", "^3 c #898A8B", "/3 c #6E6762", "(3 c #926E59", "_3 c #A78172", ":3 c #6E4E47", "<3 c #492F2D", "[3 c #331B1B", "}3 c #290305", "|3 c #5A4946", "13 c #614E53", "23 c #350308", "33 c #300002", "43 c #2D0202", "53 c #220603", "63 c #1F0D07", "73 c #25130E", "83 c #2F100D", "93 c #620602", "03 c #AB0D0B", "a3 c #AB5C52", "b3 c #95A7A0", "c3 c #9C2E3F", "d3 c #D00E18", "e3 c #D40D11", "f3 c #DD5C55", "g3 c #6C5960", "h3 c #64392D", "i3 c #B98E70", "j3 c #CEAB97", "k3 c #D4B3A3", "l3 c #DCB9AA", "m3 c #DCB9A8", "n3 c #DAB8A5", "o3 c #B5A69A", "p3 c #959798", "q3 c #79726B", "r3 c #7E614D", "s3 c #A5806E", "t3 c #815D54", "u3 c #482E2D", "v3 c #371B1B", "w3 c #492D2E", "x3 c #736E71", "y3 c #7B7176", "z3 c #4B1820", "A3 c #2F0504", "B3 c #280B06", "C3 c #29130F", "D3 c #392822", "E3 c #2F130D", "F3 c #7B0605", "G3 c #B02523", "H3 c #A19B92", "I3 c #9E6D6F", "J3 c #C8161F", "K3 c #DF1C23", "L3 c #DA181E", "M3 c #DB352E", "N3 c #8C6D71", "O3 c #76473D", "P3 c #C2977C", "Q3 c #D9B8AA", "R3 c #DCBBAD", "S3 c #DDBBAD", "T3 c #DAB7A7", "U3 c #A79A93", "V3 c #858688", "W3 c #909292", "X3 c #79726C", "Y3 c #7A5C48", "Z3 c #C19F89", "`3 c #987167", " 4 c #472929", ".4 c #422727", "+4 c #604548", "@4 c #5D3E43", "#4 c #775F5F", "$4 c #745C59", "%4 c #4C2524", "&4 c #3F1C19", "*4 c #341B18", "=4 c #45312B", "-4 c #493732", ";4 c #522D25", ">4 c #9F1C20", ",4 c #AF655F", "'4 c #9F9F93", ")4 c #B5323E", "!4 c #DF1B26", "~4 c #DE1F26", "{4 c #DA171B", "]4 c #E5574B", "^4 c #998889", "/4 c #845345", "(4 c #C79D84", "_4 c #D8B7A8", ":4 c #DCBDB0", "<4 c #E0BEB1", "[4 c #E0BEB0", "}4 c #DEBCAE", "|4 c #D8B5A5", "14 c #897F77", "24 c #707273", "34 c #808181", "44 c #8E6B53", "54 c #CDAC9A", "64 c #9A7269", "74 c #4A2C2C", "84 c #3B1416", "94 c #390205", "04 c #360002", "a4 c #3D0606", "b4 c #5B3632", "c4 c #634C47", "d4 c #5F4643", "e4 c #412A26", "f4 c #462923", "g4 c #3E211B", "h4 c #9A8172", "i4 c #BB958F", "j4 c #9B948F", "k4 c #AF958D", "l4 c #D88888", "m4 c #D0192E", "n4 c #CE0A0F", "o4 c #D62823", "p4 c #E9C6BF", "q4 c #968B8F", "r4 c #95604E", "s4 c #CAA18C", "t4 c #DCB9AB", "u4 c #E1C0B4", "v4 c #E2BFB4", "w4 c #E2C0B5", "x4 c #E1BEB1", "y4 c #CEAB9B", "z4 c #6C625C", "A4 c #757778", "B4 c #6E6865", "C4 c #99745E", "D4 c #B68E7E", "E4 c #7D5551", "F4 c #4F2F2F", "G4 c #3D1715", "H4 c #3B0305", "I4 c #3C0104", "J4 c #3C0202", "K4 c #400705", "L4 c #5D3933", "M4 c #503734", "N4 c #34100D", "O4 c #320302", "P4 c #3C0303", "Q4 c #64271C", "R4 c #9F9388", "S4 c #AC9084", "T4 c #D6B8B8", "U4 c #D15F6C", "V4 c #D87671", "W4 c #E2C9C2", "X4 c #E3E6E5", "Y4 c #7C5A5D", "Z4 c #9F6D57", "`4 c #CEA893", " 5 c #E1BEB3", ".5 c #E3C0B5", "+5 c #E2BFB3", "@5 c #C2A093", "#5 c #5B5552", "$5 c #807F81", "%5 c #787470", "&5 c #7A5A49", "*5 c #996E60", "=5 c #785149", "-5 c #5A3533", ";5 c #43211E", ">5 c #3D080A", ",5 c #400305", "'5 c #440304", ")5 c #430303", "!5 c #4A130D", "~5 c #724B42", "{5 c #521314", "]5 c #490205", "^5 c #490101", "/5 c #5F2519", "(5 c #A3A4A1", "_5 c #9F8A85", ":5 c #81554E", "<5 c #753733", "[5 c #AF958B", "}5 c #CCCDC8", "|5 c #C1A4AF", "15 c #602426", "25 c #B18668", "35 c #D4AE9D", "45 c #DFBAAD", "55 c #E3C0B4", "65 c #E2BCAF", "75 c #BC9F93", "85 c #63635F", "95 c #646759", "05 c #676863", "a5 c #726D6B", "b5 c #6E5043", "c5 c #855F50", "d5 c #A3786B", "e5 c #724A46", "f5 c #4A2724", "g5 c #3B130F", "h5 c #49090B", "i5 c #490202", "j5 c #4A0303", "k5 c #4A0502", "l5 c #855246", "m5 c #793B38", "n5 c #4D0205", "o5 c #4D0401", "p5 c #8F766B", "q5 c #A99D9F", "r5 c #642124", "s5 c #835348", "t5 c #622020", "u5 c #570F0E", "v5 c #986C63", "w5 c #B9A9A3", "x5 c #85505C", "y5 c #60291A", "z5 c #C1987C", "A5 c #DAB3A3", "B5 c #E2BDB0", "C5 c #E4BFB3", "D5 c #E2BBAF", "E5 c #DDB8AB", "F5 c #B89E92", "G5 c #6B6C65", "H5 c #686D4A", "I5 c #6D7254", "J5 c #818280", "K5 c #716E6C", "L5 c #5B4134", "M5 c #9B715B", "N5 c #D4B3A4", "O5 c #8C5F58", "P5 c #542F2C", "Q5 c #34130F", "R5 c #421A12", "S5 c #52130E", "T5 c #4F0B08", "U5 c #541914", "V5 c #6C423A", "W5 c #6C423B", "X5 c #521B19", "Y5 c #673B2F", "Z5 c #A7ADAA", "`5 c #87595B", " 6 c #490507", ".6 c #703F35", "+6 c #8A5249", "@6 c #560C0D", "#6 c #4F0C09", "$6 c #886258", "%6 c #653437", "&6 c #79422F", "*6 c #CAA189", "=6 c #DCB5A5", "-6 c #E2BBAE", ";6 c #E4BDB1", ">6 c #E3BDB0", ",6 c #DFB9AC", "'6 c #D7B1A1", ")6 c #B39F94", "!6 c #85867F", "~6 c #767D62", "{6 c #70765F", "]6 c #676865", "^6 c #737271", "/6 c #666760", "(6 c #62655A", "_6 c #65655A", ":6 c #696967", "<6 c #666363", "[6 c #5F4133", "}6 c #C69D81", "|6 c #D1AD9D", "16 c #A57265", "26 c #704642", "36 c #381713", "46 c #3F2D29", "56 c #6F625C", "66 c #5C3B35", "76 c #6A4A45", "86 c #4F211E", "96 c #360202", "06 c #340501", "a6 c #A39EA0", "b6 c #543231", "c6 c #522E29", "d6 c #552D29", "e6 c #51221E", "f6 c #541815", "g6 c #4F130E", "h6 c #71453F", "i6 c #5D352F", "j6 c #8C5A44", "k6 c #CEA68E", "l6 c #DEB5A6", "m6 c #E2BAAE", "n6 c #E3BBAF", "o6 c #E2B8AB", "p6 c #DEB5A7", "q6 c #CCA694", "r6 c #9C9289", "s6 c #ADB0AC", "t6 c #A0A69F", "u6 c #61625B", "v6 c #575751", "w6 c #545750", "x6 c #4A4C3F", "y6 c #686865", "z6 c #7E5D4A", "A6 c #D2AC91", "B6 c #BE8B76", "C6 c #C28F78", "D6 c #926057", "E6 c #441F1B", "F6 c #3D2B26", "G6 c #595C5B", "H6 c #402522", "I6 c #5A322E", "J6 c #45080D", "K6 c #360000", "L6 c #5E2B23", "M6 c #7E6365", "N6 c #5D393C", "O6 c #502929", "P6 c #360507", "Q6 c #300001", "R6 c #2B0000", "S6 c #3C0C07", "T6 c #4F2924", "U6 c #572D27", "V6 c #97654E", "W6 c #CFA48D", "X6 c #E2B9AB", "Y6 c #E3B9AB", "Z6 c #DEB3A4", "`6 c #DBAF9F", " 7 c #BF9A87", ".7 c #80817D", "+7 c #5B6153", "@7 c #68695F", "#7 c #66675B", "$7 c #5E6058", "%7 c #5B6050", "&7 c #606358", "*7 c #6C6E61", "=7 c #787B71", "-7 c #676561", ";7 c #99765F", ">7 c #C89A83", ",7 c #C28B70", "'7 c #DEB7A0", ")7 c #A67266", "!7 c #4A2420", "~7 c #43342D", "{7 c #565B55", "]7 c #503633", "^7 c #460D0F", "/7 c #3B0001", "(7 c #3E0301", "_7 c #97867D", ":7 c #9F8686", "<7 c #6C2D34", "[7 c #8C6D6D", "}7 c #480C14", "|7 c #340000", "17 c #3B0000", "27 c #440100", "37 c #290000", "47 c #330902", "57 c #A46E52", "67 c #D2A891", "77 c #DFB6A7", "87 c #E1B6A7", "97 c #DEB0A1", "07 c #D4A897", "a7 c #B3927F", "b7 c #4F4E4F", "c7 c #5E6158", "d7 c #585A55", "e7 c #535951", "f7 c #535952", "g7 c #64675C", "h7 c #60675C", "i7 c #575C55", "j7 c #535751", "k7 c #5A5A53", "l7 c #A47D64", "m7 c #C18E70", "n7 c #DDB79F", "o7 c #D8AC93", "p7 c #A26B5A", "q7 c #663E33", "r7 c #43332D", "s7 c #4F3F3B", "t7 c #4B1519", "u7 c #3A0000", "v7 c #643428", "w7 c #ADB2AF", "x7 c #6D2934", "y7 c #550708", "z7 c #8C473E", "A7 c #B0716E", "B7 c #C78480", "C7 c #D0908A", "D7 c #E09B95", "E7 c #E49F9E", "F7 c #592028", "G7 c #3A0D06", "H7 c #A57152", "I7 c #D5A891", "J7 c #E2B8A8", "K7 c #E4BAAC", "L7 c #E2B4A6", "M7 c #DAAD9E", "N7 c #D0A794", "O7 c #A3796C", "P7 c #A5A09F", "Q7 c #4A4C48", "R7 c #5A6057", "S7 c #5E615A", "T7 c #545755", "U7 c #4B4E4C", "V7 c #515951", "W7 c #595F58", "X7 c #606061", "Y7 c #605F58", "Z7 c #A67C60", "`7 c #DFB89E", " 8 c #E8C4AD", ".8 c #D4A488", "+8 c #D0AB94", "@8 c #794C44", "#8 c #473833", "$8 c #50504A", "%8 c #402223", "&8 c #653433", "*8 c #58100E", "=8 c #A38E84", "-8 c #96777F", ";8 c #430001", ">8 c #6C0F07", ",8 c #A86551", "'8 c #CAB1A3", ")8 c #D4C5BD", "!8 c #E6E1DD", "~8 c #EAE5E3", "{8 c #D8D0D1", "]8 c #68404A", "^8 c #532822", "/8 c #A16B4D", "(8 c #D6A98E", "_8 c #E2B8A7", ":8 c #E5B9AB", "<8 c #E1B5A6", "[8 c #D9AD9B", "}8 c #CC9F8C", "|8 c #7E5C53", "18 c #93908F", "28 c #41423B", "38 c #43463E", "48 c #61625F", "58 c #626560", "68 c #60635B", "78 c #545951", "88 c #505350", "98 c #575A57", "08 c #626663", "a8 c #787166", "b8 c #D5B098", "c8 c #EBCBB8", "d8 c #E5BDA8", "e8 c #E5C3AE", "f8 c #D0A897", "g8 c #7E4E45", "h8 c #4F3E37", "i8 c #413538", "j8 c #340B0D", "k8 c #825C53", "l8 c #A88E80", "m8 c #B0AEA6", "n8 c #71454A", "o8 c #A85B52", "p8 c #E7C8BF", "q8 c #E9E8E5", "r8 c #D8D0CC", "s8 c #DDD5D2", "t8 c #C5B1B2", "u8 c #633B3E", "v8 c #9C6347", "w8 c #D8A98F", "x8 c #E4BAAB", "y8 c #E4B8AA", "z8 c #DFB2A0", "A8 c #D7AE9B", "B8 c #CD8B7E", "C8 c #764A4A", "D8 c #4F5954", "E8 c #4D5049", "F8 c #484E47", "G8 c #494B48", "H8 c #474947", "I8 c #595757", "J8 c #626562", "K8 c #5B605D", "L8 c #A28878", "M8 c #E9C9B8", "N8 c #ECCEBF", "O8 c #EDD1C4", "P8 c #EDD5CA", "Q8 c #E1C2B7", "R8 c #9A665A", "S8 c #4D2C2C", "T8 c #2C0812", "U8 c #3C0C0D", "V8 c #896055", "W8 c #B6B1AA", "X8 c #A49490", "Y8 c #977670", "Z8 c #D2C3BA", "`8 c #D6D3CD", " 9 c #D5B7B6", ".9 c #CF717B", "+9 c #D14751", "@9 c #D94B50", "#9 c #E2575D", "$9 c #952E3E", "%9 c #401214", "&9 c #67372A", "*9 c #AE7451", "=9 c #DEB59D", "-9 c #E6C2B1", ";9 c #E3BBAB", ">9 c #DDB09E", ",9 c #D1AC96", "'9 c #D46263", ")9 c #9E3B42", "!9 c #4B5B55", "~9 c #515152", "{9 c #525354", "]9 c #545757", "^9 c #626661", "/9 c #616560", "(9 c #6C6E6B", "_9 c #717672", ":9 c #717370", "<9 c #717470", "[9 c #6C6D69", "}9 c #5D5D59", "|9 c #C5A18C", "19 c #EED0C3", "29 c #F0D8CE", "39 c #F0D9CF", "49 c #EBD3C9", "59 c #DBB9AD", "69 c #B07D71", "79 c #60312F", "89 c #620F18", "99 c #8E4E48", "09 c #B19F94", "a9 c #AFABA5", "b9 c #806163", "c9 c #C0A9A0", "d9 c #DCD6D2", "e9 c #CC7C8C", "f9 c #A70D1C", "g9 c #A80208", "h9 c #B90408", "i9 c #C6070B", "j9 c #CD0D13", "k9 c #5E0005", "l9 c #290100", "m9 c #AB714D", "n9 c #DBAF8F", "o9 c #E6C4B1", "p9 c #E7C7B8", "q9 c #E3BCAE", "r9 c #DAAD9B", "s9 c #CCA68E", "t9 c #DC7272", "u9 c #E36571", "v9 c #7D524F", "w9 c #4E5550", "x9 c #5A5D5B", "y9 c #686966", "z9 c #676C65", "A9 c #6F746C", "B9 c #7A8076", "C9 c #848582", "D9 c #7C7F7D", "E9 c #746B66", "F9 c #CEAB93", "G9 c #EDD1C5", "H9 c #EFD9CF", "I9 c #E7CFC6", "J9 c #D7B4A8", "K9 c #BD8E84", "L9 c #6C2927", "M9 c #790105", "N9 c #D48E86", "O9 c #C8CDC7", "P9 c #7B394A", "Q9 c #7A1A1D", "R9 c #EBE0D7", "S9 c #ECB4BF", "T9 c #D3192B", "U9 c #CA1016", "V9 c #CD1F1B", "W9 c #D83E36", "X9 c #DC3B3B", "Y9 c #D5131E", "Z9 c #6B0804", "`9 c #A7734F", " 0 c #ECCAB5", ".0 c #EFD3C8", "+0 c #EED3C7", "@0 c #E8C9BA", "#0 c #DFB8A8", "$0 c #D1A992", "%0 c #CF8977", "&0 c #EE6765", "*0 c #FABBC5", "=0 c #D93048", "-0 c #6B5952", ";0 c #58605B", ">0 c #545555", ",0 c #525253", "'0 c #787C78", ")0 c #6B6D6C", "!0 c #6C726D", "~0 c #71746D", "{0 c #5E6057", "]0 c #616258", "^0 c #7B7F70", "/0 c #888980", "(0 c #80847C", "_0 c #878A8B", ":0 c #8E8177", "<0 c #D2B19A", "[0 c #F0DBD2", "}0 c #F0DDD5", "|0 c #EFDBD3", "10 c #EBD7CF", "20 c #C69D94", "30 c #51120F", "40 c #B22C22", "50 c #E4CEC6", "60 c #A78D90", "70 c #590003", "80 c #E07768", "90 c #F0DBDF", "00 c #ED364F", "a0 c #EF2129", "b0 c #F5493E", "c0 c #F4E3DD", "d0 c #F68EA0", "e0 c #E9403E", "f0 c #DEA388", "g0 c #F0D4C6", "h0 c #F0D4CA", "i0 c #F2D7CD", "j0 c #EDD2C7", "k0 c #E4C2B4", "l0 c #D5AF9B", "m0 c #C89E84", "n0 c #D54943", "o0 c #F1332F", "p0 c #F4D4D3", "q0 c #F74064", "r0 c #A64A4C", "s0 c #61726B", "t0 c #6B6D66", "u0 c #6D726B", "v0 c #727470", "w0 c #59595A", "x0 c #5C5F58", "y0 c #666961", "z0 c #6C7168", "A0 c #70766D", "B0 c #747971", "C0 c #787C71", "D0 c #84857D", "E0 c #93948E", "F0 c #8F908B", "G0 c #747978", "H0 c #737F81", "I0 c #867870", "J0 c #D9B7A3", "K0 c #EED7CD", "L0 c #F0DDD4", "M0 c #F1DED6", "N0 c #EEDAD3", "O0 c #EEDBD3", "P0 c #E2C3BC", "Q0 c #8B1B18", "R0 c #DC9783", "S0 c #C7C4C3", "T0 c #71202D", "U0 c #B95A4E", "V0 c #F4EFE6", "W0 c #EFB0BF", "X0 c #E91C2C", "Y0 c #E81B21", "Z0 c #EC1F29", "`0 c #F6554F", " a c #F0D2D3", ".a c #EA6068", "+a c #E8B9A5", "@a c #F1D2C8", "#a c #EED0C6", "$a c #E5C7BA", "%a c #D8B3A1", "&a c #C99A80", "*a c #C78F71", "=a c #E44445", "-a c #EF292B", ";a c #F7BBAF", ">a c #FA98AE", ",a c #CC283C", "'a c #61615A", ")a c #70766E", "!a c #75776D", "~a c #767873", "{a c #7C807C", "]a c #7C807D", "^a c #A3A69E", "/a c #B1B3AB", "(a c #9A9B93", "_a c #8A8E80", ":a c #94958B", "b c #EF635C", ",b c #F1E6E4", "'b c #EDDEE2", ")b c #EFB4BA", "!b c #F0D4DA", "~b c #C16373", "{b c #7E857B", "]b c #8A8E81", "^b c #BDBEBD", "/b c #AFAFAA", "(b c #9FA09B", "_b c #959597", ":b c #8B898A", "c c #234770", ",c c #1B3F64", "'c c #000513", ")c c #7C6354", "!c c #F2DDD3", "~c c #ECD9D1", "{c c #DA8B85", "]c c #C53831", "^c c #BB8A86", "/c c #913E41", "(c c #DFCFCD", "_c c #E23B54", ":c c #EC2830", "d c #F3DFD7", ",d c #EFDED5", "'d c #F0DCD4", ")d c #E5CDC4", "!d c #A54940", "~d c #C1816E", "{d c #873643", "]d c #C39489", "^d c #E3ABBA", "/d c #D91829", "(d c #ED2930", "_d c #E52126", ":d c #EA8B7E", "e c #1D202B", ",e c #DBBEAD", "'e c #F0DFD7", ")e c #EFDCD4", "!e c #EDD9D1", "~e c #CFA99D", "{e c #B9AC9E", "]e c #AB848F", "^e c #752127", "/e c #EBEAE3", "(e c #DE8496", "_e c #DB2B31", ":e c #F04B4C", "f c #8B9294", ",f c #646E79", "'f c #4E5F72", ")f c #3A5578", "!f c #214069", "~f c #302D34", "{f c #DEC0AF", "]f c #ECD5CD", "^f c #EBD4CB", "/f c #EAD3C9", "(f c #E5CEC4", "_f c #B79D93", ":f c #B8B0AB", "g c #796057", ",g c #E2BBAA", "'g c #EAC8BC", ")g c #E7C5B7", "!g c #E7CBBC", "~g c #DCBBB0", "{g c #D1B8AC", "]g c #C2A097", "^g c #AC6E54", "/g c #C39A77", "(g c #B69983", "_g c #CEB2A5", ":g c #8F6853", "h c #F1D7CD", ",h c #EACCBD", "'h c #D7A07F", ")h c #E2B99F", "!h c #EDD2C2", "~h c #BA887A", "{h c #90634E", "]h c #DE695F", "^h c #EE3039", "/h c #F12935", "(h c #F02231", "_h c #EC2028", ":h c #F0ABA3", "i c #717B6C", ",i c #798275", "'i c #878E7F", ")i c #8C8F86", "!i c #949890", "~i c #2D3846", "{i c #142B46", "]i c #223C5C", "^i c #071C32", "/i c #051324", "(i c #01050D", "_i c #00050B", ":i c #0D2536", "j c #838984", ",j c #7F857D", "'j c #767D71", ")j c #768071", "!j c #828A7B", "~j c #898A85", "{j c #8A8E88", "]j c #989D97", "^j c #D4D4D3", "/j c #C9CCC6", "(j c #C6C7C0", "_j c #C8C9C3", ":j c #CFCFCC", "k c #CAC3BF", ",k c #AAADAB", "'k c #A3A6A1", ")k c #939592", "!k c #818481", "~k c #777B77", "{k c #787C77", "]k c #7B817B", "^k c #808480", "/k c #6D6B6C", "(k c #727474", "_k c #595B54", ":k c #6D6E6C", "l c #B4715C", ",l c #C38176", "'l c #B05B4D", ")l c #883B28", "!l c #C7896F", "~l c #F1CEC2", "{l c #E7AF9E", "]l c #E49D89", "^l c #EC7269", "/l c #ED2B34", "(l c #F01F29", "_l c #F2212B", ":l c #F87D7C", "m c #E9CDCD", ",m c #E9EFF0", "'m c #E9738A", ")m c #E62A40", "!m c #EC3649", "~m c #E72231", "{m c #C5322D", "]m c #D89B81", "^m c #C78B75", "/m c #B06147", "(m c #C77759", "_m c #CC8A75", ":m c #EBBDAF", "n c #41454B", ",n c #031324", "'n c #01141F", ")n c #221D25", "!n c #8B1F2C", "~n c #DC1E31", "{n c #DF182D", "]n c #DE0D1D", "^n c #E93C40", "/n c #F2BDC1", "(n c #F25F6C", "_n c #EA5A55", ":n c #CD715B", "o c #95978F", ",o c #757776", "'o c #B6B7B6", ")o c #ADAFA7", "!o c #A6AB9F", "~o c #999D8E", "{o c #8B9386", "]o c #889081", "^o c #878F7C", "/o c #7E8875", "(o c #808875", "_o c #7E8571", ":o c #767F6D", "p c #A3A49A", ",p c #A6A99F", "'p c #999E97", ")p c #939890", "!p c #8F938B", "~p c #898D85", "{p c #8D908B", "]p c #8F938F", "^p c #979894", "/p c #898A88", "(p c #8A8B88", "_p c #A0A69D", ":p c #ACAEA5", "

Q c #E1E5DF", ",Q c #ADC087", "'Q c #BCC89A", ")Q c #C4CDB0", "!Q c #B9C7A3", "~Q c #B3C499", "{Q c #ABBE87", "]Q c #A4B981", "^Q c #A5B881", "/Q c #A3B57C", "(Q c #9DB277", "_Q c #98AB6F", ":Q c #92A165", "R c #A8B37A", ",R c #A3AB76", "'R c #9D9F81", ")R c #989A81", "!R c #909279", "~R c #878877", "{R c #818174", "]R c #767574", "^R c #7E7E7C", "/R c #7F7F82", "(R c #999696", "_R c #8C8989", ":R c #9A9896", "S c #939493", ",S c #908E8E", "'S c #8D8B8B", ")S c #8C8D8F", "!S c #959697", "~S c #9D9A9A", "{S c #9F9C99", "]S c #A3A1A0", "^S c #9C9C9A", "/S c #989696", "(S c #948E89", "_S c #988F89", ":S c #978C82", " ; , ' ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ! ~ { { ] . . ) ' , ; > . . ^ / , , / ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . ( , , , _ . . . . . { : < < : . . . . . . > ; , ' ) . . . . . . . . . . . . . . . . . . . . . { : < < : . . . . . . ) ' , ; > . . ^ / , , / ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . ) [ . . . } ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . | 1 : : : 2 3 ^ } . . . [ ) . ; = . . = ; . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 : : : . . . . . . 5 : : : : . . . . . ) [ . . . } ^ . . . . . . . . . . . . . . . . . . . . 5 : : : : . . . . . ^ } . . . [ ) . ; = . . = ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . 6 7 . . . 8 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 : : : : a b 9 8 . . . 7 6 . c d . . d c . . . . . . . . . . . . . . . . . . . . . . . . . . . e : : a . . . . . . f : : : : . . . . . 6 7 . . . 8 9 . . . . . . . . . . . . . . . . . . . . f : : : : . . . . . 9 8 . . . 7 6 . c d . . d c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . g h . . . e i . . . . . . . . . . . . . . . . . . . . . . . . . . . # : : : : a b i e . . . h g . c j . . j c . . . . . . . . . . . . . . . . . . . . . . . . . . . a : : e . . . . . . : : : : : . . . . . g h . . . e i . . . . . . . . . . . . . . . . . . . . : : : : : . . . . . i e . . . h g . c j . . j c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . d 2 ) j k / l . . . . . . . . . . . . . . . . . . . . . . . . . . . # : : : : a b l / k j ) 2 d . m n 7 7 n m . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : 4 . . . . . . : : : : : . . . . . d 2 ) j k / l . . . . . . . . . . . . . . . . . . . . : : : : : . . . . . l / k j ) 2 d . m n 7 7 n m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . & k , h | . . . . . . . . . . . . . . . . . . . . . . . . . . . . # : : : : a b . | h , k & . . . o , , o . . . . . . . . . . . . . . . . . . . . . . . . . . . p : : : ( . . . . . . : : : : : . . . . . . & k , h | . . . . . . . . . . . . . . . . . . . . . : : : : : . . . . . . | h , k & . . . o , , o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . 3 q r r # . . | s t , , , , [ h ! u . . . . . . . . . . u ! v v v w : : : : a b . | s t x ! . . . $ h [ h b . . . . . . . . . . . . . . . . . . . . . . . . . . , : : y . . . . , : : : : : : : : : : a . . 3 q r r # . . | s t , , , , [ h ! u . . . . . , : : : : : : : : : : a . . | s t x ! . . . $ h [ h b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . 2 : : : z A | B : : : : : : : : : 1 [ d . . . . . . j C D : : : : : : : : : a b | B : : : D E . i F : : : ; . . . . . . . . . . . . . . . . . . . . . . . . . . G : : ~ . . . . , : : : : : : : : : : a . . 2 : : : z A | B : : : : : : : : : 1 [ d . . . , : : : : : : : : : : a . | B : : : D E . i F : : : ; . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . A H : : : I # J K : : : : : : : : : : D 2 | . . . . A I H : : : : : : : : : : a b J K : : : : # . 8 < : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . M : : N . . . . , : : : : : : : : : : a . A H : : : I # J K : : : : : : : : : : D 2 | . . , : : : : : : : : : : a . J K : : : : # . 8 < : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : : : : : : : : : ' + . . J O : : : : : : : : : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . P : : : P . . . . N a a : : : : : a a a e . # : : : : I # # I : : : : : : : : : : : : ' + . N a a : : : : : a a a e . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : : : : : : : : : Q v . . R f : : : : : : : : : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . w : : M . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : : : : : : : : : Q v . . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : S 2 T U S : : : : z . u Q : : : : V T T O f : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . ~ : : G . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : S 2 T U S : : : : z . . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : L b . . c H : : : D + o : : : : S x . . W O : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . y : : w . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : L b . . c H : : : D + . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : + . . . $ X : : : : # v : : : : Y | . . . s : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . _ : : : p . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : + . . . $ X : : : : # . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # v : : : : U . . . . Z : : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . 4 : : : . . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # o : : : : y ) . . ` .: : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . e : : a . . . . . . . . . : : : : : . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . . . : : : : : . . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # u Q : : : : 1 ..v +.@.: : : : a b # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . #.: : , . . . . . . . . . : : : : : ( . . . . # : : : : I # # I : : : : . . . . b a : : : : # . . . : : : : : ( . . . . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . e < : : : : : : : : : : : : a b # I : : : : # . , : : : : L . . Z * u . ! x $.n ... q { B %.&.*. .=.. . . ( : : : 4 . . . . . . . . . y : : : : ~ p N , . # : : : : I # # I : : : : . . . . b a : : : : # . . . y : : : : ~ p N , . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . i -.: : : : : : : : : : : : a b # I : : : : # . , : : : : L . g ;.;.[ . >.,.3 '.X @ U h ).8 !.~.- {.. . . p : : : ( . . . . . . . . . G : : : : : : : a . # : : : : I # # I : : : : . . . . b a : : : : # . . . G : : : : : : : a . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . . * y : : : : : : : : : : : a b # I : : : : # . , : : : : L . c + u G ~.I 7 . . K 9 L # . ].Z . A z . . . , : : #.. . . . . . . . . . 4 : : : : : : : #.. # : : : : I # # I : : : : . . . . b a : : : : # . . . 4 : : : : : : : #.. # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . # : : : : I # # I : : : : . . . . b a : : : : # . . . ! n : : : : : : : : : : a b # I : : : : # . , : : : : L . Z Y ^.8 | Y h . # O J L # . 6 /.3 s 1 . . . a : : ~ . . . . . . . . . . . w M : : : : : M . # : : : : I # # I : : : : . . . . b a : : : : # . . . . w M : : : : : M . # I : : : : # . , : : : : L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . A T T T T ; A A ; T T T T . . . . + , T T T T A . . . . . # r T T T T T T T T , + A ; T T T T A . v T T T T r . . . . . . A C , c 7 . r A . 3 , n (.I . . . : : : N . . . . . . . . . . . . ( 4 , , w p . . A T T T T ; A A ; T T T T . . . . + , T T T T A . . . . . ( 4 , , w p . . A ; T T T T A . v T T T T r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . _.w # g { . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .., h b . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", ". . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ", "W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W W ", ":.<.:.$.[.j %.<.}.Z |.1.2.3.4.4.5.6.7.8.p 9.9.= 9.9 9._.0.[._.a.<.%.# <.<.b.b.c.6.m (.d.# P e.f._.g.:.h.i.j.k.l.7.m.n.o.p.p.q.p.2 2 2 p.r.p.q.s.p.t.u.v.w.x.o.y.{ z.A.B.B.C.B.D.E.F.G.H.I.J.K.8 L._ L.M._ L.N.O._ P.Q.R.S.T.U.V.W.X.Y.Z.`.7.g +.+++7.;.c.@+4.#+$+%+&+*+=+-+;+>+e.3.= ,+'+] 0.)+e.:.b.|.<.b.P m .!+s.s.p.p.{ { r.s.{ r.v.~+{ v.v.^.q.F {+]+5 y 5 5 5 ]+1 {+{+{+{+1 ]+]+]+]+]+]+{+1 ]+]+1 ]+]+1 1 1 ]+]+]+]+]+]+]+^+^+{+{+{+]+1 {+1 {+{+{+]+/+(+_+F y _+F F :+y y :+y :+:+F F F _+_+<+y y :+y ^+{+{+]+]+]+y y 5 y 5 y ]+]+]+{+{+1 ]+]+5 F [+}+|+_+_+_+_+<+_+<+1+2+3+4+-.1+y 5+6+5+5+5+5+5+5+6+5+5+5+6+6+5+5+5+5+5+5+5+5+5+5+5+5+6+^+7+}+8+_+1+-.1+-.4+1+1+1+<+1+4+4+", "9+% ` 0+}.a++ 3 & $ b j 9 P '.b+p ! p c+q 0 W d+b+^ W j 9.o j $ b ( ( ~.b e+` 7.f+_ ~.b ( ` g+` j ] b h+i+j+b k+l+m+n+>.a a O a o+a p+a 2 q.!+o.q+r+s+t+u+v+w+x+y+y+y+z+z+A+y+B+w+C+D+E+F+G+H+r.I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@+@@@#@$@%@&@*@=@-@;@>@,@'@)@!@~@{@]@7 P j @ + ! )+^@^@|.d ~.( a+E e+~.P $.!+q./@/@p.p.2 /@p.p.s.p.2 p.r.{ ^.o.6+M (@(@_@(@:@:@:@M M M M M M M M :@M M M M :@M M :@M M M M :@<@<@<@<@<@:@M Q Q M M M M M M M M Q M [@}@5+|@1@V V V V _@_@V _@|@1@V |@1@|@1@_@_@V V V 2@3@Q M (@:@:@_@V 1@V <@(@M M M M M M <@_@5+|@V 1@|@|@|@6+|@|@6+{+y ]+{+^+6+M 3@3@3@3@3@3@3@3@3@3@3@3@3@2@3@3@3@3@3@4@4@4@4@3@3@3@2@5@6@7@5+6+6+^+{+{+^+^+^+1 ^+6+{+1 ", "A d A 0+}.~.+ ( ).W % e+|.o W j N _.j ;.) J $ d+@ # @ :.s }.j W b ~.3 b % ` 9+..f+_ ( u 8@` & A j h b % 9@0@a@b@c@d@e@>.a a !+f@w+g@h@i@j@k@l@m@i@n@o@p@q@x+r@x+y+s@y+z+z+A+y+t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@J@K@L@M@N@O@P@Q@P@R@S@T@T@U@U@V@W@X@Y@Z@Z@`@ #.#+#@###f.$#%#,@&#*#=#-#s i )+v f+>+= j '.W $ W b+b+_ ^ ;#o.o.p.2 /@2 s.p.s.p./@/@/@s.{ r.~+s.5 M <@<@_@(@:@_@(@:@M M M M M M M :@M M :@M M M :@<@M :@<@(@<@(@(@(@(@<@<@M Q M M :@M M M M M M M [@|@5+5+|@_@V _@(@_@V 1@|@1@_@1@5+|@V _@_@(@(@_@_@2@3@Q Q M <@<@(@_@_@V _@<@<@M M <@M M <@6+5+>#|@1@V 1@|@|@|@6+^+5 ]+6+6+6+V 3@3@3@3@2@2@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@4@4@4@3@2@2@,#1@_@'#6+6+^+{+^+6+6+^+{+]+{+6+1 {+", "J )#).0+!#E 8@( 9+J b ` W j ^ P ) [.% Z o A _ W b+%.d+s r = j W b ~.a+b d 9+` 1.f+J a++ + ` _ A <.~#b % $ {#b ]#^#/#(#>.a p+_#:#:#r@:#r@q@<#[#}#r@B+o@|#q@x+:#q@x+y+y+1#1#A+2#3#r.4#5#6#7#8#9#0#a#b#:+c#d#e#f#g#h#i#j#k#l#m#n#o#p#q#r#s#@#t#u#v#w#x#y#z#A#B#C#D#E#F#G#H#I#J#~#h ,@2.f.=#,@5.v 4.) =#0.-#=.[.[.s [._.= g K#>./@/@/@p.p.s.p.o./@2 s.s.r.r.~+{ F M <@_@_@(@:@_@(@:@<@M M M M <@(@:@:@:@:@M M :@:@<@<@_@<@(@_@_@_@_@(@(@:@Q Q M M M M M M M M L#M#N#6@O#_@(@V _@(@_@_@V V V V 5+1@_@(@(@_@(@_@_@_@Q 3@3@Q M M M _@_@_@_@_@_@<@M Q M :@<@<@6+6+|@V V 1@1@|@|@5+^+]+{+6+6+6+5+M 3@3@3@3@2@2@2@2@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@P#Q#V |@6+6+1 1 ^+6+^+^+1 {+{+^+6+{+^+", "j 9+g+c a.b 3 3 9+J E ` g+# J j N - j J & ` A J J d+^ )+R#S#j W % E ~.b ` A 9+T#s J a++ 8@` _ ).P m E e+b+& d A f.U#V#W#X#Y#Z#:#[#r@:#:#q@`#[# $:#r+.$v+q@x+:#q@x+x+y+1#1#z++$@$i@#$$$%$&$*$=$-$;$d.>$,$'$)$!$~${$]$^$/$($_$:$<$Z [$}$|$1$2$3$4$5$6$7$8$9$0$a$b$,@i c$d$j 7 :.b.<.%.0 u S#-#}.!#^ 8@+ ( E b )#` A b % 9+q <$a /@2 s.2 s.2 /@2 2 r.s.r.r.r.~+~+2+M (@(@(@<@(@V <@:@M M M M :@:@:@:@:@M :@:@:@<@(@(@<@<@(@_@_@_@V _@(@(@M Q M M M M M M M M P#P#e$f$g$h$i$_@_@_@V (@_@1@1@|@1@_@_@_@_@_@(@<@(@_@M 3@2@2@Q M Q M <@:@_@_@_@(@M M M M M _@j$6+7@k$5+|@|@5+6+6+^+6+6+6+6+5+_@3@3@2@3@3@3@2@Q Q Q 3@3@3@3@3@3@3@3@3@3@3@3@3@3@2@2@M 1@g$|@6+^+5 y 1 ^+^+^+{+{+{+^+^+6+^+6+", ":.9+` c ^@3 + + e+A ( d 9+f.@+d l$;.<$f+b e+)#A A _ J =.r = j $ b E a+b ` A ` 8.[.J a++ + 9+_ g+7 N b d @ J ` A 2.,@m$!+n$[#o$:#[#:#:#:# $r@p$ $:#q$r$v+q@q@:#q@x+x+s@1#1#1#1#A.s$t$u$v$P@w$x$y$W@z$A$B$C$D$E$F$G$H$M I$J$K$L$M$N$O$P$Q$R$S$T$U$V$W$X$Y$Z$T@`$ %.%k +%@%m ~#] 2.4.=#=.o 4 6.=.= j 0 $ 0 0 J 0 0 d 3 9+J 9 0 m { a s.s./@o.2 p.2 s.p.s.r.r.v.^.Y #%<@(@(@_@_@(@<@:@:@M M M M M M :@M :@:@:@:@:@<@<@<@(@V 1@V _@_@_@_@_@<@M M M Q M M M M M $%%%&%5@5@*%V =%-%(@(@(@V V V V V V 1@_@_@(@(@_@_@_@M 4@Q M 3@Q M M M M <@_@M M M M M M M _@;%7@>#6+|@1@5+6+6+6+6+6+^+6+5+6+:@3@3@3@3@Q 3@3@Q M M Q 2@2@2@3@3@3@3@3@3@3@3@3@3@Q M 5+|@>%6+{+1 5 1 ^+6+6+{+{+^+^+^+^+^+6+6+", ",%'%@++., N ,.6.,.h - ^@g+S#)%# , ,%!%@+^@}.i i 7 7 <.=#r 3.i # ` d E b )#9+)#T#>+g++ ~%~%% ` d j ~#~.b j ^ )#A ,.5.^.!+{%]%^%/%[#:#:#r@ $:#[# $r@(%_%|#:%<%:#q@}#[%}%<%1#v+|%A+p.1%2%3%4%5%6%7%8%9%C+0%a%h#b%c%d%e%f%g%h%i%j%k%l%m%n%@#t#o%p%q%r%s%t%u%v%w%x%y%z%A%B%2.~#~#] 5.,.f.f.4 v 2.6._.s =#)+q q =.[.s 9 }.S#_.s S#Z 5.].o+p.2 o.2 s.p.p.p.p.s.p.p.{ ^.G C%_@<@_@_@<@:@<@_@M M M M M :@M M :@:@:@M :@:@<@(@_@1@V V _@_@(@(@_@(@M M M M M M M M M M D%e$e$_@|@E%,#*%(@_@V _@_@_@V _@V _@<@:@(@(@_@_@_@M 3@3@M M 2@Q Q M M M :@<@M M M M M F%h$G%*%|@1@V |@5+6+6+6+5+6+6+6+6+|@3@3@2@2@3@2@2@3@2@2@M M Q Q 2@3@3@3@3@3@3@3@3@2@2@M O#O#5+6+6+{+1 ]+^+6+6+^+{+{+{+^+^+^+^+6+6+", "~+r.s.~+p.p./@2 r.s.r.g.b.<.H%Z k , p I%o.s.{ K#*.m$v.{ r. .J%T K%{./ &.0+; L%+.&.M%'%;.8.;.g.T#w > )+3.v 9 J A 2.f.{ O !+!+O [#N%[#[#:# $:#[# $r@z@s+O%P%q@:#`#Q%R%S%T%U%V%W%X%Y%Z%`% &.&+&@&#&$&%&&&*&=&-&;&` . >&,&'&)&!&~&{&]&^&/&6.) =#(&_&:&<&[&}&|&1&2&3&4&P ~%3 b.:.7 :.b.|.b+8@= b.)#% b a+` % E % )#` d E d _ _.b+$ a.# '%2 a /@2 2 2 p.p.2 s.2 2 { v.~+G O 1@:@_@(@:@:@_@:@M M M M M :@:@M M :@:@:@<@(@(@_@_@_@V _@_@(@<@(@(@(@M M M :@:@M M M P#e$5&6&(@V *%6&h$5@=%_@(@_@_@_@_@(@(@(@(@<@(@_@_@_@M 3@2@Q M M M M Q Q M <@:@:@M :@M M P#>#|@V 5+_@V |@6+6+1@5+6+6+5+6+^+<@3@3@2@2@2@2@2@M Q 2@2@Q Q 2@M Q 3@3@3@3@3@3@3@2@Q 7@O#7&5+6+1 {+{+6+6+6+^+{+^+^+^+^+^+6+^+6+6+", "v.v.r.s.s.{ r.r.{ p.{.e ,%^@6 -#5.R#i r o.a o.p.p.!+O O O O O 8&O 9&9&9&9&9&0&O 0&a&K b&K C%b&X a&0&a U L } 0+c&(.I%G r.s.o.W#o+d&e&d&f&r@[#g&r@:#2&h&2#}#}#i&:#j&k&l&m&a 2 Y%A+n&o&p&q&r&s&t&u&v&w&x&y&z&A&B&C&D&E&F&G&H&I&J&K&L&M&N&*#4 O&5.v P&Q&R&S&T&U&V&W&] :.u b o Z !#!#i P ^ ( b.W # %.J a+a+e+( 3 % % ( 8@~.` 3.` ` = ` ( s T !+/@/@p.s.p.p.s.2 2 r.{ { v. .q.6+:@_@_@:@M :@:@:@M M M :@M M M M <@<@<@(@_@_@_@V _@_@_@_@(@_@_@_@(@M M M M :@M M M M <@:@X&Y&V 5@Z&`&(@<@_@_@(@(@(@(@(@_@<@(@_@_@_@_@<@3@2@2@M M M Q M Q Q M M M :@<@<@:@<@Y$7@V _@_@1@|@5+|@5+5+5+|@5+6+1@2@3@2@2@2@2@3@2@M M Q 2@2@Q 2@2@M Q 3@3@3@3@3@3@ *_@.*7&5+6+6+^+{+6+{+^+^+{+^+^+6+6+^+^+6+6+6+6+", "~+v.v.^.m$^. .^.v.s.L J%U '%L%c.;.; N c a q.o.q.o+o+q.o.o.o.a q.q.o.^.q.o.a >.q.a q.a a o+o+a o+>.o+o+o+s.G Y Y K#K#+*].@*].Y #*{ $*w.p.%*&*g@**i@q$=*-*;* $>*i&,*g.'*)*!*%*W%s.~*{*]*^*/*(*_*:*<*8@[*+ }*|*1*2*3*E%4*5*6*7*8*9*0*a*O#b*c*O&d*e*4&f*g*h*i*j*k*l*,@7 l b o !#^@o :.b.@ 8@& Z 7 7 @ % 8@b 3 d 9+a+E e+E ).p b 9+= ).b ( d+> >./@2 q.q.2 s.p.p.r.s.p.r.~+G p.5 :@V _@<@M M <@M M M :@:@:@M M :@<@<@_@_@_@_@V _@_@_@_@_@_@_@_@(@:@Q M M M M :@M M m*n*o*p*Q#q*r*s*<@<@(@<@<@<@<@(@_@_@_@_@_@_@_@_@_@M Q M M M _@M 2@Q M M M M M M M :@(@5+Q#>%|@1@|@|@V 1@|@5+1@|@6+6+(@3@3@2@Q 2@2@2@2@Q M M Q 2@2@2@3@3@Q 2@3@3@3@3@2@(@>#t*6+{+^+6+^+^+1 {+^+{+{+^+^+6+6+^+6+6+^+{+1@", "^.s.{ ~+v.{ ~+v.p.s./@2 p.o.s.m$[.r o+q.a o.o.q.o+o+a a o+o+!+q.a a o.q./@q.q.>.a q.o+q./@o.a q.o+!+s.U c r.s.Y .Y G K#U *.K#K#m$ .Y ^.v.v.u*v*{ Y T .^.{ 2#Y%w*x*y*z*q./@o.2 q+A*B*C*D*E*F*G*H*I*J*( K*L*M*N*O*P*Q*R*S*T*U*F&x&V*W*X*q*Y*Z*`* =.=+=@=#=$=%=_.,.P u b o ^@o i 7 <.@ + %.9 # 9+% b ( + ( d b ( % e+a+9+9 d e+! A b e+E e+..{ q.q.>./@p.2 2 s.r.o.a v.^.Y v.<+:@_@_@(@<@:@(@M M :@:@:@:@M M :@(@_@(@_@_@_@_@_@_@(@(@_@_@_@(@(@M Q Q M M M M M M <@e$[@Y&&=*=s*==(@<@<@<@<@<@_@_@_@_@(@(@(@_@1@_@Q M M M M <@_@M Q Q Q M M M M M M (@5+1@6+5+1@1@V V 1@1@1@5+5+6+5+Q 3@3@2@Q Q 2@2@2@2@Q M M Q 2@3@3@3@3@2@2@3@3@2@-=Q#>#;=^+{+^+{+{+{+{+6+{+{+{+^+^+^+^+^+6+^+^+_@>=", "o.v.~+v.~+m$m$~+{ { r.r.{ s./@2 ,=n o.q.o.q.o.q.q.q.q.q.o+>.o+a >.>.o+o+o.o+o+a q.a O o+q.q.o+o+o+6 !#$ 0 5.'=r. . .K# .K#*.U L U K#K#J%K#G G G G G G K#K#K#G . .J%)=!=U U Y .r.~={=]=^=/=(=.$_=:=<=[=}=|=1=2=3=4=5=6=7=8=Q#9=0=&#a=b=c=V#U$d=e=f=g=h=i=j=q.~#;.Z ( )#7 }.i 7 b.|.b++ W i J + 3 a++ ~%u 8@a++ a+b 3 d ! e+E }.d ~.b % b ( 9.+.>.2 p.s.p.2 p.r.r.2 r.{ ^. .^.k=:@(@_@_@<@<@<@M M M (@(@M M :@<@(@<@<@_@_@_@_@_@(@(@_@_@(@_@_@:@M M M M M M M M :@l=,#h$Z&==5@5@:@(@_@<@:@(@(@(@(@(@(@(@_@V _@(@2@Q M M M :@:@_@:@M Q Q Q Q M M M _@5+1@1@1@1@V V 1@V |@6+6+6+5+(@3@2@2@3@2@2@2@Q 2@2@3@2@Q Q 2@3@3@4@3@3@2@2@3@<@7&7&6+6+6+{+1 ^+{+^+^+^+{+{+{+6+6+^+{+^+6+6+(@m=n=", "6+r.m$r.s.p.{ ~+v.2 p.2 s.p./@/@>.o.{ o.a o+q.a q.o+a o+o+O >.>.o+a /@>.O s.r.p.q.o.o.a o+o+q.0&o=e+b 3 ( ~%j +*G .Y ^.m$J%G *.+**.m$K#*.T T *.*.Y U J%G K#Y . .Y .G L ].n +.L T p=q=r=s=t=u=u@v=w=x=y=z=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=P=Q=R=S=_@_@T=U=4*b&z !+)%m h ,.6.) =#q f+s 9 a.p a.}.o j %.^ b+@ @ $ J & g+J |.d 9+'.9+)#d d d e+a+$ l$a /@p.p.s.2 2 r.{ p.p.{ ~+m$G #.<@<@(@_@(@<@<@:@M :@<@<@:@:@(@(@_@(@_@_@_@_@(@_@_@V V _@(@(@:@M M M M M M M M M V=<@_@W=h$V=(@V 5+_@_@(@(@<@<@(@_@(@_@_@_@_@(@2@Q M M M M M :@:@:@M Q 2@2@2@Q M _@|@|@1@V _@_@1@V 1@6+6+5+5+5+M 2@Q 3@3@3@3@2@2@3@3@3@2@2@Q Q 3@3@3@3@3@2@2@<@6+O#5+5+6+^+1 ^+1 1 ^+^+6+^+{+^+6+^+^+^+6+6+-=X=Y=` ", "2@3+Y { { r.r.r.{ 2 p.p./@p.2 o.p.s./@~+r.q.q.q.a >.>.o+>.>.O O >.>.o+!+9&/@q./@o+o+q.2 o.o+o+/@!#E ).g+d E 8@N r.m$Y ^.~+m$Y Y G G K#G .K#*.J%Y m$K#T +*J%U *.J%U J%K#U T } ,=/ $.Z=].T J%G ~+x.`= -.-+-@-#-$-$-#-%-&-*-=---;->-,-'-)-!-~-{-]-^-/-(-y _-M :@<@M #.} 0+,%, ;#R#x*H%k ;.T#1.N m 5.,@,.6.4 =#0.-#[.[.>+S#= ^@o P b.<.j |.%.%.# b+d+g v.O o.2 o.2 s.{ r.r.r.{ v.^.U C%(@<@_@_@(@<@_@:@:@(@(@(@<@(@(@_@_@_@_@_@_@_@V |@1@V _@_@_@:@M M M M :@M M M M <@_@==:-5@(@1@]+5+<@<@<@<@(@<@(@_@_@_@(@_@_@_@2@2@M M M M M M :@:@M 2@2@2@2@2@:@5+V _@_@_@_@1@1@1@6+5+|@|@6+V 3@2@Q 2@2@3@3@2@3@3@3@3@3@3@2@2@3@3@3@3@2@Q 6&X$6+5+|@5+{+]+1 1 5 1 {+^+6+^+^+^+6+6+6+^+6+:@<-[-_ _ ", ":@M }-G ^.^.~+v.r.2 s.v.{ { v.p.p.p.o.s./@2 /@o.o.a >.>.a q.o+>.>.>.!+!+!+!+O /@q.o+>.o.2 q.9&> )#)#)#e+E ~.+ <.o.^.G ~+~+^.~+m$ .K#J%G ^.^.v.v.~+{ ^.K#U G J%*.+*+*J%K#U J%T +*L n K%|-n ~ } K%U U 1-/@2-3-4-+-%-5-6-%-#-7-8-9-0-a-b-c-2 d-f$e-f-g-_$h-9&4*6+M 2@_+{.L%c+, 6 d.i-r w k @+1...N ~#h 5.f.v 4.4 =#) 6.=#0.)+e.! Z ^@}.o i :.7 P o o %.=.n 9&o.o.p.r.r.{ r.r.s.r.v. .K#O _@M _@_@_@(@_@<@:@<@(@_@_@_@_@_@_@:@(@_@_@|@5+1@V _@_@<@:@M M Q M M M M M M M <@:@5@E%V V 6+5+M :@(@(@(@(@_@V _@(@_@_@_@_@M 3@2@Q M M M Q M M M Q 3@3@2@2@<@|@_@(@(@_@_@V |@6+|@1@5+5+5+M 3@3@2@2@3@3@3@3@3@3@3@3@3@3@3@3@3@3@3@2@Q M >%6+5+5+6+1 y y y 1 ^+{+{+^+^+^+^+^+6+6+^+5+V j-k-l-m-9+", "<@M _@o.m$v.r.r.p.2 p.s.s.2 2 p./@a q.q.a v.q.q.a q.a o+o.o.a a o+>.a >.!+O o+!+a q.a o.o+a >.L%i-; e.6.7.[.( ).{ o+2 .^.^.^.m$ .Y m$ .G ^.m$m$m$m$m$m$~+ .*.J%].{.~ U Y G K#Y Y Y Y K#T ].L J%+.Z=T U ^.n-o-X p-q-%-r-s-r-%-5-t-u-v-w-x-9#+*a&y-7@S=z-@*+.K#!+1+_@A-> o=R#R#'%x*w H%g.@+g ..7.~#h 5.2.6.4.) - ) )+=#>+d+` J !#}.:.7 P b.j <.i :.7 |.o B-o+a s.s.p.r.r.{ r.r.v. .m$U a 5+M _@V V (@(@<@(@_@_@(@(@<@<@<@(@_@_@V |@_@V V _@(@(@<@<@:@M M M M M M M M M M <@)-7&_@V |@(@(@_@_@_@_@_@_@(@_@_@_@_@_@M 3@3@2@2@M M M M M M M 2@3@2@M (@1@V _@_@_@_@1@5+|@1@5+6+6+V 3@3@3@2@2@3@3@3@2@3@3@3@3@3@3@3@3@3@3@3@3@F%)-G%j$5+6+]+:+:+:+{+{+{+^+^+6+^+^+{+{+6+6+1@]+[ J '.^@b+0 ", "<@M 2@1 ^.m$s.s.r.r.p.p.p.2 p.s.p.2 /@/@2 /@2 2 >.>.>.o+q.a q.o+o+!+o+q.q.>.>.>.a o.o./@o.a C%C%4+-.2+I L 5.~%A { 9&q. .m$~+ .^.^.m$~+~+m$G m$~+~+ . . .Y K#K#*.J%K#+*U G Y Y . .^.m$m$^.m$Y m$K#+*L ].J%J% .{ 2 C-D-E-h$h$F-G-%-#-H-I-J-K-L-M-/ N-1+_@]+8&K#} |- .!+,=L%O-w ;.;.;.g.;.@+T#..7.~#5.,.2.v 6.4.=#=#0.4 !#~%. . + A i o P j j j b.b.j b.j ^ N r.a p.2 r.s.r.{ s.v.m$^. .G s.{+M (@V 1@<@_@<@_@_@(@<@:@:@<@_@_@_@1@V _@_@(@(@(@(@(@(@<@M M M M :@:@M Q M M M _@P-*%Q-5+|@V _@_@_@(@<@_@_@(@(@(@_@_@M 3@3@2@2@2@M M M Q Q Q 2@3@2@M _@|@V V _@_@V |@5+5+6+6+6+5+:@3@3@3@2@2@2@3@2@2@2@3@3@3@3@3@3@3@3@3@3@R-E@!-g$|@^+]+:+:+:+{+6+^+{+6+^+^+{+^+^+^+6+_@F S-T-U-V-9 p _.", ":@M M 2@2+~+~+2 2 2 2 /@/@p.p.p./@o./@2 2 o+o./@a a o+a o.a q.q.a o+o+o+o.q.>.>.>.!+s.p.!+F M :@:+K #.o+/ 6.J 9+Y 0&o+9&2 m${ v.v.~+^.^.v. .~+s.v.^.~+^.m$^.m$U Y m$Y .K#G G U K#G K#G G U T U K#K#L ].*.L T J%Y +.~=w.W-X-7&W=Y-Z-`-#-%-&- ;.;+;@;&.J%3+{+|@3+s.{.<$B-6 B-I%6 ;.N N 1.g T#..N ~#5.2.2.f.6.) =#q =.q = ( | u . u i Z }.7 P P b.|.%.j j ^ J 3.n >.p.s.s.s.r.p.p.~+m$^.m$K#^.:+Q <@_@1@(@(@<@<@<@:@<@_@<@<@(@_@_@(@_@(@(@<@<@<@:@<@<@<@M M M :@:@:@M Q M M :@5@_@5+5+|@6+_@_@<@<@(@(@_@(@(@_@_@_@M 3@3@2@3@Q Q Q M Q Q 2@3@3@2@M V 1@1@_@_@V 1@|@6+6+6+6+5+V 2@3@3@3@2@2@2@2@2@2@2@3@3@3@3@3@3@3@3@3@3@<@Q#}@j${+5 :+F :+{+^+^+^+^+6+^+^+{+^+^+6+(@X*#;$;%;&;*;=;- ) ", "M M M M M #.~+o./@o.o.p./@/@o.q.q.o+q./@a q./@q.o.a q.q.q.o.q.a o.!+a a o+!+>.>.>.>.o+-;5+<@<@:@:@2+ .{.> 7.}.'.p.9&!+O a r.{ { { { { r.r.v.^.~+~+v.^.^.m$m$^. .^.m$Y ^.~+m$G .K#G G G J%T T J%J%U +*+.L . .G Y ~+^.{ ;;>;,;';);_@`&!;~;%-#-{;];^;+./;$.Z=v.3+|@5 >.> k 1.g x*o=[ ;.h a.j ) m ] h ,@f.v 6.) =#-#-#= ! ^ ` | + )#}.!#o :.7 P j # ^ ^ ^ ^ d+J b+r p.o.p.s.r.s.p.p.~+^.^.^.G G 3+Q :@_@1@_@_@:@:@:@<@(@<@<@_@_@(@<@(@(@(@(@<@:@<@(@(@(@<@M M M M M M M Q M :@_-<@V _@1@|@1@_@<@<@<@<@_@_@_@_@_@_@:@3@3@3@2@2@M Q M M 2@3@3@3@Q :@5+1@V V V 1@|@5+5+6+6+5+1@<@3@3@3@2@2@Q 2@2@2@2@Q Q 3@3@3@3@3@3@3@2@<@|@6+1 1 5 :+F :+]+{+^+^+^+^+^+^+6+^+^+6+<@(;_;>+q q =.[.0.=#- ", ":@M M M Q _@0&v.m$v.m$^.{ ^.G .^.^.m$m$v.^.{ r.2 2 2 a a >.>.9&!+o+>.>.O !+!+!+!+a&]+_@V <@<@M M 2@6+n f.e.d.'=a >.>.a O !+^.v.m$~+{ r.r.{ { { ~+v.v.v.~+m$~+~+m$^.Y +*G m$ .m$Y Y ^.m$K#G Y .G m$Y U J%K#K# . .v.r.{ { r.~+:;<;[;-._@E@E%P-};$-_@y z +*Z=c &.} o+5 r., i-T#h ,@N k x*f.# |.v 2.,@,.f.v 4.) )+-#= a+b _.:.a+b |.}.}.7 b.b.P <.# @ @ @ @ 0 d | u 0.*.>.p.s.s.s.r.v.v.^.~+^.Y J%X M :@_@_@(@(@_@<@<@_@_@_@_@<@<@:@<@<@<@<@:@<@(@(@_@_@_@<@M <@M M M M M M :@(@(@_@6+5+V V _@<@<@<@(@_@_@_@_@_@_@:@2@2@3@2@2@M M M M 2@2@2@2@M _@5+_@V V V 1@|@5+6+6+5+1@V 2@3@3@3@3@3@2@2@3@3@2@Q Q 2@Q 3@3@3@2@2@:@6+^+{+1 y F F :+y 5 1 {+^+{+{+{+6+6+^+|@1@|-=.s 0.0.=.=.[.=#4 ) ", ":@M M M M 2@1 { .^.~+{ s.~+m$^.m$v.~+m$~+^.{ r.2 { s.!+!+O O 9&z >.!+O !+O O 9&K {+_@6+V (@:@M M M S 1@[ ~ O C%!+>.O O 9&O >.o+~+m$ .^.v.v.~+v.Y G r.s.{ { r.v.v.v.v.K#Y m$~+Y ^.m$m$ .G J%G m$G Y Y K# . .Y Y .m$m$^.^.{ { v.s.|;1;9&2;1 i$Y&3;V (@<@{+k=/@+.0+L%L%<$,%L%c+x*7.f.4 -#>+m 7.~#6.- 4 6.4.) 4 )+q )#. a+a.'.e+b @ b.<.j j j j |.^ @ b+b+@ 9+l | + J o > q.2 r.p.p.{ v.~+v.~+m$ .*.C%:@M (@_@(@(@:@M (@_@V _@:@:@<@:@:@:@:@(@(@(@_@_@_@(@:@M M M M M M M :@:@M (@6+6+V :@6+V <@(@(@(@_@_@_@_@_@_@<@Q M 3@3@2@Q M Q Q Q 2@2@2@M _@|@_@V V 1@1@5+6+6+6+6+6+(@4@3@3@3@3@3@2@2@3@3@3@2@2@2@M 3@3@2@2@:@{+6+^+1 y :+:+:+]+5 ]+{+{+{+{+{+{+^+^+V 5 B-p [.q q 0.)+q q - ) 4.", "M M M M M M 2@3+2 ~+v.~+{ Y m$ .Y v.{ { v.p.p.o.o.o.o.s.q.o.a /@/@>.O a o+o+q.>.1+_@5+]+_@(@:@<@:@M M M a&!+O O O o+!+O !+9&9&!+v.v.^.v.v.^.v.v.~+~+m$v.2 v.v.r.r.r.r.v.m$Y { ~+v.~+m$m$Y K#G .m$ .G K# . . .G m$ .G K#J%G K#Y Y .^.~+s.x.4;5;*%(@_@_@1@V V :+0&L (.,%6 r R#, , x*7.4.}.7 - m T#7.v 0.q )+)+=#Z | . ~%$ & ` b e+%.|.'.d+%.'.^ ^ @ b+@ & ~%a+~%+ @ W $ N ~+2 r.2 r.v.v.v.v.m$m$ .J%O _@M (@(@_@_@(@(@_@_@:@M M M :@:@:@<@(@(@(@(@(@(@<@:@<@M M M M M M M :@:@:@1@1@V _@^+V <@_@(@(@_@V _@_@_@_@(@Q M M Q 2@Q 2@Q Q 2@2@2@Q M _@_@_@|@V 1@5+6+|@1@5+6+5+M 3@3@3@3@3@3@3@3@3@3@3@3@3@2@2@2@3@2@M 6+^+6+^+]+y :+:+]+]+5 1 {+{+{+{+{+1 ^+_@k=;.S#[.-#-#q )+=#-#q 4 ) v ", "M :@:@M M M M M }-q.s.r.2 2 p.p.s.p.2 /@o./@q.a o+>.>.q.o+o.!+o+>.>.!+o+>.O o+X {+|@{+F ^+_@_@_@M M M (@K 2 q.o+a >.o+o.a O 9&0&z a v.2 r.s.s.s.r.r.{ v.r.r.r.r.r.s.r.r.r.r.~+ .v.~+ . . .^.m$Y . .Y ^.m$Y K#K# .Y G T *.T T J%G K#J%*.G 6;7;8;0&-;5+(@|@1 1 ^+6+5 o+c L%M%'%;.@+r R#w 7.4.=.f+s ) h ] 6.[._.>+# + . . A ` g+9+9+# %.8@| ` '.d+@ b+b+$ u . b ~%+ @ b+$ g+S#Z=a 2 s.r.v.^.~+~+m$ .Y *./@1@M <@(@(@_@_@:@M M M :@:@:@:@:@<@<@(@(@_@(@:@<@<@:@M Q M M M M M M :@M _@V V 1@|@|@(@_@(@(@_@_@_@(@V _@(@Q Q M M Q Q Q Q Q Q 2@3@Q M V V V V V 1@|@|@|@|@6+^+_@3@3@2@3@3@3@3@3@3@3@3@3@3@3@3@2@2@2@M 1@5+5+6+6+1 y y {+1 5 ]+1 {+1 {+{+{+6+(@o+2.3.[.-#0.0.)+)+0.=.)+) 6.v ", "M :@M M M M M Q 1@z 2 p./@/@/@/@2 2 s./@a q.a >.>.!+!+z 9&/@0&8&8&O >.9&9&9&O X ]+^+y 1 4*#.:+y (@M M _@8&q.a a o+O !+o+a o+O 9&O >.q./@r.p.2 /@2 p.s.~+v.2 p.r.s.r.r.{ s.p.v.~+v. .Y K#G J%K#G K#K# .^. .m$ .Y K#*.Y G J%T T @*T +*+*T U T U .m$K#+*b&^+V <@_@_@<@1@].!%> M%d.@+~#2.h ;.H%T#v -#e.p e.)+6.4 [.P ` . . ~.( g+_ e+# %.3 3 b d+^ d+@ d+d . . ( ~%~%J 0 J J A d+i-/@2 { v.m$~+~+^.m$ .Y U { {+M <@(@<@(@<@M M M (@_@<@M M :@:@_@V _@<@<@<@<@M M M Q M M M M M M M <@V ^+6+V 6+_@_@<@(@_@_@_@_@V V _@M 2@M <@M Q Q 2@Q Q 2@3@Q M V _@V V 1@1@5+|@5+6+6+5+Q 4@3@2@Q 3@3@3@3@3@3@3@3@3@3@3@2@2@Q _@1@|@6+6+{+5 5 ^+^+1 1 1 {+{+1 {+{+|@_@L [.e.[.[.=.)+)+0.=#)+-#)+6.) R#", ":@M M M M M M M 2@:+o.a /@2 2 /@o./@o.o.q.q.q.o+a >.>.o+!+>.O >.z !+O O a a >.C%_+]+:+5+H%c.2+-.:@3@@.V /@p.!+>.>.!+o+o+q.a >.o+>.>.O q./@q.o.o.o./@o./@a o.s.r./@a /@/@a p.s.r.^.v.v.^.v.m$^.m$Y G Y .G G . .K#G Y G ^.G m$m$G K#K#*.L ].L T U K#J%m$o.a b&^+_@_@V .!%L%c+, R#w g ,.o j - ..N f.q e.9 = 3.q J ~.8@+ u | J _ )#9+~.+ ( J d+@ b+W @ e+. . u + . % J g+g+& g+A =#L o.{ ~+{ ~+m$m$^.G Y J% ._+M _@_@<@<@:@(@:@M M M M M :@<@(@(@<@<@<@(@(@:@<@:@M Q M M M M M M M _@V 1@1@6+1@<@:@(@_@_@_@_@V _@_@M M Q M M M M M Q Q Q 2@M _@|@V |@1@1@|@|@5+6+6+6+_@3@3@3@3@Q 2@3@3@3@3@3@3@3@3@3@3@2@2@_@|@V 5+6+^+1 ]+{+{+{+{+1 {+^+{+{+{+1@^+!%p e.[.=.[.-#0.0.)+- - -#- v 4.i-", "M M M M M M M M M Q 4*p./@o.p.s.2 /@o.o.2 o.q.q.o+o+a o+o+!+q.q.9&9&z !+!+O !+K 1+:+1 b&b+r 6+#.5 k=b&3+>.a a a o.q./@o.q.o.a o+>.o+>.!+!+2 p.2 p./@/@/@2 o.p.o.m$R#v m c+2 2 { v.{ { r.{ v.{ ~+~+m$K# .m$+*T .Y .G T *.K#Y U *.U K#K#*.@*+*L T *.U K# .U ,=U O k=V a ; ,%, 6 i-w H%4 b ( J [.q v 5.2.0._.! Z $ ` & ( + | a+b J $ ( ~%| J ^ @ d+$ g+& % 8@u + + ( ` ).A 9+` & ` b.<$a r.v.r.v.^.^.G Y Y K#K#3+:@_@_@(@:@1@<@:@M M M :@:@<@:@:@<@<@<@(@<@<@<@<@M Q Q M M M M M M (@V 1@6+6+_@<@(@(@_@_@V _@_@_@_@M Q M M M M M M M M 2@Q M V 5+|@|@|@|@5+6+6+^+^+6+M 2@2@3@3@Q Q 3@3@3@3@3@3@3@3@3@3@3@<@|@V 1@5+6+^+1 ^+{+{+{+{+{+^+{+{+^+_@F i-9 f+[.=.-#-#q 0.)+)+- =#q - 4.4.'%", "M M M M M M M :@M M <@9&2 o.p./@p.q.o+o+q.o.o+>.a /@o.o+>.>.O o+/@>.>.o+>.O >.8&4+:+5 0&x*X {+v.b&!+8.T a&O 9&!+>.!+O z 9&9&8&0&O z z 9&9&o./@r.r.p.p.s.p./@o.p.f.j W <.|.m o./@/@2 s./@p.^.^.v.^. .G K#J%*.K#*.].+.*.*.+*T U ].+.].@*+.+.~ $.Z=+.n {.+.].T |-].+*$.+.} d.6 [ i-H%c.g.4.% 8@%.2.q e._.=.4 4.-#S#^@b.d + 8@~%. ^@j W E + )#e+& ).).9+)#A g+b 8@( E a+( )#d % b 9+J ).& T#{ p.v.v.^.m$G G Y G U U }-M <@(@<@:@<@:@:@M M M :@:@:@<@(@(@<@_@(@(@(@<@(@M Q M M M M M M (@_@V ^+6+V _@_@(@_@_@_@_@(@_@_@M 2@M M M M M Q M Q 2@Q M |@|@1@5+|@5+6+6+6+6+1 1@3@2@2@3@3@3@Q Q 3@3@3@3@3@3@3@3@3@M V _@1@1@5+^+1 ^+{+1 6+{+{+^+{+1 ^+:@}-h 9 s s [.[.=.-#0.0.)+)+=#4 4.4.v 6.> ", "M M M M M M M M M M 2@^+/@p.o./@2 /@o./@2 o.a q.o.o.q.a >.!+!+9&o.o+q.o+o+>.o.z 2+y :+5+6+]+4*K#9&p.~ 9&!+o+!+a o+o.>.9&!+o+!+8&z a&a&a&8&O /@ .~+{ v.~+~+~+2 w J S#9.= P 9+6 !+2 s.2 o.v.s.r.{ v.~+~+ .J% .m$U ].+*J%J%*.T ].U K#T *.T L *.n n } K%Z=K%K%K%'=} @*L Z=&.[ S#4.g.;.8.1...s ^@4.5.v ) 0.e.! ! e.=.>+!#_ ~%+ | J i-d+$ ~.b '.).A 9+` ` )#d d ~.+ 8@8@b b b b b b b e+` ` b :./ /@v.m$m$ .G .G K#G *.z <@M :@M M <@M M _@<@:@<@<@:@(@<@<@(@(@_@_@<@<@:@Q Q M Q Q M M M (@V 6+^+|@1@<@<@<@(@_@(@(@(@_@:@3@Q M <@M M M Q Q 2@Q M 5+|@5+|@1@5+5+6+^+5 y <@3@3@3@3@3@Q M Q 2@3@3@3@3@3@3@3@M V _@|@5+6+{+]+6+^+]+^+6+^+{+^+{+6+<@L e.S#f+f+s =.=.-#q 0.)+- 4 ) 4.- ) ,.,.0.", "M M _@(@2@3@Q 4@Q M M 3@3+v.s.2 o.o.o.o.p.r.r.2 p.2 q.o.q.2 r.r.p./@/@o./@o.s.a&k=5 :+6+^+:+o+*.8& .L q.q.q.2 /@/@2 o.q.a o.q.>.>.!+O O 9&>.q./@q.s.s.r.v.~+p.q d :.S#Z |.` s q.p.2 s./@s./@/@p.p.2 p.2 s.2 r.m$ .s. .J%G K#J%U K#K#K#U T L T J%+.n L n {.{.~ } } L +*U ,=f+<.}.- ,.~#~#~#] 5.2.6.4.4 )+[.p ^@7 i a.Z % u | j ! ).W b J d+@ b+$ 0 $ 0 J J J % ( ( e+` d d )#` ` d e+e+b | b x*p.{ m$^.G .Y U K#G L a _@Q :@<@<@_@:@_@_@(@(@M :@<@<@(@_@_@_@_@<@<@<@M Q Q Q Q Q M :@<@(@5+|@|@_@:@:@<@(@(@(@(@(@_@<@3@2@M :@:@M M M Q Q M :@^+5+1@V 1@5+5+5+^+{+|@2@3@3@3@3@3@Q M Q Q 3@3@3@2@3@3@M _@V 6+^+{+5 y 6+^+1 ^+{+^+^+^+^+|@6+6 3 9+s s [.[.-#q 0.=#=#- 4.4.4.v 4 6.,.~#9 ", "2@M M Q <+{.6 Z=6+M M M Q }-{ p.o.q.q.o.p.s.2 q./@o.o+o+o+~+m$~+p.2 /@p.s.o.q.#%4+5 y 6+5+y r.J%O K#K#0&z O 9&O O z O !+z 9&O !+O o+!+O z !+O 0&9&9&!+!+!+>.a&f.8@W 7 W J W e.a >./@s.p./@2 2 2 s.p.r.r.v.v.m$m$s.z m$G U ].T U *. .m$Y J%L +.J%T @*+.+.+.'='=+.@*n / / K%J%H%).J @ :.)+v v v 4.4.4 - )+-#s _.9.7 %.# ` l | ~._ @ '.` & J ` ` ` ` 8@a+` ` ` E + ( ~.% % b % e+` ).).` ~.~%~%~%s *.p.~+^.m$Y G U Y K#+*s.5+2@:@<@(@(@<@1@1@(@<@:@:@<@(@:@<@(@<@:@<@:@:@M Q Q Q Q Q Q :@_@V |@|@_@M <@<@(@_@<@(@(@_@<@3@2@M M :@M M M M M M _@5+|@_@V 5+5+|@6+^+6+(@Q 3@3@3@3@3@3@Q 2@2@Q 3@3@2@2@M V 1@6+{+1 5 5 6+6+{+^+^+{+{+6+^+_@5 c.+ + J [.[.=.-#-#)+=#- - 4.4.4.6.f.) f.,@~#s ", "2@M M :@c+9 p p /@3@M M Q _@>.s.o.p.p.o.o+o+o+a >.O O !+o+o+q.2 >.!+o+q.a >.!+#%1+5 5 {+5+5 .].q.*.G !+O >.O !+!+9&>.O O O O !+9&O O O 9&q.>.O !+!+O O O 9&#.h u A # b+J 0 q O a&p.{ r.r.p.p.p.p.p.p.p.r.2 s.2 r.{ v.v.m$Y . .G m$L T U U K#J%L *.|-+.].K%/ $.~ ~ K%K%&.0+> H%= )#e+& b.! [.- - - - =#-#=.f+3.9 :.e+u l . ( J d+# J ).J 9+` ` + . . E d e+3 u 8@| | ~.+ ~%( a+b ` ).8@| l u . @ e p.~+^.Y m$m$ .Y U +*m$5 2@:@_@(@(@_@1@6+_@(@<@<@:@M M :@<@:@:@:@(@:@Q Q Q Q M 2@M _@_@5+V (@<@<@<@<@<@(@(@(@_@<@2@2@M M :@M M Q M M M _@|@_@V 1@|@|@6+6+6+5+(@<@M 3@3@3@3@3@3@3@3@2@2@3@3@2@_@V 5+^+{+5 ]+5+6+{+{+{+^+^+^+6+(@A-..! j # p -#=.-#-#0.)+=#4 4 ) ) 6.v ,.) 2.5.N ! ", "M M 3@8&v 2.k o=2 4@M M M 3@{+q./@s.~+r.L Y o.p.2 o.o.o.a o.q.2 o.s.2 r.s./@>.4*F 5 y 1 |@1+L T a G m$!+>.o+>.>.9&9&8&a&0&z 0&O z z z !+O !+o+p.2 a a /@q.>.C%, 8@b J b+@ b.L%9&9&o+>.r.^.~+m$m$~+~+v.r.v.r.p.s.r.p.s.r.{ s.s.{ r.s.{ ~+v.r.v.m$ .G J%J%+*@*+.~ K%~ '={.~ ,=c &.1.7 $ e+d d A j :.o }.}.}.}.i <.0 3 . ~%u | )#)#g+J W )._ _ 3 | l b | d 9+9+a+~%~%| . ~.E . + e+% b % + | u ~%~%~%9+@+~+v.K#m$m$~+ .G K#L U 1+2@:@_@:@(@V _@1@1@:@M :@M :@<@<@M M <@(@(@M Q M Q M M Q M _@1@_@_@(@<@<@<@<@(@(@_@_@(@2@2@Q M M M M Q Q 3@3@_@|@1@6+1@|@^+6+6+6+V <@<@(@<@2@3@3@3@3@3@3@3@3@3@2@_@5+6+5+6+{+{+5+6+1 1 1 ^+6+^+6+_@q.) 9 f+[.[.=.=.[.-#-#q =#- - 4 4.) 4.f.,.4 ,.] m :.", "M 3@{+, 9...;.g +*M V V 1@V _@#%Y G K#Y 8.L%a v.o.~+/@2 r.a { >.{ ~+/@{ q.2 o+A-1+1 ]+1 ^+1 ,=&.p.v.J%>.o.!+z !+O 0&2 2 O z 9&!+O 9&9&!+9&9&O q.o+>.a a a o+8&<$d J J s =.2.} a&9&z z s.v.~+^.~+p.r.~+{ s.v.m$p.p.p.2 p.p.r./@/@p./@p.s.p.{ v.s.s.p.r.o.p.p.{ ^.m$~+G K# .G n ,=,=K%4 _ A d a+( 3 ( 8@+ 8@( ( 8@+ . | 8@3 E ~.% ~.e+J 3 u + | + + | | l u + ~%| | e+( ~%)#e+( + + + + + ~%~%| ( d a+( }.Z=r.Y Y ~+~+ . .G T *.I 2@:@(@:@_@V V _@M M M M :@:@M M M <@_@<@:@M Q Q M M M M (@_@_@_@<@:@<@<@(@_@_@_@_@_@M Q Q M M M M Q 3@I !+]+_@|@1@V 6+1 6+5+5+(@<@<@<@_@M 3@3@3@3@3@3@3@3@3@:@|@5+|@5+^+6+5+{+1 {+{+^+6+^+6+_@T >+p s >+f+f+=.=.=.-#-#q =#=#- ) 4.4.4.f.,.) ,@] m %.", "_@M M _@, s ..c.> _+]+y :+:+:+-.G @*@*} 1.<$v.J%r.U ^.^.G s.J%2 .m$s.K#a m${ b&4+{+{+^+{+_@0+) ~ .T *.a a q.z o.a&L *.8&2 !+q.>.!+o.O o+O q.a z { /@p.o+/@!+|-q _ R#G > 2.,%O >.>.O >.>.~+^.^.)%+*v.~+v.^.m$~+{ p.s.r.r.{ 2 /@p.r.s.s.r.~+~+{ s.r.{ /@2 o.s.p.p.2 p.{ { { s.r.^.^.L $.(.c+'%8.,@q S#P ^ g+% a+( u ~%b J + + )#l 3 d + . . ~%8@| . | | . . . . . + | . 9+o ` ~%. . . + 3 b + 8@a+E ` + ` d.s. .Y ^.m$ .Y K#J%L }-Q :@_@<@:@M :@(@_@:@:@:@M M M <@_@_@<@:@M Q 2@Q Q M :@(@_@_@1@_@<@<@(@_@V _@_@_@_@M 2@M M Q Q M S 9&,@7.L 6+V V 1@6+^+5+6+_@Q <@<@(@(@<@3@3@3@3@3@3@3@3@M _@_@V |@5+6+|@y 5 {+{+^+6+^+1@_@/ _._.s f+s [.=.q 0.0.)+0.)+- 4 4.6.v f.v ,.,@=#v ,.) J ", "4+F F :+/@! ! c.i-n 8&O o+o+q.o+2 &.<$c&,@l$Y +.J%} @*n ~ L ,=} K%U +.} T K%G a&-.6+6+^+^+1@c q d.L T $.K#J%].~+*.{ |-|-2 G /@~+{ 2 ^.2 J%o.m$v.r.G s.Y ~+*.m$^.1.# ~#G U =#; 2 s.U ^.m$~+U +*L 4.)%/@r.r.r.r.{ r.q.2 s.s.Y ^.v.{ { r.s.v.{ { r.{ s.{ { m$r.r.r.r.s.2 p.r.r.r.s.r.v.{ { v.v.v.s.r.^.m$U |-'=,%o=r ;.=#9+d + ( % u l b + . . u u ( ( ~.+ ~%. . . . . . . | ^ % . . . . . a+9+b E | | ( ` ` b 6.U ~+ . .Y Y G G J%+*a&M M 1@_@:@M :@_@_@:@M M M M <@(@<@:@:@:@M Q Q Q M M M V _@_@_@<@(@_@_@_@_@_@_@V M 2@Q Q M Q Q 9;> 8.+*v.k=(@|@5+6+6+6+6+M 3@2@M <@(@:@3@3@3@3@3@3@2@M _@1@5+V |@5+5+{+F 5 ^+^+^+{+_@:+1.0 ^ ^ '.'.%.|.j b.b.7 7 i }.a.!#b.7 o ^@^@Z i S#k 6 B-s ", "{+5+6+{+V X / 7.g.h ,=4+2+<+<+_+1 8&I%B-m l$Y L K#+.+*|-~ J%Z={./ ~+T U m$*.Y /@4+5+1@1@6+{+e v ) c+,=c |-K#U ].c +*n / r.*.{ +*K#U L ~ 6 L } |-+.~ @*Z=~ $.Z=f.& # b+:.L%H%{.p.)%<$)%0+$.'=$.&.7.$./@v.^.{ v.{ m$s.r.r.p.v.p.2 p./@o./@m${ { ~+r.s.{ r.{ r.r.2 p.s.p.r.r.r.^.{ r.{ v. .G . .J%L Y G J%+*T J%|-Z=/ ,%:._ % E a+3 J J + u l | + 0 % b 9++ . . . . . . | . ~.J . . . . . ~%` b E ~%. . . u b % = / r.m$Y G G K#U U ].q.(@2@V _@M M M (@_@<@M M :@:@:@M M M M :@M 2@Q M M M _@_@_@V V _@_@_@(@(@(@_@V M Q Q Q Q 2@3@M 5.@+c B-!+<@|@5+6+6+6+1@3@3@3@3@2@M 2@3@3@3@3@3@3@Q _@_@5+1@V |@|@^+1 :+y ^+^+{+(@0&^@u 8@8@8@8@8@8@8@8@8@8@( ( ( ( 3 ~.( + ( & A e+o m$:+4+}-6.", "_@M M (@3@3@!+;#0+I%N 2 1 :+:+y 5 {+G 6 ~#O-].n } &.&.0+!%'=> c&c L K%} +.{.@*K ]+|@(@_@_@|@0+N ..f., !%; +.*.+*Z=@*{.&.{ *.v.T m$G Y {.H%0+)%0+(.0+(.L%L%; ] J d+%.j b.e.8.<$+*> c+; e &.&.e !%)+/ o+p.s.p.s.v.p.L T /@p./@/@p.r.{ v.{ ^.^.^.v.v.{ s.p.p.r.{ s.2 /@p.p.p.p.{ ^.~+s.{ ~+^.^.m$K#J%Y .G U J%T +.@*Z=0+; ;#W 3 ( 9+b+b | ~%~%. e+-#'.3 b ~%. ~%( + + 8@( + ` ( . . . . . | b b a+| . . . . . | l J R#v.~+U U U T J%*.@*v.^+3@_@_@:@M <@(@(@:@M M M M M M M M M M Q Q M M M <@_@V 1@6+|@(@(@(@(@_@_@_@M 2@M Q Q 2@3@0;; h i-/ ]+_@1@|@5+^+{+M 4@3@3@4@3@3@3@3@3@4@3@3@3@_@_@V V _@1@5+^+^+{+:+:+:+1 <@+*g+u 3 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( E b a+~.J $ 0 g 9&4+K )%%.", "1@:@<@V 3@:+c.~#(.l$] / 1 :+5 5 y y :+$.h O-+.L @*K%n K%,=].c ~ n 2 ~+~+p.{.|--.1 5+_@(@V <@o.7.K%r ..> ,%'=r.].'=*.K%/ 2 U p.J%~+Y .K%'%c {.Z=/ } K%/ n K%^@9+d+# |.S#~#8.R#T *.|-T +*G U +.n - $.a 2 p.r.p.p.2 Y m$p.p./@2 2 p.s.p.p.s.{ ^.v.v.~+{ { m$^.{ v.v.p.p.v.{ r.{ ^.m$v.{ r.{ ~+^.~+~+m$K#m$ . .*.*.@*|-K%/ l$$ ( b d+).+ . | | . + 9.j ~%| | . . | l | . . e+)#| ~%. . . . + E ( 8@. . . . . . . . . ~%e.@*v.U K#J%J%J%*.+*K#y 4@M <@:@:@<@(@<@M M M M M M M M M M M Q Q M M :@(@_@1@5+1@(@(@(@_@_@_@V M 3@M M @.@.2@1 i-!#8.K :@V V |@6+{+|@3@3@3@3@3@3@3@3@@.a;9;4@2@(@V (@_@V 1@5+^+6+6+{+y _+:+6+I%a++ ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 a+3 E % E ~.).0 $ 4.<$~+o='.g+", "_@:@_@V @.{ f.2.c+I%7.R#_+:+y y :+:+1 <+;.l$G K#K#L G J%+.Y } @*|-a r.r./@q.X -.]+6+_@M <@(@_+'%~ s.'%x*c 0+2 |-e m$|-+.0&r.9&r.a o.o.].O-G .K#U J% .T Y {.$ ).W $ $ >+[ k c.} p.J%Y ^.~+Y U @*- ~ z { r.2 /@p.v.2 r.v.p.2 2 /@/@2 p.2 p.s.r.{ v.r.{ v.~+v.{ v.{ 2 { r.{ r.s.r.~+{ { r.{ { ~+{ { . .^.Y Y Y T U ].+.{.,%P %.,@0 b a+. . | . . d !#& 3 ~%a+| . | . . . + ` ( ( u | u | ( 8@( l . . . . . . . . . . . )#B-{ K#J%J%J%J%U *.T 4+4@M M :@<@:@M (@M M M M M M M M M M M Q Q M M :@_@_@1@5+_@(@_@_@_@_@_@M 3@2@S ~ 4 0.3.7.<.] V M V V 6+{+^+:@S 3@3@3@3@3@3@9;0&v.{ o+3@_@_@_@1@1@5+^+^+^+6+6+y ]+:+1.l 8@( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 a+a+3 b % E ~.A W $ p 8.z H%).)#", "<@M :@_@M c+!#-#[ > -#O-y -.F :+:+y ]+6+<$c+v.m$^.*.m$U L v.+.].@*q.r.p./@r.}-y |@(@M 3@2@<@|@c +*2 { N M%$.@*T '=Y +.~ /@Y o.~+2 { s.|-M%^.G m$m$G Y T { c+E b !#d.4.>+h T#7.,.K%G .~+{ . .T - +*b&m$r.{ { { s.2 p.s.s.s.s./@/@/@2 2 2 p.s.r.v.r.s.s.s.2 ~+r.{ { .s.2 r.r.{ v.~+^.m$v.{ { v.v.^.m$^.G Y G U U +*].n |-,=o=; S#g+).~%| | . | ~%W ` ( . | . . | . . . u 9+A d ( . ~%l ( + ( ~%. . . . . . . . . . . . ~%,.K#m$J%*.J%U K#L +.b&Q Q M :@M M :@Q Q Q Q 2@Q M M M M M Q Q Q M M :@5+6+V (@_@_@V V _@_@:@2@S 5 $ + e+% ` ` b )+4*M 5+6+6+1@3@S 4@4@3@@.9;a;~ ^ e+b o o.2@(@1@1@6+1 ^+6+^+^+6+V k=-#u ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 a+a+3 b % b E ).b+0 !#] @*i-<.d+", "_@M M <@_@7.o a.x*c&f+; 6+F :+y :+:+y {+; e G J% .+*K#].|-G ~ n } s.^.v.~+s = 6.g d.> 0+0&:@5+o+m$m$a '=N ; / {.K%G |-{.q.~+a v.q.s.s.@*, ^.^.^.m$K#m$L 2 H%+ a+l$>.s.1.v 2.=#h L%*.J%K# .G +*K%)+n z a a v.{ v.{ r.s.s.r.s.{ 2 2 2 /@/@2 p.2 p.2 p.s.o./@/@p.2 2 p.v.r.s./@/@p.p.s.s.{ r.s.v.^.^. .m$~+^.m$G Y K#K#U ].].n $.i-R#o=, <.| + u ~%| . . . . . | . . | . . ( 9+b E ( + l + 8@+ 8@| . . . . . . . . . . . . . . j &.~+J%*.U U T ].} >.M Q M :@:@M 1+6+V _@{+{+(@V (@<@:@:@(@(@<@_@_@T K 5+^+^+6+1 y 1 {+6+(@S Z=( a+)#d E ( b ( <.b&y 1+-.6+M :@M M 2@4+M q.J d+b+e+b j 0+-.5 2+{+6+6+6+^+{+:@b&}.~%( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 3 a+~.3 b d % E & d+W ^@T#h ;.; } ", "_@M M M |@1.>+^@c.[ f+$.1@1 :+:+:+:+]+6+> p.9&*.~+L K#T |-Y n @*} 2 v.p.+.W _ d+^ j j 7 f.e e } s.^./@m$} l$n ,=Z=K#} Z=o+^.a m$/@s.s.@*O-~+m$ . . .v.L 2 ..+ E o=v.J%4.3.5.<$m${.{.Y Y Y Y *.n )+n 9&!+>.r.p.{ v.{ v.v.{ { s.s.v.s.p.s.s.2 p.s.p.r.~+p.p.p./@/@q.a /@p.{ /@q.s.r.s.s.s.~+~+m$r.r.^.m$^. .G .m$m$~+ .K#*.*.U T } K%&.}.+ ( + ~%. . . . . . + | . . . . 3 + + ` a+u . | | ~%l + u u u ~%. . . . . . . . . . . ( 8.K#U J%K#J%L *.@*r.V 3@(@<@_@s.q.8&X } I%#.K #%X ,=8&3+-;/@9&4*e J%a&9&9&z o+2 o.o.p./ '=:.8@3 A b E b % e+( <$O o.o+I :+4+]+{+|@&.+.<.( ` # '.J $ 7 q N ].]+4+6+6+6+<@m$W u ( ( ( ( 8@( ( ( ( ( ( ( ( 3 ( ( ( a+3 a+~.3 b d % E A W $ o ,@Z=2.- 1.", "<@Q M M -.0.[.o g l$[.c 6+]+:+4+4+2+2+-.c+2 ^+L J%+**.].} K#} |-K%s.^.2 ..d J |.@ j b.P }.i W f.2 ^.o.Y s.J%~+|-Z=Y K%~ O .O { o+p.p.L o=r.~+~+~+m${ T o.- l u ~# . .M%w n @*l$N H%G ^.^.G J%+*=#].8&9&0&9&9&s.r.r.v.v.{ { v.v.~+s.2 p.s.p.2 2 o.2 p.p.v.{ v.v.r.r.r.r.{ s.r.2 /@p.s.s.{ ~+ .{ p.p.{ ~+Y *.^.~+ .~+ .G K#J%L L @*$.e d.g <.+ ~%. . . | | . ( ( ~%| ~%. 3 ~%u A ~.~%. . ~%| ~%+ + + + ~%. . . . . . . . . . . . . = } ^.K#K#T J%K#+.m$ .-;_@6+, [ c&d.,@] c&I%c+o=)+I%{.@*@+~ #.O-{.0&0&8&0&8&z 8&k=} !#0.~.3 ( 3 0 J % d d ( (.!+~+s.^.o=} n v.~+B-}.l + a+0 ^@Z J 0 _ @ (.r.v.6+|@<@; E l ( ( ( ( 8@8@8@( ( ( ( ( ( ( ( ( ( ( 3 a+~.~.a+% d % ( + ~.~.b+[.'=s.k <.", "k=_+F :+>.0.) =.;.;#s L%z O >.q.p.p.2 /@'%Y {+s.K%{.~ ,=&.K%0+,=)%L @*/ ^ 9+<.|.|.^ j b.^@!#7 d+!%+*K#+.K#n m$@*)%+*c Z=r.U 2 G r. .^.+.[ Y G G .U m$L ^.a.+ | ! @*s. .J%L%4.|.j T#+* .m$Y T T 0.+*K 0&a&z 9&2 p.{ v.^.~+{ ~+r.{ p.s./@p.s.s.p.p.2 p.s.r.p.r.{ v.{ { s.2 p.v.2 /@/@2 p.p.2 s.r.v.s.p.s.{ v.p.{ .~+~+^.^.Y K#U J%].|-|-+.5.0 % u | . . | | ~%+ ( ( u . ~%e+~%% ( + . | + + + + + + + + + u u | . . . . . . . | | . A , ^.Y T L J%*.].d.U -;K c.c++*)%2.k ,=<$o=R#5.;#L%{.H%>._@c q.5 :+_+:+y F ]+*.g k b.3 ( + 3 7 [.!#i & + } F 4*1 I i-T {.v.+.;.a+8@+ ~.e+)#<.j e+( )...6 ].<@6+H%+ + ( ( 8@8@8@8@8@( 8@( ( ( ( ( ( a+E 3 ( ( 3 a+a+a+e+d % 8@u a+a+_ >+R#'=<$*.", "5+_@<@(@m$p =#) H%T#s J%6+y 5 {+5 <+F :+B-/@9;|@!+&.].~ / n (.&.0+*.+*Z=!#)#b.^ |.7 j j i o 7 |.c.@*L p.O w R#d.> U T $.L '=*.K%].K%~ ,=;#Z=/ ~ } {.{.)%c :.d . & , o.U l$)+# E W v / } |-|-n ~ ,@T K a z z 9&>.9&2 s.p.s.s.r.r.r.p.{ s.{ r.r.r.s.s.{ s.p.p.r.p.{ r.s.p./@2 2 /@s.p./@p.2 r.{ r.r.r.{ p.2 r.{ { { r.m$ .^.^.Y Y K#J%G J%n '=)%0.E E u ~%| ~%+ 8@a+( + | . ~.| 3 ( l ~%+ 8@8@8@8@+ + 8@+ + + + u | | | | | E E | | | . ~%q +*K#@*L ].@*T#,@G k=; {./@K#@+l$!+~+L ,=7.J%r./@[ q.|@,=9&_+2+k=_+F :+b&Z .|-b ( + ( ( W ^@p 9.J ~%M%-.-;^+4*H%~ > / c&- u ~%+ + l + % d+:.b ` h $.Y 1 4.~%8@( 8@( 8@8@( ( 8@( ( ( ( ( ( ( ( e+& e+3 3 a+b b ~.d )#e+( + E b J _.~#/ ].a ", "I 3+y .9 |.a.>+k )+p +.V 1 ]+]+1 :+F :+, p.M ^+6+{.c )%(.K%<$0+{.~+G ^.f+( d $ # j j j :.i i j 5.J%~+3+3+(.4.g !+#%J%} v.+* .].U ].+*&.8.M%> x*- 4 g B-g.0 ^ ~%a+=.,%8.b.( ^ b.c.0+c c &.0+c 0+=#+*z o.o+!+9&O O o.o.o.2 2 p.s.p.p.s.s.{ p.p.p./@p.s.p.p.s.s./@s.s.p.p.p.p.r.s.s.p.2 p./@r.s.{ { v.^.s.2 p.p.s.r.{ r.s.v.^.Y Y G T +*+*|-} @*[ =.7 _ '.g+( )#` a+a+a+a+( ( ( ( E | + + 8@8@+ 8@+ 8@8@8@8@+ + + + + + ~%u )#W ~%| | | | . @ ; G L ].$...g.o=@*/ m$X p.k ,%8&r. .n 1.m$o.o+R#o+6+$.8&4+-.I 1+_+5 +.0 (.~ i '.~%( 8@3 b 9+9+b | 7.-._+6+X r p.J%b&!+] | ` % ~%+ A J 9 v %.~.@+p.+.= ~%8@( ( 8@8@8@8@8@( ( ( ( 8@( ( ~.b ~.A '.J ~.% e+J J E e+)#e+( l E E )#p s $.2 9&", "{+y F H%Z s = 4.c.S#3.L M 5+]+y {+]+5 5 l$2 Q ]+Q 2++*'=~ *./ +.n 2 s. .! + + & '.<.# j P o P '.4.^.s.z }-4+I X p.a @*K%9&m$q.~+>.{ 2 +*;#*.|-g =.3._.; ,%b $ 3 u d j 9+3 l J e.g k c v.G K#@*{.)++*C%!+!+9&>.z 9&!+9&a r.{ ~+~+{ { r.{ ^.v.{ s.p.s./@/@s.r.p./@{ s.2 o.q./@p./@p./@r.v.s.p.{ v.r.s.s.r.{ s.p.{ { { r.p.{ ~+^.Y G J%K#L T L L L *.w 9+` A ` )#e+b E ~.a+( 3 a++ ~.+ u u 8@8@+ 8@8@8@8@8@8@+ 8@8@( 8@( + u l l u | | | | | . 8@5.L ].l$..N R#o=c+J%#.p.k > z s.m$n g ~+/@a x*o+{+c b&3+3+2+1+<+6+I%` I%n l$+*).u ( ~.b E E 9+5.>.I 5 |@K r s.J%C%a v ~%4 9.+ e+] x*o=7.b.b.Y L ..~%( ( 8@8@8@8@8@8@( ( ( ( ( ( ( a+d ).0 0 %.j _ g+$ # b+` e+` d ( l ( ( 3 Z [.H%+.m$", ":@2@_@{ O-v _.1.c.Z 4 ;.x*s.(@|@1@1@V V I%o+D 5+Q _@3+@*+* .].+*Z=!+o++.:.3 a+).b+<.i <.<.9.'.g+S#U r.v.q.>.4*2+a&z b&L >.^.>.^./@{ { @*O-^.)%i-@+T#s k +*` e+)#~%( 3 E e+9 ,.v s O-J%d.].m$J%~ )+].z a >.!+>.>.!+>.z q.2 v.~+~+r.r.~+ .m$v.v.p.2 2 /@/@/@2 o.a o.2 s./@q./@o.o./@o./@p.2 p.p.r.s.p.r.p.s.v.s.p.r.v.{ { { v.m$Y .U K#L @*n } |-|-,=, f.` d d % % b E ~.a+( ( ( ~.( ( ( ( + + 8@8@+ + + + + + + + + + % !#9.- g+| u | | | | . . :.,%O-..1.6 ;#o=B-{ 2 ;.> !+2 m$~ 8.~+r.a w >.1 &.4*1+4*4+1+_+|@> b =.@*L%o.s u ( ~.b E ~.'%q.k=1+]+|@8&'%p.*.a&o.4 E )+H%<.[.I%c.4.S#0.U l$,.N + 8@( 8@8@8@8@8@8@8@( ( ( % ` b % b+<.|.J $ :.^@|.S#! @ _ )#)#)#b g+g+9+b j 6.c+c+;.", "w , B-, 0.W =.o=8.= >+j 9.o=*.+*T U G { @+/ 4*9&4*!+m$].)%0+l$l$N R#M%|-e.3 A g+J |.b.j j a.7 '.P ,=/@J%>.+*{ I 4+b&b&a q. .q. .s.^.p.@*o={ [ ;.r T#[.'%*.).+ ).+ ( % d p m 5.,@v x*7.# c.K#U ~ 0.].0&!+!+9&0&9&9&O 9&!+o+s.s./@o./@2 p.s.p.p.s.r.p.p.s.s.2 /@o.q.q.2 p./@o.o.q.o+o.q.!+q.r./@r.{ { s.s.p.s.s./@2 s.s.r.2 /@2 p.v.^. .G J%].|-n K%T a&M%j 0 ` d % b b b E a+( ( 3 8@( ( ( ( 8@( ( 8@8@+ + + + 8@+ + + ,.>. .,%~+@ u 8@8@u ( l | . a+4 g 7.[ L%, x*o=|-g.<$o+/@Y Z=g.{ 2 o+c.z 1 &.4+1 4*_+:+5 V I%%.'.!#8.~+0 l 3 a+E E b 0+O 4*5 1 5+O '%q.*.K n ] >+9...H%g.,%8.d+>++*d.d+,.m l 8@8@( ( 8@+ 8@8@+ ( e+% ).0 g+J |.<.^ @ g+^ '.|._.|._ '.` ` d d %.<.# J <.-#c+/ 1.", "& b+W 9+J %.] )%2.d+j # '.b+0 W W b+b+@ ^ '.<.7 9.7 |.o 7 b.|.|.'.d+'.o b++ e+).` b+j |.j ^@}.o :.&.a Y o.G r.b&2+}->.#.8&{ a&o+c+9 [.s 3.=#-#v ;#N N ^./@0 ~%e+)#( e+7 g m ,.6.4 q >+^ Z O-0+, [.)%G J%J%K#Y v.{ s.2 { ~+~+r.2 2 p.p.p.2 /@/@/@2 p.p.s.s.2 p.p./@2 2 p.v.v.~+~+~+^.p.q./@2 2 r.2 s.p.r.s.s.{ p.2 2 /@2 /@K a /@p.v.s.r.~+m$G *.J%].@*K%,=;#J b d % b b b E a+( + 3 3 ( ( ( ( ( ( ( 8@+ + + + 8@8@+ b M%)%a Y ~+v 9+~.l ( % b + | . | >+g ,%; R#;.k 8.,@c&~+K#} <$1.@*Y U ~#{ X L%O #.O !+0&z b&)%b.P J @ m$P + 3 ~.E E e+x*K#0&4*2+:+2 w p.J%O c+;#c+'%f.8.k ;.m '%)%v # '.h ,.~%+ + + + + + + + + ( _ & J & ` J '.}.$ A & %.g+e+<.& g+%.)#` ` % J @ $ ).j 3.q M%,%", "'.@ % 3 ` ! -#f.1.S#0 J b+0 0 W @ @ '.%.@ ^ ^ # j |.%.^ @ ^ ^ @ @ @ W W )#u + + + ( % J b.Z }.i :.&./@@*s.Y r.C%5 1@A--;6+!+o+2 m 0 W $ J e.6.9 4.-#8.#.V j ( l d E g+v 8.N ,.f.=#6.p |.a.=.# |.%.P i o ^@!#Z ! = S#3.p _.f+=.[.f+s [.-#-#-#0.) ] +.p.{ s.s.2 2 p.s.2 p.r.r.v.{ ~+r.'=L%(.$.$.$.{.n |-+.+*L L L +*U ~+^.^.~+m$^.v.{ v.^.m$K#G T *.G J%T T / 4.S#_ % b b b E b E E ~.a+3 3 ( ( ( 8@8@8@8@+ 8@8@8@8@+ b+c d.Z=m$K#R#` ~.& d + ( 8@| | . a.p 7.O-=.-#4 =.s 5.x*r g m v '%c&> 4. .>.'%2 0&>.2 q.q.o+a&@+$ J a+m$6.u 3 a+E a+)#h *.o.q.a >./ N {.c+O-H%K%} r Z f+) g @+L%o=<.j ^ 5.] ~.% ( + + + + ( d E + e+_ 0 0 ` g+_ ` 3 8@e+|.g+8@3 a+b % ` ` ` a+b 0 ` 3 J f+[.S#2.", ":.P j j d+_.,.)+g k 0 W 3.= o }.^@^@b+$ W j }.7 i b.<.%.P <.@ b+@ d+@ # @ + ~.% ~%3 )## P ^@a.}.:.0+~+n v.U m$G 9&1+6+_@-;~+>.s.;.p S#Z a.m$d.s !#! ;.]+{ ).& 8@)#j }.3.~#..,@f.q e.,.0 # W d+W d+^ b+$ $ W 0 $ 0 J J J J 0 0 J J J J 0 0 0 b+b+<.n ~+v.2 2 /@o./@o.2 q./@s.r.s./@r.! _ d+'.b+^ j <.j j j P P 7 7 }.^@!#9.9.= p _.>+s =.q 0.0.)+) v 2.,.,@,.m ,@P d+b+W 0 0 J J J _ ).A ` ` )._ _ & d ( ( ( ( 8@( u 4.r -#c K#a ,=( ~.W 9+3 ( ( ( ( 8@i b+^ e.v 4.,@) 4 6.c.c&l$x*g 0+} |-5.4*F c&1+5+y _+F _+F 5 0&,.b | ,=~ ( 3 a+~.E a+f+O ^+{+{+5+s.;.,=*.!+T 6 !%B-j o = p _.! e.}.7 b.s - 0 b+e+3 ( + + ).).E ( + ).d+A b ( 3 ( ( ~.^ 7 & 3 3 ( a+~.` 9+` ` b+i b+b 9+e.r Z=l$", "|.$ $ J '.i 1.+*@*Z=] b+j b.%.P o !#|.|.# P }.7 :.7 > {.!#j 0 W '.b+@ ^ ^ g+b j 0 A 7 P <.<.j :.:.Z={ T r.J%~+~ K%^.2 G |-n v. .,.j j d+9.I r.8.6.c.o+V f.d $ b ` >+s -#-#!#f+,.- 9.8.<.A '._.o ^@!#o ^@9.9 !#a.Z 9.! a.a.= = ! ! ! 9.= p _.0.- 2. .a p.s.2 o.q./@2 p.a ^.{ s.r.r.Y 2.-#f+3.9 Z a.9.a.a.!#^@^@i o b.|.d+@ @ @ W b+@ b+b+W $ $ $ $ 0 %.# W W @ b+^ j %.j ^ %.<.%.W W 0 0 $ J 0 d+@ d+).( ( ( ( 8@8@b x*%.e.].z 4*K#e+~%)#e+3 3 ( 3 3 3 :.^ '.%.T#] c.@+] ,@..l$,=(.;#~+o.{ 7.A--.(.1+6+y :+<+1+_+1+:+<+2 S#c+A-_.l ( ( ( + a.a ]+]+5 ^+s.,@> 0&-;^.} 0+k 5.7.! i o ! _.:.%.'.v )+e+J E 3 ~.~.9+& ` a+d + a+)#+ + 8@( ( 8@W o o P 9 |.0 <.` ` ` b+_.:.:.^ 9+g+a.4.i-R#", "Z a.7 %.:.,.~ .+*I%[ ^@j ^@^@Z ! ! $ %.j a.-#[.- 6.c&Z=h 6.>+<.j ^@o }.P '.b b.a.b+J 7 o 7 j o S#L o.K#/@G s.@*'=Y {.Z=2 ~+a r.N 9.3.a.>+Y z ; *.p.r.3+! % J J ~.j 9 1.k }.i 6.)+= g Z J p p P !#i j b.i i 7 :.i i :.i i i o }.o }.!#!#= S#S#= =.L v.m$m$~+s.p.s.p.s.p./@/@/@2 s.m$- e.3.9 ! 9.= _.[.q [.[.0.=.0.>+3.S#9 9 S#9 ! S#p _.e.>+f+e.>+_.=#6.4 ) 6.- f+-#-#s e.0.6.- 0.)+)+)+q 0.6.,.f.7.o + 3 3 ( ( + b.,.W 9 M%r.{+N b l E ` 3 3 3 3 3 ( Z }.J b.8.<.q 6.h 4.S#h k r ; ^.r.^.T#-;k=0+<+6+5 5 _+1+1+_+<+]+q.@+2.+*,@3 E ` & b+S#q.<+4*#.K |-c.Y 9&T +*o.2 M%H%R#R#)+e.Z 3.a.Z |.g.0.8@a+b ~.~.% J _ J W J 8@+ 9+9+% )#a+( 8@% _ W |.}.P j W b )#d+q f+^@!#j ).7 h @+r c&", "J J ).^ :...; <$0+!%R#5.).& b.^@^@o 0 '.^ :.9 Z Z f.,%] ,@! Z o ^ '.# j j j e+^ Z !#@ P }.!#= !#Z @*a U /@G r.].{.^.n L O ^.o+{ ) j o 7 8.p.K#T#(./ > ] b+g+).J E # j !#7.-#s - )+4 =.` $ 9 >+}.i e.=.s s =.[.[.-#[.[.0.)+)+- 6.4.6.! a.- ) 4.4.h ~+/@s.2 2 r.s./@2 s.p.s.s.p.r.s.G =.= 9.Z Z Z Z Z a.9.! ! ! Z !#Z a.a.Z ^@o i i P :.P :.^@^@o }.^@Z Z a.Z a.Z ^@a.Z Z a.9.9 S#! ! S#! ! e.f+p >+=#%.+ ( 3 ( 3 + 3.W e+_.; Y a f+| | u ~.a+a+a+E 3 8@a.P d b.7.9+( b+,.1.4 Z p =#6 ].p.m$g 2+I 0+F {+]+1 :+-.<+_+5 9&0+$.A = b.^ ` j S#h >+/@4+G 0&4*L B-|-n ; e K%K%c B-x*- 4.= ^@_.Z }.j k s ~%( ( a+a+8@8@9+g+a+& 8@8@$ o %.'.j A e+( ( ( a+E e+` b ~.j - ,.f+9.! b.0 o S#4 2.0.", "b+'.'.<.'.=#k ;#, R#M%@+j J 7 !#Z Z b+# # a.-#_.=.s =#=.-#- 0.4 b.'.# 9.a.i ` _ !#9 # W b.i i 7 :./ ~+].Y ]. .} Z= .~ ].a m$q. .x*6.4.=.O-a <$! ) ..r a.` ! o j b ` e.b+^ S#q :.7 P % b # Z s !#|.i ^@^@!#!#!#a.! 9.a.9 p 9 S#e.>+f+j # 3.f+f+f+2.v.2 p.2 /@s.{ 2 p.p.2 p.2 /@/@q.U [.p e.>+=.:.@ s 4 ) 4.6.6.6.) ) - - )+-#[.=.[.>+>+>+e.i |.e.>+e.>+e.f+s [.>+f+[.s e.>+>+3.! 9.= S#a.! >+>+^@a.3.W ( 3 3 ( 8@d N % u ^ M%c+,=~#+ . . 8@a+3 a+a+( a+:.@ % i T#a.'.)+~#T#i-=.3.p -#I%s.^.8.2+4*c y {+1 {+]+2+-.<+_+'=8&p.E ).o b+` W i =.f.^.5+o+3+<++.o=M%<$,%'%+.'=g 6 g.s - )+v [.= b.j H%_.~%+ + + + + + % W ).` ( ( % & d+%.= S#p ).8@)#P ( ( 3 3 & 4 ,.,.4 = p :.$ %.9 w ~ &.", "j 9.S#<.d 0 N ..N m ) - - ^@^@-#v q J = ^@=#~#f.m 6.v - =#)+>+q s = o j <.<._ ` j ! ^@0 j a.!#7 0.K#v.L { *.{ +.{.Y K%+.o.G s.G 4 }.!#= > L ) !#s f+M%=.( Z=]+#.K%^@i j d 9+W <.'.).E $ '.i [.! }.e.s -#-#[.=.[.0.q =.q )+-#0.=#q =.j |.=.=.f+e.f.v.2 /@/@2 2 p.2 p.o.o.p.2 /@/@q.U s S#S#= = P j a.9.a.9.! 9.Z Z a.a.!#^@!#!#!#!#Z !#Z Z j ^ !#a.!#a.a.Z Z Z Z 9.= ! ! ! ! o # '.%.%.# ^ %.%.%.|.P g+3 a+3 ( + b+5.b + ~%( g+}.).| . | ( 3 a+a+a+~.a+d+^ b i m <.^ ^@^@_.! [.,.1.m g <$ .;.2+#.$.:+{+]+6+1 _+2+<+b&m$3+~ ( W P W ( ).9.)+)+Z=(@0&U C%6 w d.R#H%'%K#} f.R#o=4 4.4.= >+S#b.|.r = ~%+ + + + + + E ).g+9+b 8@8@+ 3 E e+:._.^ ( b P '.% 3 b Z f.f.f._._._.:.d+_.0.8.0++*", "%.%.'.b.).( 2.m S#9.a.f.^@|.j b.o o P ^@^@a.S#p e._.f+>+f+f+_.f+e.S#! }.7 '.J e+j j ^@! i a.= ^@6.U v.].^.T m$|-'=+*'=~ v.J%~+].) Z Z a.,@)%w f.N 2.g = J >+6+4@4@+.p :.o _.=#N 7 9+9+g+b+b+9 = o !#Z Z a.! ! 9.9 S#9 9 9 ! 9.9.a.9.^@^@= p _.s h m$r.r.{ { s.~+m$^.^.^.r.r.{ r./@+*[._.>+f+[.^@<.e._._.s e._.e.>+s s e._.S#p p = 9 S#S#p o b.p 3._.p 9 S#9 9 9 9 = = ! ! ! = 9.Z :.P b.%.j <.P P ^@_ 3 ~.3 a+( )#j ( u ~%. | + u ~%~%l + a+a+3 a+b E 0 J ` ^@5.$ 9+W = Z b+_...;.~#1.8.'%H%<+a&&.y {+]+^+1 y 2+3+<+_+4*f.+ 0 # %.0 J S#0.s '=_@<+n ~ 4.- @+h N '%s.~ 4 ,@B-8.~#>+9.a.9.}.j x*Z ~%+ + + + + + + E 9+9+( ( ( ( ( ( 8@W _ ` % d 0 W d+` @ -#v f.4.a.>+e.i j )+Z s , 0+", "@ b+W i %.l @ =.e.S#j e.i J $ :.9 Z %.0 ^ W J # ! 7 $ b+W $ b+0 $ $ $ '.P # b+_ j :.|.o 9.7 a.= - s.a G q.^./@@*{.Y } |-s.^.'=! P P b.v o=)+) N o=; 0+W [ 6.M%4@2@{+c+1.x*;#w f.J -#m [ n [ ^@a.[.=.s =.=.-#-#0.4 4 - )+=#=#=#)+0.0.0.0.=.[.4 q N r.s.p.r.s.s.~+~+s.s.~+p.p.p.p.q.J%-#3.S#_._.Z !#p e.f+f+_.p 3._.e.>+e._.p p _.3.p S#S#9 !#o 9 9 = a.Z !#Z 9.a.a.9.9.! 9 9 ! 9.= ! 9.a.Z 9.9.a.a.3.^ 3 a+~.E ~.3 ( ( u ~%~%u b ` % a+8@+ 3 ( ( ( E )#b.& E o -#& A 3...^@}.m )+~#7.1.@+7.c.1 C%c 5 {+1 {+1 ]+1+k=<+:+q.b+E A & 5.1.d |.[.4 {.V <+#%9&6.S#[.~#N g.{., 9 !#d.$.7.4.f+= :.^@b.'%! u + + + + + + + ~.e+a+E ( ( ( ( ( a+b.d+W ` % e+9+~.g+= =.f.f.) a._.3.!#!#=#[., /@v.", "d+$ _ b.|.( + 9 s )#d+= >+@ >+N e+( 6.)%0.'%K%'=U $.'=)%0+c c&0+l$> ,%l$i-@ @ |.= |.|.d+o ! ! ^@0.K#v.L r.U ~+K%,=K#K%@*/@{ <$o b+W j '=G ^@% [.f.R#@+:.8&a Z 4*2@M 1+'=L%<$,%'%M%K%M%] 0.) P d+7 %.d+'.# %.|.b.7 j %.j j <.P 7 7 i }.^@o P i-) v a /@^. . .m$m$m$^.^. .~+v.r.s./@O--#=#0.)+f.f.4 v 2.h N ....1.....8.8.c.8.T#g 1.....T#g 5.f.g 8.T#T#T#1.N 5.,.5.h ~#N 7.7.T#T#~#,@,@) )+4 4.6.4 - b+3 ~.~.~.~.3 3 ( ~%u + 3 d E ( E ( l ( 3 ` & ` ` d+e+~.$ '.g+Z p [.}._./ %.9.) ..c.T#m q.8&/ y ]+1 5 1 {+:+2+<+^+M%u ).J b+(.,%_ ^ >+4.l$5 k=-;-;) j 7 6.=#@+<$..S#,@M% .i-) >+9 a.!#P r }.l + + + + + + + ( b d ).( 8@8@( ( ( A '.@ a+E b ).( b.>+-#5.,.4.a.S#N 4 _.R#0+0+*.-.", "p S#:.j '.` l b.h & u @ s p 4 _.u . w 3+R#/@_@:+_@1@S M M 4@(@D (@2@Q V I%^ %.P e.! j $ # 7 Z b.- { p.U p.G 2 {.&.^.n T /@ .C%G *.K%8.{.c i ` |.0.f.S#j m$:@g.l$@.<@2@_@a m$k={+'=g+~.u l u ~%( @ ^@9.^@o :.7 P j |.%.%.# # '.# j J _ W o o=o._.- z o.^.{ s.r.r.s.r.{ s.p./@q.q.q.-#@ j j %.P o 7 :.:.7 i o !#9.Z i ^@a.! Z :.i a.a.! 9.a.9.9.Z ^@^@a.= p p 9 = _.3.e.>+f+s [.0.-#s q q [.[.[.=.-#q b+E b ~.( + ~.~.3 | l ` ` d a++ e++ u b d+j '.W g+P ` ).<.@ W =#v ! d+P ..A S#a.q 5.T#N 0+!%{.{+y ]+5 ]+{+5 1+_+|@x*E '.0 6.y q.'.J S#>+B-F k=A-#%-#$ # 2.-#;., ..f.g.B-U k _._.= 3.3.i r 9 ~%+ + + + + + + ( e+e+( ( ( ( ( ( ( )#g+a+3 a+'.$ # _._.0.~#5.)+m L%c+^@~#!%@*~+0&#%", "f+3.}.<.<.'.` Z 6.5.( ( |.S#b.=#=.| b 5.m K#1+>.>.b&F -._+:+3+{+4*1+k=4*c+_ $ b+S#9 9.Z ^@P j <.;.|-+.'=T ~ +*'=$.].,=n m$ .<@6+5+:@@*; > f+).= 4.,.i # p.J%=.r.2@3@2@Q Q M M @.l$. | + + l ~%8@p .C%8&9&q./@2 .{ v.v.^.Y G .].a.J ;#q.4+}-*.Y /@r.{ m$ .~+m$^.G K#Y U *.U .^.g.=#) )+0.:.& 7 e.9.9.Z o }.i i i :.b.= K%0+s b.b.b.<.%.W b+j %.|.%.'.# %.%.'.# |.%.d+d+b+b+b+d+d+@ '.^ d+d+%.# }.d+E E E 9.f.e+3 3 % ( ` A b ( u b + + |.<.).~.% g+j J '.9 @ 0 )+- !#'.! i-3.0.s S#S#q 1.Z=d.,%<+{+:+y y ]+]+:+F 1@B-3 |.^ L y -.>+( :.[.K#:+A-#.k=[.` J ) q R#L%w v h &.c 8.! ! 9.!#Z 9 k c+# l + + + + 8@+ ( d ( ( ( ( a+( 3 9+o 7 J ~.a+^@! ;#p 3.0.h h )+r '=o=- ~#n Y *.+*|-", "l$,%;#o=, ;#R#B-v 4.}.j =#d.k ; L%2.~#@+'%K##%0&4*8&4*A-4+y 3+5 K I -;z l$- P W b.Z W <.:.b.i ) &.L%<$e / ,=~ c )%L ,=&.T } 2+n 2 .[ &.n 1.)#^ 7 # 9+=#'%9 s.3@1 5 :@_@_+5+3@ .L + . 8@a++ . | b.4 H%;.e.c.q.!+2 >.>.9&O !+>.!+o.S#3 c }-#%#.C%0&O !+!+q.r.r.r.p.p.s.v.J%@*L .r.>.!+>.a a&H%_ 6 9&s.r.v.v.~+^. . .J%].m$3+5 K @*K%~ ~ c+3 7 {.'=Z=$.(.e <$!%L%c+c+B-d.x*H%w g.k 8.g.a.! 3.@ _ b % e+b 8@1.I I :.+ ~.@ 9+)#J d + + E u ).|.& '.3 a+` o j |.a.'.b+H%p b;o S#R#0.= )+= a.p m L%,%i-L -;^+<+y ]+]+]+:+1@d.3 & =#<+2+6+5.+ 7 -#J%4+}-2+o.^@b g+[.q v I%;#j 2.0+!%; =.9.3.S#^@!#w q R#( + + ( + + + 8@3 ( 8@( & _ ` $ j <.=.- & 3 :.k )+p _.)+,@,@)+d.(.c&,.r T Y .^.r.", ",=+.~ Z={.K%} @*,.S#_.3.i-+*K%/ / '=~ Z=$.&.$.<$> / (.(.(.{.Z=M%p e.f+>+> /@(.|.^@e.%.}.o 7 g ~ +.|-/ Z=~ n T > 5.@+g H%T ~ @*0+Z=|-I%B-/ M%T#w )+5.)+$ g.A-2@3@a 1.^+{+X 5+]+9 ,%:.J 2.g.S#+ ( f+b.| + b , K C%a&a&9&O o+>.a a a&;#| e 9&K C%!+o.o./@o./@p.o.v.^.v.~+J%L ].].T L U T G G p.e + x*2 v.~+m$r.s.s.r.r.p.r.q.#%:+2+r.^.~+{ K#).}.o. .r.{ s.r.s.p.r.r.m$L +.T K#T n U G v.[.a.@*+*i-A e+d E b+!+1 0&0 ( ~.$ & )#'.0 8@a+_ ( 7 $ )#i e+~.% :.S#!#W b+` j %.c;6*d;_.|.9 s ! }.e.f.o 6., {.~ A-1 _+5 5 ]+:+]+..J |.2 :+2+<@'=s $./@O -;2+U h %.` J # J e+` e.7.m o=<$0+0.}.0.S#}.^@i-_ > <.u + + + + + 8@+ 8@8@b ` E }.j _ ` P = J l p R#p e._.)+,.2.0.c&> ..q l$/ 0+(.e |-", "/ ,=,='=/ / @*c+> ] v h 1./ ~ } |-|-Z=n ~ +.|-'=$.|-|-Z=(./ e ;#g =#4.5.)%~+I%# ,@c.d.> m e.I%@*+.|-} } |-K%|-l$! ! p =.0+].~ ~ |-@*|-~ ~ +*+*L +*T +*..^+(@1@_@T#J O 5+-.{+6+c&_.K%/ ,=|-; o=,%(.e R#R#, Z=Z=k w r w ,=m$Y { ^.^./ ,@{.~+m$s./@s.r.s.2 q.a ^.~ n @*+*m$r.p.r.m$T G G ^.m$r.*.$ M%o.r.p.2 p.2 2 2 /@2 { { 4*:+4*^.^.^.^.s.b+|.s.U Y m$Y U J%J%U *.n $./ '='=&.<$)%} T v }.+*n B-! i A a+'.O 4+#.! 8@~.g+_ )#'.& ( % 0 ( s 0 % j b.b e+'.,.P j Z & ` e;f;g;h;i;^ >+_.9.o >+,.<.j g !%K%+.C%{+1 {+]+6+2+-#j K#^+1+:+<@4*X .-;b&4+!%|.,@j ` A b+<.p 9 s O-/ c&k M%)+Z -#- Z ! '%g+e.P ~%+ + + + 8@+ + 8@( ( % _ P J ).g+` & e+! z !%4 f+e.0.2.2.f+[.= p L%|-~ o=] 1./ ", "0+,=)%$.; (.} '%, 8.7.1.)+I%$.'={.K%'=Z=/ K%Z=/ '=K%K%/ ,=L%a.P - e.- I%].>.O-j o=c+K%v.J%w (.G L @*Y T T T K%M%;#v 5.7.B-Y +.@**.U U K#*.J%Y K#Y .J%q.5 |@:+O-_ 0.|@^+5 ]+<@:@w K%Y ].T L / ~ K%} K%].T ].)%>+= 9.Z M%K#+.@*|-K%@*~ &.,=$.n n n ].n } L U r o S#_.=#} +.{.K%} K%~ @*/ |-n @*)%{.~ } } +*|-T#..g.c.(.U *.s./@v.Y U J%Y J%5.@+~+^.^.~+^.^.].0+'=K%} m$m$K#J%G +*/ Y ~+;.)+*.~ n L ,=o g+%./@1+<+@+|.9+b+:.` $ b + 3 )#| f.Z + % & 3 )#& i-9.J '.A b+j;k;l;m;n;j !#}.7 <.a.=.:.:.>+9.k , B-+*!+O !+K v.a.) X z !+X 2+8&r.!%#%8&c+d+$ ] '.b e+! [ c ; )%&.Z=+*|-o=p i ! -#9 Z R#$ 3 3 + + + + + 8@8@+ ( ( ( ( b )#d '.= ` + j ].2 / g.p >+)+,@e.<.O-^@@+L%L%B-r 0.h &.", ")%&.$.!%; &.].[ k ;#!%g.M%l$,=/ 0+'=~ ~ '=$.{.&.)%~ n / (.s j d+b # !#[. .#.i-_.} O-e m$U &.~ T L T T L L T Z=R#> ..r ~#8.|-K%{.|-K%@*].n +*T U *.T *.> @*I%s ` :.!+Q ]+{+_@S M 4*m$r.r.s.s.^.Y K#r.^.^.~+~+d.L%h ,@] r ].J%].T T |-!%(.(.)%+*Y Y J%J%U K#L , ) 3.s v ~ J%L J%L +*J%+*].J%*.T +*@*|-+.K%n +.) f+=.f+I%*.e n |-L / )%n U {.K%T @*T +*+*@*K#O-:.! 9.=.} @*} K%+.|-n ].Z=$.,=K%,=)%n ~ e c+!%g.] T#] ] l$!%n 6 , ;#w c.c.T#> > ,.,.5.v 5.,.c.-#'.P j =#o;p;q;r;s;-#- q s 9 e.- 0.p 3.|.|.] > c+{.a&z C%+*i B-#.q.!+}-X /@2 n I o=J '.|.4 d+~.E i [ 0+> <$Z=0++*^+/@f.j !#^@7 7 N 9+a++ ~%l + + + + + + + + + ( ( 8@( a+0 @ _ a.0 J K#C%x*|.}.q ^@q ;#2.B-e l$..g._.f+$.", "c (.c !%(.&.].M%B-c&Y ,%{.K%)%'=,=,=c / '=~ |-Z=$.$.~ Z=l$d+0 <.b.Z 9.6.2 b&7.k |-o=> Y U 0+} L *.L } +*T T K%'%6 B-, k , !%n n ~ {.+.].} n ].+*L +*Y q $ d+_ ;.I 3@1@<+4*_@_@^+M 0&~+s.0&>.2 >.r.p.^.v.v.{ c.L%T#[ w ,.&.*.L n } +./ 0+,=K%].+*@*@*T T Y ; O-o==.~#q N U G .m$^.r. .~+m$G .K#K#*.U L .M%0+g ,.m @+/ 0+,=K#~+K%e +*m$L K#J%K#m$m$ .{ G M%1.q e.0.,=Y G J%U m$G T Z=~ J%G L 0++.+*L @*T v = _.= x*Y +*+*L ].+*} +.L K#+.+**.} } +*L *.6 ^@S#p =.|-K#t;u;+.L *.@*K%|-+.~ } n '=K%,=c ,=7.) 6...B-m$|-e |-~+m$r.a 2 ^.s.J%s.)%w x*r ; S#b a+# @+c 0+L%)%;#l$L z @*h 5.=#=#0.k 3.i %.d+& ` ` )#` A A ` ` d d d d e+% b 4 ,@# l j -;6+6 ( b ^ = S#4 ;.,%'=<$m 8.}.o &.", "$.(.(.$.)%)%+*g.- f.;#,@7.R#e Z=$.Z=/ Z=Z=,='=/ c K%{.Z=L%d+J %.j 9.Z 7.8&o+)+l$+.I%,%m$Y c / ~ |-~ K%~ @*G n x*B-l$I%[ n ,=K%|-'=} } } |-~ } L J%L @*5.-#6 U 2@3@V y I 6+|@5+M 2@K { o.8&0&>.o.v.^.*.Y { r.r B-7.c&@+r L%].T } +*J%&.Z=K%} +.+*+*~ n } L (.[ O-@+R#@+c.K%G ~+G Y .m${ G *.*.].U K#L +*T H%L%;#c.x*h c&,=$.n +*+*].L K#Y U *.U ^.m$Y s.'=c.'=6.,.) ,@K#^.G m$p.r.~+Y Y r.o.~++.K#T U .l$,%x*,.7.N (.G J%T J%K#@*].T m$*.K#L *.*.*.L J%;#d.4 q - v;G .U J%G w;x;J%U J%T T K#T G J%G @*5.q s 9 ~#+*L K#+*+.n |-n {.@*n |-Z=+.*.T T G 6.E ~.b+,.O-{.6 ,%~ T )%L%L%+*].K#|-n ].n ~ ,=+*8.o ! Z )+c 0+e !%e ,%L%,%l$c+L%G L i-k ,%Z=~ o=9.a.p _.,.O-M%,=> &...h W @ > ", "/ Z=/ / (.e ].g )#A 9.% 0 _.> / )%&.Z=Z=0+$./ (.)%~ ~ {.'=_.)#|.'.@ |.d.K s.!## n 0+B-K#@*c '={.'=K%Z=/ ].U K%q 4...g.6.'%L%~ Z=$.0+Z=/ K%} +.+*@*].+.0.:.@*:@5+_@|@4*^.:+6+M M M A-J%~+o.a 2 { { ~+J%L U Y w (.;#<$<$,=L +*@*+.].L )%&.K%|-J%J%L K%/ {.@*0+l$I%<$e c+)%'=K# .*.K#m$m$r. .K#U G L L L L T H%B-w ,%O-)%<$$.].+**.|-@*U G G ^.^.*.Y G { s.} 8.&.o=B-8.g '=r.p.a o+a q.m$J%v.{ Y K#U L K#m$;.c+;#;.r g , G K#T L U ].L J%m$K#@*@*+*U U J%{.] {.2.4.y;z;'=^.Y .^.Y .{ ^.v.Y U J%].A;T U ;#B;<$) ,.) r Y K#K#Y U G . . .U ].T +*L *.T .0.b E g+h d.0+(.+*o. .{.R#H%J%m$m$G m$ .U *.J%~+x*f.[.f+5.].J%T *.U U *.].L ].L ~ +.].+.*.} T @*4 p _.! 6 $.l$,=> ,=;.h J 0 6 ", "{.'={.} &.)%~ l$= o h Z }.] R#!%(.c c )%,=Z='=(.0+&.'=K%{.e @ b+b+W P Z=K >.:.. f.'=;#].+./ +.n |-} n } +.|-+.P )#g+@ E S#'%/ $.0+c / Z=,='=+.|-@*n @*^@= C%5+:@V 6+b&c 5+5+3@3@2@-.].U Y r.^.~+{ Y *.+*J%v.-#9.! ) p 4.c&@*T L +*+*{.|-].L U T ].~ '=+.J%<$'%M%!%].!%T +*T *.T G ~+^.J%U G Y J%K#*.T +.} w <$B-'=e &.~ &.~ +.].].@*U G K#J%G U T *.Y ~+~ k <$<${.;#> c&Y r.2 /@a 2 { ./@~+U U U ].T U k ;#R#I%k <$@*K%].T *.T ].*.*.v.m$T U +*+*@**.} ,.; d.M%C;D;E;F;^.{ m$U K#m$^. .F;U L ].G;H;J%I;J;(.@+l$8.c.n T G L *.G m$m$^.K#J%U G U L L T = 9+b 3 Z 8.B-(.> ~ K%O-O-M%+.~+G U Y . .U ~+,%T#].,.~#,.v +*K#L *.J%T J%J%G U *.G U U ~+m$r.O-c.d.=.=#~#2.;.!%I%; w N $ $ i-", "'=,='=} c )%K%{.!%T#R#M%m 0+<$$.0+&.Z=)%&.$.'=&.,='=&.$.$.{ m A J b+)+o.A-C%'.. ~.w c++.+.Z=n } |-} n |-K%|-G T#>+p =#i 4 B-)%> ; )%$./ ,={.} n ].@*L 4.k 6+:+V <@_@T 7 ,% .0+|-q.r.*.T .m$J%^.m$U L @**.r.)+e+d ^@~.).H%+*+*].L } '=K%K%].U T @*@*|-+. .c&'.J o v ` 7.K%].J%U K#Y ~+ .G U K#+*J%U |-'=n ,@s -#h ,.,@(.L%|-T @*T T K#{ .U J%U K#G U { '=m c&, )%B-} ~ +. .{ a q.p.{ s.^. .*.~ T .J%Y H%[ 6 c &.B-T Z=} +*].+*T U @*G m$G K#*.].n L @*h (.I%K;l$'%c&*.^.G L;+*T J%U 1- .U L +**.J%^.M;N;M%l$c+M%].Z=*.G K#G G r.m$G T U U Y U K#m$K#^@_ ` a+` _.g.; I%'%d.x*,.g.'=^.U .G J%K#*.Y M%N )%,@d.H%0.c +*].*.T L T T *.+*+*L +.].Y .~+;.R#c ] K#o=s v g.[ c&'%1.0 0 8.", ")%$./ {.'=&.n {.; w B-> c.; !%c+L%0+c '=!%; c <$<$&.c c ,=p.T ).3 d 0.a&A-#%<.. . J ,%J%G ~ ~ |-+.} } ].Z=n T ,=)%;./ H%o=c !%!%c $.$.Z={.} ~ {.} +.n } } v.k ! 6.~#;.Z ).2.- ~#T *.J%U J%Y *. .U K#T J%L v.I%7.f+T#q S#e ~ ].].~ ~ / '=@*T +**.@*@*].+*Y K%^@$ @ ,.c&+.n *.U G K#m$~+G K#m$Y J%+**.+.'=U ,@` b '.@ e+;.0+|-+*].n |-*. . .K#G G ^.U G { / # b+W =.0 e.^.v.K# .{ s.s.2 { ^.G J%+*|-*.L v.7.o 9.=#,.e.L%{.} |-T L *.*.U J%^.Y n +.+.*.+*].- O;P;[ c*@+c+^=U J%1-@*Q;|-@*R;S;+*+*G;J%T;Y U;V;c&)%^=c&,=n-T J%^.{ s.{ . .Y .U ].L *. . .e.& 9+% 3 @ 4 B-<$;#I%N v d./ J%Y G U G J%J% .B-~#c&g.B-r ;#0+@*+.*.J%T T G L +*+*+.].@*T *.~+g.r i-H%q.H%4.5.,.N r ] 6.g+).q ", "&.0+!%0+)%c ,=!%o=w ;#M%g !%<$c&B-> (.!%L%!%c 0+)%&.,=|-+*o+X # + ( l$A->.K ~#. ~%b e r.O @*Z=Z=} '=~ @*+.{.+./ > 7.$.'%I%K%<$(.0+)%'='=/ 0+{.K%K%@*+.&.Z=J%a.~.b g+'%R#J }.8.w +.+*T ].*.J%U K#U J%T T L U K%0+i-, [ g +*'=~ } ~ } ,=,={.@**.L n @*L @*U .(.T#5.+*-.2+a&U +*L U m$m$T +*].T ].} +.@*|-U l$- Z q ) Z , Z=} L J%+.@*J%U G U J%U Y K#T v.U a.d+$ S#_ q q.4*O { r.2 s.r.~+v.Y J%|-@*|-n ~+x*& )#& J ` '%~ |-|-+.*.*.T U T .J%L J%].*.*.+*}.W;X;Y;).Z;> T T%-*`;A; >U ].+..>^=|-+.|-+>G @>#>$>%>&>*>#;} ].T J%^.~+^. .m$G { m$K#K#U Y m$=.'.d )#~.` !#c.; c+r g w l$e J%J%@*+.L U T v.l$~#<$i- .l$)%+.} U J%J%L +**.Y +*+*K#].+*+.T ~+H%i-d.g e g.h 8.] m ..S#o ` ).= ", "0+(.)%<$L%; <$6 O-x*H%c+T#e )%(.> c+> > I%; c e c&M%w e e c G 4 ` 9 p.#%p.>.8&>+| @ v.s.o+ .|-Z=Z=n K%+.].} +.c ,%g e R#;#~ ; ; ; e c 0+/ 0+{.,=$.K%+.Z=Z=I%J ).` = *.M%<.o '%,%$.|-].+*T +.n Y G Y ].@*|-~ 0+,%k ,%l$H%+*Z=K%Z=+.n / / Z=} ].+.@*].L @*U G ~ , g.{ 4*-;0&].T ].J%*.@*L ].n L +.|-~ *.~ |-n Z=8.c+L%c.{.c K%|-].L |-+*K#J%@*T 6;S;A;L Y Y (.6 ~#O-,.> q.2+-;2 /@2 ^.{ v.Y *.J%|-*.].T K#$.5.9 5.6.9.c&|-L *.K#*.G Y .L G G L ].J%T K#^.=>->;>p >>c;!%,>'>)>!>~>{>4%].U J%].7;@*+>]>m$^>/>(>_>:><>[>'=K#K#J%U K#G ~+G G ^.K# .G J%J%U -## ` )#b ( J -#B-> 6 O-;#(.c&T *.@*|-+**.*.v.i-|.i '.,.[.>+K%@**.L ].].L T U T T J%].n |-T ~+h =.v ,@[ d.,.@+f.h ,.}.}.d 0 f+", ",%e 0+<$<$(.; [ l$;#w ,%N c+&.0+e ,%; l$,%L%e )%f+f.@+m [ =.4 4.S#<${ o.T ; *.2+;.>+-;s.9&4*}-~+K%/ } {.K%/ <$c&; r L%d.x*].(.> e &.e 0+/ Z=~ K%Z=/ ,=,=,=] )#& ` 8.q.(.S#!#6 Z=c&$.K%L K#+.K%> i-/ @*+*{.0+L%c&x*,%> w n ,=$.)%/ ,=$./ '=} } L L @*n +*Y U '=, i-v.C%-;>.,={.~ L |-@*@*J%+*T @*@*+.*./ @*} c k 6 e H%Z=&.,=K%].T +.].+*].+*L }>S;|>L *. .].1>;#$.r (.q.I 2+o.~+r.v.Y Y K#K#*.K#Y ].].K#L n ~#L%,%8.K#Z=n +.K#K#*.Y *.G U *.+.} U T *.m$)%2>3>4>R#5>n-/ 6>)>k=7>8>T;+*U L +*4%T T%+*U $.9>0>a>`.b>#;|-n c>U 1-d>e>Y K#Y J%L @*Y *.T K#,@7 _ d d )#)#%.1.e > > c+, ;#*.].*.L |-L T ^.> b+g+% d+P ^ {.].+*L ].G *.U G K#J%J%L G ^.*.^.6.e+& 7.M%g ) o=m v 2.P %.b b.p ", "B-I%c&c+,%!%e O-'%k w 6 H%I%> ,%B-I%c&O-, c+d.I%a.3 7 ~.% ~%-#;.~#R#I%,%r 2.) c c c&-;4+2+4+y ]+C%J%$.)%Z=)%c&!%e g > , x*].$.L%L%!%)%!%(.c )%&.&.; (.)%c f+& s 9 '%J%$.6.S#i-@*,%'=K%@*'%,@s %.S#<.,%T ,=<$, (.[ c+; c.&./ $.&.e &.e ,=/ / n ].].|-+.L U |-0+I%O- .>.}-8& .K%~ ].T |-+.+*].+.+.].@*n '='=,=(.w ;#)%d.K%~ '='=].@*Z=~ @*+*+.n >;f>g>h>A;1-i>j>k>'=4>c o.#.1+9&U ^.^.U m$ .U J%L Y +*} T K%,=g.c+> H%J%'='=|-@*L *.T |-+*J%+.|-@*T T T 1-l>)%k>m>0+n>s=0%o>p>q>F r>T%L L ].*.|;G;U J%s>A;t>u>v>w>i-} x>y>z>>;A>B>|;J%C>s>U K#U U T @*^.r o 0 A ` W 0 A 9 l$(.l$d.[ c&o+L @*+.+*T +**.+.k =#e.=#4.] &.n +**.J%U Y K#m$m$T T L m$U +.K#d.9.S#] I%w =#, ~#) N o ` b :.j ", "f.,.[ } K%)%/ c > ; e (.0+,=$.0+&.c L%,%,%w 4 _.e.p 7 ^ _ A o o & 3.@+;.3.,@N m h h '=s.q.v./@O a&q.2 +.i-x*O-l$B-H%B-M%M%'=~ $.I%B-, O-O-, I%, , l$<$<$&.Z o 8.f.8.'=Z=k ~#8.K%B-; ,%-#a.4 J 9+|.3 c.K%e ; 0+$.i-M%(.c.(.'=,=,=Z=$.L%'=&.&.K%K%K%'={.Z='=e !%M%B-p.a A-I o.K%'=|-@*n |-].n '=} +.n )%$.L%I%!%O-;#'=M%n n } '=Z=Z=Z=+*].} ~ ,>D>E>F>G>,>6>H>I>J>K>L>M>N>#%O>O ].+.+*].].*.].J%T U ].].+*'=!%;.;#)%o=@*/ e K%].@*L +*+.n |-L L T @*].|>+>P>e Q>M>Z=R>S>T>U>V>W>2+_#g>n L z>J%U +*@*].|>^=w>X>Y>Z>k>`>i>K>s= ,A;6;.,+, .U ].!=1;@,*.|-+*S#'.<.4 :.J '.A J 7.c <$8.@+!%q.+*@*~ n |-+*G T @*d.i-!%,%c } ].@*@*Y K#*.L U K#].n @*+*+*+*]./ ,%=.4.[ @+0.d.) )+7.S#e+b P ).", "! Z w ].} / Z=&.; &.0+&.'=0+|-T ].L ~ T .6.<.! 3.e.>+>+>+e.j W b+[ ].L @*U .J%U +.+**.J%K#Y Y .Y q.p.Z |.s 0.4 4.4.f.7.T#c.r ,=n } ~ {.c ; K%K%{.K%~ K%R#g.o='%6 I%c.] h N B-R#d.)+^@9 3.f+s f+4.~#N c&$.&.<$[ O-c&, e <$(.!%e ; > e (.; &.0+c 0+<$)%c ; c+I%T q.2 !+z p./ 0+$.(.c / )%$.&.} )%/ )%(.&.c&e I%6 c o=|-K%'=&.K%{.'=~ '=/ {.w>$.{.)%0+&.L%&.w>#,$,%,0%&,*,=,-,s>n @*~ n T +.n {.+*} c e ; !%[ ,%(.'%]./ (.$.'=Z=K%} ~ L ].].+.Z=} n-l>e ;,; I;>,,=c+l>u.,,',),!,~,6>~ {,z>],c>^,} /,c>(,_,:,<,[,v>},n-K%'>|,/,!=T*J%K#L >c>1,+*+.n K%@ ~.W ^@p }.J )#( :.c&|-8.9 J%8&+*Z='=K%~ } L T {.x*;#L%M%<$Z=n ].@*].+*L +*+**.+.~ @*@*@*n } ,=@+o =#1.- _.x*=#=.m >+b E d+b ", "- q w T G L L } K%+.Z={.|-@*L K#J%T G m$Y ~#! - )+-#-#q =.p ^ W :.[ G ].|-*.J%J%Y K#m$m$G /@/@a o+a 2 ^.b.i 3.p 3.p ! Z ! ! ! e.Z=~+K#~+G n ,%G G Y G ^.J%o.r.{ .2 Z=a.9 9 p 9 _.e.>+e.f+0.=#> {.,=!%<$Z=~ n n {.+./ $.Z=} ~ c {.'%h m N 1.8.H%x*d.6 l$L%!%+.U ~+^.G ^.v.U n '=Z=/ e (.(.<$c&L%B-c&e e !%, , r o=L%<$K%/ c )%c e )%!%<$e 0+; / ; > 2,c c &.(.7=3,4,5,6,7, $8$8,e 9,c e L%(.<$L%)%)%<$(.; ; [ c+; [ K%} ,=)%(.,=/ {./ K%0,'=+*{.,=~$)%a,b,&.c,d,t&e,f,g,h,i,a&j,k,l,} /,@*} m,n,$,'=&.&.x>o,p,H>o,q,x>m,n-6>i>'>r,+*s,y>@*K%+*|-n K%&.= b b E W -#o j ~.( =#} $.@+q.9&{.'=n n ~ {.|-{.)%B-6 L%l$$./ !%Z=n ~ } @*+.} ~ ~ ~ ].@*{.{.c <$-#7 4 ,@0.e.1.1.,.m 0.b ~.A 3 ", "6.) q l$ .~ |-|-} {.{.|-K#J%Y G m$J%G U 8.)%1.] m ~#7...m f+0 :.,@;.(.T } +*].L } ].*.J%U J% .K#^.s.m$L%T#6.=#- ) 0.s =.=.f+>+[.e v.~+G .|-> +*^.r.~+v.~+v.G m$^.q.K%-#0.0.=.s =.[.s 3.f+f+0.|-m$*.].@*+*{.n L K%n K%{.+.|-n ~ +*x*3.e.S#p p ! 9 9.Z ! 9.,.].} +.+.T L Z=+.U J%G ].].L +*@*|-+.,@e.-#[.)+-#s =.=#=#6.] B-n {.|-} +.} +.|-Z=n @*t,l>e u,c+> v,w,x,y,z,A,B,C,D,E,S>G>F,G,/,].@*K%n |-} } L%, '%R#[ 6 )%'=&.0+(.(.!%0+$.@&},K>+.@*i>+>H,I,J,K,L,M,N,O,P,Q,R,S,T,U,A@V,W,Z=@&c c )%(.)%)%!%X,L>Y,K%Z,W*s=`,@&K>$, '&.$.,>{./ '=n / '=$.~ R#d % e+_ o 3.N d+| d c+L '=+*v./ / &.0+,=/ / ; e , ;#<$e '=$.,=)%&.$.0+0+$.} K%c 0+n n {.&.!%o=o ^@2.h 3.f+N 5.N h -#% 3 E ( ", "i-8.h i-@*{.'=} @*{.n ~ ].T v.Y .T v.K#7.Z=6 8.8.w g.1.H%5.S#v 6.=.r {.&.'=K%} } $.|-|-} } ~ } ].m$n ,.n ~#>+f+=.f+S#f+[.)+q 0.-#B-+.{.} )%> |-J%J%J%J%K#+*@*G v.K%H%c h h 5.h ~#] 5.f.h ~#8.<$Y ^.U G U J%U v.m$Y G m$Y L L *.].I%g.7.~#] ,@4.) 4 =#q s m J%*.G ^.K#Y L +**.G L T U @*L T G r...s =.f+_.3.! ! 9.Z !#o x*n )%,={.0+Z='={.{./ 0+.'.$+'@&<$n @'#'X.$'b$%'$>&'$>*'='-';'t&T%T J%Y +**.+*K%n ].Z=n {.,=~ / {.i-q 4 6.>'F#,''')'!'~'{']'^'^=/'('_':'<'['}'|'1't@2'B+D.3'T>H>4'5'6'7'8'9'c 0'e <,a'.%b'c',=d'c e,F*0+$.!%,=&.} e'f'g'} n *.m$9.3 ~.d 0 |.,@<.l u 1.Y J%|-+*0+$.c 0+c <$)%(.&.l$'%e e (.&.+*(./ ; L%0+c&> ,%I%!%L%l$I%c+I%l$g 4 ,@m f+e.~#] ,@,.S#3 ( ~.( ", "'%[ <$M%,=L ~ n @*|-K%@*n G { ^.r.{ v. .T#<$i-R#T#i-O-'%d.[ i-o=d.w R#Z=~ n ~ +.|-|-T @*].].L L |-J%].N &.O-..g ;.8.m 8.2.- 1.f+9 O-} '=,=(.)%} +.@*].+*].K%|-+*G 0+5./ 8.h ..7.,@] m - 4.,@=#)+c @*].+*@*J%@**.Y U G G J% .*.+*'%r |-f.f.,@,@,.5.5.m ~#] N w J%m$^.K#Y .U Y Y G Y .K#G *.K#0+L%,%@+@+7.N 5.,.5.,@,.v c+K#U *.].+.@*L +.@*K%{.m,u.,>'=/ @*h'i'|&-'j'k'l'm'l'9*;+p n',=u*~ ,,l>+'x>~ |-o'n-{.p'].E>+.+**.q'o r's'#'t'#'u'}.Z v'w'x'p'~ /,K%y'x>y'x>z'+>^=].Z=x>G,} p=Y A'B'C'D'E'F'G'H'#=I'J'K'@&G !=K#J%].+*+*+*].].+.Q;/,y>|-].~ c g 9 e+b d d+P 6.,@:.` :./ L *.|-n @*} K%,=,=)%)%0+L%M%c&B-I%(.)%<$(.<$; '=$.(.!%,=K%K%L%!%; Z={., ~#1.w m v ~#1.g.8.=.b 3 ~.( ", "i-8.Z=c&L%T } ~ +*].+*J%J%m${ r.{ 2 /@m$g.> g B-M%c.'%O-;.g.,%'%N l$d.; {.+*+.|-} +.n @*].L T ].|-J%} m !%6 I%M%;.o=O-H%d.r H%g g.;#Z=|-].n '=|-U *.].T ].*.|-} ^.0+~#L%6 x*'%c+I%;#L%;#R#i-,@~#0+J%L *.K#G K#U G J%U ^.K#*.+*@*i-H%+.g.] x*H%,@8.8.,.1.w =.4.{.K#].].~ K%n ].+*T J%U @*L T K#N <${.5.N T#] ,.m g 1.g T#~#c.T |-*.J%+*L @,Y i>*.o'p=L U p.n ,'.$J;L'Q&M'O&N'O'P'Q'A%R'S'F, .T'U'3'i>t>V'W'~ ^=4%|;*.L m$ >X'Y'Z'Q&`' )Q&.)+)O'@)#)3%K#@*t>y'T K%|-3'6>+.+*} K%U *.J%v.V%$)x'0.s %)&)*)=)-)$>b>;)l$>)K%K%@*L +.|-].T K%+*} J%@*} @*+*/ S#9 J ~.e+b e+J A d+J l ,.K%L%;.R#{.Z=|-@*+*} K%} K%n n '=$.f.9 f+>+f+-#=#v h m 1.7.H%+*T L L +.Z=$.Z='=Z={.Z=} $.&.e c.` % ~.", "$.i-Z=a / } } '=Z=*.L +.+*K#~+{ s.p.o.Y k $.d.U o.;#,=2 6 O- .,=T#{.} (.|-n |-} ~ ~ n ].].K%K%n |-U n 7.0+[ n (.k O-c+w 6 ,%i-g I%x*e ].].} / } L n *.+*L ].n } .e T#l$7.~#,@1.K%l$g.r i-..5.'%6 U U ].L |-L G J%*.U .K#L ].K#'%x*/ g.6 i-i-; ;#1.[ c+R#c.g.(.G +.@*} n L } @*T J%T K%].+.G 8.L%Z=[ N I%o=@+c&c+x*i-'%h g.+*L +**.J%K%@*K%n } s=6>].n N>,)') '))~#!)w %#~#S-~){)T#O&f;, A;+' '])i>F>T'+'o'^)/)()/,/,~+_):)G;<)Z'[)})5.|)1)2)3)4)l&5)w>G p=+>T 6>y'p=K#~+6)|;m$~+{ ^.7)Z,w>[)8)9)0)a)8)b)Q&f*c)d)e)U 6;*.J%T T G .J%K#U f)K#K#K#r._*8.1.J + a+% 3 ( ~.! i u 9+,@h - 5.} } K%~ } |-{.|-~ @*@*|-v.O-Z ! Z }.^@i o !#!#i b.>+K%n '=/ '=K%K%{.(.{.@*|-,=} ~ +*B-e+% b ", "] ! w c R#'=} } K%} } T L *.U . . .v.K#f.'%g I%L%8.|-G w H%} <$..0+o+e |-} ~ } ~ @*+.+./ Z=|-n |-U {.T#{.> {.U l$;#v.e O-/@ .@+<$/ $.|-K%/ Z=+.} n +.@*n +.+.Z=U &.T#e @+|-&.c.&.U @+x*,=w c.M%i-|-*.+*G L K#*.+**.Y *.+*+*T Y 6 '%$.@+|-)%g.L%e @+8.~ ;.~#'%o=G *.L } ].|-T +*].|-+*~ |-J%*.g > M%c T ;#l$L%;#k *.~ k T#k $.].n +.*.|>+.g)'=h)x>/,{,L i)h'j)&.k)l)o=m)n)K+L%o)p)l$q)r)e >H>_*Z=6>s=,>y>].~ |-+*@**.2 s)t)n <,u)J+[ v)w)p)x)y)H%z)&#!%T |-n T E>].L |>U T +.J%~+v.^.A)B)+.C)D)E)9>F)l&G) ={)H)#=I)U Y *.+.U T J%J%J%Y G *.*.+*G K%- )%{.'.( u 3 d b ` %.$ a+( }.9 S#1.n ^.Y .^. .Y v.v.v. .r.n k I%T#[.s [.=.q =.=.s e.) $.n J%T ].@*} @*+.@*J%G |-L T Y H%b d d ", "@ 3 e.,@f.c / n ].~ +.@*L .*.+**.U ^.G a.)#)#H%h d 3., $ _ T#o ` 0.[ [ $.~ } {.+.+.} K%n @**.+*+*m$~ S#6.-#r c 6.=.e 1.=.*.,%q c&T (.~ '=Z=0+,=].+.} ].|-|-~ ~ J%)%] (.'%+.L !%~ ~+c+I%s.0+; c+!%{.*.+*].|-].J%~ |-J%|-|-T J%G [ ;#J%)%(.n L%I%c e w > L%6 0+<$J%*.*.L +*+*].].@*+*@*+*n |-L 1.B-'%(.!+d.O-o+M%@+; )%g N k M%L ~ {.K>J)/',>} ~ +.i>n-K#m$K),&L)H%M)<,N)B-w>M%r $,I%H%O)L%n-@&S>/ l>m,+>T +*6>+.L ^=A;z-P)Q)R)o)S)I+6 T)U)k V)W)e,;.X)Y)!=+.K%|-+.Z)|;`) !A;^=L ^.W#.!+!@!0,#!W)$!%!&!*!M%=!-!w*;!>!} L ].L J%,! .Y Y m$^.L J%T Y $,%)L%} '.( l l e+E ^ # %.).d d ` P O-{. .Y U L J%G Y .K# .a l$_.~ I%f.m N m ] 7.5.2.,.) q ;#U U +.@*].].*.Y T m$ .K#K#^.p b ` e+", ":.g+# -#h I%/ n n ~ T T +**.J%T @*+*G v.4 & ` 0.T#% <.r J 9+,.!#% j r x*/ Z=~ Z=@*|-K%/ n |-T U *.L L o )#a+=.R#a+_ ;.%.E d.f.3 ,.,=O-Z='=} } Z=T } {.L +*n n {.U c b.i '.9 _.# ) , :.a.6 S#}.=.R#K%].+*+*} +*T +*+.+*].|-@*J%J%8.=.@+@+g R#;...;#O-N 8.[ k x*!%+*J%+.].n n L ].+.T J%*.|-|-|-..l$(.,%@*c&l$T } <$l$c I%B-)%c&+*{.} H;T''!h,n K%Z=~ y>T ^.K))!!!~!>,{!,=)%^.]!B-^!c , O-b,$.~ W'G>g,6>+.|-T J%U +*Y 6;p.s)/!(!Y'_!)%w :!$,;#M)~![ c.] 6 s,^=@*h-@*;Y Y Y v./@v.}!c,9'|!1!2!3!4!5!6!7!8!9!0!U#I%+>a!+.+*@*G ^.^.r.~+6;e>b!c!{.d!R)<$_.3 u l a+` 7 = P J 0 ` = <$U } ].U J%^.m$v.{ v.v./@0&c+)+)%<$B-o=c+l$x*(.;#1.I%k 4.[ +.G T +.@*L ]. .T .U T v.r 9+).9+` ", ";._._.M%;#c+)%&.)%c } n } n n ].].+.J%v.[ =.Z =.,%b.a.k a.%.- q j :.6 O-&.Z=n T n ~ ~ } ~ ~ {.{.@**.{ 4 J g+}.k J @ ;.}.A ,@N % _.n , K%'=Z=K%K%@*~ K%} +*} K%K%*.K%7 b+J <.i d '.5.9+` q d+b %.7.,=K%} ].].J%T @*@*].T T K#G v.@+).).e+W 0 b A 7 ` ` ^ 9+d ! d.+.n } n |-L |-n *.*.J%Y U K#J%- ^@9.}.h p 9.4.] _._.5.>+[.] L%+.@*L y>'>()n / '=} ].G;L #*e!f!g!l$|!h!c i!f)&.j!Z>@*!%&._*.%6>6>m,} ].x>+.K#L [!U U ~+p.k!l!K%m!n!S;o!; p!} o!/,y>0+M%I%('q!*. .U {,Y 6;^=T Y K# .s$^.r!s!c ~!_!t!c=u!v!w!i!x*x*X)##6 |>U @*].K#1-Y Y v.~+v..!^.s.y>x!a,<,,.` ( 3 ( b 9+).# ^ 7 -#m K%@*+*|-m$U K# .s.{ /@/@9&C%,%4.(.c&(.[ d.)%,%, d.L $.r ;.d.'=K#L U ].*.G .{ ~+U ~+@*P J $ & %.", "Z=o=4 {.<$l$c !%!%&.&.n @*+.n @*+.].+.G ,=,=> ,@; R#-#0+(.v i-$.T#0.$.0+&.~ K%/ / &.} |-+.{.n |-T +*Y l$..s f+,=) 9 c g 9.g l$a.) } O-)%} / &.Z=} n |-K%+.@*~ @*J%L 0.a.o S#6.# Z 1.j d+4 9.b+Z r &.} } n |-+.*.@*@*L *.+*L U .;#'.^ J d+j A $ -#'.J # 0 b 9 R#~ |-].@*@*L |-+*K#].@*K#T U v.4 J ` )#^@$ ` $ |.% A ! _ ` ^@,%Z=J%y! >(,n n {.'=n |-J%*.~+A,z!A!B!C!I)%.D!E!F!d+G!-#^ }.H!I!u.h)} |-~ n |;J%+*e>F;K#J!&*K!L!M!9).)N!O!P!>;x*7.H%<,c.x*6 ,=W'].*.Y T G J%^=+*L G m$Q!*.R!s#S!c+T!U!V!O-o!&.(.c&&.6 c+c&G;*.T +*K#|;.!1-6;Y { r.~+q.i>W!c+e w _ ~.b E E b e+b.= 6.~#) $.+*|-$.T U K#K#J%2 r.q.>.9&l$)+; B-B-)%i-&.].B-k Z=n B-c+l$&.G J%+*J%L U K#s.^.^.r.T#0 '.@ 0 9.", "c M%6.c )%(.; e / (.<$/ ,=|-+.L Z=n @*m${.U o.K%@*> [.,%,=h [ '=d.4.0+; <$c ,=&.+.,=Z=0+K%,=Z=&.~ } U '=~ k -#K%!%4.K%{.f.O-J%1.'%v.c L%c L%!%)%K%,=,=&.Z=~ c '=@*K#Z=c ] @+Z=r @**.;#s )%(.=#h e )%,={.+.T ].*.*.|-].@*+*|-].Y |-k N f+4 ,.[.a.g.f+|.9 3.j ) , )%Z=Z=} ].|-T T +.+*].T +*J%r.'%^@%.b+a.o 0 j !#0 j l$].9 e.o=,=!=.>h>S>} y>t=|-+>].Y |>X!Y!Z!`! ~.~V*+~@~#~l-$~J %~g+0 ~#u,|-].+*T 6>L !=s>T**.|;F;V%!+&~*~=~-~;~>~,~` F#'~)~!~T-)#b.r ~~1'~=J%{~+,]~^~K#K#/~^.Y G A;(~_~:~<~[~>>}~|~1~<.:.p Z 2~h ,=1-J%Y G J%G G *.G;Y ~+U ^.!+&.3~4~5~6~7~b e+b E a+% W >+,@~#- B-c &.{.].*.J%U J%~+{ r.v.a O-)+)%0+O-K#c+> o.,=/ ; } {.K%L%Z=m$*.T G L ].T J%L Y +*Z # j '.b+=.", "Z=e 7.c I%, e )%)%e $.&.)%'=Z=} ~ ~ L .Y >.O 0&^.; q ,%c 8.i-L M%6.&.L%c&!%(.!%} ~ / ,=&.~ K%n } K%J%~ Z=H%0.+.0+)+I%'==#6 s.g.g U ~ (.; > L%)%$.e ,=K%{.K%/ / $.*./ K%7.x*+.^.}-0&|-6.} G w 1.)%c&L%} |-} |-U @*+.+.+.n +*n G K#{.~ g., 0+,%T#,=; =#O-)%N Z=Z=> $.n {.+.} ~ ~ n *.U K#|-].~+} !%d.v [ ;#e.;.I%m O-8&#.o=;.Z=$.+>y!7;S>8~ >n |-8~3'9~g> .0~e*a~b~c~d~e~f~g~ )H&Z;.=h~i~Y'(!K%j~G,x> >T G;1-J%T U ~+$*o.~'k~l~m~n~ )o~p~q~$>r~s~t~^ ^@u~2;v~w~4%(%b!x~F;+*U 2 s.m$K#F;y~z~A~(>B~;>C~D~E~F~` j J J b) 'e>L L J%4%b!U G G;K#J%L m$/@!%G~H~I~J~d e+` e+b ~.b ` $ ,.5.- - (.].T |- .*.J%U G G Y v.o+k :.9.9 ^@,.-#3.I%2.>+3.8.)+4.;#T T L *.*.Y +*J%J%].v.O-|.P <.^ |.T#", "$.; @+<$c+, ; ; e !%0+e e $.,=,=$.Z=T J%>.X #%A-p.&.4 (.$.;.;.@*> ] Z=c 0+,=L%c&$.{.$.,=,=+./ ,=,=} U ~ ~ ,%4.].0+q l$T 6.8.].@+..n e $.!%0+!%0+Z={.,=; $.{.,=/ ,=L !%~ r B-|->.2+4*{ ../ |-M%@+'=c+Z=Z=,=,={.+.{.'={.~ K%|-+.m$T 0+/ k d.,=l$c.'=L%f.i-$.@+$.{.L%0+~ n } |-$.'=K%|-|-L n |-^.+.~ (.T#> n '%!%J%> {.4*4*0+A$y>~ E>],l>+>K~/)|-6>i>} |>f)F;1-L~].y;w +.I;H)c > O'l)'=m!_;(.I>M~()m,|-L ].].|>+**.6;~+U ~+m,N~3%O~L'B-P~Q~R~S~;)Q&m+9.4.1;_+_+T~X#U~b!e>m${~x./@.!,; .s.V~a%W~X~Y~j)Z~`~,@b.j p b.P {g!3'Y G;U .{Y ^.T ~+K#|-L;1-{ } +{@{#{r~b@b ` )#e+b d |.A ! )+- }.^@;.T#@*v.J%].+**.J%K#{ O H%b+J 9+` i @ ` q :.d A >+d 0 [ ].@*T ].J% .T +.*.*.~+5.|.:.b.^@o i-", "&.!%@+{.,=,%,%; <$c+!%(.c '=Z=(.e / $.^.X 4*I A-a&r.'%c+{.6 i-~ &.T#(.$.0+(.c&!%,%,=$.!%(.$.e K%c / *.K%} c&5.~ !%,.,%T N g *.d.,.K%<$Z=e <$> !%$.0+c 0+c c 0+0+/ *.,=/ '%[ L #.2+#.a&d.!%n ,%r L !%'=/ c c ; e '=c / {.,=].~ +**.$.)%w ;.,=,%~#,=} @+c.Z=1.e n ; {.{.0+/ +.c '=)%,=|-@*K%~ G @*K%0+x*!%K%[ <$n l$n ${2+a&%{H>&{G>_'s+~ u.*{={-{~ '>7;G;A;;{@&t=>{,{'{w*w)$,s=){!{Z=/ *!S>W,u.W'F,F,,>} Z=+.m,+*T*U !=}>^,{.I,~{(.G {{i!+*]{^{c &.J;P>/{${y ({_{:{1-!=>;6;}> .U 1-6;m$+*m,<{<,t>(.3>[{,%@+(&R#@+) > A$,=G K#6;|;G }{|;Y y>|{|>].].|-J#1{2{3{4{J ` ` ` )#` e.<.` $ j ^@d+|...L G G ^.*.*.T K#~+/@L%! }.j %.9.= b.) 6.@ d+)+<.j o=Z=K%|-@*L *.].n L G *.e.b.P 6.;.i R#", "0+)%@+c+<$l$M%> L%M%I%(.)%0+'=e 0+(.(./@X 4*1+-;X o+[ B-/ 6 '%K%)%k )%> (.L%> I%> (.> <$c )%$.{.; <$,=c > B-H%~ )%v (.^.i-d.+.[ ,@/ <$e (.6 '%c+e > $.!%; )%0+(.,=+.'=(.R#;.v.4*4*A-4*!%c *.M%H%*.(.n (.!%(.c&; )%,=; <$&.Z={.{.~ e e x*1.{.'=g )%*.6 g +*;.e '=/ K%0+,=; )%,=/ / Z=/ ~ K%'=@*} $.<$;.&.,=o=!%/ S>f@5{6{7{t+8{0+(.9{0{-{o>a{b{G>c{].+.|-c>d{e{f{g{h{Z=i{j{0%k{E#l{g,&.m{<$n{o{p{q{r{} @&i>~ y!1;s{7;w;t{T%0+u{{{c ,>v{a'{!,;w{,=t,x{_%y{z{A{X=B{C{D{t>|>S;G;T !=o-E{~+ >o'F{G{e {.k>H%$.e H%)%,=m{6>I>F,()+*|-L L +>H{8'=*I{$,} t&t&i-H%J{(&*)-#J ` ` d & l$6 )+|.).P -#0+L } q.}-O T T @*L +*v.|-e o=)+o=e N x*M%l$2.M%c&..1.c / +.].n } @*].T |-J%+.Z 7 b.~#[.i R#", " .n o=/ ; c.8.;.;.g...H%[ '%g.k [ c.<$>.a&}-I 4*K K#k 6 ,=, T#c <$c.$.<$!%)%; l$B-L%I%L%e / e <$L%c+<$(.<$)%g $.'=N ; L o=r *.M%) e <$L%L%'%7.l$<$'=; ,%> 0+&.&.(.c&!%|-> '%2 4*A--;A-'=,%U c&..^.$.$./ $.,=/ ; > e ; ,=(.c )%<$/ / ,=(.h &.c 7.} n w ;#*.R#)%K%c&,=$.c $.(.!%l$&./ ,=,=c $.+.$.!%<$r &.{.M%K{$,R;L{M{N{O{y{W',=P{L%Q{R{S{s=T{U>/'1-'=/,/,A>U{V{W{X{Y{g,Z{&.l,`{l$i>.% ],=.]+]n!;,=*S>c K>'{@]#]$]y!i>}{%]x>3'&]t&$,*]=]|--];]>]s=,]s%']q>-.:+)]!]E,} +.J%]>*.^.T ^=x.{.h)K,~],=1>~], K%'=x*$./ s!/,/ n-@*p'/,+*~ $.7'R)t&6%K,<,J#{]]]j;% e+g+}~^]0 ).e+^@Z=0+c 1.` [ K# .L ,=a A-q.@*T @*@*Y /@J%|-<$6.&.|-T#!%} '=x*'=/ L%M%~ $.].+.} ~ J%L +*} *.,=o i i !#P Z R#", "M%;#[ , d.6 ;#;#d.i-R#r '%r H%H%'%k B-m$9&{ a&b&v.|-/ (.0+, R#(.!%!%/ c&,=c ,%0+[ x*x*x*[ l$;#x*R#R#[ x*B-,%7.,%,%~#c&].'%o=@*(.k {.!%x*..1.m ..H%@+H%k i-x*r x*6 o=O-!%, R#v.#.X 4*K { Z= .)%~#+*'=)%c &.c &.)%; , )%)%(.)%L%'=K%)%Z=!%4.e / ] K%].M%k *.c+c ].c&,=|-&.(.c )%c )%$./ c c / e )%K%+.'%&.~ ,%!%$.+./](]N{W>_]:]K)Z>!%(.]{M~<]n!I!F*+.c c &.|-0+; 8'B-0+[]}]'=/,|]0%|>[]e 0+u~1]o!e 2]U{'=K>u.3]],4]H;D>5]h-n,G>6]L%c 7]8]t&9]0]!%e)a]b]c]M{d]e]}-f]g]n +.i>T @*U ].+.G $.(.L%R#c / H%c&n n-;#(.{.h]L I,=*{.H>6>i>I,i]2>.$n>j]9@b + u u ~%~%k]l]m]n]o]@ ` c.'=c+)%L%a.g G { n M% .4*9&T *.U U G { L ~ $.H%c+!%r c+)%)%R#)%/ c L%K%,%'=].~ } @*L +*L L )%i ^@^@|.9.=.H%", "d.k g.;#;#[ 6 6 [ ;#o=6 l$<$L%> L%L%B-~ s.p.K 0&s.(.l$L%;#w r '%@+g.x*;#B-, B-B-, [ , l$, o=B-B-, , M%i-x*H%7.R#d.@+[ e c+/ Z=0+<$e } &.I%l$[ x*R#w c.c.w c.T#;.c.x*;.r 8.T#+*O K C%9&o+m$^.|-o=*.L c ; ; > B-<$L%;#M%, l$6 R#o=6 [ o=, ..<$c 6 L J%<$B-*.!%,=+.&.Z=} } (.<$<$(.<$e c L%<$I%c '=/ Z=6 e T 0+)%$.*.0&p]2+-.C%I,R)e )%Z=} ~$,='=q],=,=0+0+,=$.c &.c&M%~ $.;#c 6>r]s]$,K>!%t]u]v]J,; u!o{z,g,P,w]V,x]/)y]p{,=u!n-z])%+.M~c&i>n,A]B]F*+'_{C]D]E]:+7{F].$n |-K%|-~ '=c &.].<$!%)%;.'={.G][ / ,=i-e Z=c+/ Z=/ H]p{o@I]H>J]8.2{K]L]~%M]u + N]O]P]Q]l]R]+ S]T]L.R#~ c&$.e O-&.U U (.@+2 k=b&G K#U Y T r.U $.c x*0+'='%; 0+0+'%e $.} L%/ &.'=n } {.|-{.+.+.+.,%7 ^@i |.4.4.;.", "g 8.g.'%[ '%[ x*i-B-l$, , l$l$[ L%c )%@*].*.o.s.}-^.0+e , '%r '%@+8.;#i-;#c+,%c+,%c&,%> > I%L%!%<$; <$6 [ g.g 6 H%g.i-i-@+r [ g.8.M%,%> M%M%, , M%l$c+I%I%l$I%,%c&M%;#[ 8.d.~ G O a 0&m$c&M%B-[ , M%, M%l$M%[ O-o=[ i-d.[ d.i-i-d.i-o=d.g.[ l$B-> K%/ $.c ,=~ |-+.{./ 0+> c (.<$> !%<$; I%M%I%c c ; @+<$Z=<$c &.} C%b&4*I #.K#&.c $./ c (.c !%B-> <$; (.&.(.c K%(.d.e ~ x*~ n &{,=p'6>1>V'U]V]i{e !%8'L)t&.%W,g,e{W]e &./ )%&.X]&.q!Y]Z]_*u.z](.{!`] ^7,M{.^.^3+~~_%F,+^Z=c Z=&.Z=/ &.c c c+i-{.+*w o=n {.x*0+/ ,%c )%)%t&n @^#^+'$^%^&^k]*^M]N]=^+ -^-^;^>^,^'^)^!^~^{^:!&.c&; O-; Y ~+,=c., -.3+}-~+|-} K%+*K#*.$.(.'%e {.; $.e )%7.(.@*c c&'=!%)%0+/ K%K%,=K%@*~ i-j Z p P ;#2.k ", ",.,@2.5.N 7.g 7.] 5.N 7.m ~#m ~#5.,.T#'%x*c.R#o=l$B-i-;.] 2.,@] ,@] 7.] ] ..g.x*'%x*i-R#, L%c+, M%M%o=[ '%g c.k T#8.k 8.g.c.r d.;.6 ;#o=6 ;#B-c+, o=c+I%I%B-c+O-R#d.l$,%M%&.v.U !+a&r.Y &.k H%B-B-B-6 , I%l$, ,%; ,%M%> <$; ; )%c&6 d.k 1.8.;...k r 8.O-o=c.r M%c+c&<$c+c+> c&,%<$L%; > <$,%L%c&M%, H%[ c+6 M%O-K%C%O a&b&K |-I%> c&L%I%I%I%c&I%l$l$,%,%,%l$(.<$c+8.c&c ; *.|-n } |-~ } $,)%R).'(.c&I%> , l$c+J,c&I%o='{].G {.g , t&.';,{.y>4%@&^= >[!]^^^/^(^M{_^:^<^[^(.; c e &.Z=+*+.Z=!%1.c @*H%c&*.{.l$|-@*$.} '=> P{(.)%}^.'|^. 1^*^O]P]+ + ;^>^'^2^3^4^5^6^7^8^9^0^0+L%)%i-Z=s.m$'=8.K#_+3+4*/@Z='='=$.,=} } $.d.> e ,=~ Z=|-r 0+$.$.)%~ 0+L%0+0+Z=,=,=$.,=Z=N ,@/ r !#<$f.R#", "- - 4 4.6.) =#=#v ] 5.6.2.2.,@m h ,@,@~#r o='%r 8.4 )+-#k 4.-#=#=#=#)+- =#[.=#v 6.,.H%;.r 1.....8.8.T#@+m v v 6.6.6.6.,.h ,.,@h 1.8.~#T#..~#N ~#....7.7...] 7.h h 6.8.i-c.@+R#O-M%l$c+(.,%[ d.l$R#g.T#@+r d.i-6 6 i-i-o=O-B-c+L%M%d.d.g.;.H%H%x*;.g.i-H%;#o=, I%> ; ; L%e ; ; L%L%e !%I%I%l$l$6 '%r '%, O J%<$~ o+#.9&I 1+#.@*c+,%c+B-l$> e !%<$c&(.0+)%; M%;#M%x*k B-l$[ O-l$;#, M%x*;#c+M%, I%c&I%c&,%c&<$; e I%!%<$; (.&.)%r M%,%0+L%,=/ 0+> )%,=1>a^b^c^d^e^m#c&> f^L%M%> I%c+&.K# .&.,%x*l$&.<$Z=G |-n T n } @*&.,%6 !%L%g^, <.. h^i^1^j^k^n]'^l^m^n^o^p^q^r^s^m^+~U#].,=> ;#L q.^.&.c&X 3+-.1+r.0+,=(.$.'=&.!%e ,%<$)%c '={.~ [ 0+$.,=(.~ ,=c / 0+)%&.0+&.)%Z=H%c p.2.- !%v O-", ") 4.f.,@7.N ,@v ,.1.T#g.m 2.,@,@~#1.T#T#r o=M%i-h 6.v -#k @+) - ) ) )+>+4 2.4.5...4.-#=#6.,.5.m 2.~#m 5.2.6.6.v 6.4 4.4 4 ) )+=#O-{.6.f.,.f.6.2.h f.=#4 2.] 2.,@,.2.N k c.h v T#H%k g 1.f.f.6.4.6.2.f.h c+6.~#g T#m g w w R#R#i-;.@+T#h m g N 8.7.N 7.~#m g.'%H%'%[ 6 l$;#c...k '%c.;.r H%H%c.g ~#r I%K#}-b&Y L L { 0&a&!+r.r.'=d.r R#6 [ R#'%O-I%M%, M%O-;#o=o=c.8.r R#'%'%, ;#H%[ i-d.o=M%c&<$<$!%)%(.c (.)%)%; !%&.c&R#6 '%H%6 ,%o=w [ ;#w i-d.c ]./@t^u^v^w^x^=]s+y^L%L%<$e (.c (.B-, H%k 6 l$;#o=I%[ i-l$L%> ; <$,%l$c+I%b,z^d@h^. A^h^1^,^B^l^C^>>n^D^E^F^G^H^j I^J^(.c r c&G s.*.<$K##.#%2+4*T c&)%e c&L%(.M%,%x*I%L%(.,=} K%~ T @*L } +*n n ,=$.c&!%/ I%, , 1.} T S#;.0+5.,%", "g @+w R#H%H%r 8.,@1.8.H%k H%x*O-[ k '%'%d.l$, x*N ] ~#,@5.5.m ,.,.v ] m 6.q _.q 6.6.2.~#5.@+v ) 4 h g 4.- 5.~#5.f.4.v v ) f.,@) 5.H%f.5.6.)+4.h 2.f.] h 2.~#~#h c.r [ g...N ~#] ~#] @+1.2.4 -#4 4.c.o=..[ g ~#g x*w H%r c.R#M%R#g.g.1.g k 8.N g ;.m h m 7.7.] ~#1.H%H%H%c.1.5.H%)%,.~#] h h h h ] ~#g.r c.T#v f.8.c+$.e O-..,@5.5.m 7.7.m 5.~#g c.T#g.c.] ..8.1.7.N h m m g g g 1.@+c.;.x*;#O-O-'%O-c+I%B-M%;#B-M%d.d.i-k g.g.g.g.@+g H%[ o=c Z=&.a b&8&b&K^L^M^N^O^P^Q^6 M%> <$0+e ,%, R#k w ;#o=g.w O-R#8.k k d.c+> L%!%; R^c F*S^T^U^. V^W^X^Y^Z^`^ /A ./C^+/@/#/$/%/q^@+R#&/0+J%*.Z=M%G /@a q.9&+*0+c c 0+!%> o=i-T#T#@+;#o=, l$> > , ,%L%0+$.,=; L%c+c&<$c&o=i-w K#'=Z '%L%m )%", "o=, [ ;#i-'%L%L%o=[ c+e ; <$e $.(.c+B-O-c+> <$l$o=o=[ c.r ;.m m ..T#@+r x*[ o=w H%;#;#d.c.c.5.7.8.8.@+@+;.g 1.g.T#..8.7.N m 7.7.f.m 1.1.T#g @+8.1.8.g.m g.k g.m c.k g N k ;.o=c.] v h ..4 s e.) f.h T#N @+H%f.5.1.8.g.@+8.H%;.k @+'%R#g T#w c.8.g.1.~#;.8.1.8.w O-B-;#[ R#O-M%5.c.x*R#w 8.k r w r i-I%O-[ ;.T#g i-> (.c I%c.;.i-k 8.'%x*r r x*w k g.;.M%k g.;.;.c.g.g ~#1.T#7.,...T#..T#7.N ] @+c.H%x*k 8.g.8.g...1.;.@+k i-] f.,@h ] ....,@] T#@+d.M%c+)%*/=/-/;/>/,/'/)/8.8.;.H%x*w H%@+;.1.8.c.r 8.8.T#1.7.1.R#'%, <$<$!/<$=*~/{/]/^///(/V^_/:/ > c+> c+l$i-6 7...x*;#o=R#H%o=I%B-M%;#l$[ c.i-c...r o=i-6 d.1.T#;.;#O-;#H%'%k 8.8.g @*g i-d.w c.x*r 7.,.2.,@m k R#x*R>5/6/7/8/9/0/a/P'v 7.8.k k ..@+k 8.m f.;#T#N 7.,.5.5.@+g.R#M%, o=b/c/d/e/f/g/h/i/j/W^k/l/m/n/o/n]p/n]q/P.r/+ s/t/u/f.c+/ $.c+r !%0+Z={.; L%> d.T#1.c.@+N 7.k ;.g ;.g.c.H%g.g.r k H%o=I%B-M%I%B-!%(.L%; L%|-o.&.! l$d.c.K%", "B-;#6 o=l$I%c&,%[ =#-#f+3.= = 9 = e.s )+2.7.N 8.c.@+;.k w ;.g g.r R#,%e <$O-O-M%R#H%x*r 6 ,%6 6 d.B-d.) 3.q 6.,.N 8.x*6 c+!%c ,=Z=K%{.{./ 0+; <$c&M%i-R#r I%/ |-Z=)%c&O-d., B-c+0+(.O-6 x*k r 6 l$!%; !%Z='=K%&.)%c &.,=&./ (.c+[ 6 O-o=R#;.@+H%i-i-i-i-i-;#I%I%l$,%c&; > > )%&.K%n n } @**.T e l$;#6 B-> K%'=M%> 0+~ *./ '=+.)%/ <$I%L%d.6 l$I%; {.; c&Z={.!%,=)%I%'=!%> O-@*c&!%l$i-l${.~ <$,=c )%I%<$~ (.; <$; c ; M%1.l$O-d.;#;#B-6 , l$6 d.H%g.@+w > c+v/w/5>'%i]N ,@x/y/z/M%O-a,w/k r R#g 2.) r '%[ l$'%g.'%r ,@5.N g.A/B/%#C/D/E/F/G/H/(/I/J/K/L/M/N/N/B^M/O/4/P/Q/R/>+6.l$$.e R#r ; 6 w r 7.6.v m ~#5.h ,@7.h v q 0.4.5.] ~#,.4.6.h g H%;.@+c.r i-M%o='%, l$r.q.~ !#m c.(.@*", "k H%6 R#w x*x*d.c.s =.=.[.>+>+>+_.= ! 9 = 9.Z 9 S#N (.> [ L%B-(.,=$.$.K%,=K%+*,={.n > R#[ !%<$!%(.e 6 4 9 3._.p S#9 a.! = 3.0.q =#T#i-o=> e )%,=Z={./ Z={.Z=Z=$.; e e K%{.'=&.0+(., 6 , r 2._.-#q q 2.h N g.'%;#l$e &.'=~ +.+.~ (.0+)%<$c&I%l$o=H%;#l$M%'%k w ,%L%,%B-[ [ , M%i-k O-c&(.$.~ L L ].+.Z=~ +*L } '=@*|-].~ (.; $.~ *.|-; c&c+B-)%,=/ <$c&c&c *.U n )%<$} K#T m$O o.K#+*].L '=|-} +.|-|-} ].G |-,='=L%n . .n (.!%'=0+0+> g @+,%+*@*'=$.e <$e B-0+c&c.H%[ O-6 R^K,i!i{d'r$B,y]> > O-i-S/c.'%!/:!r d.k 8.T#T/; u,c,U/V/W/X/Y/Z/`/ (.(V^#/+(D^B^@(#(,^X^$(%(h^&(*()+,.I%0+I%g.R#; e ; ; O-R#d.w @+x*x*r ;#B-c+;#g.N g 8.~#] 5.g @+T#[ =($)-(R#;#6 , [ ;#0+a&a K%i 0.B-U *.", "B-M%;#o=O-o='%6 '%S#6.,@f.) )+=#0.3.9 9 S#= ^@a.!#v $.c c $.c ,=,={.~ / )%@*} '=c } 0+M%w R#6 d.;#i-6 4.! _.! p = 9 !#! = S#_.Z }.9.Z S#p _.6 Z=(.@*K%L *.n ].~ *.T +.L ].+.@*> > (.o=;.k 2.p [.s 3.3.S#9.Z ! }.= 9 >+)+v ~#g R#H%M%L%,%,%!%(.$.,={.{.'=,=&.c &.)%&.; 6 R#, > H%9 >+[.s s =.=.) ,@7.w R#6 l$<$e (.)%)%(.c } +.~ K%'=n '=Z=Z=c L%&.Z=(.> (./ Z=I%d.1.~#H%[ ,%; e c ~ ~ |-} J%U U ~+^.Y .v.s.+.U ~+U G Y r.*.|-].T K%/ (.} *.K#G +.@*+*|-+.+*+**.@*+.U ].K%].n 0+'=T ;(>(S,,('(l,(=)(!(~({(L> ]<$[ , Z=[!{*](^(/(((_(:(<([(}(|(1(2(3(4(5(B^a@2/6(7(D^;^V^V^h;_;8.!%0+, R#)%L%)%(.B-~!O-8(6%J,e ;#o=L%!%e <$c+c+> L%O-'%c+, H%'%Z,,,9(0(h]O-[ M%)%O-K#}-a / i !#!%/@Y ", ",%o=, I%l$I%6 6 i-! p =#0.4 6.2.h f.4.4.- -#f+f+9 7.].$.~ c ~ $.!%{.} / (.K%'=Z=|-n } I%I%0+e ; c&[ ,%v = ] ,.,@,@-#=.=.[.f+e.! 9.9 9.! ^@a.> $.$./ / |-'=,=,={.} +*Z=~ K%T U ; i-r k k c.- 9 2.v =#[.s e.S#9 9.= a.= = a.i :.!#a.9.c.|-{.} +.|-/ {.Z=K%J%{.K%c '=T } c&,=; J%I%9 -#-#-#=.e.p 3.3.= p ! 9 9 3.>+=.q 6.7.T#w c +*J%T +.*.*.].J%T L +*+.Z=~ } '=0+'=h Z S#_.p >+>+f+q [.)+4.5.8.R#B-e K%J%s.a z X X 8&o.2 U G Y |-m$K#@*+.]./ M%6 ; L%(., m 8.c.k R#B-> L%(./ +.K#G K#a(b(c(d(e(7;4]f(g(h(i(8{j(A+z@k(l(m(n(o(|%p(q(r(s(t(u(v(w(x(y(z(A(B(,^'^C(;^3^D(i^V^(/E(5~c+'=].,=I%K%U n 0+)%F(G(H(l,L;Y Y } +.+.{ K#n } @*2 @*~ $.)%&.^=h>E{I(],J(K(u,L(+.x*@*#.8&e %.o n >.p.", "].+.} K%0+> > I%o=)+[.q _.9 9 _.f+>+[.-#)+- - h h r @*/@U @*K%K%} +.c <$c ~ L J%J%].*.'=e ; > c&> I%B-v 7 0.v ) 4.4 q ,.1.~#N 5.6.6.4.4 =.=./ |-Z=Z=} ~ &.} {.{.|-Z=$.~ n ].Y / l$, ;#d.O-6.i 0.- - 4 v 6.4 [.p p a.= = = ^@o Z a.Z k Z=Z='=,=n ,={.e )%/ c c > &.n n d., ,%Z=@+:.f.2.,@4.=#-#3.p S#S#9 S#9 9 p 9 9.9 ! ! 9.w } T U {.} n '=n ~ |-'=].} *.|-~ l$(.m a.0.=#=.[.s [.>+S#p S#p ! S#p S#3.-#=.4 5.1.w O-U 2 v.r.o.~+/@o. . .L / 0+> L%> ; g.-#)+)+>+s _.p _.e.s =.=.4 ,.~#k , u!d'+.Y +$~,M(N(O(P(Q(X%R(q$5]S(T(J(U(V(W(X(Y(Z(`( _._+_@_H/,^#_$_%_;^&_!^(/V^(/1/e +.+.T @*&.c / c / L h(*_=_F>,='=T 2 m$} T L Y o+<$'%0+c '=,=(.K%L 1-z>-_;_>_,_'_!%H%v ;#N j b <.Y #%2+", ",=&.,=$.&.)%!%e <$r H%w H%..] f.)+_.3._._._._.=#2.) 7.*.+*(.c {./ '=e e ,=c &.n +.h @+|-,=; c&L%!%; ; r ) v h 2.=.>+_.e.)+- 4 -#- v v ~#..7.R#K%m$J%v.U T U ^.^.T .Y . .T K%~ ,=I%o=;#;#] 7 Z 3.e.p S#S#>+S#= -#f+[.[.q -#[.q q e.[ U U +.Z=+*} } '={.'=+*} K%~ n |-e 0+0+)%1.@ [.,.m ..N 1.N T#N ,.4.4 -#p S#! Z = a.i ^@;#+.].].|-~ $.0+} K%n ~ ].~ '=/ n 0+(.6.Z v f.,@f.6.v v - [.s _._.[.=.e.p e.= ! = ! !#^@6 } +*,=@*L%Z=+*+*J%].].K#G U ].G @+9.=.)+q -#=.-#=.s e.3.e._.p S#a.! ! 9 3{)_!_`'~_{_]_^_v.<-^.v.s.U /_J%+.(___:_<_[_}_|_1_2_3_4_Q/j^5_6_7_8_>^V^j/(/X^f+,.5.c.x*i-> +.U }>m$9_0_+${~U C>q.8&K ^.T n T { N 9 s s q - 6.5.7.g.@+P;g &/a_b_c_=.3.= o 9+u ` ;#s.#%", ";.5.h @+T#k ..g ;.k g ~#@+;#;.;.1.8.g.v q s ,@2.e.=.g.+.+.,=&.~ +.].{.} '=; +.n T ,.m +.c&;#, c&I%M%, ;#'%R#R#'%w k @+m ,.f.- =.q - q 0.=#4 )+d.+*].].|-K%T J%].{.|-*.].+*; s > |-0+<$,%I%R#T#k ..~#,.4 s 3.! 9.= a.!#^@a.a.f+-#)+q q d.m$ .+*n n J%G G K#^.m$v.{ {.B-0+@*{.,=k 9 a.>+f+_.3.=.6.) 5.N T#1.m ] 7.7.....,@4.-#> 2 ~+K#*.T @**.+*@*G .G J%L +*/@G m$1.j !#! e.f+[.-#[.- =#4.4 )+)+) =#q [.e.e.9 ! = ! ,%@*n c / / |-{.@*{.~ +*+.K%n '=U m o 4.4 - ) - 0.[.f+p ! e.3.S#_.S#_.p a.= $'d_t'e_f_g_c+G |;G,i>|-,>x>} 6>h_i_j_k_l_m_n_o_p_q_r_s_&(_/,^Z^t_u_P/V^(/v_j w_a.a.Z }.= =.=#x_y_y;6> . >Y U m$r.^.p.s.m$~+p.J%/ !%,%)+e.3.=.0.=.s -#-#E~z_A_B_C_f+>+q -#p 9.f+,@w ", "~#w w 1.v '%m - ;.4 @+d.m ;#8.;.m k x*N 1.,.,%i-f.0.5.~ n {.~ ].+.n |-@*'=Z=n {.|-5.1./ 6 g.2.7.R#'%k ,.i-O-k 1.N I%o=g 7.8.; g.v 4 7.'%v >+q M%{.L Y .G @*{.n +*U m$m$K#> -#$.} 8.8.H%d.c.m T#g.g.1.m g ;.@+m 5.2.- - =.3.s f+>+>+= 4.n @*$.$.+.|-].].*.L U U J%B-= 6 .~ {.I%7.g ;.@+h 6.4.4.[.>+f+)+[.3.-#- v ,@m 7...g r M%+.*.].+*n G J%U U K#K#U v.@*B-$.Y B-,@2.4.) 5.)+>+! 9.! p = Z p s - - =#q q =#6.4 0.,%o.G > L G Y . .*.U ^.Y +*].m$p.] ^ = -#q )+4 4.=#=.-#-#6.0.-#[.>+S#= p 9 D_E_s'=)#'E_c&U T G;{.,={.} ~ 6>^)F_G_H_I_J_K_L_M_N_O_P_W^$_Q_7^B(% *^V^R_V^S_= 9 ^@= ! ! 9 9.B'+&c;T_,=W*y>n } K%} ~ ].'=} n @*m$*.*.6.9 9 _.>+f+-#=.[.D_a._.=.f+s 3.S#9 9 = s 9 S#", "f.> i-@+~#w , ;.r 5.N } w g.4.~#e k 8.,@] r ,%k ,@4 ~#/ +.n @*K#K%n U |-$.K%} Z=+.h T#!%g.'%H%,...H%o=~#c., g.c+8.@+M%c+l$x*c M%B-R#g I%g.r 8.R#{.} K%].+*'=|-Z=K%U U ].@*L%)+(.0+g.k ,@w '%1.h ,@d.@+) =.~#, 1.)+=#w , ~#4.f.6 i-s 3.h ~ +*T +.K#Z=L *.m$U +.K#/@0+s [ *.i-T#w I%o=c.R#o=M%R#w x*x*H%1.N ,.v ) 6.) ) - )+5.~#g &.T L +*+*|-Y K#K%|-Y U L 0+s i-J%(.l$> B-R#M%R#'%;.N ] 2.[.e._.! e.p p 3.e._.[.=#q s 6.K%K#|-K#G *.G *.*.Y K#m$o+{.N x*{.'%h ~#f.q q [.p S#a.S#3.s -#-#!#! 4 v =#- d*v .=s Y)U_+*m$U T J%^.{ Y m$V_W_X_Y_Z_`_ :.:+:@:#:&($:%:Z^&:>^(/(/R_(/~^*:>+f+9.Z ! }.o =:%~9 T! .T @&~ +.H{*.|-~ } 0+Z=T '=+*J%f.>+s _._.9 ! 9.= }.b.-:;:>:!#,:a.= 9 9 p 3.p ", "s ,%6 ,@h ;./ (.5.5.f.c&g ..h ~#i-c.N 7.m 5.T#@+h 4 1.l$$.@* .J%K%+.{.} +.,=K#K#].] N )%N N w 8.] ,@)%> w x*,.I%6 r k g Z=k c.8.~#k x*,%7.] m T#K%+.].n ].G T L &.n G +.U <$=.L%)%6 c&'%7.H%k ~ ;#8.g r r h w w H%g ;#> 6 ,%r R#o=g ..1./ @*U L +.n |-@*{.@*K#{ >.,==.r {.k 8.=#c.l$6 1.,@!%B-T#N N L%d.H%N T#O-r ~#,.i-x*s f+h } @*K#*.m$Z=+*m$L } } J%Y (.e.'%K%I%;.7.O-I%H%T#g M%M%H%H%H%, H%h m 7...f.4 4 4 ) q 0.q &.+**.Y T +.+**.J%J%^.G p.!%p 8.J%c B-B-B-[ 6 d.r T#5.,.f.4.q =.a.^@f+=.s [.q q ) ':|&):<,K#U @*} ].~+].!:~:{:]:^:/:(:_:::<:[:(/}:|:k/&:&:1^R_1:V^R_2:3:6.6.4 )+- 4.4:1~s =.K{H>n Y m$Y }> .~+G ^.^.Y m$K#v.@*,.2.0.= e.S#_.f+e.!#:.]]>:^@!#p^5:Z o :.%~:.o ", "m ;#,%, 6 H%0+; H%@+..x*8.d.R#g.7.o=w @+g g g c.v ,@1.O-<$L K#{.{.} ~ |-{.@*L ].].5.m &.N H%(.o=x*~#|-a&!%i-T#; U , ;.2.6 c+;.x*T#i-H%, w ] ) ,.<$+.~ ].|-|-@*].@*@*G ^.o.e 0.I%!%;.<$0+8.k 4.n , ,@m ] H%;.H%m @+H%..O-c.g.g ;#'%T#7.8.; @*L L n ].].} +*} @*U /@/ -#R#+.d.; 8.x*<$c&M%i-; , c+e ..d.c+I%,%g.@+H%d.w x*R#@+T#m $.K#+*+.G G ].+*T U +.+*Y )%_.r / ;#, ..H%/ c+o=2.;#c+i-g N O-r k 7.;.M%'%c.8.i-,%g.T#] $.~ @*+*|-|-*.|-Y *.G s.r.<$f+g.+.I%T#1.d.e r g.g I%, k c.k [ w m 5.] [ 7.2.4.f.5.)+^$>+; |> >L $.*.J%@*t;6:7:8:9:0:a:b:c:d:e:&(f:g:h:h:i:h^R_(/V^(/j:f+k:v 6.- - f.2.- )+- =#q x*m$^.G 2 { r.2 { p.m$p.o+> - 1.U > = S#9.Z Z }.<.j %.P }.^@p p [.f+e.e.l:Z ", ", d.O-B-, r )%} R#'%R#'%, M%l$o=;#,%x*d.k ;.;#, '%;.;.w L%@*} +.@*].~ +.|-/ +*K%U ,@g $.M%R#|-; '%c.l$>.)%O-..'=o.l$c.1.i-+.;#,%[ [ , ;#I%I%[ i-!%T ].K%{.&.K%{.].].+.T { 0+- <$c&T#o=/@M%B-r '%k g.] ~#i-d.@+g...k c.r i-g.1.;.x*'%8.8.H%'=|-+*n |-n ~ @*L @*K#r.,=[.[ Z=1.o=> , c&8.B-!%6 H%M%|-d.[ i-8.R#'%o=@+g.r k k 8.] m M%|-+*} n L +*].L ].Y *.L (._.d.)%r > ;#H%B-k M%'%c.[ H%l$O-d.i-, o=g c+k / c&1.r , I%H%e *.U K#+.K%U J%*.{ Y ~+2 > >+k } x*r 8.@+,%d.O-w w B-;#M%@+;#x*H%k h (.M%R#T#@+z^m:n:o:;,l>{,U +*K#G Y /~H>p:q:r:s:t:u:v:w:x:&(y:z:A:B:C:P]V^V^s_&(D:E:i]F:T#o=c.G:H:5.c.- J{I:O-1-2 o+o.r.q.q.~+^.q./@o+M%e.~#n / 7.7...7.] 2.2.f.- =.s =.3.! _._.p = 9 3.", ">+..H%q ,@4 8.'%f.4.m f.;.;.c.m 8.[ N 8.f.;.'%g H%c.k w ,%n +.L ].U L ].J%{.K%+*L v 7.L !%x*J:]>> ; r .c ,%o=} o+U c M%c+m$&.L%M%r c+c&I%o=R#, ,%n +.@*T } ~ T ].} @*n G (.q 6 !%;#,@)%(.c+'%w c l$g ;.[ l$i-;#x*k r d.[ d.R#x*I%d.w M%'%'=+*J%|-+.} ~ '=+*{.L o./ q i-,=M%O-0+L%; '%$.'=c l$c.o=c&;#o=r M%w x*[ 6 O-;#M%> [ g.i-Z=U ].|-} n n n |-T *.G e >+w &.@+!%~ <$;#@+'=/ w k N (.;#w R#H%M%7.H%'%g m 7.w x*1.7.l$].~+^.m$*.].@*+*G U ~+s.B-3.c.'=@+h l$'%,%H%!%c R#B-1.<$~ d.[ ,@O-g @+@+,@;.w c&m:K:X)i-()L:n I,M:T N:f)O:P:Q:R:S:T:U:V:W:X:&(X^!^7(Y:Z:`: ./@~+^.Y L;{ 9&O ;#3.,./ c&c.g 1.6 6 k h r &.'%g...'%, T#,.,.c...4 ", ">&><,<( 8@3 |.! a+E b _ _ a+)#b |.i % ` & d+J g+).d+@ p ,%n *.K%&.} ].T T +*,=&.*.>+j [.0.^@)%/ p )+9.<$1.e.-#7.|-~#5.- 5., 1.~#,.2.1.8.v h 4.,., ~ Z=} @*} K%].|-].G @*J%<$_.i-, @+2.;#'=x*c.[ L%[ o=x*r , l$!%, i-d.i-[ B-o=[ O-H%r o=O-c +*L n n ~ ].|-,=} K#r.c =.o=} (.i-} +.c w ;#&.0+> w H%!%o=, 6 o=B-R#[ B-M%B-; ,%6 c&, (.J%+*n {.} L *.*.T } U &.>+'%; [ c.@*].I%1.v.4*> '%r *.} R#k R#o=;#6 > [ ;#x*I%'%k H%;.,=T ~+].+.} ].T +.+*m$s.,%_.R#{.d.;#'='%c+@+c ,=;.6 ,.Z=6+<$R#N '%M%k 8.6.,%e c*~]{)'<)<)%x>*.L E>F,!<3'+*H{~<{.o=e.4./ o=7.@+~#c.k i-[ k , r M%7.c.> ;#O-5.;#o=H%", "d+- 6.m e n +.*.{.'=+.L n *.{ r.O-}.@+c&<$g.n o.e I%- M%e &.<$> c&, O-l$O-L%,%M%l$c&<$,=c&, (.&.!%Z=|-L ~ ].L ].*.*.T p.)%e.i-0+; g.].o+M%..@*0&$.M%H%$.Y I%w [ ;#I%6 c+c+k c+l$B-L%O-c&; } ^.+*} ].+.Y n @*m$/@e _.x*~ i-<$L l$(.8.(.K%r L%i-I%Z=K%<$,%k M%l$d.g R#o=l$&{o=~];#$.@*@*+*o'~ |-+.+.,=Y C>q;f<#:g^$_X^j ~+2 .G G U J%^.r.a o+;#f+2.Z=[ ;.6 2.k x*B-!%@+w 1., l$c.o=4 6 d.d.R#v ", "y.<$A A g+_ % ^@*.3._ J ^ j %.o Z a.!#:.!#a.a.a.^@9 =.q -#>+[.,@'%c 0+K%|-L L J%*.].J%*.m$&.a.)+N ~#f+B-L ~#h k @*,%x*6.c.L H%d.d.g > 6 [ ;#g c+c+B-B-o=c+c+Y +.*.T n ].+.m$G U q.<$[.R#n d.x*J%{ K%H%l$m$(.c+,%O-M%(.c+I%k B-<$; R#6 c&B-<$o=w c.; ].@*T '>G;L x>+.o=z O-k c.;#c+Y K#Y L L G J%K#Y o+!+R#[.8.K%6 c.} ,%!%O-'%c&T#l$;.r ;#o=x*h 6 ].!%[ h ", "3>3.S<6.,@s o r ~#5.=#7 0.- e.= Z o=[.a.o ! f.}.b.j 5.4 2.Z=|-K%~ ].K%{./ T @*/ U ,%j @ @ d+0 i-Z g+g+p 6.% _ 0 4.:.A J 9+P d+e+` & i _ )#d '.[.T#0+,=T '=$.(.,=Z=$.,=@*T L _.b+0 g+$ o b.E A & 3.d+% ` b+<.` ` ).A 9+a+~.~.b+@ A ` e+:.)+R#'=~ @*+*T J%~ ].U G v.|-%._ & ` )#J n f+3 ` @ 9+3 g+J J 9+( 9+$ ` d b b & g+( 3 A '.0.~ K%|-].].].K%+.|-@*n r./ # J ).)#( f+O-( d E f+i ( )#A @+9+` ` g+P _ J A # |.%.@ j Z ..c&n 0+|-U n +.} U ].U /@O-<.q ..,@3., J%Z=] 6.i-+.!%g f.o=c+g.i-=#;.d.d.[ 5.i-x*c.1.1.'%B-+>+*G T '>j(t&T+j q =#7 j |.m q |.# }.-#<.d+0 b+j ).` & s 9 b+W g+:.h R#0+/ {.} +.n {.+*|-K#m$K#3.& d+).J )...-#).$ 9.|._ @ 0 ^@# ).b+|.b.^ _ & o j ).` '.9.,./ +.U ].} |-} T '={.Z=K#L }.b+@ J & ^ N A J g+W ! ~.).b ] ^ a+b % J % ` )#W @ $ e+J ! @+c&K%@*].@*n |-].L +*~+/@,%W 9+e+` e+a+x*;.a+3 ` ,@7.` b b.3.3 E 8@<.b.3 b ` :.W e+_ b.g +.+>+*y'6;!=;[>[,['[)[![z:&(j/g.$.L%i-e L ; l$", "'%f.!%M%d.x*) I%, ;#O-e.r / I%[ h (.,%M%M%4 i-l$'%5.v L%'%<$n / {.'=} ~ Z=~ K%~ ^.'=K%T [ ^@m e l$O-= x*/ <$,@3., L%O-g [.[ B-, @+,@N o=;.m ~#6 (.c+0+)%&.} |-c ~ ,=Z=$.].@*(.'=L%l$! h ; k ] 4.H%;#'%T#=#c.k 7.-#_.;.4.f.p ] o=@+'%..h B-M%c&'=K%~ @*K%|-+*].*.^.Y 8.>+-#9.:.f+,@v j P f+=.Z !#o 4.[.^ P o p j '.'.! !#@ b+}.f+] e } T T +*n / ~ (.|-} T v.) j ^ '.'.b+[ 7 b+W %.g.).0 d ,@3.` J b+9 @ @ # j b.^ W ^ =.N B-+.@*|-].K%G { J%@*].~+c P @ W J A % f+] ` ` % ..o=).)#0 =.3 ( + @ >+( + e+i ` 8@( P 8.].~ +.+.}>5[6[7[8[9[0[a[)[b[j/c[C<&(6(f:_/d[e[f[g[h[i[j[k[l[m[n[o[p[q[r[s[t[^@j;d g+i [ ~ G s.Y .G L T J%G ~+2 v !#!#s f+!#_.d.c&q >+0.; !%6.s w ].L%r 8.H%c r T#", ",%g.l$d.c.[ ) l$L%,%;#- , } , M%4.R#, M%O-5.o=B-R#R#,@c&M%$.|-c ~ '=K%,=,=n @*n ^.$.(.+*; !#7.)%<$;#p 6 (.o=g.f+c+; > k 3.;#> l$B-g ..l$i-c+..> > c+, ; '=c ; 0+c '=$.{.K#].!%(.M%[ )+..c c+;.5.o=> c&, ,.g.B-R#i-s M%;#[ @+[.(.I%!%L%)%(.c+> $.0+|-} ~ ].n T +*T +.c+e ~ H%=.[ ,%<$m 3., L%M%g.m k ,%1.7.,@k R#'%2.4 O-x*N S#B-,%e |-,={.Z=} n K%~ } @*m$K#0+;#;.S#0.;.6 - 9 -#v , q i - ..7.0.o a.H%- f+9.0.,.S#!#}.] d.L%'=,={.L |-L s.m$].G s.n p <.# $ '.J p c&b+^ ` >+[.W _ ).f+` d b $ s ).b d+_.J g+` S#w Z=C>G /_n-u[v[w[x[y[z[A[B[C[D[.(P_C w I%T#c+c&L%c&,@w 0+<$O-,@l$,%l$; N c.I%l$I%m !%> &.(.&.c / } @*{.{.].*.s.} '=L%)%[...'=/ )%v x*,=,%'%[.;#Z=M%o=)+&.)%, ,%@+k )%<$> w <$,%L%(.{.'='=)%&.)%!%n n +*L !%c l$6 x*7.c c+'%f.)%; 6 w ,@w <$M%;#.., <$, O-)+R#d.O-> (.M%r l$$.K%} Z=/ ~ ~ *.J% .].c&c+$., [.I%/ l$; -#;.e c&!%4.T#)%O-&.2.6 <$,%7.8.!%l$d.f./ L%<$!%'=Z=c n ].|-|-L +.~++.Z={.!%7.] L%(.L%)+..M%!%x*S#> e ~ e f.,.L%!%c&T#l$c c+, )+c+0+&.e ,=K%~ {.Z=G q.~+v.p.+*c , 8.,@8.g.c.~ 5.-#..g.h !#>+q B-=#%.! ,@w _.9+Z i-4.|.! 7.&.~ ]. .r.T[U[V[W[X[Y[Z[`[ }.}C},}'})}!}~}{}c;]}_ 0 =.!%S; .^.G J%*. .K#^.Y ~+9&H%@ ^ d+J J J b+f.b+g+).b.;#0 )#+ p k g+g+).-## ` ", "K#!+0&p.L *.'=&.; d.!%] 1.)%> [ 2.L%I%R#;#T#k , M%c&r n $.<$c )%} '=@*|-e K%Z=~ .{.(.; <$_.g.$.; > )+d.)%!%O-) B-!%M%;#~#,%<$L%K%O-H%/ o=<$d.6 )%$.&.0+'=e 0+&.c I%'=} @*U '=0+I%M%(.] Z=,%H%4.<$c&; , r @+<$'%O-w ;.<$[ d.x*;#,%c&B-$.O-k M%c&'='=/ ~ K%{.n @*K#*.!%(.(.'%>+l$> c+K%1.w {.<$&.N c.,=!%!%- c+> M%g ~#&.I%c&x*o=e > &.} +.Z=c ~ n K%K%K%K#T 0+e (.1.f.L%'=K%[.w L%,%[ 9.B-Z=c > m 7.n <$, T#c.&.L%L%r B-0+l$L%,=~ |-+.} +.*.].m$m$*.Z=|-; @+i-M%; &.M%..L%c&c&6.d.'%I%L%4 ..'%,%R#j ,@!%I%N 0.l$U |-} L ~ ^}/}(}_}:}<}[}}}|}iS;u**.~ U U J%*.Y .o+l$P j |.@ @ # & 4.Z W J g+@+p ` b b+[ P $ g+0.! J ", "9&C%C%C%a&p.L%c&!%,%'=] 8.c l$e 1.l$c&d.[ ;.k B-c&,%[ Z=c I%&.c &.{./ +*'=!%0+!% ./ > )%I%[.k e l$c&..c+(.I%c&..,%B-l$o=T#w c )%e !%1.c&L%e w r &.,%B-O-Z=Z=$.!%&.e '=&.} L > &.c l$e m (.c&x*f.c c+, L%w @+)%c&<$;.[ ,%o=M%I%<$B-I%> e B-c+,=e <$e &.} {.0+K%{.L |-!%(.; ;#e.,%; Z=&.@+l$].'=} g [ +.!%,%m ; c+> r g } O-[ , M%e ,%!%~ '=&./ +.Z=c )%; } G ,=K%&...4.Z=<$/ 6.;#B-,%L%4 c+&.(.c+i-o=<$B-|-[ ..,=,%)%B-d.'=> <$(.,=n T {.~ |-|-G { +*Z=n e 5.) <$&.e i-1.I%I%c 0.R#e c c&~#w 6 o=, ,@T#/ / L%h , *.} ,=4%k}l}m}n}o}p}q}r}s}|}1}x:C+5.1.P ", "!+b&#%-;}-!+; c+<$,%n ] ..Z=c+l$g 6 > , 6 i-] , c+B-H%> I%B-L%<$L%c&(.$.)%&.)%$.&.c&; )%c+=#..c&l$> g.[ !%l$o=m ,%e ,=L%c.H%e l$R#> g e <$6 e R#/ <$c+; 0+0+} )%c $.0+; ~ |-<$&.c&,%;#f.L%O-R#2.!%&.<$6 R#N c&o=c.w g ; I%> [ d.d.6 o=$.; c&!%)%I%Z=Z=Z=~ K%~ !%L @*)%> !%c+s i-0+'=,=r c+Z=c 0+k R#/ (.)%m ; &.,%I%'%{.(.,%)%<$,=&.c&c {.&.(.'=&.!%'=,=L ].c $.c&,@m 0+!%} m H%B-)%c 7.,%,=,=M%O-w '=,=*.c+w / 6 <$> ,%|-)%L%&.$.$.@*|-} n @*^.v.+*@*+.)%,.=.O-O-c H%@+; !%'=~#o=,=/ &.8.@+; / ; R#'%~ ; 0+i-I%].~ 6;J}K}X)L}M}N}O}P}Q}R}S}1}h|-[c+,@r,,><$'={.{.} |-Y .+*L *.p.&.K%Z=i-S#m e '%c+i-B-c c+<$d.[ &.l$(.f.l$!%(.e s ", "o.8&#.}-#%K Y ,=c !%c ,@f.!%6 c&k !%)%c+,%!%;./ ; c+o=; ; B-L%c !%c&)%Z=L%0+0+; (., 6 [ l$N 2.|-0+; ..i-c+e !%T#<$Z=$.c+R#w ,=l$O-e k <$c+O-,=e Z=c ; c+> ; (.> , c (.0+/ '=0+)%c+, o=) M%(.!%m i-/ I%B-> I%c R#;#[ T#/ d.x*c+o=l$M%d.c )%B-o=; !%e $.c ~ {.c )%+.} ,%<$; > s o='=c ,=R#I%c 0+L%o=w ; , (.7.(.Z=l$L%g.'%e ,=o=> 0+!%&./ '=+.(.> c {.Z='=L L (.e {.x*8.K%L%$.'%M%; (.)%g / ,=+.'=,%x*0+; !%6 o=+*)%0+L%<$$.e e Z=/ K%+*Z=~ n ].K#{ U '={.e v -#} / )%i-f.c&0+)%] ,%'=|-&.H%d.<$0+L%;.2.'=0+; 6 ;#$.F*H>,|o)'|)|!|~|O}{|]|^|/|C<(|_|T}:|C o=I%N '=!%c+-#R#|-e $.} |-G *.!%> i-L%M%o=d.o=> c+[ ; I%,%;#I%> > <$> !%c I%L%&.!%> [ , L%4 I%;#> &.x*, Z=!%Z=; r K%O-B-T#c+; <$(.w R#0+&., e ,%$.<$c ,=e &.L%,%0+Z=,=+.+.O-c&~ 6 w L%; 0+g '%<$)%$.8.&.,%> {.I%w Z=; e ;#!%U &.Z=; 6 $.<$; ,={.} *.].~ +.J%T U Z=(./ > N f.K%e e l$4 ,%/ {.1.<${.)%L%..8.l$0+{.B-;.(.0+)%I%L%'=c @&@&-[e|f|g|h|i|j|k|l|m|x:n|o|p|q|r|s|^ c&$.;.i-<$c&o=w g., 8.l$R#,%,%0+(.- ", "o.a a&b&A-K (.w )%<$,=g h c &.e x*x*/ B-I%Z=, l$I%L%K%K%&.o=L%$.l$c&c&i-O-> !%,%K%> ;#6 L%O-h ,=&.!%x*g ,=/ e B-,%K%K%&.(.T#c !%~ ;#c.)%; I%c Y [ ,%$.)%!%c&r R#c 0+!%l$e <$M%, o=l$(.@+!%L%<$- '%c 0+J%r.2 !+!+J%c ;#I%!%M%i-<$O-,%c+,%O-,%B-, ,%O-M%0+c&,%l$> (.6 (.c+[ L%h L%c 0+)%,%,%+*/ (.'%;.{.c+<$k @+)%L%0+L%{.{.; !%$.; 0+$.0+e !%; ,%c+,%$.,%{.,=c+c $.i-T#)%l$,=6 O-/ c ~ 8.B-c+c L O-8.|-].n !%H%~ } ,=<$I%L I%c&I%; c &.n {.{.K%Z=m$Z=,%(.$.o=h ,=c )%c&4.c+<$+*g.'%l$c Y w g.c+c+'=<$c+&.; L%c&n J%K%!%,=o!K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|`| 1.1+1@1:*#1$1%1&1*1=1-1;1>1,1G|'1)1!1U!,{h]J%c&{.{.n ~ {.T ].} ~ T p.I%l$e n ) h ,%B-)%6 d.!%0+c+w [ !%c+<$M%l$M%,%&.v ", "o.0&C%K #.b&,=6 K%&.0+> ,%{.'=e <$!%{.K%'=} +.+*|-~ n ].J%)%Z='=(.L%L%> B-[ M%o=Z=c+;#, ,%M%../ $.I%w ;#{.&.&.O-,%{.} c O-r <$,=&.0+e (.} $.T K%<$(.c+O-6 c+M%, I%,%c+l$,=c I%c <$!%<$T#c ,=B-;.c&Y v.o+C%#.C%0&/@L r B-(.O-, c&L%l$B-)%I%c+c&M%; I%c+, I%c&I%,%> I%> l$;#)%m O-~ ; (.c+o=&.,=(.o=;#+.<$,=B-d.@*I%{.M%@+'=)%, c (.; c&> c&)%M%i-c&+.0+, (.c+c&e Z=i-N c e Z=<$6 c 0+n @+;#; e Z=,=o='=e <$i-..$.^.L &.$.c ,%o=; c&e &.Z=} c &.n n 0+$.B-c+;.) Z={.(.e 8.O-> } 4.c.!%K%G H%H%} l$$.M%c&M%)%,%; Z=c / t&t,u{~1{1]1^1/1(1c:_1:1!^<1[1}1:||1[:U}112131417.510'6171819101a1b1c1B}d1e1f1g1p,R)c (.e )%'=0+K%J%o.q.|-+.~+e &./ / ,@7.e 0+<$B-;#, $.O-6 ;#$.; c+c&,=!%> {.@+", "{ O z a&O z Y c&<$/ c !%!%e !%,%, 6 I%,%,%c&L%$.,%B-B-l$; c&c+, l$l$o=;#'%x*R#i-B-k i-l$o=c.@+!%)%,%<$e e n c ,=; ,=&.&.M%M%,=~ ,=$.+*+.+*K#].} n {./ ; !%'=<$L%d.B-6 ;#Z=$.L%0+<$e M%, c '=n ,%c 2 O 8&4*4*-;K X 9&o=!%$.(.B-c+l$, c&I%, I%!%,%c+c M%,%(.!%c&R#<$'=,%6 ,%0+i-6 ~ e c&r c&L &.0+; o=n 0+e O-,%K%(./ ,%I%(.<$O-$.$.K%0+> l$l$!%, ; {.!%e +.M%O-> $.;#2.L%e {.<$8.c !%$.c.e &.!%)%> 8.)%(.; c+c p.9&O >.m$/ )%0+L%I%(.; )%$.!%<$Z=!%!%&.l$, H%6.<$> !%$.d.L%c n ] H%(.&.@*M%1.!%; ~ 6 , ;#$.)%,%)%,=K%'=$.h1n-i1j1k1l1m1n1o1p1q1r1t|s1q|^ b,,%/ !%e @*~ c&+*z #.4*~+n U '=$.(.!%N 1.(./ c+(.6 ; ; M%c+;#> ,%o=; ,=e <$/ R#", "v.O o+q.o.>.p.R#8.c.g.g @+H%x*;.T#;.c.k w 1...g.c.r d.d.[ d.d.;#[ [ ;#d.i-d., O-c+o=[ '%R#w @+;#<$K%!%l$<$n ; ~ c ; )%Z=!%B-d.o=;#'%i-L%> c&,%> ,%O-B-;#O-; , 6 o=c (., <$!%)%&.l$[ R#6 <$,%!%'=~ G 9&z 0&b&#.}-#.8&].U ~ 0+L%c $.<$!%c+6 I%I%> I%I%M%!%l$L%c+c.,%$.!%e l$e o=l$n ].> [ B-Z=$.@*$.o=].$.].{.B-0+e c &.K%&.c l$(.c&I%)%l$; L%; e ,=/ 0+,%} |-K%,=$.L%6.0+$.0+, ,.} &.~ R#B-,=K%Z=I%g.e / K%G a O X A-4*0&T L%e 0+$.; K%'=$.,%0+'=/ )%; c } I%,.; <$!%l$0+K%e &.h d.Z=+.T > [ } ,={.c&o=c+K%)%, <$)%/ c &.c .%I1J1K1L1M1N1O1P1Q1R1S1T1U1V1X:W1t}X1Y1Z1`1G, 2.2+2@2#2$2%2&2*2=2-2;2.%$.<$(.].; '=|-@*/@0&C%3+4+9&n '=)%; $.> r 7.!%)%c&<$c&,%; !%l$&.L%> B-!%!%<$o=<$B-", "{.!+>./@/@o.s.c&@+g T#m ~#c.x*c.c.;#c.....7.;.k c.k i-d.[ d.o=o=o=o=M%B-O-l$l$B-,%O-r g.;.7.~#'%'%'%@+R#l$O-R#'%w x*r R#'%c.H%H%T#g @+g.g.r x*6 ;#d.d.[ ;#6 ;#[ O-l$B-O-l$o=6 o='%'%k c.O-, , M%o=K%r.p.o+a&}-A-I K )%[ o=[ d.B-,%c+> <$c+6 O-o=I%O-;#d.R#o=[ x*6 0+<$R#'%d.[ ;#0+J%/ {.+.} ].T @*&.G +.|-].Y ].} n +*n ,=/ / } / B-<$; '=<$<$(.&.,=; > Z=K%,=/ &.> B-/ Z={.L%..)%$.~+e !%Z=U +*'=d.)%L K#{ q.C%X O #.K r.n Z=<$/ &.'=&.)%e )%(.J%/ Z=$.|-e ..0+c&<$|-|-~ Z=@*~#k } Z=,=n ,=+*} {./ $.;#/ (.Z=|-6 / &.c e H{>2,2'2)2!2~2{2]2^2/2(2_2:2<2|1[2}2|21222323242526272829202a2b2c2d2e2'=} > <$K%$.<$c /@z X A-I I a&p.c , L%M%!%i-T#e 6 <$; !%Z={.,%;#(.,=)%,%L%&.; c&; > ", "v.C%q.m$U /@v.$.@+N ..] 1.8.@+m 5.;...m N N N m ,@h N c.'%d.M%o=6 6 O-M%O-B-c+I%> M%6 k w 8.h i-R#T#1.T#R#g ] T#g k @+;.g.g.x*x*x*i-x*g @+x*'%w R#, , O-O-M%M%M%M%l$M%O-l$B-;#R#i-d.i-@+r R#c...r )%K#+.s.8&#.I 4*!+&.k w H%H%i-d.x*R#6 6 o=d.;#M%M%o=M%l$B-o=[ , <$B-i-O-w ;.i-O-!%; ; e e L%; c e ,%B-o=R#o=6 O-B-, I%[ R#M%c&<$!%<$> ,%l$M%c+c I%;#6 I%M%, , o=,%L%c 0+{.,=L%&.,=L } T n n @*~ ,=Z=@**.^.a O X b&X z p.+*n <$&.$.e |-&.c (.; )%'=0+c&(., m L%(.l${.} @*&.T I%B-/ K%^.v.U J%s.^.Z=$.@*~+J%L J%'={.+./ '=f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2^.8&}--;3+2+b&4*|-o=> I%)%g.c.c&<$c &.c ,%c+,%c+,=e &.o=c+&.L%/ K%)%", ")%{.n G +.K#m$c+8...7.N N N m m ] m N m ~#] ] m h N 7.8.;.w i-i-;#, c+I%l$c+,%I%I%[ '%d.i-7.] i-R#c.5.h '%x*N 5.] g ;.m m 7.@+k @+T#g.d.T#T#@+'%R#R#i-;#o=o=O-[ ;#[ 6 B-B-'%c.k g.g 1.T#T#g.;.8.c.6 +*Y o.a C%#.z /@@*o=i-r x*d.i-c.w 6 [ o=O-6 O-M%B-c+c&c&c+I%; ,%6 x*'%g.k O-, o=d.x*R#L%d.r 6 c&d.w c.k r i-i-w ;#M%o=;#i-o=c&I%M%B-I%l$, , L%!%,%I%> ,%B-B-l$M%R#O-;#c+M%o=l$L%l$l$B-, ;#M%,%d.i-6 (.Y /@o+9&C%9&o.2 } d.;#, > ; , I%L%I%M%l$,%B-O-6 d.w w d.d.<$~ n Z='=&.e (./ r.o.+.} ^.s.*.} J%Z=,=c 0+e Z=~ $.)%N2O2P2Q2R2S2T2U2V2W2X2Y2Z2`2 3.3+3@3#3$3%3&3*3=3-3;3>3,3'3H2)3!3~3{3]3^~D>+.Z=~++*Z=Z=v.K A-A-I k=4*8&~ I%L%> > d.R#0+)%,=(.,=> ; c i-,=L%(.o=L%&.I%&.{.!%", "6 c+{.v.&.+*} ;.g g T#g 8.1.8.T#g c.8.1.m m T#1.m 7.1.1...@+R#o=, M%c+I%l$O-O-c+O-'%i-H%..1.g.;.g.H%g ~#g.;.H%g 1.N ] ,.N ~#h N @+..1.g ~#N 8.i-;#6 [ 6 6 o=, O-, , M%M%;#;.g 8.8.@+7.7.1.;.@+g T#R#*.K#2 q.o+o+o.s.@*g ..1.g @+..g ;.c.w i-6 O-l$c&> c+c+c+c+,%M%O-d.R#k k ] N H%d.r c.H%6 O-H%g M%o=i-H%8.R#[ w g.c.R#O-o=x*i-;#M%,%> c&c&I%I%l$l$c+, O-6 [ R#c.c.w x*w H%;.k c.R#i-H%H%x*H%r r T#;.w !%^.!+z q.q.O >.o.*.[ [ , , O-O-O-M%c+I%<$l$O-M%R#8.;.x*x*'%o=l$c&!%; ,=(.c )%0+c e c+M%c+M%;#[ 6 6 B-> ; l$> !%!%^3/3(3_3:3<3[3}3|313233343536373839303a3b3c3d3e3f3g3h3i3j3k3)3l3m3n3o3p3c e e Z=,=/ ,=G !+A-2+I 4*k=z L%;#6 6 o=r k 6 (.!%c+} +.$.> !%/ K%~ ,=/ K%'=,=|-'=", "K%;#O- .|-m$o=k g @+g 8.T#1.T#g T#@+g ;.g 8.g g @+c.;.k x*'%d.6 B-, R#B-c+c+l$l$l$l$6 g ] N ..g 7.h c.H%g.] f.v 2.~#g ] N g ;.8.g 1...N g 8.k ;#o=6 6 O-6 , l$l$O-, ,%> B-6 x*c.k r H%w c.k k 7.g.O-n } v.s.Y . .J%'=;.T#1.m 1.~#7.7.T#g c.O-B-M%l$c&,%I%I%,%<$> '%g ..8.N 8.@+k r g T#'%;#w ;.T#;.k c.;.g 8.H%c.8.@+r k ;.k [ , , l$,%l$B-I%I%c+L%l$i-x*6 w 8.7.T#;.c.k k i-r r x*@+g.H%g.x*i-;.w w H%!%Y o+o+o.~+o+O z ^.> , B-l$l$c+c&> e (.!%L%M%6 x*;.T#d.i-d.d.k '%H%@+8.i-o=O-B-c.i-o=;#g.T#8.'%6 i-k o=, I%,%,%c+h_q3r3s3t3u3v3w3x3y3z333A3B3C3D3E3F3G3H3I3J3K3L3M3N3O3P3H2Q3R3S3S3T3U3V3o!> L%c&l$B-c&L r.K -;2+4+<+A-m$, ;#O-d.H%g.R#, k , $.c c+, e Z=,=~ K%+*+*T +.} ~ ", "}-J%].r.r.~+0+> ; L 6 1...8.k ..8.x*H%;.;.8.g @+8.k r k [ c+O-o=i-x*o=c+I%6 @+T#k w 1.2.v 7.x*;#@+g.;.H%H%r ~#] @+g.8.c.H%8.H%g.7.7.T#g.g @+g.i-i-;#B-l$l$l$l$, i-x*r 6 l$, i-'%r c.;.@+1.T#g 7.g , K%/ c '=c <$)%@*e @+@+;.;.;.8.g.r g.'%;#c+B-I%c&, [ ;#,%<$L%c&i-'%g.k ;.T#8.i-d.r g.d.'%d., R#T#..c.w w g.x*@+@+;.@+g 8.r d.6 B-I%c&I%c+I%I%I%,%M%[ [ x*k @+g N 7.@+w g.;.k H%w x*8.8.8.@+T#T#g 8.g ~ ^.9&/@o+C%O 2 >.^.> I%I%,%> ; !%<$c&,%O-i-r w @+c.c.c.i-R#8.g i-x*k 1.@+H%O-c+r c.w H%1.c.w w i-i-d.M%l$c+I%9'> W3X3Y3Z3`3 4.4+4@4#4$4%4&4*4=4-4;4>4,4'4)4!4~4{4]4^4/4(4_4:4<4[4}4|41424;#'%o=; L%> c+n G 2 C%-;-.4*a +., 6 o=i-k k H%c.k k R#O-l$B-O-, B-> ,%c&L%c&(.(.I%", "L +.n Z=)%c+R#8.c.[ H%] 4.2.7.5.m m ~#7.1...g 8.@+c.g.c.i-B-M%'%g 1.;.R#,%M%R#;#x*x*g.8.1.1.w H%k x*w @+;.k 1.;.w k d.r g.;.c...N m ] 7.8.g.w w [ M%M%M%, l$o=d.[ r k ;#R#w c.r g.r i-M%(.<$L%, O-c& .{ > , c...O-L $.l$i-r x*w ;.k w H%'%R#i-d., , d.;#c+o=M%6 , ; l$[ O-, k H%@+r r @+x*H%g.H%@+g T#R#x*H%k '%r g.H%@+H%'%;#, , , , B-,%, , O-6 [ r g.g.g.@+8.g 8.;.w k 8.T#8.g 8.g.;.8.g.k x*8.@+@+@+0+J%!+o.b&3+^.a { G l$M%l$c+l$I%c&L%c+c+> R#8.g.c.T#..@+;.H%8.8.i-i-c.T#8.g.k H%g @+T#@+;.k @+N g 8.i-;#[ B-I%*/ ]34;!44546474849404a4b4c4d4e4f4g4h4i4j4k4l4m4n4o4p4q4r4s4t4u4v4w4x4y4z4A4;#6 O-c+,%,%> ].G ^.2 a&#.a&m$&.O-[ [ H%1.g.k r '%@+T#r i-k c.c.[ d.c.'%w w d.6 i-", "@+T#,.m N ] ,.6.4 =#) - q - v 4.)+f.- 4 2.,.5.5.5.m 8.T#g ..7.N 1.g T#R#;#d.'%r g.H%g N 5.N 1...7.N ~#1.N m 8.;...] h ,@N T#;.@+T#..g.r k 8.@+c.R#, d.k x*i-R#H%R#o=i-i-w x*r ;#o=I%O-6 $.,=J%8&A->.!+C%J%n L {.)%} {.K%&.!%B-[ w w i-H%w x*[ r r r r [ B-, l$6 i-6 '%w r R#'%@+x*d.w r c.g.r w w R#@+g.R#r k g.c.m @+w x*d.x*R#c+c&l$M%B-6 6 c+l$[ [ ;#;#x*c.g.T#;.c.'%x*w i-w c.c.8.@+g g @+r 8.T#H%r B-'=G / 0+b&~+s.G K#B-6 I%I%l$,%I%c+, o=M%6 H%k x*H%@+r x*c.k c.@+w H%@+g.@+g.;.H%1.1.g g g.@+@+k i-o=, c&c&c+7=p,g1B4C4D4E4F4G4H4I4J4K4L4M4N4O4P4Q4R49~S4T4U4V4W4X4Y4Z4`4t4 5.5.5+5@5#5p)$5c+L%<$; c&> |- . .{ o+X 8&L ;#c.k @+T#7.8.k '%x*;.g.k ;.c.c.c.'%w g.i-w g g.'%@+", "c.;#H%N k H%N 0.=.=.=.0.=#4 4.- - f.=#=.0.- - q )+4.N c.T#f.,.g ;...m 8.;.@+8.~#N ;.m 2.[.-#6.6.5.N f.,.6.4 h ~#h ,@f.v 2.f.4 v 4.) ,@h 5.2.) ,.f.v 2.5.h T#g 1.N m ~#..7.] ] T#x*;#i-d.B-,=m$ .~+{ ~+Y |-} ].Z=!%,%;#'%r ;.1.1.T#7.g g.@+8.g g.k g.c.r x*d.[ H%i-R#k w w d.'%c.r i-w r x*k c.x*c.c.;.T#T#;.w g ;.c.w '%[ o=;#, B-O-, B-> c&> c+, [ [ ;#[ w w k ;.i-d.R#x*r r c&c ; l$r w c.x*6 ;#R#H%;#~ 0+$.c.k 4+0&F /@Y ~ Z=Y K#;#k w w ;#R#x*R#w x*x*r r i-d.R#c.c.r k x*c.k ;#6 ;#x*~#g @+T#g g g w ;#O-6 c+,%I%l$> m)%5&5*5=5-5;5>5,5'5)5!5~5{5]5^5/5(5_5:5<5[5}5O[|515253545+555+56575859505H%O-B-c+L%> } T m$/@^.0&X m$w g.r w @+,.7.@+c.x*g.;.g.g.g...g c.c.g.k g.@+H%;#g.", "d.I%L%, [ O-w 6.=.=#v =.e.f+s q )+0.0.q [.=.)+4.4.)+,.N 5.] ] ;.;.g g.g.r 6 ;#'%g N ,.4 v ,@2.h ,.,@,.v ~#~#h v f.f.4.v 4.) 6.- ) f.v ) ) v 4.6.) ) 4 4 v 5.N g ~#f.,.,@,@f.q -#)+- 6.5.2.v ,.6.=#) h ] 2.4.4.2.,.h v -#- ) =#- 4 - =#4 4 )+v ,@] ,.,@- 0.)+) ,@5.,@N ..N 1.T#T#1.@+1.1...m ,.2.,@) 4.] 1.N N N N m ..@+8.g.x*i-R#i-'%6 M%O-M%I%<$c&, o=d.R#r H%g.g.c.k g.;.@+r ,%l${.&.<$)% .!+{ G K#2 9&{ J%{. .4*9&p.{ s.~+U ^.s./ R#;.;.r w c.k i-[ '%H%H%H%r R#i-R#d.R#x*w i-6 '%'%w k c.g 1.g w c.;.w H%R#R#O-M%l$~!8]a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u5v5w5x5y5z5A5B5C5C5D5E5F5G5H5I5'+s 0.- q >+=.=#)+4 2.5.@+@+m h 5.~#8.;.g.@+g.T#h 4.0.2.2.f.,@5.) 4 ,@~#f.f.v 6.6.,@,@4 ) v 4.6.v 6.4.4 =#)+4 ,@h ~#,@,@h 7.@+T#g T#..~#h 5.,.v 6.4.6.4.4.4 - =#4 g @+g.x*'%O-c.6.) =#=#) =#4.4.6.,.m h 4.4.f.f.f.7.7.h h 7.g.@+N f.v ~#,.,@~#m ,.f.,@N ~#] 4.6.,@~#N ,.f.6.) v ,@) f.h ,@m N ..N h T#H%k k c.H%8.8.g.8.k T#m h ,.2.4 ) 4.- v 1.1.k B-&.K%c L%c+O-d.'%i-c+<${.n } 0+M%M%I%c&, x*c.1.g 8.;.8.8.g ;.k H%k ;.;.;.;.H%w @+@+;.@+8.g @+H%w g.g 8.T#g k k c.g.8.d.B-c+I%d.d.6 J5K5L5M5N5O5P5Q5R5S5T5U5V5W5X5Y5Z5`5 6.6+6@6#6$6%6&6*6=6-6;6>6,6'6)6!6~6{6]6S<;.o=L%{.^.v.p.!+z o+/@G G B-k 7.1.c.H%H%c.g.@+;.c.;.@+8.g c.r '%x*8.T#..7.7.", "d.> )%$.0+; > r h ) 4 4 - 4 6.v 4.q 0.-#=.=.=.=.-#e.s 7.x*6 [ R#i-k g k H%h N w c.,@h ] g v f.6.2.] 2.6.5.2.5.,@4.f.] 5.~#,.2.4 =#q =.0.- - -#)+h 7.8.;.T#h 2.] ] ~#5.5.5.,@f.f.6.v 4.) 4.f.f.5.1.R#O-R#[ R#[ d.k N 2.2.2.6.2.5.f.] T#@+g.8.@+;.T#m ..i-d.d.i-'%d.k N 5.~#m ~#..m m ,@5.] h f.f.,.,.f.f.v 2.2.v v 4.f.6.f.2.f.] N ] ] ,@h ..@+@+~#2.,.N 8.@+] 2.v 6.,.- -#- =#0.q 0.4.6.6.5.,@4.q [.=.q -#-#2.7.k i-7.4.v f.4 0.[.q [.>+f+q -#0.4.,@h 5.2.,@5.~#h ,@5.5.5.,.h ,.2.,.m N ] v f.2.h h f.v ] w/^6/6/$c..)(6_6:6<6[6}6|61626364656667686960614a6b6c6d6e6f6g6h6i6j6k6l6m6n6o6p6q6r6s64#t6Y!+*K#J%*./@a a&}-z a a >.2 .p.c+;.1.g k c.r 6 r @+g.@+8.g T#1.w c.k c.g.c.T#;.", "[ > )%L%l$, '%..,.) )+4 6.) ) 6.] v q -#f+s -#-#q [.q N 7.g ] ] w i-7.v 7.v - h m ~#~#6.4.,.] ,.2.6.4 =.=#4.4 )+q f.5.,.,@- =#)+)+s f+>+0.=#)+4.,.,.,.5.~#] ,@h N N ..N m ..5.2.4.4 0.) - 4.4.,.] r ;#6 ; &.&.e ,%w =#s =.0.)+=#) ,@h ,.h 7.g 8.;.@+g.k g.H%g.T#7.m h f.h 7.~#1.~#,@5.7.,.,@) 6.h h 5.h ,@,.6.6.6.- 2.,@5.] ] ..g.g.g @+T#N N N ..g m ~#..g ~#~#,@4.5.~#5.,@h h f.f.v v v ] h f.) =#4.f.m g.i-O-l$'%;...c.g.5.f.,.2.v 4 6.4.=.=.4 v f.2.,.f.2.~#,@,.v ,@] 5.v f.5.] f.,.,@v v ,.f.,@] v 4.J]u6v6w6x!x6m%y6n>=4]]6.7c ; c&;#g.H%O-,='=> <$0+'=c c&[ c.N 5.] m 7.T#@+7.] ~#N m N 1.@+T#1.g ..~#N 8.8.", "8.@+d.I%!%L%, T#2.v ) ) f.6.,.v h s e.=.q )+)+[.q )+=#4 6.h 8.k 7.m ..] 2.) 2.] ,.,.4 =.=.v ~#v 2.f.)+) 4.,@,.f.,@6.)+=.=.) 4.v 5.f.=.q 4 ,.f.2.f.)+6.~#] 7.g N h m h 2.m 7.5.4.4 0.=#=#4 6.=#6.,@k [ '%R#[ 6 R#;.1.] ,@,.f.4 4 =#2.h h ] 7.1.8.g g.T#1.8.;.k c.N ~#..c.1.g 7.N g g T#..] 5.7.,@5.2.,.,.=#,.] ,@2.f.m ..5.5.~#4.0.-#h x*c.1.g w c.k T#7.1.1.5.6.f.h ..T#1...g @+T#] 4.2.,@,@) 4.6.) v ,.] 7.@+k w o=6 ;.1.h ,.1.@+8.1.] @+8.m N h 5.1.g.m ] ] ] h ] ,@h N 5.5.7.h 5.h 6.4 ,@,@,@2.4.m ~#6.4&+7@7#7$7%7&7*7=7-7;7>7,7'7)7!7~7{7]7^7/7(7_7:7<7[7}7|7K617273747576777Y6879707a7K>U f.E~;+S#Z Z 9.p =.4 q - g 1.T#5.) - 4 f.f.6.4.6.) 2.,.v v f.4 - ) 4.6.2.,.f.- 4 v ,@", "i-; ; c&r [ x*8.5.4 v f.2.f.2.f.f.- q -#)+- 4 =#)+4 =#4 f.,.g @+N ~#..k T#H%;#T#T#@+N ,.,@..1.,.4.) - h 5.4.2.f.6.6.)+) ) 4 =#s 8.|-) 4.- 0.v ~#c.g.k r k T#1.N m N T#;.r d.@+,.4 - =#0.) 6.,.] 8.w B-O-R#r r w [ o=7.)+0.4 4 4 v v 6.v ,.f.4 ,.k k x*H%c.;.r '%r w @+] m R#[ H%c.~#2.N 8.c.;.g @+1.] ,.,@5.,.v 4 6.,.m ] m g h =#=#v ] H%T#h H%w k ;...7.1.k T#h ] 5.m N @+T#;...N ~#~#m h 4.v v ,.2.v m r H%r [ c&B-H%N 2.f.v h ~#m @+x*g.8.c.1...g T#N 5.,.5.4 - 4.2.~#g 7.5.,@,@,@) f.5.4.v 2.4.) b7M'c7d74&e7f7g7h7i7j7k7l7m7n7o7p7q7r7E*s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N7O7P7>)r ;+Q73:4 q 4.q )+~#8.8.i-I%r ] 6.- ) =#- 4.- 0.f+f+-#0.)+0.=.s [.-#-#v 4.) ) 6.4.0.", "m g 8.- = 0.4.4 q ) f.6.4 2.T#7.) - 4 4 6.4.- -#) f.4 )+2.h 1.h ,@f.m ..7.H%O-@+8.'%x*T#h ,@,@m h ,.] 7.] f.=#)+) 6.=#-#=#6.- q ) g.;.h 4.)+)+4 4.5.,@m m ] ,@,.,.h m g ;.2.- =#v 5.,.6.v f.,.,@g., ; / c ,%o=;.1.T#] 7.4 -#0.v 4.0.)+6.~#7.7.4 ;.g.c.1.~#c.i-g ] v 5.N m g , c+;#H%H%g N g.r r 7.g.g.k 8.1.@+R#g.~#,.2.,@h 5...g g T#g k '%@+H%g...g g g.8.r ;.g.r r 8.c., R#H%~#) 0.=#4.h 2.,@7.] 2.f.8.R#x*H%[ ,%M%;#i-w ;.1.T#T#..8.g 8.8.g.w x*'%;.g T#w [ k r ;#w ;.g.c.m h 7.k H%g.g.N v 2.,@6.6.4&R7S7T7U7V7W7@>X75)Y7Z7`7 8.8+8@8#8$8%8&8*8=8-8;8>8,8'8)8!8~8{8]8^8/8(8_8:8<8[8}8|818J%z)2838-+=.[.-#)+- 5.N @+, e ,%;#m 6.- =.=.)+=#)+0.=.f+[.s =#=#4 =#)+)+v =#- 4 4.2.f.", "] m h 1.R#c.h 7.,@,.f.4 6.,.4.=#4 4.) [.) h 5.4 =.)+v ,@5.h N T#8.N 5.,@@+k w ;#5.4.8.@+,.)+) ;.h 0.4 ;.1.h 1.,.~#5.- =#4 f.>+9 = Z a.)+] 7.m f.4 q -#)+) ,@] 5.~#..7.h ,.2.f.=#0.4.f.v 6.f.N ~#5.6.~#[ ;#[ i-'%T#6.4 ,.f.v ] ;...v ,@5.] m 1.m 1.M%R#;.d.d.i-k 8.T#c.k 8.m c.r ;.;.l$x*i-6 6 > '%r ..2.,.~#m 7.7.h 1.8.m T#k g.;.g.k 8.N g g k k N T#w w )+N 7.g i-M%6 I%d.g ..7.8.w ;...~#1.] ..8.m ] x*M%B-[ x*....@+'%[ i-;#;#;#R#w ;.@+k ..~#T#g.1.6 0+'%g.i-o='%R#6 i-i-d.'%r 6 g ~#5.~#,@,@f.4 f.485868788898m h k:08a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q8R@C=r8s8t8u8i6v8w8x8y8z8A8B8C8D8(&%+E8F8G8f.h f.m 8.m ] N ..,.m ..5.5.5.4.-#>+s q ) 2.)+s -#4.v 6.4 =#=#- s =#=#6.,.4.", "] T#;.l$$.0+, r h 4.,@m m 1.5.-#- 5.,.4.- 4.6.v v 2.,.f.2.,@f.v ,.2.4.6.2.v 4 N k @+w g h ,@] 5.] h h g T#~#f.N ;.5.=.-#=#4.4.- - - [.f+0.q v ,.6.] ,@m m ,.,.v 2.=#q 6.v ] ~#v - 4.4.4 4 2.2.h T#g @+@+;.g.;.8.@+H%m 4.v h ,@m h 4 4 ) 2...8.g c.w i-, <$c+,%> > 6 r '%d.O-'%r O-,%I%;.g.g.@+w r g.@+1.m 5.2.6.5.7.@+g g ..k '%;.;.O-O-x*r '%l$(.o=1.7.T#,@r B-8.T#'%B-<$<$L%o=r H%x*r k c.H%;#,%;#] h g d.> 0+,=I%, I%l$o=d.w k g.k '%l$c e , c+r 8.;#c.[ e , B-x*, N r @+m H%1.8.;#'%7.] ~#h ~#7.A'A%<)^{]6})H8)+I8N J8K8L8M8N8O8P8Q8R8S8T8U8V8W8X8Y8Z8`8 9.9+9@9#9$9%9&9*9=9-9;9>9,9'9)9!9c@c@~9{9]95.~#..@+k i-o=, I%;#6 g.1.] h h ) 4.4.5.8.,@) 4 ) 4.4.0.s 0.)+-#=#)+) 2.6.4 ", "c+B-l$B-c&,%'%g.~#4.) N T#..8...m H%;.1.,@f.f.)+) 4.v 2.1.r [ R#R#w g.k @+..7.m ~#f.] @+d.l$c.q 4 h 7.;.i-g f.l$O-m m ~#-#4.4.4.2.f.=#0.- =#v ,@) 4.- )+=.[.)+f.5.~#m N ~#] v v 4.) 6.,.h m ,.6.,@7.x*l$'=0+I%c.~#H%7.2.f.4.,@f.1.x*x*;.m ..m 5.7.g T#x*;#R#x*w R#m ~#7.c+; O-;#H%c.'%o=R#x*r H%k H%x*H%6 H%'%L%i-;.w c.7.....8.o=,%!%!%L%l$,%(.<$o=g.c.;.c...] c.r N k I%6 R#k k '%(.,=, k x*O-R#i-k H%> ~ } @*T *.J%~ )%c B-H%g.k [ B-[ i-i-, 6 > M%I%l$d., c+c&o=I%T#c.M%m m H%1.N g g ] 2.,.T#V~;/^9/9(9_9S-'%R#:9<9[9}9|919293949596979899909a9b9c9d9e9f9g9h9i9j9k9l9m9n9o9p9q9r9s9t9u9v9w96~u/l+2.~#7.1.T#,.2.~#g.M%> M%w T#8.7.2.m ..7.f.~#7.1...h 4.0.- [.s >+e.3.f+) ,.)+>+", "K%~ Z=)%<$c+l$'%7.N ] T#g T#c.k r m 1.g k ;.8.g 8...g g.r r ;.g.g.c.w c.H%i-w o=O-r k 6 I%[ c.;.f.T#8.8.g ] h 1.g.N 1.;.4.[.0.- )+0.=.) - )+,.1.g.g g @+f.q 0.v ,@,@;.k H%k ..4.- ] h 4.) 6.)+4 4.7.k H%[ c+l$M%'%h 6.5.7.~#] m ~#c.d.r '%;#x*g.;.i-R#R#R#R#B-I%B-i-R#M%,%@+g c.c.H%r 8.g.R#r d.O-i-;.1.'%k T#@+g c.k c.x*O-l$B-; '=,=B-c&> c&c+R#r g.k H%w @+;.[ B-R#, c&R#c.w O-B-6 M%6 r g.8.7.N h v 5.8.'%o=I%c '=e O-O-o=g.g H%w r g.g ,.f.7.k ..v 4.=#N M%M%, k @+'%I%,=Z=I%;.] h ~#7.T#N m x9V~y9z9A9B9R%C9m!r L>D9E9F9G9H9$[I9J9K9L9M9N9O9P9Q9R9S9T9U9V9W9X9Y9Z9`9 0.0+0@0#0$0%0&0*0=0-0;0$^>0) ,0~#] m 8.;.r R#O-0+,=)%I%6 B-o=B-I%H%@+7.c.r x*6 8.-#e.e.e.p 3.e.=#4 )+)+s ", "c&e ,=0+!%l$d.H%g 7.c.c.c.c.g.@+..1.g g x*'%i-r H%r k x*6 ,%M%k r o=x*1.7.h 2.5.8.'%h v m c.k r w ;#g.8.w i-x*....7.~#~#T#c.g.g 7.7.1.5.-#f+4.] ..~#~#@+R#O-;#c+I%R#i-o=B-d.@+@+T#~#~#~#8.@+4 ,@w m ..] T#r , x*@+g.7.g ;.8.@+@+g...@+g.H%;#M%, l$!%c+, [ R#6 I%; L%; > c.c.k [ B-<$)%<$e c&o=l$L%,%,=o=d.[ w k g.;#, O-0+0+)%l$i-x*x*I%(.; !%; (./ ~ L ,=[ > ,='=K#v.@*&.e (.Z=L ].c&i-[ '%w '%r H%1.8.!%r [ M%!%,=O-i-@+1.1.H%'%6 d.B-; !%!%L%> ;#c.T#h ,@] g ;#l$, k m ) h g 7.g ..] ] ..i]A/'0)0!0~0c/{0]0^0x]h&/0(0_0:0<09|[0}0|010203040506070809000a0a0b0c0d0e0f0g0h0i0j0k0l0m0n0o0p0q0r0s0t0u0v0I;`*,.] g.k T#] h c.H%8.H%B-)%O-> +.0+I%> c+o=i-] ] f.f.m 6.q 4 s [.] ] 4 e.", "; (.c e <$,%R#k c.c.c.w '%x*w H%c.r H%;.8.g.g 7.1.m N ;.R#6 o=i-d.O-R#w c.x*'%g.H%r T#..7.7.c.c.H%c.1.c.R#k w I%o=1.h m 1.1.8.g.c.r H%r k g T#7.w [ B-l$l$;#d.6 o=d.g.N ,.5.N @+8.g 8.H%c.1.2.T#h ,@g ;#O-O-> > c&B-r 1.7.7.7.1.g 7.m 8.;.r R#o=M%o=c+)%c <$0+/ (.c+6 [ R#d.c+)%!%c+M%,%!%c+B-O-c+e 0+,%B-!%!%e > e $.K%K%/ )%(.n |-{.~ $.; )%&.&.K%K#o.].!%e ~ +*L U .K#} <$> ,%6 H%, ; ,%I%> !%e c+O-; O-d.;#M%> l$<$!%, , M%B-I%L%L%)%@*n Z=T |-/ (.,%c+l$M%o=d.6 I%M%d.i-T#8.H%8...w0O'x0y0z0A0B0S'C0D0I>_%E0F0C9G0H0I0J0K0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0`0 a.a+a.0@ah0#a$a%a&a*a=a-a;a>a,a'a)a!a~a{a]a'%r R#R#6 , ,%c&o=[ i-c.i-c $.; , c.g.N ) -#>+q 5.~#N h f.2.)+=.=.0.,.- ", "6 c+!%e e ,%w ] 2.] m N g T#T#8.@+8.@+g ..m g g g.g.H%c.x*'%'%x*7.N 8.T#@+;#x*m m 7.f.5.8.x*R#;#[ R#[ i-k @+c.'%~#q 4.h 2.6.,.N ,@N m g i-6 '%T#7.N ;.w H%c.g.k k c.8.i-r w 8.T#;.@+8.w ..6.6.w c+w H%w c.c.H%g.H%H%;.@+c.H%H%i-[ R#R#i-'%R#d.d.;#B-l$, O-o=B-!%<$<$c &.B-B-c+L%!%!%c {.{.0+(.!%!%'=c&c+)%+.].} ~ ,=0+<$!%K%|-J%s.J%+.'=/ c $.,=$.~ ~ Z=/ $.,=} +*L L / / <$[ n +*c L%K%0+;#i-o=[ ;#c&,%e ,=} ].{.,=(.<$<$c+I%c&c&> c+B-B-> ,=|-Z=> o=O-6 x*H%c.x*d.l${.T |-)%R#d.<$|-{.d'^aU~/az@n,],(a_a:a l$g.8.M%c.4.)+v 6.-#f.l$~#=.0.) 4.h 4.", "; e <$M%I%e o=k N 7.8.H%'%g.8.;.w w H%N 2.,.~#,.m ] T#'%[ '%g.;.x*H%1.,.=.=.3.>+N ;#> B-[ ;.7.] @+1.h ..;#@+~#1.r R#d.x*@+..h ~#T#g g T#7...8.;.g.g.w i-i-i-x*i-[ R#i-i-6 [ g 7.~#~#T#g @+;.8.H%d.;#6 ;#6 , r g c.;.c.R#, , M%O-;#;#o=O-O-M%B-R#[ c+> (.Z=~ |-K%,=0+> O-6 M%, O-B-L%L%!%<$e K%'=e <$,%c K%T K#K#Y m$*.Z=,=L ].~ } @*G p.v.p.~+L T a q.{.l$B-e &.'=K# .$.,=U J%L K%,=c K%K%e c+O-d.e / ; ; I%> e 6 ;#o=l$; ; 0+,=,=/ '=Z=].U K#Y L c (.n K#m$L '=c c&M%c+6 6 ,%!%g1c&<]6'AaBaCaDaEa.>.!FaGaR,9]HaIaJaKaLaMaNaOa}0M0L0PaQaRaSaTaUaVaWar*XaYaZa`a b.b+b@b#b$b%b&b*b=b-b;b>b,b'b)b!b~b{b]b!=^b/b(b{.c l$d.x*r @+g T#r I%B-I%c c (.0+I%o=K%(.R#x*g.8.w k k @+,@4 f+S#=.,.", "$.,%M%i-;#, R#x*k g.8.;.x*'%g.g.d., w 8.k c.g.1.@+@+k o=6 6 O-, 6 r k k g 8.k g.1.g.8.;.k N )+2.8.2.,.2.v ~#x*R#d.'%w i-r g ..7.7...8.8.@+@+c.g.c.g.k g ,@..k 8.N h ,@..c.@+T#@+@+g @+;.8.;.g T#;.w r R#, <$&.,=(.c+x*T#N ~#1...,.T#x*d.d.;#6 , B-I%c&; 0+0+!%&.Y ].<$l$B-c&e $.@*Y T Z=L%L%(.> <$l$d., > } T Z=!%c <$I%,%I%,%L%(.&.+.J%*.K#|-{.n L o.G+E>t]$._b2,J%o+o.m$+.)%<$:b ; c Z=$.Z= . .+*+.@*K# .T &.<$<$(.; c R^Y)[b}bB>Y%|bi,1b2b3b4b=*5b'46b7b8b9b0babbbMacbdbebM0}0fbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzbAbBbCbDbEbFbGbHbIbJbKbLbMbR,NbOb .#*v.s.r.J%K%Z=+.} '=)%'=+*n $.c I%R#;#> ].&.;.] 2.4 s 4 ,.] ..m ;.H%", "i-1.] ] ] 5.h m ] ] T#c.r w x*o=<$> x*c.@+@+N ..H%r R#;#O-O-M%;#c.7.T#8.c.w r g.;.R#x*c.7.m ] N c.i-6 x*g 8.1.2.,.] N m N ,@2.m ..N g 1.] 1.1.g k r i-r d.;#I%L%$.,%6 i-x*7.,.7.N g ;.h 5.~#..x*@+H%c...5.5.1.'%; [ @+T#;.g ..1.8., ; e Z=$.l$, L%$.c ; )%0+&.Z=G +.e e c+H%H%,%<$;#B-> <$c+; e &.,=&.} { !++*I%'%6 B-!%,={.*.2 2 v.v.U G v.2 o.^.+*|-PbQbT Z=,>'>K>x>F;n&Wb7;(5z>Xb .{ m$J%].&.; e *.r.o+>.v.K#G T U v*b(6;|-,=Yb.%ZbI;u~W'1-`bC{ c.c+c@c#c$ce!%c&c*c=c-c;c>c,c'c)c!cM0M0}0~c{c]c^c/c(c_c:c.s./@2 2 +*$.)%&.,=(.L%;.7.5.H%l$7.T#R#, B-", "H%o=R#H%r k 8.g 7.~#h ..8.r '%c.N 7.;...~#N 7.7...c.c.R#<$l$[ ;#6 , B-l$l$l$l$o=~#;.k g 1...v ) N 1.T#8...1.c.@+8...8.g g.8.1...8.c.x*i-N 7.5.N 8.;.x*d.d.8.m 1.g g g N g h 5.d.g ,.6.6.~#] h 1.m g w i-7.>+3...; o=i-[ ;#;#[ d.;#;#d.;#O-B-R#w ;#r 8.H%o=l$c&0+I%;.;.w c.w R#I%> r g.w &.J%s.*.{.,=&.'=+.T '=0+)%e ; ; $.K%} ].T L;Y m$^.v.o.O 0&a&i@N^ncocpcqcrcsctcucvcwcxcyczcAcBcCcDcS{!!*GcHcIcJcJck(,>@,KcLco+^.C>U ~+r.Mca i)G A>y!-]NcOcPcQcRcY>ScTcUc&]Vcn>WcXcYcZcS{_a`c d.d+d@d#d$d%d&d*d=d-d;d>d,d}0'd)d!d~d{d]d^d/d(d_d:d > ; (.c Z=K%$.c c c )%'=@*+*5*/ F,f)s.c(pdqdn {.K%+*!:#*y.rdp@sdh(tdudvdwdxdydzdAdN:0%F0BdB.Cdl(DdX%X I 4*{ H;EdFdGdHd:{ydIdJd!]KdLdMd_^s.o+O [;a a #%Ndo.^(OdPdQd7]Rd;_SdTdUdVdWdXdYdZdo'@,`d e.e+e@e#e$e%e&e*e=e-e;e>e,e'e)e10!e~e{e]e^e/e(e_e:e c {., ;.2.] 7.B-M%'%c+(.", "h h g.O-O-o=o=e $.L%B-;#o=c+l$o=;#[ O-;#'%w o=i-r H%'%, B-o=r c.g.@+1.8.;.w o=, l$6 6 c+> !%, 6 ;#'%;#'%c.@+8.N 8.g.8.k x*R#x*;.g ..] ..1...g.g.w R#R#d.d.w g.H%x*i-R#R#c&c [ d.;#;.N T#] ,@v v 1.8.v h 1.N 5.f.,@8.;...7.~#7.g r M%c+'={.(.,%B-6 ,%L%c+B-o='%k w [ H%c.1.7.@+, e )%/ |-} ; d.k d.'%i-H%T#..@+:!; u{L G m$X _+neoeWbpeqereseteuevewexeyezeM(3+8$Aeo@BeCeDeNcEeFeGeHeIeJeKeLeHdMed>2 keNeOePeQe.$ReSeTeUeVef))]+$Tb**u@Tb-*Q!>.We9&XeYeDaZew]b]Ec`e f.f+f@fs%Zd1,#fo+m@p!s.$f> %f&f*f=f-f;f.'1->f,f'f)f!f~f{f]f^f/f(f_f:f(tfT>uf<$> L%!%(.)%c 0+!%)%'=} } @*@*@*@*,='=Z=$.I%[ @+;...c.x*i-R#[ ", "o=[ x*g.T#@+r L%/ Z={.n } Z=0+c&> ,%I%c+M%B-0+!%> B-l$I%c&; O-6 M%, O-L%<$l$c+M%, [ r ,{'%'%k g.'%k H%k x*w N h T#c.k ;.g.g.1.N ~#g 1.~#m ....g c.x*6 l$I%c&c+O-;#6 6 M%I%M%c.8...8.R#O-R#k h '%i-g ;.T#w H%7.h ,@7.;.c.d.x*H%r '%i-;#M%l$r B-O-M%I%L%c&<$> , i-L%c I%'%6 , O-c+, > &.|-*.K#+*@*T { >.!+O a 6;F,H>,>+>vff)J:K s@wfxfyfzfAfBfCfDfEfFfGfHf ^If';JfT~z q.G+}{l>i{H>KfK,a'L%'{t&T!w>,% ]> r{1;Lf%=Mfe>!*Z#NfOfPfQfRfSfAd}#Tf#.9&~+G t>S>UfDa}':{VfD.WfAed{XfHcYfx.x.V%~,Zf{ `f g.g+g@g#g$g%g. M*&g-!*g=g-g;g>g,g'g)g!g~g{g]g^g/g(g_g:g(t@pgWf~+K#|-'=)%I%<$,=/ c ; > (.'=} K%/ ,=&.; , r H%~#1.H%;.w , R#", "c&<$> c+, o=6 B-O-r i-d.w H%;#c+I%M%M%;#c.g.x*R#M%, ;#c+B-d.O-I%> 6 @+> > M%o=d.R#M%I%qgR#m{S/rg.'M%,%M%g 5.] 4.6.,.,@~#7.k x*i-'%x*x*w i-M%; ; c&1.f+>+=.- 0.q ] @+;.g.@+g T#,.4.f.1.i-H%7.f.;.k w i-i-p,l$6 w '%'%r r R#d.c.8.8.k R#M%> J,sgw <$@*'=~!M%B-c+P{$.n / )%)%; !%L%B-, ,%L%!%c 0+$.K%g),=!%0+tgm$ugB{vgK~wgxg .|;%=i)ygG G {~x.)]zge>VeA>Ob8;McV%z.D.AgBgY#y{M^CgDg>;<]X'Eg1]FgGg+^HgIg1]K,JgOfKg('(bz>^,`b1-Lg{~MgNgW'x>K#v.#*y>Z=OgP{,= .,;Pg[!Bd~~h!QgRgSgu*y.k@z-2 V%r>TgUgVgWgXgYgZg`g h. . .h<~+h@h#h$h%h&h*h=h-h;h>h,h'h)h!h~h{h]h^h/h(h_h:h_@*fhMc+>'>ghhhihi&O o.o./@~+2 !+o+Y |-+*{ 8&A-X C%X a&a 0+T#7.2.] R#i-;.x*M%", ", d.8.7.g.O-l$M%d.c.g ..4.f.2.] T#6.v 7.7.)+f+>+q f.m N 7.] 7.g 8.1...@+c.i-o=L%M%M%jhc,n>R~U/;][ ;,I%;#H%@+O-6 r k R#;#[ h].'; ,=$.c+c&,%6 , I%6 c.8.1.7.T#] ,@@+x*c.g.g.'%;.c.c.1.;#R#g ;., c.7.1.m y;w R#x*'%H%] khlh- mh=.nh4 v m r sgohphI]0%R) ]|!k 0]s)Z]I%R#@+T#] T#k ; y'~ :bR^qh/ a(*.n I(rhshthe{U]e{a{uhvhv.q.p.whPg8,S;6; .!+0&0&!*j@xho.r.q.b&p]yhhhzhAhBhChDhEhFhGhg@HhIhJh1#AhKhLhmcMhEeNhOhPhPhQhRhShThJdIeUhVhWhCdXh1b3bYhZh`h iJd.i+i@i#i$i%i&i*i=i-i;i>i,i'i)i!iT!W,~i{i]i^i/i(i_i:i6.@+6 c.RiSiA%480/U#T#Tiw*WcUiViWiXiYiZi`i j.j+j@j#jU{$j%j&jA;6;U ^'5]*j=j-j;j-[C9>j,j'j>i)j!j~jT_{j,*E0]j;{O(^jW-/j(j_j:j4*-;A-b& .b!y.z.t+&*i@f)4]AaX'S%j&ajbjLdcjdjejm(fjgjhjijodi(jjZckjljmjnjojpjqjrjsjtjujvjwjxjyjzjAjBjCjDjEjFjGjHjIjJjKjLjMjNjOjPjQjRjSjTjUjVjWjXjYjZj`j k.k+k@k#k$k%k&k*k=k-k;k>k,kF,b!J:w+0~6;'k)k!k~k{k]k^k/;!+O v.L '={.K%,=&.c ,=$.e <$Z=Z=R#] ..r d.'%o=O-", "Z=&.l$d.H%..8.d.B-l$l$L%)%0+0+!%d.'%d.'%g.;.@+8.c.k k '%R#i-;.g ,.] ] ~#r r i-w N 1.H%g./kw R>J+L%i{L%O-R#'%H%g 5.N x*R#l$(.B-o=[ ;#d.i-r 5>m{O--[(kp)l{;#c&O-H%A'y__k&~I#Z.X7A/[9w [ '%d.@+@+8.h ~#1.:kJ>bkckdkekfkgkhkikjkkklkmknkokpkqkrksktkukvkwka{J}t=xkT(F.ykc>zkAkI(Bk}#4*2+I CkB.DkEk1%OfydB{Fkj=I 3+2+2+^jGk)>AgHk_{IkWfJkKkLkMkNkOkg&Pk&,YcQkk(_^.!r.2 /@r.!:|-RkO-c+l,l'l)l!l~l{l]l^l/l(l_l:lPjK>q{sltl{'j{uls.w~vlZ), d.w x*i-k i]x*wlxlylc.@+7.k L+=('n!f,/'4#>;/'+>|>F;f) ..,Wl|{@*,>$,w;A;YbR)Xlt>8;YlX#!+0&8&!+Zls.x.y.{ v.V%McL&Sb[;w+`lR;^' mq>.mO[b&X Tf#%4*#.X a&X }-}-Ne8&+mA@>.Mc~+v.m$v.f)e>*.G @m#m$m%m&m*m=m-m;m>m,m'm)m!m~m{m]m^m/m(m_m:m > <$0+c <$l$O-O-l$I%O-M%c&L%!%> ; c&c+o=O-l$&.,=i>M-l$M%M%&.'=<$<$(.0+,={.} ,=M%;#> ;#R#<,[ o=RVm.'o!Z=a X Wm6,Yey]Xm0bM>BaYmZmT>`m n.n+nc{(=J}s{o-)]@n&*/@w.m$Wlr.z-f)#nZetdS,Y%q+>.0&$n%nOkr.m$v.r.%*&n2-*n=ny.Q!ygU K%Z=-nD&+>@&;nK>e'y>+*G F;1->n,n'n)n!n~n{n]n^nZ-Pj/n(n_n:n^=VeGnx+i>L~m,S>]).%,{z<@+[ 4>Hn[{x*Cli-N ..k 7.6 )%(.", ")%e <$(.<$L%; L%; (.0+&.0+{.'=Z=0+(.)%0+c &.(.)%<$e L%; <$0+c 0+)%)%(.c 0+c $.,=&.{.'=/ Z={.Z={.{.Z=/ / / $.$.,=0+{.n K>'=Z=} i>K%,>$.'={.K>I,Z={.N2L(@&c (.e ,%c&.'Z>=]7'0bI>u,,%<$,%(.,=&.,=l>InX'c&<$B-R#O-O-R#R#o=i-;#6 M%wlJnj{X'KnK,;#g w0g.T/Lnu,MnNnVmOnTcL>, PnQnRnSnTn@&+n+n!ibk9(XcUn`=d>v.c!1-Vnn.Wn1-()XnYnIaZn`n oO^.o}'YcGns.vl+o[!|,%{F>F>o{y,@oFg#o$o%o&oJ}*oG(=oDa-oB{`dp+(;;o>o,oR6;.!z.J!k*'oMcMc!*~+v. .m$v.z./a)oFa!oCdWh ~$", "<$c+B-I%c+<$L%c&c&L%(.(.L%!%0+c 0+0+0+c c (.&.,=0+c 0+)%(.&.(.I%L%<$I%<$; )%&.e c c e h)&.c e (./ '=$.0+/ L($.&.)%0+,='=&.$.'=$.c '='=)%{.~ {.{.{.K%~ } u{Z={.'{R^(.&{(.$./ Y{h)~ } ~ {.'=$.'=~ ~ o'].@*&.&.|-@*@*|-} ~ } Z={.Z=~ {.Z={.,=_*(.!%)%c &.F*'=n-j~s=q{L)&.,=/ Z=y>{.K%/,|-n |-L~^)/,G;Y G G G K#G U L G;+>T'tfl,G,~=Z)c>|,z>A>^. .J%} Z=/ ;pw;6;6;v.s.{ 8;/_>p1%,pH(vgEn'pMh)pHgXc!p~p{p]pQbBe^pIgYm/p(p0bwk_pjdt@Tb=n/@b!:p`p qH>s{Qeu@.qD,+q@q#q$q%q&q*q*q=q-q;q{]>q=#) =#~#u>", "e !%c&> !%e (.0+0+!%0+Z=Z=K%,=0+c (.)%&.0+!%$.&.; !%e c 0+; e > <$)%!%!%/ ,=,=0+$.!%e &.!%; (.(.c ,=&.)%c r{-n{.} {.&.'='=/ ,=,=/ Z={.{.$.&.'=Z=0+&.Z=e 8!K%'=,qH>0+0+/ )%)%&.$./ / '=,=c &.,=Z=c 0+'=,%,%{.$.c $.{.'='=~ K%{.{./ / ,=/ Z=/ / )%0+c ,='=F*Z=} MiY{~ K%} } +.~ Y{} {.Z=/ E>} Z='={.~ n Z=Z={.Z=} } +.@*L @,L T +*Q;|-@*J%T*G .^.m$*.U *.Y u*s.r.G U T +*T |;G;vfY!t=Y!4#g>c{>;'qY!)q|{u=u=y>,>i>i>i>])n-y]a{H,4# .Y m$>)!:m$ .>)y.y.(;/@p+a W#o.ZlZfm$^_!q.!~q/@a {q]q^q/q(q_q:qq9.9 9.0.Wq", "~ n Z='=~ ~ Z=~ ~ Z='={.} } |-$.K%{.'={.e !%0+&.0+'=&.)%)%(.(.)%<$(.(.Z='=0+/ Z=/ H>$,,=~ '=&./ K%Z='=/ / K%@&,=$.Z=&.c $.c <$)%c &.c L(c / @&0+c ,={.(.XqZ=,='={.'=&.'=(.)%0+(.&./ / &.$.0+Z=} Z=Z=e , {.K%$.$.c $.&.&.$.$./ c e 0+&./ &.$.,=)%$.Z=Z={.'=,=/ / {.~ '=/ / / ,={.Z=0+&.'=K%~ } n ,='=|-+.K%Z=Z={.n +.+.} } +.L @*|-{.~ |-|-L L U G G .J%L T U *.J%J%}>Yq .ZqK#T @*^_T . .Y >)_*~+{ m$Zq . .U K#+*h-U T `qT p=|-n ].+*].@*+.@*n +*T ].,>,>x>} Z=Z='={.{.'={.|-]> r.r+r@r#r$r%r&r*r=r-r;r>r,r'r)r!r~r{r]r^r/r(r_rfn:r^=*.+*+*T +*].n ~ {.~ } '=/ '={.,=/ H>I,'=-nn-~ n {.'=~ Z=|-|-n {.|-K%~ } K%Z=~ '=DrZ=$.,=n +.} +.@*T / p,K%} &.'=/ ,=/ '={.,=&.c c $./ $.,=c &.&.(.e $.$.'=} +.{.'={.{.} Z=$.'={.~ @*n / } |-} Z=K%n |-@*|-~ ~ ].+.L T ].].J%K#K#Y Y U K#m$*.*.*.T Y ^.{ ~+v.~+~+^.U *.Y Er .K#K#T +*J%6; .v.{ { 0+:;~+ .^.G K#G .K#U Y Y G U J%K#J%Y .K#Y U *.].FrG K#!=^!)=T L L T |-K%{.'={.c-GrHrIrJrKrLrMrNrOrPr6&Qrt*RrSrTrUrVrWrXrYrZr`r s.s+s@ssq#s$sCp%s&s*s7n=s-s;s7r>s,s's)s!s~s{s]s^s/s(s_s:s.*t,t't >)t!t~t{t]tFr_!*g/-^t/t(t_tn+.{qdT':tf'y'^t}t|tf'} 1t-nh)&./ / &.-nZ=,=", "v.].U ~+K#{ ~+J%s.|-s.{ .@*+.U / {.K%K%G |-G Y ~ ..*.O 9&0&q.2 Y m$>.2 K#U 2 >./@{ J!2t2 { v.m$|;e' ..{p!v.r.*.3tm$cs+*{.n+A@Y |;p!#fv.$fm$y.b!p.^.{ n+L ~+ .U p.x.v.q.0&b!/@4t5t>.F;>$K#J%p! .u!6t7ty.p.K#:;b(m$F+Y .J%K#w;1-U G m$pd .{ v.2 o.s.r.s. .s.v.~+o.2 s.^.m$r.m$ .{ p.2 p.s.r.~+s.p.2 o.>.o.2 o+p.2 o.2 2 >.!+O z We9&9&z 9&O o+>.o+/@s.p./@q.q.a >.q.o.o+o+Ylk@2 9&o+q.o+!+z ~,3t>.z 0&O 9&9&O >.A@>.a !+a o+o.q.q.{ ~+~+G @m^.v./@o.{ v.{ m$v.m$G .^.^.F+b!Y r.8t9t0tatbtctdtetftgthtxsitjtktltmtntotptqtrtstttutvtwtfiM L#xtytztAtBtCtDtEtFtGtHtItJtKtLtMtNtOtPtQtRtStTtUtVtWtXtYtZtU qd`t u.u^!+u@u#u$u%u)*@*}t}t_$&u}t'>}t*u=u-u;u>u,u'uf')u!u~ut]e ; (.(.(.{u]u", "Y G J%G ^.m$2 a 2 ~+m$G Y ^.K%+.@*K%+*T Y *.n *.@*6.} C%r.O !+q.{ s.m$O q.^.v.v.Sgo+q.!*.!Mf:;~+s./@v.-*Zf^uk@G +*Y Ylr.T Y r. .U /@~+].8;q.Y 6>U *.L 8;G @*K#}>]t@*T |>^..!!+v..!X#/us.m$s.hs{ I%)=pd]tq./@p.%*w.a s.q.y.T r.@*m$}>2t/@m$Mfs.m${ s.csV%q.9&{ . .{ { q.^.(us.-*r>xhV%A@_uo+:uo+Nko+.9&[;a&8&K K C%a&O 2u>.8&9&!+9&O O !+X#a O 0&1u1u!+0&O >.0&O o+a hsX#!+9&a o+q.a 3uo.p.s.Q!o+xh:;4u*.H;8s+v@v3|#v$v%v3|&v*v,=F*e !%c $.=v--", "/@G ~+^.G ].p.v.s.v.Y U *.J%K%+*U *.^.G Y .T Y K%c.~+!+m$~+v.!+/@O O z a 9&-v^./@p.v./@>.O ;vcs8&a .K !+q.Mca&>v2 o+.!rfa 2 m$!+o+~+2 Q!o+b!(uK#+*r.{ ~+m$~,/@U r.+*G;v.O z a r.{ !+o+q.O /@A@,v].^.Vn2 a s.p!V%{ r.>.%*v./@v.U J%e>Mf{ ~q~+r.J%q.m$m$=nV#$fK;'vs.{ ~+Y { u@O o.6;V%w.J%s.L&p.8;^bG+YlWeYlm$k@a @mLgMf%*o+G .!)va r.p.a !v<;L&9&~q!*F;V#.!{ +>b!^udsMfe'G q.A@z !+>.p.8&t^Wu3t(u2 ~vw.a !+&*p.k@[;C%UkOk!+r.{ C%[;!*!+{vO[]vr>^v<;q.SkSgp.9&V%J:[;q.e=%*%*P7($/v(vC3_v:v(uVvWv7sXvYvZv,u'u`v w.w+w/ _b)%0+/ $./ ", "^.*.L +*J%J%K#*.T n L K#L K%'=K%].$.n T @*T G T L 0+/ p.J%~+2 { >.2 v.o.m$>}F+A@@wNkV%F+>.r.r.[u#fx.G;q.q.}u#w>./@+*1-|; .MfU w;p.:;~q$wa&~+r.O a&9&p.7tb&b&!*p!C%o+O o+!+0&z 9&p.ke[;!*0&8&ZfMc.%Vva&>.z %wSbY 2 J::u9&'vo+z U (u~+s.2 o.q.Sgs.-*/@r.s.o.xmJ:K#!*/@2 w.-*!+/@ . .Wl9&p!r.K o+8;}uo+Mfs.0&2 -*+*>$xh~qMc/@xm6;2 J:X#v./@2 `dYl{ o.o.{ p.%*/@p.&*>.cs}u!+O !*.!r.a&!* .q.>.!+^=4% ./@C%o+/@>.v.a 9&q.csa&C%>.a o.!+/@-*2 2 Tk7tf)N-}>8;&w/ur.X McJ:*w=w*g_t/--w;w>w,w'w)w!w~w{w]w^w/w(w_w:wL#@|", ")%|-&.K%/ Z=} {.{.J%+*Z=n ].].@*} |-~ ].|-|-+*@*L !%{.m$^.K#J%K#~+G U *.K#G 6;Rw*gSwVuVu^!1-qd{tx;VvK;+*is4bTw+.K%0+Uw$u_=*v&.VwWw} '=9~/t;pds].].K#+.Xwqd`dw;x>~+m$%*gs>$N--*%*x.p!s.o+2 X#}uqd0+}ty.r.&*8;Sgo.~+s.o.<;y.-*!+MfF;q.p.&*/@L&<;2 [uq.a&!+r.!+a G q.w.9&~,a O s.9&Q!a O >.p!k@_#9&>.Ylo.v.YwNkO r.hsa o.Wer.o.p.o.8&z r.0&a x.K { 2 9&O o.v.p.o.0&]vv.9&t^o+a !+9&a !+C%K /@K vlw;!+0&>.a J:q.o+o+}-9&Mf!+0&a k@q.>.O xmk@!+:uZw9&8&o.s.Yl2 p.<;o+w.2u_!Tw3sBr`w x.x+x@x#x$x%x&x*x=x-x;x>x,x'x)x!x~x{x]x^x/x(x_x:x.C%O a m$z O o+p!t^b&a s.McJ:~+o.2-V%~,Ylm$q.[u{ L m$Sg:;~qo.s.p.x.>.Bxk@&*{ /@/@%*v.<-o+q.{ RgMfv.p.{ ~+p.b!r.b!^.F+ ./uy.-*Cx(u+.m$~+~+8;pd^.v.~+G +#`d8;~+ .m$/uDxf)(uv.:;2 { gs#w{ F;@mExv.U .!&*~q~q~qp.m$n+V#@mf)^.cs(u&* .@mp.^.^.}>o.f)w.o.^.q.~,Bx{qs.@*p!!+a&J:p.2 a %*f)8&9&v$p.s.2 A@a s./@}-!+0&>.:;8;WeX }->.p]:;|;r.>.b&8&O K Fxyg!+.:u!+/@>.:u&*t^s$q.:ue=GxHxIxJxKxLxMxNxOxPxQxRxSxTxUxVxWxXxYxZx`x y.y+y@y#y$y%y&y*y=y1x-y;y>yy@,y'y)y!y~y{y]y^y/y(y_y:y`vw.K#n G;", "$.)%Z=n ].K%+.K%~ +.Z=I%> !%!%l$$./ } / (.M%{.Z=} 6 T { >.!+q.a O O 0&K #.0&q.~q!+=no+9&z <;/@X 8&r.C%z z 9&z 9&Sg)vb&2 !+}-8&O /@a&0&z o+z A-9&O s./@I b&^.q.s.p.9&9&r.=no+9&r.+oO .SgC%C%%*t^6;YlK z /@9&a&9&!+>./@q.1u9y0yX#9&a 2 /@m$ayhso.t+x.~+/@/@o+Mfo.o.a s.{ p.v.Erb!&*5tMc!*o.o.q.q.q.q./@q./@v.s.~q2 q.2 p.s.2 2 r.s.s.o.~+m$.!m$$fx.pdf)ayG m$h-Y }>pd(uy.:;v.v.m$Vu(uy.xh8;1-|; .J%m$s.2 byp.v.*.%*~q^.v.p.2tw.2 U G McF;o.%*o+V%V%5tMchs!+Nk~,}uO cy>$J:dyey=-fygyhyiyjykylyM${ q.~qp+s.x.o.a v.^.es{ a /~U +*Y ", "Z=L%L%+.~ Z={.K%$.c '=; ,=(.<$c&&.} &.$.c $.~ } K%l$T v.~+O q.2 { 9&0&K 8&2 !+a >.!+z o.q./@0&K !+}-O >.>.!+8&0&8&a&a&a #.#.X 8&8&}-K a O K C%!+O a&q.a&z o.>.2 o+o.z q.q.0&{ 2 K#L&!+O q.2 s.8&^.V%0&1u*zb&b&>.9&/@8&8&9&8&j=A@hs9&/@9&.!^u>.z 2 o+z K a a&!+K 0&o.q.p.0&0&o./@t^0&O o+!+}--;K A-K K X K K }-Zwa&a&=z8&>.C%C%}-#.K C%8&!+A@r>!*p.YwNks$q.C%.p./@q.9&o.-*a !+a a X#o+a p.{ y.x.:;:;N-m$~+v.~+xmb!~+f)ErMfK#m$Gw6; .4s+#-zLg;z>z,z'z)z!z~z{z]z^z/z(z_zzy:z.0&C%q.o+z 8&>.C%z !+>.Ok>.K C%0&!+>.b&>./@2 a C%z o+a&0y!+o.!+K O z >.z >.o+>.o+o.2 2 v.G m$@mcsp.a o.o+s.o+~+o+0&>.b&X K Y o+#%a&O C%9&7tA@-*>}9&q.q.8&8&O o+X 8&C%a 8&#.0&z s.8&b&z }-z 0&o+NkO /@o+!+>.8&X }-K K #.-;K 8&X z #%1ub&}-X 8&0&b&b&0&b&O K C%z X o.!+K #%C%X C%8&4*8&A-K 0&K A-8&K a&0&j,F;y.O 9&8&b&Uk#.#.A-}-FxO q.8&~,2 9&Iz#.NkSk)vMcJz-,a b!^uL&A,A'A)A!A~A{A]A^A/A(A_A:A Z=~ c ,%*.p.~+a C%/@z b&9&a&b&O X#0&O o+O O a !+q.9&9&9&9&0&}-z 8&8&o.9&a o+r.s.8&q.o+C%a K K b&9&~qz X #.C%!+b&a a >.4*K z q./@m$6;{,C>o.o+p.p.z a }>)v/@L&z K z O 8&b&o+2 Ok.X#2 >.a C%>.#.9&z C%C%K K C%q.9&C%A@K C%b&8&>.o+C%a&C%a a&9&/@K 0&#%}-b&#.8&4*K oA^jC%8&0&A-X C%z #%O 1uA-#.1+k=X 9&}-a&C%A-}-b&X a&pAK a&K O b&K O A-b&#.0&}uy.O qA}-X*~,a $wj=#.X 8&0&C%8&FxFx8&1uj=!+J:X*X*[;z 9&>.a z I Wma&rA9&A@k@z V%L&pdsAtAuAvAwAxAyAzAAABACADAEAFAGAHAIAJA%AKA*ALAMANA|0OAPAQARASATAUAVAWAXAYAZA`A B.B7rp*+B@B#B$B%B&B*B=B-B;B>B,B'B)B1j!B~B2t#wt+~qs.F+gs^;N-Mf~qy.f){Bay]B^B^B/B4s(Bm$Rg]BMgVu_B:Bx;2uF;(uyx,-K#VuXwVv ~ +*+.&.c K%)%].&.&./ {.'=!%&.|-&.|-].+.~ c )% .v.r.o+q.o.a 8&9&>.o+xhq.q.>.0&9&q.2 0&9&0&a&C%9&>.z z a&O a&z 2 .Oka&z 9&O t^C%8&O o.0&8&a&8&b&4+#%z Y f)1-v.8;/@/@q.s.*.v./@} &*8&z >.O z O a&O >.b&!+O 0&O o+a O O 8&9&b&C%b&}-O 0&`;~,9&b&#%A-K z a&z !+O !+!+X O b&r>!+K b&#.K b&}-4*#.C%7j[B4*z O #%X a&1uK b&>.a&b&-;#.#.#.K a&z C%#%#%UkSkkeO 9&#.b&4*b&8&#.C%4*b&o.p.a&#.K 0&a&9&0&}Bz 9&A-a&X K W-z z 0&0&8&8&A-#%#.9&C%#%8&z |B./]!>7tJz)v9&a&C%!+RBa&Zw!+9&!*/@X#SBo+TBUBm$e=", "&.@*'=T n +.J%+.,=Z=K#e )%&.+.+*L L $.*.J%&.$.{./ / .q.O >.q.s.p.C%8&!+o.>.o+a 0&~,O O O 2 z K C%8&<;s.{ b&K a 8&z t^C%=n3uUk!+O >.z q.o+/@';VBK 8&z p.a&O X 8&.b&r>q.o.L X#A-a&0&W-a&8&#%a&C%#%b&a a j,>.b&a&0&}-#.K #%#%#.<;z TfK K a&X a&A-X 4*X #.X C%#%9&8&!+0&o+8&O 8&A-Ukb&#%X C%K }-8&X K r>0&X #%}-C%0&a&K o+8&#.X K }-a&!+ZwpA-;FxC%b&a K K 4*X K o+0&C%XBo+$fj=X*8&b&0&a&#%8&}-C%O 0&b&k=}-b&b&O 4*#.X b&}-=$b&=$A-YBq.0&r>o.o+a&1ut^J:ZBNef-`B C.C+C@C#C$C%C&C8B*C=C-C;CE<>C,C'C~c&A)C!C~C{C]C^C/C(C_C:C!+}-9&O 8&O a K Ne.a&8&8&!+W#a&>.z /@8&r>s.p!Tk-;X 0&p.0&0&o.o+q.z a&z i@!+a O /@U ^.O o+0&McJ:a w;Wez 9&0&X C%9&8&}-z a&o+YBo+s.0&0&Tfa 0&K }-b&}-#.z K C%b&UkX }-0&}-C%#.}-4*#%O b&8&b&0&8&b&A-a&4*]v#.#%C%}-K }-X K A-a&8&#.4*4*X 0&4*3+}-8&a&z 8&a&b&#.a&b&A-#.lCX }-X HzO X 9&A-!+z #.0&x.z-pAC%9&0&O 8&z 0&#.b&C%#.#.-;C%9&C%a&0&0&b&C%X 8&#.0&q.X a&/@a Ne7jz 8&}BOk&*Nkl@mCnCoCpCqCiBrC]CsCtCuCvCwCxCyCzCACBC10CCDCECLAFC%CGCHCICJCKCLCMCNCOCPCQCRCSCTCUCVCWCWCXCYCZC`C D.D+D@D#D$D%D&D*DQqz j=K |u8&8&8&0&C%a&z a&b&!+o+C%b&b&YwA@_uNkK b&z 0&O 8&a&a&%*0&b&K a&C%8&", "Z=} *.+.@*U ~ @*+*K%~ ,=&.&./ e c } c e L @*L @*L Z=2 { O O O 0&/@q.9&/@K o+/@o+p.O O 8&a&8&o.{ 8&b&X v.o+0&0&K C%a&a&/@b&o+o.}ua&>.#.C%O A@a&}-K a o+t^a O T o.({0&8&0&>.!+0&a o.>.z a&)vO O >.F;L&8&a&>.9&C%8&b&0&z !+8&K o.a 8&!+!+>.r.a&#%}-A-C%}-a&9&a&}-K FxK 0&K #.a&X K X X C%a&0&0&8&4*X A-.X X X }-a&b&8&4*4*#.a&X |uC%0&0&0&K a&K 8&~+o.A-X a&b&K b&C%-DUk9&0&p]b&C%8&a&W-b&0&0&4*X C%>.C%8&}-a&X 0&C%D,D'D&ADCjBpC0z)D!D~D{D]D^D/D(D_D:D10xA.b&C%o+K r>C%C%#.b&O C%a&a&z A-b&>.!+Sk}-", "~ @*L @*+.Z=|-K#K#+*'=c ,=*.n (./ @*} K%T K#L K#L $.2 o.s.o+q.a !+2 0&o+b&z /@q.9&a&K }-/@q.9&!+C%J:C%p.2 #.8&q.!+0&K sD>.>.0&9&!+>.8&b&}-C%9&X a&9&8&z o+z v.p.o+K z q.8&K o+z p.*n>./@2 !+O Fx:;9&}-8&8&z >.X #.a&9&8&X A-X !+9&a&K z *zX K a&C%K b&a&z K #%b&]vC%o+a&9&C%X X #%X X b&0&C%tD}-8&#%z C%K C%K k=}-#%X #.X I A-A-K }-A-z 0&4*a&}-b&/@8&A-4*O 0&0&z b&b&a&a A-C%0&0&z oA}-K #%8;{ }-0&z K C%8&#.C%8&b&4*!+K k=b&K z oA4*I #.>.8&}-O !+#%C%}-_uJze=a&X [;*w@wUk/@uDvDwDxDqCyD3fECzDADBDCDDDEDFDGDHDIDJD10CCKDDCLD:zMDNDODPDQDRDSDTDUDVDWDXDYDZDcD`DdDdD E.E+E@E#E$E%E&E*E=E-E;EOkqDOk8&1uZw#.0&C%K z 8&K a&0&X 8&0&tD#.X #.9&0&O[b&9&Nka&0&WB>E_ub&K #.}-A@0&z C%a&z K ", "+*} @*+*T $.c Y K#~ {.c &.T } |-'=/ n L |-T ^.Y J%,=G p.q.9&o.!+}-o.9&p.>.a&0&O C%O O We!+9&b&O 2 #%z z o+z #%o+o+!+0&Ukz !+z z >.0&0&O #.z [;z 9&[;#.a&#.K z >.9&a&8&/@q.O z >.o+O z >.q./@!+O 6;A@K b&]va&>.0&O >.8&a&4*K C%0&K #%!+X a&!+0&#.#%#%X #.#%!+X b&({#.a&a&8&a&O #%4*#%a&#.4*A-0&b&#.#.K a&b&z #%8&}-K 8&#.A-9&C%C%K K #%a&}-K j=X 8&o+0&a&b&o+0&b&b&z 8&q./@I 4*8&0&X X K a&!+8;V%K 8&Uk,E3jO 0&#.X A-#%b&#.b&#%}-9&A-a&X X 0&9&a&z A-z a&Fx=$~vO Yw'E|u_u!*@wr>)E!E~EKA{E]EKA^E/E(E_E:ENC.!+z O q.z o+9&z a&8&q.9&C%9&YwrD2 s.b&O a&O a&2 a&!+o+o+s.!+9&/@!+0&K O 2 z o+SgVva q.z 0&b&K 9&9&1uK C%}-9&>.a&!+X Zw[;K X 8&}-0&b&}-#.#./@a&C%O[#.C%#%#%#%X 0&}-z C%8&C%9&z #%}-I }-r>X C%pA|u=$}-}j8&X K ke0&z #%}-}-}-K C%o+b&8&W-C%z O z 8&0&#.#%K z 8&8&X }-K }-C%9&K 2 2 McA@b&-;K 8&C%4*C%#.k=0&X 9&K C%C%#.X 0&8&}-A-X a&#.4*9&F,F{vNeX 9&0&z Zwa&#.K O K X C%X*X K }-'Ft^ke0&}-9&>.>.C%Jz0&8&./@o+q.~v9&a Fxa&a&.C%a&!+/@=$0&A@8&q.!+j,/@>.K b&a&z C%9&8&>.X#NkK 4*A-b&z 9&b&K b&X #.O }-8&C%}-K z 9&a&4*A-K }-9jTk=$X #%9&Tk9&#%A-X K }-b&8&q.!+a&#%K O O ~+O A@O 8&K C%A-#.0&}-Uk#.#%a&0&a Mfv.o+0&#.a&!+}-8&C%~FA-#%8&a&q.a&0&a&#%W-X b&b&C%}-X K z !+QB0&r>{FWm~v_uX#O rA]F^F/F(F_F]EECLA:F.X }-8&z }-J:~vA-A-#.#%.o+o+9&>.m$/@BxA@)vz z s.a q.0&o.>.0&8&2 v$>.!*a 2 O X %*0&s.q.9&>.8&O O a o+o+z O C%K 8&8&z >.s.~,!+/@O X 2 o.K O !+>.>./@z { q.s.X 9&F;/@9&4*K 8&a&O z a&8&0&#%9&:u[;a&0&!+O 8&K 9&a&C%a&0&a&K |uz a&I #%K 0&8&#%b&4*#.X 4*#%b&0&b&#.8&>.b&#%C%ke}-j=b&a&b&#.9&9&X -;A-b&K K a&z X A-b&!+a&a&X o+!+X A-a&K z 0&b&b&K }-#%a&0&b&Yw/u!+}-0&a 0&W-=DUkL&#.4*9&O 8&a&A-C%#.Wer>4*#.8&0&!+C%}-K K K K 5t[;U=nAX 9&s.gsuFvF;A#CDC!CiBNEwFxFyFzFAFBFCFDFEFFFGFHFIF&AJF4rzD7BAAKFLFMFNFOFPFQFRFSFTFUFVFTFWFXFYFZFcb`F G.G+G@G#G$G%G&Gk@b(z A-9&z a&O O r>C%a&4*A-X #%X C%}-#.Wea&C%OkX #.C%K K Hz*G4*L&O K _u}-#.X X 4*Nk9&0&O 8&", "q.m$].*.U Y K#^.m$ . .|-~ |-{.+.} ^.q.U J%v.{ ~+^.Z=~+o.o+v.G a o+s.v.~+q.o./@a a&q.q.0&a&a&a o.o.:uC%a o+o.9&}-X#0&X o+>.a z o+>.>. .<;X A@9&z a&9&q.$w0&8&a&/@s.C%}-o+z a hsb&8&8&C%o.#%p.^.r.=Go+b&K X b&U=|uQBK b&-Gj,}-K O s.z ~,a&C%#.b&b&8&C%}-X 8&a&>.!+/@0&a&0&8&#.C%a&z b&4*#%A-}-K C%a&K }Bb&j=9&a&}-}-a&8&a&C%a&!+C%b&X 4*-;a&9&9&C%8&a&}-K b&b&C%K #%K z C%}-O >.!+0&0&X 0&8&Jz/@t^,EK b&z NkC%Wm}-}-a&!+#.-;}-8&#.z 9&#%a&b&X G>D,GzD'G^E~CjB}D)G!GIE~G{G]GEF^G/G(G_G:GIFAyrD}-C%1u=$A-K }-X a&O 9&>.t^W-a&C%O C%a&b&#%rG2 z =zJzpD#%0&rDtEC%A@z C%", "2 m$T ^.+*G ^.U ].+.G +.m$*.*.|-|-L v.~+K#*.} { @*$.v.q.p.o.Y q.9&9&9&s$r.v.G a 9&/@o.o+a&>.o.a !+0&z K z o+8&=z>.#.z o+a 0&!+o+z C%9&b&|u0&C%o+9&a s./@a&8&8&9&a z /@O C%r.gsb&>.s.>.K a x.r.V%x;7jC%J:X b&XBwr#.FxK O 0&b&}-8&O 9&sG:uO 9&a&a&!+z C%z K z b&o+O 8&0&O z }-8&#.K 8&X }-A-b&8&-;8&/@C%X O 0&}-}-}-X 9&Sk#.K 9&a&A-k=A-#.8&C%X -;a&|ua&keO 7t#.X X }-C%b&C%A-z #.#%z b&9&4*o+Y e=C%K X C%C%z 4*4*z z a&z ~vX 0&X X Ok9&z OkX a&#.K #.C%Sk}-b&a&rD[;@wK 2;NetGuGsCvGwGjB~CDuxGyGzGAGeFBGCGDGEGFGGGHGIGJEJG8j&H*H:t!+X X X b&b&#%9y0&b&K {FTk{Ft^C%K 8&a&8&0&a =$K a&>.t^C%0&p]=H:u8&0&ZwK C%C%~v#.C%8&#.b&", "/@r.r.s.L m$p.*.G K#Y Y U n T *.G .T G U *. .a m$c+*.2 !+>./@L&!+8;<;&w$fSgO J:o.q.9&a&K O o+}-8&9&w~a a Ne0&2 A@O K 0&a&O 2 p.&*Fxb&z >.!+a&q.>.!+r.2 1uK a&#.0&C%8&k=9&q.O Zwz /@a K 0&!+Lc2 x;Skq.!+0&C%8&I A-:u0&O a m$0&9&!+b&0&9&:uo+.!+)vA-#.#%8&9&-;#%#.}-a&0&C%C%b&C%]va&0&9&K }-b&9&z 8&b&C%!+O b&z z b&0&O !+_u-H_E;H{E>HEC,H'H)H!H~H{H]H^HEGJx/H(H_H:H$tHa 2 ^ua 9&o.u*o.!+O a&K a A@q.z s.b!JzK a =zo+O 0&O O O o+>.q.o.%*a&o+o+#.z 8&z z a&C%8&a&NkYBX a&)vO WmOkz q.b&C%A@b&>.s.qd~,!FX #.K 0&C%>.o+C%0&>.q.0&*z9&b&q.a K j=E+0&K K X C%8&K z o+z z C%:uC%z SkFx-;8&a&X b&a&o.0&b&0&UkNeb&}-a&Wm0&NkK a&a&#%}-K K K 8&-;4*8&a&z %>.a&a&a&#.z O 9&}-K }-}-}-C%C%2 Sb}-C%C%~v{ s.b&0&>.O 0&9&K A-X t^X X X Fx#.#.}-uH!+}-}-Fx0&b&#%o+DxNkvHL&~,K ]v8&We-,wH_gtCXz.o.a 2 o+:u1u0&>.X >.z z o+8&q.O 0&X#o.a a&8&!+a&v.a /@8&0&s.s.a o+J%&**nb&z >.QB.~,z #.b&7jX*!v9&>.9&K pD&IC%#%#.9&C%#.t^K X*b&z O J:K a&OkFxX #%X 8&O A-C%-D0&#%Ne,EC%#%z #.a&*ISk}-}-z 0&z C%K 1u#.-;8&a 8&7tb&X 0&Ok]v4*C%|u}-K z z 0&z b&a&8&8&K 4*nAb!o.b&K 9&8&#.C%4*b&O C%K |u9&~vb&8&#%]v2 #.b&j=}-K !+q.K nAD-Ne9&O 8>t^%w@w=I-I0z;I>IECxE7FvF,I'I)I!IJxJx^H~I{I]I^I/Ie1JHKH(I1H_IhBKF:IaH9H4I5I6I{vO[K N-7I,q4*;G!+7j;Gv$8I.0&!+K a&[;K z X #.9&a&8&a&X Okq.a&}-X K 8&O O 8&|u^v!+0&7j4*b&C%a&C%a&RB|u8&1uK ", "p.s.m$p.v.p.v.Y s.G Y r.^.>.r.v.G G /@r.~+{ L s.E>9IkA-*Mca o.#wo+>.o+w.e=C%8&>.!+%*F+W#!+a a o.o.Mc9&o+p.o.O 0&O 2 o+>.>.r.>.O O !+!+O NkX a&8&C%O a 0&K Ylv./@o+G !+}-8&a O o+C%8&O 2 >.>.o+p..{8&8&C%z 9&W#z a&2 p.{ q.o+~,JzoANkNkz 8&a&r>z /@a&}-X*b&a&a&[;X 2-z z 9&K C%#.b&O K 0&0&A-~vb&O z X !+9&X a&#%C%Sk0&o.8&K K 9&z X b&X b&`;z a&}-}-X -;4*}-~vb&K }-K 0&8&}-8&]v4*|u7t~,z X#Mfq.X }-K b&!+8&C%a 9&0&Fx0&j=0&K z j=A--;!F|uK A-Wma&C%Ok{q8&^vJz2 <;v.o+Xu0IaIbIcIdIiBeIfIuGgIhIiIjIkIlIJ/mInIoIpIqIrI[HsItI5muIvIwIxIyIzIAIBICIDIEI:;b&C%JzOk{FFI(-GIt^=$4*Zw!+K Tk#%uH4*HIIIJ:r>>EV%!+a&z C%tEtEo+a&z 9&z K C%K o+o.0&z O >.9&O o+#.O o+z O }-X A@<;0&`;a Mcb&b&9&Hz", "{ G ^.>.q.9&2 p.2 /@r.+**.m$ .r.s.{ r.T L 2 U ^.!=J,r.o.s.s.q.Lc2 q.q.e=.a&!+>.QBO NeX /@p.O ~+Q!a 9&K 0&0&8&b&!+Zw0&a Y p.w;Sga q.O o+j=#.0&O 8&O o+2 K K NeO a !+O /@Yl9&y.C%8&!+9&b&b&a&C%8&K C%r.p.0&X X !+}-X 9&z WeUk9&j,}-9&z K C%4*b&4*A-8&b&}-}-0&>.=$9&a&a&C%a&8&}-KIA-X 0&8&b&K z #%a&C%#%FxNka&!+O z a&b&[;V%~,LI#.#.K K #%K 0&C%z |ua&1uz C%K 7ta&K K q.o+8&]va&9ya&t^NeWe[ur>#.p.ygMINIO0XzME^EDuJ&w,JNko+'JrA1u8&o.o.$f%z({>.o+8&!+SkX*v.o.8&X C%K z z j=>EUk0&0&X K X O 9&)Ja&a&q.>.8&C%8&a&", "r./@Y p.o+p.~+~+r.a o.v.T J%@*~+ .o.2 K# .m$G ^.U L%v./@^.o.^.r.Y !+O O z 2 9&x.2 q.!+>.r>9&>.!+hsp.2 m$!JO >.Mc@w!*}u~vC%z z { 9&X o+O z /@!+O >.0&K z L&a&O z s.r.9&a 0yq.>.X O o+9&{qO >./@~+@*w.0&z 9&C%z 9&!+a&}-ZwZw9&z .hsUk8&}-K C%K a&o+o+z b&z a&1u}-}-K 8&>.K Zwb&NeZwFx}-o+q.0&0&X a&,Ez z ZwX X X C%K X 0&0&8&C%a&8&Wm]v#.X }-a&C%C%}-X b&X A-o+OkQB!+8&O }-4*}-Sg!**n[;Ne4*A-,E#.1u7t8&!+C%}-a&8&O z 8&A--;A@Zwa&8&O 8&Ne|u!+_uuHj=b&`;T ~J{J]JMEiBFCNH^J/J(J_J:JOkX 0JaJbJcJo+v$dJ(-LIa&[;K b&^vX b&W-r>j=ZwrDMceJs.1-s.j=fJgJ&*0&k@2 z O z a&0&rAhJ({z 8&K 9&A-X a&8&pAiJ9&z X #%X C%O }-}-8&O K 8&ZBjJ0J", "q.>.2 o.a /@2 >.U ^./@s.Y m$^.{ U v.L U U K#Y L '=L%!+r.T o+{ ~+z O q.a o.s./@/@<;X#0&>.~v!+a >.o+!+#%r.}>!+p.!+!*~qp.}-C%v.v.o.K a&/@>.q.0&C%2 !+o+0&/@o+q.p.o+J%~+9&5tsDa O O O >.>.z >.O K }>].a&|u!+O K a&z o+z 0&Zwz b&b&a&8&8&t^o+7tO }-0&9&9&8&C%z 8&>.9&9&Sg#.4*K C%kJa }-z O K 7t0&O #.#.o+!+O 0&K K 9&#%Ne:u|u8&O }-X 8&Wmb&#%X b&b&]vb&X }-K #%#%8&z 8&8&X K a&p.z 8&#.}-K o+8&WeF+5t8&K 8&4*a&!+{ 8&NkC%C%C%-;z b&=$V%>.X 4*W-Nko+z J:A@C%A@[;o+_#.|uW-uHNJOJPJQJC%!+o+O C%8&2-q.9&K C%/@ .G q.z We]v8&~,tE<;t^L&K X =$X*{F5tLcNkWe}-9&#.X #.#.X Ukz 8&a&b&O b&}-Zwa q.0&#.tERJrDS0", "~+>.p.{ s.Bxo.r.v.r.(u{~V#}u2 q.r.v.r.m$U U L G +.o=G /@~+p.>./@>.p.r.s.m$G J%2 o.Y ~qq.>.NkC%>.2 a m$o.2 /@{ p.>.o+/@2 o+2 k@J:!+b&9&2 0&b&0&o+O q.a z 9&r.!*o+{ >.9&%*r.O O q. .v.>.9&/@z 9&^. >9&a&-vr.[;k@_uz a K -G9&b&X*Zwa&%*$f/@YwHIt^>.0&0&0&r>0&z X a&q.L&X #%C%Okb&K C%C%b&a&9&Fx.=$X 0&#%a&L&K SJz b&b&o+a 9&7t>.#.a&a&t^!+_uL&A@TJtEo.}up!e=7tV%^vUJVJ%A(FWJXJYJZJ`J Kg;.Kq=+K@K#K$KYI%K&K*K=K-K;KO0>K,K}G'KBD)KU=8&^vk@<;3u]va&b&tE_urA&*NkJzC%-D#.X 0&A-b&2 q.#.q.a o.m$C%b&#%0&s$8&j,!Khs8&O !+a&Sk8jO[JzZwz GI{F8&a&b&K #.K b&8&a&0&z >.*z#%Zw8&!+o+!+z Jz)vZw", "q.~+G G G s.{ m$o.p.#wA;+*s.Y s.v.{ { G r.Y J%K#,=o=T /@m$~+z m$v.q.m$m$s.q.{ s.!+q.2 a&v.v$0&9&o+!*m$(Bo.!+k@o+/@hsa ^.r.8&[;0&a 9&K q.q.o.O K 0jp.o.!+q.>.q.~,V%o.z O a q.p.p.z r./@!*!+0&9&^.r,!+0&z Ylw.9&1u2 q.O O O q.0&[;}-Tk#.!+A@^uSgo+FxNeo+9&z o+a >.>.0&C%X X :uWma 9&a&#.j=W-0&b&b&W-O #%#%4*#.X 0&`;K r>Fx4*4*Tk]vC%#%0&#.#.o+8&4*#%o+9&!+0&/@YwW-Uk{ V%8&Ska&8&Fx0&>.-*Yq~K%*8&hs}-9&s.&*X 7tW-a&8&t^Uk4*t^A@We0&a 5ta >.Wu{K]K^KKo/K(K_K:K.>.9&0&C%o+&*NkC%X dJ&I*GW-_u1u&wm@7t9&K C%K NkdKO K K 9&8&z r>:u0&q.a v.W#a Yl|B", "o.!+a n+V%xhgsq.q.^.^.L U { K%/@O a { m$~+G J%*.$., n 2 q.s.q.s.U Y !+o+G /@0&{ ~+o.z 2 a 9&8&O /@q.o. .s.>.w.~,!+X#We>.o.a 0&z s.r.>.X a&p!z X >.t^b!^.s.z !+q.{ >./@z q.N>o.a a /@!+!+p.o./@~+@|McL&Zw)v!+b&!+o+2 ^.~,9&0&b&McSgo+a o+ZlA;.!r>b&!+O m$~+/@!+>.Zf1uUkO O :uX a&O }u5t!+/@YlZw.o+a 9&a&8&SkFx0&C%8&X K tENeC%!+rDOea&a&!+}-O a&Fx}-K o+o+K 9&0&Ok#.#%cseKC%C%.!+K 6IJzSkNkK K 8&K a&8&}-0&O K 8&a&b&K C%a&0&r.U q.a&a >.a&C%}-C%9&!+O >.8&NePB[uK `;W#}u8;a :uz 8&0&", "m$s.{ Vv%*o.J:xKVus.J%U 2 s.J%{ q.q.{ ^.r.G Y v.n d.+.r.p.Y Y ~+p.r.O q.^.o+/@{ Y >.!+p.9&9&Zfq.RB<;&*y.hs1up!hso.F;^vMcq.>./@{ o+!+p.k@>.L&O v.#fA@<;J:o.q.s.a o.2 q.s$q.s.~+s.p.o.a a ~+~+/@s._$Yw8&O ~,O &*r.o.)vq.q.{ z X#<;&ww.&*>.}u2t/@!+}Bz O hs2 xh8&z >.>.a 0&WeJ:j={FK 9&a ~,k@Ska a 4*}-O 1ur>!+9&Tk1utEWmC%z !+O a&Ne!+*n0&a&]v[;:unA[uyK0&U=TkFxW-~v8&C%W-7tX C%8&0&0&9&JzNe7jzKAKZw9y0&%*o.1uUk9&8&Ne0&.BKCKDKEKFK/FGKHKIKmIUIJKKK#fMf=.LKMKNKOKPKQKRKSKTKUKVK#C~CWKXKYKZKv$o+gsZwYl<;^v7t1ub&0&8&O C%a&C%8&}-o+9&>.0&X b&q.X a&q.T 2 q.8&!+X a&8&C%O K C%C%nAt^v$Oka&`K]vz >.&zv$j,O q.r>8&}-~v>.kea a&C%sD5tf- LC%Ywb&K C%", "G { m$Y T /,^!v*T ~+^.Y p.v. .G { ~+ .^.m$Y K#|-)%r +*G v.{ +*T p.p.s.~+v.2 a v.~+s.q.O ~+q.z { /uk@Sg{ /@nAa %*^.$f!*p.X#o+v.hs>.&*v.8;J:!+q.}up.>.O s.%*2 }uo+v.^.K#-*/@p.2 z o+L&2 Ylb!m$!={ s=bsnASk!+hs}uy.>.Mf .L&/uTbr>o.o+rD.Lo.-*{ 2 s.#wOka ~,-*2 /@[up.^.o+o+O p.j=9&[;!+/@}u:uU=~,q.z ,E0&({}-:u!+1u8&Sk}-X X 9j,Ej=8&#%.>.J:>.2-C%Zw~,~,8&W-nAN-~,9&OeWe9&+L@L#L$L%L&L*L=L-L;LZIzJ*v|B>LC_! ! ,Lt/! 'L)L!L~L{L]L7z]L^L/L(LcJOk<;6IYwWe8&z O s.z #%X a&>.o.O z K z 9&0&z 8&o+a 4*#%m$^.A-0&2 O 0&o.K X o.8&a&X 9&o.O .m$Y K >./@v.;;p.%*V%q.!+%*p.a ^.~+p.>.}ugs#*s.o+xma 2 pdK#9&r.^.K#w.r.m$+*2 !+r.q.(;v./@X#%*}u~,v.v.w;G _LDwgs2tx.w.bsG { 2 w.!=N-}ue=~+z-V%Lg#I&ww.hsJ:)v}uNko+`d .~+hsa o.Q!&wp!^./@9&8&z >.q.~q~+q.v.r.WeMf{ O q.}ua&0&z 9&A@9&Mck@z O r>v$9&tE^uO !+QB:uX#<;W-Sk#%ZB|uZw_u>.0&C%K Uk|Bke~,O 9&X#~+a&A@t^a&7tOkSknANeK FxC%L&v$p!YlnA>.a&>.xh~,:L@wX 7t<;Ylo.<;Yl~q2t.8&O 0&/@>.!+K 0&2 o+>.O a&b&>.z @w0&z q.O <;8&K 0&!+<;a b&9yTkFIWmt^=no+a&$x.w.{ %*r.+>#fy.!+O s..!K#LgN-/@r.*.q]J%^.(u].@mX#^.2 Y U G .^.^.r..!8;L |-gL=w#*hLT +$zx8;s.6;Y iLjLhsG _!$f^.$fb!LgK#:uo.O V%^v~+G p.F;9&s.o.#fVuV%!+&*McOka !+A@x.{ J:/@@wU=z !*q.&w2 !+O q.[u}uX#z O a -*V%k@!+t^&*O 9&z A@p._u|u~,t^b&C%b&~,_uj=K Xe%*/@a&z J:o+a v.9&v$r>4*a&a&TkJ:$fv$Wm~,a ,b;^@!#!#uLvLwLxLyLzLO0xDALBLrCCLDLIw~q^vELt^z a&8&>.8&p.>.o+0&#.>.s.O z O p.a O }-O >.K O 2 J%2 8&O 2 O K q.O 9&O C%q.z 9&z O 0&9&O O 0&2 !+9&>.a&!+!+o.a 0&0&Fx5t,!%{.; ; )%c&l$I%$.K#+.)%M%c+O-&.L%6 [ ;#[ r i-r d.o=c&$.} Z=c Z=(.e c / {.Z=/ } |-} n ~ } / *.(-tF,uILJLKL2uLL>zU_Yq/uf'~KXu0~T |>*.Tw|>8sn+qGx>Z=,qqd]t^!+>!!Vu@m+.G U +*Z*8s/uC>z*3sK#@&R{B+*ML$f^=b!McNLOLPL8IVuf'qdb!QLKz>$4sIwK#x;F+Y b!s.xmbs{ m$Sg2 V%y.xhy.[u;G#wa 2 &wa J:|uhsa v.<-Nk%*p!%*Sg~+1uNk>.p.q.~,r>k@*n8&^vv$j=8&YlLc8&L&Zw2 9&j=Ne!+a O 1uJ:7tz nAz &*RLOLSLxmq.Ska&!+#wp!6IX )v1u0&O xhX#X#hs^uL&#w%*N-K##wSk!+!*ygv.}>L&TLULVLWLXLYLZL`L M.M+Mr>o+2t@Mj Z Z J.7 X.'*#M$M%M&MxDxD*M4B=M-Mp.Yl^vL&>.C%o.!+8&a 9&z 0&z 9&q./@/@>.z 2 p.o.8&>.o.o.O v.Y 2 r.>.a o+!+O z O K z o+>./@z 0&a q.!+q.2 q.0&>.O 0&q.O s.a o+o. L>.ZfX#8&A@r>o+q.X ;MQJ", "u,,=F*0+&.$.,=$./ c&B-<$,=c (.!%(.0+)%)%!%; ; L%; ; L%(.e c {.K%,=!%(.)%e )%c )%(.<$c $.)%$.&.c c ,=+*>ML-,M'M)M!M~Mm&6>:t^=dsMz{ML } ].+>+.}t}t;v].@*].{!{!x>+.|tc-Tw~ ksi>/ Y{8!]M$,^M+;9#/ L%M%c H>_L{.'=Uwx-/M(M_M:MD&2MK>2u3M4M5M6M7Mn T%^=+>TwU_z*Yu8M3tx>Dr2u|>3seJ8;(BRgK#].F;a A@>.z Mc^.2tRwk@o+&wN-^u7t<;^;Yw[;-*&zt^nA9MdyQJt^gs[u}uYl6s@we=!+~,5t>.o+Fx@w@w m0MK o.4bVv@np!i)t^6so.TbTBYw0&o.2 )v!*!*-*L&)vo.9&a $fc($f_!hAw..!~+xh>$aM!+bMcMdMeMfMgMhMiMjMm$&wMf2tkMj <.%.+~t/Z*WplMT{mMnMoM}0pM.q.q.o+>.p.2 !+2 a /@/@o.a 2 .*.O /@!+q.o+z >.!+>.a a&q.q.o.v./@a q.p.>.o+p.a s.r.>.q.O a o.O a (;0&!+9&>.o+q.a o+K 0&~~", "e ; c e 0+; ; !%!%c&I%R#R#c&c+l$c+I%I%c+c+c+c+B-I%I%c&c+M%c+c&c&c&> c&; ; ; )%e L%B-<$; c&,%> !%<$; c+sMtML); !/uMvMwMxMyM$,,q8s8sK%|-+*+*@*|-h1y>n r,K>/ K%/ L(L(@&@&,qm,~ '={.,=zMAMBMCMm&N2&.$.DM@&Vwc !%EMFMGMq'l$HMIMJMKMLMMMMi,qH>_*{u]uNMOM9#=v_Mc ,=&.L)f1PMQMRMn |-} x>+>{!q=/,}tWwn @* >SMErx>@*@mT A;U_T ds^=].L isx;~K/-MLMzXv/-TMUM{.%u-uVMWM;uXMVvVuSwr,Lzz*YMSMMLZMz*/-=G}>x>w>x>@m^.@m3s`M N/ByxeJ`d!=Vucy8Ix;2uxmf)Lg{B.Np!`d+#x;q=+N2up.o+^p@N#N$N%N&N*N=N-N;NvL|t#w-*MfF+>N+(,N'N)N!N3u~N{N]N^N/N(N_N:N.^.L /@>.a /@s.2 9&q.p.s.v.p./@o+p.K#p./@o./@r.@*+*p.r.v.s.2 O { r.m$r.o+0&~+{ s.r.o+>. .{ q.o.s.p.^.p./@a q.o.!+0&p.r.v./@!+>.a >./@a q.p.", ")%; !%L%0+)%)%B L%/.M%C C I%x*;.w o=O-!.O-!.O-M%R o=o=i-[ B-> c&c&c&/././.c+c+B-B-C c&/.B-R ;#R M%c+/.I%[NB-}Ns#|Nk}1N; 2NB 3N4N5N!%6Ne !%4N7N8N0+$.7N)%e )%8NXq0+!%Y)R)2N)%e )%F*u{$.9N0N; aN> L%bNY)cNc&c&C > I%!.c+&{dN&{eNfNw>6N; L%I%C Y)6NgNhNT)iNaN; e )%jN(!kNlNmNnNx>oNpNK%;p|-@*qN|- >rNsN+NtN|-+*T *.*.h-T uN+*vN].} ~ 6>Tw!=isTw%uwN' xN4byNzN!M6>} o'is@*qNANBNK%CNDNENFNI,BN} D&f'f'+.{.GN;zHNINJN%u^=KN^=LNQw~ ,qMNNN4bONPNQNRN`>SNTN0+#w0j0jUNVNWNXNYNZN`N`N O.O+Of'xN{.4b@OqLT<#O$O%O&O*O=O-O;O>O,O'O)O!O~O{O]O^OVvKNU G ^.U m$r.v.v.{ Y { r.r.v.{ { >.O ~+~+p.p.s.s.p.{.|-U T Y ^.m$s.2 ~+m$q./O9&a s.O r.r.Y T ^.].G ~+p.r.a ~+p.K ^.^.!+o.s.m${ z p.~+r.2 /@~+~+", "L%I%,%> ,%!.i-i-O-l$<$<$C B-B-[ H%H%i-C C B-[ [ 8 8 '%x x !., 6 ;#;#6 O-O-O-[ ;#R , B-O-;#x i-'%w R#;#, I%l$, (O_O!.(OO-<$R)Y)L%,%C L%<$L%:OY)6Ne 6N6N6N(.6N!% !.O-!.O-/., , /.O-/.> /././.I%3Ol$C I%4O/.B-4O5OO-6 cN!{/.I%> C C l$C 4'6O7O8O!%l>I,oNqNqNqN/ 0+|O/ ,=|O0+|O|O&.c &.|O/ Z=6Nc ' K%+.].9O*.K#J%y't>'=0OaObOcOdOFN)zeOqNoN].].+.dsfOT'uNgO^thO~ Z=aOiOjOK%qNn } kO+>].+*T'dsL ].lOeOmOaOnOoOpO.{+>uN].^tqOrOsOtOuOvOwOxOyOzOAOBOCODOEOFOGOc HOIOJOMgKOLOMONOOOPOQOROSOTOUOVOWOXOYOZO/ |O|O/ ~ qN' ' Z=~ ' ~ Z=~ K%} K%' qN@*Z=K%qN~ qN'=!%l$e ' 0+&.Z=} ' qNL G J%*.J%K#K#^.Y K#^.`OL +*K# .`O~+p.U U p.~+G p.2 v.{ *.K#^.^.{ `Oq.r.p.", ", ,%(.l$w k w [ O-<$; L%B <$<$L%B c+!.x k x 6 B-R#x '%R#x '%w r r r x '%H%R#[ '%r !.l$l$/.6 '%6 !.!., c+,%l$B-B PB-!.x .P+P@P(.(.c (.6N)%dOc&<$<$c&l$c&,%c&c+c+c+#P$P/.bNe c (.c (.%PM-&P*P&.)%e C =P<,-PO-l$, , =Pl$O-;#R R R#i-R#'%i-R R#R#6 /./.;P, !.!.!.6 6 B-!.O-, 6 Y,8O>P,P'PI,Z=Q;/;)%|O6Ne C B-, O-B-,%,%L%e (.<$; c )P!P~P{PZ=K%M:]P^P)P,=/P(P_P'P:P]u5P6Ps=XlaO1>7PaO8P9P0PaPbP-giOcPdPbJ-.ePfPgPhPiPjPkPlPg, #mPnP.roPpPqPrPsPtPuPvPwPxPyPzPAPBPCPDPEPFPGPHPIPn {P} +.~ ' ].} @*@*} ~ +.n c +*].uN].].~ ~ +.~ } ' '='=Z=uNU qN'=&.,=,=' Z=' ,='=K%qNn ' c / |O&./ Z=} ' Z=n ~ c / qNL @*qN@*U n uNL +*uN@*+*uN].", "l$I%M%R#i-O-, c+c&!%<$> l$/.,%> B ,%c&/.x*g t H%d.;#;#O-6 ;#d.6 l$c+/./.M%c+c+, R M%/.l$c&l$;#6 R o=o=R#;#6 O-,%<$B T)<$,%c*R > / *vfN%P0+&.; ,%JPI%6 O-6 R '%R , -$M%d./.M%l$c+I%l$C;KPLPl$B > <$)%6N6Nl$;#;#, a)%(.!%6Nc&c+c+I%B (.h],%<$&.0+)%OPw>!%c&B c+PPQPI%; (.o!(.(.0+RPSPI%, l$; c &.(.)%(.!%TP[P/ 6PUP_*|O'P6N!%<$TPNP0+VP&.Xq)%w>WP/ / %PXP$.GOYPZPGL`P Q.Q+Q@Q#Q$Q%Q&Q*Qp'=Q1!-QXvrD;Q<@Q >Q,Q'Q)Q!Q~Q{Q]Q^Q/Q(Q_Q:Q c&l$c+c&> !%c&o=l$l$M%M%M%> C I%l$;#M%c+c+I%[ o=I%L%>,5Qc&C l$<$B-I%l{cN[,(.(.e L%5QM%C l$M%!.M%M%M%I%B-c+c+;#, l$, R#x*x 6Q!.!.I%; L%c+I%c&C , !.+K7Ql$I%, o=o=l$C c+!.c+c+B-M%o=;#o=6 [ [ ;#d.[ [ 6 , o=d.;#c+8Qc&L%c&L%L%8'uMuM8'C I%.'<$C I%c+B-M%k)uMc&L%> > xM0+0+e !%e (.(.)%L($.(.e Y)K,6 6 0^;#!.B-L%I%> L)L)9#$.`>'=0+|O'=0+&.e 0+9Q(.OP(.t]&{'=,qqN{.0Q' aQ0+|OJ|<$> > o!bQcQ2F[EdQeQfQgQhQiQjQkQlQmQnQ`KoQpQqQrQsQtQuQvQwQxQyQzQAQBQCQDQEQFQGQHQIQJQ2,I%B-c+C L%L%<$l$C I%c&; !%(.(.!%> L%> L%, l$L%B-c+L%)%)%(.> |O)%(.|O)%)%(.e |O&.!%c&> $.$.$.$.{.$.<$c&; )%0+0+e !%|O' ,=|O0+'=n |-n ' '=&.$.&.{.Z=K%", ";#;#'%i-;#6 !.!.O-o=;#[ i-[ 6 I%B-I%L%C c+M%o=M%!.R k @+'%M%C c+C M%I%!.6 O-o=[ [ o=C ;#O-I%I%M%[ O-M%> C c+/.C ; ; !%e e (.i{6N6NB KQLQMQ!%c ' (.; e 6N!%6N!%B e 6NL%,%L%,%O-;#R '%;#M%O-!.!./.I%> ,%c+c+I%C > L%I%I%;#d.;#,%,%O-O-6 O-/.c+c+/.M%M%M%B-6 i-6 B-/././.> M%!./.c+B-I%> ; !%6Ne ; L%c+o=B-L%L%/.O-o=!.c+> !%B e >]NQ`>c Z=~ / )%&.!!@|,=(.)%0+%P6NL%> M%> !%6Nc ,vOQPQQQB .'^M_*L%6N&.$.$.c L)t&w>RQR).'w>SQD&$.,=K.qNK%!!Dr6N&.!%-$TQUQ><@(VQl^WQ2^XQX^YQZQ`Q Rg1&u.R+R@R#R$R%R&R*R=R-R;R>R,R'R)R!R~R{R]R[ ^R/RC > ; L%I%/.B-B-/.c+> B ; c+B-L%c+M%O-B-,%L%,%> > C C B ,%/.R B-e e 0+6N6Ne 6N)%0+e L%L%c+M%C > )%; L%B-C 6N!%,%> e (.; L%e ; > ; 6Ne I%B-M%!%(.)%)%c ", "O-R#i-R , B-O-l$!.6 !.R#'%x O-R O-,%C l$O-;#[ R !.O-l$6 i-H%g R l$l$/.C , /.B-l$B-C B C /., B-, B-!.R i-O-C ,%C <$<$L%B !%,%,%!%L%e c 7Ni{@Pe <$A$$,(R<$I%<$<$L%B B _RL%B C ,%l$I%l$B-l$, , O-6 B-I%<$,%,%e )%e e !%e e B !., B-, ,%I%I%C c&l$O-O-O-O-, , 6 O-, 6 ;#l$6 !.R O-O-6 6 , I%C L%<$e C /.C l$!.w H%6 l$L%,%<$!%B 0+6N)%|O)%!%c&,%e B )%<$bNC /.C <$e e ,%,%e e 6Ne 0+0+|O0+<$C B <$0+Z={.Z=K%K%|O:Rr{,=,='=H>fN!%e )%/ |Oi{<2R}R3Rx C R)=v4R5R6R7R8R9R0R/+aRbRcRdReRfRgRhRiRjRkRlR2,mRO-6 n @*C B |O|O!%I%,%O-/.B-B-I%B <$L%B B c&,%!%<$L%L%C c&e !%6Ne c&c&e 0+e e 0+e !%0+0+e e |O{.0+!%B O-, /.L%e e e c&l$c&c&<$B l$O-!.!., B-!.O-L%e c&c&L%", ";#8 r x 6 d.6 , R#o=;#i-d.R#R#r x r x*l$c&C M%l$l$C > c 0+c&;#8 r M%c&e c&M%R l$,%c+M%;#, /.;#O-M%M%d.R c+> > e <$c+, l$C e > o=6 c+B e 0+c c c&M%M%@Pe e ; c&C C l$,%C w*R e 6N(.e <$<$; B l$x 6 nRB c&B ,%c+C B C /.B (.e 6Ne 6N(.e c |O,=0+<$> <$(.; B C B > 6NK%n |-K%{.,=r{/ / oRc 0+|O&.(.e pR6N2PqR|Oe c&B l$, sgM%LPrRB 6NsRtRuRvRwRxRF^n/yRzRARBRCRDRERFRGRHRIRJRKRLRMR;ENRORPR!!1>(.C c&e 6N0+e 6N; ,=0+; 6N<$<$<$e <$e e |Oc c (.6N&.|Oe &.,=e > <$<$e e 6N6Ne e e ; c {.} K%' } / 6Ne ,%c&,%,%M%/./.> c&M%R ;#;#, M%, c+l$l$O-i-;#l$", "R d.[ '%R#6 B-I%I%/./.B-/.o='%6 c&c+!.6 I%c&> ; > c&<$|O)%(.)%)%c&d.R#o=c&c&C I%, R c+C /.I%c+!.B-c+M%L%!%I%c+/.B-M%!.B-/.[ d.R o=!./.!.M%C > C > c+M%B-I%c&h]> c+I%B-!.M&MPM%M%c+I%o=, M%I%C c+, R R#d.[ [ , B-C > <$<$I%L%> L%> c&QRRR[ R !., o=!.!.M%B-!.d.[ , c+c+c&/.!.x k R#M%!.!.o=o=6 [ 6 B-/.M%M%> ; 0+; L%> L%> )%|O0+(.)%<$<$L%; |O0+!%|O|O|O)%$.(.&.&.(.(.Z=$.$.0+!%(.6N; (.|O/ '=' K%|OL%<$L%L%(.' K%' '=Z=$.|O!%~ K%'=/ Z='=6PZ=Xl2MI,'=' K%SRaO/ $.'=)%6N!%4Q, ~]TR*#UR}.VRn^WRXRYRZR`R S.S7s+S+vUM@S#S/M]P$S<$%S; !%L%6N> !%$.K%} '=Z=K%' Z=0+(.(.> !%|O|O/ &.0+L%(.|O<$L%> L%> L%> <$L%6N)%|O)%0+|O|O<$!%(.!%6N)%L%L%&.|O0+<$c+> c&B-B-6 M%/.c&!%<$<$!%> !%> c+B-, ", "l$;#'%[ , /.B-O-O-O-B-O-M%!.!.> L%/.C , !.;#;#, !.I%,%/.L%I%; ; !%(.B o=x*d.O-/.O-d.!.O-x [ ;#!.M%o=!.l$/.;#R o=;#x*8 '%i-[ !.M%/.> !%(.0+)%L%L%e C > I%O-;#[ ;#R o=O-B-l$g1M%/.C C I%C B L%L%l$/.l$I%/.B-O-i-!.!.;#;#!.O-!.M%/.o=O-4O, ;#[ i-x ;#!.C C B-l$, [ R [ ;#!./.C B-, M%C /.I%,%> C C B-l$M%M%, !.O-B-l$,%,%B > C L%,%C |O'=)%L%!%,=Z=Z=} ~ Z=' ,=,=c !%L%(.&.)%0+)%)%|O$.0+(.&.{.' Z='={.{.' ~ '=!%!%&.' } qN'=,=$.{.&.qN{.|OZ=+.+.].+>+>~ '=} &S*SqN' } Z=EO&S' =S' } } -S} &{w>; ;SC 2NL(i{&.&.$.'=c (.>S!%,S'SPnL%)%c )%L%L%L%(.|O)%(.0+0+0+0+&.$.,=)%(.e $.,='=$.(.e $.&.(.e '=$.c 0+c L%,%e B > !%L%0+e )%&.!%L%B > L%L%; 0+' Z=!%C L%> I%/.o=, /.L%; ; C C I%B L%I%", ", )%|Oe C c&,%l$c+/.i-R c+l$B-c+B-M%L%c&!%<$B , /., /.L%L%c+C C B !%0+|Oc&!.i-R#C C c e B c&L%R [ B-<$e B L%C c+/., c+B B B e c c c&e $.0+c c 0+)%0+e e )%6N6N<$O-;#B +P|OXqh_h_!%)S!S5Ne 6N)%e w>+P<$L%c+B-;#O-, ;#;#6 !.;#;#;#[ 6 B-c&c&c&c&c&, ;#6 O-B-L%C B-6 [ !.;#R ;#R [ , ,%c+l$C l$c+/.B-C l$L%c&/./.,%B ,%C ,%B )%|O|OB L%B B )%&.)%0+' ,=/ Z=' / c $.$.&.,=&.0+|O/ / $.0+0+)%e $.Z={.Z=K%n ~ qN+*n n ' c e <$c ' {.qN{.{.{.&./ &.Z=|-} } } ,=~S$.&.Z=Z=qNn ,qc-{S,>]S!!,=rN~ qN,>^S1O!%|O' /;Z=/ Xq/S&.$.|O~$K%UwOPe B !%<$O-l$<$0+c B e c c |O&.c ,=|OB e )%c )%6N|O&.)%|O$./ Z=&.c c $.c 0+)%e l$c&,%c&B )%)%/ 0+<$c&C L%c&L%)%&.|OL%l$0+)%|O6N6Nc&c&B e B c+L%/.C L%B ", "k l$!%B r ;.;#8 H%R#w 8 R#R#d.!.[ ;#6 l$n '=,=o=[ !.c+, M%l$!.B-M%o=d.c+o=;#o=R#, M%c+c+I%B-c+B-M%, c+l$'%'%d.[ 6 o=I%B l$B-B-> / B-;#, 6 [ l$c&C C c&B ; (.(.(.&.(.c+w!>](S_S:S l$l$c+c+B-I%c&; <$c ,=,=&.,='=Z=&.; I%c&; |Oc (.!%<$, [ B-<$B <$> B B c&c&C C > c&<$c c 0+c 0+(.|O0+0+&.&.|O/ '=c ; ; 6N<$(./ &.(.|O&.&.c '=/ &.(.6N(./ ,=&.|O'=Z='=,=/ qN'='=K%~ |-K%qN+*J%L L L {.&.,=/ {.n +.J%+*|-K%n {.K%qN|-~ ~ ~ Z=~ qNn +.K%I,;n/ q,|S1Sn-'='=OP2SH>|O'=K>6N&.H><=^M:$r{t&I,O:].qNqNZ='=K%Z='={.{.Z=Z='=|O/ (.|O|Oc !%6N6N(.6N(.; > B-B-B 0+,=,=Z=/ 0+0+<$<$C o=;#l$> B c&l$c+B (.|Oc&c+!%; c&B !%0+<$(./ K%K%{.qN~ '=(.6NC I%I%, c+(.|O", "d.R#R#R 6 x R#'%x*x R R R R o=!.R [ c.k 8 t R#,%r d.M%M%O-M%C C B-M%O-!.!.x*R [ [ o=!.o=M%O-/.M%o=M%c+B-/.r k R#[ R 6 R 6 o=6 6 o=B-B-C M%[ '%!.c+c+,%,%,%,%> I%C /.R O-B-3S4S5S6S7SwM8S> > ,%L%M%B-L%> <$|O/ (.!%!%,%d.8 /.!%9S9S'={.' / K%n ~ {.$.} |-' (.e $.'=&.)%!%&.'=' } n '='=e e (.e ; &.&.)%L%C (.'='=c ' n } '=n K%' '=K%~ K%|-~ / $.(.|O$.' ~ ' {.~ {.{.c c+(./ c / '={.' n |-~ {.K%' K%n n / '=n |-@*n K%@*+.~ |-' |Oc c +.L @*n @*+*@*n +.@*n @*+*+*+*|-n ' ~ n pN' Z*,>{.~ } n } ' '=K%{.'=n } {.0S/SL(+N|-+*n n n K%~ ' K%|-} ~ ~ '=(.c |O/ $.'=/ / {.&.)%e <$; |O&.|O$.'=c )%)%(.)%!%<$,%!%)%<$L%(.L%(.(.(.$./ / / $.c /.M%,%!%)%|O{.K%'={./ (.)%(.!%)%)%> M%B-,%,%", "R ;#6 R 6 R i-i-R ;#R x i-R i-x*x R i-i-[ R R !.8 R c+/.M%,%,%<$c&,%l$!., , O-/.,=R !.B-M%B-B-/.M%/.B-, ,%e l$R ;#R#6 M%l$C M%l$O-, B-, B-c&;#R 6 l$0+e , , l$c+l$l$C ,%c&C M%/.aSbSbSbN0+!%<$e c&e 0+B-c+c+,%,%/.B-O-M%M%c&$.M&cSV!c&L%!%<$B <$L%,%c&<$/./.,%C C ,%B-l$<$e e B L%<$c&B-/.6 M%/.c&L%c&,%,%e 6NL%C )%&.&.c &.&.)%0+$.&.&.,=,=K%{.&.6N$.' K%K%qN~ ' {.'=&.' {.+.K%Z=' } ~ qN~ K%{.,=} qN~ } |-T ].].L T T uNT L ].].@*' &.)%c qN} qNL |-|-} qN~ @*|-L +.~ Z=,=,={.K%Z=&.&.{.} Mi,=' ,=Z=K%{.{.$.{.oN'=&.)%6N6Ne 0+,=Z={.{.' {.'=K%'=)%e e !%' K%~ ~ ' ,=$.c $.' ~ K%K%~ qN~ {.~ qN{.&.&.'=&.0+c e !%<$!%)%0+!%6N,=&.e e 0+e B 6Nc )%e c '='='=&.c c c &.Z='=K%qNZ=' 0+", "R ;#;#o=I%M%x*x*i-i-o=, r R ;#6 , O-o=R x*x R R o=R O-c&c&B-,%> I%l$l$d.6 ,%l$I%0+B-i-o=o=, O-B-M%O-o=o=;#R 6 o=o=, x i-o=M%O-O-, B-o=;#, , o=6 ;#B-B-O-;#6 l$,%I%c+c&c&l$c+c+, > B e 6N; > B B > ; ,=c&c+c+B-B-c+,%c&c&> > <$c+l$c+M%O-,%> > 6N$.|O> e B ; B ,%c&> > > > > > c&c&> B > c&B-; l$o=c+> B e (.; B > > <$6NB B ; e 6N6N6Ne e 6Ne 6N<$<$e l$> <$<$; > c&,%> > c&(.,%c+B e e 6N(.(.; B 6N; 6N6N6Nc c B $.{.Z=Z={./ c c ,=~ +.} ,=qNZ=' } } +.qN+.@*+*L @*@*K#*.@*@*qN+.qNn ~ Z=+.+.+*L @*+*+.+.+*].T @*Z=~ $.> o=l$n {.n +.].+.} ~ {.n +.+.{.{.qN{.,=0+|O(.,=' Z=Z=+.qNqN].~ +.+.qN~ } {.{.{.Z=(.c&> B > 6N/ c > c ,=|O|O0+$.,=/ c e |O$.|O{.{./ / $.|O(./ {.{.qNqN~ ~ Z=", "> 6 [ M%c+!.o=M%/.O-o=o=o=o=c&I%6 !.O-O-O-/.c+/././.o=!.O-!.C c&I%I%B-x*!.C I%/.M%> !.!.!.[ R#!.O-!.O-6 o=!.O-M%B-I%!.!.O-R d.!.O-O-o=O-I%O-B-/.B-I%!%o=o=I%I%c&> > C /././.!%L%B-/.O-B-c+c+c+c+c+c+/.C C I%/.c+/.I%B ; ; B > !%B !%> o=c+,%,%,%c&B B !%6N; B B ; c&,%> I%> B L%!%B L%> L%c&B C M%B-c+c+I%,%B !%; !%!%; B !%; !%> c&!%!%!%)%|O(.!%; !%; ; )%c&; > !%(.B c&C c&B ,%L%c&> c&L%!%(.(.|O0+6N!%!%L%C o=,%(.6N; ; ; ; B )%(.6N; ; 0+,=!%c&> ; B !%0+&.'=/ |O/ qN!%!%!%|O|O/ |O(.; |O|O|O|O0+|O|O,=K%' |O)%&.,='=Z={.|-].qN~ qN@*@*].uNJ%+*+*uN@*n {.'=K%K%' ' qN|-K%qNn Z=n qN|O(.,=|O|O,=&./ ~ K%Z=/ &.|O&.qN].K%{.{.,=/ ,=|O' {.' '='=&.' '={.Z='=/ ' / &./ ,=&.0+0+|O&.", "; c&[ R#;#!.6 !.!.[ ;#6 !.[ 6 B , [ M%/.M%l$l$/.l$/.;#6 !., /./.O-;#/.C C C C c+c+c+l$O-M%O-x*d.!.!.M%/././././././.c+L%c+, l$6 O-M%/.C ,%c+c&c&C c+,%C /.c+/././.O-/.,%,%,%c&L%c&c&c&c&!.!.M%l$l$C C c+l$/./.c+c&L%c&L%c&B ; !%<$!%; L%,%,%O-l$C ,%B L%c&B <$c&c&<$<$6Nc+/.C c&<$<$!%!%!%; c&c&c&c&,%/.C C B 6Ne )%c 0+!%e !%; !%,%B ; ; 6N!%e e !%<$6N!%; <$)%<$L%; ; 6N&.e )%e <$!%6NL%/.,%<$!%!%)%6N!%)%6N$.e c&e 0+; /.c&e )%$.0+6Nc )%6N)%0+&.L%<$<$/ K%/ 0+$.,=c K%$.6N!%B L%L%<$; B !%<$c&l$c+C L%c&l$,%l$l$c+l$c&; B !%)%,%L%; e 6Nc )%6N6N&.c c 6Nc&c+M%/.c&e 6N<$L%)%e ; !%B c+l$c&c&B B !%6N6N)%6Ne e e 0+&.Z=0+0+0+; )%e !%B L%c&/ ,=B ; !%e 0+0+&.,=0+B )%&.' '=K%'=/ ", "6 <$,=I%6 w x R M%!.!.O-B-/.o=6 c+o=O-/./.O-B-/., o=!.!., /.C /.!.)%M%B-I%c+l$c+l$I%C I%c+C /., M%O-6 o=l$c+I%/./.l$C C C l$c&c&B-C <$C c&c&I%c+I%I%l$c+/././.c+M%O-l$c&> <$; ; <$c&c&; c&O-C l$c+C c&I%I%/.I%I%I%c&; c&> C C c&L%)%; 0+(.<$> > L%B-c&L%<$; c (.!%)%(.!%6NL%c&I%/.c+C <$L%L%C > ; ; !%c&c&c&L%(.)%&.$.|Oc c c c 0+; <$6N!%l$> !%(.0+0+0+c 0+c (.0+!%L%c&<$)%6N)%6N)%c c 0+L%!%; c&; L%<$!%; (.<$; ; > !%; C c+6N0+c 0+0+c c (.c 6N(.6N<$; 6N(.)%c &.c |O|O$.,=c |O&.0+; 6N<$c&<$6N0+c (.$./ , c+c&c&; !%; ; !%!%; ; ; ; <$C <$; 0+&.|O,=$.$.|Oc )%I%, B-c&c&c&<$6N|O0+(.6N(.6N!%c&/.c+c&; !%; )%0+!%<$l$6Nc&B-c&> !%L%<$L%c&I%/.B-c+C C I%C c&c&; <$> L%; 0+0+&.6NB-", "I%M%> Z=!%B-!.6 [ 6 !.M%M%/.B-O-!./.I%R !%)%O-M%B-M%M%O-O-M%B-I%l$e I%O-/.l$l$l$C l$,%I%/.l$I%C C ,%/.o=!.l$I%I%C I%> L%> ,%C > L%(.0+,%,%,%L%B L%L%B > > ,%M%L%(.C /.I%I%,%,%L%B L%L%,%L%> C I%L%C l$/.I%l$C L%B e !%L%B l$/.B-l$!%; e (.!%B B B L%C ,%> !%!%)%0+c |O)%0+!%e )%!%I%O-I%C ; !%B !%e ; B !%!%L%L%; !%)%0+0+|O&.c c (.(.e !%> M%L%e )%|O0+$.&.|O&.c )%; !%!%!%L%,%!%; !%(.0+c &.(.!%(.!%B > !%e B ; ; !%!%!%)%|O&.(.; e &.)%|Oc 0+&.|O&.)%0+(.; !%,%!%c &.$.&.&.,=,=0+/ &.0+0+&.,=&.c &.(.!%e |O!%L%B > ,%L%; ; !%e !%L%L%B !%!%,%!%,=&.,=/ ,=c !%|O$.)%,%!%!%C ,%l$L%&.$.)%c $.$.|Oe B L%e !%!%)%!%(.c e !%e (.L%> ,%I%I%B-l$I%I%L%!%; ; ; B ; I%L%L%e c 0+|O0+)%e 0+", "!.o=6 R R !.c+e M%M%C C ,%L%c&/.I%C I%/.C <$, o=C C M%/.l$c+/.l$c+/.c+,%C M%l$/.I%C c+/.c+c&> I%C I%I%,%c+l$l$/.l$L%L%c&,%> C /./.M%!./.C I%> > L%<$e ; L%> L%c&> ; <$I%c+C /.C L%L%L%L%L%B c&c+I%!%,%C ; L%c&L%; ; <$!%; B > > L%B B L%B e !%(.6N6N; <$<$<$c&L%0+0+&.c 0+0+c 0+&.0+<$c&; ; B B 6N6Ne e (.0+; !%B L%> c&<$6N(.e 0+e !%6N0+0+!%!%e ; (.0+0+&.c &.0+0+0+0+0+(.e <$c+> e e (.0+0+(.0+6N!%<$/.> > <$B ; !%; <$(.6N(.; e e <$B !%c (.(.0+&.0+$.$.'=&.; ,%!%0+$.$.$.$.'=&.&.$.$.c c ; B B ; (.6Ne 6N0+(.(.e ; > !%6N<$I%<$0+c 0+c 6N!%L%!%6Ne 6N0+&.c 0+c c &.{.K%' $.L%M%c&e 0+0+c &.$.,=c (.L%B <$L%L%; ; !%e 6N6Ne (.0+&.e I%M%, ,%L%B <$0+(.e (.(.6N!%B <$B ; (.(.e 6N", "d.;#6 6 6 R o=L%; L%c+O-, B-/.l$c+I%C I%C C I%B-, c <$O-C C C C > c&c&L%> C C C C C c+C > <$; > I%I%I%c&> C C > /., /.I%C I%/.B-B-/.l$I%C > L%; L%; !%; ; !%!%!%; <$!%!%L%!%, l$> c&L%L%> <$; L%c&C L%> > <$<$<$; ; <$!%<$<$!%L%<$L%!%!%L%)%)%6N!%!%)%c )%!%!%L%!%6Nc )%)%$.$.&.|O)%|O(.(.!%!%L%C 6N!%6N(.(.!%!%)%(.6NL%L%(.!%!%!%!%)%c |O&.$.$.|O)%)%!%!%c |O)%6N6N!%!%6N)%)%)%<$<$6N!%!%(.)%|O(.!%6N)%c !%6N<$L%I%I%L%; <$; <$; !%)%!%; !%c c c &.$.' ' &.,=' ' / |Oc |O&.$.,='='=~ '='=$.$.$.c )%!%; )%)%)%)%)%|O)%|O&.c 6N; I%L%(.|O,=$.|O$.$.|Oc !%L%!%)%c c &./ |Oc &.$.&.$.)%L%!%)%)%)%c &./ |O)%!%!%)%L%L%; <$C !%)%)%)%Z=qN} ~ } ~ {.' ,=; !%L%; (.6N(.)%)%c )%(.L%L%; ; )%", "o=B-l$l$l$I%I%l$I%,%e c&M%, B-M%l$l$c&,%C l$I%,%l$B C O-O-I%6N,%l$l$l$I%,%,%c&L%,%L%I%I%l$,%B B ,%c&<$!%L%,%,%c&I%l$l$, l$B-M%I%,%c&L%,%,%L%c&L%C e e B B <$!%e e <$e !%<$6Ne c&e B ,%c&B B !%<$!%)%e <$,%,%B e L%B B !%!%B B B e e e e B B !%e e 6N)%)%)%&.&.)%)%e !%!%)%)%$./ 0+e e e e )%)%0+B ,%!%e 6Ne !%e )%0+c &.6Ne 6N0+B B 6N' '=$.$.$.&.c &.&.)%B L%c&B B e 0+)%0+c )%e 0+)%)%e B C <$)%6Ne e e 0+c &.)%B I%,%<$e e B <$e 6N)%)%&.c $.0+)%e e 0+/ K%} K%' '=/ '=/ / &.6N)%c !%<$<$<$)%)%c &.)%6N&.0+)%c &.$./ 0+)%6Ne 6Ne e e )%&.&.$.&.c &.&.&.)%!%e e )%)%c 0+)%0+&.0+c &.&.&.$.)%)%)%$.&.&.c c 0+)%$./ &.e <$6N6N)%$.K%@*n T L @*T n ' '=6NB )%6Ne )%e 0+)%&.!%c&B 6N/ ", ", /.c+c+,%,%,%c&I%/.c&)%c&,%; <$c+c+,%c&c&,%c&> c&,%,%M%6 6 '=Z=c&I%c+c+> > <$<$<$<$e !%> c&<$c&,%c&<$!%<$L%c&<$; L%<$c&,%c&c+c&c&c&<$c&> <$; )%; c&> c&I%c&c&<$<$!%!%; ; <$; <$<$L%; ; ,%<$!%; 6N6N!%!%<$<$L%; 6N<$!%)%)%)%0+)%(.0+)%c (.e !%!%c > 6N(.6N0+c c (.)%(.(.6N; (.6N6N(.)%0+)%|O|Oc c )%(.!%<$)%c &.c / &.|Oc |O'='=,=0+!%0+&.$.c &.' &.,=&.&.,=|O0+0+!%; <$0+&.)%)%c 0+0+|O|O)%L%l$c&<$; !%!%)%c )%!%6N!%; !%6N; <$L%L%e )%0+c $.c c (.c+!.[ L%$.'=/ ' Z={.K%~ K%' ,=(.e !%; ; !%e e ; <$)%(.0+)%!%(.!%6N)%c c $.0+|O&.|O&.)%!%)%(.(.0+c c $.$.|O)%0+c (.e 6N(.$.'='=,=,=$.' |-K%K%'=/ '={.$.|O&.&.,=&.,=c |O|O|O|O)%6N<$; |O|O6N(.0+(.e e e !%)%)%|O|O0+|O0+!%e 6N(.c ", ",%C C C > C C C ,%,%C C > B B &.!%> )%B C C e <$> C I%C ,%C /.C ,%B (.'=&.6N!%)%6N6N)%6N0+|O|Oe ; > c+,%> > > B L%B B B L%<$<$<$<$; !%B L%<$B !%e ; <$B B > ; ; B !%!%; <$<$6N6N; B ; !%C C L%L%L%!%)%6N)%(.e e !%!%(.<$0+!%; (.0+|O)%(.(.|O)%0+6N6Ne 6N!%(.)%(.|O0+0+|O0+(.!%e !%<$6N)%0+0+|O0+0+|O&.0+6N|O6N!%(.)%&./ '={.{.{.{.{.'=&.&.)%)%0+&.$.&.0+0+&.&.&.$./ 0+e e &.|O&.0+0+$.&.0+0+0+6N!%!%B 6N; B !%6N)%)%0+0+6Ne 6N; 6NB e 0+0+0+|O0+(.0+&.e <$<$(.0+(.6N/ '='=&.$.&./ '=)%e e B ,%> 6Ne 6N(.e 0+)%)%|O0+(.)%&.&.Z=|O&.{.'=&.&.|O|O0+(.e e (.0+&.0+&./ &.&.)%6N; $.K%{.+*uN'='=} +*|-+*@*+.qN{./ |O&.&./ / '=/ {./ |O$.'=6N!%!%6N!%; (.(.0+0+0+6Ne e (.e (.e /.!.c+0+&.$.", "L%> <$B ,%c+,%,%c+c&,%l$I%,%,%,%I%c&,=$.B ,%,%B <$> ,%,%,%,%L%!%6NB c+&.T (.)%c (.)%0+c |Oc c )%(.6N<$<$; ; <$; ; !%; ; ; !%; B B c&!%; B ; ; !%6N; B ; 6N!%6N)%6N6N6N<$<$6N)%(.0+6N<$; 6N0+(.(.(.B ; (.)%(.6N(.(.!%0+6N!%!%; ; 6N!%6Nc |O/ |O&.&.&.|Oc 0+(.0+; (.c 0+(.6N0+c &.|O&.; > ; 0+$.&.$.0+c 0+&.&.|O6N6N(.0+$./ K%K%Z=~ K%K%Z=Z=,=|O|OL%0+|O&./ / / / ~ ' ,=/ $.|O,=|O0+0+&.,=/ &.&./ / 0+|Oc !%; B (.|O,=/ ,=,=$.$.|Oc |O)%)%6N)%,=$.&.&.c )%/ $.,=0+(.6N; ,%!%)%0+0+0+0+)%(.c 6N<$6N(.)%6N)%6N(.)%|O&.c ,=' ,=,=$./ ' $./ ' ,=/ ' ' Z=,=,=0+!%(.|O,=/ / Z=K%~ Z=/ Z=~ @*@*&.,=K%~ n uNJ%|-Z=' ' $.|O|O/ ' Z=' / ' / / Z=' Z=/ $./ c (.<$<$(.0+&.&.|O&.c c )%c+B-<$0+c c ", "L%> / $.I%c+c+c+c+,%C C L%c&> > > B-;#M%!%|O!%I%c&> B B !%; !%(.0+)%6N; Z=} 0+(.|Oc |O/ 0+c )%c c / &.|O|O(.(.!%!%; !%!%!%; e ; ; L%> B 6N(.)%(.(.e 6Ne 0+)%(.(.(.(.6Ne 6N; !%6N)%)%&.&.&./ |Oe 0+e B !%!%!%6N6N)%(.0+(.(.e e 6Ne > !%L%!%6N)%)%0+|O|O0+|O0+/ / )%0+6Nc )%(.(.0+&.&.0+(.)%&.c 0+e (.0+)%|O&.$.c &./ 0+|O0+'={.' {.{.Z=' {.&.'=Z=&./ / &.' &./ / {./ Z=' Z='=/ / / / )%0+$./ Z=Z=/ $.'=Z=' &.)%&.|O|O&.0+|O&./ &.&.)%0+0+0+(.0+&.c |O&.&.&.&.&.'=' } '=e ; !%(.!%!%)%&.$.' ' / / ' $.&.&.|O(.6N|O&.&.' ' $.&.&.|Oc 0+|O/ '=/ {.' K%Z=~ ~ $./ &.' / / / ~ } {.qN} Z=' ' / &.e )%/ ' K%'=Z=|-{./ / K%'=|O$.$.&.$.Z=Z=/ / / ' {.' Z=/ &.!%6N|O&.&.&.6N0+|O&.&./ 0+6N|Oc ", "<$<$<$; ; > L%|O,%,%> L%L%B B L%B B > ,%/ |OB l$C 6NB <$; e 6N)%e 6N(.6N(.0+(.6N0+' $.|O'=,='=/ $.$.|O)%e e e (.0+c )%6N(.0+e e (.e <$e e (.6Ne 6N6N0+$.$.|O)%0+|O,=$.c $.e 6N$.'='=$.|O|O$.|O|O0+0+)%(.6N0+e ; (.)%|O$.c c 6N)%0+)%|O(.; (.)%|Oc |Oc |O|Oc 0+|O|Oc c )%0+0+0+|Oc c $.,=/ ,=,=' 0+e )%$.$.,=,=,=,=,='=$.|Oc c $.$.' ' {.K%{.{.Z={.Z='=$.|O6N6N$.' ' '=' ~ {.K%K%{.{.' |O|O' '=,=' {.Z={.K%~ ~ K%{./ |O|Oe e $.'=|O$.'=,=|O$.$.|O)%|O,=,=$.$.,={.K%'=$./ $.c $.c )%e e ,='=~ ~ {.~ n qN~ {.Z=$.)%|O'=$.|O,=/ '=$.|O/ $.$./ '=$.|O,=~ Z='='=$.|O@*{./ |O$.K%{.~ qN~ K%K%qNn Z=$.,=$.$.,=/ '=Z='=~ ].{.$./ Z=/ $.$.$.' K%~ K%Z=Z=Z=Z={.' Z=c 0+' ,=|O'=|O0+0+,=~ uN@*Z=", "e 0+6N!%)%!%!%,=0+)%(.6N)%)%0+)%)%0+0+6N(.)%e C ,%0+!%|O!%!%|O&.!%0+&.&.0+e )%)%6N&.|Oe 0+0+0+6N0+&.0+0+0+0+0+0+&.&.0+0+|O(.&.&.6N(.|O$.' |O0+)%/ 6N0+Z=Z=&.,=Z=/ / ,=$./ ,=&.0+0+0+)%&.,=&.$./ &.,=$.&.&.0+$.|O|O&.0+' ,=$.$.&.&.&.$.&.!%0+0+0+)%0+,=/ / &.'=&.&.&.0+(.' 0+(.)%)%)%0+&.&.&.|O,=/ &.&.&.&.|O(.&.&.&.$.$./ $.&.0+(.&.{.$.$.Z=,=&.$.|O|O0+0+&.|O&./ '=/ K%} K%K%{.'='='='=' '=&.&.$.$.K%qN} } qN} } } {.{.&.0+|O/ $.' {.{.' '=' Z='=/ ,=/ / / / ,='=/ '=' Z=Z='=K%'=&.6N0+&./ } Z={.@*n } +.+.qNZ=$.&.&.$.,='=Z='='=' '=' Z={./ ,=0+&./ {.$.|O|O/ ,=/ / $.,=/ '=' {.} n n |-n } {.{.Z=/ / ,=0+$.{.Z=Z=/ '=' Z={.' &.0+,=,=/ '=Z=Z=} Z=Z={.Z=/ / $.&.,=qN+.qN`OT } $.,=", "c |Oc c (.c c c &.c c c c c (.0+c c c c e e ; e ; c e ' c 0+{.|Oc $.$.&.(.c c c (.(.c c c &.&./ &.|O&.$./ / ,=$.e e e (.,=&.' ,=,=,=,=$.,=' $.c / / &.$.,=$.' ~ K%} {.' ' Z=/ / ,=Z=&.e &.$.&.&./ / $.,=,=|O{.+*+.' / / ' ' Z=' ' / ' K%Z=' ' &.K%c ,=' ' ' ,=,=/ ' ' / ,=$.$.,=c c $./ $./ ,=$.Z=Z=/ ' ' / ' 0+|O&.&.$.&.$.$.&./ / / c |Oc 0+|O&.|Oc ,=|O$.' $.&.|O&.&.' ' Z={.].n ' ' / / $.$./ / Z=} K%} n } n } } } } ~ Z=' ' / / / / {.} Z=} ~ Z={.Z=/ K%' {.{.K%Z={./ / ' / ' / c $.,=$.|O&./ ' K%n } } n {.,=c $./ ; (.' ' ' ' ' {.' {.K%Z=' / Z=Z=' ' ' Z={.Z=' ' / ' Z=/ / ' K%n } ~ } n } } } K%' c &.' ' ' ' ,=' Z=Z=} n Z=Z=' / ,=&./ K%Z=Z={.Z={.' Z=' / / |O|Oc / / ' ", "|O0+&.|O)%(.|O|O0+0+|O0+&.|O|O|O&./ $.0+(.(.(.0+|O$./ Z=Z=$.'=K%/ 0+0+|O|O&.0+(.0+|O'=/ &.|O$.K%&./ Z='=' K%'=/ |O|O$.&.$.$.|O$.&./ / / ' ' '=$.'=' / $.$./ |O'=K%K%'={.K%Z='='={.' } |O|O&.$.'='={.' ' '=/ $.$.Z=K%K%qN' &.'=Z=K%} {.K%K%K%' $.} {./ '=' '='='=' {.' K%K%' ' Z=$.&.' &.$.Z={.K%K%K%' ' '='='=/ '=/ / / $.'=Z='=qNL {.{.'=$.$.$.'=|O|O/ &./ '=/ $./ / $.$.$.'=K%@*@*} } ' } } {.'=K%Z='={.} K%K%} } qN} K%} qN} K%{.' $.&./ K%} |-n qNK%K%{.' K%{.' Z='='='=Z=' Z='=' ' {.} } '={.0+)%&./ '={.'=|O0+&.$.$.|O)%0+/ ' ' '='={.K%K%{.} K%K%K%'=/ '=' '='=' ' ' K%n K%$.'=Z=K%K%qNn +.+.+.|-|-|-|-K%} K%{.Z=/ '=K%+.J%|-} n K%{.{.Z=$.'=' ' ' } } K%K%} } Z=/ / '=$.0+|O", ")%c $.' |O|O/ |O|O$.c ' $.<$6N6N(.0+)%(.c c c c )%(.6N0+$.c 6Ne ' K%c 6N$.$./ } |-K%{./ ,=$.|O/ / ' ~ |-|-].qNn |-} ~ Z=/ / $.' K%/ $./ / / ' / ' K%/ ' ,=~ @*K%/ Z=} } K%' ,=' K%{.' ' K%' {./ ' ~ Z={.Z={.K%~ ~ } Z=|-K#$./ K%} ~ K%} } ~ ~ ~ ~ K%{./ / ,=/ ' {.} {.~ K%K%Z=' {.{.K%' / {.} Z=~ K%{.{.K%K%K%' / / ' / ' ,=/ n qN{.~ ~ qN|-@*} ~ K%/ / ' Z={.' ' ' ' ' ' / $.$.,=/ ' K%~ ~ } ~ K%K%K%{.{.Z=Z=n |-K%~ ~ Z={.} } n qNn n ~ qN} } |-@*n |-qN~ K%n ~ K%~ ' ' / ,=' ~ K%K%~ ~ ~ ~ Z=' ' Z=' Z=' ' ' ' Z={.K%{.~ Z=/ / / / {.|O,=Z=Z=K%} n ~ {./ Z=Z=/ Z=Z=/ {.~ {.{.{.' Z=' ' {.' {.' ' ~ } n n n |-n |-|-} n {./ K%@*} {.~ ~ ~ } qN~ {.' Z=' Z=' $.Z=Z=Z=,=/ Z=/ / ' ' ", ")%|O~ +.{./ '='='='=&.Z=/ c |O,=0+!%)%c 0+0+|O|O'={.Z=K%Z=0+'=n &.'={.K%' / ~ n ~ K%'=,='=Z=Z='=' ' {.{.~ n n n +.} K%qN@*].n qN].`O&.Z=K%{.{.{.{.{.~ K%{.Z={.'=' {.' Z=K%K%~ n qN} '=Z=K%Z=' K%'=/ {.~ K%} qN~ {.K%} K%qN+.@*K%{.'=' ~ } {.Z=K%~ qNn +.} qN*./ / ~ qN} qNqN} n n uN+.~ K%K%K%K%{.{.{.~ K%~ qNK%{.~ {.{.K%~ Z=} n qN} +.n +.+.+.+.n n qN} qNK%{.' ' Z=Z=Z={.Z=Z=' {./ K%} } ~ n qN~ K%} } ~ ~ } ~ '=~ +.n n n qNn n n +.].@*+.n n +.} K%~ K%} } n qN+.} K%K%'=/ K%n qNn +.+.n n n ~ ~ qN~ qNZ={.K%Z=~ K%Z='=K%Z={.Z=Z=~ } Z=Z=Z=K%Z=K%K%K%~ ~ K%K%K%{.K%~ ~ qNn } ~ n n } n n n Z={.' qN+.].+*+*+.+.n n +.} qN} ~ ~ K%} n +.n n qNqN+.+.n qN~ &.,=/ '=Z={.Z=~ } n n ", "Z=Z=~ qN~ } ~ / Z=~ qN~ ' Z=qN~ n ~ &.' ~ ~ n ~ |-{./ ' / / $.{.~ / / ~ ].{.c {.Z=~ } ' ' {.Z=Z={.{.$.c / ,={.qN+.n ].T m$G L +*U s.qN' Z={.{.{.{.{.{.' {.Z=~ qN} ~ {./ $.{.} } } qN~ ~ {.{./ {.~ ' {.{.{.{.{.~ } } } {.{.qNqNn {.~ {./ } } ~ n L |-@*@*+.qNuN+*~ } |-qNn |-].|-qN} } qN|-qN~ ~ |-~ / {.~ qNqN} n } |-+.~ {.~ ' ~ {.qN|-~ |-|-n @*|-|-|-qN~ {.n ~ ' Z=' {.~ {.} } n } qN~ ~ } |-qN~ ~ qN} {.{.qN} {.~ qN~ qN~ / ~ +.|-|-|-qN|-|-|-|-@*n ~ ~ } n n {.~ ~ ~ } } ~ } } qNqNqNqN|-n n ~ ~ |-n |-n qNn {.qNn {.{.qNqN} } } ~ qNqN~ {.~ ~ {.{.{.} } n |-|-|-+.|-~ {.{.~ n +.+.@*|-qNqNn |-|-{.{.qNn +.+.@*+*].+*|-].@*@*|-qN~ ~ {.} @*@*+.|-@*+.|-|-|-{.{./ Z={.{.|-|-|-|-", "~ n ~ ~ K%~ K%' ' K%U ].K%{.K%K%~ ~ } ~ qNK%~ ~ {.~ K%{.{.{.{.' {.K%} *.Y L $.&.$.'=qNK%{.K%~ {.'=/ / &.K%K%+.L +*@*+.qN+*+*+.+.n +.+*+.n qN' ' K%~ K%~ K%~ } n n +.+.L / {.K%K%~ K%n } } qN~ K%} } K%~ ~ ~ K%} n n qN} n qNqNn K%K%@*~ qNn qN~ } } +.@*+.@*+.+.+*T K#K#U n qN].+**.+*@*} ~ K%{.K%n K%~ ~ } ~ } {.K%n n n n n +.n n qN+.} } +.@*].+*+*].n n qNqN+.K%K%+.+.+.@*+.qNn +.n n n n +.+.].+.K%n n qNqN+.+*].@*+.+.qN{.' n @*@*@*+*+*].].].].+*+.n n n n K%K%} } n +.+.} ~ } ~ @**.qNn } n @*T ].@*@*].@*+.+.qNn n ].+*n +.n +.qNqNn n +.n ~ n ' {.} n n @*].+*+.+.qN+.+.@*@*n qNqN+.+.@*].@*+.qNn qN~ K%K%n +.].@*@*+.@*@*+.@*+.~ {.~ @*+.+.L +*].+.+.+*].n K%} {.K%qNqNn ", "|-qN/ |-Y Z=/ ' Z=qN} K%{.~ } } qNqN} } } qN|-qNqNqN} } } |-qN@*} Z='=} J%]./ |-+./ ,={.~ Z=Z={.Z=Z=Z=Z={.Z=Z=Z=qN+.uNL T T T +*+*uN+*uNuNqN|-qNK%qNqN|-].|-+.@*+.].@*+*qN} qNqN|-qN].|-qN|-|-} } } qN} @*uN/ '=|-+.].@*@*uN@*].@*+.+.@*|-|-qN|-|-|-].].uN+*uNuN+*+*].].].} {.|-].].qN} } qNqNqN@*+.qN|-|-@*+.|-Z=~ |-|-L +*].+*@*@*+.|-@*].].L L +*L +*].T L ].|-} qN} K%~ ].].].].].].].uN+*uN+*uNm$U |-L T uN+*+*L L uNT T T ].+.+*].L +*uNT T T T L uN].].@*].U @*} |-+.|-+.@*+.|-|-@*G Y ].+.].@*@**.L uNL T L +*+*].].~ qN].qN+.].@*].uN+*L uN].].+.~ +.|-+.@*].].@*uN@*+.uN+.@*|-+.+.|-|-L T +*+.|-@*].+.+.].|-K%qN@*+*].+*uN+*].].L @*|-+.|-|-+.+.L ].@*].].].].].@*|-|-K%~ ", "+.|-|-|-J%L ].|-n ~ } |-n } qNqN|-@*|-K%~ } qNqN~ n qN} |-].qNn qN} qNqN|-|-|-} uNK#@*Z=Z=~ } } qNqN~ qNn n qN~ ~ |-uNK#G G K#J%K#J%J%K#K#uN*.uNK%qNn n |-].uN].].].@*].].+.|-n +.uNqN|-|-+.+.@*|-|-+.n ].].K%{.} qN|-+.uNL ].uN].@*@*|-|-|-qNn J%|-*.^.L L ].uN*.*.*.L uN@*qNK%K%n qNqN|-|-|-+.+.|-|-|-n n +.L ].qNqN|-].|-uN].uNuNuN@*@*].L uNuN].].n qNqNqNqNqN].K#{ p.q.o+K#n ].@*].J%L L L J%J%L G uN].@*+.|-].uNuNuN*.J%J%K#*.J%L L L ].L L *.*.*.*.@*+.uN+.L J%L uN*.K#*.|-+.].uN].].L uNuN*.m$*.L uNuNuNuN].].uNuNL uNL K#L uN*.*.L ].@*uNuNuNL *.J%J%uNuN].@*n n |-].].].uNL uN].uN*.L n ].uN@*@*].@*].uN].].].+.|-].].].].].].].L uNuNuNuNuN].].L } @*].uNL uN@*].uNuN+.@*", "+*@*@*+.+.@*+.+.K#K#@*+.} } } @*T J%K#U U T +*uN+.@*+.+.n +.n +.+.+.+.+.+.|-+.uNT ].T v.@*K%} qNqNn |-n +.+*L L +*].uNK# .m$m$m$`OG Y K#G Y K#U *.T +*+.} @*+*uN+*+*uNT uN+*+*+*n *.|-+.].L uNuNL uNT uNuNL T L uN+.+.].+.@*+*+*+*+*].@*+*L L ].G J%J%~+m$v.~+K#T T *.*.T J%*.T L T +*+.qN+.+.uN+*+*+*uN].+.@*].J%T T `Om$U uN@*L L L *.T uNT +*uN+**.^.uNL T L Y m$ .`O`Om$ .T qN+.+.+*T T J%J%U U T J%Y K#K#U T |-qN+*uNT *.U U T U U +*K#U @*+*].T U *.L T *.J%*.T U Y J%G m$T @*L L T T T T Y G U G K#+*n uNL L T J%*.*.U J%T K#J%T T T T *.U T *.T *.*.T K#J%L T K#+*uNJ%J%*.K#U +*+*uNT Y J%+*+*+*@*].+*+*uN+*+*T L @*L L +*U T +*T J%T T L *.U *.*.T *.@*n +.+*+*uNL uNT *.T ", "].].].].@*T T +*].L L +*L L L L T J%J%J%J%U U U T T L G J%].@*@*@*@*].+.|-|-@*+*].|-n ].J%`O+.{.} @*L T +*L L +*+*+*].T T T K# . .~+~+ . . .G J%T L L +*+*+.].+*L L L L +*L L *.L L L +*L +*].].].L J%J%T T *.J%T T L L T L L T *.J%*.U U T T T T U Y ^. ./@>.`OT U J%T J%T *.T L L L +*].+*L L L L T T T L +*].].+*T T T G J%].+*T T J%U J%J%T L L L `OG K#T *.U T T L +*T +*L L L +*+*L L L T J%T U G Y Y `OU G T } +.T U J%U G Y G K#K#Y G U K#Y U T L T U J%J%U U U U T U U Y .*.J%Y G Y `O . .G Y Y K#T *.T T T J%T T U *.J%U K#*.J%T L *.L T *.T J%T J%K#*.T L Y Y *.*.T *.J%T T J%J%*.*.U *.T *.T T U U L T T T U `O . . .{ { +*@*+*+*J%T T U J%J%T K#Y J% .^.K#+*@*@*L L n ", "+*uNL T L T T T *.*.L L *.T *.U J%*.T U K#J%K#K#T +*+*L K#+*].].+*].+*uNuNuNL ].+*].].@*+.n G G `OT @*L L T T L T T U K#*.L @*uNL *.J%K#`OJ%*.L uNuN+*uNL L L *.U *.T *.J%U J%*.T *.U *.*.J%G G @*uN*.K#U K#K#U *.U K#*.uNT L L L *.U K#J%J%K#U U K#J%U *.*. .`O].L L J%K#K#K#K#U K#K#K#K#*.J%J%*.*.*.*.*.K#G L ].+*L T uNL T ].@*T *.J%G G G G *.*.*.L T T L *.J%*.*.*.*.U K#K#K#*.L uN+.L K#J%G U K#G K#U U U K#K#K#J%K#K#J%K#U G `Om$ .m$ . .`O^. .G K#J%uNU K#`O .`OK#G G G K#`OG K#G G `O`Om$`O`O .^. .m$`O`OG U U L T K#U K#*.G G G K#K#K#*.uNT U U K#G K#U U U K#U K#K#U U *.].uNT *.U J%K#K#G G G K#G m$K#T J%`O .`OU K#K#*.K#K#T L *.L J%K#U G K#U *.J%J%U K#`OJ%`O*.@*L ].", "m$*.T *.T U K#T K#Y K#T L v.2 *.L *.@*L *.T L T T U *.T T uNuNT T uNuN+*].uN@*|-T m$Y K#Y *.Y G .Y K#K#+*].T U U T *.*.*.*.T T L ].+*T L ].T U U T T *.*.L T T L T K#+*T L uNL T *.U U G .Y U G K#U T *.*.*.T *.*.T T T T T *.*.T G T L *.U U U U U K#K#U K#U T T T *.T U U G `OG Y `O`OG K#K#U T U *.U U K#G U U U K#K#K#K#*.T *.U K#*.U G `O`O .K#Y G U K#U U U *.T *.K#U K#K#K#U T L ].L *.K#U U U K#G `OY Y `OY `OY G K#*.K#U K# .Y Y Y Y G K#Y Y K#K#U U K#Y .m$G Y Y .Y Y `O`OK#G .Y `O`O^.^.^. .`OY . .`OY .m$Y .`OY Y Y Y .m$K#K#U G K#K#G G K#G K#*.K#K#U U Y Y Y U *.].uN*.U K#U K#G G Y G G Y U U T *.U Y Y G K#U K#K#K#G K#U U T *.*.K#K#K#K#Y K#Y Y Y ^.G L U ", "^.L J%U J%J%U U G G G Y `Om$p.^.`OT +*uN+*uNT T T L L J%J%G J%L J% .v.T ].*.L *.U U K#U G U J%U J%J%U U J%J%*.L L L T J%U J%*.*.*.L J%L L +*+.J%J%J%K#G G U U U J%*.U L K#K#U U G U U Y Y .m$^.m$m$^. .G G +*L J%`O .K#G Y Y Y Y G Y .G *.J%L uNL *.U U U G G Y .`OY G `OG J%Y .`O . .m$m$ .m$ .G `OG .G J%Y `O`O`O . .G K#Y G G `OG m$U K#`O .`O .G Y `O`O`O . .U U G K#G `O .G G . .`OY .`O`O^.~+`OY . .m$Y Y `O`O`O . .m$Y U G G G `O`Om$~+ . .Y .Y `O`O`Om$m$ . .`O^. .`O^. .m$m$G G Y G m$~+v.m$ .m$m$m$`O`O~+m$ . .`OY `OY .m$`O . .`O . .Y U . .K#Y `OG Y `Om$m$~+m$ .U T U G Y K#G G K# .`O .m$G `O .Y K#`OG U Y `OY . .`O`O`OG U Y G U U K#G . .m$r.{ .^.m$ .", "*.J%K#*.K#G G Y .`OG Y .~+ .`O`OL G v.L L J%U *.J%*.J%G K#J%J%*.G m$`OL J%+*@*+**.K#G Y J%J%U G G Y `O`O`O .~+ .G K# .m$G U K#G K#G G G G J%J%J%G K#U Y Y Y G K#U J%K#G K#J%J%`OG `O .m$m$v.s.v.^.m$ .G `OG U G `O . .`O . . .m$ . .m$^. . . .m$*.*.J%G J%G .m$`Om$~+ . .`OK#Y .`O .v.~+^.~+ . . .`O`O`OG U v.^.G . . . . .m$`OY `O`O^.G U J%G G G Y . .^.^. .`O`O`OY G G .`O . . .^.v.v.~+~+ .`O^.^.Y . . . .`O`Om$^. . . .m$Y `OY `Om$^.`O .~+ .^.^. .{ v.^.^.m$ . . .^. .m$m$ .^. .^.G `O{ v.^.^.v.v.^.^.^.~+^.m$^.m$~+{ { v.`OK#`O .m$m$m$ . . .G G m$ .Y .`O .~+^.m$~+~+^.~+m$~+^.m$^. .`OG ^.m$ . .m$m$^.^.m$ .K#*.K#G K#Y Y G Y G Y G `O . .`O .`O`O`OG m$^.~+v.^.^.", "U K#K#G K#K#Y Y G `O`OK#K#^.^.m$ . .Y K#Y . .`O`O`O .`Om$Y G G Y Y `OY ^.K#U v.{ J%G `O^.{ o.m$~+v.{ { s.r.{ { 2 r. .U K#`OY Y Y `O`O`OY `Om$m$^.{ 2 J%*.Y G K#G `Om$v.v.v.v. .Y J% .m$~+~+{ ~+v.v.v.v.{ v.^. . .G `O .`O^.~+^.v.v.^.~+~+~+~+m$/@K r.m$^.`O~+v.v.v.^.^.{ { { { { m$`O`OY Y `Om$`O`Ov.v.v.{ v.v.m${ Y `Om$m$v.~+v.m$ . .m$~+m$`O`Om$`OY G Y ^.v.v.v.v.m$`O .m$^.m$s.o.{ ^.~+{ v.v.p.r.r.r.{ v.v.{ ~+m$m$`OY `Om$ . .^.v.{ v.{ v.s.m$G m$^.~+`O`Om$r.{ { ^.m$^.m$m${ r.m$~+~+v.{ { v.s.r.~+m$~+v.v.v.v.{ { { r.s.s.r.r.s.s.^.`O`O^.m$~+^.^.m${ v.~+m$~+^.^.~+^. .m$^.v.~+{ v.{ { v.{ ^.r.~+Y `O .m$v. .`O .^. . .`Om$m$`Om$m$m$ .`Om$^.v.^.~+~+v.^.m$m$`OK#`Om$v.~+v.", " . . .G v.a G J%U Y `OY `Om$^.^.m$m$`O`O`OY Y `Om$ . .`O^.^.m$v.r.s.{ v.r.^.^.r.s.v.~+`Om$a C%>. .^.r.r.r.r.r.v.v.r.2 s.v.Y Y m$^.^.v.{ s.2 o.s.s.2 a o.{ p.p.s.p.2 p.s.r.r.{ v.^.`OY `O .m$^.m$^.`O^.{ r.v.~+^.^.^.m${ ~+^.{ r.r.s.v.v.v.v.{ v.{ a 0&O a >.r.Y m$2 p.r.r.s./@s.r.{ { `OY v.~+v.v.r.s.2 s.p.2 s.s.s.r.^.^.^.~+ .m$~+^.^.v.^.^.v.v.r.r.2 ~+U m${ { r.s.r.r.r.r.s.r.r.p.{ v.v.^.v.{ r.r.s.s.s.s.s.s.v.~+~+2 ^.^.~+v.p.2 2 2 /@2 p.s.s.~+m$m$v.~+^.~+r.{ v.r.{ ~+r.v.v.s.r.^.m${ r.r.r.r.{ r.r.r.~+r.2 s.r.r.s.2 s.{ r.{ r.s.2 2 2 v. .^.{ v.v.v.v.r.^.v.{ r.v.v.{ ^.m$^.v.r.s.2 s.s.p.2 s.{ m$m$^.m$^.^.^.m$^.~+~+^.^.^.^.v.m$m$v.~+^.~+{ v.{ v.m$r.r.^.m$m$`O`O .~+v.", "Y Y `OY v.!+o.o.a r.m$ . . . .Y Y Y ~+~+r.v.m$~+o.G T G m$~+~+~+~+v.{ v.v.v.r.{ r.r.v.v.v.`OY !+v.J% .m$ .^.v.p.r.o.a /@/@/@a p. .v.o.o.2 r.{ r.s.r.s./@r./@/@p.p.{ r.s.s.r.{ r.r.r.r.{ ^.~+v.m$^.m$^.v.v.~+~+~+v.v.~+{ o.o.2 s.r.r.r.r.r.r.{ { ~+m$~+p.s.o.!+>. .~+^.p.s.p.o./@s.r.s.r.p./@2 o./@/@p.p.s.p./@p.2 /@/@2 p.r.s.2 v.~+r.v.s.s.p.p.r.p.r.p.s.`O~+s.~+{ v.{ s.2 2 s.s.p.r.r.r.r.{ r.r.~+r.r.2 p.p.2 s.r.r.v.r.2 p.p.r.p.p.p.p.p.s.s.r.r.2 2 p.p.p.r.~+^.v.r.r.r.p.s.{ { r.s.2 { m$^.v.r.r.s.s.r.s.2 { { v.r.r.{ r.p.p.s.s.s.p.2 p.2 p.s.2 q.o.{ r.s./@p.2 s.p.p.r.r.{ m$m$~+v.~+{ s.s.p.2 p.r.r.p.p.r.r.r.v. .`O^.~+~+v.r.{ { v.v.~+v. .Y ^.m$^.^.v.r.v.{ { r.v.r.v.v.v.", "`Om$G Y v.dSaMeS/O{ . . . . .`OY Y ~+v.r.^.~+~+a Y L U ~+~+v.~+v.{ s.v.{ { p.{ p.p.r.~+{ Y .9&{ U .^.Y ^.{ p.p.o./Oa /@a /Oo.`O{ a /O/@r.r.{ p.p.p.a s./@a 2 p.r.{ p.p.r.{ r.p.r.p.{ v.^.~+ .^.m$^.{ { ~+~+~+{ { ^.{ /Oa p./@s.p.s.r.s.r.{ { v.^.v.2 p.a O 9&^.^.v./@2 p./O/@/@r.p.r.p.a /@a /@/@/@2 p./@o./@/@/@o./@/@p.s./@r.v.s.{ 2 p./@2 p./@r.o.p.`O{ p.~+{ r.r.p./@/@p./@p.r.s.p.r.{ p.r.{ { p./@/@/@o.p.s.{ { p./@p.2 2 2 2 2 2 2 p.s.p.p./@q.p.2 p.s.v.^.{ s.s.s.p./@{ { r.2 /@{ m$^.r.p.p.p.p.p.p./@{ r.{ r.r.r.2 2 2 2 p.2 /@o.o./@/@p.o./Oo.r.r.p.a 2 /@2 p./@s.r.{ ^.^.^.{ { r.p.p./@o.p./@s./@p.fSfSgShSpdiSjSN>~+v.s.{ { v.{ v.{ .`O .m$^.{ { s.{ { r.s.r.{ { { { ", "L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%L%"}; tintii-2.8.2/configure0000755000175000001440000051332712236200460011655 00000000000000#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for Tintii 2.8.2. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and $0: bug-report@indii.org about your system, including any $0: error possibly output before this message. Then install $0: a modern shell, or manually run the script under such a $0: shell if you do have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Tintii' PACKAGE_TARNAME='tintii' PACKAGE_VERSION='2.8.2' PACKAGE_STRING='Tintii 2.8.2' PACKAGE_BUGREPORT='bug-report@indii.org' PACKAGE_URL='http://www.indii.org/tintii' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='am__EXEEXT_FALSE am__EXEEXT_TRUE LTLIBOBJS LIBOBJS EGREP GREP CXXCPP DEPS_LIBS DEPS_CXXFLAGS DEPS_CPPFLAGS have_wxconfig OPENMP_CXXFLAGS am__fastdepCXX_FALSE am__fastdepCXX_TRUE CXXDEPMODE am__nodep AMDEPBACKSLASH AMDEP_FALSE AMDEP_TRUE am__quote am__include DEPDIR OBJEXT EXEEXT ac_ct_CXX CPPFLAGS LDFLAGS CXXFLAGS CXX am__untar am__tar AMTAR am__leading_dot SET_MAKE AWK mkdir_p MKDIR_P INSTALL_STRIP_PROGRAM STRIP install_sh MAKEINFO AUTOHEADER AUTOMAKE AUTOCONF ACLOCAL VERSION PACKAGE CYGPATH_W am__isrc INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_dependency_tracking enable_openmp enable_assert ' ac_precious_vars='build_alias host_alias target_alias CXX CXXFLAGS LDFLAGS LIBS CPPFLAGS CCC CXXCPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures Tintii 2.8.2 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/tintii] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of Tintii 2.8.2:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-dependency-tracking do not reject slow dependency extractors --disable-dependency-tracking speeds up one-time build --disable-openmp do not use OpenMP --disable-assert turn off assertions Some influential environment variables: CXX C++ compiler command CXXFLAGS C++ compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CXXCPP C++ preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . Tintii home page: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF Tintii configure 2.8.2 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_cxx_try_compile LINENO # ---------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_compile # ac_fn_cxx_try_link LINENO # ------------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_cxx_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_link # ac_fn_cxx_try_cpp LINENO # ------------------------ # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_cxx_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_cpp # ac_fn_cxx_check_header_preproc LINENO HEADER VAR # ------------------------------------------------ # Tests whether HEADER is present, setting the cache variable VAR accordingly. ac_fn_cxx_check_header_preproc () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f conftest.err conftest.i conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_preproc # ac_fn_cxx_check_type LINENO TYPE VAR INCLUDES # --------------------------------------------- # Tests whether TYPE exists after having included INCLUDES, setting cache # variable VAR accordingly. ac_fn_cxx_check_type () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=no" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof ($2)) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { if (sizeof (($2))) return 0; ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else eval "$3=yes" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_type # ac_fn_cxx_try_run LINENO # ------------------------ # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_cxx_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_cxx_try_run # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_cxx_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_header_compile # ac_fn_cxx_check_func LINENO FUNC VAR # ------------------------------------ # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_cxx_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_cxx_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by Tintii $as_me 2.8.2, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu am__api_version='1.12' ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 $as_echo_n "checking whether build environment is sane... " >&6; } # Reject unsafe characters in $srcdir or the absolute working directory # name. Accept space and tab only in the latter. am_lf=' ' case `pwd` in *[\\\"\#\$\&\'\`$am_lf]*) as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; esac case $srcdir in *[\\\"\#\$\&\'\`$am_lf\ \ ]*) as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; esac # Do 'set' in a subshell so we don't clobber the current shell's # arguments. Must try -L first in case configure is actually a # symlink; some systems play weird games with the mod time of symlinks # (eg FreeBSD returns the mod time of the symlink's containing # directory). if ( am_has_slept=no for am_try in 1 2; do echo "timestamp, slept: $am_has_slept" > conftest.file set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` if test "$*" = "X"; then # -L didn't work. set X `ls -t "$srcdir/configure" conftest.file` fi if test "$*" != "X $srcdir/configure conftest.file" \ && test "$*" != "X conftest.file $srcdir/configure"; then # If neither matched, then we have a broken ls. This can happen # if, for instance, CONFIG_SHELL is bash and it inherits a # broken ls alias from the environment. This has actually # happened. Such a system could not be considered "sane". as_fn_error $? "ls -t appears to fail. Make sure there is not a broken alias in your environment" "$LINENO" 5 fi if test "$2" = conftest.file || test $am_try -eq 2; then break fi # Just in case. sleep 1 am_has_slept=yes done test "$2" = conftest.file ) then # Ok. : else as_fn_error $? "newly created file is older than distributed files! Check your system clock" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } # If we didn't sleep, we still need to ensure time stamps of config.status and # generated files are strictly newer. am_sleep_pid= if grep 'slept: no' conftest.file >/dev/null 2>&1; then ( sleep 1 ) & am_sleep_pid=$! fi rm -f conftest.file test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` # expand $ac_aux_dir to an absolute path am_aux_dir=`cd $ac_aux_dir && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in *\ * | *\ *) MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; *) MISSING="\${SHELL} $am_aux_dir/missing" ;; esac fi # Use eval to expand $SHELL if eval "$MISSING --run true"; then am_missing_run="$MISSING --run " else am_missing_run= { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi if test x"${install_sh}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; *) install_sh="\${SHELL} $am_aux_dir/install-sh" esac fi # Installed binaries are usually stripped using 'strip' when the user # run "make install-strip". However 'strip' might not be the right # tool to use in cross-compilation environments, therefore Automake # will honor the 'STRIP' environment variable to overrule this program. if test "$cross_compiling" != no; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. set dummy ${ac_tool_prefix}strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$STRIP"; then ac_cv_prog_STRIP="$STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_STRIP="${ac_tool_prefix}strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi STRIP=$ac_cv_prog_STRIP if test -n "$STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 $as_echo "$STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi fi if test -z "$ac_cv_prog_STRIP"; then ac_ct_STRIP=$STRIP # Extract the first word of "strip", so it can be a program name with args. set dummy strip; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_STRIP+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_STRIP"; then ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_STRIP="strip" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP if test -n "$ac_ct_STRIP"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 $as_echo "$ac_ct_STRIP" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "x$ac_ct_STRIP" = x; then STRIP=":" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac STRIP=$ac_ct_STRIP fi else STRIP="$ac_cv_prog_STRIP" fi fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } for ac_prog in gawk mawk nawk awk do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_AWK+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$AWK"; then ac_cv_prog_AWK="$AWK" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AWK="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi AWK=$ac_cv_prog_AWK if test -n "$AWK"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 $as_echo "$AWK" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$AWK" && break done { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } set x ${MAKE-make} ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` if eval \${ac_cv_prog_make_${ac_make}_set+:} false; then : $as_echo_n "(cached) " >&6 else cat >conftest.make <<\_ACEOF SHELL = /bin/sh all: @echo '@@@%%%=$(MAKE)=@@@%%%' _ACEOF # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. case `${MAKE-make} -f conftest.make 2>/dev/null` in *@@@%%%=?*=@@@%%%*) eval ac_cv_prog_make_${ac_make}_set=yes;; *) eval ac_cv_prog_make_${ac_make}_set=no;; esac rm -f conftest.make fi if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } SET_MAKE= else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } SET_MAKE="MAKE=${MAKE-make}" fi rm -rf .tst 2>/dev/null mkdir .tst 2>/dev/null if test -d .tst; then am__leading_dot=. else am__leading_dot=_ fi rmdir .tst 2>/dev/null if test "`cd $srcdir && pwd`" != "`pwd`"; then # Use -I$(srcdir) only when $(srcdir) != ., so that make's output # is not polluted with repeated "-I." am__isrc=' -I$(srcdir)' # test to see if srcdir already configured if test -f $srcdir/config.status; then as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 fi fi # test whether we have cygpath if test -z "$CYGPATH_W"; then if (cygpath --version) >/dev/null 2>/dev/null; then CYGPATH_W='cygpath -w' else CYGPATH_W=echo fi fi # Define the identity of the package. PACKAGE='tintii' VERSION='2.8.2' # Some tools Automake needs. ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} mkdir_p="$MKDIR_P" # We need awk for the "check" target. The system "awk" is bad on # some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' #AC_CONFIG_HEADERS([config.h]) # Save flags (need to be modified during configure, restored after) SAVE_CPPFLAGS=$CPPFLAGS SAVE_CXXFLAGS=$CXXFLAGS # Checks for programs. ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu if test -z "$CXX"; then if test -n "$CCC"; then CXX=$CCC else if test -n "$ac_tool_prefix"; then for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CXX"; then ac_cv_prog_CXX="$CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CXX=$ac_cv_prog_CXX if test -n "$CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 $as_echo "$CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CXX" && break done fi if test -z "$CXX"; then ac_ct_CXX=$CXX for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CXX+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CXX"; then ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CXX=$ac_cv_prog_ac_ct_CXX if test -n "$ac_ct_CXX"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 $as_echo "$ac_ct_CXX" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CXX" && break done if test "x$ac_ct_CXX" = x; then CXX="g++" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CXX=$ac_ct_CXX fi fi fi fi # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5 $as_echo_n "checking whether the C++ compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C++ compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler default output file name" >&5 $as_echo_n "checking for C++ compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C++ compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } if ${ac_cv_cxx_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_cxx_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GXX=yes else GXX= fi ac_test_CXXFLAGS=${CXXFLAGS+set} ac_save_CXXFLAGS=$CXXFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 $as_echo_n "checking whether $CXX accepts -g... " >&6; } if ${ac_cv_prog_cxx_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_cxx_werror_flag=$ac_cxx_werror_flag ac_cxx_werror_flag=yes ac_cv_prog_cxx_g=no CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes else CXXFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : else ac_cxx_werror_flag=$ac_save_cxx_werror_flag CXXFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_prog_cxx_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cxx_werror_flag=$ac_save_cxx_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 $as_echo "$ac_cv_prog_cxx_g" >&6; } if test "$ac_test_CXXFLAGS" = set; then CXXFLAGS=$ac_save_CXXFLAGS elif test $ac_cv_prog_cxx_g = yes; then if test "$GXX" = yes; then CXXFLAGS="-g -O2" else CXXFLAGS="-g" fi else if test "$GXX" = yes; then CXXFLAGS="-O2" else CXXFLAGS= fi fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu DEPDIR="${am__leading_dot}deps" ac_config_commands="$ac_config_commands depfiles" am_make=${MAKE-make} cat > confinc << 'END' am__doit: @echo this is the am__doit target .PHONY: am__doit END # If we don't find an include directive, just comment out the code. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 $as_echo_n "checking for style of include used by $am_make... " >&6; } am__include="#" am__quote= _am_result=none # First try GNU make style include. echo "include confinc" > confmf # Ignore all kinds of additional output from 'make'. case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=include am__quote= _am_result=GNU ;; esac # Now try BSD make style include. if test "$am__include" = "#"; then echo '.include "confinc"' > confmf case `$am_make -s -f confmf 2> /dev/null` in #( *the\ am__doit\ target*) am__include=.include am__quote="\"" _am_result=BSD ;; esac fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 $as_echo "$_am_result" >&6; } rm -f confinc confmf # Check whether --enable-dependency-tracking was given. if test "${enable_dependency_tracking+set}" = set; then : enableval=$enable_dependency_tracking; fi if test "x$enable_dependency_tracking" != xno; then am_depcomp="$ac_aux_dir/depcomp" AMDEPBACKSLASH='\' am__nodep='_no' fi if test "x$enable_dependency_tracking" != xno; then AMDEP_TRUE= AMDEP_FALSE='#' else AMDEP_TRUE='#' AMDEP_FALSE= fi depcc="$CXX" am_compiler_list= { $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 $as_echo_n "checking dependency style of $depcc... " >&6; } if ${am_cv_CXX_dependencies_compiler_type+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then # We make a subdir and do the tests there. Otherwise we can end up # making bogus files that we don't know about and never remove. For # instance it was reported that on HP-UX the gcc test will end up # making a dummy file named 'D' -- because '-MD' means "put the output # in D". rm -rf conftest.dir mkdir conftest.dir # Copy depcomp to subdir because otherwise we won't find it if we're # using a relative directory. cp "$am_depcomp" conftest.dir cd conftest.dir # We will build objects and dependencies in a subdirectory because # it helps to detect inapplicable dependency modes. For instance # both Tru64's cc and ICC support -MD to output dependencies as a # side effect of compilation, but ICC will put the dependencies in # the current directory while Tru64 will put them in the object # directory. mkdir sub am_cv_CXX_dependencies_compiler_type=none if test "$am_compiler_list" = ""; then am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` fi am__universal=false case " $depcc " in #( *\ -arch\ *\ -arch\ *) am__universal=true ;; esac for depmode in $am_compiler_list; do # Setup a source with many dependencies, because some compilers # like to wrap large dependency lists on column 80 (with \), and # we should not choose a depcomp mode which is confused by this. # # We need to recreate these files for each test, as the compiler may # overwrite some of them when testing with obscure command lines. # This happens at least with the AIX C compiler. : > sub/conftest.c for i in 1 2 3 4 5 6; do echo '#include "conftst'$i'.h"' >> sub/conftest.c # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with # Solaris 10 /bin/sh. echo '/* dummy */' > sub/conftst$i.h done echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf # We check with '-c' and '-o' for the sake of the "dashmstdout" # mode. It turns out that the SunPro C++ compiler does not properly # handle '-M -o', and we need to detect this. Also, some Intel # versions had trouble with output in subdirs. am__obj=sub/conftest.${OBJEXT-o} am__minus_obj="-o $am__obj" case $depmode in gcc) # This depmode causes a compiler race in universal mode. test "$am__universal" = false || continue ;; nosideeffect) # After this tag, mechanisms are not by side-effect, so they'll # only be used when explicitly requested. if test "x$enable_dependency_tracking" = xyes; then continue else break fi ;; msvc7 | msvc7msys | msvisualcpp | msvcmsys) # This compiler won't grok '-c -o', but also, the minuso test has # not run yet. These depmodes are late enough in the game, and # so weak that their functioning should not be impacted. am__obj=conftest.${OBJEXT-o} am__minus_obj= ;; none) break ;; esac if depmode=$depmode \ source=sub/conftest.c object=$am__obj \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ >/dev/null 2>conftest.err && grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep $am__obj sub/conftest.Po > /dev/null 2>&1 && ${MAKE-make} -s -f confmf > /dev/null 2>&1; then # icc doesn't choke on unknown options, it will just issue warnings # or remarks (even with -Werror). So we grep stderr for any message # that says an option was ignored or not supported. # When given -MP, icc 7.0 and 7.1 complain thusly: # icc: Command line warning: ignoring option '-M'; no argument required # The diagnosis changed in icc 8.0: # icc: Command line remark: option '-MP' not supported if (grep 'ignoring option' conftest.err || grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else am_cv_CXX_dependencies_compiler_type=$depmode break fi fi done cd .. rm -rf conftest.dir else am_cv_CXX_dependencies_compiler_type=none fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type if test "x$enable_dependency_tracking" != xno \ && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then am__fastdepCXX_TRUE= am__fastdepCXX_FALSE='#' else am__fastdepCXX_TRUE='#' am__fastdepCXX_FALSE= fi # Compiler characteristics OPENMP_CXXFLAGS= # Check whether --enable-openmp was given. if test "${enable_openmp+set}" = set; then : enableval=$enable_openmp; fi if test "$enable_openmp" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CXX option to support OpenMP" >&5 $as_echo_n "checking for $CXX option to support OpenMP... " >&6; } if ${ac_cv_prog_cxx_openmp+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef _OPENMP choke me #endif #include int main () { return omp_get_num_threads (); } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_prog_cxx_openmp='none needed' else ac_cv_prog_cxx_openmp='unsupported' for ac_option in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp -homp \ -Popenmp --openmp; do ac_save_CXXFLAGS=$CXXFLAGS CXXFLAGS="$CXXFLAGS $ac_option" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef _OPENMP choke me #endif #include int main () { return omp_get_num_threads (); } _ACEOF if ac_fn_cxx_try_link "$LINENO"; then : ac_cv_prog_cxx_openmp=$ac_option fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext CXXFLAGS=$ac_save_CXXFLAGS if test "$ac_cv_prog_cxx_openmp" != unsupported; then break fi done fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_openmp" >&5 $as_echo "$ac_cv_prog_cxx_openmp" >&6; } case $ac_cv_prog_cxx_openmp in #( "none needed" | unsupported) ;; #( *) OPENMP_CXXFLAGS=$ac_cv_prog_cxx_openmp ;; esac fi # Checks of programs # Extract the first word of "wx-config", so it can be a program name with args. set dummy wx-config; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_have_wxconfig+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$have_wxconfig"; then ac_cv_prog_have_wxconfig="$have_wxconfig" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_have_wxconfig="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_have_wxconfig" && ac_cv_prog_have_wxconfig="no" fi fi have_wxconfig=$ac_cv_prog_have_wxconfig if test -n "$have_wxconfig"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_wxconfig" >&5 $as_echo "$have_wxconfig" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test "$have_wxconfig" != "yes"; then as_fn_error $? "wx-config required" "$LINENO" 5 fi DEPS_CPPFLAGS=`wx-config --cppflags` DEPS_CXXFLAGS=`wx-config --cxxflags` DEPS_LIBS=`wx-config --libs std,aui` CPPFLAGS=$DEPS_CPPFLAGS # overwrite for wx header checks CXXFLAGS=$DEPS_CXXFLAGS # Checks for libraries wxrelease=`wx-config --release` { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets 2.8" >&5 $as_echo_n "checking for wxWidgets 2.8... " >&6; } if test "$wxrelease" = "2.8"; then $as_echo "#define WX_28 1" >>confdefs.h { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for wxWidgets 2.9 or later" >&5 $as_echo_n "checking for wxWidgets 2.9 or later... " >&6; } if test `echo "$wxrelease >= 2.9" | bc`; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } as_fn_error $? "wxWidgets 2.8 or later required" "$LINENO" 5 fi fi # Checks for header files { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable assertions" >&5 $as_echo_n "checking whether to enable assertions... " >&6; } # Check whether --enable-assert was given. if test "${enable_assert+set}" = set; then : enableval=$enable_assert; ac_enable_assert=$enableval if test "x$enableval" = xno; then : $as_echo "#define NDEBUG 1" >>confdefs.h elif test "x$enableval" != xyes; then : { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: invalid argument supplied to --enable-assert" >&5 $as_echo "$as_me: WARNING: invalid argument supplied to --enable-assert" >&2;} ac_enable_assert=yes fi else ac_enable_assert=yes fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_enable_assert" >&5 $as_echo "$ac_enable_assert" >&6; } ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 $as_echo_n "checking how to run the C++ preprocessor... " >&6; } if test -z "$CXXCPP"; then if ${ac_cv_prog_CXXCPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CXXCPP needs to be expanded for CXXCPP in "$CXX -E" "/lib/cpp" do ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CXXCPP=$CXXCPP fi CXXCPP=$ac_cv_prog_CXXCPP else ac_cv_prog_CXXCPP=$CXXCPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 $as_echo "$CXXCPP" >&6; } ac_preproc_ok=false for ac_cxx_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_cxx_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=cpp ac_cpp='$CXXCPP $CPPFLAGS' ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_cxx_compiler_gnu ac_fn_cxx_check_header_preproc "$LINENO" "boost/numeric/ublas/matrix.hpp" "ac_cv_header_boost_numeric_ublas_matrix_hpp" if test "x$ac_cv_header_boost_numeric_ublas_matrix_hpp" = xyes; then : else \ as_fn_error $? "required boost header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "boost/numeric/ublas/matrix_sparse.hpp" "ac_cv_header_boost_numeric_ublas_matrix_sparse_hpp" if test "x$ac_cv_header_boost_numeric_ublas_matrix_sparse_hpp" = xyes; then : else \ as_fn_error $? "required boost header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "boost/numeric/ublas/vector.hpp" "ac_cv_header_boost_numeric_ublas_vector_hpp" if test "x$ac_cv_header_boost_numeric_ublas_vector_hpp" = xyes; then : else \ as_fn_error $? "required boost header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "boost/random.hpp" "ac_cv_header_boost_random_hpp" if test "x$ac_cv_header_boost_random_hpp" = xyes; then : else \ as_fn_error $? "required boost header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/aboutdlg.h" "ac_cv_header_wx_aboutdlg_h" if test "x$ac_cv_header_wx_aboutdlg_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/app.h" "ac_cv_header_wx_app_h" if test "x$ac_cv_header_wx_app_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/aui/aui.h" "ac_cv_header_wx_aui_aui_h" if test "x$ac_cv_header_wx_aui_aui_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/bitmap.h" "ac_cv_header_wx_bitmap_h" if test "x$ac_cv_header_wx_bitmap_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/bmpbuttn.h" "ac_cv_header_wx_bmpbuttn_h" if test "x$ac_cv_header_wx_bmpbuttn_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/busyinfo.h" "ac_cv_header_wx_busyinfo_h" if test "x$ac_cv_header_wx_busyinfo_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/button.h" "ac_cv_header_wx_button_h" if test "x$ac_cv_header_wx_button_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/cmdline.h" "ac_cv_header_wx_cmdline_h" if test "x$ac_cv_header_wx_cmdline_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/colour.h" "ac_cv_header_wx_colour_h" if test "x$ac_cv_header_wx_colour_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/config.h" "ac_cv_header_wx_config_h" if test "x$ac_cv_header_wx_config_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/control.h" "ac_cv_header_wx_control_h" if test "x$ac_cv_header_wx_control_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/cshelp.h" "ac_cv_header_wx_cshelp_h" if test "x$ac_cv_header_wx_cshelp_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/datetime.h" "ac_cv_header_wx_datetime_h" if test "x$ac_cv_header_wx_datetime_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/dcbuffer.h" "ac_cv_header_wx_dcbuffer_h" if test "x$ac_cv_header_wx_dcbuffer_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/dcclient.h" "ac_cv_header_wx_dcclient_h" if test "x$ac_cv_header_wx_dcclient_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/dcmemory.h" "ac_cv_header_wx_dcmemory_h" if test "x$ac_cv_header_wx_dcmemory_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/dialog.h" "ac_cv_header_wx_dialog_h" if test "x$ac_cv_header_wx_dialog_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/filedlg.h" "ac_cv_header_wx_filedlg_h" if test "x$ac_cv_header_wx_filedlg_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/filename.h" "ac_cv_header_wx_filename_h" if test "x$ac_cv_header_wx_filename_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/filesys.h" "ac_cv_header_wx_filesys_h" if test "x$ac_cv_header_wx_filesys_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/frame.h" "ac_cv_header_wx_frame_h" if test "x$ac_cv_header_wx_frame_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/fs_arc.h" "ac_cv_header_wx_fs_arc_h" if test "x$ac_cv_header_wx_fs_arc_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/fs_zip.h" "ac_cv_header_wx_fs_zip_h" if test "x$ac_cv_header_wx_fs_zip_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/gbsizer.h" "ac_cv_header_wx_gbsizer_h" if test "x$ac_cv_header_wx_gbsizer_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/html/helpctrl.h" "ac_cv_header_wx_html_helpctrl_h" if test "x$ac_cv_header_wx_html_helpctrl_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/image.h" "ac_cv_header_wx_image_h" if test "x$ac_cv_header_wx_image_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/init.h" "ac_cv_header_wx_init_h" if test "x$ac_cv_header_wx_init_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/msgdlg.h" "ac_cv_header_wx_msgdlg_h" if test "x$ac_cv_header_wx_msgdlg_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/mstream.h" "ac_cv_header_wx_mstream_h" if test "x$ac_cv_header_wx_mstream_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/panel.h" "ac_cv_header_wx_panel_h" if test "x$ac_cv_header_wx_panel_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/scrolwin.h" "ac_cv_header_wx_scrolwin_h" if test "x$ac_cv_header_wx_scrolwin_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/sizer.h" "ac_cv_header_wx_sizer_h" if test "x$ac_cv_header_wx_sizer_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/slider.h" "ac_cv_header_wx_slider_h" if test "x$ac_cv_header_wx_slider_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/spinctrl.h" "ac_cv_header_wx_spinctrl_h" if test "x$ac_cv_header_wx_spinctrl_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/splash.h" "ac_cv_header_wx_splash_h" if test "x$ac_cv_header_wx_splash_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/statbmp.h" "ac_cv_header_wx_statbmp_h" if test "x$ac_cv_header_wx_statbmp_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/stattext.h" "ac_cv_header_wx_stattext_h" if test "x$ac_cv_header_wx_stattext_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/stdpaths.h" "ac_cv_header_wx_stdpaths_h" if test "x$ac_cv_header_wx_stdpaths_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/string.h" "ac_cv_header_wx_string_h" if test "x$ac_cv_header_wx_string_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/textctrl.h" "ac_cv_header_wx_textctrl_h" if test "x$ac_cv_header_wx_textctrl_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/textdlg.h" "ac_cv_header_wx_textdlg_h" if test "x$ac_cv_header_wx_textdlg_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/utils.h" "ac_cv_header_wx_utils_h" if test "x$ac_cv_header_wx_utils_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/valtext.h" "ac_cv_header_wx_valtext_h" if test "x$ac_cv_header_wx_valtext_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/window.h" "ac_cv_header_wx_window_h" if test "x$ac_cv_header_wx_window_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/wx.h" "ac_cv_header_wx_wx_h" if test "x$ac_cv_header_wx_wx_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi ac_fn_cxx_check_header_preproc "$LINENO" "wx/wxprec.h" "ac_cv_header_wx_wxprec_h" if test "x$ac_cv_header_wx_wxprec_h" = xyes; then : else \ as_fn_error $? "required wxWidgets header not found" "$LINENO" 5 fi # Checks for typedefs, structures, and compiler characteristics { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_cxx_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_cxx_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5 $as_echo_n "checking for stdbool.h that conforms to C99... " >&6; } if ${ac_cv_header_stdbool_h+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #ifndef bool "error: bool is not defined" #endif #ifndef false "error: false is not defined" #endif #if false "error: false is not 0" #endif #ifndef true "error: true is not defined" #endif #if true != 1 "error: true is not 1" #endif #ifndef __bool_true_false_are_defined "error: __bool_true_false_are_defined is not defined" #endif struct s { _Bool s: 1; _Bool t; } s; char a[true == 1 ? 1 : -1]; char b[false == 0 ? 1 : -1]; char c[__bool_true_false_are_defined == 1 ? 1 : -1]; char d[(bool) 0.5 == true ? 1 : -1]; /* See body of main program for 'e'. */ char f[(_Bool) 0.0 == false ? 1 : -1]; char g[true]; char h[sizeof (_Bool)]; char i[sizeof s.t]; enum { j = false, k = true, l = false * true, m = true * 256 }; /* The following fails for HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */ _Bool n[m]; char o[sizeof n == m * sizeof n[0] ? 1 : -1]; char p[-1 - (_Bool) 0 < 0 && -1 - (bool) 0 < 0 ? 1 : -1]; /* Catch a bug in an HP-UX C compiler. See http://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html http://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html */ _Bool q = true; _Bool *pq = &q; int main () { bool e = &s; *pq |= q; *pq |= ! q; /* Refer to every declared value, to avoid compiler optimizations. */ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !!j + !k + !!l + !m + !n + !o + !p + !q + !pq); ; return 0; } _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_header_stdbool_h=yes else ac_cv_header_stdbool_h=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5 $as_echo "$ac_cv_header_stdbool_h" >&6; } ac_fn_cxx_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default" if test "x$ac_cv_type__Bool" = xyes; then : cat >>confdefs.h <<_ACEOF #define HAVE__BOOL 1 _ACEOF fi if test $ac_cv_header_stdbool_h = yes; then $as_echo "#define HAVE_STDBOOL_H 1" >>confdefs.h fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for inline" >&5 $as_echo_n "checking for inline... " >&6; } if ${ac_cv_c_inline+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_c_inline=no for ac_kw in inline __inline__ __inline; do cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __cplusplus typedef int foo_t; static $ac_kw foo_t static_foo () {return 0; } $ac_kw foo_t foo () {return 0; } #endif _ACEOF if ac_fn_cxx_try_compile "$LINENO"; then : ac_cv_c_inline=$ac_kw fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext test "$ac_cv_c_inline" != no && break done fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5 $as_echo "$ac_cv_c_inline" >&6; } case $ac_cv_c_inline in inline | yes) ;; *) case $ac_cv_c_inline in no) ac_val=;; *) ac_val=$ac_cv_c_inline;; esac cat >>confdefs.h <<_ACEOF #ifndef __cplusplus #define inline $ac_val #endif _ACEOF ;; esac # Checks for library functions ac_fn_cxx_check_func "$LINENO" "pow" "ac_cv_func_pow" if test "x$ac_cv_func_pow" = xyes; then : else \ as_fn_error $? "required math function not found" "$LINENO" 5 fi ac_fn_cxx_check_func "$LINENO" "sqrt" "ac_cv_func_sqrt" if test "x$ac_cv_func_sqrt" = xyes; then : else \ as_fn_error $? "required math function not found" "$LINENO" 5 fi # Restore original flags CPPFLAGS=$SAVE_CPPFLAGS CXXFLAGS=$SAVE_CXXFLAGS ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= U= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs { $as_echo "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 $as_echo_n "checking that generated files are newer than configure... " >&6; } if test -n "$am_sleep_pid"; then # Hide warnings about reused PIDs. wait $am_sleep_pid 2>/dev/null fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: done" >&5 $as_echo "done" >&6; } if test -n "$EXEEXT"; then am__EXEEXT_TRUE= am__EXEEXT_FALSE='#' else am__EXEEXT_TRUE='#' am__EXEEXT_FALSE= fi if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then as_fn_error $? "conditional \"AMDEP\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by Tintii $as_me 2.8.2, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" config_commands="$ac_config_commands" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Configuration commands: $config_commands Report bugs to . Tintii home page: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ Tintii config.status 2.8.2 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' AWK='$AWK' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # # INIT-COMMANDS # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 $as_echo "$as_me: executing $ac_file commands" >&6;} ;; esac case $ac_file$ac_mode in "depfiles":C) test x"$AMDEP_TRUE" != x"" || { # Autoconf 2.62 quotes --file arguments for eval, but not when files # are listed without --file. Let's play safe and only enable the eval # if we detect the quoting. case $CONFIG_FILES in *\'*) eval set x "$CONFIG_FILES" ;; *) set x $CONFIG_FILES ;; esac shift for mf do # Strip MF so we end up with the name of the file. mf=`echo "$mf" | sed -e 's/:.*$//'` # Check whether this is an Automake generated Makefile or not. # We used to match only the files named 'Makefile.in', but # some people rename them; so instead we look at the file content. # Grep'ing the first line is not enough: some people post-process # each Makefile.in and add a new line on top of each file to say so. # Grep'ing the whole file is not good either: AIX grep has a line # limit of 2048, but all sed's we know have understand at least 4000. if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then dirpart=`$as_dirname -- "$mf" || $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)$' \| \ X"$mf" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$mf" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` else continue fi # Extract the definition of DEPDIR, am__include, and am__quote # from the Makefile without running 'make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` test -z "$DEPDIR" && continue am__include=`sed -n 's/^am__include = //p' < "$mf"` test -z "am__include" && continue am__quote=`sed -n 's/^am__quote = //p' < "$mf"` # Find all dependency output files, they are included files with # $(DEPDIR) in their names. We invoke sed twice because it is the # simplest approach to changing $(DEPDIR) to its actual value in the # expansion. for file in `sed -n " s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g'`; do # Make sure the directory exists. test -f "$dirpart/$file" && continue fdir=`$as_dirname -- "$file" || $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$file" : 'X\(//\)[^/]' \| \ X"$file" : 'X\(//\)$' \| \ X"$file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir=$dirpart/$fdir; as_fn_mkdir_p # echo "creating $dirpart/$file" echo '# dummy' > "$dirpart/$file" done done } ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi tintii-2.8.2/README0000644000175000001440000001466112236200473010627 00000000000000indii.org / Tintii ------------------------------------------------------------------------ Tintii is a utility for selective colour, saturation and hue shift photo adjustments. Its unique ability is to automatically detect the major colours in a photo to allow colour-specific changes. This makes adjustments quick, easy, and more precise than other means. Tintii is available as a standalone app for Windows, Mac, Linux and other Unix-like OS. It is also available as a plugin to Adobe Photoshop, Photoshop Elements and Corel Paint Shop Pro. For further information, tips and documentation, see the website at www.indii.org/tintii. Acknowledgements ------------------------------------------------------------------------ The application icon was designed by Creative Freedom, http://www.creativefreedom.co.uk. The program uses icons from the Gnome 2.18 Icon Theme by AMAZIGH Aneglus, http://art.gnome.org/themes/icon?page=2. They are distributed by the author under the GNU General Public License Version 2.0. You should have received a copy of the GNU General Public License along with this program, in the LICENSE.txt file; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. On Linux, wxWidgets 2.8 back-support was restored courtesy of a patch from Gonzalo Huerta-Canepa, http://gonzalo.huerta.cl. Requirements ------------------------------------------------------------------------ * wxWidgets v2.8 or later * Boost.uBLAS and Boost.Random These are commonly installed with Linux distributions or readily available through package managers. You may need to install both boost and boost-devel packages, and wxGTK and wxGTK-devel, packages in order to compile. Installation ------------------------------------------------------------------------ To compile and install the program use: ./configure --disable-assert CXXFLAGS="-O3 -g3" make make install The given configure options are highly recommended to ensure smooth performance of the user interface. Version history ------------------------------------------------------------------------ v2.8.2 * Fixed crash bug for particular image sizes. v2.8.1 * Retina display support and compatibility updates on Mac OS X. v2.8.0 * Added 16 and 32 bits per channel support to plugin. * Restored online help system in plugin on Mac OS X. * Window size and position now preserved between launches. * Tweaked default settings, particularly hardness. v2.7.0 * Updated colour model to better distinguish less saturated colours. * Updated hardness model for smoother transitions along slider. * Fixed size of image when given on command line under Linux. v2.6.4 * Maintenance release for Adobe Exchange, updating package to latest format. v2.6.3 * Maintenance release on Mac OS X, updating to latest libraries and SDKs. v2.6.2 * Reverted to Carbon libraries for 32-bit plugin builds on Mac OS X, fixing crashes under Photoshop CS4 and earlier. v2.6.1 * Performance improvements under Windows. * Fixed invisible +/- buttons when running under Windows classic theme. * Fixed some flickering and refresh issues in preview image when running under Windows classic theme. * Fixed zoom-fit function. * Fixed gcc 4.6 compile errors under Linux. v2.6.0 * New application icon. * Centred image in preview pane and added textured background. * Changed lightness sliders to apply multiplicative rather than additive adjustments. * Added info bar for help messages. * Separated file types in open and save dialogs. * Sandboxed Mac App Store app. * Fixed crashes in 32-bit Photoshop on Mac. v2.5.3 * Tidied help system titles and toolbar. * Mac OS X 10.7 (Lion) support. * Code signed installers and executables on Windows. * Replaced Scons build system with GNU Autotools on Linux. * Restored wxWidgets 2.8 support on Linux (patch courtesty of Gonzalo Huerta-Canepa, gonzalo.huerta.cl). v2.5.2 * Ported 2.5.0 and 2.5.1 updates from Mac to Windows and Linux. * Added toolbar icon to bring up Windows menu in Photoshop plugin. * Included 64-bit versions of standalone app on both Windows and Mac for first time. v2.5.1 * Fixed crash when opening file of unsupported type. * Changed scroll wheel to pan image rather than zoom, horizontal motion support added. * Removed redundant Preferences menu item on Mac. v2.5.0 * Added File > Open Recent submenu. * Added Window menu, permitting panes to be turned on/off and default layout to be restored. * Removed preprocessing pane from default layout (but accessible through new Window menu). * Recalibrated saturation and lightness sliders for greater sensitivity. * Fixed menu keyboard shortcuts on Mac. * Minor interface tidy on Mac. v2.4.0 * Hue, saturation and lightness sliders added to thumbs pane. * Add/remove one thumb buttons added to thumbs pane. * Hardness slider added to postprocessing pane. * Online help added. * Hue decay and edge sliders removed from postprocessing pane. * Updated look of interface. * Arrangement of panes now saved between sessions. v2.3.0 * 64-bit compatibility on Windows and Mac. * Photoshop CS5 support on Windows and Mac. * New icon (courtesy of Roger Williamson, www.riwdesign.com). * Performance improvements. * Removed support for Mac OXS 10.4 (Tiger). v2.2.3 * Fixed hue edge bug. * Removed use of fast math on Mac, seemed to be causing problems on some platforms. * 64-bit version for Windows. v2.2.2 * Added "click and drag" scrolling to preview image. * Added "thumb tracking" to sliders -- preview image updates live as sliders move. * More performance improvements. * Restored OpenMP support on Windows, adding Microsoft Visual C++ 2008 Redistributable Package to installer. * Reduced flicker problems on Windows. v2.2.1 * Removed OpenMP support on Windows due to DLL dependency. v2.2.0 * Channel mixer pane for greyscale adjustments. * Tweaked interface for space efficiency. * Multi-core support with OpenMP. * Mac support (using wxMac). v2.1.0 * No changes to Linux version. v2.0.1 * Added "All Files (*)" option to save and open dialogs. v2.0.0 * Renamed to "tintii". * New interface. * New "Max pixels" and "Saturation decay" pre-processing options. * New "Saturation decay" and "Hue decay" post-processing options. * Much improved runtime performance. v1.0.1 * Added scrollbar to mixer frame. * Changed "Clusters" and "Passes" on options page of wizard to "Colour groups" and "Quality". * Updated README.txt file requirements and tips. v1.0.0 * First release tintii-2.8.2/missing0000755000175000001440000002370312236200460011337 00000000000000#! /bin/sh # Common stub for a few missing GNU programs while installing. scriptversion=2012-01-06.18; # UTC # Copyright (C) 1996-2012 Free Software Foundation, Inc. # Originally by Fran,cois Pinard , 1996. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, 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 . # As a special exception to the GNU General Public License, if you # distribute this file as part of a program that contains a # configuration script generated by Autoconf, you may include it under # the same distribution terms that you use for the rest of that program. if test $# -eq 0; then echo 1>&2 "Try '$0 --help' for more information" exit 1 fi run=: sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' sed_minuso='s/.* -o \([^ ]*\).*/\1/p' # In the cases where this matters, 'missing' is being run in the # srcdir already. if test -f configure.ac; then configure_ac=configure.ac else configure_ac=configure.in fi msg="missing on your system" case $1 in --run) # Try to run requested program, and just exit if it succeeds. run= shift "$@" && exit 0 # Exit code 63 means version mismatch. This often happens # when the user try to use an ancient version of a tool on # a file that requires a minimum version. In this case we # we should proceed has if the program had been absent, or # if --run hadn't been passed. if test $? = 63; then run=: msg="probably too old" fi ;; -h|--h|--he|--hel|--help) echo "\ $0 [OPTION]... PROGRAM [ARGUMENT]... Handle 'PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an error status if there is no known handling for PROGRAM. Options: -h, --help display this help and exit -v, --version output version information and exit --run try to run the given command, and emulate it if it fails Supported PROGRAM values: aclocal touch file 'aclocal.m4' autoconf touch file 'configure' autoheader touch file 'config.h.in' autom4te touch the output file, or create a stub one automake touch all 'Makefile.in' files bison create 'y.tab.[ch]', if possible, from existing .[ch] flex create 'lex.yy.c', if possible, from existing .c help2man touch the output file lex create 'lex.yy.c', if possible, from existing .c makeinfo touch the output file yacc create 'y.tab.[ch]', if possible, from existing .[ch] Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and 'g' are ignored when checking the name. Send bug reports to ." exit $? ;; -v|--v|--ve|--ver|--vers|--versi|--versio|--version) echo "missing $scriptversion (GNU Automake)" exit $? ;; -*) echo 1>&2 "$0: Unknown '$1' option" echo 1>&2 "Try '$0 --help' for more information" exit 1 ;; esac # normalize program name to check for. program=`echo "$1" | sed ' s/^gnu-//; t s/^gnu//; t s/^g//; t'` # Now exit if we have it, but it failed. Also exit now if we # don't have it and --version was passed (most likely to detect # the program). This is about non-GNU programs, so use $1 not # $program. case $1 in lex*|yacc*) # Not GNU programs, they don't have --version. ;; *) if test -z "$run" && ($1 --version) > /dev/null 2>&1; then # We have it, but it failed. exit 1 elif test "x$2" = "x--version" || test "x$2" = "x--help"; then # Could not run --version or --help. This is probably someone # running '$TOOL --version' or '$TOOL --help' to check whether # $TOOL exists and not knowing $TOOL uses missing. exit 1 fi ;; esac # If it does not exist, or fails to run (possibly an outdated version), # try to emulate it. case $program in aclocal*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified 'acinclude.m4' or '${configure_ac}'. You might want to install the Automake and Perl packages. Grab them from any GNU archive site." touch aclocal.m4 ;; autoconf*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified '${configure_ac}'. You might want to install the Autoconf and GNU m4 packages. Grab them from any GNU archive site." touch configure ;; autoheader*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified 'acconfig.h' or '${configure_ac}'. You might want to install the Autoconf and GNU m4 packages. Grab them from any GNU archive site." files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` test -z "$files" && files="config.h" touch_files= for f in $files; do case $f in *:*) touch_files="$touch_files "`echo "$f" | sed -e 's/^[^:]*://' -e 's/:.*//'`;; *) touch_files="$touch_files $f.in";; esac done touch $touch_files ;; automake*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified 'Makefile.am', 'acinclude.m4' or '${configure_ac}'. You might want to install the Automake and Perl packages. Grab them from any GNU archive site." find . -type f -name Makefile.am -print | sed 's/\.am$/.in/' | while read f; do touch "$f"; done ;; autom4te*) echo 1>&2 "\ WARNING: '$1' is needed, but is $msg. You might have modified some files without having the proper tools for further handling them. You can get '$1' as part of Autoconf from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo "#! /bin/sh" echo "# Created by GNU Automake missing as a replacement of" echo "# $ $@" echo "exit 0" chmod +x $file exit 1 fi ;; bison*|yacc*) echo 1>&2 "\ WARNING: '$1' $msg. You should only need it if you modified a '.y' file. You may need the Bison package in order for those modifications to take effect. You can get Bison from any GNU archive site." rm -f y.tab.c y.tab.h if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.y) SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.c fi SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` if test -f "$SRCFILE"; then cp "$SRCFILE" y.tab.h fi ;; esac fi if test ! -f y.tab.h; then echo >y.tab.h fi if test ! -f y.tab.c; then echo 'main() { return 0; }' >y.tab.c fi ;; lex*|flex*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified a '.l' file. You may need the Flex package in order for those modifications to take effect. You can get Flex from any GNU archive site." rm -f lex.yy.c if test $# -ne 1; then eval LASTARG=\${$#} case $LASTARG in *.l) SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` if test -f "$SRCFILE"; then cp "$SRCFILE" lex.yy.c fi ;; esac fi if test ! -f lex.yy.c; then echo 'main() { return 0; }' >lex.yy.c fi ;; help2man*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified a dependency of a manual page. You may need the Help2man package in order for those modifications to take effect. You can get Help2man from any GNU archive site." file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -f "$file"; then touch $file else test -z "$file" || exec >$file echo ".ab help2man is required to generate this page" exit $? fi ;; makeinfo*) echo 1>&2 "\ WARNING: '$1' is $msg. You should only need it if you modified a '.texi' or '.texinfo' file, or any other file indirectly affecting the aspect of the manual. The spurious call might also be the consequence of using a buggy 'make' (AIX, DU, IRIX). You might want to install the Texinfo package or the GNU make package. Grab either from any GNU archive site." # The file to touch is that specified with -o ... file=`echo "$*" | sed -n "$sed_output"` test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` if test -z "$file"; then # ... or it is the one specified with @setfilename ... infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` file=`sed -n ' /^@setfilename/{ s/.* \([^ ]*\) *$/\1/ p q }' $infile` # ... or it is derived from the source name (dir/f.texi becomes f.info) test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info fi # If the file does not exist, the user really needs makeinfo; # let's fail without touching anything. test -f $file || exit 1 touch $file ;; *) echo 1>&2 "\ WARNING: '$1' is needed, and is $msg. You might have modified some files without having the proper tools for further handling them. Check the 'README' file, it often tells you about the needed prerequisites for installing this package. You may also peek at any GNU archive site, in case some other package would contain this missing '$1' program." exit 1 ;; esac exit 0 # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: tintii-2.8.2/configure.ac0000644000175000001440000000550612236172146012240 00000000000000AC_INIT([Tintii], [2.8.2], [bug-report@indii.org], [tintii], [http://www.indii.org/tintii]) AC_PREREQ([2.59]) AC_LANG([C++]) AM_INIT_AUTOMAKE([1.10 no-define foreign]) #AC_CONFIG_HEADERS([config.h]) # Save flags (need to be modified during configure, restored after) SAVE_CPPFLAGS=$CPPFLAGS SAVE_CXXFLAGS=$CXXFLAGS # Checks for programs. AC_PROG_CXX AC_PROG_INSTALL # Compiler characteristics AC_OPENMP # Checks of programs AC_CHECK_PROG(have_wxconfig, [wx-config], [yes], [no]) if test "$have_wxconfig" != "yes"; then AC_MSG_ERROR([wx-config required]) fi AC_SUBST(DEPS_CPPFLAGS, [`wx-config --cppflags`]) AC_SUBST(DEPS_CXXFLAGS, [`wx-config --cxxflags`]) AC_SUBST(DEPS_LIBS, [`wx-config --libs std,aui`]) CPPFLAGS=$DEPS_CPPFLAGS # overwrite for wx header checks CXXFLAGS=$DEPS_CXXFLAGS # Checks for libraries wxrelease=`wx-config --release` AC_MSG_CHECKING([for wxWidgets 2.8]) if test "$wxrelease" = "2.8"; then AC_DEFINE(WX_28) AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_CHECKING([for wxWidgets 2.9 or later]) if test `echo "$wxrelease >= 2.9" | bc`; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([wxWidgets 2.8 or later required]) fi fi # Checks for header files AC_HEADER_ASSERT m4_foreach_w([header_file], [\ boost/numeric/ublas/matrix.hpp \ boost/numeric/ublas/matrix_sparse.hpp \ boost/numeric/ublas/vector.hpp \ boost/random.hpp \ ], [AC_CHECK_HEADER(header_file, [], \ AC_MSG_ERROR([required boost header not found]), [-])]) m4_foreach_w([header_file], [\ wx/aboutdlg.h \ wx/app.h \ wx/aui/aui.h \ wx/bitmap.h \ wx/bmpbuttn.h \ wx/busyinfo.h \ wx/button.h \ wx/cmdline.h \ wx/colour.h \ wx/config.h \ wx/control.h \ wx/cshelp.h \ wx/datetime.h \ wx/dcbuffer.h \ wx/dcclient.h \ wx/dcmemory.h \ wx/dialog.h \ wx/filedlg.h \ wx/filename.h \ wx/filesys.h \ wx/frame.h \ wx/fs_arc.h \ wx/fs_zip.h \ wx/gbsizer.h \ wx/html/helpctrl.h \ wx/image.h \ wx/init.h \ wx/msgdlg.h \ wx/mstream.h \ wx/panel.h \ wx/scrolwin.h \ wx/sizer.h \ wx/slider.h \ wx/spinctrl.h \ wx/splash.h \ wx/statbmp.h \ wx/stattext.h \ wx/stdpaths.h \ wx/string.h \ wx/textctrl.h \ wx/textdlg.h \ wx/utils.h \ wx/valtext.h \ wx/window.h \ wx/wx.h \ wx/wxprec.h \ ], [AC_CHECK_HEADER(header_file, [], \ AC_MSG_ERROR([required wxWidgets header not found]), [-])]) # Checks for typedefs, structures, and compiler characteristics AC_HEADER_STDBOOL AC_C_INLINE # Checks for library functions m4_foreach_w([func], [pow sqrt], [AC_CHECK_FUNC(func, [], \ AC_MSG_ERROR([required math function not found]))]) # Restore original flags CPPFLAGS=$SAVE_CPPFLAGS CXXFLAGS=$SAVE_CXXFLAGS AC_CONFIG_FILES([Makefile]) AC_OUTPUT

q c #404041", ",q c #A09E9E", "'q c #939792", ")q c #A5A7A5", "!q c #AEADAE", "~q c #BCBABA", "{q c #C4C5C5", "]q c #D3D8D8", "^q c #E3829B", "/q c #DB1A31", "(q c #DE1F32", "_q c #E12235", ":q c #E21E30", "r c #F0A1A4", ",r c #F18693", "'r c #EB1B2E", ")r c #F2242E", "!r c #E81924", "~r c #E41625", "{r c #EC343C", "]r c #F39D9B", "^r c #EDE9E7", "/r c #EF788E", "(r c #F42131", "_r c #F52536", ":r c #F8595D", "s c #EFF3F2", ",s c #EFCBD3", "'s c #ED2940", ")s c #EE2330", "!s c #ED2831", "~s c #E81822", "{s c #F27D79", "]s c #EECAD3", "^s c #E72138", "/s c #E8212B", "(s c #E11620", "_s c #EB6C63", ":s c #EBEEE9", "t c #C8132B", ",t c #C5615B", "'t c #A8B1AD", ")t c #ACA6A0", "!t c #AEA6A0", "~t c #B1ACA5", "{t c #AFADAA", "]t c #ADACAC", "^t c #A7A6A3", "/t c #AFA9A4", "(t c #B2ACA4", "_t c #AFADA8", ":t c #A9A7A4", "u c #A89F99", ",u c #A7A09B", "'u c #A6A39F", ")u c #A69F9A", "!u c #A39D94", "~u c #9B9590", "{u c #95928F", "]u c #9A938D", "^u c #BFBDBC", "/u c #B6B4B4", "(u c #B2B1B1", "_u c #CAC8C7", ":u c #C8C6C6", "v c #BDBEBE", ",v c #989595", "'v c #ADAFAF", ")v c #C5C3C3", "!v c #CECCCD", "~v c #CFCDCD", "{v c #CECCCA", "]v c #D1CFCF", "^v c #C7C5C4", "/v c #6F6666", "(v c #554A49", "_v c #230905", ":v c #200603", "w c #2D2522", ",w c #302723", "'w c #302420", ")w c #2E211B", "!w c #32221B", "~w c #3F291D", "{w c #5E3930", "]w c #6F4339", "^w c #7E4E42", "/w c #7F4739", "(w c #B2857A", "_w c #DACCCB", ":w c #E0D8D9", "x c #6E372E", ",x c #6A372F", "'x c #774B46", ")x c #8E6C69", "!x c #C2A7A1", "~x c #BE938F", "{x c #B3665A", "]x c #B1604B", "^x c #BB735F", "/x c #BF7C66", "(x c #B9725C", "_x c #9B4735", ":x c #A76050", "y c #F16C6B", ",y c #ECEFEB", "'y c #ECE5E3", ")y c #EAB9B8", "!y c #EABEBA", "~y c #E8E5E0", "{y c #E8CDD3", "]y c #E42C4B", "^y c #D91023", "/y c #D81022", "(y c #D70D18", "_y c #E76E69", ":y c #E6D7D9", "z c #A6A19F", ",z c #A9A49E", "'z c #9C938D", ")z c #A19A94", "!z c #9B948E", "~z c #443E3B", "{z c #2A2524", "]z c #302928", "^z c #291F1A", "/z c #957F6E", "(z c #E7D3C9", "_z c #EDDAD2", ":z c #EFE0DB", "A c #E6CFC8", ",A c #553733", "'A c #52332A", ")A c #5F1B19", "!A c #4A0101", "~A c #540302", "{A c #730605", "]A c #B82B33", "^A c #E9747C", "/A c #F2E3E4", "(A c #F69AAB", "_A c #ED2133", ":A c #EE2431", "B c #E11E27", ",B c #E31E29", "'B c #DB1821", ")B c #C66255", "!B c #C1BCB6", "~B c #B7B2AD", "{B c #B7B4B1", "]B c #B5B1AE", "^B c #B7B4B3", "/B c #B8B6B4", "(B c #B6B2AF", "_B c #B2B0AD", ":B c #B1AFAB", "C c #472F20", ",C c #B8947A", "'C c #DEC8BA", ")C c #F3E6E1", "!C c #F0E3DE", "~C c #EEE2DD", "{C c #ECDFDA", "]C c #ECDDD5", "^C c #C9B0A8", "/C c #3E2821", "(C c #382318", "_C c #3F281C", ":C c #6A4F44", "D c #C9B3A7", ",D c #DCC7BC", "'D c #EADBD3", ")D c #EDDCD4", "!D c #E8D5CD", "~D c #E5CFC4", "{D c #C9A898", "]D c #462E25", "^D c #2A1D14", "/D c #2C2017", "(D c #402D1F", "_D c #B49075", ":D c #DDC6B9", "E c #D0CECC", ",E c #D2D2D1", "'E c #D4D2D0", ")E c #C4B6AC", "!E c #D7C2B6", "~E c #EADAD2", "{E c #F4EBE6", "]E c #F1E6E0", "^E c #EFE4DF", "/E c #ECDDD6", "(E c #E8D5CE", "_E c #E4CEC4", ":E c #DBBCAC", "F c #C4BFB7", ",F c #B5AFA6", "'F c #C4BFBE", ")F c #C6C3C0", "!F c #CECFCF", "~F c #D2D2D3", "{F c #CFCDCC", "]F c #C8BDB6", "^F c #D3BDB1", "/F c #EBD9D1", "(F c #F1E4DF", "_F c #F3EBE6", ":F c #EBDCD5", "G c #BCB7B4", ",G c #E7D3CB", "'G c #F2E9E5", ")G c #E5D1C9", "!G c #DFCABF", "~G c #957665", "{G c #2E231E", "]G c #342B25", "^G c #332A23", "/G c #3A2F2B", "(G c #3A2E29", "_G c #81604B", ":G c #D0B39F", "H c #F0E5DF", ",H c #EEE1DD", "'H c #E9D7D1", ")H c #E2CCC4", "!H c #D8BEB3", "~H c #C2A190", "{H c #634C42", "]H c #2B2721", "^H c #352D29", "/H c #352D2A", "(H c #38322D", "_H c #3A312A", ":H c #6E5342", "I c #F2E6E4", ",I c #D3B5A7", "'I c #88685C", ")I c #352C28", "!I c #322A28", "~I c #37312C", "{I c #372F2B", "]I c #3B342F", "^I c #453B35", "/I c #604B3D", "(I c #F8F2EF", "_I c #EFDCD6", ":I c #8A7876", "J c #D4CEC9", ",J c #B3AFAB", "'J c #C6C3C2", ")J c #CBCCCB", "!J c #B4B5B5", "~J c #8F786C", "{J c #DFC5B7", "]J c #F1E2DC", "^J c #E3CCC4", "/J c #CFB0A3", "(J c #6B544B", "_J c #322C28", ":J c #423C38", "K c #F9F0EB", ",K c #F6EDEB", "'K c #EDD9D3", ")K c #D2C5BD", "!K c #C8C5C3", "~K c #A9A8A5", "{K c #867162", "]K c #E2CCBD", "^K c #EEDED6", "/K c #E9D2C8", "(K c #E1C0B1", "_K c #E1C2B4", ":K c #C29585", "L c #BBB8B5", ",L c #333232", "'L c #343334", ")L c #2F2C2C", "!L c #715D4F", "~L c #E4CCBA", "{L c #ECD6CD", "]L c #EFE3DC", "^L c #EEE3DC", "/L c #E9D7D0", "(L c #CCBFB9", "_L c #9E9B9A", ":L c #CBC8C8", "M c #A6A19E", ",M c #928B84", "'M c #918A82", ")M c #928B85", "!M c #A29F9A", "~M c #A39D97", "{M c #A9A8A4", "]M c #918E8A", "^M c #969492", "/M c #A29B94", "(M c #A39E98", "_M c #969390", ":M c #A89889", "N c #5B5656", ",N c #5B5956", "'N c #898584", ")N c #A5A0A0", "!N c #BAB7B9", "~N c #97A78D", "{N c #637A4C", "]N c #8D8E80", "^N c #969A92", "/N c #658E48", "(N c #A6B786", "_N c #E5D3CB", ":N c #EACBC4", "O c #9DA68F", ",O c #8D907D", "'O c #658248", ")O c #6D944C", "!O c #A19F71", "~O c #C1A683", "{O c #BFB69D", "]O c #9A9F90", "^O c #AEADAF", "/O c #C1C1C1", "(O c #7C7C7E", "_O c #7F7C7C", ":O c #878484", "P c #838280", ",P c #8D8B88", "'P c #949292", ")P c #909191", "!P c #989695", "~P c #A09D9C", "{P c #9D9F9F", "]P c #999692", "^P c #958E88", "/P c #9D9DA0", "(P c #989692", "_P c #989392", ":P c #989592", "