From 53986b365cf820d2dd7d7070cfe88b7330fb408d Mon Sep 17 00:00:00 2001 From: Dominik Wenger Date: Sun, 2 Sep 2007 18:16:10 +0000 Subject: rbutil: removed the wx version of rbutil. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@14581 a1c6a512-1295-4272-9138-f99709370657 --- rbutil/Makefile | 78 - rbutil/Makefile.macosx | 218 --- rbutil/archos.ico | Bin 21606 -> 0 bytes rbutil/autodetection.cpp | 274 ---- rbutil/autodetection.h | 90 -- rbutil/bootloaders.cpp | 549 ------- rbutil/bootloaders.h | 51 - rbutil/copying.txt | 370 ----- rbutil/credits.h | 52 - rbutil/h100sums.h | 23 - rbutil/h120sums.h | 23 - rbutil/h300sums.h | 17 - rbutil/icons/Makefile | 39 - rbutil/icons/bin2c.c | 172 --- rbutil/icons/bootloader_btn.png | Bin 3345 -> 0 bytes rbutil/icons/doom_btn.png | Bin 2286 -> 0 bytes rbutil/icons/font_btn.png | Bin 1926 -> 0 bytes rbutil/icons/rbinstall_btn.png | Bin 3026 -> 0 bytes rbutil/icons/rembootloader_btn.png | Bin 3693 -> 0 bytes rbutil/icons/remrb_btn.png | Bin 3634 -> 0 bytes rbutil/icons/talkfile_btn.png | Bin 3776 -> 0 bytes rbutil/icons/themes_btn.png | Bin 2238 -> 0 bytes rbutil/install_3d.xpm | 70 - rbutil/install_dialogs.cpp | 948 ------------ rbutil/install_dialogs.h | 261 ---- rbutil/installlog.cpp | 150 -- rbutil/installlog.h | 61 - rbutil/irivertools.cpp | 604 -------- rbutil/irivertools.h | 66 - rbutil/md5sum.cpp | 298 ---- rbutil/md5sum.h | 51 - rbutil/mksums.pl | 69 - rbutil/rblogo.xpm | 254 ---- rbutil/rbutil-rc.rc | 27 - rbutil/rbutil.cbp | 196 --- rbutil/rbutil.cpp | 783 ---------- rbutil/rbutil.h | 176 --- rbutil/rbutil.ini | 299 ---- rbutil/rbutil.iss | 55 - rbutil/rbutil.r | 2675 --------------------------------- rbutil/rbutilApp.cpp | 288 ---- rbutil/rbutilApp.h | 53 - rbutil/rbutilCtrls.cpp | 628 -------- rbutil/rbutilCtrls.h | 286 ---- rbutil/rbutilFrm.cpp | 1164 -------------- rbutil/rbutilFrm.h | 135 -- rbutil/rbutilFrm_XPM.xpm | 666 -------- rbutil/rbutilqt/irivertools/mksums.pl | 69 + rbutil/talkfile.cpp | 204 --- rbutil/talkfile.h | 101 -- rbutil/wizard.xpm | 689 --------- rbutil/wx_pch.h | 43 - 52 files changed, 69 insertions(+), 13256 deletions(-) delete mode 100644 rbutil/Makefile delete mode 100755 rbutil/Makefile.macosx delete mode 100644 rbutil/archos.ico delete mode 100644 rbutil/autodetection.cpp delete mode 100644 rbutil/autodetection.h delete mode 100755 rbutil/bootloaders.cpp delete mode 100755 rbutil/bootloaders.h delete mode 100644 rbutil/copying.txt delete mode 100644 rbutil/credits.h delete mode 100755 rbutil/h100sums.h delete mode 100755 rbutil/h120sums.h delete mode 100755 rbutil/h300sums.h delete mode 100644 rbutil/icons/Makefile delete mode 100644 rbutil/icons/bin2c.c delete mode 100644 rbutil/icons/bootloader_btn.png delete mode 100644 rbutil/icons/doom_btn.png delete mode 100644 rbutil/icons/font_btn.png delete mode 100644 rbutil/icons/rbinstall_btn.png delete mode 100644 rbutil/icons/rembootloader_btn.png delete mode 100644 rbutil/icons/remrb_btn.png delete mode 100644 rbutil/icons/talkfile_btn.png delete mode 100644 rbutil/icons/themes_btn.png delete mode 100644 rbutil/install_3d.xpm delete mode 100644 rbutil/install_dialogs.cpp delete mode 100644 rbutil/install_dialogs.h delete mode 100644 rbutil/installlog.cpp delete mode 100644 rbutil/installlog.h delete mode 100755 rbutil/irivertools.cpp delete mode 100755 rbutil/irivertools.h delete mode 100755 rbutil/md5sum.cpp delete mode 100755 rbutil/md5sum.h delete mode 100755 rbutil/mksums.pl delete mode 100644 rbutil/rblogo.xpm delete mode 100644 rbutil/rbutil-rc.rc delete mode 100644 rbutil/rbutil.cbp delete mode 100644 rbutil/rbutil.cpp delete mode 100644 rbutil/rbutil.h delete mode 100644 rbutil/rbutil.ini delete mode 100644 rbutil/rbutil.iss delete mode 100755 rbutil/rbutil.r delete mode 100644 rbutil/rbutilApp.cpp delete mode 100644 rbutil/rbutilApp.h delete mode 100644 rbutil/rbutilCtrls.cpp delete mode 100644 rbutil/rbutilCtrls.h delete mode 100644 rbutil/rbutilFrm.cpp delete mode 100644 rbutil/rbutilFrm.h delete mode 100644 rbutil/rbutilFrm_XPM.xpm create mode 100755 rbutil/rbutilqt/irivertools/mksums.pl delete mode 100644 rbutil/talkfile.cpp delete mode 100644 rbutil/talkfile.h delete mode 100644 rbutil/wizard.xpm delete mode 100644 rbutil/wx_pch.h diff --git a/rbutil/Makefile b/rbutil/Makefile deleted file mode 100644 index fe3b5b74a1..0000000000 --- a/rbutil/Makefile +++ /dev/null @@ -1,78 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# - -# Unix-style Makefile for rbutil - -#detect cygwin -ifneq ($(strip $(shell gcc -v 2>&1 | grep "cygwin")),) - __CYGWIN__ := 1 -endif - -CXX=$(shell $(PREFIX)wx-config --version=2.8 --cxx) -INC = `$(PREFIX)wx-config --version=2.8 --cxxflags` -LIBS = `$(PREFIX)wx-config --version=2.8 --libs` -CFLAGS= -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE -OBJS=rbutil.o rbutilApp.o rbutilFrm.o rbutilCtrls.o install_dialogs.o bootloaders.o installlog.o ipodpatcher/ipodpatcher.o sansapatcher/sansapatcher.o irivertools.o md5sum.o autodetection.o talkfile.o - -ifdef __CYGWIN__ -OBJS+=ipodpatcher/ipodio-win32.o sansapatcher/sansaio-win32.o -CFLAGS+= -mno-cygwin -mwindows -else -OBJS+=ipodpatcher/ipodio-posix.o sansapatcher/sansaio-posix.o -endif - - -EXTRAOBJS = $(wildcard icons/*.o) - -SILENT = @ - -# Install with / as root by default -ifndef DESTDIR - DESTDIR="" -endif - -# type "make WIN=1" for a Windows build using the Debian mingw cross-compiler -ifdef WIN - CROSS=i586-mingw32msvc- - WINDRES=i586-mingw32msvc-windres - EXT=.exe - PREFIX=/usr/i586-mingw32msvc/bin/ - OBJS+=rbutil-rc.o -endif - -.PHONY: all -all: icons rbutil$(EXT) - -.cpp.o : - $(SILENT) echo CXX $< - $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $< - -.c.o : - $(SILENT) echo CC $< - $(SILENT) $(CC) $(CFLAGS) $(INC) -c -o $@ $< - -rbutil-rc.o: rbutil-rc.rc - $(WINDRES) -O coff -F pe-i386 -o $@ $< - -rbutil$(EXT): $(OBJS) - $(SILENT) echo CXX $< - $(SILENT) $(CXX) -o $@ $(OBJS) $(EXTRAOBJS) $(LIBS) - -.PHONY: icons -icons: - $(SILENT) $(MAKE) -C icons - -.PHONY: clean -clean: - rm -f rbutil rbutil.exe $(OBJS) *~ - make -C icons clean - -.PHONY: install -install: - install -D rbutil$(EXT) $(DESTDIR)/usr/bin/rbutil$(EXT) diff --git a/rbutil/Makefile.macosx b/rbutil/Makefile.macosx deleted file mode 100755 index 6939280e16..0000000000 --- a/rbutil/Makefile.macosx +++ /dev/null @@ -1,218 +0,0 @@ -# ========================================================================= -# This makefile was generated by -# Bakefile 0.2.1 (http://bakefile.sourceforge.net) -# Do not modify, all changes will be overwritten! -# ========================================================================= - - - - -srcdir = /Users/dave/rockbox/rockbox-devel/rbutil -top_srcdir = /Users/dave/src/wxMac-2.8.0/ -BK_DEPS = /Users/dave/src/wxMac-2.8.0/osx_build/bk-deps -wx_top_builddir = /Users/dave/src/wxMac-2.8.0/osx_build - -prefix = /usr/local -exec_prefix = ${prefix} -INSTALL = /usr/bin/install -c -EXEEXT = -WINDRES = -REZ = /Developer/Tools/Rez -SETFILE = /Developer/Tools/SetFile -NM = nm -LIBS = -lz -lpthread -liconv -LDFLAGS_GUI = -CXX = g++ -CXXFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -Wall -Wundef -Wno-ctor-dtor-privacy -O2 -fno-strict-aliasing -fno-common -CPPFLAGS = -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon -RBUTIL_CFLAGS = $(CXXFLAGS) -DRBUTIL -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -I${wx_top_builddir}/lib/wx/include/mac-ansi-release-static-2.8 -I${top_srcdir}/include -fpascal-strings -I${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon -LDFLAGS = -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386 -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -WX_LIB_FLAVOUR = -TOOLKIT = MAC -TOOLKIT_LOWERCASE = mac -TOOLKIT_VERSION = -TOOLCHAIN_FULLNAME = mac-ansi-release-static-2.8 -EXTRALIBS = -framework QuickTime -framework IOKit -framework Carbon -framework Cocoa -framework System -lz -lpthread -liconv -EXTRALIBS_GUI = -framework WebKit -HOST_SUFFIX = -SAMPLES_RPATH_FLAG = -SAMPLES_RPATH_POSTLINK = - -### Variables: ### - -DESTDIR = -WX_RELEASE = 2.8 -WX_VERSION = $(WX_RELEASE).0 -LIBDIRNAME = $(wx_top_builddir)/lib -RBUTIL_CXXFLAGS = -DRBUTIL -D__WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p) \ - $(__EXCEPTIONS_DEFINE_p) $(__RTTI_DEFINE_p) $(__THREAD_DEFINE_p) \ - -I$(srcdir) $(__DLLFLAG_p) $(CPPFLAGS) $(CXXFLAGS) -RBUTIL_OBJECTS = \ - $(__rbutil_os2_lib_res) \ - rbutil.o rbutilApp.o rbutilFrm.o install_dialogs.o bootloaders.o installlog.o \ - rbutilCtrls.o ipodpatcher/ipodpatcher.o ipodpatcher/ipodio-posix.o \ - sansapatcher/sansapatcher.o sansapatcher/sansaio-posix.o \ - md5sum.o irivertools.o autodetection.o talkfile.o \ - $(__rbutil___win32rc) - -### Conditionally set variables: ### - -#CXXC = $(CXX) -CXXC = $(BK_DEPS) $(CXX) -#PORTNAME = base -PORTNAME = $(TOOLKIT_LOWERCASE)$(TOOLKIT_VERSION) -WXBASEPORT = _carbon -#WXDEBUGFLAG = d -#WXDEBUGFLAG = d -#WXUNICODEFLAG = u -#WXUNIVNAME = univ -EXTRALIBS_FOR_BASE = $(EXTRALIBS) -#EXTRALIBS_FOR_BASE = $(EXTRALIBS) $(EXTRALIBS_GUI) -EXTRALIBS_FOR_GUI = $(EXTRALIBS_GUI) -#EXTRALIBS_FOR_GUI = -__rbutil___mac_setfilecmd = \ - $(SETFILE) -a C rbutil$(EXEEXT) -__rbutil___mac_rezcmd = $(__MACOSX_RESOURCES_p_1) -#__WXUNIV_DEFINE_p = -D__WXUNIVERSAL__ -#__WXUNIV_DEFINE_p_1 = -d __WXUNIVERSAL__ -#__WXUNIV_DEFINE_p_2 = --define __WXUNIVERSAL__ -#__EXCEPTIONS_DEFINE_p = -DwxNO_EXCEPTIONS -#__EXCEPTIONS_DEFINE_p_1 = -d wxNO_EXCEPTIONS -#__EXCEPTIONS_DEFINE_p_2 = --define wxNO_EXCEPTIONS -#__RTTI_DEFINE_p = -DwxNO_RTTI -#__RTTI_DEFINE_p_1 = -d wxNO_RTTI -#__RTTI_DEFINE_p_2 = --define wxNO_RTTI -#__THREAD_DEFINE_p = -DwxNO_THREADS -#__THREAD_DEFINE_p_1 = -d wxNO_THREADS -#__THREAD_DEFINE_p_2 = --define wxNO_THREADS -#__DLLFLAG_p = -DWXUSINGDLL -#__DLLFLAG_p_1 = -d WXUSINGDLL -#__DLLFLAG_p_2 = --define WXUSINGDLL -COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd = $(NM) rbutil$(EXEEXT) | if \ - grep -q pmwin.763 ; then emxbind -ep rbutil$(EXEEXT) ; fi -#__rbutil___os2_emxbindcmd = $(COND_PLATFORM_OS2_1___rbutil___os2_emxbindcmd) -#__RCDEFDIR_p = -i \ -# $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) -#__RCDEFDIR_p_1 = --include-dir \ -# $(LIBDIRNAME)/wx/include/$(TOOLCHAIN_FULLNAME) -#__rbutil_os2_lib_res = \ -# $(top_srcdir)/include/wx/os2/wx.res -__rbutil_bundle___depname = rbutil_bundle -#____rbutil_BUNDLE_TGT_REF_DEP = \ -# rbutil.app/Contents/PkgInfo -____rbutil_BUNDLE_TGT_REF_DEP = \ - rbutil.app/Contents/PkgInfo -COND_MONOLITHIC_0___WXLIB_CORE_p = \ - -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)_core-$(WX_RELEASE)$(HOST_SUFFIX) -__WXLIB_CORE_p = $(COND_MONOLITHIC_0___WXLIB_CORE_p) -COND_MONOLITHIC_0___WXLIB_BASE_p = \ - -lwx_base$(WXBASEPORT)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -__WXLIB_BASE_p = $(COND_MONOLITHIC_0___WXLIB_BASE_p) - -__WXLIB_ADV_p = -lwx_mac_adv$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -__WXLIB_NET_p = -lwx_base_carbon_net-$(WX_RELEASE)$(HOST_SUFFIX) -__WXLIB_HTML_p = -lwx_mac_html-$(WX_RELEASE)$(HOST_SUFFIX) - -#__rbutil___win32rc = rbutil_rc.o -COND_MONOLITHIC_1___WXLIB_MONO_p = \ - -lwx_$(PORTNAME)$(WXUNIVNAME)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -#__WXLIB_MONO_p = $(COND_MONOLITHIC_1___WXLIB_MONO_p) -__LIB_TIFF_p \ - = \ - -lwxtiff$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -__LIB_JPEG_p \ - = \ - -lwxjpeg$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -__LIB_PNG_p \ - = \ - -lwxpng$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -#__LIB_ZLIB_p = \ -# -lwxzlib$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -#__LIB_ODBC_p = \ -# -lwxodbc$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p = \ - -lwxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -#__LIB_REGEX_p = $(COND_WXUSE_REGEX_BUILTIN___LIB_REGEX_p) -__LIB_EXPAT_p = \ - -lwxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX) -COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1 = $(REZ) -d __DARWIN__ -t APPL -d \ - __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_1) $(__EXCEPTIONS_DEFINE_p_1) \ - $(__RTTI_DEFINE_p_1) $(__THREAD_DEFINE_p_1) -i $(srcdir) $(__DLLFLAG_p_1) -i \ - $(srcdir)/../../samples $(__RCDEFDIR_p) -i $(top_srcdir)/include -o \ - rbutil$(EXEEXT) Carbon.r rbutil.r -__MACOSX_RESOURCES_p_1 = $(COND_TOOLKIT_MAC___MACOSX_RESOURCES_p_1) - -### Targets: ### - -all: rbutil$(EXEEXT) $(__rbutil_bundle___depname) data - -install: all - -uninstall: - -install-strip: install - -clean: - rm -rf ./.deps ./.pch - rm -f $(RBUTIL_OBJECTS) - rm -f rbutil$(EXEEXT) - rm -rf rbutil.app - -distclean: clean - rm -f config.cache config.log config.status bk-deps bk-make-pch shared-ld-sh Makefile - -rbutil$(EXEEXT): $(RBUTIL_OBJECTS) $(__rbutil___win32rc) - $(CXX) -o $@ $(RBUTIL_OBJECTS) $(LDFLAGS) -L$(LIBDIRNAME) $(LDFLAGS_GUI) $(SAMPLES_RPATH_FLAG) $(LIBS) $(__WXLIB_CORE_p) $(__WXLIB_BASE_p) $(__WXLIB_MONO_p) $(__LIB_TIFF_p) $(__WXLIB_ADV_p) $(__WXLIB_NET_p) $(__WXLIB_HTML_p) $(__LIB_JPEG_p) $(__LIB_PNG_p) $(EXTRALIBS_FOR_GUI) $(__LIB_ZLIB_p) $(__LIB_ODBC_p) $(__LIB_REGEX_p) $(__LIB_EXPAT_p) $(EXTRALIBS_FOR_BASE) - $(__rbutil___mac_rezcmd) - $(__rbutil___mac_setfilecmd) - $(__rbutil___os2_emxbindcmd) - $(SAMPLES_RPATH_POSTLINK) - -rbutil.app/Contents/PkgInfo: rbutil$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.plist.in $(top_srcdir)/src/mac/carbon/wxmac.icns - mkdir -p rbutil.app/Contents - mkdir -p rbutil.app/Contents/MacOS - mkdir -p rbutil.app/Contents/Resources - - - sed -e "s/IDENTIFIER/`echo $(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`/" \ - -e "s/EXECUTABLE/rbutil/" \ - -e "s/VERSION/$(WX_VERSION)/" \ - $(top_srcdir)/src/mac/carbon/Info.plist.in >rbutil.app/Contents/Info.plist - - - echo -n "APPL????" >rbutil.app/Contents/PkgInfo - - - ln -f rbutil$(EXEEXT) rbutil.app/Contents/MacOS/rbutil - - - cp -f $(top_srcdir)/src/mac/carbon/wxmac.icns rbutil.app/Contents/Resources/wxmac.icns - -rbutil_bundle: $(____rbutil_BUNDLE_TGT_REF_DEP) - -data: - @mkdir -p . - @for f in rbutil.ini; do \ - if test ! -f ./$$f -a ! -d ./$$f ; \ - then x=yep ; \ - else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \ - fi; \ - case "$$x" in ?*) \ - cp -pRf $(srcdir)/$$f . ;; \ - esac; \ - done - -.cpp.o : - $(CXXC) $(RBUTIL_CXXFLAGS) -c -o $@ $< - -.c.o : - $(CC) $(RBUTIL_CFLAGS) -c -o $@ $< - -rbutil_rc.o: $(srcdir)/rbutil.rc - $(WINDRES) -i$< -o$@ --define __WX$(TOOLKIT)__ $(__WXUNIV_DEFINE_p_2) $(__EXCEPTIONS_DEFINE_p_2) $(__RTTI_DEFINE_p_2) $(__THREAD_DEFINE_p_2) --include-dir $(srcdir) $(__DLLFLAG_p_2) --include-dir $(srcdir)/../../samples $(__RCDEFDIR_p_1) --include-dir $(top_srcdir)/include - - -# Include dependency info, if present: --include .deps/*.d - -.PHONY: all install uninstall clean distclean rbutil_bundle data diff --git a/rbutil/archos.ico b/rbutil/archos.ico deleted file mode 100644 index 6c2171337e..0000000000 Binary files a/rbutil/archos.ico and /dev/null differ diff --git a/rbutil/autodetection.cpp b/rbutil/autodetection.cpp deleted file mode 100644 index 85bfc21b11..0000000000 --- a/rbutil/autodetection.cpp +++ /dev/null @@ -1,274 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: autodetection.cpp - * - * Copyright (C) 2008 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "autodetection.h" -#include "bootloaders.h" -/*************************************************** -* General autodetection code -****************************************************/ - -bool ipodpatcherDetect(UsbDeviceInfo* tempdevice) -{ - /* use ipodpatcher for ipod detecting */ - struct ipod_t ipod; - int n = ipod_scan(&ipod); - if(n == 1) /* we found an ipod */ - { - wxString temp(ipod.targetname,wxConvUTF8); - int index = gv->plat_bootloadername.Index(temp); // use the bootloader names.. - tempdevice->device_index = index; - tempdevice->status=DEVICEFOUND; - - /* find mount point if possible */ -#if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code - wxString tmp = resolve_mount_point(wxString(ipod.diskname,wxConvUTF8)+wxT("2")); - if( tmp != wxT("") ) - tempdevice->path = tmp; -#endif - return true; - - } - else if (n > 1) /* to many ipods */ - { - tempdevice->status = TOMANYDEVICES; - return true; - } - else /* no ipod */ - { - return false; - } - -} - -bool sansapatcherDetect(UsbDeviceInfo* tempdevice) -{ - /* scann for sansas */ - struct sansa_t sansa; - int n = sansa_scan(&sansa); - if(n==1) - { - tempdevice->device_index = gv->plat_id.Index(wxT("sansae200")); - tempdevice->status = DEVICEFOUND; - /* find mount point if possible */ -#if !(defined( __WXMSW__ ) || defined( __DARWIN__)) //linux code - wxString tmp = resolve_mount_point(wxString(sansa.diskname,wxConvUTF8)+wxT("1")); - if( tmp != wxT("") ) - tempdevice->path = tmp; -#endif - return true; - } - else if (n > 1) - { - tempdevice->status = TOMANYDEVICES; - return true; - } - else - { - return false; - } -} - - -bool rockboxinfoDetect(wxString filename,UsbDeviceInfo* tempdevice) -{ - wxTextFile rockboxinfo(filename); - rockboxinfo.Open(); - wxString line = rockboxinfo.GetFirstLine(); - wxString targetstring; - if(line.StartsWith(wxT("Target: "), &targetstring)) - { - int index = gv->plat_id.Index(targetstring); - if(index < 0) return false; - - tempdevice->device_index = index; - wxString myPath; - if(filename.EndsWith(wxT(".rockbox" PATH_SEP "rockbox-info.txt"),&myPath)); - tempdevice->path = myPath; - - tempdevice->status = DEVICEFOUND; - - return true; - } - else - { - return false; - } - - -} - - -bool detectDevices(UsbDeviceInfo* tempdevice) -{ - tempdevice->device_index= 0; - tempdevice->path=wxT(""); - tempdevice->status =NODEVICE; - - /* try ipodpatcher */ - if(ipodpatcherDetect(tempdevice)) - { - return true; - } - - /* try sansapatcher */ - if(sansapatcherDetect(tempdevice)) - { - return true; - } - - /*try via files on the devices */ - wxArrayString mountpoints = getPossibleMountPoints(); - - for(unsigned int i=0;i ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: autodetection.h - * - * Copyright (C) 2008 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#ifndef AUTODETECTION_H_INCLUDED -#define AUTODETECTION_H_INCLUDED - - -/************************************** -* General code for USB Device detection -***************************************/ -#include "rbutil.h" - -#define TOMANYDEVICES 2 -#define NODEVICE 1 -#define DEVICEFOUND 0 - -struct UsbDeviceInfo -{ - int device_index; - wxString path; - int status; -}; - - -bool detectDevices(UsbDeviceInfo* tempdevice); - -wxArrayString getPossibleMountPoints(); /* this funktion has to be implemented for every OS */ - - -/******************************** -* Windows header for USB Device detection and information -**************************************/ - -#if defined( __WXMSW__ ) - - -#endif /*__WXMSW__ */ - - -/************************************************************************+ -*Linux header for autodetection -**************************************************************************/ - - -#if !(defined( __WXMSW__ ) || defined( __DARWIN__)) - -wxString resolve_mount_point( const wxString device ); - - -#endif /* Linux Code */ - - - - -/************************************************************************+ -*MAc header for autodetection -**************************************************************************/ - - -#if defined( __DARWIN__) - - - -#endif /* MAc Code */ - - - - - - - - -#endif diff --git a/rbutil/bootloaders.cpp b/rbutil/bootloaders.cpp deleted file mode 100755 index 4ac4828307..0000000000 --- a/rbutil/bootloaders.cpp +++ /dev/null @@ -1,549 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: bootloaders.cpp - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "bootloaders.h" - - - -int verbose =0; -// reserves memory for ipodpatcher -bool initIpodpatcher() -{ - if (ipod_alloc_buffer(§orbuf,BUFFER_SIZE) < 0) return true; - else return false; -} -// uses ipodpatcher for add and rem of bootloader -bool ipodpatcher(int mode,wxString bootloadername) -{ - wxString src,dest,buf; - - struct ipod_t ipod; - - int n = ipod_scan(&ipod); - if (n == 0) - { - ERR_DIALOG(wxT("[ERR] No ipods found."), wxT("Scanning for Ipods")); - return false; - } - if (n > 1) - { - ERR_DIALOG(wxT("[ERR] to many ipods found."), wxT("Scanning for Ipods")); - return false; - } - - // downloading files - if(mode == BOOTLOADER_ADD) - { - src = gv->bootloader_url + wxT("/ipod/") - + bootloadername + wxT(".ipod"); - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; - if ( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); - return false; - } - } - - if (ipod_open(&ipod, 0) < 0) - { - ERR_DIALOG(wxT("[ERR] could not open ipod"), wxT("open Ipod")); - return false; - } - - if (read_partinfo(&ipod,0) < 0) - { - ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable")); - return false; - } - - if (ipod.pinfo[0].start==0) - { - ERR_DIALOG(wxT("[ERR] No partition 0 on disk"), wxT("reading partitiontable")); - int i; - double sectors_per_MB = (1024.0*1024.0)/ipod.sector_size; - - buf.Printf(wxT("[INFO] Part Start Sector End Sector Size (MB) Type\n")); - ERR_DIALOG(buf, wxT("reading partitiontable")); - for ( i = 0; i < 4; i++ ) { - if (ipod.pinfo[i].start != 0) { - buf.Printf(wxT("[INFO] %d %10ld %10ld %10.1f %s (0x%02x)\n"), - i, - ipod.pinfo[i].start, - ipod.pinfo[i].start+ipod.pinfo[i].size-1, - ipod.pinfo[i].size/sectors_per_MB, - get_parttype(ipod.pinfo[i].type), - ipod.pinfo[i].type); - ERR_DIALOG(buf, wxT("reading partitiontable")); - } - } - return false; - } - - read_directory(&ipod); - - if (ipod.nimages <= 0) - { - ERR_DIALOG(wxT("[ERR] Failed to read firmware directory"), wxT("reading directory")); - return false; - } - if (getmodel(&ipod,(ipod.ipod_directory[0].vers>>8)) < 0) - { - buf.Printf(wxT("[ERR] Unknown version number in firmware (%08x)\n"), - ipod.ipod_directory[0].vers ); - ERR_DIALOG(buf, wxT("reading directory")); - return false; - } - - if (ipod.macpod) - { - WARN_DIALOG(wxT("Warning this is a MacPod, Rockbox doesnt work on this. Convert it to WinPod"),wxT("MacPod")); - } - - - if(mode == BOOTLOADER_ADD) - { - if (ipod_reopen_rw(&ipod) < 0) { - ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); - return false; - } - - if (add_bootloader(&ipod, (char*)dest.c_str(), FILETYPE_DOT_IPOD)==0) { - - } else { - ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add")); - return false; - } - } - else if(mode == BOOTLOADER_REM) - { - if (ipod_reopen_rw(&ipod) < 0) { - ERR_DIALOG(wxT("[ERR] Could not open Ipod in RW mode"), wxT("Bootloader add")); - return false; - } - - if (ipod.ipod_directory[0].entryOffset==0) { - ERR_DIALOG(wxT("[ERR] No bootloader detected.\n"), wxT("Bootloader del")); - return false; - } else { - if (delete_bootloader(&ipod)==0) { - - } else { - ERR_DIALOG(wxT("[ERR] --delete-bootloader failed.\n"), wxT("Bootloader del")); - return false; - } - } - } - - ipod_close(&ipod); - return true; -} - -// reserves memory for sansapatcher -bool initSansaPatcher() -{ - if (sansa_alloc_buffer(§orbuf,BUFFER_SIZE) < 0) return true; - else return false; -} - - -// sansainstallation -bool sansapatcher(int mode,wxString bootloadername) -{ - wxString src,dest,buf; - - struct sansa_t sansa; - - int n = sansa_scan(&sansa); - if (n == 0) - { - ERR_DIALOG(wxT("[ERR] No Sansa found."), wxT("Scanning for Sansa")); - return false; - } - if (n > 1) - { - ERR_DIALOG(wxT("[ERR] to many Sansa found."), wxT("Scanning for Sansa")); - return false; - } - - // downloading files - if(mode == BOOTLOADER_ADD) - { - src = gv->bootloader_url + wxT("/sandisk-sansa/e200/") - + bootloadername; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; - if ( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Download")); - return false; - } - } - - if (sansa_open(&sansa, 0) < 0) - { - ERR_DIALOG(wxT("[ERR] could not open sansa"), wxT("open Sansa")); - return false; - } - - if (sansa_read_partinfo(&sansa,0) < 0) - { - ERR_DIALOG(wxT("[ERR] could not read partitiontable"), wxT("reading partitiontable")); - return false; - } - - int i = is_e200(&sansa); - if (i < 0) { - ERR_DIALOG(wxT("[ERR] Disk is not an E200 (%d), aborting.\n"), wxT("Checking Disk")); - return false; - } - - if (sansa.hasoldbootloader) - { - ERR_DIALOG(wxT("[ERR] ************************************************************************\n" - "[ERR] *** OLD ROCKBOX INSTALLATION DETECTED, ABORTING.\n" - "[ERR] *** You must reinstall the original Sansa firmware before running\n" - "[ERR] *** sansapatcher for the first time.\n" - "[ERR] *** See http://www.rockbox.org/twiki/bin/view/Main/SansaE200Install\n" - "[ERR] ************************************************************************\n"),wxT("Checking Disk")); - return false; - } - - if(mode == BOOTLOADER_ADD) - { - if (sansa_reopen_rw(&sansa) < 0) { - ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader add")); - return false; - } - - if (sansa_add_bootloader(&sansa, (char*)dest.c_str(), FILETYPE_MI4)==0) { - - } else { - ERR_DIALOG(wxT("[ERR] failed to add Bootloader"), wxT("Bootloader add")); - } - - } - else if(mode == BOOTLOADER_REM) - { - if (sansa_reopen_rw(&sansa) < 0) { - ERR_DIALOG(wxT("[ERR] Could not open Sansa in RW mode"), wxT("Bootloader Remove")); - } - - if (sansa_delete_bootloader(&sansa)==0) { - - } else { - ERR_DIALOG(wxT("[ERR] failed to remove Bootloader"), wxT("Bootloader remove")); - } - } - - sansa_close(&sansa); - return true; -} - -// gigabeatinstallation -bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir) -{ - wxString path1,path2; - wxString err; - wxString src,dest; - - path1 = deviceDir - + wxT("" PATH_SEP "GBSYSTEM" PATH_SEP "FWIMG" PATH_SEP "FWIMG01.DAT"); - - if(mode == BOOTLOADER_ADD) - { - //Files downloaden - src = gv->bootloader_url + wxT("/gigabeat/") + bootloadername; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; - if( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); - return false; - } - - - if(!wxFileExists(path1)) - { - ERR_DIALOG(wxT("[ERR] Coud not find ")+path1, wxT("Bootloader add")); - return false; - } - path2 = path1; - path2.Append(wxT(".ORIG")); - if(!wxFileExists(path2)) - { - if(!wxRenameFile(path1,path2,false)) - { - ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") - + path2, wxT("Bootloader add")); - return false; - } - } - - - if(!wxCopyFile(dest,path1)) - { - ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ") - + path2, wxT("Bootloader add")); - return false; - } - } - else if(mode == BOOTLOADER_REM) - { - path2 = path1; - path2.Append(wxT(".ORIG")); - if(!wxFileExists(path2)) - { - ERR_DIALOG(wxT("[ERR] Coud not find ") + path1, - wxT("Bootloader del")); - return false; - } - if(!wxRenameFile(path2,path1,true)) - { - ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") - + path2, wxT("Bootloader del")); - return false; - } - } - return true; -} - -// iaudio bootloader install -bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir) -{ - wxString path1,path2; - wxString err; - wxString src,dest; - - path1 = deviceDir + wxT("" PATH_SEP "FIRMWARE" PATH_SEP) - + bootloadername; - - if(mode == BOOTLOADER_ADD) - { - //Files downloaden - src = gv->bootloader_url + wxT("/iaudio/") + bootloadername; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + bootloadername; - if( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); - return false; - } - - // copy file - if(!wxCopyFile(dest,path1)) - { - ERR_DIALOG(wxT("[ERR] Coud not copy ")+dest+wxT(" to ")+path2, - wxT("Bootloader add")); - return false; - } - - return true; // install ready - } - else - return false; //no uninstallation possible -} - -// H10 install -bool h10(int mode,wxString bootloadername,wxString deviceDir) -{ - wxString err,src,dest,path1,path2; - - int pos = bootloadername.Find('/'); - if(pos == wxNOT_FOUND) pos = 0; - wxString firmwarename = bootloadername.SubString(pos,bootloadername.Length()); - //wxString firmDir = gv->curbootloader.SubString(0,pos); - - if(mode == BOOTLOADER_ADD) - { - //Files downloaden - src = gv->bootloader_url + wxT("/iriver/") + bootloadername; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + firmwarename; - if( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install")); - return false; - } - - path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename; - path2 = deviceDir + wxT("SYSTEM" PATH_SEP "Original.mi4"); - - if(!wxFileExists(path1)) //Firmware dosent exists on player - { - path1 = deviceDir + wxT("SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename - if(!wxFileExists(path1)) //Firmware dosent exists on player - { - ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"), - wxT("Bootloader add")); - return false; - } - } - if(!wxFileExists(path2)) //there is already a original firmware - { - if(!wxRenameFile(path1,path2,false)) //rename Firmware to Original - { - ERR_DIALOG(wxT("[ERR] Coud not rename ") + path1 + wxT(" to ") - + path2, wxT("Bootloader add")); - return false; - } - } - - if(!wxCopyFile(dest,path1)) // copy file - { - ERR_DIALOG(wxT("[ERR] Coud not copy ") + dest + wxT(" to ") + path1, - wxT("Bootloader add")); - return false; - } - - return true; //install ready - - } - else if(mode == BOOTLOADER_REM) - { - path1 = deviceDir + wxT("SYSTEM" PATH_SEP) + firmwarename; - path2 = gv->curdestdir + wxT("SYSTEM" PATH_SEP "Original.mi4"); - if(!wxFileExists(path1)) //Firmware dosent exists on player - { - path1 = deviceDir + wxT("" PATH_SEP "SYSTEM" PATH_SEP "H10EMP.mi4"); //attempt other firmwarename - if(!wxFileExists(path1)) //Firmware dosent exists on player - { - ERR_DIALOG(wxT("[ERR] File ") + path1 + wxT(" does not Exist"), - wxT("Bootloader rem")); - return false; - } - } - - if(!wxFileExists(path2)) //Original Firmware dosent exists on player - { - ERR_DIALOG(wxT("[ERR] File ") + path2 + wxT(" does not Exist"), - wxT("Bootloader rem")); - return false; - } - - if(!wxRenameFile(path2,path1,true)) //rename Firmware to Original - { - ERR_DIALOG(wxT("[ERR] Coud not rename ") + path2 + wxT(" to ") - + path1, wxT("Bootloader add")); - return false; - } - - } - // shouldn't get here - return false; -} - -// FWPatcher -bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware) -{ - if(mode == BOOTLOADER_ADD) - { - char md5sum_str[32]; - wxString src,dest,err; - int series,table_entry; - - if (!FileMD5(firmware, md5sum_str)) { - ERR_DIALOG(wxT("Could not open firmware"), wxT("Open Firmware")); - return false; - } - else { - /* Check firmware against md5sums in h120sums and h100sums */ - series = 0; - table_entry = intable(md5sum_str, &h120pairs[0], - sizeof(h120pairs)/sizeof(struct sumpairs)); - if (table_entry >= 0) { - series = 120; - } - else { - table_entry = intable(md5sum_str, &h100pairs[0], - sizeof(h100pairs)/sizeof(struct sumpairs)); - if (table_entry >= 0) { - series = 100; - } - else { - table_entry = - intable(md5sum_str, &h300pairs[0], - sizeof(h300pairs)/sizeof(struct sumpairs)); - if (table_entry >= 0) - series = 300; - } - } - if (series == 0) { - ERR_DIALOG(wxT("Could not detect firmware type"), wxT("Detect Player out of Firmware")); - return false; - } - else - { - //Download bootloader - src = gv->bootloader_url + wxT("/iriver/") - + bootloadername; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) - + bootloadername; - if( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, - wxT("Install")); - return false; - } - - if(!PatchFirmware(firmware,dest,series, table_entry)) // Patch firmware - { - ERR_DIALOG(wxT("Patching Firmware failed"), - wxT("Patching Firmware")); - return false; - } - } - - // Load patched Firmware to player - src = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP "new.hex"); - - if(gv->curplat == wxT("h100")) - dest = deviceDir + wxT("" PATH_SEP "ihp_100.hex"); - else if(gv->curplat == wxT("h120")) - dest = deviceDir + wxT("" PATH_SEP "ihp_120.hex"); - else if(gv->curplat == wxT("h300")) - dest = deviceDir + wxT("" PATH_SEP "H300.hex"); - - if(!wxRenameFile(src,dest)) - { - ERR_DIALOG(wxT("Copying Firmware to Device failed"), - wxT("Copying Firmware")); - return false; - } - else - { - return true; - } - } - - } - else - { - return false; //no uninstall possible - } -} diff --git a/rbutil/bootloaders.h b/rbutil/bootloaders.h deleted file mode 100755 index d5bda126cc..0000000000 --- a/rbutil/bootloaders.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: bootloaders.h - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - - -#ifndef BOOTLOADERS_H_INCLUDED -#define BOOTLOADERS_H_INCLUDED - -#include -#include "irivertools.h" -#include "md5sum.h" - -#include "rbutil.h" -#include "installlog.h" - -extern "C" { - // Ipodpatcher - #include "ipodpatcher/ipodpatcher.h" - // Sansapatcher - #include "sansapatcher/sansapatcher.h" -}; - - -bool initIpodpatcher(); -bool initSansaPatcher(); -bool ipodpatcher(int mode,wxString bootloadername); -bool sansapatcher(int mode,wxString bootloadername); -bool gigabeatf(int mode,wxString bootloadername,wxString deviceDir); -bool iaudiox5(int mode,wxString bootloadername,wxString deviceDir); -bool fwpatcher(int mode,wxString bootloadername,wxString deviceDir,wxString firmware); -bool h10(int mode,wxString bootloadername,wxString deviceDir); - - -#endif // BOOTLOADERS_H_INCLUDED diff --git a/rbutil/copying.txt b/rbutil/copying.txt deleted file mode 100644 index d57cce3cfb..0000000000 --- a/rbutil/copying.txt +++ /dev/null @@ -1,370 +0,0 @@ - - GNU GENERAL PUBLIC LICENSE - - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 675 Mass Ave, Cambridge, MA 02139, USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free - -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you - -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you - -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, - -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software - -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another - -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). - -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If - -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the - -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under - -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include - -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not - -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying - -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent - -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent - -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing - -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding - -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program - -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author - -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN - -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING - -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE - -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - Appendix: 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) 19yy - - 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., 675 Mass Ave, Cambridge, MA 02139, 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) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate - -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/rbutil/credits.h b/rbutil/credits.h deleted file mode 100644 index b1246201d3..0000000000 --- a/rbutil/credits.h +++ /dev/null @@ -1,52 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: credits.h - * - * Copyright (C) 2006 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#ifndef CREDITS_H_INCLUDED -#define CREDITS_H_INCLUDED - -#define RBUTIL_FULLNAME "The Rockbox Utility" -#define RBUTIL_VERSION "Version 0.3.2.6" - -static const wxString rbutil_developers[] = { - wxT("Christi Alice Scarborough"), - wxT("Dave Chapman"), - wxT("Dominik Wenger"), - wxT("Bryan Childs"), - wxT("Dave Hooper"), - wxT("") -}; - -#define RBUTIL_WEBSITE "http://www.rockbox.org/" -#define RBUTIL_COPYRIGHT wxT("© 2005-2007 The Rockbox Team\n" \ - "Released under the GNU General Public License v2.") -#define RBUTIL_DESCRIPTION wxT("Installer and housekeeping utility for " \ - "the Rockbox open source digital audio player firmware.") - - -class AboutDlg: public wxDialog -{ - public: - AboutDlg(rbutilFrm *parent); - ~AboutDlg(); -}; - -#include - -#endif // CREDITS_H_INCLUDED diff --git a/rbutil/h100sums.h b/rbutil/h100sums.h deleted file mode 100755 index ebbdcc28db..0000000000 --- a/rbutil/h100sums.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Checksums of firmwares for ihp_100 */ -/* order: unpatched, patched */ - -/* 1.63eu */ -{"86103cb05658970b43ce1f40f93d53a8", "4938420d83aa6da3764d33e5a008c8d4"}, -/* 1.63k */ -{"70127fa9ee69afab7645297fbb61636d", "044b737ddb74436353e290d3fbcc3333"}, -/* 1.63us */ -{"7a504a450c76a0dda757fdb6b5531b22", "e51883ed89d49f5677b0a976aef7b154"}, -/* 1.65eu */ -{"478dc657b97e77d1b4944ef26c3dcb8e", "528917d9e5b34a3e5bcac8fe1f4bd7a9"}, -/* 1.65k */ -{"97ba82fb8099bb23ca0c78fc119f8cce", "ef24f69a679e5eba2216045cb24d8b15"}, -/* 1.65us */ -{"d3725865e0948cd5f604b00db2ec89aa", "76d83812b9e1856f768ba913eeba44e1"}, -/* 1.66eu */ -{"fc59f742fe383da3e4d17a660c46afb9", "2aa9d16d3e166a7575fc652db8588daa"}, -/* 1.66k */ -{"22d214401994c276ec6878288caa0dba", "a87dbe604ea98d035450a34b6e184a08"}, -/* 1.66us */ -{"0ae247f567aeafcafecf823a50cbf33e", "f7668e8949f1a78e8ecd685db78b6824"}, -/* 1.66jp */ -{"8bfc8ae5805c270597232efeafade5fd", "72613b75c5196f63e99e41b7a88d7241"}, diff --git a/rbutil/h120sums.h b/rbutil/h120sums.h deleted file mode 100755 index 09da891ae1..0000000000 --- a/rbutil/h120sums.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Checksums of firmwares for ihp_120 */ -/* order: unpatched, patched */ - -/* 1.63eu */ -{"14488347a171480c63c94bc7b885225d", "15f09130a1aa02c25f820e8cc68259a4"}, -/* 1.63k */ -{"3401fe8845e569156abfaddf05ca7771", "55e4cb20e36f4da06ad80b31aaaa3054"}, -/* 1.63us */ -{"d9078209105c186cee5246055fdb99c9", "dbdd012a3d821d26f907879cca71e9f4"}, -/* 1.65eu */ -{"c9e71aac4a498f1e2f0e684c2d554ea1", "43454df30c176e55d0df7e3c48e67785"}, -/* 1.65k */ -{"360c0c565266f84e9bca610c596f3207", "d8cb7d9f586186bf9780ee761fc8a677"}, -/* 1.65us */ -{"b9e516d4b8a0265605f46f254897bfb0", "99c5666e990dc782b9daefcb1a087ec0"}, -/* 1.66eu */ -{"a094999b41781f4322a57b9be7fa4534", "e26d2574f39cee0adcdd54fb9f316293"}, -/* 1.66k */ -{"79daba973bb31b60b4b87c2ef497587d", "e76121ba9efe72ecfbb6392eaefe6d96"}, -/* 1.66us */ -{"7fa020a3104c76fbbfcb8313e287dbe2", "12194678a2fdd0814d2e0bb57c8e8e6e"}, -/* 1.66jp */ -{"271d151eb6586929da24b3458ea965fe", "51716393ea0605d225e70a6be29dfdbd"}, diff --git a/rbutil/h300sums.h b/rbutil/h300sums.h deleted file mode 100755 index 1c6581a6d1..0000000000 --- a/rbutil/h300sums.h +++ /dev/null @@ -1,17 +0,0 @@ -/* Checksums of firmwares for ihp_300 */ -/* order: unpatched, patched */ - -/* 1.28eu */ -{"0b2083d37f24899b82d21a14d2b38060", "9cd7e291a66f55335c619d63f3a7634b"}, -/* 1.28k */ -{"c6f854ae3d8f48e8982819a4b5302fb0", "90967247ba3f1bcb257432a4d78553bf"}, -/* 1.28jp */ -{"7fcd7bca6b98a34134e2518a616f4e85", "cfd22c20e473727148f11f83d0028fb3"}, -/* 1.29eu */ -{"27d90fc316709c096979ab24c914ee31", "5982302507d57c2a96e9480c242b5de0"}, -/* 1.29k */ -{"44416d97737fc47cd417a64d44064768", "1303e22ef5b1af866aa4def03d6c5f5a"}, -/* 1.29jp */ -{"1ac242c645572a0a5de99ae2b23453b8", "ce433c404ff7531f5852ce3cb61143ee"}, -/* 1.30eu */ -{"8d2d775b018f0532235d38f5317ae10c", "7fb49041294b3e6aea3894218d6d64cf"}, diff --git a/rbutil/icons/Makefile b/rbutil/icons/Makefile deleted file mode 100644 index 8eb630f427..0000000000 --- a/rbutil/icons/Makefile +++ /dev/null @@ -1,39 +0,0 @@ -# __________ __ ___. -# Open \______ \ ____ ____ | | _\_ |__ _______ ___ -# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / -# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < -# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ -# \/ \/ \/ \/ \/ -# $Id$ -# -CC = gcc -CXX = $(shell $(PREFIX)wx-config --version=2.8 --cxx) -INC = `$(PREFIX)wx-config --version=2.8 --cxxflags` -LIBS = `$(PREFIX)wx-config --version=2.8 --libs` - -CFLAGS = -Wall -Wundef -DRBUTIL -D_LARGEFILE64_SOURCE -ICONS := $(wildcard *.png) -HEADERS := $(subst .png,.h,$(ICONS)) -OBJS := $(subst .png,.o,$(ICONS)) -CXXSOURCES = $(subst .png,.cpp,$(ICONS)) -SILENT = @ -BIN2C = ./bin2c - -all: $(OBJS) - - -bin2c: bin2c.c - $(SILENT) echo CC $< - $(SILENT) $(CC) -o $@ $< - -%.cpp: %.png bin2c - $(SILENT) echo BIN2C $< - $(SILENT) $(BIN2C) $< - -%.o: %.cpp - $(SILENT) echo CXX $< - $(SILENT) $(CXX) $(CFLAGS) $(INC) -c -o $@ $< - -clean: - $(SILENT) echo cleaning icons. - $(SILENT) rm -f bin2c $(OBJS) $(HEADERS) $(CXXSOURCES) diff --git a/rbutil/icons/bin2c.c b/rbutil/icons/bin2c.c deleted file mode 100644 index 99400444ef..0000000000 --- a/rbutil/icons/bin2c.c +++ /dev/null @@ -1,172 +0,0 @@ - // bin2c.c - // - // convert a binary file into a C source vector - // - // put into the public domain by Sandro Sigala - // - // syntax: bin2c [-c] [-z] - // - // -c add the "const" keyword to definition - // -z terminate the array with a zero (useful for embedded C strings) - // - // examples: - // bin2c -c myimage.png myimage_png.cpp - // bin2c -z sometext.txt sometext_txt.cpp - - #include - #include - #include - #include - - #ifndef PATH_MAX - #define PATH_MAX 1024 - #endif - - int useconst = 0; - int zeroterminated = 0; - - int myfgetc(FILE *f) - { - int c = fgetc(f); - if (c == EOF && zeroterminated) { - zeroterminated = 0; - return 0; - } - return c; - } - - - void process(const char *ifname, const char *ofname) - { - FILE *ifile, *ofile; - /* modified */ - int counter=0; - char buf2[PATH_MAX]; - char* cp2; - char* cp3; - if ((cp3 = strrchr(ofname, '/')) != NULL) - ++cp3; - else { - if ((cp3 = strrchr(ofname, '\\')) != NULL) - ++cp3; - else - cp3 = (char*) ofname; - } - - strcpy(buf2, cp3); - cp2 = strrchr(buf2, '.'); - *cp2 = '.'; - cp2++; - *cp2 = 'h'; - cp2++; - *cp2 ='\0'; - - - ifile = fopen(ifname, "rb"); - if (ifile == NULL) { - fprintf(stderr, "cannot open %s for reading\n", ifname); - exit(1); - } - ofile = fopen(ofname, "wb"); - if (ofile == NULL) { - fprintf(stderr, "cannot open %s for writing\n", ofname); - exit(1); - } - char buf[PATH_MAX], *p; - const char *cp; - if ((cp = strrchr(ifname, '/')) != NULL) - ++cp; - else { - if ((cp = strrchr(ifname, '\\')) != NULL) - ++cp; - else - cp = ifname; - } - strcpy(buf, cp); - for (p = buf; *p != '\0'; ++p) - if (!isalnum(*p)) - *p = '_'; - fprintf(ofile,"#include \"%s\" \n\n",buf2); - fprintf(ofile, "%sunsigned char %s[] = {\n", useconst ? "const " : "", buf); - int c, col = 1; - while ((c = myfgetc(ifile)) != EOF) { - counter++; - if (col >= 78 - 6) { - fputc('\n', ofile); - col = 1; - } - fprintf(ofile, "0x%.2x, ", c); - col += 6; - - } - fprintf(ofile, "\n};\n"); - - /* modified */ - fprintf(ofile,"int %s_length = %i; \n",buf,counter); - - - FILE *o2file; - o2file = fopen(buf2, "wb"); - if (o2file == NULL) { - fprintf(stderr, "cannot open %s for writing\n", buf2); - exit(1); - } - - fprintf(o2file, "#ifndef __%s__ \n", buf); - fprintf(o2file, "#define __%s__ \n", buf); - - fprintf(o2file, "extern %sunsigned char %s[]; \n\n", useconst ? "const " : "", buf); - fprintf(o2file, "extern int %s_length; \n\n", buf); - - fprintf(o2file, "#endif \n"); - - fclose(ifile); - fclose(ofile); - fclose(o2file); - } - - void usage(void) - { - fprintf(stderr, "usage: bin2c \n"); - exit(1); - } - - int main(int argc, char **argv) - { - if (argc < 2) { - usage(); - } - int i; - for(i = 1;i < argc ; i++) - { - char buf[PATH_MAX]; - char* cp; - strcpy(buf, argv[i]); - cp = strrchr(buf, '.'); - cp++; - strcpy(cp,"cpp"); - process(argv[i], buf); - } - - - /* - while (argc > 3) { - if (!strcmp(argv[1], "-c")) { - useconst = 1; - --argc; - ++argv; - } else if (!strcmp(argv[1], "-z")) { - zeroterminated = 1; - --argc; - ++argv; - } else { - usage(); - } - } - if (argc != 3) { - usage(); - } - process(argv[1], argv[2]); - */ - return 0; - } diff --git a/rbutil/icons/bootloader_btn.png b/rbutil/icons/bootloader_btn.png deleted file mode 100644 index 3590c9c4b9..0000000000 Binary files a/rbutil/icons/bootloader_btn.png and /dev/null differ diff --git a/rbutil/icons/doom_btn.png b/rbutil/icons/doom_btn.png deleted file mode 100644 index c086024e14..0000000000 Binary files a/rbutil/icons/doom_btn.png and /dev/null differ diff --git a/rbutil/icons/font_btn.png b/rbutil/icons/font_btn.png deleted file mode 100644 index dd47a2912a..0000000000 Binary files a/rbutil/icons/font_btn.png and /dev/null differ diff --git a/rbutil/icons/rbinstall_btn.png b/rbutil/icons/rbinstall_btn.png deleted file mode 100644 index c37ebec263..0000000000 Binary files a/rbutil/icons/rbinstall_btn.png and /dev/null differ diff --git a/rbutil/icons/rembootloader_btn.png b/rbutil/icons/rembootloader_btn.png deleted file mode 100644 index 8abf1da30e..0000000000 Binary files a/rbutil/icons/rembootloader_btn.png and /dev/null differ diff --git a/rbutil/icons/remrb_btn.png b/rbutil/icons/remrb_btn.png deleted file mode 100644 index bd484b96c1..0000000000 Binary files a/rbutil/icons/remrb_btn.png and /dev/null differ diff --git a/rbutil/icons/talkfile_btn.png b/rbutil/icons/talkfile_btn.png deleted file mode 100644 index 64e2763c94..0000000000 Binary files a/rbutil/icons/talkfile_btn.png and /dev/null differ diff --git a/rbutil/icons/themes_btn.png b/rbutil/icons/themes_btn.png deleted file mode 100644 index 264ba79460..0000000000 Binary files a/rbutil/icons/themes_btn.png and /dev/null differ diff --git a/rbutil/install_3d.xpm b/rbutil/install_3d.xpm deleted file mode 100644 index c077e61143..0000000000 --- a/rbutil/install_3d.xpm +++ /dev/null @@ -1,70 +0,0 @@ -/* WxBitmapButton1 XPM */ -static char *install_3d_xpm[]={ -"56 46 20 1", -" c None", -"0 c #BEBABE", -"1 c #BEC3BE", -"2 c #000011", -"3 c #AEAAAE", -"4 c #9E9A9E", -"5 c #010101", -"6 c #79869E", -"7 c #C7BAC7", -"8 c #5155FF", -"9 c #8E8A8E", -"a c #AEAEB6", -"b c #202496", -"c c #B6AEB6", -"d c #CFC7CF", -"e c #9696AE", -"f c #7992B6", -"g c #717986", -"h c #28FF20", -"i c #A69EA6", -" 0", -" 0101010101010101010101010101010101010101010101010101012", -" 1010101010101010101010101010101010101010101010101010102", -" 1001000100010001000100010001000100010001000100010001002", -" 3030410331304103313041033130410331304103313041033130312", -" 0101010100101010100101010010101010010101001010101001002", -" 3030303030303030313030303030303031303030303030303130302", -" 0101030010101301001015555555555555555300101013101001032", -" 3041303140303045503050101010101010010530403030403040302", -" 0103010300130153510350552552525252520563010310131013012", -" 3030374131303530503051288888888888851566373040303130302", -" 0301031303005305155150588888881818850296031013030300132", -" 3030403030453051305555558888883838851266a03030304131302", -" 0373030303151503050301558888880818850566030313730303032", -" 3131303030355030513135b58888888838851566c03040313030412", -" 330333d33303535555035bb58888888818820566330333033373332", -" 30303040303035303055bbb58888888888851546303130303030302", -" 3333333333333555555bbbb58888888888850566333333333333332", -" 30303030373035bbbb5bbb35888888888885126e303030413030302", -" 33333333333335bbbb5bb33588888888888505fg333333333333332", -" 33303330333035bbbb5b33355555555555551566a33033303330332", -" 3333333333333533335333351111110dhh110566333333333333332", -" 3333333333333533335333355252552555252555333333333333332", -" 3333333333333533335335051001001000100100533333333333332", -" 4333433343334533435353350 10 10 10 10 10563343334333432", -" 3333333333333533335335351001001055555500566333333333332", -" 3343434333434545335353450101010105505551566c43433343432", -" 3333333333333533535335350 10 00 10555555566333333333332", -" 4343434343434545435353455555555555555555666343434343432", -" 333333333333353353533335666666666666666fge6333333333332", -" 434343434343454543534355666egf66966669gfgf4343434343432", -" 34333433343335335453356555555552a3a7aaa7343334333433342", -" 4343434343434545435356654000305555555343434343434343432", -" 3434343434343534345566665555555300303534343434343434342", -" 434343434343454343566egc4555505555555553434343434343432", -" 443444344434455555egfga44455555555545555443444344434442", -" 434343434343434666666ce34346555555555555534343434343432", -" 4444444444444446666644444444666666555555564444444444442", -" 4343434343434343i34a43434340434743666666666343434343432", -" 444444444444444444i44444444444444444444444i444444444442", -" 4443444344434443444344434443444344434443444344434443442", -" 4444444444444444444444444444444444444444444444444444442", -" 4344444443444444434444444344444443444444434444444344442", -" 4444444444444444444444444444444444444444444444444444442", -" 4444444444444444444444444444444444444444444444444444442", -"12222222222222222222222222222222222222222222222222222222"}; - diff --git a/rbutil/install_dialogs.cpp b/rbutil/install_dialogs.cpp deleted file mode 100644 index 331a07df4a..0000000000 --- a/rbutil/install_dialogs.cpp +++ /dev/null @@ -1,948 +0,0 @@ - -#include "install_dialogs.h" -#include "wizard.xpm" - - - -//////////////////////////////////////////////// -//// Bootloader Installation -///////////////////////////////////////////////// - -IMPLEMENT_CLASS( bootloaderInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( bootloaderInstallDlg, wxDialog ) - -END_EVENT_TABLE() - -bootloaderInstallDlg::bootloaderInstallDlg( ) -{ - Init(); -} - -bootloaderInstallDlg::bootloaderInstallDlg( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - Init(); - Create(parent, id, caption, pos, size, style); -} - -void bootloaderInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); - - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - m_firmwarepos = new FirmwarePositionCtrl(this,ID_FIRMWARE); - wxBoxSizer3->Add(m_firmwarepos, 0, wxALIGN_LEFT|wxALL, 5); - - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - -} - -//init the local variables -void bootloaderInstallDlg::Init() -{ - -} - -// create the window -bool bootloaderInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - - - -// tranver data from the controls -bool bootloaderInstallDlg::TransferDataFromWindow() -{ - - if( m_devicepos->IsShown()) - { - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - } - - if(m_firmwarepos->IsShown()) - { - gv->curfirmware = m_firmwarepos->getFirmwarePos(); - if(!wxFileExists(gv->curfirmware)) - { - WARN_DIALOG(wxT("The Firmware position is not valid"), - wxT("Select a original Firmware")); - gv->curfirmware = wxT(""); - return false; - } - } - - return true; - -} - -// tranver data to the controls -bool bootloaderInstallDlg::TransferDataToWindow() -{ - if(gv->curplat == wxT("")) - { - WARN_DIALOG(wxT("You have not selected a audio device"), - wxT("Select a Device")); - return false; - } - int index = gv->plat_id.Index(gv->curplat); - - if(!gv->plat_needsbootloader[index]) - { - WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), - wxT("Bootloader")); - return false; - } - - if(gv->plat_bootloadermethod[index] != wxT("ipodpatcher") && gv->plat_bootloadermethod[index] != wxT("sansapatcher")) - { - m_devicepos->Show(true); - }else - { - m_devicepos->Show(false); - } - if(gv->plat_bootloadermethod[index] == wxT("fwpatcher")) - { - m_firmwarepos->Show(true); - }else - { - m_firmwarepos->Show(false); - } - - m_devicepos->setDefault(); - m_firmwarepos->setDefault(); - return true; -} -//////////////////////////////////////////////// -//// Talk file creation -///////////////////////////////////////////////// - - -IMPLEMENT_CLASS( talkInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( talkInstallDlg, wxDialog ) - EVT_BUTTON(ID_BROWSE_ENC_BTN, talkInstallDlg::OnBrowseEncBtn) - EVT_BUTTON(ID_BROWSE_TTS_BTN, talkInstallDlg::OnBrowseTtsBtn) -END_EVENT_TABLE() - -talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator ) -{ - m_talkCreator = talkcreator; - Init(); -} - -talkInstallDlg::talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - m_talkCreator = talkcreator; - Init(); - Create(parent, id, caption, pos, size, style); -} - -void talkInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); - - // Device position - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - // Encoder - wxStaticBox* WxStaticBoxSizer2_StaticBoxObj = new wxStaticBox(this, - wxID_ANY, wxT("Encoder")); - wxStaticBoxSizer* WxStaticBoxSizer2 = - new wxStaticBoxSizer(WxStaticBoxSizer2_StaticBoxObj,wxVERTICAL); - wxBoxSizer3->Add(WxStaticBoxSizer2,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_Enc = new wxComboBox(this,ID_ENC_CBX,wxT("lame"), - wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedEnc(),wxCB_READONLY); - m_Enc->SetToolTip(wxT("Select your Encoder.")); - m_Enc->SetHelpText(wxT("Select your Encoder.")); - WxStaticBoxSizer2->Add(m_Enc,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - wxStaticText* enc_desc = new wxStaticText( this, wxID_STATIC, - wxT("Select the Encoder executable"), wxDefaultPosition, - wxDefaultSize, 0 ); - WxStaticBoxSizer2->Add(enc_desc, 0, wxALIGN_LEFT|wxALL, 5); - - wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); - WxStaticBoxSizer2->Add(horizontalSizer, 0, wxGROW|wxALL, 5); - - m_EncExe = new wxTextCtrl(this,wxID_ANY,gv->pathToEnc); - m_EncExe->SetToolTip(wxT("Type the folder where your Encoder exe is")); - m_EncExe->SetHelpText(wxT("Type the folder where your Encoder exe is")); - horizontalSizer->Add(m_EncExe,0,wxGROW | wxALL,5); - - m_browseEncBtn = new wxButton(this, ID_BROWSE_ENC_BTN, wxT("Browse"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, - wxT("BrowseEncBtn")); - m_browseEncBtn->SetToolTip(wxT("Browse for your Encoder Exe")); - m_browseEncBtn->SetHelpText(wxT("Browse for your Encoder exe")); - horizontalSizer->Add(m_browseEncBtn,0,wxGROW | wxALL,5); - - wxStaticText* enc_desc_opt = new wxStaticText( this, wxID_STATIC, - wxT("Encoder Options"), wxDefaultPosition, - wxDefaultSize, 0 ); - WxStaticBoxSizer2->Add(enc_desc_opt, 0, wxALIGN_LEFT|wxALL, 5); - - m_EncOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getEncOpts(wxT("lame"))); - m_EncOpts->SetToolTip(wxT("Encoder Options")); - m_EncOpts->SetHelpText(wxT("Encoder Options")); - WxStaticBoxSizer2->Add(m_EncOpts, 0, wxALIGN_LEFT|wxALL, 5); - - // TTS - wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(this, - wxID_ANY, wxT("Text to Speach")); - wxStaticBoxSizer* WxStaticBoxSizer3 = - new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxVERTICAL); - wxBoxSizer3->Add(WxStaticBoxSizer3,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_Tts = new wxComboBox(this,ID_TTS_CBX,wxT("espeak"), - wxDefaultPosition,wxDefaultSize,m_talkCreator->getSupportedTTS(),wxCB_READONLY); - m_Tts->SetToolTip(wxT("Select your TTS.")); - m_Tts->SetHelpText(wxT("Select your TTS.")); - WxStaticBoxSizer3->Add(m_Tts,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - wxStaticText* tts_desc = new wxStaticText( this, wxID_STATIC, - wxT("Select the TTS executable"), wxDefaultPosition, - wxDefaultSize, 0 ); - WxStaticBoxSizer3->Add(tts_desc, 0, wxALIGN_LEFT|wxALL, 5); - - wxBoxSizer* horizontalSizer2 = new wxBoxSizer(wxHORIZONTAL); - WxStaticBoxSizer3->Add(horizontalSizer2, 0, wxGROW|wxALL, 5); - - m_TtsExe = new wxTextCtrl(this,wxID_ANY,gv->pathToTts); - m_TtsExe->SetToolTip(wxT("Type the folder where your TTS exe is")); - m_TtsExe->SetHelpText(wxT("Type the folder where your TTS exe is")); - horizontalSizer2->Add(m_TtsExe,0,wxGROW | wxALL,5); - - m_browseTtsBtn = new wxButton(this, ID_BROWSE_TTS_BTN, wxT("Browse"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, - wxT("BrowseEncBtn")); - m_browseTtsBtn->SetToolTip(wxT("Browse for your Encoder Exe")); - m_browseTtsBtn->SetHelpText(wxT("Browse for your Encoder exe")); - horizontalSizer2->Add(m_browseTtsBtn,0,wxGROW | wxALL,5); - - wxStaticText* tts_desc_opt = new wxStaticText( this, wxID_STATIC, - wxT("TTS Options"), wxDefaultPosition, - wxDefaultSize, 0 ); - WxStaticBoxSizer3->Add(tts_desc_opt, 0, wxALIGN_LEFT|wxALL, 5); - - m_TtsOpts = new wxTextCtrl(this,wxID_ANY,m_talkCreator->getTTsOpts(wxT("espeak"))); - m_TtsOpts->SetToolTip(wxT("TTS Options")); - m_TtsOpts->SetHelpText(wxT("TTS Options")); - WxStaticBoxSizer3->Add(m_TtsOpts, 0, wxALIGN_LEFT|wxALL, 5); - - m_OverwriteWave = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Wav")); - m_OverwriteWave->SetToolTip(wxT("Overwrite Wavefiles")); - m_OverwriteWave->SetHelpText(wxT("Overwrite Wavefiles")); - wxBoxSizer3->Add(m_OverwriteWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_OverwriteTalk = new wxCheckBox(this,wxID_ANY,wxT("Overwrite Talk")); - m_OverwriteTalk->SetToolTip(wxT("Overwrite Talkfiles")); - m_OverwriteTalk->SetHelpText(wxT("Overwrite Talkfiles")); - wxBoxSizer3->Add(m_OverwriteTalk,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_RemoveWave = new wxCheckBox(this,wxID_ANY,wxT("Remove Wav")); - m_RemoveWave->SetToolTip(wxT("Remove Wavfiles")); - m_RemoveWave->SetHelpText(wxT("Remove Wavfiles")); - wxBoxSizer3->Add(m_RemoveWave,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_Recursive = new wxCheckBox(this,wxID_ANY,wxT("Recursive")); - m_Recursive->SetToolTip(wxT("Recursive")); - m_Recursive->SetHelpText(wxT("Recursive")); - wxBoxSizer3->Add(m_Recursive,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - m_StripExtensions = new wxCheckBox(this,wxID_ANY,wxT("Strip Extensions")); - m_StripExtensions->SetToolTip(wxT("Strip Extensions")); - m_StripExtensions->SetHelpText(wxT("Strip Extensions")); - wxBoxSizer3->Add(m_StripExtensions,0,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - // controls at the bottom - wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); - topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5); - -} - -//init the local variables -void talkInstallDlg::Init() -{ - -} - -// create the window -bool talkInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - -void talkInstallDlg::OnBrowseEncBtn(wxCommandEvent& event) -{ - const wxString& temp = wxFileSelector( - wxT("Please select the location of your encoder"), wxT(""), - wxT(""),wxT(""),wxT("*.*"),0, this); - - if (!temp.empty()) - { - m_EncExe->SetValue(temp); - } -} - -void talkInstallDlg::OnBrowseTtsBtn(wxCommandEvent& event) -{ - const wxString& temp = wxFileSelector( - wxT("Please select the location of your TTS engine"), wxT(""), - wxT(""),wxT(""),wxT("*.*"),0, this); - - - if (!temp.empty()) - { - m_TtsExe->SetValue(temp); - } -} - -// tranver data from the controls -bool talkInstallDlg::TransferDataFromWindow() -{ - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - m_talkCreator->setDir(gv->curdestdir); - - gv->pathToEnc = m_EncExe->GetValue(); - if(!wxFileExists(gv->pathToEnc)) - { - WARN_DIALOG(wxT("The Encoder exe is not valid"), - wxT("Select an Encoder")); - gv->pathToEnc = wxT(""); - return false; - } - m_talkCreator->setEncexe(gv->pathToEnc); - - gv->pathToTts = m_TtsExe->GetValue(); - if(!wxFileExists(gv->pathToTts)) - { - WARN_DIALOG(wxT("The TTs exe is not valid"), - wxT("Select an TTS engine")); - gv->pathToTts = wxT(""); - return false; - } - m_talkCreator->setTTSexe(gv->pathToTts); - - m_talkCreator->setTTsType(m_Tts->GetValue()); - m_talkCreator->setEncType(m_Enc->GetValue()); - - - m_talkCreator->setOverwriteTalk(m_OverwriteWave->IsChecked()); - m_talkCreator->setOverwriteWav(m_OverwriteTalk->IsChecked()); - m_talkCreator->setRemoveWav(m_RemoveWave->IsChecked()); - m_talkCreator->setRecursive(m_Recursive->IsChecked()); - m_talkCreator->setStripExtensions(m_StripExtensions->IsChecked()); - - m_talkCreator->setEncOpts(m_EncOpts->GetValue()); - m_talkCreator->setTTsOpts(m_TtsOpts->GetValue()); - - return true; -} - -// tranver data to the controls -bool talkInstallDlg::TransferDataToWindow() -{ - m_devicepos->setDefault(); - - m_OverwriteWave->SetValue(true); - m_OverwriteTalk->SetValue(true); - m_RemoveWave->SetValue(true); - m_Recursive->SetValue(true); - m_StripExtensions->SetValue(false); - - - - return true; -} - -//////////////////////////////////////////////// -//// Font Installation -///////////////////////////////////////////////// - - -IMPLEMENT_CLASS( fontInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( fontInstallDlg, wxDialog ) - -END_EVENT_TABLE() - -fontInstallDlg::fontInstallDlg( ) -{ - Init(); -} - -fontInstallDlg::fontInstallDlg( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - Init(); - Create(parent, id, caption, pos, size, style); -} - -void fontInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); - - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - // controls at the bottom - wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); - topSizer->Add(wxBoxSizer7, 0, wxGROW | wxALL, 5); - -} - -//init the local variables -void fontInstallDlg::Init() -{ - -} - -// create the window -bool fontInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - - -// tranver data from the controls -bool fontInstallDlg::TransferDataFromWindow() -{ - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - - return true; -} - -// tranver data to the controls -bool fontInstallDlg::TransferDataToWindow() -{ - m_devicepos->setDefault(); - return true; -} - -//////////////////////////////////////////////// -//// Rockbox DeInstallation -///////////////////////////////////////////////// - -IMPLEMENT_CLASS( rockboxDeInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( rockboxDeInstallDlg, wxDialog ) - -END_EVENT_TABLE() - -rockboxDeInstallDlg::rockboxDeInstallDlg( ) -{ - Init(); -} - -rockboxDeInstallDlg::rockboxDeInstallDlg( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - Init(); - Create(parent, id, caption, pos, size, style); -} - -void rockboxDeInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); - - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - // Full deinstallation ? - wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, - wxT("Rockbox Utility normally uninstalls Rockbox using an uninstall\n" - "file created during installation. This means that when Rockbox is\n" - "uninstalled all your configuration files are preserved. However,\n" - "you can also perform a full uninstall, which will completely\n" - "remove all traces of Rockbox from your system, and can be used\n" - "even if Rockbox was previously installed manually.")); - wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5); - - wxCheckBox* FullCheckBox = new wxCheckBox(this, ID_FULL_CHCKBX, - wxT("Perform a full uninstall")); - wxBoxSizer3->Add(FullCheckBox, 0, wxALL, 5); - - // controls at the bottom - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - -} - -//init the local variables -void rockboxDeInstallDlg::Init() -{ - -} - -// create the window -bool rockboxDeInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - - -// tranver data from the controls -bool rockboxDeInstallDlg::TransferDataFromWindow() -{ - - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - - wxCheckBox* fullchkbx = (wxCheckBox*) FindWindow(ID_FULL_CHCKBX); - gv->curisfull = fullchkbx->IsChecked(); - - return true; -} - -// tranver data to the controls -bool rockboxDeInstallDlg::TransferDataToWindow() -{ - m_devicepos->setDefault(); - return true; -} - -//////////////////////////////////////////////// -//// Themes Installation -///////////////////////////////////////////////// - -IMPLEMENT_CLASS( themesInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( themesInstallDlg, wxDialog ) - -END_EVENT_TABLE() - -themesInstallDlg::themesInstallDlg( ) -{ - -} - -themesInstallDlg::themesInstallDlg( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - Create(parent, id, caption, pos, size, style); -} - -void themesInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* topHoriSizer = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(topHoriSizer, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - topHoriSizer->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* mainVertiSizer = new wxBoxSizer(wxVERTICAL); - topHoriSizer->Add(mainVertiSizer, 0, wxGROW|wxALL, 5); - - wxBoxSizer* wxBoxSizer4 = new wxBoxSizer(wxHORIZONTAL); - mainVertiSizer->Add(wxBoxSizer4, 0, wxGROW|wxALL, 0); - - wxBoxSizer* wxBoxSizer5 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer4->Add(wxBoxSizer5, 0, wxGROW|wxALL, 0); - - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer5->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - m_theme = new ThemeCtrl(this,ID_THEME); - wxBoxSizer5->Add(m_theme, 0, wxALIGN_LEFT|wxALL, 5); - - // controls at the bottom - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - - -} - - -// create the window -bool themesInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - - -// tranver data from the controls -bool themesInstallDlg::TransferDataFromWindow() -{ - - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - - gv->themesToInstall.Clear(); - gv->themesToInstall = m_theme->getThemesToInstall(); - - if(gv->themesToInstall.GetCount() == 0) - { - WARN_DIALOG(wxT("You have not selected a Theme to Install"), wxT("Select a Theme")); - return false; - } - - return true; -} - -// tranver data to the controls -bool themesInstallDlg::TransferDataToWindow() -{ - if(gv->curplat == wxT("")) - { - WARN_DIALOG(wxT("You have not selected a audio device"), - wxT("Select a Device")); - return false; - } - - m_devicepos->setDefault(); - m_theme->setDevice(gv->curplat); - return true; -} -//////////////////////////////////////////////// -//// Rockbox Installation -///////////////////////////////////////////////// - -IMPLEMENT_CLASS( rockboxInstallDlg, wxDialog ) - -BEGIN_EVENT_TABLE( rockboxInstallDlg, wxDialog ) - EVT_RADIOBOX(ID_BUILD_BOX, rockboxInstallDlg::OnBuildBox) -END_EVENT_TABLE() - -rockboxInstallDlg::rockboxInstallDlg( ) -{ -} - -rockboxInstallDlg::rockboxInstallDlg( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - Create(parent, id, caption, pos, size, style); -} - -void rockboxInstallDlg::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* wxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(wxBoxSizer2, 0, wxALIGN_LEFT|wxALL, 5); - - // bitmap - wxBitmap sidebmp(wizard_xpm); - - ImageCtrl* sideimage = new ImageCtrl(this,wxID_ANY); - sideimage->SetBitmap(sidebmp); - wxBoxSizer2->Add(sideimage,0,wxALIGN_LEFT | wxALL,5); - - wxBoxSizer* wxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - wxBoxSizer2->Add(wxBoxSizer3, 0, wxALIGN_LEFT|wxALL, 5); - - m_devicepos = new DevicePositionCtrl(this,ID_DEVICEPOS); - wxBoxSizer3->Add(m_devicepos, 0, wxALIGN_LEFT|wxALL, 5); - - // Build information - wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, - wxT("Please select the Rockbox version you would like " - "to install on your audio\ndevice:")); - wxBoxSizer3->Add(WxStaticText1,0,wxGROW | wxALL,5); - - wxArrayString array; - array.Add(wxT("Rockbox stable version (") + gv->last_release + wxT(")")); - array.Add(wxT("Archived Build")); - array.Add(wxT("Current Build ")); - - wxRadioBox* BuildRadioBox = new wxRadioBox(this, ID_BUILD_BOX, wxT("Version"), - wxDefaultPosition, wxDefaultSize, array, 0, wxRA_SPECIFY_ROWS); - wxBoxSizer3->Add(BuildRadioBox, 0, wxGROW | wxALL, 5); - - wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Details:")); - wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, - wxVERTICAL); - wxStaticText* DetailText = new wxStaticText(this, ID_DETAIL_TXT, wxT("")); - wxBoxSizer3->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); - WxStaticBoxSizer2->Add(DetailText, 1, wxGROW | wxALL, 5); - - wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, - wxT("Rockbox Utility stores copies of Rockbox it has downloaded on the\n" - "local hard disk to save network traffic. If your local copy is\n" - "no longer working, tick this box to download a fresh copy.") ); - wxBoxSizer3->Add(WxStaticText2, 0 , wxALL, 5); - - wxCheckBox* NoCacheCheckBox = new wxCheckBox(this, ID_NOCACHE_CHCKBX, - wxT("Don't use locally cached copies of Rockbox") ); - wxBoxSizer3->Add(NoCacheCheckBox, 0, wxALL, 5); - // controls at the bottom - OkCancelCtrl* okCancel = new OkCancelCtrl(this,wxID_ANY); - topSizer->Add(okCancel, 0, wxALIGN_CENTER_HORIZONTAL|wxALL, 5); - -} - -// create the window -bool rockboxInstallDlg::Create( wxWindow* parent, - wxWindowID id, const wxString& caption, - const wxPoint& pos, const wxSize& size, long style ) -{ - - if (!wxDialog::Create( parent, id, caption, pos, size, style )) - return false; - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - Centre(); - return true; -} - -void rockboxInstallDlg::OnBuildBox(wxCommandEvent& event) -{ - wxString str; - wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); - wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX); - wxStaticText* DetailText = (wxStaticText*)FindWindow(ID_DETAIL_TXT); - - switch(BuildRadioBox->GetSelection() ) - { - case BUILD_RELEASE: - str = _("This is the last released version of Rockbox, and is the\n" - "recommended version to install."); - NoCacheCheckBox->Enable(); - break; - case BUILD_DAILY: - str = _("These are automatically built each day from the current\n" - "development source code. This generally has more features\n" - "than the last release but may be much less stable. Features\n" - "may change regularly."); - NoCacheCheckBox->Enable(); - break; - case BUILD_BLEEDING: - str = _("This is the absolute up to the minute Rockbox built after\n" - "the last change was made.\n\n" - "Note: This option will always download a fresh copy from the\n" - "web server.\n"); - NoCacheCheckBox->Enable(false); - break; - default: - break; - } - - DetailText->SetLabel(str); - - this->GetSizer()->Layout(); - this->GetSizer()->Fit(this); - this->GetSizer()->SetSizeHints(this); - Refresh(); -} - - -// tranver data from the controls -bool rockboxInstallDlg::TransferDataFromWindow() -{ - wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); - wxCheckBox* NoCacheCheckBox = (wxCheckBox*) FindWindow(ID_NOCACHE_CHCKBX); - - gv->curdestdir = m_devicepos->getDevicePos(); - if(!wxDirExists(gv->curdestdir)) - { - WARN_DIALOG(wxT("The Devicepostion is not valid"), - wxT("Select a Deviceposition")); - gv->curdestdir = wxT(""); - return false; - } - - gv->curbuild = BuildRadioBox->GetSelection(); - gv->nocache = (gv->curbuild == BUILD_BLEEDING) ? true : - NoCacheCheckBox->IsChecked(); - - return true; -} - -// tranver data to the controls -bool rockboxInstallDlg::TransferDataToWindow() -{ - m_devicepos->setDefault(); - - if(gv->curplat == wxT("")) - { - WARN_DIALOG(wxT("You have not selected a audio device"), - wxT("Select a Device")); - return false; - } - - wxRadioBox* BuildRadioBox = (wxRadioBox*) FindWindow(ID_BUILD_BOX); - - int index =gv->plat_id.Index(gv->curplat); - - wxCommandEvent updateradiobox(wxEVT_COMMAND_RADIOBOX_SELECTED, - ID_BUILD_BOX); - - if (gv->plat_released[index] ) - { - BuildRadioBox->Enable(BUILD_RELEASE, true); - BuildRadioBox->SetSelection(BUILD_RELEASE); - } else { - BuildRadioBox->Enable(BUILD_RELEASE, false); - BuildRadioBox->SetSelection(BUILD_BLEEDING); - - } - wxPostEvent(this, updateradiobox); - return true; -} diff --git a/rbutil/install_dialogs.h b/rbutil/install_dialogs.h deleted file mode 100644 index 87c557a26f..0000000000 --- a/rbutil/install_dialogs.h +++ /dev/null @@ -1,261 +0,0 @@ -#ifndef INSTALL_DIALOGS_H_INCLUDED -#define INSTALL_DIALOGS_H_INCLUDED - -#include "rbutil.h" -#include "talkfile.h" - -#include "rbutilCtrls.h" -class bootloaderInstallDlg : public wxDialog -{ - DECLARE_CLASS( bootloaderInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICEPOS = 1002, - ID_FIRMWARE = 1003, - }; //End of Enum -public: - bootloaderInstallDlg( ); - bootloaderInstallDlg( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Bootloader Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - // Member initialization - void Init(); - //Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Bootloader Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - // Creates the controls and sizers - void CreateControls(); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - - DevicePositionCtrl* m_devicepos; - FirmwarePositionCtrl* m_firmwarepos; - - -}; - -class talkInstallDlg : public wxDialog -{ - DECLARE_CLASS( talkInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICEPOS = 1002, - ID_BROWSE_ENC_BTN = 1003, - ID_BROWSE_TTS_BTN = 1004, - ID_TTS_CBX = 1005, - ID_ENC_CBX = 1006, - }; //End of Enum -public: - talkInstallDlg(TalkFileCreator* talkcreator); - talkInstallDlg(TalkFileCreator* talkcreator, wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Talk file creation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - /// Member initialization - void Init(); - /// Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Talk file creation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - /// Creates the controls and sizers - void CreateControls(); - - void OnBrowseEncBtn(wxCommandEvent& event); - void OnBrowseTtsBtn(wxCommandEvent& event); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - TalkFileCreator* m_talkCreator; - - DevicePositionCtrl* m_devicepos; - - wxTextCtrl* m_EncExe; - wxButton* m_browseEncBtn; - wxTextCtrl* m_EncOpts; - wxComboBox* m_Enc; - - wxTextCtrl* m_TtsExe; - wxButton* m_browseTtsBtn; - wxTextCtrl* m_TtsOpts; - wxComboBox* m_Tts; - - - wxCheckBox* m_OverwriteWave; - wxCheckBox* m_OverwriteTalk; - wxCheckBox* m_RemoveWave; - wxCheckBox* m_Recursive; - wxCheckBox* m_StripExtensions; - -}; - - -class fontInstallDlg : public wxDialog -{ - DECLARE_CLASS( fontInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICEPOS = 1002, - }; //End of Enum -public: - fontInstallDlg( ); - fontInstallDlg( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Font Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - /// Member initialization - void Init(); - /// Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Font Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - /// Creates the controls and sizers - void CreateControls(); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - DevicePositionCtrl* m_devicepos; -}; - - -class rockboxDeInstallDlg : public wxDialog -{ - DECLARE_CLASS( rockboxDeInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICEPOS = 1002, - ID_FULL_CHCKBX = 1003, - }; //End of Enum -public: - rockboxDeInstallDlg( ); - rockboxDeInstallDlg( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Rockbox Deinstallation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style =wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER ); - /// Member initialization - void Init(); - /// Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Rockbox Deinstallation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style =wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - /// Creates the controls and sizers - void CreateControls(); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - DevicePositionCtrl* m_devicepos; -}; - -class themesInstallDlg : public wxDialog -{ - DECLARE_CLASS( themesInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICE = 1001, - ID_DEVICEPOS = 1002, - ID_THEME = 1006, - }; //End of Enum -public: - themesInstallDlg( ); - themesInstallDlg( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Themes Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - // Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Themes Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - // Creates the controls and sizers - void CreateControls(); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - wxString currentPreview; - DevicePositionCtrl* m_devicepos; - ThemeCtrl* m_theme; - -}; - -class rockboxInstallDlg : public wxDialog -{ - DECLARE_CLASS( rockboxInstallDlg ) - DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICEPOS = 1002, - ID_BUILD_BOX = 1006, - ID_DEVICE_POS_CTRL = 1007, - ID_DETAIL_TXT = 1008, - ID_NOCACHE_CHCKBX =1009, - - }; //End of Enum -public: - rockboxInstallDlg( ); - rockboxInstallDlg( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Rockbox Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - // Creation - bool Create( wxWindow* parent, - wxWindowID id = wxID_ANY, - const wxString& caption = wxT("Rockbox Installation"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE |wxRESIZE_BORDER ); - // Creates the controls and sizers - void CreateControls(); - - void OnBuildBox(wxCommandEvent& event); - - bool TransferDataFromWindow(); - bool TransferDataToWindow(); - -private: - DevicePositionCtrl* m_devicepos; -}; - -#endif // INSTALL_DIALOGS_H_INCLUDED diff --git a/rbutil/installlog.cpp b/rbutil/installlog.cpp deleted file mode 100644 index 7f6fa999f6..0000000000 --- a/rbutil/installlog.cpp +++ /dev/null @@ -1,150 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: installlog.cpp - * - * Copyright (C) 2006 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "installlog.h" -#include "rbutil.h" - -InstallLog::InstallLog(wxString logname, bool CreateLog) -{ - wxString buf; - dirtyflag = true; - - if (! CreateLog && ! wxFileExists(logname) ) return; - - logfile = new wxFileConfig(wxEmptyString, wxEmptyString, logname); - - - if (!logfile) - { - wxLogWarning(_("Failed to create install log file: ") + logname); - return; - } - - logfile->SetPath(wxT("/InstallLog")); - if (logfile->Exists(wxT("Version")) && - logfile->Read(wxT("Version"), 0l) != LOGFILE_VERSION ) - { - wxLogWarning(_("Logfile version mismatch: ") + logname); - delete logfile; - return; - } - - logfile->Write(wxT("Version"), LOGFILE_VERSION); - dirtyflag = false; -} - -InstallLog::~InstallLog() -{ - if (dirtyflag) return; - - delete logfile; -} - -unsigned int InstallLog::WriteFile(wxString filepath, bool isDir) -{ - wxString key, buf; - long installcount = 0; - - if (dirtyflag) return true; - - filepath.Replace(PATH_SEP, wxT("/") ); - - if (filepath.GetChar(0) == '/') - filepath = filepath.Right(filepath.Len() - 1); - - logfile->SetPath(wxT("/FilePaths")); - installcount = logfile->Read(filepath, 0l); - - if (isDir) - { - filepath.Append(wxT("/" DIRECTORY_KLUDGE) ); // Needed for empty dirs - } - - logfile->Write(filepath, ++installcount); - - return false; -} - -unsigned int InstallLog::WriteFile(wxArrayString filepaths) -{ - unsigned long i; - unsigned int finalrc = false; - wxString thisone; - - if (dirtyflag) return true; - - for (i = 0; i < filepaths.GetCount(); i++); - { - if ( WriteFile(filepaths[i]) ) - { - finalrc++; - } - } - - return finalrc; -} - -wxArrayString* InstallLog::GetInstalledFiles() -{ - wxString curdir = wxT(""); - - if (dirtyflag) return NULL; - workingAS.Clear(); - - EnumerateCurDir(wxT("")); - - wxArrayString* out = new wxArrayString(workingAS); - return out; -} - -void InstallLog::EnumerateCurDir(wxString curdir) -{ - bool contflag; - wxString curname, buf, buf2, pathcache; - long dummy; - - buf = wxT("/FilePaths/") + curdir; - pathcache = logfile->GetPath(); - logfile->SetPath(buf); - - contflag = logfile->GetFirstGroup(curname, dummy); - while (contflag) - { - buf = curdir + wxT("/") + curname; - buf2 = buf; buf2.Replace(wxT("/"), PATH_SEP); - workingAS.Add(buf2); - EnumerateCurDir(buf); - contflag = logfile->GetNextGroup(curname, dummy); - } - - contflag = logfile->GetFirstEntry(curname, dummy); - while (contflag) - { - if (curname != wxT(DIRECTORY_KLUDGE) ) - { - buf = curdir + wxT("" PATH_SEP) + curname; - workingAS.Add(buf); - } - contflag = logfile->GetNextEntry(curname, dummy); - } - - logfile->SetPath(pathcache); -} - diff --git a/rbutil/installlog.h b/rbutil/installlog.h deleted file mode 100644 index cb85e08359..0000000000 --- a/rbutil/installlog.h +++ /dev/null @@ -1,61 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: installlog.h - * - * Copyright (C) 2006 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#ifndef INSTALLLOG_H_INCLUDED -#define INSTALLLOG_H_INCLUDED - -#include -#ifdef __BORLANDC__ - #pragma hdrstop -#endif -#ifndef WX_PRECOMP - #include -#endif - -#include -#include - -#define LOGFILE_VERSION 1 -#define DIRECTORY_KLUDGE "_DIRECTORY_MARKER_RECORD_KLUDGE_" -class InstallLog -{ - // Class variables - wxFileConfig* logfile; - - // Methods - public: - InstallLog(wxString logname, bool CreateLog = true); - ~InstallLog(); - unsigned int WriteFile(wxString filepath, bool isDir = false); - unsigned int WriteFile(wxArrayString filepaths); - wxArrayString* GetInstalledFiles(); - - private: - bool dirtyflag; - wxArrayString workingAS; -// long dummy; - - private: - void EnumerateCurDir(wxString curdir); -}; // InstallLog - - -#endif // INSTALLLOG_H_INCLUDED diff --git a/rbutil/irivertools.cpp b/rbutil/irivertools.cpp deleted file mode 100755 index 9b7cd5a4f3..0000000000 --- a/rbutil/irivertools.cpp +++ /dev/null @@ -1,604 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: irivertools.cpp - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "irivertools.h" - - -const unsigned char munge[] = { - 0x7a, 0x36, 0xc4, 0x43, 0x49, 0x6b, 0x35, 0x4e, 0xa3, 0x46, 0x25, 0x84, - 0x4d, 0x73, 0x74, 0x61 -}; - -const unsigned char header_modify[] = "* IHPFIRM-DECODED "; - -const char * const models[] = { "iHP-100", "iHP-120/iHP-140", "H300 series", - NULL }; - -/* aligns with models array; expected min firmware size */ -const unsigned int firmware_minsize[] = { 0x100000, 0x100000, 0x200000 }; -/* aligns with models array; expected max firmware size */ -const unsigned int firmware_maxsize[] = { 0x200000, 0x200000, 0x400000 }; - -const unsigned char header[][16] = { - { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }, - { 0x20, 0x03, 0x08, 0x27, 0x24, 0x00, 0x02, 0x30, 0x19, 0x17, 0x65, 0x73, - 0x85, 0x32, 0x83, 0x22 }, - { 0x20, 0x04, 0x03, 0x27, 0x20, 0x50, 0x01, 0x70, 0x80, 0x30, 0x80, 0x06, - 0x30, 0x19, 0x17, 0x65 } -}; - -/* begin mkboot.c excerpt */ -unsigned char image[0x400000 + 0x220 + 0x400000/0x200]; - -bool mkboot(wxString infile, wxString outfile,wxString bootloader,int origin) -{ - wxString err; - int i; - int len,bllen; - int actual_length, total_length, binary_length, num_chksums; - - memset(image, 0xff, sizeof(image)); - - /* First, read the iriver original firmware into the image */ - wxFile f; - if(!f.Open(infile)) - { - ERR_DIALOG(wxT("Could not open: ") + infile, wxT("mkboot")); - return false; - } - i = f.Read(image,16); - if(i < 16) { - ERR_DIALOG(wxT("reading header failed"), wxT("mkboot")); - return false; - } - - /* This is the length of the binary image without the scrambling - overhead (but including the ESTFBINR header) */ - binary_length = image[4] + (image[5] << 8) + - (image[6] << 16) + (image[7] << 24); - - /* Read the rest of the binary data, but not the checksum block */ - len = binary_length+0x200-16; - i = f.Read(image+16, len); - if(i < len) { - ERR_DIALOG(wxT("reading firmware failed"),wxT("mkboot")); - return false; - } - - f.Close(); - /* Now, read the boot loader into the image */ - if(!f.Open(bootloader)) - { - ERR_DIALOG(wxT("Could not open: ") + bootloader, wxT("mkboot")); - return false; - } - - bllen = f.Length(); - - i = f.Read(image+0x220 + origin, bllen); - if(i < bllen) { - ERR_DIALOG(wxT("reading bootloader failed"), wxT("mkboot")); - return false; - } - - f.Close(); - - if(!f.Open(outfile,wxFile::write)) - { - ERR_DIALOG(wxT("Could not open: ") + outfile, wxT("mkboot")); - return false; - } - - /* Patch the reset vector to start the boot loader */ - image[0x220 + 4] = image[origin + 0x220 + 4]; - image[0x220 + 5] = image[origin + 0x220 + 5]; - image[0x220 + 6] = image[origin + 0x220 + 6]; - image[0x220 + 7] = image[origin + 0x220 + 7]; - - /* This is the actual length of the binary, excluding all headers */ - actual_length = origin + bllen; - - /* Patch the ESTFBINR header */ - image[0x20c] = (actual_length >> 24) & 0xff; - image[0x20d] = (actual_length >> 16) & 0xff; - image[0x20e] = (actual_length >> 8) & 0xff; - image[0x20f] = actual_length & 0xff; - - image[0x21c] = (actual_length >> 24) & 0xff; - image[0x21d] = (actual_length >> 16) & 0xff; - image[0x21e] = (actual_length >> 8) & 0xff; - image[0x21f] = actual_length & 0xff; - - /* This is the length of the binary, including the ESTFBINR header and - rounded up to the nearest 0x200 boundary */ - binary_length = (actual_length + 0x20 + 0x1ff) & 0xfffffe00; - - /* The number of checksums, i.e number of 0x200 byte blocks */ - num_chksums = binary_length / 0x200; - - /* The total file length, including all headers and checksums */ - total_length = binary_length + num_chksums + 0x200; - - /* Patch the scrambler header with the new length info */ - image[0] = total_length & 0xff; - image[1] = (total_length >> 8) & 0xff; - image[2] = (total_length >> 16) & 0xff; - image[3] = (total_length >> 24) & 0xff; - - image[4] = binary_length & 0xff; - image[5] = (binary_length >> 8) & 0xff; - image[6] = (binary_length >> 16) & 0xff; - image[7] = (binary_length >> 24) & 0xff; - - image[8] = num_chksums & 0xff; - image[9] = (num_chksums >> 8) & 0xff; - image[10] = (num_chksums >> 16) & 0xff; - image[11] = (num_chksums >> 24) & 0xff; - - i = f.Write(image,total_length); - if(i < total_length) { - ERR_DIALOG(wxT("writing bootloader failed"), wxT("mkboot")); - return false; - } - - f.Close(); - - return true; -} - -/* end mkboot.c excerpt */ - - -int intable(char *md5, struct sumpairs *table, int len) -{ - int i; - for (i = 0; i < len; i++) { - if (strncmp(md5, table[i].unpatched, 32) == 0) { - return i; - } - } - return -1; -} - - - - -static int testheader( const unsigned char * const data ) -{ - const unsigned char * const d = data+16; - const char * const * m = models; - int index = 0; - while( *m ) - { - if( memcmp( header[ index ], d, 16 ) == 0 ) - return index; - index++; - m++; - }; - return -1; -}; - -static void modifyheader( unsigned char * data ) -{ - const unsigned char * h = header_modify; - int i; - for( i=0; i<512; i++ ) - { - if( *h == '\0' ) - h = header_modify; - *data++ ^= *h++; - }; -}; - -int iriver_decode(wxString infile_name, wxString outfile_name, unsigned int modify, - enum striptype stripmode ) -{ - wxString err; - wxFile infile; - wxFile outfile; - int i = -1; - unsigned char headerdata[512]; - unsigned long dwLength1, dwLength2, dwLength3, fp = 0; - unsigned char blockdata[16+16]; - unsigned char out[16]; - unsigned char newmunge; - signed long lenread; - int s = 0; - unsigned char * pChecksums, * ppChecksums = 0; - unsigned char ck; - - if(!infile.Open(infile_name)) - { - ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode")); - return -1; - } - if(!outfile.Open(outfile_name,wxFile::write)) - { - ERR_DIALOG(wxT("Could not open: ") + outfile_name, - wxT("iriver_decode")); - return -1; - } - lenread = infile.Read( headerdata, 512); - if( lenread != 512 ) - { - ERR_DIALOG(wxT("This doesn't look like a valid encrypted iHP " - "firmware - reason: header length\n"),wxT("iriver_decode")); - - infile.Close(); - outfile.Close(); - return -1; - }; - - i = testheader( headerdata ); - if( i == -1 ) - { - ERR_DIALOG( wxT( "This firmware is for an unknown model, or is not" - " a valid encrypted iHP firmware\n" ),wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - return -1; - }; - fprintf( stderr, "Model %s\n", models[ i ] ); - - dwLength1 = headerdata[0] | (headerdata[1]<<8) | - (headerdata[2]<<16) | (headerdata[3]<<24); - dwLength2 = headerdata[4] | (headerdata[5]<<8) | - (headerdata[6]<<16) | (headerdata[7]<<24); - dwLength3 = headerdata[8] | (headerdata[9]<<8) | - (headerdata[10]<<16) | (headerdata[11]<<24); - - if( dwLength1 < firmware_minsize[ i ] || - dwLength1 > firmware_maxsize[ i ] || - dwLength2 < firmware_minsize[ i ] || - dwLength2 > dwLength1 || - dwLength3 > dwLength1 || - dwLength2>>9 != dwLength3 || - dwLength2+dwLength3+512 != dwLength1 ) - { - ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " - "iHP firmware - reason: file 'length' data\n" ),wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - return -1; - }; - - pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) ); - - if( modify ) - { - modifyheader( headerdata ); - }; - - if( stripmode == STRIP_NONE ) - outfile.Write( headerdata, 512); - - memset( blockdata, 0, 16 ); - - ck = 0; - while( ( fp < dwLength2 ) && - ( lenread = infile.Read( blockdata+16, 16) == 16) ) - { - fp += 16; - - for( i=0; i<16; ++i ) - { - newmunge = blockdata[16+i] ^ munge[i]; - out[i] = newmunge ^ blockdata[i]; - blockdata[i] = newmunge; - ck += out[i]; - } - - if( fp > ESTF_SIZE || stripmode != STRIP_HEADER_CHECKSUM_ESTF ) - { - outfile.Write( out+4, 12); - outfile.Write( out, 4); - } - else - { - if( ESTF_SIZE - fp < 16 ) - { - memcpy( out+4, blockdata+16, 12 ); - memcpy( out, blockdata+28, 4 ); - outfile.Write( blockdata+16+ESTF_SIZE-fp, ESTF_SIZE-fp); - } - } - - - if( s == 496 ) - { - s = 0; - memset( blockdata, 0, 16 ); - *ppChecksums++ = ck; - ck = 0; - } - else - s+=16; - }; - - if( fp != dwLength2 ) - { - ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " - "iHP firmware - reason: 'length2' mismatch\n" ),wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - return -1; - }; - - fp = 0; - ppChecksums = pChecksums; - while( ( fp < dwLength3 ) && - ( lenread = infile.Read( blockdata, 32 ) ) > 0 ) - { - fp += lenread; - if( stripmode == STRIP_NONE ) - outfile.Write( blockdata, lenread ); - if( memcmp( ppChecksums, blockdata, lenread ) != 0 ) - { - ERR_DIALOG( wxT( "This doesn't look like a valid encrypted " - "iHP firmware - reason: Checksum mismatch!" ),wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - return -1; - }; - ppChecksums += lenread; - }; - - if( fp != dwLength3 ) - { - ERR_DIALOG(wxT( "This doesn't look like a valid encrypted " - "iHP firmware - reason: 'length3' mismatch\n" ),wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - return -1; - }; - - - fprintf( stderr, "File decoded correctly and all checksums matched!\n" ); - switch( stripmode ) - { - default: - case STRIP_NONE: - fprintf(stderr, "Output file contains all headers and " - "checksums\n"); - break; - case STRIP_HEADER_CHECKSUM: - fprintf( stderr, "NB: output file contains only ESTFBINR header" - " and decoded firmware code\n" ); - break; - case STRIP_HEADER_CHECKSUM_ESTF: - fprintf( stderr, "NB: output file contains only raw decoded " - "firmware code\n" ); - break; - }; - - infile.Close(); - outfile.Close(); - return 0; - -}; - -int iriver_encode(wxString infile_name, wxString outfile_name, unsigned int modify ) -{ - wxString err; - wxFile infile; - wxFile outfile; - int i = -1; - unsigned char headerdata[512]; - unsigned long dwLength1, dwLength2, dwLength3, fp = 0; - unsigned char blockdata[16+16]; - unsigned char out[16]; - unsigned char newmunge; - signed long lenread; - int s = 0; - unsigned char * pChecksums, * ppChecksums; - unsigned char ck; - - if(!infile.Open(infile_name,wxFile::read)) - { - ERR_DIALOG(wxT("Could not open: ") + infile_name, wxT("iriver_decode")); - return -1; - } - if(!outfile.Open(outfile_name,wxFile::write)) - { - ERR_DIALOG(wxT("Could not open: ") + outfile_name, - wxT("iriver_decode")); - return -1; - } - - lenread = infile.Read( headerdata, 512 ); - if( lenread != 512 ) - { - ERR_DIALOG(wxT("This doesn't look like a valid decoded " - "iHP firmware - reason: header length\n"), wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - }; - - if( modify ) - { - modifyheader( headerdata ); /* reversible */ - }; - - i = testheader( headerdata ); - if( i == -1 ) - { - ERR_DIALOG(wxT("This firmware is for an unknown model, or is not" - " a valid decoded iHP firmware\n"), wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - }; - fprintf( stderr, "Model %s\n", models[ i ] ); - - dwLength1 = headerdata[0] | (headerdata[1]<<8) | - (headerdata[2]<<16) | (headerdata[3]<<24); - dwLength2 = headerdata[4] | (headerdata[5]<<8) | - (headerdata[6]<<16) | (headerdata[7]<<24); - dwLength3 = headerdata[8] | (headerdata[9]<<8) | - (headerdata[10]<<16) | (headerdata[11]<<24); - - if( dwLength1 < firmware_minsize[i] || - dwLength1 > firmware_maxsize[i] || - dwLength2 < firmware_minsize[i] || - dwLength2 > dwLength1 || - dwLength3 > dwLength1 || - dwLength2+dwLength3+512 != dwLength1 ) - { - ERR_DIALOG(wxT("This doesn't look like a valid decoded iHP" - " firmware - reason: file 'length' data\n"), wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - }; - - pChecksums = ppChecksums = (unsigned char *)( malloc( dwLength3 ) ); - - outfile.Write( headerdata, 512); - - memset( blockdata, 0, 16 ); - ck = 0; - while( ( fp < dwLength2 ) && - ( lenread = infile.Read( blockdata+16, 16) ) == 16 ) - { - fp += 16; - for( i=0; i<16; ++i ) - { - newmunge = blockdata[16+((12+i)&0xf)] ^ blockdata[i]; - out[i] = newmunge ^ munge[i]; - ck += blockdata[16+i]; - blockdata[i] = newmunge; - }; - outfile.Write( out, 16); - - if( s == 496 ) - { - s = 0; - memset( blockdata, 0, 16 ); - *ppChecksums++ = ck; - ck = 0; - } - else - s+=16; - }; - - if( fp != dwLength2 ) - { - ERR_DIALOG(wxT("This doesn't look like a valid decoded " - "iHP firmware - reason: 'length1' mismatch\n"), wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - }; - - /* write out remainder w/out applying descrambler */ - fp = 0; - lenread = dwLength3; - ppChecksums = pChecksums; - while( ( fp < dwLength3) && - ( lenread = outfile.Write( ppChecksums, lenread) ) > 0 ) - { - fp += lenread; - ppChecksums += lenread; - lenread = dwLength3 - fp; - }; - - if( fp != dwLength3 ) - { - ERR_DIALOG(wxT("This doesn't look like a valid decoded " - "iHP firmware - reason: 'length2' mismatch\n"), wxT("iriver_decode")); - infile.Close(); - outfile.Close(); - }; - - fprintf( stderr, "File encoded successfully and checksum table built!\n" ); - - infile.Close(); - outfile.Close(); - return 0; - -}; - -bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry) -{ - wxString name1, name2, name3; - - char md5sum_str[32]; - struct sumpairs *sums; - int origin; - - /* get pointer to the correct bootloader.bin */ - switch(series) { - case 100: - sums = &h100pairs[0]; - origin = 0x1f0000; - break; - case 120: - sums = &h120pairs[0]; - origin = 0x1f0000; - break; - case 300: - sums = &h300pairs[0]; - origin = 0x3f0000; - break; - } - - name1 = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP "firmware.bin"), - /* descrambled file */ - name2 = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP "new.bin"); - /* patched file */ - name3 = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP "new.hex"); - if (iriver_decode(firmware, name1, FALSE, STRIP_NONE) == -1) { - ERR_DIALOG(wxT("Error in descramble"), wxT("Descramble Firmware")); - wxRemoveFile(name1); - wxRemoveFile(name2); - wxRemoveFile(name3); - return false; - } - if (!mkboot(name1, name2, bootloader, origin)) { - ERR_DIALOG(wxT("Error in patching"),wxT("Patching Firmware")); - wxRemoveFile(name1); - wxRemoveFile(name2); - wxRemoveFile(name3); - return false; - } - if (iriver_encode(name2, name3, FALSE) == -1) { - ERR_DIALOG(wxT("Error in scramble"),wxT("Scramble Firmware")); - wxRemoveFile(name1); - wxRemoveFile(name2); - wxRemoveFile(name3); - return false; - } - /* now md5sum it */ - if (!FileMD5(name3, md5sum_str)) { - ERR_DIALOG(wxT("Error in checksumming"),wxT("Checksumming Firmware")); - wxRemoveFile(name1); - wxRemoveFile(name2); - wxRemoveFile(name3); - return false; - } - if (strncmp(sums[table_entry].patched, md5sum_str, 32) == 0) { - /* delete temp files */ - wxRemoveFile(name1); - wxRemoveFile(name2); - } - - return true; -} - diff --git a/rbutil/irivertools.h b/rbutil/irivertools.h deleted file mode 100755 index d646cf1d6c..0000000000 --- a/rbutil/irivertools.h +++ /dev/null @@ -1,66 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: irivertools.h - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#ifndef IRIVERTOOLS_H_INCLUDED -#define IRIVERTOOLS_H_INCLUDED - -#include "rbutil.h" -#include "installlog.h" -#include "md5sum.h" - -#define ESTF_SIZE 32 - -struct sumpairs { - char *unpatched; - char *patched; -}; - -/* precalculated checksums for H110/H115 */ -static struct sumpairs h100pairs[] = { -#include "h100sums.h" -}; - -/* precalculated checksums for H120/H140 */ -static struct sumpairs h120pairs[] = { -#include "h120sums.h" -}; - -/* precalculated checksums for H320/H340 */ -static struct sumpairs h300pairs[] = { -#include "h300sums.h" -}; - - -enum striptype -{ - STRIP_NONE, - STRIP_HEADER_CHECKSUM, - STRIP_HEADER_CHECKSUM_ESTF -}; - -/* protos for iriver.c */ - -int intable(char *md5, struct sumpairs *table, int len); - -bool PatchFirmware(wxString firmware,wxString bootloader,int series, int table_entry); - - -#endif // IRIVERTOOLS_H_INCLUDED diff --git a/rbutil/md5sum.cpp b/rbutil/md5sum.cpp deleted file mode 100755 index e1c23c9867..0000000000 --- a/rbutil/md5sum.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: md5sum.cpp - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -/* - * RFC 1321 compliant MD5 implementation - * - * Copyright (C) 2001-2003 Christophe Devine - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - - -#include "md5sum.h" - - -#define GET_UINT32(n,b,i) \ -{ \ - (n) = ( (uint32) (b)[(i) ] ) \ - | ( (uint32) (b)[(i) + 1] << 8 ) \ - | ( (uint32) (b)[(i) + 2] << 16 ) \ - | ( (uint32) (b)[(i) + 3] << 24 ); \ -} - -#define PUT_UINT32(n,b,i) \ -{ \ - (b)[(i) ] = (uint8) ( (n) ); \ - (b)[(i) + 1] = (uint8) ( (n) >> 8 ); \ - (b)[(i) + 2] = (uint8) ( (n) >> 16 ); \ - (b)[(i) + 3] = (uint8) ( (n) >> 24 ); \ -} - -void md5_starts( md5_context *ctx ) -{ - ctx->total[0] = 0; - ctx->total[1] = 0; - - ctx->state[0] = 0x67452301; - ctx->state[1] = 0xEFCDAB89; - ctx->state[2] = 0x98BADCFE; - ctx->state[3] = 0x10325476; -} - -void md5_process( md5_context *ctx, uint8 data[64] ) -{ - uint32 X[16], A, B, C, D; - - GET_UINT32( X[0], data, 0 ); - GET_UINT32( X[1], data, 4 ); - GET_UINT32( X[2], data, 8 ); - GET_UINT32( X[3], data, 12 ); - GET_UINT32( X[4], data, 16 ); - GET_UINT32( X[5], data, 20 ); - GET_UINT32( X[6], data, 24 ); - GET_UINT32( X[7], data, 28 ); - GET_UINT32( X[8], data, 32 ); - GET_UINT32( X[9], data, 36 ); - GET_UINT32( X[10], data, 40 ); - GET_UINT32( X[11], data, 44 ); - GET_UINT32( X[12], data, 48 ); - GET_UINT32( X[13], data, 52 ); - GET_UINT32( X[14], data, 56 ); - GET_UINT32( X[15], data, 60 ); - -#define S(x,n) ((x << n) | ((x & 0xFFFFFFFF) >> (32 - n))) - -#define P(a,b,c,d,k,s,t) \ -{ \ - a += F(b,c,d) + X[k] + t; a = S(a,s) + b; \ -} - - A = ctx->state[0]; - B = ctx->state[1]; - C = ctx->state[2]; - D = ctx->state[3]; - -#define F(x,y,z) (z ^ (x & (y ^ z))) - - P( A, B, C, D, 0, 7, 0xD76AA478 ); - P( D, A, B, C, 1, 12, 0xE8C7B756 ); - P( C, D, A, B, 2, 17, 0x242070DB ); - P( B, C, D, A, 3, 22, 0xC1BDCEEE ); - P( A, B, C, D, 4, 7, 0xF57C0FAF ); - P( D, A, B, C, 5, 12, 0x4787C62A ); - P( C, D, A, B, 6, 17, 0xA8304613 ); - P( B, C, D, A, 7, 22, 0xFD469501 ); - P( A, B, C, D, 8, 7, 0x698098D8 ); - P( D, A, B, C, 9, 12, 0x8B44F7AF ); - P( C, D, A, B, 10, 17, 0xFFFF5BB1 ); - P( B, C, D, A, 11, 22, 0x895CD7BE ); - P( A, B, C, D, 12, 7, 0x6B901122 ); - P( D, A, B, C, 13, 12, 0xFD987193 ); - P( C, D, A, B, 14, 17, 0xA679438E ); - P( B, C, D, A, 15, 22, 0x49B40821 ); - -#undef F - -#define F(x,y,z) (y ^ (z & (x ^ y))) - - P( A, B, C, D, 1, 5, 0xF61E2562 ); - P( D, A, B, C, 6, 9, 0xC040B340 ); - P( C, D, A, B, 11, 14, 0x265E5A51 ); - P( B, C, D, A, 0, 20, 0xE9B6C7AA ); - P( A, B, C, D, 5, 5, 0xD62F105D ); - P( D, A, B, C, 10, 9, 0x02441453 ); - P( C, D, A, B, 15, 14, 0xD8A1E681 ); - P( B, C, D, A, 4, 20, 0xE7D3FBC8 ); - P( A, B, C, D, 9, 5, 0x21E1CDE6 ); - P( D, A, B, C, 14, 9, 0xC33707D6 ); - P( C, D, A, B, 3, 14, 0xF4D50D87 ); - P( B, C, D, A, 8, 20, 0x455A14ED ); - P( A, B, C, D, 13, 5, 0xA9E3E905 ); - P( D, A, B, C, 2, 9, 0xFCEFA3F8 ); - P( C, D, A, B, 7, 14, 0x676F02D9 ); - P( B, C, D, A, 12, 20, 0x8D2A4C8A ); - -#undef F - -#define F(x,y,z) (x ^ y ^ z) - - P( A, B, C, D, 5, 4, 0xFFFA3942 ); - P( D, A, B, C, 8, 11, 0x8771F681 ); - P( C, D, A, B, 11, 16, 0x6D9D6122 ); - P( B, C, D, A, 14, 23, 0xFDE5380C ); - P( A, B, C, D, 1, 4, 0xA4BEEA44 ); - P( D, A, B, C, 4, 11, 0x4BDECFA9 ); - P( C, D, A, B, 7, 16, 0xF6BB4B60 ); - P( B, C, D, A, 10, 23, 0xBEBFBC70 ); - P( A, B, C, D, 13, 4, 0x289B7EC6 ); - P( D, A, B, C, 0, 11, 0xEAA127FA ); - P( C, D, A, B, 3, 16, 0xD4EF3085 ); - P( B, C, D, A, 6, 23, 0x04881D05 ); - P( A, B, C, D, 9, 4, 0xD9D4D039 ); - P( D, A, B, C, 12, 11, 0xE6DB99E5 ); - P( C, D, A, B, 15, 16, 0x1FA27CF8 ); - P( B, C, D, A, 2, 23, 0xC4AC5665 ); - -#undef F - -#define F(x,y,z) (y ^ (x | ~z)) - - P( A, B, C, D, 0, 6, 0xF4292244 ); - P( D, A, B, C, 7, 10, 0x432AFF97 ); - P( C, D, A, B, 14, 15, 0xAB9423A7 ); - P( B, C, D, A, 5, 21, 0xFC93A039 ); - P( A, B, C, D, 12, 6, 0x655B59C3 ); - P( D, A, B, C, 3, 10, 0x8F0CCC92 ); - P( C, D, A, B, 10, 15, 0xFFEFF47D ); - P( B, C, D, A, 1, 21, 0x85845DD1 ); - P( A, B, C, D, 8, 6, 0x6FA87E4F ); - P( D, A, B, C, 15, 10, 0xFE2CE6E0 ); - P( C, D, A, B, 6, 15, 0xA3014314 ); - P( B, C, D, A, 13, 21, 0x4E0811A1 ); - P( A, B, C, D, 4, 6, 0xF7537E82 ); - P( D, A, B, C, 11, 10, 0xBD3AF235 ); - P( C, D, A, B, 2, 15, 0x2AD7D2BB ); - P( B, C, D, A, 9, 21, 0xEB86D391 ); - -#undef F -#undef S -#undef P - - - ctx->state[0] += A; - ctx->state[1] += B; - ctx->state[2] += C; - ctx->state[3] += D; -} - -void md5_update( md5_context *ctx, uint8 *input, uint32 length ) -{ - uint32 left, fill; - - if( ! length ) return; - - left = ctx->total[0] & 0x3F; - fill = 64 - left; - - ctx->total[0] += length; - ctx->total[0] &= 0xFFFFFFFF; - - if( ctx->total[0] < length ) - ctx->total[1]++; - - if( left && length >= fill ) - { - memcpy( (void *) (ctx->buffer + left), - (void *) input, fill ); - md5_process( ctx, ctx->buffer ); - length -= fill; - input += fill; - left = 0; - } - - while( length >= 64 ) - { - md5_process( ctx, input ); - length -= 64; - input += 64; - } - - if( length ) - { - memcpy( (void *) (ctx->buffer + left), - (void *) input, length ); - } -} - -static uint8 md5_padding[64] = -{ - 0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -void md5_finish( md5_context *ctx, uint8 digest[16] ) -{ - uint32 last, padn; - uint32 high, low; - uint8 msglen[8]; - - high = ( ctx->total[0] >> 29 ) - | ( ctx->total[1] << 3 ); - low = ( ctx->total[0] << 3 ); - - PUT_UINT32( low, msglen, 0 ); - PUT_UINT32( high, msglen, 4 ); - - last = ctx->total[0] & 0x3F; - padn = ( last < 56 ) ? ( 56 - last ) : ( 120 - last ); - - md5_update( ctx, md5_padding, padn ); - md5_update( ctx, msglen, 8 ); - - PUT_UINT32( ctx->state[0], digest, 0 ); - PUT_UINT32( ctx->state[1], digest, 4 ); - PUT_UINT32( ctx->state[2], digest, 8 ); - PUT_UINT32( ctx->state[3], digest, 12 ); -} - -int FileMD5(wxString name, char *md5) -{ - int i, read; - md5_context ctx; - unsigned char md5sum[16]; - unsigned char block[32768]; - - wxFile file; - - file.Open(name); - - if (!file.IsOpened()) { - ERR_DIALOG(wxT("Could not open patched firmware for checksum check"), wxT("Open Firmware")); - return 0; - } - md5_starts(&ctx); - while ( !file.Eof() ) { - read = file.Read(block, sizeof(block)); - md5_update(&ctx, block, read); - } - file.Close(); - md5_finish(&ctx, md5sum); - for (i = 0; i < 16; ++i) - { - sprintf(md5 + 2*i, "%02x", md5sum[i]); - } - return 1; -} diff --git a/rbutil/md5sum.h b/rbutil/md5sum.h deleted file mode 100755 index f7ea439b6f..0000000000 --- a/rbutil/md5sum.h +++ /dev/null @@ -1,51 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: md5sum.h - * - * Copyright (C) 2007 Dominik Wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#ifndef MD5SUM_H_INCLUDED -#define MD5SUM_H_INCLUDED - -#ifndef uint8 -#define uint8 unsigned char -#endif - - -#ifndef uint32 -#define uint32 unsigned long int -#endif - -#include "rbutil.h" - - -typedef struct -{ - uint32 total[2]; - uint32 state[4]; - uint8 buffer[64]; -} -md5_context; - -void md5_starts( md5_context *ctx ); -void md5_update( md5_context *ctx, uint8 *input, uint32 length ); -void md5_finish( md5_context *ctx, uint8 digest[16] ); - -int FileMD5(wxString name, char *md5); - -#endif // MD5SUM_H_INCLUDED diff --git a/rbutil/mksums.pl b/rbutil/mksums.pl deleted file mode 100755 index 99786fe161..0000000000 --- a/rbutil/mksums.pl +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/perl - -# This script creates the h100sums.h and h300sums.h files for fwpatcher. -# -# It expects a file tree with scrambled and descrambled -# firmwares like this: -# orig-firmware/ -# h1xx/ -# 1.66jp/ -# ihp_100.bin -# ihp_100.hex -# ihp_120.bin -# ihp_120.hex -# h3xx/ -# 1.29jp/ -# H300.bin -# H300.hex -# etc. -# -# It also expects the bootloader binaries in the current directory: -# bootloader-h100.bin -# bootloader-h120.bin -# bootloader-h300.bin - -$orig_path = "~/orig-firmware"; - -mksumfile("100"); -mksumfile("120"); -mksumfile("300"); - -sub mksumfile { - ($model) = @_; - - open FILE, ">h${model}sums.h" or die "Can't open h${model}sums.h"; - - print FILE "/* Checksums of firmwares for ihp_$model */\n"; - print FILE "/* order: unpatched, patched */\n\n"; - - if($model < 300) { - foreach("1.63eu","1.63k", "1.63us", "1.65eu","1.65k", "1.65us", - "1.66eu", "1.66k", "1.66us", "1.66jp") { - `../mkboot $orig_path/h1xx/$_/ihp_$model.bin bootloader-h$model.bin ihp_$model.bin`; - `../scramble -iriver ihp_$model.bin ihp_$model.hex`; - $origsum = `md5sum $orig_path/h1xx/$_/ihp_$model.hex`; - chomp $origsum; - ($os, $or) = split / /, $origsum; - $sum = `md5sum ihp_$model.hex`; - chomp $sum; - ($s, $r) = split / /, $sum; - print FILE "/* $_ */\n"; - print FILE "{\"$os\", \"$s\"},\n"; - } - } else { - foreach("1.28eu", "1.28k", "1.28jp", "1.29eu", "1.29k", "1.29jp", - "1.30eu") { - `../mkboot -h300 $orig_path/h3xx/$_/H$model.bin bootloader-h$model.bin H$model.bin`; - `../scramble -iriver H$model.bin H$model.hex`; - $origsum = `md5sum $orig_path/h3xx/$_/H$model.hex`; - chomp $origsum; - ($os, $or) = split / /, $origsum; - $sum = `md5sum H$model.hex`; - chomp $sum; - ($s, $r) = split / /, $sum; - print FILE "/* $_ */\n"; - print FILE "{\"$os\", \"$s\"},\n"; - } - } - close FILE; -} diff --git a/rbutil/rblogo.xpm b/rbutil/rblogo.xpm deleted file mode 100644 index d14f01517f..0000000000 --- a/rbutil/rblogo.xpm +++ /dev/null @@ -1,254 +0,0 @@ -/* WxStaticBitmap1_XPM XPM */ -static char * rblogo_xpm[] = { -"400 123 128 2", -" c #FFC500", -". c #DBA500", -"+ c #C79600", -"@ c #A1B4C5", -"# c #798C9C", -"$ c #8C8F92", -"% c #6B7176", -"& c #B38700", -"* c #876601", -"= c #B3C3D2", -"- c #392B00", -"; c #E7E7E7", -"> c #EBB200", -", c #9CB1C4", -"' c #FFC800", -") c #8497A9", -"! c #4A4D4F", -"~ c #2D2E30", -"{ c #FEFEFE", -"] c #CCD8E2", -"^ c #E3AC00", -"/ c #745801", -"( c #BBC9D6", -"_ c #97ADC1", -": c #A5B9CA", -"< c #C7C7C7", -"[ c #C6D2DD", -"} c #8AA1B6", -"| c #493801", -"1 c #C1CDD9", -"2 c #654D00", -"3 c #A37B00", -"4 c #9A7400", -"5 c #F4B800", -"6 c #BECBD8", -"7 c #5A4401", -"8 c #AABCCC", -"9 c #D5D5D5", -"0 c #B8B8B8", -"a c #A6A6A6", -"b c #ACBECD", -"c c #FFC300", -"d c #93AABE", -"e c #000000", -"f c #FCBE00", -"g c #98ABBD", -"h c #A2B6C7", -"i c #FFD200", -"j c #FFCC00", -"k c #AC8200", -"l c #AFC1D0", -"m c #EFB500", -"n c #B2C1CE", -"o c #757D86", -"p c #F2F2F2", -"q c #6E5300", -"r c #191300", -"s c #A8BACA", -"t c #FABD00", -"u c #D09D01", -"v c #92A3B4", -"w c #AEBFCE", -"x c #171718", -"y c #DCE0E4", -"z c #261D00", -"A c #A8BCCC", -"B c #B8C6D3", -"C c #616468", -"D c #AFBECC", -"E c #ABB0B5", -"F c #A1AEB9", -"G c #BE8F00", -"H c #AABED0", -"I c #969DA4", -"J c #8F6C00", -"K c #A7BBCD", -"L c #F7BB00", -"M c #8FA6BB", -"N c #9BA9B6", -"O c #7E5F01", -"P c #ACBDCB", -"Q c #54595D", -"R c #0B0B0C", -"S c #B7CADA", -"T c #F9C000", -"U c #130E00", -"V c #ABB9C5", -"W c #A5B7C7", -"X c #424446", -"Y c #0C0900", -"Z c #FCC000", -"` c #9D7B0F", -" . c #FFC000", -".. c #080A10", -"+. c #FDC200", -"@. c #B3C6D5", -"#. c #FFC202", -"$. c #A7B6C3", -"%. c #DFE8EF", -"&. c #9DAFBF", -"*. c #98A5B0", -"=. c #FAC500", -"-. c #ACBBC8", -";. c #393A3C", -">. c #232425", -",. c #1C1D1E", -"'. c #B7C7D5", -"). c #ECF4FA", -"!. c #F7BE05", -"~. c #070500", -"{. c #644F0B", -"]. c #FFC100", -"^. c #050506", -"/. c #080909", -"(. c #101011", -"_. c #FEBF00", -":. c #FDC100", -"<. c #F5BF00", -"[. c #8A6B0B", -"}. c #8E6F0D", -"|. c #FCC003", -"1. c #FFC102", -"2. c #B78F0B", -"3. c #716027", -"4. c #FEC304", -"5. c #F7C10D", -"6. c #977E20", -"7. c #FBC303", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e ~.r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r r Y e e ", -"e e - _. ._._._._._._._._._._._._._.c ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._.].' ]._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._. J e e ", -"e e - ].c ].].].].].].].].].].].].].L f ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].]. m 3 > c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ", -"e e - .]. . . . . . . . . . . .].t | 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . .> m . . . . . . . . . . . . . . . . . . . . . . . . .' 3 e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L ~.O ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u | 7 * & ^ t j c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ . G 3 k k + ^ > j . . . . . . . . . . . . . . . . . . . . . .c t - / ]. . . . . . . . . . . . . . . . . . . . . . . . - z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . ' T ~.O j ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . u - z Y e Y - J > ' . . . . . . . . . . . . . . . . . . . . . . . . . .c ' u O | r e e e e e e ~.z 7 J . c ' ' ]. . .].' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' T z 7 j ' . . . . . . . ' ' ' ' ' ' ' ' ' ' ' ' ' i G e J i ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . .' k 2 q e - / / / / / / / / / / / / / / / / / / / q / ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]._.L m ^ G / z e U / ^ ' c . . . . . . . . . . . . . . . . . . . . . . . =.G | e e z q 4 G . . u & * | r e e - 4 . ' ' c 5 / / / / / / / / / / / / / / / / q U z / q 4 .]. . . .c 5 J q / / / / / / / / / / / / O - e 7 / q G . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . .j / ~.r e Y r r r r r r r r r r r r r r r r r r r r r u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ' ' ' j i i T G | e r 4 +.' . . . . . . . . . . . . . . . . . . . .].' ^ 7 e U / u ' i i j ' ' ' j j i =.+ O - e Y 2 + j > e Y r r r r r r r r r r r r r r r ~.Y r Y 7 .c . . . m | U r r r r r r r r r r r r U e r r r U 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . .].5 m > e / L m m m m m m m m m m m m m m m m m m m m _.].].].]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . j > + J q | | | 7 O & . ' i G - e | ^ ' . . . . . . . . . . . . . . . . . .].' k r e / > j i T u 3 / | | | 7 q J + 5 i +.+ 7 ~.e 7 G e J L m m m m m m m m m m m m m > z 7 5 m 5 . . . . . ._.m m m m m m m m m m m m m _.q e G L m m L ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . .c T e O j c c c c c c c c c c c c c c c c c c c . . .c ' ' . . . . . . . . . . . . . . . . . . . . . . . . ' . q z e e e e e e e e e U 7 k +.i T * e r + j ]. . . . . . . . . . . . . . . .c ' * e z + j j 5 4 | Y e e e e e e e e e z 2 + ' i . q ~.~.e 4 j c c c c c c c c c c c T z 2 ' c . . . . . . .c c c c c c c c c c c m r | c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' 5 - - - - - - - - - - - - - - - - - - - - - - 7 / 3 + 5 j c . . . . . . . . . . . . . . . . . . . . .' > / Y e e e e e e e e e e e e e e - + j j G r ~.k j . . . . . . . . . . . . . .]. O e | > j ' & z e e e e e e e e e e e e e e e - G j j . | e 4 j + - - - - - - - - - - - G ].z 7 ]. . . . . . . . .' u - - - - - - - - - - - z e 4 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e ~.- J L ' . . . . . . . . . . . . . . . . . .].j G z e e e e e e e e e e e e e e e e e Y * j . - e k ' ]. . . . . . . . . . . .].j J e 7 ].j L q e e e e e e e e e e e e e e e e e e e 7 > i 4 & j & e e e e e e e e e e e 3 c z 7 ]. . . . . . . . .' q e e e e e e e e e e e e z m c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e - u ' ]. . . . . . . . . . . . . . . .].j 3 ~.e e e e e e e e e e e e e e e e e e e e 2 L i > - ~.G ' . . . . . . . . . . .j & e | L j ^ | e e e e e e e e e e e e e e e e e e e e e z + ' ' .' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .c m r e e e e e e e e e e e e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e U & ' . . . . . . . . . . . . . .].' 3 ~.e e e e e e e e e e e e e e e e e e e e e e 7 <.j . z r . . . . . . . . . . . U z > i ^ - e e e e e e e e e e e e e e e e e e e e e e e Y k ' c ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . . .j 4 e e e e e e e e e e e e Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e U + ' . . . . . . . . . . . . .j & ~.e e e e e e e e e e e e e e e e e e e e e e e e / ' j + ~.| T c . . . . . . .c T | e + j L | e e e e e e e e e e e e e e e e e e e e e e e e e e J ' & e e e e e e e e e e e 3 c z 7 ]. . . . . . .c t | e e e e e e e e e e e e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . . . z e e e e e e e e e e e e e e e e e e e e e e e e e e 4 ' ' J e J ' . . . . . . .' 4 e J j +.2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' u e e e e e e e e e e e e ~.& ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 c . . . . . . . . .c +.| e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' c | Y ^ . . . . . > U - L i 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . . .' q e e e e e e e e e e e e - c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e k ' . . . . . . . . .j 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | .j G e / ' . . . .].' q e G j ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .c m z e e e e e e e e e e e e 4 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 c . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j | Y . ' . . .' . e 7 j 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . . .j 4 e e e e e e e e e e e e z ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 ' . . . . . .].' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z > j + e J ' . . .' q e u j + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .c Z | e e e e e e e e e e e e q ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - c c . . . . . ^ U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J j :.- r L ]. . . Y 7 ' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' u ~.e e e e e e e e e e e Y u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L e O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . .' / e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z 5 j 3 e 3 ' .' O e + i + Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . . .' / e e e e e e e e e e e e | . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .c L ~.O ' m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . ^ z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 3 j m r | m z - ' ' 2 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .c m z e e e e e e e e e e e e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . .].f 4 + m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . .' 4 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e | _.j q e u j & e k i . U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . .j 3 e e e e e e e e e e e e - 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . .' c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.^ . .c t - e e e e e e e e e e e e e e e e e ~.e e e e e e e e e e e e e e e e e ~.+ i u e J i 7 U ^ j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .c c 7 e e e e e e e e e e e e * j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e & ' . . u e e e e e e e e e e e e e e e Y 7 k u G O z e e e e e e e e e e e e e e e O ' t - z > U 2 ' - e e e e e e e e e e e e e e e e ~.- 2 O 2 - ~.e e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . . u ~.e e e e e e e e e e e U ^ c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e r - - - - - - - U e e e e e e e e e e e e e e e e * ' . .j O e e e e e e e e e e e e e e - + ' i i j j > 2 e e e e e e e e e e e e e e z f j O Y / ~.k i + Y e e e e e e e e e e e e e e e - G L j j j T + | e e e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . .' O e e e e e e e e e e e e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i L & - e e e e e e e e e e e e e e 2 j .c _.- e e e e e e e e e e e e e - ^ j Z + & ^ ' ' ' O e e e e e e e e e e e e e ~.+ j + U e r > j * e e e e e e e e e e e e e e e O +.' c .c ' :.* ~.e e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .c 5 z e e e e e e e e e e e ~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | + G G G G G . 5 i <.2 e e e e e e e e e e e e e | j .' u U e e e e e e e e e e e e r u ' c L - e U * T ' 7 e e e e e e e e e e e e e / j ].- e | j t | e e e e e e e e e e e e e e O ' c ' m > . . .c ' 3 ~.e e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. .j k e e e e e e e e e e e e | ].c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e e e e e e e e e z 3 j L - e e e e e e e e e e e e - L c j 4 e e e e e e e e e e e e e J j .c L z - | e | L j . r e e e e e e e e e e e e | _.j q e * j ^ Y e e e e e e e e e e e e e 7 c L O Y 7 c c . .].j 3 ~.e e e e e q j & e e e e e e e e e e e 3 c z 7 ].c c 7 e e e e e e e e e e e e & i ' ' ' ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e | u + + + + G 4 z e 3 i k e e e e e e e e e e e e - 5 c 2 e e e e e e e e e e e e - L c .c L z 2 ' O e / ' ' O e e e e e e e e e e e e r . j + | u j & e e e e e e e e e e e e e z . > | e 7 + ].]. . . .].' J e e e e e q j & e e e e e e e e e e e 3 c z 7 ]. . ~.e e e e e e e e e e e Y O [.[.* * * * * * * * 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i ' ' ' ' ' j m z r ^ - e e e e e e e e e e e z . ' 5 z e e e e e e e e e e e e k ' . .c L z 7 ' ' 7 e G j ^ r e e e e e e e e e e e e & ' c ' c ' q e e e e e e e e e e e e e J j c | e 3 ' . . . . . .c 7 e e e e q j & e e e e e e e e e e e 3 c z 7 .' O e e e e e e e e e e e e e e e e e e e e e e e e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 ' . . . . ._.' & e 4 i q e e e e e e e e e e e r . j u e e e e e e e e e e e e z m c . .c L z 7 ' ^ U | ].j 2 e e e e e e e e e e e e O . . . - e e e e e e e e e e e e z t ].' 4 e * j ]. . . . . . . . . > z e e e q j & e e e e e e e e e e e 3 c z 7 c t z e e e e e e e e e e e R Q C C C C C C C C C Q e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . ._. ' ' ' c . . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j 4 e e e e e e e e e e e r . j 3 e e e e e e e e e e e e / ' ]. . .c L z 7 .j / e u i + e e e e e e e e e e e e | ]. . ^ r e e e e e e e e e e e e 4 ' > r - <. . . . . . . . . . .' & e e e q j & e e e e e e e e e e e 3 c z 7 j & e e e e e e e e e e e e X [ 6 ( ( ( 6 6 1 6 [ $.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . q | O + ].c . . . .c m ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' G e e e e e e e e e e e r . i q e e e e e e e e e e e ~.G ' . . .c L z 7 ]. . e O j m z e e e e e e e e e e e r L ]. .' G Y e e e e e e e e e e e r . ' j 4 e k ' . . . . . . . . . . .].' / e e q j & e e e e e e e e e e e 3 c z 7 c 7 e e e e e e e e e e e e ) S = = = = = = @.= S F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . .j O e e e ~.7 . c f . .c m ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e r . i | e e e e e e e e e e e z m c . . .c L z 7 ].c f | z .' q e e e e e e e e e e e Y . .j J e e e e e e e e e e e e 7 ' c t - z .]. . . . . . . . . . . . . > z e q j & e e e e e e e e e e e 3 c z 7 ' . Y e e e e e e e e e e e >., , , , , , , , , , h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . .j O e z z e e r & t t _.c m ~.e e e e e e e e e e 2 ' . . . . . .].' / ~.f ^ e e e e e e e e e e e r ^ t - e e e e e e e e e e e 7 j . . . .c L z 7 ]. .j J e + i 3 e e e e e e e e e e e e k ' ].' / e e e e e e e e e e e e 3 ' u e * ' . . . . . . . . . . . . . .' k e q j & e e e e e e e e e e e 3 c z 7 i * e e e e e e e e e e e e % H , , @ @ , @ , , , : v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . .j O e 2 & 7 Y e U k m L c m ~.e e e e e e e e e e 2 ' . . . . . . .j 4 e . ^ e e e e e e e e e e e r ^ . U e e e e e e e e e e e * ' . . . .c L z 7 ]. .' + ~.* i . U e e e e e e e e e e e * j c t | e e e e e e e e e e e Y ^ c ' O e + ' . . . . . . . . . . . . . .].T G . ' & e e e e e e e e e e e 3 c z 2 .- e e e e e e e e e e e ,.*.b : : : s s s W : : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . .j O e r * J 2 Y e r G > t > ~.e e e e e e e e e e 2 ' . . . . . . .j J e > ^ e e e e e e e e e e e z m + e e e e e e e e e e e e + . . . .c L z 7 ]. .c t r 7 c z e e e e e e e e e e e 2 j m z e e e e e e e e e e e - :.c ' - - 5 . . . . . . . . . . . . . . .].' ' & e e e e e e e e e e e 3 c z q G e e e e e e e e e e e e Q l s s s s : 8 s s s : H N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . .' k ~.e | * * 7 e e 7 u > ^ ~.e e e e e e e e e e 2 ' . . . . . .]. q Y ' ^ e e e e e e e e e e e - k e e e e e e e e e e e ~.^ . . . .c L z 7 ]. . .' | z m ' | e e e e e e e e e e e | ].' ^ Y e e e e e e e e e e e / ^ U 2 j . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z 2 2 e e e e e e e e e e e e *.A : : : s : : s s s W H *.e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . .t 7 e Y / 4 3 z e U 4 . . ~.e e e e e e e e e e 2 ' . . . . . .]. q Y u e e e e e e e e e e e - J e e e e e e e e e e e z m . . . .c L z 7 ]. . .' O ~.^ j * e e e e e e e e e e e - m ' u e e e e e e e e e e e e k j ' & e 4 ' . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c z - U e e e e e e e e e e e e N : @ W h h h @ @ @ W h K v e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . .t + r e - 3 G q e e 7 + u ~.e e e e e e e e e e 2 ' . . . . . .c .| z ' & e e e e e e e e e e e | i q e e e e e e e e e e e 7 _.c . . . .c L z 7 ]. . .' k e + i k e e e e e e e e e e e z ^ j & e e e e e e e e e e e ~.+ ' j J e u . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e v , d _ _ _ _ _ _ &., &.h ) e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . .L m * e e O + 4 ~.e - 3 G ~.e e e e e e e e e e 2 ' . . . . . .c 5 r 7 j J e e e e e e e e e e e 7 j 7 e e e e e e e e e e e q ]. . . . .c L z 7 ]. . .' u e 3 i u e e e e e e e e e e e U . i 4 e e e e e e e e e e e z ^ ' 2 Y f ]. . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e e e e F @.l l l l l l l = l l @.N e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . .f m . - e z & 3 U e z 4 k ~.e e e e e e e e e e 2 ' . . . . . .' G e 3 i 7 e e e e e e e e e e e * ' - e e e e e e e e e e e * j . . . . .c L z 7 ]. . . ^ ~.* j . Y e e e e e e e e e e e u i * e e e e e e e e e e e - L f | - c . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 c - e e e e e e e e e e e ~.7 e F = w w l l l l l = l w @.F e - ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .L m 3 e e / J e e z J 4 ~.e e e e e e e e e e 2 ' . . . . .c j 7 U ^ L z e e e e e e e e e e e k - e e e e e e e e e e e 3 j . . . . .c L z 7 ]. . . > z 2 j ^ z e e e e e e e e e e e G i q e e e e e e e e e e e | j c 5 r 2 . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 - e e e e e e e e e e e z k e F l 8 8 8 8 8 8 8 b 8 8 l *.e - ' . . ' ' ' ' ' ' ' ' ' ' ' ' ' c . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' ' ' ' ' ' ' ' ]. .].c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . ._.5 . | e z 7 e e - * 4 ~.e e e e e e e e e e 2 ' ]. ' ' j j 3 e / i 3 e e e e e e e e e e e e u f r e e e e e e e e e e e k ' . . . . .c L z 7 ]. . .c 5 - | j m - e e e e e e e e e e e & i 2 e e e e e e e e e e e 2 j c > e * ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e 3 m U e e e e e e e e e e e O + e F = w w w w w w w w w b '.N e - ' ' j 5 . k * 7 | z z z z | 7 * & ^ t ' . . . . . . . . . . . . . . . . . . . . . . . . . j t ^ G J 2 | z z z z - 7 O 4 u > ' ' .c c #.#.#.#.#.#.#.#.#.#.c c c c c #.c c . . . . . . . . . . c #.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.#.1._. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .f 5 k ~.e Y e e | * J ~.e e e e e e e e e e 2 j t + G 3 J 7 e - m T - e e e e e e e e e e e r L L Y e e e e e e e e e e Y + ' . . . . .c L z 7 ]. . .c _.| z ' _.| e e e e e e e e e e e 4 i | e e e e e e e e e e e O j . e k ' . . . . . . . . . . . . . . . . . . . .' & e e e e e e e e e e e k 4 e e e e e e e e e e e Y u + e F = w w w w w w w w l b = F e - j + / - e e e e e e e e e e e e e Y | * . ' ' c . . . . . . . . . . . . . . . . . . .c ' ' . * | Y e e e e e e e e e e e e e z 2 k J 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 2 ^ . . . . . . . .' 4 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . ._.L ^ | e e e Y 2 * J ~.e e e e e e e e e e 2 j > - e ~.~.U 2 ^ i J e e e e e e e e e e e e | ].5 Y e e e e e e e e e e U + ' . . . . .c L z 7 ]. . .c c 7 z j _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e 4 ' G e G ' . . . .]. ]. . . . . . . . . . . . . .' & e e e e e e e e e e e 4 | e e e e e e e e e e e | i G e F @.l w w w l l n l w w = F e r 7 ~.e ^.>.~ % # o # # # ) ) # C ~ ,.^.e Y 7 + =.' . . . . . . . . . . . . . . . . .' t & 7 Y e e ,.~ C $ I I *.*.*.I ) o X >...e e ~.e e e e e e e e e e e e e e e e e e e e {.' ]. . . . . . .' u U e e e e e e e e e e e e e e e e e e e 7 f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .f L 3 e e e z q O 4 ~.e e e e e e e e e e 2 j ^ z 7 G u 5 i j & U e e e e e e e e e e e e * j u ~.e e e e e e e e e e r ^ . . . . .c L z 7 ]. . .]. 7 r _.' 2 e e e e e e e e e e e * i - e e e e e e e e e e e 3 ' ' 3 ~.u ' . . .].L . 5 ]. . . . . . . . . . . . .' & e e e e e e e e e e ~.7 Y e e e e e e e e e e e k i G e F @.= w 8 b w w l l w b @.N e e e x C ) l @.@., # ) , d , d d _ h F % Q (.e ~.7 u ' c . . . . . . . . . . . . . G - e e (.Q # -.S l 1 H h @.S 1 = H : [ ( I o ;.e e e /.% % % % % % o % % % % % % o o o x e 2.' . . . . .c +.| e X o % % % % % % % % % % % o C % ! e r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . ._.f u z e e | 2 * 3 ~.e e e e e e e e e e 2 i m z 3 i c m + q ~.e e e e e e e e e e e e Y + j + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e q z e e e e e e e e e e e k ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e U e e e e e e e e e e e - 5 j G e F = l n b b w b b b b H @.N e x % $.S @.A -.w g o ) d M d M M d , &.} S $.% ,.e Y O L ' . . . . . . . . . .].' > 2 ~.e >.% F = @.8 8 8 b s @ 8 b b P s h @.l @.y N N Q (.e $ %.] ] ] ] ] ] ] ] ] ] [ %.%.).C e - !.c . . . .j 3 e >.( %.] ] ] y ] ] ] ] ] [ ] %.@.1 ~ e J ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . G e e e | 2 J & ~.e e e e e e e e e e z 2 7 Y - 7 - z ~.e e e e e e e e e e e e e e - .' u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' * r . . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e J ' ' G e F = w l l l l = b b b b @.*.~ F S w 8 w s -.w g o ) d M _ } M M &.N ) = 1 ] @ Q ^.e | . ' . . . . . . . .c ' G z e /.% P @.H A s s s 8 : l : s 8 8 : W @ l w n 1 M S ).E ;.x V [ 6 1 1 1 1 1 ( ( ( B [ ] ] n ~ e }.j . . . > z e # ] 1 ( 6 6 [ 6 ( ( 6 6 = 1 [ l % e - <. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . / e e e z / 3 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z > . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e & j ' G e F = b b l l l B l w w b b B $.= b 8 8 w 8 s b g o ) M M @ M M M _ N ) = 1 1 H S ) >.e r + ' . . . . . .c J ~.e X F @.H b A A A A A A h = A 8 w = s : @ s 8 w [ v = %.] [ o % [ ( 6 6 1 6 1 ( 6 ( = [ ] ] '.$ e r . ' .]. q e X B [ 6 '.( 6 1 6 ( ( 6 6 = 1 ] I /.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .].t z e e e Y 2 k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Y ^ u ~.e e e e e e e e e e z > c . .]. ' T z 2 ' ' i O Y m i / e e e e e e e e e e e / <.z e e e e e e e e e e e u j i q z > j j u e & j . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e q j G e F l 8 b l l l n n l w b 8 ( K K w 8 A b b D w g o ) d } , } M _ _ N ) = 6 1 s P l V X e R & j . . . . / e ^.C = l A A b A A A A A A : s h b w w 8 l K h W 8 [ v @.y 1 1 ] E n 1 6 6 1 1 1 ( 1 1 B [ ] ] n 6 ! e 7 .' + e (.N @.1 1 ( ( ( 1 ( '.( 6 6 = [ y ;.e q ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .' G ~.e U U e | k + ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e / ' ]. u ~.e e e e e e e e e e - ' . .].L . . . u z | . . . . . > 2 Y + > 7 e e e e e e e e e e e 2 u r e e e e e e e e e e e k ^ ^ 7 r + . . . . ^ & e 4 ^ . . . ^ _. . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e r > j G e F = b 8 l l l = w n l l w ( : A 8 8 8 b A P w g o ) d M _ M M M _ N ) l 6 6 8 w h @.@.Q e U u ' . .c c q e (.# S b 8 b A A A A A 8 K : = s , A b w : = = 8 W s [ v @.%.1 6 1 [ 1 6 6 1 1 6 6 ( 6 1 6 ] ] [ n = V x e & j L - e % 6 n [ 1 ( ( ( ( ( ( ( ( ( = ] $ e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .j O e e | - e U 4 G ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r . ' . u ~.e e e e e e e e e e - ' . . . r U U U e ~.U U U U U U Y e U U ~.e e e e e e e e e e e ~.U e e e e e e e e e e e e U U U ~.e U U U U U U U e Y U U U Y - L c . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e k i G e F = b 8 l l l = w w w l n ( : 8 b 8 8 w A -.b g o # M M _ M M M _ N ) l 1 1 s w h w w @.Q e r . ' ].' O e (.$ @.8 8 8 b A A A A K 8 8 : l w h s 8 8 h : b n s 8 [ v = %.1 6 1 1 1 6 6 6 1 6 ( '.'.( ( [ ] ] n D ] o e - T J e ;.n D = [ 1 ( ( 6 '.( ( ( 6 ( '.n ,.e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .c _.| e ~./ 7 e e q k ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e O j . . u ~.e e e e e e e e e e - ' . .c > * O * O U - * * * * * J - ~./ J - e e e e e e e e e e e - O U e e e e e e e e e e e 2 * * - U / * * * * * q e 7 * * * O 4 t ]. . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e | i G e F = w b l l l = w w w w w 6 W A w 8 A b b P w d o # } } d M M M _ N ) = 6 6 8 w h w P H @.! e | !.j 3 e (.$ S 8 8 8 s b K A A A b s K K : w : A b l s : h b 8 w [ v = %.1 6 [ 1 6 6 6 6 1 1 1 '.( ( '.[ ] ] D D ( y X e 2 r e E [ -.D [ 1 ( ( ( ( ( ( ( 6 ( 1 Q e 7 ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . ^ r e z O q z e - 3 ~.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - m c . . u ~.e e e e e e e e e e z 5 c . .c j j j =.z 2 i j j j j i O Y m i / e e e e e e e e e e e / T z e e e e e e e e e e e u i i q z m i j j j i . e G i j j j ' . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e U . + e F = w b w l l = w l w b b 6 W A w 8 8 b 8 P l d o # } } M M M M _ N ) = 6 6 8 w h w b K l -.~ e O . U e o S b 8 s 8 P 8 K : A A 8 8 A K h = : K b l 8 W @ b 8 w [ v = %.1 6 1 6 6 6 6 6 1 1 1 B ( ( B [ ] ] n D = %.E e e e Q %.1 D D [ 1 6 ( ( 6 ( 6 ( 6 [ ) e U . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .' G e e | * O 7 e Y O Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.G ' . . . u ~.e e e e e e e e e e z > . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e e + ' 2 z ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e J u e F = w H l l l l w l w b b 1 : K b 8 8 w : s l g o # d M M d M M _ N ) l 1 1 8 w h w b A s S I /.U z e Q @.b b 8 8 8 8 b K : A A A b 8 K h w : s b l b A @ 8 s b [ v = %.1 6 1 6 6 6 6 1 1 1 1 6 6 6 B [ ] ] n n B y ] Q e ,.-.%.1 n D [ 6 6 ( ( ( ( 6 ( 1 6 ~ e [.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .' J e e 2 * J J r e | Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . u ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y > i q e e e e e e e e e e e / 5 z e e e e e e e e e e ~.+ ' q r ^ . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e - & e F = b b l l l = w w w b b ( : 8 l 8 K l 8 s b g o ) d _ } d M M &.v ) l 6 1 8 w h w P b 8 8 S C e e >.W H b b s b 8 s b K : A A A A 8 8 K b h b b b : l b : s b [ v = %.1 6 1 6 6 6 6 1 1 6 1 ( ( ( B [ ] ] D D ( y ] $.,.o [ y 1 D D 1 1 ( ( ( ( ( ( ( [ % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . 7 e U O * 4 G | e U e e e e e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . + ~.e e e e e e e e e e z > c . . . . .c L z 7 ]. . . .j O Y ^ i q e e e e e e e e e e e q t z e e e e e e e e e e e G ' 4 Y u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e ~./ e F = b b l w b = w w w b b 6 W 8 8 l b 8 w D w g o } , _ M M M } d ) ) l 6 1 8 w : w b 8 b 8 l -.>.e $ @.8 b b b b b 8 8 A : : : : : s 8 K H H = @.@.H l l : W 8 6 v = %.[ 1 1 6 1 1 ( 1 1 6 1 6 ( ( B [ [ [ -.D = y [ B $ B [ y 1 D D 1 [ 6 ( ( ( 6 ( 1 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .c z e z J * 3 u 3 e e U Y U Y e e e e e e e e e e e e e e e e e e e e e e e e z 5 . . . . . u ~.e e e e e e e e e e z > . . . . . ._.. ^ ]. . . .].' 2 U 5 j 2 e e e e e e e e e e e O i - e e e e e e e e e e e 3 ' ' 4 ~.u ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e r e F @.w b l = l = w w w b s 1 W P W w @.h b @.'.) C o # o ) , d ) } ) ) l ( ( s b : w b K w w w S % ;.l K 8 8 K b 8 8 8 A 8 K K K 8 8 A l S W ) ) ) ) v l S : W 8 1 v = y [ 1 1 ( 1 [ ( ( 1 6 ( [ 6 6 B [ ] y D n b ] ] 1 w = [ y [ n D 6 1 1 1 6 B 6 1 1 X e {.' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .c > r e - J J & . > z e 4 + u + 4 - e e e e e e e e e e e e e e e e e e e e e e U u ' . . . . .c > Y e e e e e e e e e e U u . . . . . . . . . . .c c 7 z j .| e e e e e e e e e e e 4 i - e e e e e e e e e e e 3 ' ' & e + ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = b b b b b = b b b w w B s s 8 8 b @.D % X x e e e e >.X o M d v ) = 1 [ W 8 s w b K b b 8 l $.V b s s 8 b 8 8 8 b b K A A : s l @.$ ! ~ e e e e (.X C &.l b 1 v = ] 1 1 [ 1 ( [ 6 6 1 6 6 1 ( 6 B 1 [ y = = B ] [ B D = [ y 1 = D ( 6 6 6 ( ( 6 [ $ e x > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . + Y e - J J + > 4 Y ~.u i i i j L O e e e e e e e e e e e e e e e e e e e e e e O ' ]. . . . .c 5 Y e e e e e e e e e e U u ' . . . . . . . . . . . . .c ].| z ' _.| e e e e e e e e e e e 4 i - e e e e e e e e e e e * ' + e & ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e e e e e e e e e e e e e e e e F = l w b b b l b b b w w n b A b w l o ,.e e r - | | - Y e ^.~ # g ) = 1 [ : s s w b K w w 8 b b l 8 8 8 8 8 8 8 8 8 l : : A A @.*.;.^.e ~.z | | | z e e (.% D ] v = y 1 1 1 6 6 1 6 1 [ ( '.6 [ 1 ( ( 1 ] B ( [ 1 6 6 6 ( 6 1 1 6 1 [ ( 6 6 6 B [ n >.e ` ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .' k e e | * 4 u / e e ~.u + 2 J m ' ' / e e e e e e e e e e e e e e e e e e e e e z m . . . .c 5 U e e e e e e e e e e ~.& ' . . . . . . . . . . . . .c 5 - | j m - e e e e e e e e e e e k i 7 e e e e e e e e e e e / j > e 4 ' . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e Y Y e e e e e e e e e e e e e F = l w b b b l w w w b w B l = @.$.! e e | k ^ ' ^ 4 3 k }.z e ^.% } = 6 1 8 8 : w b K b w b b s w 8 8 8 b b b 8 8 8 l 8 s 8 S o (.e r * u T m 3 3 3 k 2 ~.e ;.( g = y 1 6 6 6 6 1 6 6 [ ( '.6 6 1 6 ( ( 1 '.B [ B B ( 6 1 ( ( 6 6 1 1 6 6 ( ( '.[ C e | 4.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .' 4 e e - * k / e e z z u & e e - m ' > z e e e e e e e e e e e e e e e e e e e e e k ' . . . .c t - e e e e e e e e e e e k j . . . . . . . . . . . . . m z 7 j > z e e e e e e e e e e e G i 7 e e e e e e e e e e e 7 i c m Y / . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e e q | e e e e e e e e e e e e e ) @.l l w w w w w w w P : '.s [ @ ;.e x & j . 4 J q O + O e e % 1 '.( b b : w b s 8 b w b s 8 8 8 8 8 8 8 b 8 8 K 8 b @.% e e q m ' ' > 4 4 * q 3 & - e >.v S y [ 1 1 1 6 [ ( 6 [ 6 ( 1 6 1 1 1 1 1 6 6 1 B ( 1 6 6 1 6 6 6 1 1 1 1 6 ( [ *.e Y u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .j J e e - J * U e | k q + 5 r e e J ' j * e e e e e e e e e e e e e e e e e e e e e | ' . . . .c f - e e e e e e e e e e e J j . . . . . . . . . . . . . ^ Y O j . U e e e e e e e e e e e + i / e e e e e e e e e e e | c L - | . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u 3 e e e e e e e e e e e e e ! S l l l l l l l l l l w = : [ ! e ~ u j c . . u q 2 4 4 7 & 4 e ^.) [ ( s P K b 8 8 8 8 b 8 A 8 8 8 8 s s s 8 8 8 8 K @.$ e e J ' . . . * q O k * q u | e ~ ( y 1 1 1 1 6 [ 6 6 [ 6 ( 1 6 6 6 1 1 [ 1 6 6 1 1 1 ( 6 1 1 1 6 6 1 1 1 1 1 ( ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .j / e e r J 2 e 7 + 3 O u ' q e e - c ' G Y e z O q U | 2 e e e e e e e e e e e e e U u ' . . .].].7 e e e e e e e e e e e O ' ]. . . . . . . . . . . . . . e 4 i u e e e e e e e e e e e Y u i * e e e e e e e e e e e z > ].7 z . . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e z > U e e e e e e e e e e e e ,.g H h h h h : h h h W 8 l l o e x . j . . . . ._.5 . * 7 k 2 & 4 e >.n 1 : s b s 8 8 8 8 b 8 s 8 8 8 8 8 s s s s s 8 H @ >.e * ' c . . . ._.L m G q O 3 2 u - e o %.1 6 6 ( ( 1 ( 6 1 B = '.B '.= B @.B = n l = B B n = B B B B = = = B = 1 % e - m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .j / e e U / J * G & 4 O J i & e e r > ^ r e 7 i m z 4 ' r e e e e e e e e e e e e e * ' ]. . .]. q e e e e e e e e e e e 7 ].c . . . . . . . . . . . .' G e G i & e e e e e e e e e e e z ^ j 3 e e e e e e e e e e e U u ' ' O e ^ c . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e e ~.u ' 2 e e e e e e e e e e e e e % @.s : : : s W W W h h b P ,.e 6.j . . . . . . .c c j + | & 7 u | e o ] W W w s s 8 8 8 s 8 : s s s s b s s s s s 8 l % e | T . . . . . .].c J q 3 / G e ,.6 [ 6 1 6 B 1 ( 6 [ = l B B F ( B B 6 B ( = B = B = = n B B B B B = B 6 E (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .' J e e e 7 4 G G k 3 J | .5 z e U . ' ^ r e 7 .^ z J j / e e e e e e e e e e e e e z 5 c . . .' * e e e e e e e e e e e - 5 c . . . . . . . . . . . .' J e . j J e e e e e e e e e e e - m j G e e e e e e e e e e e e & j j 3 e & ' . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e Y e / i & e e e e e e e e e e e e e ;.8 s s s s w s s s W , @.o e | 5.c . . . . . . . . . .j + 7 3 / G e >.1 b s : b 8 : s 8 b s : s s s : s s 8 s s s b s x e G ' . . . . . . . . . .c j * J q & 7 e $ ] 1 6 6 B 1 6 1 y ( = B B $ I 1 B ( ( B n 1 ( D B 6 = n B B 1 B n B 1 X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .' 4 e e e - J k G G + G Y + i 7 e z t ' + Y e | t ^ z J i G e e e e e e e e e e e e e e G ' . . .j 3 e e e e e e e e e e e Y ^ . . . . . . . . . . . .' 7 z > j 7 e e e e e e e e e e e | .' . e e e e e e e e e e e e J ' ' u ~.O j . .' u e & ' . . . . . . . . . . . .' & e e e e e e e e e e e O | z L L z e e e e e e e e e e e e ^.v b @ W W W $.@ W $.8 l ! e 4 j . . . . . . . . . . . .j * J 2 + | e $ 6 = b l w w w w l l l w w l l w w l b w l @.I e >.!.c . . . . . . . . . . .].L 2 3 / & e ;.'.1 ( '.'.'.'.( 1 = l = S # ;.'.= = '.@.l n P s b @.= = = = = = n 6 # e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . + Y e e Y O k + . > . e O j & e 7 ' j * e e | L ^ z J j t - e e e e e e e e e e e e e 7 ' . . .' G e e e e e e e e e e e e + . . . . . . . . . . .].c z | ]. - e e e e e e e e e e e 2 j ^ U e e e e e e e e e e e | c c .z | c c .' u e & ' . . . . . . . . . . ' & e e e e e e e e e e e & 3 e G i / e e e e e e e e e e e e e Q H g &.&.g &.g &.g , $.>.Y u ' . . . . . . . . . . . . . q J k O e % @.h : h h h h h h h h : h h h h h h h h h H Q e 3.' ]. . . . . . . . . . . . .' 4 J / u U /.D ( B B B B B ( 1 n l = 6 ) e o 1 l n = = B D D D n n B n n n = B B ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . .].5 z e e e | k u > t > e z c ^ - u j > z e e | t ^ z J ' ' * e e e e e e e e e e e e e r . . .' u U e e e e e e e e e e e J ' . . . . . . . . . . . u ~.O i ^ r e e e e e e e e e e e * j c 5 - e e e e e e e e e e e U 5 c j 2 Y ^ .' u e & ' . . . . . . . . .+.^ > ' & e e e e e e e e e e e 3 > e q j u e e e e e e e e e e e e e >.h l b l s l P D B ] F e z m c . . . . . . . . . . . . .c 2 3 3 ` e Q : , , _ _ _ _ _ _ &.g d _ _ _ _ _ _ _ _ _ h X e 3 j . . . . . . . . . . . . .' G O * G - e I v ) v v v } v &.} ) } v o e ,.) } } } ) ) # # # # # # # # # # ) ! e | f c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .].O e e e ~.7 + m m ~.~.G _.^ ' 2 e e e 7 _.^ z J ' . Y e e e e e e e e e e e e e J j . . > z e e e e e e e e e e e 7 j . . . . . . . . . . .j 3 e & i k e e e e e e e e e e e e 3 ' c .7 e e e e e e e e e e e e & ' & e & ' .' u e & ' . . . . . . . . . ~.q j & e e e e e e e e e e e 3 j 7 U t :.| e e e e e e e e e e e e e # @.b w 8 = l n 1 y E e - j . . . . . . . . . . . . . . O 4 3 ` e ! P W W @ @ @ @ @ @ h @ , @ @ @ @ @ @ @ @ @ H X e 2.' . . . . . . . . . . . . .' + * 4 k | e ) g d g g d M g $.v v v g o e e C , N v } v # # # ) ) ) ) # # ) o (.e 2.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .u z e e e e z * u u z 2 u ' 5 q e e e e 7 ^ z J ' ].c 7 e e e e e e e e e e e e e - L c .].' | e e e e e e e e e e e z 5 c . . . . . . . . .c 7 U 5 j / e e e e e e e e e e e Y u .j O e e e e e e e e e e e e q j > U | .' u e & ' . . . . . . .c c | e q j & e e e e e e e e e e e 3 i 3 e k i 4 e e e e e e e e e e e e e ! @.n = 8 B = = 6 [ 0 e z f c . . . . . . . . . . . . .c 2 3 3 3 e Q l W h h h h h h h @ h h @ @ @ h h @ @ @ @ H X e k j . . . . . . . . . . . . .' G O * G - e F = w P P s W D [ s @ W H # e /.# l P W , W v v d &.V @ &.g d &.$.! e 7 c c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . .f 5 3 U e e e e e e U + i ' c > | e e e e e 7 ' ^ z J ' .j k e e e e e e e e e e e e e e + ' . .j 2 e e e e e e e e e e e ~.G ' . . . . . . . . . ^ ~.2 j 5 - e e e e e e e e e e e r L c .j 3 e e e e e e e e e e e e - m ' q e . ' u e & ' . . . . . . .j k e e q j & e e e e e e e e e e e 3 j ^ U 7 j ^ r e e e e e e e e e e e e R &.@.= 8 B = l '.1 -.x U . . . . . . . . . . . . . ^ q J k J e C l W W @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ l X e J ' . . . . . . . . . . . . .' 4 J / . r ^.&.b b h : s h 8 1 W , @ H # e Q = h s @ _ , ) } } M _ , _ _ d _ W } x e & ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . .5 ^ 3 - Y ~.e e ~.U k G * ^ f z e e e e e 7 j ^ z J ' . > z e e e e e e e e e e e e e 2 ' . .' 3 e e e e e e e e e e e e O ' ]. . . . .j ' . .j O e + j u e e e e e e e e e e e e | c ]. .' + Y e e e e e e e e e e e e & ' ' + e q ' ' u e & ' . . . . . . > z e e q j & e e e e e e e e e e e 3 ' j 7 U ^ i 7 e e e e e e e e e e e e e % 6 = s ( '.l 6 [ [ ! e k j . . . . . . . . . . . .j * J 2 u 7 e o = &.8 h h h h h h h h @ @ @ @ W @ , @ @ @ : o e | +.]. . . . . . . . . . . .].L 2 3 q u e >.@ @ s s W h h s 6 W , h H # x &.: h 8 h , , } } } M _ , , _ d _ s h % e z m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._._. ._. . . ._.f _.' J e e ", -"e e - .]. . . . . . . .t > u k / 7 | | 2 / Y e e k i 2 e e e e e 2 j ^ z J ' . .j 2 e e e e e e e e e e e e e r . . u e e e e e e e e e e e e z 5 c . .].t O 3 c ' ^ Y 7 j / e e e e e e e e e e e e O . .c L z e e e e e e e e e e e e | ].' 7 e + i u e & ' . . . . .c ' 2 e e e q j & e e e e e e e e e e e 3 ' ' & e k i G e e e e e e e e e e e e e ~ = '.: '.( b ( ] ] C e 7 c . . . . . . . . . .j + 7 3 / . ~.>.g 8 = d @ @ @ @ @ @ @ @ W @ @ @ @ @ @ @ @ @ , @ R ~.. . . . . . . . . . .c j * * q & / e % S n : h s W h 8 1 h , W K o % l W @ s h , , } M } d _ _ _ , _ d : , , ~ e O ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t L f L .t L L 5 t ' * e e ", -"e e - .]. . . . . . . ._.5 ^ + 3 J O O * O ~.e e 2 j & e e e e e 2 j ^ z J ' . . + e e e e e e e e e e e e e e 4 ' .c 5 r e e e e e e e e e e e e k ' . .c L r 7 j 2 e + j > r e e e e e e e e e e e e & ' . . .' | e e e e e e e e e e e e e & ' ^ U - 5 . e & ' . . . . .' 3 e e e e q j & e e e e e e e e e e e 3 ' c 5 r | ' m z e e e e e e e e e e e e ^.) 1 : '.B l ( [ ] N x e + ' . . . . . . .].c j u | & 7 . / e X = W @ s @ @ @ @ @ @ @ @ @ @ @ @ W @ , @ @ @ h 8 ! e q ' ]. . . . . . .].]. 4 2 3 q u /.R ) = 8 : w : s h 8 [ h _ @ h I W : W @ h h , @ } M M d _ _ _ _ d _ _ , , # ^.~.u ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.L 5 t m c 5 5 L m L ' J e e ", -"e e - .]. . . . . . . . .f 5 ^ u G 3 4 4 J ~.e e z c ^ Y e e e e 2 j ^ z J ' . .c L - e e e e e e e e e e e e e - T c ].c 7 e e e e e e e e e e e e - Z c .c L z 2 i 3 e 2 ' j J e e e e e e e e e e e e Y u ' . . .' * e e e e e e e e e e e e e - 5 ' & e - 4 e & ' . . . .' u U e e e e q j & e e e e e e e e e e e 3 ' ].' / ~.^ j / e e e e e e e e e e e e e Q 6 8 = ( w ( [ [ H C e - 5 . . . . ._.L ^ * 7 k 2 k 2.e (.v K h @ s h h h h h h h h @ @ @ @ h h @ @ @ @ h A v (.e & j ]. . . . ._.t 5 u q / 3 7 ^ 7 e ! l : s 8 b s s @ 8 [ h , @ @ s W W W @ : @ , @ } } d _ d _ _ _ d _ d , _ h Q e | 7.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L m > t 5 > ^ > > ^ 5 ' J e e ", -"e e - .]. . . . . . . . . .f L m ^ . u + & ~.e e Y u f - e e e e 2 j ^ z J ' . . .' J e e e e e e e e e e e e e e + .' 4 e e e e e e e e e e e e e k j .c L z | J e z > j ^ z e e e e e e e e e e e e - L c . . .' + e e e e e e e e e e e e e e / j ].' & r e e & ' . . .' > z e e e e e q j & e e e e e e e e e e e 3 ' .' G e J i + Y e e e e e e e e e e e e x V w l 6 b 6 ] 1 : g ~ e 7 |. . . . . 2 2 4 4 7 k u r e % w , @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , H % e r u ' ]. . . ^ * q O k J 2 ^ {.e >.&.8 W W 8 s P 8 h 8 [ W , @ , s s @ W @ P @ _ , } } d , d _ _ , d d _ _ _ , g >.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.f f ].f ^ ^ 5 f t ].' J e e ", -"e e - .]. . . . . . . . . . . .f L 5 m m . ~.e e e 4 i q e e e e 2 j ^ z J ' . . .' u U e e e e e e e e e e e e e q j .' + Y e e e e e e e e e e e e z > ' c L z e e | ^ ' ' 2 e e e e e e e e e e e e e / j . . . . > z e e e e e e e e e e e e e e 4 j c ' m * e & ' . .' ^ - e e e e e e q j & e e e e e e e e e e e 3 ' .c t z - _.' - e e e e e e e e e e e e e o @.n 6 b 6 ] 1 W h F x e | ^ j ' ]. . 4 J 2 O . & (.e Q 8 h @ @ @ h @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W , , H Q e U 3 ' c ^ 4 4 * 2 3 . 7 e x *.l : s 8 s : s b h 8 [ W , @ @ @ W W h @ s W , , } } M _ d _ _ _ _ _ _ _ _ _ : o e r ^ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].].].].].].f > 5 ]. .].].' J e e ", -"e e - .]. . . . . . . . . . . . . . ._.c > ~.e e e 2 i 4 e e e e 2 j ^ z J ' . . .]. | e e e e e e e e e e e e e z ^ c t - e e e e e e e e e e e e e | m ' f 4 O & +.j ' J e e e e e e e e e e e e e ~.G ' . . . .c 7 e e e e e e e e e e e e e e ~.4 ' j . e & ' j + z e e e e e e e q j & e e e e e e e e e e e 3 ' . .' O e u i J e e e e e e e e e e e e e ;.l = 6 b 6 ] 1 W _ S *.,.e r * . i u * & u G 7 e e C s W @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ W @ , h w Q e e 7 G 5 i k 2 3 + u 4 r e ,.I @.W h h s 8 W W : @ s 6 W , h @ @ W W @ , s s , , } } M _ d _ _ d _ , _ _ _ d , h X e 2 ' ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f t .t 5 t t 5 m L c t 5 L 5 t m > ^ ^ f c ].c c ].' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e | c + Y e e e 2 j ^ z J ' . . . .' 3 e e e e e e e e e e e e e e 3 ' .j / e e e e e e e e e e e e e e - ^ ' i i j j t O e e e e e e e e e e e e e e r L c . . . . .j 4 e e e e e e e e e e e e e e e e 7 u ' . e G j > O U e e e e e e e e q j & e e e e e e e e e e e 3 ' . . u e * j ^ Y e e e e e e e e e e e e /.I ( 6 b ( ] [ W , l @.F ! e e U | {./ O {.- e e x o 8 h @ @ @ @ @ W @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h , @ @ h 8 o ,.e e z 2 | {./ | U e e ;.N l = W @ , h P W , @ , h ( : @ : h @ W W h , h s @ , } } d &.d , _ d d _ _ _ _ _ _ , ) (.e 2.' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .L 5 f t m L ^ t m ^ t L ^ . m u u u u . . . ^ ^ > _.^ u t > q e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e z > > r e e e 2 j ^ z J ' . . . . > r e e e e e e e e e e e e e | +.]. u e e e e e e e e e e e e e e e r O + u u 3 - e e e e e e e e e e e e e e e q ]. . . . . . ^ r e e e e e e e e e e e e e e e e ~.7 q e 2 q U e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . .c L - z c 2 e e e e e e e e e e e e e C ( 6 b ( ] [ h , = 8 l '.) ! x e e e e e e ~ Q &.H h @ @ @ W h @ @ @ @ @ @ @ @ @ h 8 @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ H &.C ~ e e e e e e (.X # h : b ( w @ , , 6 B &.h , W B h , @ s h W W h h , 8 h @ } } d _ _ , _ _ d _ _ _ _ _ _ _ : % e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .m m m 5 > 5 ^ L > . 5 . ^ u ^ . . u u + + ^ + + + + + G + u / e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e ~.u j z e e e 2 j ^ z J ' . . . .]. q e e e e e e e e e e e e e ~.u c L - e e e e e e e e e e e e e e e e Y U U e e e e e e e e e e e e e e e e e G ' . . . . . . .' 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .j J e + i k e e e e e e e e e e e e e >.n 6 b ( ] [ W , = P 8 8 w S v I # % o # ) @ H , h @ @ @ @ W h @ @ @ @ @ @ @ @ K ) % K @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h l @ # # o o o # v H @.&., s ( w W @ , '.B @ W @ : ( W , @ s @ @ h W w g W @ @ } } _ _ _ , _ _ d _ _ _ _ _ _ _ , , ~ e * ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .> m > ^ . 5 . m m ^ . ^ . G . u t + G u u + G G k k & k . G O e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e + i | e e e 2 j ^ z J ' . . . . .' G ~.e e e e e e e e e e e e e / j .' J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - t c . . . . . . .' k e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .' u ~./ j L z e e e e e e e e e e e e ^.# [ b ( ] 6 W , l 8 8 P s w : [ '.@ : K l h @ , h @ @ @ @ W h @ @ @ @ @ @ @ h K X ^.*.: @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ h A 8 K : : K : , = , , : B b s W h w l W : h K 6 s @ h s @ @ s 8 n M _ , @ } M ) , _ , _ _ d , , , _ _ _ _ _ h # ^.Y . ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .f ^ > c m . 5 m . . f c t ^ 5 > _.^ . + + .. ^ . > . & t ^ * e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 3 j 2 e e e 2 j ^ z J ' . . . . .c f - e e e e e e e e e e e e e z > ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . .].' - z > j / e e e e e e e e e e e e e ! [ b ( ] 1 W , l 8 s P s w @ ( D g , , W , , @ @ @ @ @ @ W h @ @ @ @ @ @ @ A $ e e ! H h @ @ @ @ @ @ h @ @ @ @ @ @ @ @ , @ h @ , , @ @ , P , , : w : : : : : : s s @ : @.@ , h = W d h K 6 M d d , } } ~ o , _ _ _ d d _ , , _ d d _ _ : ! e | c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c c .c c ].]. . . .c c c .c .c c c ' ].j J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j * e e e 2 j ^ z J ' . . . . . .' * e e e e e e e e e e e e e e k ' .' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e r > c . . . . . . . . .' * e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .' 3 e G i + e e e e e e e e e e e e e (.$.= ( [ [ W , l w 8 P s 8 @ ( n g , , W , , @ @ @ @ @ @ W W h h @ @ @ @ h W ~ e e e % H @ @ @ @ @ @ @ @ @ @ @ @ @ @ h @ W @ h s b @ @ h s &._ : s 8 h s : @ h s h : 8 6 , d _ 8 8 h d g @ , @ _ , _ Q e >.} M d _ _ d } M , , , } M M , g ,.e 3 j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .]. . .].]. .].].]. . ._. .].f f ].].].].].]. .]. .c c .c c c ]._.L ].c c c ].c ]. .c c . c .c ].' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e 4 j O e e e 2 j ^ z J ' . . . . . . . ~.e e e e e e e e e e e e e | ]. . Y e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e * ' . . . . . . . . . . ^ r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . ^ ~.2 j L | e e e e e e e e e e e e e o S 6 [ [ W , 8 w w 8 n W @ ( D g , , W , @ @ @ , @ @ @ @ @ @ W @ @ @ @ l C e - [.e (.v A h h h h h h h @ @ , , @ , @ @ W _ @ l ( @ _ @ W , , b W l @ 8 P h W l @ : W ] n &._ , s 6 @ &.d -.W , h # R e e C _ M d : h M } _ h n d M } _ , % e z > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .t _.].t t ].f f t c 5 . f ].> m ].f L t f t ].L .m 5 L > > _.^ . c > > > t 5 ^ Z c m ^ 5 +.^ m ].m ^ c .J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e - | e 4 j O e e e 2 j ^ z J ' . . . . . .c Z 7 e e e e e e e e e e e e e Y . ].' q e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e z ^ . . . . . . . . . . .' O e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . .c c 7 U m j J e e e e e e e e e e e e e ~ @.6 [ 6 h , K b P : D s @ ( n g , , s , , @ , , @ @ @ @ @ @ h @ @ @ H o e Y u j {.e >.&.K , @ @ @ @ @ W @ , , @ @ @ s @ d , b 6 s , @ , d , W W = : b P , @ 8 h w w = W @ , h @ W W @ g n P h : ;.e | U /.# _ _ 8 d , } _ _ W _ g } K K d ;.e / ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 > t L > ^ L ^ ^ ^ t ^ + t ].u > _.u u . . ^ ' u ^ + G ^ + G + L + + c + & 4 ^ + k u . & 3 . . 3 u ' u 3 . + 7 e e ", -"e e - .]. . . . . . . . . . . . . . . .c m e / . .| k i O e e e 7 j ^ z J ' . . . . . . .j 3 e e e e e e e e e e e e e e O j .' . r e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e J ' . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .j k e k i . U e e e e e e e e e e e e /.) [ ] 1 @ , b P P s P h h ( n &., , W , , W @ @ @ , @ @ @ @ W @ @ H # R e 4 j 5 | e ~ &.: @ @ @ , @ @ @ @ @ , , @ W @ _ , : n W &.&.( , _ 8 @ @ s = n @ h b @ @ s [ W &._ : 8 D , , &.8 8 K o e z . - e ~ _ d @.s M } , h W d _ M d _ @.v ^.~.+ ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].L ^ L . L 5 . . 5 ^ > m u m . . f G m u k ^ T 3 & & & . u G u ].. G ' L + > u 4 k & ^ G k > 4 5 . G 3 4 & 7 e e ", -"e e - .]. . . . . . . . . . . . . . . .c m e G i u | . i 2 e e e 7 j ^ z J ' . . . . . . . > z e e e e e e e e e e e e e - m _.j J e e e e e e e e e e e e e e e e e e e e e e e e e e e e e - L c . . . . . . . . . . . . .j 3 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . .c m U 7 ' | e e e e e e e e e e e e e Q ] ] [ @ , b 8 8 P D s @ 6 n &., , s , , @ @ @ @ , , @ @ @ h @ H I ,.e / c .' ^ z e >.&.H @ @ h h @ @ h W @ @ h @ , @ , W P P , , B h @ B : @ w l b s l = ( 8 b '.: : h = n = W @ , = = &.,.e & * * - e % h b b , M @ 8 : , K , : , K l C e - !.c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.^ u ^ > . u m u c . ^ ].+ . G & 5 G ].+ + G + 3 u 3 & m & 3 G t & J m k J & u & * ^ u 3 * ^ + 4 k . k O 4 & / e e ", -"e e - .]. . . . . . . . . . . . . . . .c m e & i / 4 ' L z e e e 7 j ^ z J ' . . . . . . . .' 2 e e e e e e e e e e e e e e & ' .c L - e e e e e e e e e e e e e e e e e e e e e e e e e e e Y + ' . . . . . . . . . . . . . .]. 7 e e e e e e e e e e e e e e e e e e e e e e e e e e e e e q j & e e e e e e e e e e e 3 ' . . . . . .' 7 Y ^ j & e e e e e e e e e e e e e ,.n y [ @ , l s : 8 8 8 h 6 n _ , @ s , h s @ @ @ @ @ @ @ @ h l o (.e {.4.c . . .' ^ - e ,.I H h @ h h h h @ @ @ @ P d , , , h 8 , _ _ d _ @ , , H @ @ @ W h 8 @ : @ _ , , , , s , _ d h @.Q e 7 + 2 . | e x } h M d } M d _ d d } _ _ M _ d >.e }.j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .].Z 5 f c L L c f ._.f c t ]._.5 5 _.t .f +.5 L Z c 5 5 f m m T ].5 m t 5 5 > f f > _.5 m m +.^ 5 L > t J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m e 2 ' j i j * e e e e 2 j ^ z J ' . . . . . . . .' G e e e e e e e e e e e e e e 7 . .' u U e e e e e e e e e e e e e e e e e e e e e e e e e e * ' ]. . . . . . . . . . . . . . . . > z e e e e e e e e e e e e e e e e e e e e e e e e e e e ~.k j & e e e e e e e e e e e 3 ' . . . . . .' G e 3 j ^ z e e e e e e e e e e e e e $ y [ : @ b : : b 8 l , '.D _ &., W &., h h h h @ h h @ A 8 % /.e q 7. . . . . .' ^ | e x % b K , @ @ @ @ , , , _ h = , &.&.@ h P } M M M } } M } _ # % } } } M v ) ) ) } } ) ) ) } } o e U u 2 + q G {.e X } # # # ) ) # # ) # # # # # # % e (.u ' . . . . . . . . . . . . . . . . . .].]. . . . . .].]. . . . . . .].]. .c c .].].].]. .]. . .c c .]. .].].].].]. .c c ].c c c .c c .c c c ].].c ].].c c . .c ]. .].c c ' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.~.O k k O ~.e e e e 2 j ^ z J ' . . . . . . . . 5 - e e e e e e e e e e e e e Y ^ . .' 3 e e e e e e e e e e e e e e e e e e e e e e e e e 7 +.c . . . . . . . . . . . . . . . . .' + U e e e e e e e e e e e e e e e e e e e e e e e e e U & ' & e e e e e e e e e e e 3 ' . . . . . . m z - ' ' q e e e e e e e e e e e e e X [ *.Q : K , , h , s _ w h M d g , d _ _ _ _ _ _ _ , : ) ;.e ~.[. . . . . . . .' !.q ^.e ;.) : , _ _ &.g g g M h s M d d _ s B } g g g M M s g C x # g g &.&.} } } M } } ) } v g v ~ e }.3 * & q j . r e % ) ) # ) ) # ) } ) # # # # } } X e 7 c .].c c . . . .c c ].].c c > u u ^ c c c ^ . c ].c c ].c .c f u ^ ]. ^ 5 c c c c > ^ c c c .c c c c ].c ' u m ]. c c ].c c c ].].c c c c c . ' J e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 j ^ z J ' . . . . . . . . .' O e e e e e e e e e e e e e e * j c c ' 4 e e e e e e e e e e e e e e e e e e e e e e e | m . . . . . . . . . . . . . . . . . . .j & Y e e e e e e e e e e e e e e e e e e e e e e e z + j .' & e e e e e e e e e e e 3 ' . . . . . .].' / ~.. j G ~.e e e e e e e e e e e e x B < e ;.N b A l W b _ ( n d &.&.h _ , @ @ , , H 8 *.Q (.e z G ' c . . . . . . . . .c k z e /.Q v h K h , , , M W [ g g _ d @ = ) M d , h v o ~ e Q , M M s s } } M A , , d M d ] % e - u 7 . 7 ^ c j }.e >.) } ) d , } ) } : d M ) ) _ d v ,.e 3 5 > .m . ^ f ].].f . ^ m > ^ u 5 t . & > ^ u ^ > k L u . t . c ^ L + + L k m ].. G u 3 4 t . + u c u G > . u + c u + 4 . + & 5 & . u ].u G . u m m . 5 & . ^ ^ _.u q e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e 2 i m z 4 i j . . . . . . .' u U e e e e e e e e e e e e e - ^ 5 m m 5 j 4 ~.e e e e e e e e e e e e e e e e e e e e | 5 ' . . . . . . . . . . . . . . . . . . . .].' G U e e e e e e e e e e e e e e e e e e e e e - . ' . .' & e e e e e e e e e e e 3 ' . . .].' j j i u e J i j - e e e e e e e e e e e e e C I e e ^.! # B @.l h 1 = d &., h , h h : H 8 # Q /.e /./ > j ]. . . . . . . . . . . .c ' > / Y e ^.! o @ H h h w _ @ @ : b , h '.} d , ) % ~ e e /.$ # # o # ) I o o o ) # I # o o x e 2./ k O 4 ' .c !.| e X o o # # *.# % o # # o o o o *.! e z u . . . u ^ . c L + + + + G > + u & ^ k . G m Z G 5 + k u G ' G > . u ].& > > G k ^ G G t 3 G + 5 + k 3 k & G & & . J & + + & 3 & & & G G 3 k ^ ^ & & 3 3 4 u +.k + 7 e e ", -"e e - .]. . . . . . . . . . . . . . . .c m ~.e e e e e e e e e e z 2 7 Y - 2 7 & . . . . . . . | e e e e e e e e e e e e e e r r r U - ' ' k r e e e e e e e e e e e e e e e e e e 2 L . . . . . . . . . . . . . . . . . . . . . . .' + z e e e e e e e e e e e e e e e e e e Y O 5 ' . . .' & e e e e e e e e e e e 3 ' . .c 5 7 - - - - e r - - U e e e e e e e e e e e e e ^.R e ~.U e /.>.! $ I $.$.d g g &.d } v # X >./.e ~.{.u ' . . . . . . . . . . . . . . .c ' u {.U e ^.,.;.o I v N d &.h W g } F # Q >.(.e e e e e ..............................^.e {.& q G 7 T c . .' + Y e /.............................^.e e 7 . > ^ G + L & ^ L G G k k + 5 & 5 ^ u k k > k > > 4 f + & * G & ^ k > + k _. 4 u t G 4 G j u & G 3 5 . 3 k / 4 > u J k t J 4 + u 4 4 3 k J G . 4 3 u 4 3 4 4 k & G & * & | e e ", -"e e - .]. . . . . . . . . . . . . . . .c m r U U U U U U U U U U r z z ~.r z r 4 . . . . . . .' k Y U U U U U U U U U U U U e r q 2 2 O ].' . 7 e e e e e e e e e e e e e e e z k . . . . . . . . . . . . ._. ' ' ' ' ' ' ' ' ' ' i <.O U e e e e e e e e e e e e e e e | + ' . . . . & Y U U U U U U U U U U k ' . .c m | z z z z z e r z z U U U U U U U U U U U U U U U z 7 ^ O z e e e e e >.~ ~ ~ ~ >.^.e e e e z O u ' ' ]. . . . . . . . . . . . . . . . . .].' ' ^ [.- ~.e e e e ,.~ ~ ;.~ >./.e e e e r {.7 - - - z z z z z z z z z z z z z z z z - > & ^ G u . . . .' [.z z z z z z z z z z z z z z z z z - z - + Z u G > ].+ > _.. . . G k G 5 ^ & G ^ 3 & . ' . & > 5 G k m > 3 4 ^ + G 5 5 & + ^ G k m c c u > u f ].c + & G u L ^ ^ . k & 5 + k m u . . ^ . 4 4 m G + . t 3 + + + u ' q e e ", -"e e - .]. . . . . . . . . . . . . . . . .f . . . . . . . . . . . ^ 5 . z * L > L . . . . . . . .].t . . . . . . . . . . . . ^ 7 U L i i j . . . T G | U e e e e e e e e e ~.z J > ' . . . . . . . . . . . . . . .' k | 7 7 7 7 7 7 7 7 7 7 7 7 z e e e e e e e e e e e e U 7 G :.' . . . . . .].5 . . . . . . . . . . . 5 ]. . . ._.m m m m L + e / f > . . . . . . . . . . . . . . ^ m m ' m u }.7 z z z z z r z z z z 7 }.u m j . . . . . . . . . . . . . . . . . . . . . . .c j L . 3 {.- z z z z r z z z z | O G > L m m m m m m m m m m m m m m m m > > > m c ' . . . . . .|.> > m m m m m m m m > > > > > > > m m > f c c . c .c c ' u ^ j ].c ' ' m + _. ' c ]. ' ^ 4 u .' ' ].].' c ' ' ]. . . c . . . ' ].c c c ' ' ]. ' ]. c <.G L ' c ].' _. ' J e e ", -"e e - .]. . . . . . . . . . . . . . . . . . ' > z J j c . . . . . . . . .c i G e * j . . . . . .c ' ' u 4 q | - - - - 2 * G t ' . . . . . . . . . . . . . . . .j 4 z - - - - - - - - - - - - - - - - - - - - - - | q 4 . ' ' c . . . . . . . .c c . . . . .c ' T - z :. c . . ' ' ' ' ' ' . . . . . . . . . . . . . . . . . . . . . . . . . . .c ' ' ' ' ' ' c c . . . . . . . . . . .c ]. . . . . . . . . . . .].]. . . . . . .c . . . . . . . . . . .f c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . > - 3 ' . . . . . . . . . . . . . . . . . . . . . . . .c t - q ]. . . . . . . . . j ' t 5 5 5 5 j ' ]. . . . . . . . . . . . . . . . . . .].t 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 t ' j . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .j J e k ' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - .]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ._.m L ]. . . . . . . . . . . . . . . . . . . . . . . . . .c > . . . . . . . . . . . . .].c c c c c c . . . . . . . . . . . . . . . . . . . . . .].c c c c c c c c c c c c c c c c c c c c c c c c ]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .c > J + . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .' J e e ", -"e e - ].c ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].c c ].].].].].].].].].].].].].].].].].].].].].].].].].].]. ].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].]. j .].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].].' J e e ", -"e e - j J e e ", -"e e r 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 q - e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ,.$ ! e e e e e e e e e e e e e e e e e e e e e ~ 0 ! e e e e e e e e e e e e e e e e e e e e e e e e /.$ $ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Q I ;.e e e e e e e >.I ;.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e ^.^.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e /./.e e e e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e e /.e e e e e e e e e e e e ^./.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e R e e e e e e e e e e e ^.(.e e e e e e e e e e e e e e e e e e e e e ~ p o e e e e e e e e e e e e e e e e e e e e e X { % e e ^.e e e e e e e e e e R ^.e e e e e e e e e (.9 9 e /.e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e % { { C e e e e e e e ;.{ C e e e e e e e e e e ^.e e e e e e e e e e ^.^.e e /.e e e e e e e e e e e e e e e e e e e e e e e e e e e e R ^.e e e e e e e e e e e e e ^.e e e e e e e e e e /.e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e R o y 9 % ^.e e e e e e e e % < E y < X e e e e e e e e e /.o y 9 % ^.e e e e e e e e $ 0 < y % e e e e e e e e e e e e e e e e e e e e (.I y 0 >.e e e e e e e e e % 9 y $ R e e e e e e e e ! < ~ e o 0 /.e e e e e e e % < < X e e e e e e e e ;.0 ; 0 ~ e e e e e e e e X < ; E >.e e e e e e e e e e e e e e e e e e e >.< C e e e e e e e (.E o e ~ < ! e e e e e e e ;.{ C ~ < o e e e e e e e e ,.a ; < ! e e e e e e e e R < p E ; E >.e e e e e e e e e ,.I ; < ! e e e e e e e e $ < >.C 9 X e e e e e e e e e e e e e e e e e e % p { 0 (.e e e e e e e ~ 9 ! e e e e e e e >.E < E e e e e e e e (.I 0 < 9 % a ; 0 ~ e e e e e e e (.a I e I 0 e o 0 ,.e e e e e e e R $ y < a 0 x e e e e e e e ~ 0 0 I e e e e e e e e ,.I ; < ! e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e $ { < 9 { o e e e e e e e e $ { p 0 p p ;.e e e e e e e e $ { < < { $ e e e e e e e e 0 { 9 y { C e e e e e e e e e e e e e e e e e e e $ { < ; $ e e e e e e e e % { 9 < { I e e e e e e e e % { ;.e a { /.e e e e e e e a { ; ;.e e e e e e e ~ p p < ; ! e e e e e e e ;.p ; E { 9 x e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ o < { ;.e e e e e e e R < { 0 ; { ! e e e e e e e R < { y < { < (.e e e e e e e R < { 0 ; { ! e e e e e e e X { 9 ; < (.e e e e e e e e e e e e e e e e e e o { { $ e e e e e e e e ;.{ C e e e e e e e ~ p { a e e e e e e e x 9 { < y { { < { 9 /.e e e e e e e E p ! ; { ! < 9 /.e e e e e e e I { < 9 { { x e e e e e e e ! { { $ e e e e e e e (.< { 0 y { ! e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e R { E ^.(.< p (.e e e e e e e I { Q e X { $ e e e e e e e ,.p { E 0 { ; ,.e e e e e e e < p ,.,.p a e e e e e e e e e e e e e e e e e e e o { < I ~ e e e e e e e (.y 9 (.e a { ~ e e e e e e e % { ;.e a { /.e e e e e e e a p ~ e e e e e e e e $ { ;.e x e e e e e e e e I { < a y { % e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ ; { C e e e e e e e e Q { ; a < { 0 e e e e e e e R < p >.e o { Q e e e e e e e ! { % e ~ p 0 e e e e e e e e o { p ;.e e e e e e e e e e e e e e e e e e e R 0 p R e e e e e e e e ;.{ C e e e e e e e ~ { a e e e e e e e e x y < e ! { I e o { X e e e e e e e % { < p { < { $ e e e e e e e >.p E ^./.0 { x e e e e e e e X { $ e e e e e e e e ! { ; a < { 0 e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e R { $ e e I { ,.e e e e e e e I { ;.e (.{ I e e e e e e e >.{ { y y ; 9 ~ e e e e e e e < y (./.; E e e e e e e e e e e e e e e e e e e e /.% < { E e e e e e e e ,.p E e e o { ;.e e e e e e e % { ;.e a { /.e e e e e e e a p (.e e e e e e e e a { (.e e e e e e e e e e E { ; ; y ; o e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e x p a e X { % e e e e e e e ;.{ { { Q e e e e e e e e % { p ; y ; 0 e e e e e e e R 9 9 e e Q { C e e e e e e e C { X e (.9 9 e e e e e e e e C { ; x e e e e e e e e e e e e e e e e e e e e E p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e >.p { p ; { { X e e e e e e e ~ { $ e e I { x e e e e e e e X { % e e e e e e e e C { p y y ; E /.e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e ^.< { % o { E e e e e e e e e $ { < Q 0 { C e e e e e e e /.< { $ I $ ,.^.e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e a < % y y R e e e e e e e a { o C p 9 (.e e e e e e e ! { E C ; p /.e e e e e e e a p x e e e e e e e e Q { 0 C $ >.e e e e e e e C { < o E ;.R e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e 9 p C E { % e e e e e e e ;.{ $ 9 p ~ e e e e e e e >.p ; o E C x e e e e e e e R < { I Q y p ~ e e e e e e e >.p 9 Q I { o e e e e e e e ,.y { { I e e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e < { E $ { ; R e e e e e e e /.9 { % o p { x e e e e e e e X { % e e e e e e e e >.p ; o a % (.e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e ~ 9 { { < >.e e e e e e e e $ { p { { $ /.e e e e e e e e ~ < { { 0 R e e e e e e e e < y (.R ; E e e e e e e e e e e e e e e e e e e e Q p { { o e e e e e e e e ,.< { { 9 ;.e e e e e e e e ^.$ { { p p /.e e e e e e e a p x e e e e e e e e ^.$ { { { Q e e e e e e e /.$ { { p X e e e e e e e e e e e e e e e e e e e ;.{ $ e e e e e e e e X ; { p { % e e e e e e e ;.{ C ;.{ 9 x e e e e e e e Q p { { $ e e e e e e e e R < { p { p C e e e e e e e e e Q p { { I R e e e e e e e I { ! a { ! e e e e e e e e e e e e e e e e e e e 0 p e e e e e e e e e ;.{ C e e e e e e e ~ { $ e e e e e e e e x ; 0 e ;.{ o e C { ! e e e e e e e e o { C ! { a e e e e e e e e e ;.y { { p { x e e e e e e e ! { % e e e e e e e e e Q ; { { $ e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e (.X ;.R e e e e e e e e e I { X X ~ e e e e e e e e e e e (.X ;.R e e e e e e e e e x ,.e e ,.x e e e e e e e e e e e e e e e e e e e e ,.! ~ e e e e e e e e e e /.;.X (.e e e e e e e e e e ^.;.;.,.,.e e e e e e e e x ,.^.e e e e e e e e e e >.! >.e e e e e e e e e e >.! ,.e e e e e e e e e e e e e e e e e e e e C { o e e e e e e e e e ,.X >.>.(.e e e e e e e /.>.(.e x >.R e e e e e e e e x ! ~ ^.e e e e e e e e e ,.,.>.X >.e e e e e e e e e e e x ! ~ ^.e e e e e e e e >.>.e (.>.(.e e e e e e e e e e e e e e e e e e e x ,.e e e e e e e e e /.>.(.e e e e e e e ^.>.x e e e e e e e e ^.,.x e /.>.(.e (.>.R e e e e e e e e R >./.^.>.(.e e e e e e e e e e (.! ~ x >.^.e e e e e e e /.>.(.e e e e e e e e e e ,.X ~ ^.e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e I { ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e /.p p ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e X C (.e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ^.C ~ e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e ", -"e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e "}; diff --git a/rbutil/rbutil-rc.rc b/rbutil/rbutil-rc.rc deleted file mode 100644 index 3202cefc49..0000000000 --- a/rbutil/rbutil-rc.rc +++ /dev/null @@ -1,27 +0,0 @@ -#define RBUTIL 1 -#include -RBUTIL VERSIONINFO -FILEVERSION 0,3,2,6 -PRODUCTVERSION 0,3,2,6 -FILEOS 0x00000004 -FILETYPE 0x00000001 -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "FFFF0000" - BEGIN - VALUE "FileVersion", "0.3.2.6\0" - VALUE "ProductVersion", "0.3.2.6\0" - VALUE "CompanyName", "Rockbox Team\0" - VALUE "FileDescription", "Rockbox Utility\0" - VALUE "InternalName", "rbutil\0" - VALUE "LegalCopyright", "(C) 2005 - 2007 Rockbox Team\0" - VALUE "ProductName", "Rockbox Utility\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0xFFFF, 0x0000 - END -END -RBUTIL_ICON ICON archos.ico diff --git a/rbutil/rbutil.cbp b/rbutil/rbutil.cbp deleted file mode 100644 index 2db68ceac7..0000000000 --- a/rbutil/rbutil.cbp +++ /dev/null @@ -1,196 +0,0 @@ - - - - - - diff --git a/rbutil/rbutil.cpp b/rbutil/rbutil.cpp deleted file mode 100644 index 058ca10a27..0000000000 --- a/rbutil/rbutil.cpp +++ /dev/null @@ -1,783 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutil.cpp - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "rbutil.h" -#include "installlog.h" - -/* this function gets a Bitmap from embedded memory */ -wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length) -{ - wxMemoryInputStream istream( data,length); - return wxBitmap(wxImage(istream, wxBITMAP_TYPE_ANY, -1), -1); -} - -// This class allows us to return directories as well as files to -// wxDir::Traverse -class wxDirTraverserIncludeDirs : public wxDirTraverser -{ -public: - wxDirTraverserIncludeDirs(wxArrayString& files) : m_files(files) { } - - virtual wxDirTraverseResult OnFile(const wxString& filename) - { - m_files.Add(filename); - return wxDIR_CONTINUE; - } - - virtual wxDirTraverseResult OnDir(const wxString& dirname) - { - m_files.Add(dirname); - return wxDIR_CONTINUE; - } - -private: - wxArrayString& m_files; -}; - -wxDEFINE_SCOPED_PTR_TYPE(wxZipEntry); - -const wxChar* _rootmatch[] = { - wxT("rockbox.*"), - wxT("ajbrec.ajz"), - wxT("archos.mod"), - wxT(".scrobbler.*"), - wxT("battery_bench.txt"), - wxT("battery.dummy"), -}; -const wxArrayString* rootmatch = new wxArrayString( - (size_t) (sizeof(_rootmatch) / sizeof(wxChar*)), _rootmatch); - -bool InstallTheme(wxString Themesrc) -{ - wxString dest,src,err; - - int pos = Themesrc.Find('/',true); - wxString themename = Themesrc.SubString(pos+1,Themesrc.Length()); - - src = gv->themes_url + wxT("/") + Themesrc; - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) + themename; - if( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Install Theme")); - return false; - } - - if(!checkZip(dest)) - { - ERR_DIALOG(wxT("The Zip ") + dest - + wxT(" does not contain the correct dir structure"), - wxT("Install Theme")); - return false; - } - - if(UnzipFile(dest,gv->curdestdir, true)) - { - ERR_DIALOG(wxT("Unable to unzip ") + dest + wxT(" to ") - + gv->curdestdir, wxT("Install Theme")); - return false; - } - - return true; -} - -bool checkZip(wxString zipname) -{ - - wxZipEntryPtr entry; - - wxFFileInputStream* in_file = new wxFFileInputStream(zipname); - wxZipInputStream* in_zip = new wxZipInputStream(*in_file); - - entry.reset(in_zip->GetNextEntry()); - - wxString name = entry->GetName(); - if(entry->IsDir()) - { - if( 0==name.Cmp(wxT(".rockbox")) - || 0==name.Cmp(wxT(".rockbox\\")) - || 0==name.Cmp(wxT(".rockbox/")) ) - return true; - } - else - { - if( name.StartsWith(wxT(".rockbox/")) - || name.StartsWith(wxT(".rockbox\\")) ) - return true; - } - - return false; - -} - -int DownloadURL(wxString src, wxString dest) -{ - int input, errnum = 0, success = false; - wxString buf, errstr; - wxLogVerbose(wxT("=== begin DownloadURL(%s,%s)"), src.c_str(), - dest.c_str()); - - buf = wxT("Fetching ") + src; - wxProgressDialog* progress = new wxProgressDialog(wxT("Downloading"), - buf, 100, NULL, wxPD_APP_MODAL | - wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | - wxPD_REMAINING_TIME | wxPD_CAN_ABORT); - progress->SetSize(500,200); - progress->Update(0); - - - input = true; - wxURL* in_http = new wxURL(src); - - if(gv->proxy_url != wxT("")) - in_http->SetProxy(gv->proxy_url); - - if (in_http->GetError() == wxURL_NOERR) - { - - wxFFileOutputStream* os = new wxFFileOutputStream(dest); - input = false; - if (os->IsOk()) - { - wxInputStream* is = in_http->GetInputStream(); - input = true; - if (is) - { - size_t filesize = is->GetSize(); - input = true; - if (is->IsOk()) - { - char buffer[FILE_BUFFER_SIZE + 1]; - size_t current = 0; - - while (! is->Eof()) - { - is->Read(buffer, FILE_BUFFER_SIZE); - input = true; - if (is->LastRead() ) - { - os->Write(buffer, is->LastRead()); - input = false; - if (os->IsOk()) - { - current += os->LastWrite(); - if (!progress->Update(current * 100 / filesize)) - { - errstr = wxT("Download aborted by user"); - errnum = 1000; - break; - } - - } else - { - errnum = os->GetLastError(); - errstr = wxT("Can't write to output stream (") - + stream_err_str(errnum) + wxT(")"); - - break; - } - - } else - { - errnum = is->GetLastError(); - if (errnum == wxSTREAM_EOF) - { - errnum = 0; - break; - } - errstr = wxT("Can't read from input stream (") - + stream_err_str(errnum) + wxT(")"); - } - } - - os->Close(); - if (! errnum) - { - errnum = os->GetLastError(); - errstr = wxT("Can't close output file (") - + stream_err_str(errnum) + wxT(")"); - - input = false; - } - - if (! errnum) success = true; - - } else - { - errnum = is->GetLastError(); - errstr = wxT("Can't get input stream size (") - + stream_err_str(errnum) + wxT(")"); - } - } else - { - errnum = in_http->GetError(); - errstr.Printf(wxT("Can't get input stream (%d)"), errnum); - } - delete is; - } else - { - errnum = os->GetLastError(); - errstr = wxT("Can't create output stream (") - + stream_err_str(errnum) + wxT(")"); - } - delete os; - } else - { - errstr.Printf(wxT("Can't open URL %s (%d)"), src.c_str(), - in_http->GetError() ); - errnum = 100; - } - - delete in_http; - delete progress; - - if (!success) - { - if (errnum == 0) errnum = 999; - if (input) - { - ERR_DIALOG(errstr + wxT(" reading\n") + src, wxT("Download URL")); - } else - { - ERR_DIALOG(errstr + wxT("writing to download\n/") + dest, - wxT("Download URL")); - } - - } - - wxLogVerbose(wxT("=== end DownloadURL")); - return errnum; -} - -int UnzipFile(wxString src, wxString destdir, bool isInstall) -{ - - wxZipEntryPtr entry; - wxString in_str, progress_msg, buf,subdir; - int errnum = 0, curfile = 0, totalfiles = 0; - InstallLog* log = NULL; - - wxLogVerbose(wxT("===begin UnzipFile(%s,%s,%i)"), - src.c_str(), destdir.c_str(), isInstall); - - wxFFileInputStream* in_file = new wxFFileInputStream(src); - wxZipInputStream* in_zip = new wxZipInputStream(*in_file); - if (in_file->Ok() ) - { - if (! in_zip->IsOk() ) - { - errnum = in_zip->GetLastError(); - ERR_DIALOG(wxT("Can't open ZIP stream ") + src - + wxT(" for reading (") + stream_err_str(errnum) - + wxT(")"), wxT("Unzip File") ); - delete in_zip; - delete in_file; - return true; - } - - totalfiles = in_zip->GetTotalEntries(); - if (! in_zip->IsOk() ) - { - errnum = in_zip->GetLastError(); - ERR_DIALOG( wxT("Error Getting total ZIP entries for ") - + src + wxT(" (") + stream_err_str(errnum) + wxT(")"), - wxT("Unzip File") ); - delete in_zip; - delete in_file; - return true; - } - } else - { - errnum = in_file->GetLastError(); - ERR_DIALOG(wxT("Can't open ") + src + wxT(" (") - + stream_err_str(errnum) + wxT(")"), wxT("Unzip File") ); - delete in_zip; - delete in_file; - return true; - } - - wxProgressDialog* progress = new wxProgressDialog(wxT("Unpacking archive"), - wxT("Preparing to unpack the downloaded files to your audio" - "device"), totalfiles, NULL, wxPD_APP_MODAL | - wxPD_AUTO_HIDE | wxPD_SMOOTH | wxPD_ELAPSED_TIME | - wxPD_REMAINING_TIME | wxPD_CAN_ABORT); - progress->Update(0); - - // We're not overly worried if the logging fails - if (isInstall) - { - log = new InstallLog(destdir + wxT("" PATH_SEP UNINSTALL_FILE)); - } - - while (! errnum && - (entry.reset(in_zip->GetNextEntry()), entry.get() != NULL) ) - { - - - curfile++; - wxString name = entry->GetName(); - // set progress - progress_msg = wxT("Unpacking ") + name; - if (! progress->Update(curfile, progress_msg) ) - { - MESG_DIALOG(wxT("Unpacking cancelled by user")); - errnum = 1000; - break; - } - - in_str = destdir + wxT("" PATH_SEP) + name; - - subdir = wxPathOnly(in_str); - if(!(wxDirExists(subdir))) - { - if (! wxMkdir(subdir, 0777) ) - { - buf = wxT("Unable to create directory ") + subdir; - errnum = 100; - break; - } - log->WriteFile(subdir, true); // Directory - } - - if(entry->IsDir()) - { - if(!wxDirExists(name)) - { - if(!wxMkdir(name, 0777) ) - { - buf = wxT("Unable to create directory ") + name; - errnum = 100; - break; - } - } - log->WriteFile(name, true); // Directory - continue; // this is just a directory, nothing else to do - } - - // its a file, copy it - wxFFileOutputStream* out = new wxFFileOutputStream(in_str); - if (! out->IsOk() ) - { - buf = wxT("Can't open file ") + in_str + wxT(" for writing"); - delete out; - errnum = 100; - break; - } else if (isInstall) - { - log->WriteFile(name); - } - - in_zip->Read(*out); - if (! out->IsOk()) { - buf.Printf(wxT("Can't write to %s (%d)"), in_str.c_str(), - errnum = out->GetLastError() ); - } - - if (!in_zip->IsOk() && ! in_file->GetLastError() == wxSTREAM_EOF) - { - buf.Printf(wxT("Can't read from %s (%d)"), src.c_str(), - errnum = in_file->GetLastError() ); - } - - if (! out->Close() && errnum == 0) - { - buf.Printf(wxT("Unable to close %s (%d)"), in_str.c_str(), - errnum = out->GetLastError() ); - - } - - delete out; - - } - - delete in_zip; delete in_file; delete progress; - - if (errnum) - { - ERR_DIALOG(buf, wxT("Unzip File")); - } - - if (log) delete log; - wxLogVerbose(wxT("=== end UnzipFile")); - return(errnum); - -} - -int Uninstall(const wxString dir, bool isFullUninstall) { - wxString buf, uninst; - unsigned int i; - bool errflag = false; - InstallLog *log = NULL; - wxArrayString* FilesToRemove = NULL; - - wxLogVerbose(wxT("=== begin Uninstall(%s,%i)"), dir.c_str(), isFullUninstall); - - wxProgressDialog* progress = new wxProgressDialog(wxT("Uninstalling"), - wxT("Reading uninstall data from jukebox"), 100, NULL, - wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | - wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); - progress->Update(0); - - if (! isFullUninstall) - { - - buf = dir + wxT("" PATH_SEP UNINSTALL_FILE); - log = new InstallLog(buf, false); // Don't create the log - FilesToRemove = log->GetInstalledFiles(); - if (log) delete log; - - if (FilesToRemove == NULL || FilesToRemove->GetCount() < 1) { - wxLogNull lognull; - if ( wxMessageDialog(NULL, - wxT("Rockbox Utility can't find any uninstall data on this " - "jukebox.\n" - "Would you like to attempt a full uninstall?\n" - "(WARNING: A full uninstall removes all files in your Rockbox " - "folder)"), - wxT("Standard uninstall not possible"), - wxICON_EXCLAMATION | wxYES_NO | wxNO_DEFAULT).ShowModal() - == wxID_YES) - { - isFullUninstall = true; - } - else { - MESG_DIALOG(wxT("Uninstall cancelled by user")); - delete progress; - return 1000; - } - } - } - - if (isFullUninstall ) - { - buf = dir + wxT("" PATH_SEP ".rockbox"); - if (rm_rf(buf) ) - { - WARN_DIALOG(wxT("Unable to completely remove Rockbox directory"), - wxT("Full uninstall") ); - errflag = true; - } - - wxDir* root = new wxDir(dir); - wxArrayString* special = new wxArrayString(); - // Search for files for deletion in the jukebox root - for (i = 0; i < rootmatch->GetCount(); i++) - { - const wxString match = (*rootmatch)[i]; - root->GetAllFiles(dir, special, match, wxDIR_FILES); - } - delete root; - - // Sort in reverse order so we get directories last - special->Sort(true); - - for (i = 0; i < special->GetCount(); i++) - { - - if (wxDirExists((*special)[i]) ) - { - // We don't check the return code since we don't want non - // empty dirs disappearing. - wxRmdir((*special)[i]); - - } else if (wxFileExists((*special)[i]) ) - { - if (! wxRemoveFile((*special)[i]) ) - { - WARN_DIALOG(wxT("Can't delete ") + (*special)[i], - wxT("Full uninstall")); - errflag = true; - } - } - // Otherwise there isn't anything there, so we don't have to worry. - } - delete special; - } else - { - wxString instplat, this_path_sep; - unsigned int totalfiles, rc; - totalfiles = FilesToRemove->GetCount(); - FilesToRemove->Sort(true); // Reverse alphabetical ie dirs after files - - for (i = 0; i < totalfiles; i++) - { - // If we're running on the device, let's not delete our own - // installation, eh? - if (gv->portable && - FilesToRemove->Item(i).StartsWith(PATH_SEP - wxT("RockboxUtility")) ) - { - continue; - } - - wxString* buf2 = new wxString; - buf = dir + FilesToRemove->Item(i); - buf2->Format(wxT("Deleting %s"), buf.c_str()); - - if (! progress->Update((i + 1) * 100 / totalfiles, *buf2) ) - { - WARN_DIALOG(wxT("Cancelled by user"), wxT("Normal Uninstall")); - delete progress; - return true; - } - - if (wxDirExists(buf) ) - { - // If we're about to attempt to remove .rockbox. delete - // install data first - *buf2 = dir + wxT("" PATH_SEP ".rockbox"); - if ( buf.IsSameAs(buf2->c_str()) ) - { - *buf2 = dir +wxT("" PATH_SEP UNINSTALL_FILE); - wxRemoveFile(*buf2); - } - - if ( (rc = ! wxRmdir(buf)) ) - { - buf = buf.Format(wxT("Can't remove directory %s"), - buf.c_str()); - errflag = true; - WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); - } - } else if (wxFileExists(buf) ) - { - if ( (rc = ! wxRemoveFile(buf)) ) - { - buf = buf.Format(wxT("Can't delete file %s"), - buf.c_str()); - errflag = true; - WARN_DIALOG(buf.c_str(), wxT("Standard uninstall")); - } - } else - { - errflag = true; - buf = buf.Format(wxT("Can't find file or directory %s"), - buf.c_str() ); - WARN_DIALOG(buf.c_str(), wxT("Standard uninstall") ); - } - - uninst = uninst.AfterFirst('\n'); - } - if (errflag) - { - ERR_DIALOG(wxT("Unable to remove some files"), - wxT("Standard uninstall")) ; - } - - if (FilesToRemove != NULL) delete FilesToRemove; - } - - delete progress; - wxLogVerbose(wxT("=== end Uninstall")); - return errflag; -} - - -wxString stream_err_str(int errnum) -{ - wxString out; - - switch (errnum) { - case wxSTREAM_NO_ERROR: - out = wxT("wxSTREAM_NO_ERROR"); - break; - case wxSTREAM_EOF: - out = wxT("wxSTREAM_EOF"); - break; - case wxSTREAM_WRITE_ERROR: - out = wxT("wxSTREAM_WRITE_ERROR"); - break; - case wxSTREAM_READ_ERROR: - out = wxT("wxSTREAM_READ_ERROR"); - break; - default: - out = wxT("UNKNOWN"); - break; - } - return out; -} - -bool InstallRbutil(wxString dest) -{ - wxArrayString filestocopy; - wxString str, buf, dstr, localpath, destdir; - unsigned int i; - wxDir dir; - bool copied_exe = false, made_rbdir = false; - InstallLog* log; - - buf = dest + wxT("" PATH_SEP ".rockbox"); - - if (! wxDirExists(buf) ) - { - wxMkdir(buf); - made_rbdir = true; - } - - buf = dest + wxT("" PATH_SEP UNINSTALL_FILE); - log = new InstallLog(buf); - if (made_rbdir) log->WriteFile(wxT(".rockbox"), true); - - destdir = dest + wxT("" PATH_SEP "RockboxUtility"); - if (! wxDirExists(destdir) ) - { - if (! wxMkdir(destdir, 0777) ) - { - WARN_DIALOG( wxT("Unable to create directory for installer (") - + destdir + wxT(")"), wxT("Portable install") ); - return false; - } - log->WriteFile(wxT("RockboxUtility"), true); - } - - dir.GetAllFiles(gv->ResourceDir, &filestocopy, wxT("*"), - wxDIR_FILES); - if (filestocopy.GetCount() < 1) - { - WARN_DIALOG(wxT("No files to copy"), wxT("Portable install") ); - return false; - } - - // Copy the contents of the program directory - for (i = 0; i < filestocopy.GetCount(); i++) - { - if (filestocopy[i].AfterLast(PATH_SEP_CHR) == EXE_NAME) - { - copied_exe = true; - } - - dstr = destdir + wxT("" PATH_SEP) - + filestocopy[i].AfterLast(PATH_SEP_CHR); - if (! wxCopyFile(filestocopy[i], dstr) ) - { - WARN_DIALOG( wxT("Error copying file (") - + filestocopy[i].c_str() + wxT(" -> ") - + dstr + wxT(")"), wxT("Portable Install") ); - return false; - } - buf = dstr; - buf.Replace(dest, wxEmptyString, false); - log->WriteFile(buf); - } - - if (! copied_exe) - { - str = gv->AppDir + wxT("" PATH_SEP EXE_NAME); - dstr = destdir + wxT("" PATH_SEP EXE_NAME); - if (! wxCopyFile(str, dstr) ) - { - WARN_DIALOG(wxT("Can't copy program binary ") - + str + wxT(" -> ") + dstr, wxT("Portable Install") ); - return false; - } - buf = dstr; - buf.Replace(dest, wxEmptyString, false); - log->WriteFile(buf); - } - - // Copy the local ini file so that it knows that it's a portable copy - gv->UserConfig->Flush(); - dstr = destdir + wxT("" PATH_SEP "RockboxUtility.cfg"); - if (! wxCopyFile(gv->UserConfigFile, dstr) ) - { - WARN_DIALOG(wxT("Unable to install user config file (") - + gv->UserConfigFile + wxT(" -> ") + dstr + wxT(")"), - wxT("Portable Install") ); - return false; - } - buf = dstr; - buf.Replace(dest, wxEmptyString, false); - log->WriteFile(buf); - - delete log; - return true; -} - -bool rm_rf(wxString file) -{ - wxLogVerbose(wxT("=== begin rm-rf(%s)"), file.c_str() ); - - wxString buf; - wxArrayString selected; - wxDirTraverserIncludeDirs wxdtid(selected); - unsigned int rc = 0, i; - bool errflag = false; - - if (wxFileExists(file) ) - { - rc = ! wxRemoveFile(file); - } else if (wxDirExists(file) ) - { - wxDir* dir = new wxDir(file);; - dir->Traverse(wxdtid); - delete dir; - // Sort into reverse alphabetical order for deletion in correct order - // (directories after files) - selected.Sort(true); - selected.Add(file); - - wxProgressDialog* progress = new wxProgressDialog(wxT("Removing files"), - wxT("Deleting files"), selected.GetCount(), NULL, - wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_SMOOTH | - wxPD_ELAPSED_TIME | wxPD_REMAINING_TIME | wxPD_CAN_ABORT); - - for (i = 0; i < selected.GetCount(); i++) - { - wxLogVerbose(selected[i]); - if (progress != NULL) - { - buf = wxT("Deleting ") + selected[i]; - if (! progress->Update(i, buf)) - { - WARN_DIALOG(wxT("Cancelled by user"), wxT("Erase Files")); - delete progress; - return true; - } - } - - if (wxDirExists(selected[i]) ) - { - if ((rc = ! wxRmdir(selected[i])) ) - { - errflag = true; - WARN_DIALOG(wxT("Can't remove directory ") + selected[i], - wxT("Erase files")); - } - } else if ((rc = ! wxRemoveFile(selected[i])) ) - { - errflag = true; - WARN_DIALOG(wxT("Error deleting file ") + selected[i], - wxT("Erase files")); - } - } - delete progress; - } else - { - WARN_DIALOG(wxT("Can't find expected file ") + file, - wxT("Erase files")); - return true; - } - - wxLogVerbose(wxT("=== end rm-rf")); - return rc ? true : false; -} - - diff --git a/rbutil/rbutil.h b/rbutil/rbutil.h deleted file mode 100644 index eb31986ace..0000000000 --- a/rbutil/rbutil.h +++ /dev/null @@ -1,176 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutil.h - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#ifdef __BORLANDC__ - #pragma hdrstop -#endif -#ifndef WX_PRECOMP - #include -#endif - -#ifndef __rbutil_HPP_ -#define __rbutil_HPP_ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __WXMSW__ -#define PATH_SEP "\\" -#define PATH_SEP_CHR '\\' -#define EXE_NAME wxT("rbutil.exe") -#else -#define PATH_SEP wxT("/") -#define PATH_SEP_CHR '/' -#define EXE_NAME wxT("rbutil") -#endif - -#define UNINSTALL_FILE wxT(".rockbox" PATH_SEP ".rbutil_install_data") -#define MAX_PLATFORMS 50 -#define SYSTEM_CONFIG rbutil.ini -#define FILE_BUFFER_SIZE 1024 - -//WX_DEFINE_OBJARRAY(bool, wxArrayBool); - -class GlobalVars -{ -public: - // Program configuration data (rbutil.ini and environment) - wxFileConfig* GlobalConfig; - wxFileConfig* UserConfig; - wxString UserConfigFile; - wxString GlobalConfigFile; - wxString AppDir; - wxString ResourceDir; - - wxString* ErrStr; - wxStandardPaths* stdpaths; - wxArrayString plat_id; - wxArrayString plat_name; - wxArrayInt plat_released; - wxArrayInt plat_needsbootloader; - wxArrayString plat_bootloadermethod; - wxArrayString plat_bootloadername; - wxArrayString plat_resolution; - wxArrayString plat_manualname; - wxString download_url; - wxString daily_url; - wxString bleeding_url; - wxString server_conf_url; - wxString font_url; - wxString last_release; - wxString prog_name; - wxString bootloader_url; - wxString themes_url; - wxString manual_url; - wxString doom_url; - wxString proxy_url; - - - // User configuration data. - wxString curplat; - // unsigned int curplatnum; - wxString curdestdir; - wxString curfirmware; - unsigned int curbuild; - bool curisfull; - bool nocache; - bool portable; - wxString curresolution; - wxArrayString themesToInstall; - wxString pathToTts; - wxString pathToEnc; - - - - // Global system variables - wxFFile* logfile; - wxLogStderr* logstderr; - wxLogChain* logchain; - wxLogGui* loggui; -}; - -extern GlobalVars* gv; - - -wxString wxFindAppPath(const wxString& argv0, const wxString& cwd, - const wxString& appVariableName); -int DownloadURL(wxString src, wxString dest); -int UnzipFile(wxString src, wxString destdir, bool isInstall = false); -int Uninstall(const wxString dir, bool isFullUninstall = false); -bool InstallRbutil(wxString dest); -bool InstallTheme(wxString src); -bool checkZip(wxString zipname); -wxString stream_err_str(int errnum); -bool rm_rf(wxString file); - -wxBitmap wxGetBitmapFromMemory(const unsigned char *data,int length); - - -#define ERR_DIALOG(msg, title) \ - wxLogError(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str()) - -#define WARN_DIALOG(msg, title) \ - wxLogWarning(wxT("%s: %s"), ((wxString) title).c_str(), ((wxString) msg).c_str()) - -#define MESG_DIALOG(msg) \ - wxLogMessage(msg) - -#define INFO_DIALOG(msg) \ - wxLogInfo(msg) - -#define BUILD_RELEASE 0 -#define BUILD_DAILY 1 -#define BUILD_BLEEDING 2 - -#define BOOTLOADER_ADD 0 -#define BOOTLOADER_REM 1 - - -#endif diff --git a/rbutil/rbutil.ini b/rbutil/rbutil.ini deleted file mode 100644 index 1ab45ecdcc..0000000000 --- a/rbutil/rbutil.ini +++ /dev/null @@ -1,299 +0,0 @@ -[general] -download_url=http://www.rockbox.org/download/ -daily_url=http://download.rockbox.org/daily/ -bleeding_url=http://build.rockbox.org/dist/build- -server_conf_url=http://www.rockbox.org/daily/build-info -font_url=http://www.rockbox.org/daily/fonts/rockbox-fonts- -last_release=2.5 -prog_name=rockbox -bootloader_url=http://download.rockbox.org/bootloader -themes_url=http://www.rockbox-themes.org/ -manual_url=http://download.rockbox.org/manual -doom_url=http://download.rockbox.org/useful/rockdoom.zip - -[platforms] -platform1=player -platform2=recorder -platform3=recorder8mb -platform4=recorderv2 -platform5=fmrecorder -platform6=fmrecorder8mb -platform7=ondiosp -platform8=ondiofm -platform9=h100 -platform10=h120 -platform11=h300 -platform12=h10_5gbums -platform13=h10_5gbmtp -platform14=h10 -platform15=ipod3g -platform16=ipod4gray -platform17=ipodcolor -platform18=ipodvideo -platform19=ipodmini1g -platform20=ipodmini2g -platform21=ipodnano -platform22=iaudiox5 -platform23=iaudiom5 -platform24=iaudiox5v -platform25=gigabeatf -platform26=sansae200 - -[player] -name=Archos Jukebox Player 6000, Jukebox Studio 5/10/20 -platform=player -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=11x2x1 -manualname= - -[recorder] -name=Archos Jukebox Recorder 10, 20 -platform=recorder -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname= - -[recorder8mb] -name=Archos Jukebox Recorder 10, 20 (with 8mb memory) -platform=recorder8mb -released=no -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname=rockbox-recorder - -[recorderv2] -name=Archos Jukebox Recorder v2 (20GB) -platform=recorderv2 -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname= - -[fmrecorder] -name=Archos Jukebox Recorder FM -platform=fmrecorder -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname= - -[fmrecorder8mb] -name=Archos Jukebox Recorder FM (with 8mb memory) -platform=fmrecorder8mb -released=no -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname=rockbox-fmrecorder - -[ondiosp] -name=Archos Ondio SP -platform=ondiosp -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname= - -[ondiofm] -name=Archos Ondio FM -platform=ondiofm -released=yes -needsbootloader=no -bootloadermethod= -bootloadername= -resolution=112x64x1 -manualname= - -[h100] -name=Iriver iHP100, iHP110 -platform=h100 -released=no -needsbootloader=yes -bootloadermethod=fwpatcher -bootloadername=bootloader-h100.bin -resolution=160x128x2 -manualname=rockbox-h100 - -[h120] -name=Iriver iHP120, iHP140, H120, H140 -platform=h120 -released=no -needsbootloader=yes -bootloadermethod=fwpatcher -bootloadername=bootloader-h120.bin -resolution=160x128x2 -manualname=rockbox-h100 - -[h300] -name=Iriver H320, H340 -platform=h300 -released=no -needsbootloader=yes -bootloadermethod=fwpatcher -bootloadername=bootloader-h300.bin -resolution=220x176x16 -manualname=rockbox-h300 - -[h10_5gbums] -name=Iriver H10 (5/6GB) UMS -platform=h10_5gb -released=no -needsbootloader=yes -bootloadermethod=h10 -bootloadername=H10.mi4 -resolution=128x128x16 -manualname= - -[h10_5gbmtp] -name=Iriver H10 (5/6GB) MTP -platform=h10_5gb -released=no -needsbootloader=yes -bootloadermethod=h10 -bootloadername=H10_5GB-MTP/H10.mi4 -resolution=128x128x16 -manualname= - -[h10] -name=Iriver H10 (20GB) -platform=h10 -released=no -needsbootloader=yes -bootloadermethod=h10 -bootloadername=H10_20GC.mi4 -resolution=160x128x16 -manualname= - -[ipodcolor] -name=Apple Ipod Colour/Photo/U2 (4th gen) -platform=ipodcolor -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipodcolor -resolution=220x176x16 -manualname= - -[ipodnano] -name=Apple Ipod Nano (1st gen) -platform=ipodnano -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipodnano -resolution=176x132x16 -manualname= - -[ipod4gray] -name=Apple Ipod (4th gen, greyscale) -platform=ipod4gray -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipod4g -resolution=160x128x2 -manualname= - -[ipodvideo] -name=Apple Ipod Video (5th gen) -platform=ipodvideo -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipodvideo -resolution=320x240x16 -manualname= - -[ipod3g] -name=Apple Ipod (3rd gen) -platform=ipod3g -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipod3g -resolution=160x128x2 -manualname= - -[ipodmini1g] -name=Apple Ipod Mini (1st gen) -platform=ipodmini1g -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipodmini -resolution=138x110x2 -manualname=rockbox-ipodmini2g - -[ipodmini2g] -name=Apple Ipod Mini (2nd gen) -platform=ipodmini2g -released=no -needsbootloader=yes -bootloadermethod=ipodpatcher -bootloadername=ipodmini2g -resolution=138x110x2 -manualname=rockbox-ipodmini2g - -[iaudiox5] -name=Cowon iAudio X5 , X5L -platform=iaudiox5 -released=no -needsbootloader=yes -bootloadermethod=iaudio -bootloadername=x5_fw.bin -resolution=160x128x16 -manualname= - -[iaudiox5v] -name=Cowon iAudio X5V -platform=iaudiox5 -released=no -needsbootloader=yes -bootloadermethod=iaudio -bootloadername=x5v_fw.bin -resolution=160x128x2 -manualname= - -[iaudiom5] -name=Cowon iAudio M5 , M5L -platform=iaudiom5 -released=no -needsbootloader=yes -bootloadermethod=iaudio -bootloadername=m5_fw.bin -resolution=160x128x16 -manualname= - -[gigabeatf] -name=Toshiba Gigabeat F , X -platform=gigabeatf -needsbootloader=yes -bootloadermethod=gigabeatf -bootloadername=FWIMG01.DAT -resolution=240x320x16 -manualname= - -[sansae200] -name=Sandisk Sansa E200 -platform=sansae200 -released=no -needsbootloader=yes -bootloadermethod=sansapatcher -bootloadername=PP5022.mi4 -resolution=176x220x16 -manualname= diff --git a/rbutil/rbutil.iss b/rbutil/rbutil.iss deleted file mode 100644 index d945d85336..0000000000 --- a/rbutil/rbutil.iss +++ /dev/null @@ -1,55 +0,0 @@ -; Script generated by the Inno Setup Script Wizard. -; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! - -#define MyAppName "Rockbox Utility" -#define MyAppVerName "Rockbox Utility v0.2.1" -#define MyAppPublisher "Rockbox Team" -#define MyAppURL "http://www.rockbox.org/" -#define MyAppExeName "rbutil.exe" -#define MyAppUrlName "rbutil.url" - -[Setup] -AppName={#MyAppName} -AppVerName={#MyAppVerName} -AppPublisher={#MyAppPublisher} -AppPublisherURL={#MyAppURL} -AppSupportURL={#MyAppURL} -AppUpdatesURL={#MyAppURL} -DefaultDirName={pf}\{#MyAppName} -DefaultGroupName={#MyAppName} -LicenseFile=copying.txt -OutputBaseFilename=rbutil-0.2.1-setup -Compression=lzma/ultra -SolidCompression=true -OutputDir=. -AppCopyright=© 2005-6 Rockbox Team -AppID={{BDAF1E02-1CC9-48BB-AE03-95D87F65BF4A} - -[Languages] -Name: english; MessagesFile: compiler:Default.isl - -[Tasks] -Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked -Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked - -[Files] -Source: rbutil.exe; DestDir: {app}; Flags: ignoreversion -; NOTE: Don't use "Flags: ignoreversion" on any shared system files -Source: rbutil.ini; DestDir: {app}; Flags: ignoreversion - -[INI] -Filename: {app}\{#MyAppUrlName}; Section: InternetShortcut; Key: URL; String: {#MyAppURL} - -[Icons] -Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName} -Name: {group}\{cm:ProgramOnTheWeb,{#MyAppName}}; Filename: {app}\{#MyAppUrlName} -Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe} -Name: {userdesktop}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon -Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}; Filename: {app}\{#MyAppExeName}; Tasks: quicklaunchicon - -[Run] -Filename: {app}\{#MyAppExeName}; Description: {cm:LaunchProgram,{#MyAppName}}; Flags: nowait postinstall skipifsilent - -[UninstallDelete] -Type: files; Name: {app}\{#MyAppUrlName} - diff --git a/rbutil/rbutil.r b/rbutil/rbutil.r deleted file mode 100755 index e7c39a882c..0000000000 --- a/rbutil/rbutil.r +++ /dev/null @@ -1,2675 +0,0 @@ -data 'vers' (2) { -$"0100 2000 0000 0531 2E30 6430 0531 2E30" -$"6430"} ; - -data 'vers' (1) { -$"0100 2000 0000 0531 2E30 6430 0531 2E30" -$"6430"} ; - -data 'ICN#' (-16455, "Item Icon") { - $"FFFF FFFF F700 001D BB00 002B D700 0057" - $"ED00 009D BB00 0539 DD00 1261 F700 A4E1" - $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB" - $"8103 BD12 810E 4A65 8105 2492 8102 F926" - $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021" - $"8100 0027 8100 0021 8100 0021 8100 0021" - $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1" - $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'icl4' (-16455, "Item Icon") { - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"F333 333F 0000 0000 0000 0000 0003 3E0F" - $"F333 333F 0000 0000 0000 0000 00A4 3AEF" - $"F333 333F 0000 0000 0000 0000 0DCA 3EEF" - $"F333 333F 0000 0000 0000 0000 E1C5 FE0F" - $"F333 333F 0000 0000 000C CDCB 1DEA E00F" - $"F333 333F 0000 0000 0CCC 1CB1 C3FD 000F" - $"F333 333F 0000 0000 D02C CB1D A9E0 000F" - $"FFFF FFFF FFFF FFFC C2C3 BCD3 EDDF FFFF" - $"F000 000F 0000 00CC 2DAB 02BF 2DDD 666F" - $"F000 000F 0000 0C1D BBB1 BEAB BDCB D66F" - $"F000 000F 0000 CCD4 E2CB BAEE B42C CD6F" - $"F000 000F 0000 C2BA BD2E FF3B DCC2 DCDD" - $"F000 000F 0000 D3BD D2CC 2DCD 02D0 DCEB" - $"F000 000F 0000 0EAC CDB2 CCCC 20D2 CDDB" - $"F000 000F 0000 CBBB 3AAE E2D2 CC2C C2DC" - $"F000 000F 0000 BC2E DD4A EEAE EBBB BBCD" - $"F000 000F 000C DEDD 00CD DAEA AAEF 35DC" - $"F000 000F 000B D000 0000 CCD4 DEBE EADC" - $"F000 000F 0000 0000 0000 0000 00F0 0BCD" - $"F000 000F 0000 0000 0000 0000 00F0 0FEE" - $"F000 000F 0000 0000 0000 0000 00F0 000F" - $"F000 000F 0000 0000 0000 0000 00F0 000F" - $"F000 000F 0000 0000 0000 0000 00F0 000F" - $"F000 000F FFFF FFFF FFFF FFFF FFF0 000F" - $"F000 000F 1111 1111 1111 F999 99F0 000F" - $"F000 000F 1111 1111 1111 F898 99F0 000F" - $"F000 000F 1111 1111 1111 F999 98F0 000F" - $"F000 000F 1111 1111 1111 F989 99F0 000F" - $"F000 000F 1111 1111 1111 F899 89F0 000F" - $"F000 000F 1111 1111 1111 F989 98F0 000F" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'icl8' (-16455, "Item Icon") { - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00DB 22FC 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 DB21 6BDB FCFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 FB03 5581 FDFB 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0007 2C32 325E 0358 88DE FC00 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"002B 0832 0832 5803 3988 ADFB 0000 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"3208 3208 5658 0934 88AD FC00 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32" - $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF" - $"FF00 0000 0000 00FF 0000 0000 0000 3208" - $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF" - $"FF00 0000 0000 00FF 0000 0000 002C 0833" - $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF" - $"FF00 0000 0000 00FF 0000 0000 F608 395D" - $"8858 0934 82E0 8888 5E39 332C 3281 D2FF" - $"FF00 0000 0000 00FF 0000 0000 F739 5E8E" - $"820F 5788 FFFD 645E 3357 0E32 3332 81F9" - $"FF00 0000 0000 00FF 0000 0000 3965 8833" - $"3933 3332 3357 320E 2C0E 322C 0E2D 815D" - $"FF00 0000 0000 00FF 0000 0000 F5FC 8808" - $"325D 5D34 320E 082C 0E2C 3233 3232 FA58" - $"FF00 0000 0000 00FF 0000 0000 2B58 3464" - $"88DE 8988 885E 5D33 3232 3332 335E F954" - $"FF00 0000 0000 00FF 0000 0000 5D33 5D82" - $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654" - $"FF00 0000 0000 00FF 0000 002C 8187 5756" - $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8" - $"FF00 0000 0000 00FF 0000 0081 562B 0000" - $"0000 0000 F6F7 325D 815E FB88 88FC 5656" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 005D 57F8" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 00FD AB88" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'icm#' (-16455, "Item Icon") { - $"F24B D007 B028 5557 81B1 124A 8236 1005" - $"8000 1ABD 8030 557D FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'icm4' (-16455, "Item Icon") { - $"A33F CDCC DCCD CAAE A333 0000 0000 CDEE" - $"333A 0000 CCCB 2E0D EDCE CDCD DB2B DB6F" - $"D00D 00C2 BBEA BCD5 D00D 00BD 2D2D CC2D" - $"D00D 0CDC CCDB BADC D00D 0000 0000 0DCE" - $"D00D 0000 0000 0D0D D00D B1BB 1BF9 FD0D" - $"D00D 1111 1199 8D0D ECDB BB1B B1F9 FECE" -}; - -data 'icm8' (-16455, "Item Icon") { - $"DDDA DADD F8F8 F8F8 F8F8 F8F8 F864 8EAC" - $"DB23 23DC 0000 0000 0000 0000 F85C 89FB" - $"DC23 23DB 0000 0000 F608 3234 5E82 2AFA" - $"FBF8 F8FB F8F8 5633 335D 3488 575D EFF1" - $"F900 00FA 0000 2C63 5E34 FD64 5D2C 33AA" - $"FA00 00F9 0000 395E 5D5D 5733 0832 33F9" - $"F900 00FA 00F6 F92C 2B32 5D88 8888 88F8" - $"FA00 00F9 0000 0000 0000 0000 00FA F781" - $"F900 00FA 0000 0000 0000 0000 00F9 00F9" - $"FA00 00F9 3559 5335 5959 E9E7 E7FA 00FA" - $"F900 00FA 0505 0505 0505 E8E6 E6F9 00F9" - $"FBF8 F8FB 592F 5959 2F59 E9E7 E7FB F8FB" -}; - -data 'icns' (-16455, "Item Icon") { - $"6963 6E73 0000 9AB8 4943 4E23 0000 0108" - $"FFFF FFFF F700 001D BB00 002B D700 0057" - $"ED00 009D BB00 0539 DD00 1261 F700 A4E1" - $"FFFE 539F 8100 A52F 8102 AED7 8105 4BAB" - $"8103 BD12 810E 4A65 8105 2492 8102 F926" - $"810B 5FA9 8114 0B7E 8108 05AC 8100 0021" - $"8100 0027 8100 0021 8100 0021 8100 0021" - $"81FF FFE1 8100 0FE1 8122 0AE1 8108 2FA1" - $"8141 0DE1 8104 0B61 8100 9DA1 FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"6963 6C34 0000 0208 FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF F333 333F 0000 0000" - $"0000 0000 0003 3E0F F333 333F 0000 0000" - $"0000 0000 00A4 3AEF F333 333F 0000 0000" - $"0000 0000 0DCA 3EEF F333 333F 0000 0000" - $"0000 0000 E1C5 FE0F F333 333F 0000 0000" - $"000C CDCB 1DEA E00F F333 333F 0000 0000" - $"0CCC 1CB1 C3FD 000F F333 333F 0000 0000" - $"D02C CB1D A9E0 000F FFFF FFFF FFFF FFFC" - $"C2C3 BCD3 EDDF FFFF F000 000F 0000 00CC" - $"2DAB 02BF 2DDD 666F F000 000F 0000 0C1D" - $"BBB1 BEAB BDCB D66F F000 000F 0000 CCD4" - $"E2CB BAEE B42C CD6F F000 000F 0000 C2BA" - $"BD2E FF3B DCC2 DCDD F000 000F 0000 D3BD" - $"D2CC 2DCD 02D0 DCEB F000 000F 0000 0EAC" - $"CDB2 CCCC 20D2 CDDB F000 000F 0000 CBBB" - $"3AAE E2D2 CC2C C2DC F000 000F 0000 BC2E" - $"DD4A EEAE EBBB BBCD F000 000F 000C DEDD" - $"00CD DAEA AAEF 35DC F000 000F 000B D000" - $"0000 CCD4 DEBE EADC F000 000F 0000 0000" - $"0000 0000 00F0 0BCD F000 000F 0000 0000" - $"0000 0000 00F0 0FEE F000 000F 0000 0000" - $"0000 0000 00F0 000F F000 000F 0000 0000" - $"0000 0000 00F0 000F F000 000F 0000 0000" - $"0000 0000 00F0 000F F000 000F FFFF FFFF" - $"FFFF FFFF FFF0 000F F000 000F 1111 1111" - $"1111 F999 99F0 000F F000 000F 1111 1111" - $"1111 F898 99F0 000F F000 000F 1111 1111" - $"1111 F999 98F0 000F F000 000F 1111 1111" - $"1111 F989 99F0 000F F000 000F 1111 1111" - $"1111 F899 89F0 000F F000 000F 1111 1111" - $"1111 F989 98F0 000F FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF 6963 6C38 0000 0408" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 00DB 22FC 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 DB21 6BDB FCFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0081 2BDA 6BB2 FCFF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 FB03 5581 FDFB 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"0000 0007 2C32 325E 0358 88DE FC00 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"002B 0832 0832 5803 3988 ADFB 0000 00FF" - $"FF23 2323 2323 23FF 0000 0000 0000 0000" - $"3208 3208 5658 0934 88AD FC00 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FF32" - $"0833 3964 5809 3388 AD32 FBFF FFFF FFFF" - $"FF00 0000 0000 00FF 0000 0000 0000 3208" - $"3339 8858 0934 82DF 3933 3281 D2D2 D2FF" - $"FF00 0000 0000 00FF 0000 0000 002C 0833" - $"6488 5E09 3388 B35E 6433 3233 81D2 D2FF" - $"FF00 0000 0000 00FF 0000 0000 F608 395D" - $"8858 0934 82E0 8888 5E39 332C 3281 D2FF" - $"FF00 0000 0000 00FF 0000 0000 F739 5E8E" - $"820F 5788 FFFD 645E 3357 0E32 3332 81F9" - $"FF00 0000 0000 00FF 0000 0000 3965 8833" - $"3933 3332 3357 320E 2C0E 322C 0E2D 815D" - $"FF00 0000 0000 00FF 0000 0000 F5FC 8808" - $"325D 5D34 320E 082C 0E2C 3233 3232 FA58" - $"FF00 0000 0000 00FF 0000 0000 2B58 3464" - $"88DE 8988 885E 5D33 3232 3332 335E F954" - $"FF00 0000 0000 00FF 0000 0000 5D33 5D82" - $"FA5D 8789 8EAC 89AC 885E 645E 5D64 5654" - $"FF00 0000 0000 00FF 0000 002C 8187 5756" - $"0000 F632 8189 B2DE 89B2 88AC 8888 F9F8" - $"FF00 0000 0000 00FF 0000 0081 562B 0000" - $"0000 0000 F6F7 325D 815E FB88 88FC 5656" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 005D 57F8" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 00FD AB88" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 FF00 0000 00FF" - $"FF00 0000 0000 00FF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE5 E6E5 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E6E5 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E5E6 E6E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE6 E6E6 E5E6 FF00 0000 00FF" - $"FF00 0000 0000 00FF 0505 0505 0505 0505" - $"0505 0505 FFE5 E6E6 E6E6 FF00 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"696C 3332 0000 0670 9E00 83FF 0000 90FF" - $"058E EA44 FF00 0083 FF00 008F FF06 8FEA" - $"AB8E 4400 0083 FF00 008E FF07 5ABE AB8E" - $"4544 0000 83FF 0000 8DFF 0864 FE91 6945" - $"44FF 0000 83FF 0000 88FF 0DE2 E1CB B8A1" - $"FEB1 6245 44FF FF00 0083 FF00 0086 FF0A" - $"E2E6 E9EF B89F FEC1 6245 4480 FF01 0000" - $"83FF 0000 85FF 0AD9 E4E9 EBB8 9FFE C362" - $"4544 81FF 8D00 0BD7 E3DE BA8F A2FE C662" - $"45D0 6183 0083 FF00 0083 FF0D DAE5 D4B3" - $"679A FEC8 6245 A5C9 D361 8200 83FF 0000" - $"82FF 0FDC E2D4 A469 9EF2 C962 4579 9BC2" - $"D2D0 6181 0083 FF00 0081 FF11 E8DD D2B3" - $"6AA0 F3C7 5C1B 5D89 9CB5 CDD5 D361 8000" - $"83FF 0000 81FF 14DF C29C 657A DEB3 6A0D" - $"2082 ADBD C3D1 D5D7 D069 8800 83FF 0000" - $"81FF 14AE 8170 B9C5 C1CE C7B2 AFDA E7EA" - $"E1D9 D8D9 D469 8600 83FF 0000 81FF 14EE" - $"5C75 EBD4 9FB3 C4DE E7EC EBE3 E4DD D6CE" - $"C672 9C00 83FF 0000 81FF 14C6 A2C7 886F" - $"4D61 6F7F 9094 C1DB CCC1 C0B7 AB82 A200" - $"83FF 0000 81FF 1499 BFAE 5C8A 856D 504E" - $"5A5B 556C 8F8B 8C95 888F A400 83FF 0000" - $"80FF 15CA 667C 8C9F FFFF DCB5 8251 4A43" - $"3F4B 535E 6860 8FA6 0083 FF00 0080 FF02" - $"669F C283 FF0C DCC3 A88D 847B 686D 5A5E" - $"8FAF 0083 FF00 008F FF06 00FF FF81 8FB5" - $"0083 FF00 008F FF06 00FF FF22 4444 0083" - $"FF00 008F FF00 0081 FF01 0000 83FF 0000" - $"8FFF 0000 81FF 0100 0083 FF00 008F FF00" - $"0081 FF01 0000 83FF 9100 81FF 0100 0083" - $"FF00 0089 FF84 0081 FF01 0000 83FF 0000" - $"89FF 8400 81FF 0100 0083 FF00 0089 FF84" - $"0081 FF01 0000 83FF 0000 89FF 8400 81FF" - $"0100 0083 FF00 0089 FF84 0081 FF01 0000" - $"83FF 0000 89FF 8400 81FF 9E00 A500 90FF" - $"0301 0044 FF86 008F FF04 0900 0001 4486" - $"008E FF05 67BC 0001 1944 8600 8DFF 0666" - $"E49D 7119 44FF 8600 88FF 0BC9 BEA7 9B82" - $"E489 4419 44FF FF86 0086 FF0A CFB6 B9BB" - $"9B79 E493 4419 4480 FF86 0085 FF0A B2AC" - $"B6B5 9B7D E497 4419 4481 FF8D 000B AFAF" - $"A06E 5180 E49A 4419 9B62 8300 83FF 0000" - $"83FF 0DB2 B397 682E 76E4 9D44 1963 96A1" - $"6282 0083 FF00 0082 FF0F BEB0 9953 307E" - $"CF9C 4619 3459 8BA6 9C62 8100 83FF 0000" - $"81FF 11E0 B191 672E 7ED0 9A44 0E2A 3C55" - $"7BA0 A8A2 6280 0083 FF00 0081 FF14 C576" - $"4B2D 51B5 864F 040E 3461 818A 9FA8 A7A1" - $"687C 0083 FF00 0081 FF14 722D 3A7D 8683" - $"9998 8C85 A0B3 B9AE A9AA AAA5 687E 0083" - $"FF00 0081 FF14 E844 38B3 A962 6F7D 9DB2" - $"BEBC B5B7 AFA5 9B95 7392 0083 FF00 0081" - $"FF14 C283 9A44 3D1E 2934 4455 5C8E AC9A" - $"8B89 7D75 829A 0083 FF00 0081 FF14 6E8B" - $"8044 746B 4522 222F 302E 425C 5558 6055" - $"8E9E 0083 FF00 0080 FF15 B466 5A81 9FFF" - $"FFD6 9F5B 231B 1310 202B 333C 378E A000" - $"83FF 0000 80FF 0266 9FC2 83FF 0CD6 B692" - $"6F66 5B47 4931 3B8E A600 83FF 0000 8FFF" - $"0600 FFFF 728E AB00 83FF 0000 8FFF 0600" - $"FFFF 2244 4400 83FF 0000 8FFF 0000 81FF" - $"0100 0083 FF00 008F FF00 0081 FF01 0000" - $"83FF 0000 8FFF 0000 81FF 0100 0083 FF91" - $"0081 FF01 0000 83FF 0000 89FF 0000 827B" - $"0000 81FF 0100 0083 FF00 0089 FF00 0082" - $"7B00 0081 FF01 0000 83FF 0000 89FF 0000" - $"827B 0000 81FF 0100 0083 FF00 0089 FF00" - $"0082 7B00 0081 FF01 0000 83FF 0000 89FF" - $"0000 827B 0000 81FF 0100 0083 FF00 0089" - $"FF00 0082 7B00 0081 FF9E 00A5 0090 FF03" - $"0F43 44FF 8600 8FFF 0417 4316 0F44 8600" - $"8EFF 0565 C416 0F1A 4486 008D FF06 5567" - $"A76C 1A44 FF86 0088 FF0B BCA9 9293 3E67" - $"4D23 1A44 FFFF 8600 86FF 0AC6 9A98 9893" - $"3167 4A23 1A44 80FF 8600 85FF 0A9C 8E99" - $"9593 3767 4F23 1A44 81FF 8D00 0B92 8F86" - $"5747 3967 5223 1A7A 6183 0083 FF00 0083" - $"FF0D 9591 7C51 2A32 6753 231A 4B78 8361" - $"80FF 0100 0083 FF00 0082 FF13 A98B 7D41" - $"2C37 6353 241A 2C44 6D8A 8061 FFFF 0000" - $"83FF 0000 81FF 14DA 9278 5427 3761 5122" - $"1124 323F 6084 8D86 61FF 0000 83FF 0000" - $"81FF 14B7 5B3C 2730 5956 2A0A 0C2C 4F65" - $"6C85 8D89 8869 8800 83FF 0000 81FF 1461" - $"202F 6A76 7683 8378 748C 9A9D 918E 8E8C" - $"8869 5500 83FF 0000 81FF 14E7 2230 9694" - $"5354 5F80 95A2 9E9A 9D94 8881 7A73 4400" - $"83FF 0000 81FF 14C6 4651 3538 191F 2A36" - $"444A 7591 8173 7268 6081 FF00 83FF 0000" - $"81FF 0859 6A49 2277 683C 1A1D 8028 0838" - $"4D47 484F 478E FF00 83FF 0000 80FF 15A8" - $"654A 7F9F FFFF D39A 551C 140E 0B1B 262B" - $"3330 8E9A 0083 FF00 0080 FF02 659F C283" - $"FF0C D3B2 8E69 5F56 4243 2B35 8E9F 0083" - $"FF00 008F FF06 00FF FF6B 8EA7 0083 FF00" - $"008F FF06 00FF FF22 4444 0083 FF00 008F" - $"FF00 0081 FF01 0000 83FF 0000 8FFF 0000" - $"81FF 0100 0083 FF00 008F FF00 0081 FF01" - $"0000 83FF 9100 81FF 0100 0083 FF91 0081" - $"FF01 0000 83FF 9100 81FF 0100 0083 FF91" - $"0081 FF01 0000 83FF 9100 81FF 0100 0083" - $"FF91 0081 FF01 0000 83FF 9100 81FF 9E00" - $"6C38 6D6B 0000 0408 FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF 6963 6823 0000 0248" - $"FFFF FFFF FFFF FFFF FFFF FFFF F770 0000" - $"0001 EEB0 0000 0001 F5D0 0000 0001 EF70" - $"0000 0001 DBB0 0000 0001 F570 0000 0001" - $"FED0 0000 0001 D5B0 0000 0001 EF70 0000" - $"0001 FAD0 0000 0001 FFFF FFFF FFFF FFFF" - $"FFFF FFFF C010 0000 01FF C010 0000 01FF" - $"C010 0000 01EF C010 0000 01FF C010 0000" - $"01FB C010 0000 01DF C010 0000 01FF C010" - $"0000 01FF C010 0000 01FF C010 0000 0181" - $"C010 0000 0181 C010 0000 0181 C010 0000" - $"0181 C010 0000 0181 C010 0000 0181 C010" - $"0000 0181 C010 0000 0181 C010 0000 0181" - $"C010 0000 0181 C010 0000 0181 C010 0000" - $"0181 C010 0000 0181 C01F FFFF FF81 C01F" - $"FFFF FF81 C010 0003 FF81 C011 1113 D581" - $"C010 4443 6F81 C012 000B BB81 C010 8883" - $"DD81 C014 2203 6B81 C011 004B BD81 C010" - $"1103 F781 C014 0423 5B81 FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"6963 6834 0000 0488 FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FF33 3333 333F 0000" - $"0000 0000 0000 0000 0000 0000 0000 000F" - $"FF33 3333 333F 0000 0000 0000 0000 0000" - $"0000 0000 0000 000F FF33 3333 333F 0000" - $"0000 0000 0000 0000 0000 0000 0000 000F" - $"FF33 3333 333F 0000 0000 0000 0000 0000" - $"0000 0000 0000 000F FF33 3333 333F 0000" - $"0000 0000 0000 0000 0000 0000 0000 000F" - $"FF33 3333 333F 0000 0000 0000 0000 0000" - $"0000 0000 0000 000F FF33 3333 333F 0000" - $"0000 0000 0000 0000 0000 0000 0000 000F" - $"FF33 3333 333F 0000 0000 0000 0000 0000" - $"0000 0000 0000 000F FF33 3333 333F 0000" - $"0000 0000 0000 0000 0000 0000 0000 000F" - $"FF33 3333 333F 0000 0000 0000 0000 0000" - $"0000 0000 0000 000F FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F666 666F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F666 666F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F666 666F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F666 666F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F666 666F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F666 666F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F666 666F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F FFFF FFFF FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F FFFF FFFF" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F 0000" - $"0000 0000 0000 0000 0000 000F F000 000F" - $"FF00 0000 000F 0000 0000 0000 0000 0000" - $"0000 000F F000 000F FF00 0000 000F FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF F000 000F" - $"FF00 0000 000F FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF F000 000F FF00 0000 000F 1111" - $"1111 1111 1111 11FF 9999 999F F000 000F" - $"FF00 0000 000F 1111 1111 1111 1111 11FF" - $"9989 898F F000 000F FF00 0000 000F 1111" - $"1111 1111 1111 11FF 8998 999F F000 000F" - $"FF00 0000 000F 1111 1111 1111 1111 11FF" - $"9899 989F F000 000F FF00 0000 000F 1111" - $"1111 1111 1111 11FF 9989 998F F000 000F" - $"FF00 0000 000F 1111 1111 1111 1111 11FF" - $"8999 899F F000 000F FF00 0000 000F 1111" - $"1111 1111 1111 11FF 9899 989F F000 000F" - $"FF00 0000 000F 1111 1111 1111 1111 11FF" - $"9999 899F F000 000F FF00 0000 000F 1111" - $"1111 1111 1111 11FF 8989 989F F000 000F" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF 6963 6838 0000 0908" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF 2323 2323 2323 2323 23FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFD2 D2D2 D2D2 D2FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FFFF FFFF FFFF FFFF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0000 0000" - $"0000 0000 0000 0000 0000 0000 0000 0000" - $"0000 0000 0000 00FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E6 E5E6 E5E6 E5FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E5E6 E6E6 E6E6 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E6 E6E5 E6E5 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E5 E6E6 E6E6 E5FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E6 E6E6 E5E6 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E5E6 E6E6 E6E5 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E6 E6E5 E6E6 E6FF FF00 0000 0000 00FF" - $"FFFF 0000 0000 0000 0000 00FF 0505 0505" - $"0505 0505 0505 0505 0505 0505 0505 FFFF" - $"E6E5 E6E6 E5E6 E6FF FF00 0000 0000 00FF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"6968 3332 0000 052A DF00 86FF 0000 A0FF" - $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" - $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" - $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" - $"8000 86FF 0000 A0FF 8000 86FF 0000 A0FF" - $"8000 86FF 0000 A0FF E000 86FF 0000 98FF" - $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" - $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" - $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" - $"8800 86FF 0000 98FF 8800 86FF 0000 98FF" - $"8800 86FF 0000 98FF 0100 0083 FF80 0086" - $"FF00 0098 FF01 0000 83FF 8000 86FF 0000" - $"98FF 0100 0083 FF80 0086 FF00 0098 FF01" - $"0000 83FF 8000 86FF 0000 98FF 0100 0083" - $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" - $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" - $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" - $"0100 0083 FF80 0086 FF00 0098 FF01 0000" - $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" - $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" - $"0000 98FF 0100 0083 FF80 0086 FF9B 0083" - $"FF80 0086 FF9B 0083 FF80 0086 FF00 008F" - $"FF88 0083 FF80 0086 FF00 008F FF88 0083" - $"FF80 0086 FF00 008F FF88 0083 FF80 0086" - $"FF00 008F FF88 0083 FF80 0086 FF00 008F" - $"FF88 0083 FF80 0086 FF00 008F FF88 0083" - $"FF80 0086 FF00 008F FF88 0083 FF80 0086" - $"FF00 008F FF88 0083 FF80 0086 FF00 008F" - $"FF88 0083 FFAE 00E9 00A0 FF8A 00A0 FF8A" - $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FF8A" - $"00A0 FF8A 00A0 FF8A 00A0 FF8A 00A0 FFE0" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF88" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF01" - $"0000 83FF 8000 86FF 0000 98FF 0100 0083" - $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" - $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" - $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" - $"0100 0083 FF80 0086 FF00 0098 FF01 0000" - $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" - $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" - $"0000 98FF 0100 0083 FF80 0086 FF00 0098" - $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" - $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 0000 8FFF 0100 0084 7B01 0000" - $"83FF 8000 86FF 0000 8FFF 0100 0084 7B01" - $"0000 83FF 8000 86FF 0000 8FFF 0100 0084" - $"7B01 0000 83FF 8000 86FF 0000 8FFF 0100" - $"0084 7B01 0000 83FF 8000 86FF 0000 8FFF" - $"0100 0084 7B01 0000 83FF 8000 86FF 0000" - $"8FFF 0100 0084 7B01 0000 83FF 8000 86FF" - $"0000 8FFF 0100 0084 7B01 0000 83FF 8000" - $"86FF 0000 8FFF 0100 0084 7B01 0000 83FF" - $"8000 86FF 0000 8FFF 0100 0084 7B01 0000" - $"83FF AE00 E900 A0FF 8A00 A0FF 8A00 A0FF" - $"8A00 A0FF 8A00 A0FF 8A00 A0FF 8A00 A0FF" - $"8A00 A0FF 8A00 A0FF 8A00 A0FF E000 86FF" - $"0000 98FF 0100 0083 FF80 0086 FF00 0098" - $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" - $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" - $"8000 86FF 0000 98FF 0100 0083 FF80 0086" - $"FF00 0098 FF01 0000 83FF 8000 86FF 0000" - $"98FF 0100 0083 FF80 0086 FF00 0098 FF88" - $"0086 FF00 0098 FF88 0086 FF00 0098 FF01" - $"0000 83FF 8000 86FF 0000 98FF 0100 0083" - $"FF80 0086 FF00 0098 FF01 0000 83FF 8000" - $"86FF 0000 98FF 0100 0083 FF80 0086 FF00" - $"0098 FF01 0000 83FF 8000 86FF 0000 98FF" - $"0100 0083 FF80 0086 FF00 0098 FF01 0000" - $"83FF 8000 86FF 0000 98FF 0100 0083 FF80" - $"0086 FF00 0098 FF01 0000 83FF 8000 86FF" - $"0000 98FF 0100 0083 FF80 0086 FF00 0098" - $"FF01 0000 83FF 8000 86FF 0000 98FF 0100" - $"0083 FF80 0086 FF00 0098 FF01 0000 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 9B00 83FF 8000 86FF 9B00 83FF" - $"8000 86FF 9B00 83FF AE00 6838 6D6B 0000" - $"0908 FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF 6963 7323 0000 0048 F557 D001 700E" - $"E024 9A9B 0175 9299 0162 923E 0001 9004" - $"0000 9BBC 102C 8434 5AFD FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF 6963 7334 0000" - $"0088 AA3F DDDD DDDD DDAE A333 0000 0000" - $"0C3E 333A 0000 000C DBEC A333 0000 0CBC" - $"2A00 EDDF DDDB D2CB ECFF D00D 00CD BBBA" - $"B2D6 D00D 00B2 DDBB DCCB D00D 00D4 D2D2" - $"CC2D D00D 00BD CCE5 3EEC D00D 0C00 0000" - $"CBCB D00D 0000 0000 0D0D D00D 0000 0000" - $"0D00 D00D ABAB ABAF 9F00 D00D 1111 11B8" - $"9900 D00D 1111 1189 9F00 EDDA 8291 ABAF" - $"9FDD 6963 7338 0000 0108 DEDC DBB3 F9FA" - $"F9FA F9FA F9FA F9FA 8FFB DC23 23DB 0000" - $"0000 0000 0000 0032 6A88 DB23 23DC 0000" - $"0000 0000 F52B 3357 882B DC23 23DB 0000" - $"0000 F608 3234 33AD F600 FCFA F9AC F9FA" - $"F95D 0E5D 3457 8833 F1F2 FA00 00F9 0000" - $"0733 825E 33AD 6432 33EF F900 00FA 0000" - $"5D5E 5D33 825D 3332 2C57 FA00 00F9 0000" - $"5739 5D64 5D33 3232 335C F900 00FA 00F5" - $"5D57 F732 828E 8988 88F9 FA00 00F9 00F6" - $"F600 0000 F5F6 4F5D F85D F900 00FA 0000" - $"0000 0000 0000 00FA 0056 FA00 00FA 0000" - $"0000 0000 0000 00F9 0000 F900 00F9 8359" - $"8359 8359 ADD1 E8EA 0000 FA00 00FA 0505" - $"0505 0505 5FE5 E6E8 0000 F900 00F9 0505" - $"0505 0505 7DE6 E6D1 0000 ACF9 FAFC 8359" - $"8359 8359 ADD1 E8E9 FAF9 6973 3332 0000" - $"026C 0340 8080 4087 8005 5E51 80FF FF80" - $"86FF 06AA B457 80FF FF80 83FF 09F1 E1C1" - $"A94E D180 FFFF 8081 FF0B ECE6 DFBE BA4D" - $"D1FF 4080 8040 8080 4FA6 DCAD B3BC 65B4" - $"1900 80FF FF80 FFFF E9CF 87A7 B848 8FC6" - $"B719 80FF FF80 FFFF B58B A0C9 7D8B CFD4" - $"D89E 80FF FF80 FFFF ADAC A280 A5BE DBD4" - $"C79A 80FF FF80 FFF2 8F8E C5B4 7655 516E" - $"7A82 80FF FF80 FFD9 D880 FF09 F7DB C479" - $"B280 80FF FF80 86FF 0680 FF9A 80FF FF80" - $"86FF 0580 FFFF 80FF FF84 8000 4080 0005" - $"FFFF 80FF FF80 83FF 0080 8000 05FF FF80" - $"FFFF 8083 FF00 8080 0005 FFFF 4080 8040" - $"8380 0040 8000 0180 8081 0087 8001 0151" - $"8100 86FF 028B 0129 8100 83FF 05E2 D0B3" - $"943A D181 0081 FF0B D9BA B19E 952F D1FF" - $"4080 8040 8080 4F85 A369 8B98 378E 1900" - $"80FF FF80 FFFF D491 417F 9326 4893 9219" - $"80FF FF80 FFFF 774C 6C96 5E5A 94A0 A986" - $"80FF FF80 FFFF 9D73 7346 6589 ABA3 9280" - $"80FF FF80 FFED 6F7A BAA2 5028 253F 4A6A" - $"80FF FF80 FFD9 D880 FF09 F5D2 B569 9E73" - $"80FF FF80 86FF 0680 FF9A 80FF FF80 86FF" - $"0580 FFFF 80FF FF84 8009 403E 3E1F FFFF" - $"80FF FF80 83FF 0980 7B7B 3EFF FF80 FFFF" - $"8083 FF09 807B 7B3E FFFF 4080 8040 8380" - $"0540 3E3E 1F80 8081 0087 8001 1551 8100" - $"86FF 0290 202D 8100 83FF 05D9 C97F 6039" - $"D181 0081 FF0B CEA2 9759 4927 D1FF 4080" - $"8040 8080 4F6F 8657 474C 2976 5980 80FF" - $"FF80 FFFF C676 343F 4B1D 3977 7ED8 80FF" - $"FF80 FFFF 6540 536B 4C4E 7B85 8D79 80FF" - $"FF80 FFFF 8654 6638 5072 908A 7974 80FF" - $"FF80 FFEA 5D63 BB9E 4A20 1F36 3E65 80FF" - $"FF80 FFD9 D880 FF09 F4D0 B266 9B6F 80FF" - $"FF80 86FF 0680 FF9A 80FF FF80 86FF 0680" - $"FFFF 80FF FF80 8700 05FF FF80 FFFF 8087" - $"0005 FFFF 80FF FF80 8700 05FF FF40 8080" - $"4087 0001 8080 7338 6D6B 0000 0108 FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF 6963" - $"6D23 0000 0038 F24B D007 B028 5557 81B1" - $"124A 8236 1005 8000 1ABD 8030 557D FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF 6963 6D34 0000 0068 A33F" - $"CDCC DCCD CAAE A333 0000 0000 CDEE 333A" - $"0000 CCCB 2E0D EDCE CDCD DB2B DB6F D00D" - $"00C2 BBEA BCD5 D00D 00BD 2D2D CC2D D00D" - $"0CDC CCDB BADC D00D 0000 0000 0DCE D00D" - $"0000 0000 0D0D D00D B1BB 1BF9 FD0D D00D" - $"1111 1199 8D0D ECDB BB1B B1F9 FECE 6963" - $"6D38 0000 00C8 DDDA DADD F8F8 F8F8 F8F8" - $"F8F8 F864 8EAC DB23 23DC 0000 0000 0000" - $"0000 F85C 89FB DC23 23DB 0000 0000 F608" - $"3234 5E82 2AFA FBF8 F8FB F8F8 5633 335D" - $"3488 575D EFF1 F900 00FA 0000 2C63 5E34" - $"FD64 5D2C 33AA FA00 00F9 0000 395E 5D5D" - $"5733 0832 33F9 F900 00FA 00F6 F92C 2B32" - $"5D88 8888 88F8 FA00 00F9 0000 0000 0000" - $"0000 00FA F781 F900 00FA 0000 0000 0000" - $"0000 00F9 00F9 FA00 00F9 3559 5335 5959" - $"E9E7 E7FA 00FA F900 00FA 0505 0505 0505" - $"E8E6 E6F9 00F9 FBF8 F8FB 592F 5959 2F59" - $"E9E7 E7FB F8FB 6974 3332 0000 245A 0000" - $"0000 FF00 FF00 FF00 FB00 95FF 8100 C9FF" - $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" - $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" - $"818E 81EA 8144 81FF 8500 95FF 8100 C9FF" - $"818E 81EA 8144 81FF 8500 95FF 8100 C5FF" - $"818F 81EA 81AB 818E 8144 8500 95FF 8100" - $"C5FF 818F 81EA 81AB 818E 8144 8500 95FF" - $"8100 C5FF 818F 81EA 81AB 818E 8144 8500" - $"95FF 8100 C5FF 818F 81EA 81AB 818E 8144" - $"8500 95FF 8100 C1FF 815A 81BE 81AB 818E" - $"8145 8144 8500 95FF 8100 C1FF 815A 81BE" - $"81AB 818E 8145 8144 8500 95FF 8100 C1FF" - $"815A 81BE 81AB 818E 8145 8144 8500 95FF" - $"8100 C1FF 815A 81BE 81AB 818E 8145 8144" - $"8500 95FF 8100 BDFF 8164 81FE 8191 8169" - $"8145 8144 81FF 8500 95FF 8100 BDFF 8164" - $"81FE 8191 8169 8145 8144 81FF 8500 95FF" - $"8100 BDFF 8164 81FE 8191 8169 8145 8144" - $"81FF 8500 95FF 8100 BDFF 8164 81FE 8191" - $"8169 8145 8144 81FF 8500 95FF 8100 A9FF" - $"81E2 81E1 81CB 81B8 81A1 81FE 81B1 8162" - $"8145 8144 85FF 8500 95FF 8100 A9FF 81E2" - $"81E1 81CB 81B8 81A1 81FE 81B1 8162 8145" - $"8144 85FF 8500 95FF 8100 A9FF 81E2 81E1" - $"81CB 81B8 81A1 81FE 81B1 8162 8145 8144" - $"85FF 8500 95FF 8100 A9FF 81E2 81E1 81CB" - $"81B8 81A1 81FE 81B1 8162 8145 8144 85FF" - $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" - $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" - $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" - $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" - $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" - $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" - $"8500 95FF 8100 A1FF 81E2 81E6 81E9 81EF" - $"81B8 819F 81FE 81C1 8162 8145 8144 89FF" - $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" - $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" - $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" - $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" - $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" - $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" - $"8500 95FF 8100 9DFF 81D9 81E4 81E9 81EB" - $"81B8 819F 81FE 81C3 8162 8145 8144 8DFF" - $"BD00 81D7 81E3 81DE 81BA 818F 81A2 81FE" - $"81C6 8162 8145 81D0 8161 CD00 81D7 81E3" - $"81DE 81BA 818F 81A2 81FE 81C6 8162 8145" - $"81D0 8161 CD00 81D7 81E3 81DE 81BA 818F" - $"81A2 81FE 81C6 8162 8145 81D0 8161 CD00" - $"81D7 81E3 81DE 81BA 818F 81A2 81FE 81C6" - $"8162 8145 81D0 8161 9500 95FF 8100 95FF" - $"81DA 81E5 81D4 81B3 8167 819A 81FE 81C8" - $"8162 8145 81A5 81C9 81D3 8161 9100 95FF" - $"8100 95FF 81DA 81E5 81D4 81B3 8167 819A" - $"81FE 81C8 8162 8145 81A5 81C9 81D3 8161" - $"9100 95FF 8100 95FF 81DA 81E5 81D4 81B3" - $"8167 819A 81FE 81C8 8162 8145 81A5 81C9" - $"81D3 8161 9100 95FF 8100 95FF 81DA 81E5" - $"81D4 81B3 8167 819A 81FE 81C8 8162 8145" - $"81A5 81C9 81D3 8161 9100 95FF 8100 91FF" - $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9" - $"8162 8145 8179 819B 81C2 81D2 81D0 8161" - $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4" - $"8169 819E 81F2 81C9 8162 8145 8179 819B" - $"81C2 81D2 81D0 8161 8D00 95FF 8100 91FF" - $"81DC 81E2 81D4 81A4 8169 819E 81F2 81C9" - $"8162 8145 8179 819B 81C2 81D2 81D0 8161" - $"8D00 95FF 8100 91FF 81DC 81E2 81D4 81A4" - $"8169 819E 81F2 81C9 8162 8145 8179 819B" - $"81C2 81D2 81D0 8161 8D00 95FF 8100 8DFF" - $"81E8 81DD 81D2 81B3 816A 81A0 81F3 81C7" - $"815C 811B 815D 8189 819C 81B5 81CD 81D5" - $"81D3 8161 8900 95FF 8100 8DFF 81E8 81DD" - $"81D2 81B3 816A 81A0 81F3 81C7 815C 811B" - $"815D 8189 819C 81B5 81CD 81D5 81D3 8161" - $"8900 95FF 8100 8DFF 81E8 81DD 81D2 81B3" - $"816A 81A0 81F3 81C7 815C 811B 815D 8189" - $"819C 81B5 81CD 81D5 81D3 8161 8900 95FF" - $"8100 8DFF 81E8 81DD 81D2 81B3 816A 81A0" - $"81F3 81C7 815C 811B 815D 8189 819C 81B5" - $"81CD 81D5 81D3 8161 8900 95FF 8100 8DFF" - $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" - $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" - $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" - $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" - $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" - $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" - $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" - $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" - $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" - $"81DF 81C2 819C 8165 817A 81DE 81B3 816A" - $"810D 8120 8182 81AD 81BD 81C3 81D1 81D5" - $"81D7 81D0 8169 8188 8100 95FF 8100 8DFF" - $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" - $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" - $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" - $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" - $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" - $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" - $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" - $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" - $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" - $"81AE 8181 8170 81B9 81C5 81C1 81CE 81C7" - $"81B2 81AF 81DA 81E7 81EA 81E1 81D9 81D8" - $"81D9 81D4 8169 8186 8100 95FF 8100 8DFF" - $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" - $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" - $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" - $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" - $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" - $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" - $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" - $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" - $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" - $"81EE 815C 8175 81EB 81D4 819F 81B3 81C4" - $"81DE 81E7 81EC 81EB 81E3 81E4 81DD 81D6" - $"81CE 81C6 8172 819C 8100 95FF 8100 8DFF" - $"81C6 81A2 81C7 8188 816F 814D 8161 816F" - $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" - $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" - $"81C6 81A2 81C7 8188 816F 814D 8161 816F" - $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" - $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" - $"81C6 81A2 81C7 8188 816F 814D 8161 816F" - $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" - $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" - $"81C6 81A2 81C7 8188 816F 814D 8161 816F" - $"817F 8190 8194 81C1 81DB 81CC 81C1 81C0" - $"81B7 81AB 8182 81A2 8100 95FF 8100 8DFF" - $"8199 81BF 81AE 815C 818A 8185 816D 8150" - $"814E 815A 815B 8155 816C 818F 818B 818C" - $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" - $"8199 81BF 81AE 815C 818A 8185 816D 8150" - $"814E 815A 815B 8155 816C 818F 818B 818C" - $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" - $"8199 81BF 81AE 815C 818A 8185 816D 8150" - $"814E 815A 815B 8155 816C 818F 818B 818C" - $"8195 8188 818F 81A4 8100 95FF 8100 8DFF" - $"8199 81BF 81AE 815C 818A 8185 816D 8150" - $"814E 815A 815B 8155 816C 818F 818B 818C" - $"8195 8188 818F 81A4 8100 95FF 8100 89FF" - $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" - $"8182 8151 814A 8143 813F 814B 8153 815E" - $"8168 8160 818F 81A6 8100 95FF 8100 89FF" - $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" - $"8182 8151 814A 8143 813F 814B 8153 815E" - $"8168 8160 818F 81A6 8100 95FF 8100 89FF" - $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" - $"8182 8151 814A 8143 813F 814B 8153 815E" - $"8168 8160 818F 81A6 8100 95FF 8100 89FF" - $"81CA 8166 817C 818C 819F 85FF 81DC 81B5" - $"8182 8151 814A 8143 813F 814B 8153 815E" - $"8168 8160 818F 81A6 8100 95FF 8100 89FF" - $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D" - $"8184 817B 8168 816D 815A 815E 818F 81AF" - $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" - $"81DC 81C3 81A8 818D 8184 817B 8168 816D" - $"815A 815E 818F 81AF 8100 95FF 8100 89FF" - $"8166 819F 81C2 95FF 81DC 81C3 81A8 818D" - $"8184 817B 8168 816D 815A 815E 818F 81AF" - $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" - $"81DC 81C3 81A8 818D 8184 817B 8168 816D" - $"815A 815E 818F 81AF 8100 95FF 8100 C5FF" - $"8100 85FF 8181 818F 81B5 8100 95FF 8100" - $"C5FF 8100 85FF 8181 818F 81B5 8100 95FF" - $"8100 C5FF 8100 85FF 8181 818F 81B5 8100" - $"95FF 8100 C5FF 8100 85FF 8181 818F 81B5" - $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" - $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" - $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" - $"8100 95FF 8100 C5FF 8100 85FF 8122 8544" - $"8100 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"8500 95FF 8100 ADFF 9900 8DFF 8500 95FF" - $"8100 ADFF 9900 8DFF 8500 95FF 8100 ADFF" - $"9900 8DFF 8500 95FF 8100 ADFF 9900 8DFF" - $"FF00 FF00 FF00 FB00 FF00 FF00 FF00 FF00" - $"9500 C9FF 8101 8100 8144 81FF A100 C9FF" - $"8101 8100 8144 81FF A100 C9FF 8101 8100" - $"8144 81FF A100 C9FF 8101 8100 8144 81FF" - $"A100 C5FF 8109 8500 8101 8144 A100 C5FF" - $"8109 8500 8101 8144 A100 C5FF 8109 8500" - $"8101 8144 A100 C5FF 8109 8500 8101 8144" - $"A100 C1FF 8167 81BC 8100 8101 8119 8144" - $"A100 C1FF 8167 81BC 8100 8101 8119 8144" - $"A100 C1FF 8167 81BC 8100 8101 8119 8144" - $"A100 C1FF 8167 81BC 8100 8101 8119 8144" - $"A100 BDFF 8166 81E4 819D 8171 8119 8144" - $"81FF A100 BDFF 8166 81E4 819D 8171 8119" - $"8144 81FF A100 BDFF 8166 81E4 819D 8171" - $"8119 8144 81FF A100 BDFF 8166 81E4 819D" - $"8171 8119 8144 81FF A100 A9FF 81C9 81BE" - $"81A7 819B 8182 81E4 8189 8144 8119 8144" - $"85FF A100 A9FF 81C9 81BE 81A7 819B 8182" - $"81E4 8189 8144 8119 8144 85FF A100 A9FF" - $"81C9 81BE 81A7 819B 8182 81E4 8189 8144" - $"8119 8144 85FF A100 A9FF 81C9 81BE 81A7" - $"819B 8182 81E4 8189 8144 8119 8144 85FF" - $"A100 A1FF 81CF 81B6 81B9 81BB 819B 8179" - $"81E4 8193 8144 8119 8144 89FF A100 A1FF" - $"81CF 81B6 81B9 81BB 819B 8179 81E4 8193" - $"8144 8119 8144 89FF A100 A1FF 81CF 81B6" - $"81B9 81BB 819B 8179 81E4 8193 8144 8119" - $"8144 89FF A100 A1FF 81CF 81B6 81B9 81BB" - $"819B 8179 81E4 8193 8144 8119 8144 89FF" - $"A100 9DFF 81B2 81AC 81B6 81B5 819B 817D" - $"81E4 8197 8144 8119 8144 8DFF A100 9DFF" - $"81B2 81AC 81B6 81B5 819B 817D 81E4 8197" - $"8144 8119 8144 8DFF A100 9DFF 81B2 81AC" - $"81B6 81B5 819B 817D 81E4 8197 8144 8119" - $"8144 8DFF A100 9DFF 81B2 81AC 81B6 81B5" - $"819B 817D 81E4 8197 8144 8119 8144 8DFF" - $"BD00 85AF 81A0 816E 8151 8180 81E4 819A" - $"8144 8119 819B 8162 CD00 85AF 81A0 816E" - $"8151 8180 81E4 819A 8144 8119 819B 8162" - $"CD00 85AF 81A0 816E 8151 8180 81E4 819A" - $"8144 8119 819B 8162 CD00 85AF 81A0 816E" - $"8151 8180 81E4 819A 8144 8119 819B 8162" - $"9500 95FF 8100 95FF 81B2 81B3 8197 8168" - $"812E 8176 81E4 819D 8144 8119 8163 8196" - $"81A1 8162 9100 95FF 8100 95FF 81B2 81B3" - $"8197 8168 812E 8176 81E4 819D 8144 8119" - $"8163 8196 81A1 8162 9100 95FF 8100 95FF" - $"81B2 81B3 8197 8168 812E 8176 81E4 819D" - $"8144 8119 8163 8196 81A1 8162 9100 95FF" - $"8100 95FF 81B2 81B3 8197 8168 812E 8176" - $"81E4 819D 8144 8119 8163 8196 81A1 8162" - $"9100 95FF 8100 91FF 81BE 81B0 8199 8153" - $"8130 817E 81CF 819C 8146 8119 8134 8159" - $"818B 81A6 819C 8162 8D00 95FF 8100 91FF" - $"81BE 81B0 8199 8153 8130 817E 81CF 819C" - $"8146 8119 8134 8159 818B 81A6 819C 8162" - $"8D00 95FF 8100 91FF 81BE 81B0 8199 8153" - $"8130 817E 81CF 819C 8146 8119 8134 8159" - $"818B 81A6 819C 8162 8D00 95FF 8100 91FF" - $"81BE 81B0 8199 8153 8130 817E 81CF 819C" - $"8146 8119 8134 8159 818B 81A6 819C 8162" - $"8D00 95FF 8100 8DFF 81E0 81B1 8191 8167" - $"812E 817E 81D0 819A 8144 810E 812A 813C" - $"8155 817B 81A0 81A8 81A2 8162 8900 95FF" - $"8100 8DFF 81E0 81B1 8191 8167 812E 817E" - $"81D0 819A 8144 810E 812A 813C 8155 817B" - $"81A0 81A8 81A2 8162 8900 95FF 8100 8DFF" - $"81E0 81B1 8191 8167 812E 817E 81D0 819A" - $"8144 810E 812A 813C 8155 817B 81A0 81A8" - $"81A2 8162 8900 95FF 8100 8DFF 81E0 81B1" - $"8191 8167 812E 817E 81D0 819A 8144 810E" - $"812A 813C 8155 817B 81A0 81A8 81A2 8162" - $"8900 95FF 8100 8DFF 81C5 8176 814B 812D" - $"8151 81B5 8186 814F 8104 810E 8134 8161" - $"8181 818A 819F 81A8 81A7 81A1 8168 817C" - $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" - $"8151 81B5 8186 814F 8104 810E 8134 8161" - $"8181 818A 819F 81A8 81A7 81A1 8168 817C" - $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" - $"8151 81B5 8186 814F 8104 810E 8134 8161" - $"8181 818A 819F 81A8 81A7 81A1 8168 817C" - $"8100 95FF 8100 8DFF 81C5 8176 814B 812D" - $"8151 81B5 8186 814F 8104 810E 8134 8161" - $"8181 818A 819F 81A8 81A7 81A1 8168 817C" - $"8100 95FF 8100 8DFF 8172 812D 813A 817D" - $"8186 8183 8199 8198 818C 8185 81A0 81B3" - $"81B9 81AE 81A9 85AA 81A5 8168 817E 8100" - $"95FF 8100 8DFF 8172 812D 813A 817D 8186" - $"8183 8199 8198 818C 8185 81A0 81B3 81B9" - $"81AE 81A9 85AA 81A5 8168 817E 8100 95FF" - $"8100 8DFF 8172 812D 813A 817D 8186 8183" - $"8199 8198 818C 8185 81A0 81B3 81B9 81AE" - $"81A9 85AA 81A5 8168 817E 8100 95FF 8100" - $"8DFF 8172 812D 813A 817D 8186 8183 8199" - $"8198 818C 8185 81A0 81B3 81B9 81AE 81A9" - $"85AA 81A5 8168 817E 8100 95FF 8100 8DFF" - $"81E8 8144 8138 81B3 81A9 8162 816F 817D" - $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" - $"819B 8195 8173 8192 8100 95FF 8100 8DFF" - $"81E8 8144 8138 81B3 81A9 8162 816F 817D" - $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" - $"819B 8195 8173 8192 8100 95FF 8100 8DFF" - $"81E8 8144 8138 81B3 81A9 8162 816F 817D" - $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" - $"819B 8195 8173 8192 8100 95FF 8100 8DFF" - $"81E8 8144 8138 81B3 81A9 8162 816F 817D" - $"819D 81B2 81BE 81BC 81B5 81B7 81AF 81A5" - $"819B 8195 8173 8192 8100 95FF 8100 8DFF" - $"81C2 8183 819A 8144 813D 811E 8129 8134" - $"8144 8155 815C 818E 81AC 819A 818B 8189" - $"817D 8175 8182 819A 8100 95FF 8100 8DFF" - $"81C2 8183 819A 8144 813D 811E 8129 8134" - $"8144 8155 815C 818E 81AC 819A 818B 8189" - $"817D 8175 8182 819A 8100 95FF 8100 8DFF" - $"81C2 8183 819A 8144 813D 811E 8129 8134" - $"8144 8155 815C 818E 81AC 819A 818B 8189" - $"817D 8175 8182 819A 8100 95FF 8100 8DFF" - $"81C2 8183 819A 8144 813D 811E 8129 8134" - $"8144 8155 815C 818E 81AC 819A 818B 8189" - $"817D 8175 8182 819A 8100 95FF 8100 8DFF" - $"816E 818B 8180 8144 8174 816B 8145 8522" - $"812F 8130 812E 8142 815C 8155 8158 8160" - $"8155 818E 819E 8100 95FF 8100 8DFF 816E" - $"818B 8180 8144 8174 816B 8145 8522 812F" - $"8130 812E 8142 815C 8155 8158 8160 8155" - $"818E 819E 8100 95FF 8100 8DFF 816E 818B" - $"8180 8144 8174 816B 8145 8522 812F 8130" - $"812E 8142 815C 8155 8158 8160 8155 818E" - $"819E 8100 95FF 8100 8DFF 816E 818B 8180" - $"8144 8174 816B 8145 8522 812F 8130 812E" - $"8142 815C 8155 8158 8160 8155 818E 819E" - $"8100 95FF 8100 89FF 81B4 8166 815A 8181" - $"819F 85FF 81D6 819F 815B 8123 811B 8113" - $"8110 8120 812B 8133 813C 8137 818E 81A0" - $"8100 95FF 8100 89FF 81B4 8166 815A 8181" - $"819F 85FF 81D6 819F 815B 8123 811B 8113" - $"8110 8120 812B 8133 813C 8137 818E 81A0" - $"8100 95FF 8100 89FF 81B4 8166 815A 8181" - $"819F 85FF 81D6 819F 815B 8123 811B 8113" - $"8110 8120 812B 8133 813C 8137 818E 81A0" - $"8100 95FF 8100 89FF 81B4 8166 815A 8181" - $"819F 85FF 81D6 819F 815B 8123 811B 8113" - $"8110 8120 812B 8133 813C 8137 818E 81A0" - $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" - $"81D6 81B6 8192 816F 8166 815B 8147 8149" - $"8131 813B 818E 81A6 8100 95FF 8100 89FF" - $"8166 819F 81C2 95FF 81D6 81B6 8192 816F" - $"8166 815B 8147 8149 8131 813B 818E 81A6" - $"8100 95FF 8100 89FF 8166 819F 81C2 95FF" - $"81D6 81B6 8192 816F 8166 815B 8147 8149" - $"8131 813B 818E 81A6 8100 95FF 8100 89FF" - $"8166 819F 81C2 95FF 81D6 81B6 8192 816F" - $"8166 815B 8147 8149 8131 813B 818E 81A6" - $"8100 95FF 8100 C5FF 8100 85FF 8172 818E" - $"81AB 8100 95FF 8100 C5FF 8100 85FF 8172" - $"818E 81AB 8100 95FF 8100 C5FF 8100 85FF" - $"8172 818E 81AB 8100 95FF 8100 C5FF 8100" - $"85FF 8172 818E 81AB 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF 8500 95FF 8100 ADFF" - $"8100 917B 8100 8DFF FF00 FF00 FF00 FB00" - $"FF00 FF00 FF00 FF00 9500 C9FF 810F 8143" - $"8144 81FF A100 C9FF 810F 8143 8144 81FF" - $"A100 C9FF 810F 8143 8144 81FF A100 C9FF" - $"810F 8143 8144 81FF A100 C5FF 8117 8143" - $"8116 810F 8144 A100 C5FF 8117 8143 8116" - $"810F 8144 A100 C5FF 8117 8143 8116 810F" - $"8144 A100 C5FF 8117 8143 8116 810F 8144" - $"A100 C1FF 8165 81C4 8116 810F 811A 8144" - $"A100 C1FF 8165 81C4 8116 810F 811A 8144" - $"A100 C1FF 8165 81C4 8116 810F 811A 8144" - $"A100 C1FF 8165 81C4 8116 810F 811A 8144" - $"A100 BDFF 8155 8167 81A7 816C 811A 8144" - $"81FF A100 BDFF 8155 8167 81A7 816C 811A" - $"8144 81FF A100 BDFF 8155 8167 81A7 816C" - $"811A 8144 81FF A100 BDFF 8155 8167 81A7" - $"816C 811A 8144 81FF A100 A9FF 81BC 81A9" - $"8192 8193 813E 8167 814D 8123 811A 8144" - $"85FF A100 A9FF 81BC 81A9 8192 8193 813E" - $"8167 814D 8123 811A 8144 85FF A100 A9FF" - $"81BC 81A9 8192 8193 813E 8167 814D 8123" - $"811A 8144 85FF A100 A9FF 81BC 81A9 8192" - $"8193 813E 8167 814D 8123 811A 8144 85FF" - $"A100 A1FF 81C6 819A 8598 8193 8131 8167" - $"814A 8123 811A 8144 89FF A100 A1FF 81C6" - $"819A 8598 8193 8131 8167 814A 8123 811A" - $"8144 89FF A100 A1FF 81C6 819A 8598 8193" - $"8131 8167 814A 8123 811A 8144 89FF A100" - $"A1FF 81C6 819A 8598 8193 8131 8167 814A" - $"8123 811A 8144 89FF A100 9DFF 819C 818E" - $"8199 8195 8193 8137 8167 814F 8123 811A" - $"8144 8DFF A100 9DFF 819C 818E 8199 8195" - $"8193 8137 8167 814F 8123 811A 8144 8DFF" - $"A100 9DFF 819C 818E 8199 8195 8193 8137" - $"8167 814F 8123 811A 8144 8DFF A100 9DFF" - $"819C 818E 8199 8195 8193 8137 8167 814F" - $"8123 811A 8144 8DFF BD00 8192 818F 8186" - $"8157 8147 8139 8167 8152 8123 811A 817A" - $"8161 CD00 8192 818F 8186 8157 8147 8139" - $"8167 8152 8123 811A 817A 8161 CD00 8192" - $"818F 8186 8157 8147 8139 8167 8152 8123" - $"811A 817A 8161 CD00 8192 818F 8186 8157" - $"8147 8139 8167 8152 8123 811A 817A 8161" - $"9500 95FF 8100 95FF 8195 8191 817C 8151" - $"812A 8132 8167 8153 8123 811A 814B 8178" - $"8183 8161 89FF 8500 95FF 8100 95FF 8195" - $"8191 817C 8151 812A 8132 8167 8153 8123" - $"811A 814B 8178 8183 8161 89FF 8500 95FF" - $"8100 95FF 8195 8191 817C 8151 812A 8132" - $"8167 8153 8123 811A 814B 8178 8183 8161" - $"89FF 8500 95FF 8100 95FF 8195 8191 817C" - $"8151 812A 8132 8167 8153 8123 811A 814B" - $"8178 8183 8161 89FF 8500 95FF 8100 91FF" - $"81A9 818B 817D 8141 812C 8137 8163 8153" - $"8124 811A 812C 8144 816D 818A 8180 8161" - $"85FF 8500 95FF 8100 91FF 81A9 818B 817D" - $"8141 812C 8137 8163 8153 8124 811A 812C" - $"8144 816D 818A 8180 8161 85FF 8500 95FF" - $"8100 91FF 81A9 818B 817D 8141 812C 8137" - $"8163 8153 8124 811A 812C 8144 816D 818A" - $"8180 8161 85FF 8500 95FF 8100 91FF 81A9" - $"818B 817D 8141 812C 8137 8163 8153 8124" - $"811A 812C 8144 816D 818A 8180 8161 85FF" - $"8500 95FF 8100 8DFF 81DA 8192 8178 8154" - $"8127 8137 8161 8151 8122 8111 8124 8132" - $"813F 8160 8184 818D 8186 8161 81FF 8500" - $"95FF 8100 8DFF 81DA 8192 8178 8154 8127" - $"8137 8161 8151 8122 8111 8124 8132 813F" - $"8160 8184 818D 8186 8161 81FF 8500 95FF" - $"8100 8DFF 81DA 8192 8178 8154 8127 8137" - $"8161 8151 8122 8111 8124 8132 813F 8160" - $"8184 818D 8186 8161 81FF 8500 95FF 8100" - $"8DFF 81DA 8192 8178 8154 8127 8137 8161" - $"8151 8122 8111 8124 8132 813F 8160 8184" - $"818D 8186 8161 81FF 8500 95FF 8100 8DFF" - $"81B7 815B 813C 8127 8130 8159 8156 812A" - $"810A 810C 812C 814F 8165 816C 8185 818D" - $"8189 8188 8169 8188 8100 95FF 8100 8DFF" - $"81B7 815B 813C 8127 8130 8159 8156 812A" - $"810A 810C 812C 814F 8165 816C 8185 818D" - $"8189 8188 8169 8188 8100 95FF 8100 8DFF" - $"81B7 815B 813C 8127 8130 8159 8156 812A" - $"810A 810C 812C 814F 8165 816C 8185 818D" - $"8189 8188 8169 8188 8100 95FF 8100 8DFF" - $"81B7 815B 813C 8127 8130 8159 8156 812A" - $"810A 810C 812C 814F 8165 816C 8185 818D" - $"8189 8188 8169 8188 8100 95FF 8100 8DFF" - $"8161 8120 812F 816A 8576 8583 8178 8174" - $"818C 819A 819D 8191 858E 818C 8188 8169" - $"8155 8100 95FF 8100 8DFF 8161 8120 812F" - $"816A 8576 8583 8178 8174 818C 819A 819D" - $"8191 858E 818C 8188 8169 8155 8100 95FF" - $"8100 8DFF 8161 8120 812F 816A 8576 8583" - $"8178 8174 818C 819A 819D 8191 858E 818C" - $"8188 8169 8155 8100 95FF 8100 8DFF 8161" - $"8120 812F 816A 8576 8583 8178 8174 818C" - $"819A 819D 8191 858E 818C 8188 8169 8155" - $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" - $"8194 8153 8154 815F 8180 8195 81A2 819E" - $"819A 819D 8194 8188 8181 817A 8173 8144" - $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" - $"8194 8153 8154 815F 8180 8195 81A2 819E" - $"819A 819D 8194 8188 8181 817A 8173 8144" - $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" - $"8194 8153 8154 815F 8180 8195 81A2 819E" - $"819A 819D 8194 8188 8181 817A 8173 8144" - $"8100 95FF 8100 8DFF 81E7 8122 8130 8196" - $"8194 8153 8154 815F 8180 8195 81A2 819E" - $"819A 819D 8194 8188 8181 817A 8173 8144" - $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" - $"8138 8119 811F 812A 8136 8144 814A 8175" - $"8191 8181 8173 8172 8168 8160 8181 81FF" - $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" - $"8138 8119 811F 812A 8136 8144 814A 8175" - $"8191 8181 8173 8172 8168 8160 8181 81FF" - $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" - $"8138 8119 811F 812A 8136 8144 814A 8175" - $"8191 8181 8173 8172 8168 8160 8181 81FF" - $"8100 95FF 8100 8DFF 81C6 8146 8151 8135" - $"8138 8119 811F 812A 8136 8144 814A 8175" - $"8191 8181 8173 8172 8168 8160 8181 81FF" - $"8100 95FF 8100 8DFF 8159 816A 8149 8122" - $"8177 8168 813C 811A 811D 8928 8138 814D" - $"8147 8148 814F 8147 818E 81FF 8100 95FF" - $"8100 8DFF 8159 816A 8149 8122 8177 8168" - $"813C 811A 811D 8928 8138 814D 8147 8148" - $"814F 8147 818E 81FF 8100 95FF 8100 8DFF" - $"8159 816A 8149 8122 8177 8168 813C 811A" - $"811D 8928 8138 814D 8147 8148 814F 8147" - $"818E 81FF 8100 95FF 8100 8DFF 8159 816A" - $"8149 8122 8177 8168 813C 811A 811D 8928" - $"8138 814D 8147 8148 814F 8147 818E 81FF" - $"8100 95FF 8100 89FF 81A8 8165 814A 817F" - $"819F 85FF 81D3 819A 8155 811C 8114 810E" - $"810B 811B 8126 812B 8133 8130 818E 819A" - $"8100 95FF 8100 89FF 81A8 8165 814A 817F" - $"819F 85FF 81D3 819A 8155 811C 8114 810E" - $"810B 811B 8126 812B 8133 8130 818E 819A" - $"8100 95FF 8100 89FF 81A8 8165 814A 817F" - $"819F 85FF 81D3 819A 8155 811C 8114 810E" - $"810B 811B 8126 812B 8133 8130 818E 819A" - $"8100 95FF 8100 89FF 81A8 8165 814A 817F" - $"819F 85FF 81D3 819A 8155 811C 8114 810E" - $"810B 811B 8126 812B 8133 8130 818E 819A" - $"8100 95FF 8100 89FF 8165 819F 81C2 95FF" - $"81D3 81B2 818E 8169 815F 8156 8142 8143" - $"812B 8135 818E 819F 8100 95FF 8100 89FF" - $"8165 819F 81C2 95FF 81D3 81B2 818E 8169" - $"815F 8156 8142 8143 812B 8135 818E 819F" - $"8100 95FF 8100 89FF 8165 819F 81C2 95FF" - $"81D3 81B2 818E 8169 815F 8156 8142 8143" - $"812B 8135 818E 819F 8100 95FF 8100 89FF" - $"8165 819F 81C2 95FF 81D3 81B2 818E 8169" - $"815F 8156 8142 8143 812B 8135 818E 819F" - $"8100 95FF 8100 C5FF 8100 85FF 816B 818E" - $"81A7 8100 95FF 8100 C5FF 8100 85FF 816B" - $"818E 81A7 8100 95FF 8100 C5FF 8100 85FF" - $"816B 818E 81A7 8100 95FF 8100 C5FF 8100" - $"85FF 816B 818E 81A7 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 85FF 8122 8544 8100 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF 8100 C5FF" - $"8100 8DFF 8500 95FF 8100 C5FF 8100 8DFF" - $"8500 95FF 8100 C5FF 8100 8DFF 8500 95FF" - $"8100 C5FF 8100 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF 8500 95FF CD00 8DFF" - $"8500 95FF CD00 8DFF FF00 FF00 FF00 FB00" - $"7438 6D6B 0000 4008 FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF" -}; - -data 'ics#' (-16455, "Item Icon") { - $"F557 D001 700E E024 9A9B 0175 9299 0162" - $"923E 0001 9004 0000 9BBC 102C 8434 5AFD" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" - $"FFFF FFFF FFFF FFFF FFFF FFFF FFFF FFFF" -}; - -data 'ics4' (-16455, "Item Icon") { - $"AA3F DDDD DDDD DDAE A333 0000 0000 0C3E" - $"333A 0000 000C DBEC A333 0000 0CBC 2A00" - $"EDDF DDDB D2CB ECFF D00D 00CD BBBA B2D6" - $"D00D 00B2 DDBB DCCB D00D 00D4 D2D2 CC2D" - $"D00D 00BD CCE5 3EEC D00D 0C00 0000 CBCB" - $"D00D 0000 0000 0D0D D00D 0000 0000 0D00" - $"D00D ABAB ABAF 9F00 D00D 1111 11B8 9900" - $"D00D 1111 1189 9F00 EDDA 8291 ABAF 9FDD" -}; - -data 'ics8' (-16455, "Item Icon") { - $"DEDC DBB3 F9FA F9FA F9FA F9FA F9FA 8FFB" - $"DC23 23DB 0000 0000 0000 0000 0032 6A88" - $"DB23 23DC 0000 0000 0000 F52B 3357 882B" - $"DC23 23DB 0000 0000 F608 3234 33AD F600" - $"FCFA F9AC F9FA F95D 0E5D 3457 8833 F1F2" - $"FA00 00F9 0000 0733 825E 33AD 6432 33EF" - $"F900 00FA 0000 5D5E 5D33 825D 3332 2C57" - $"FA00 00F9 0000 5739 5D64 5D33 3232 335C" - $"F900 00FA 00F5 5D57 F732 828E 8988 88F9" - $"FA00 00F9 00F6 F600 0000 F5F6 4F5D F85D" - $"F900 00FA 0000 0000 0000 0000 00FA 0056" - $"FA00 00FA 0000 0000 0000 0000 00F9 0000" - $"F900 00F9 8359 8359 8359 ADD1 E8EA 0000" - $"FA00 00FA 0505 0505 0505 5FE5 E6E8 0000" - $"F900 00F9 0505 0505 0505 7DE6 E6D1 0000" - $"ACF9 FAFC 8359 8359 8359 ADD1 E8E9 FAF9" -}; - diff --git a/rbutil/rbutilApp.cpp b/rbutil/rbutilApp.cpp deleted file mode 100644 index 1901a62df1..0000000000 --- a/rbutil/rbutilApp.cpp +++ /dev/null @@ -1,288 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutilApp.cpp - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "rbutilApp.h" -#include "bootloaders.h" - -GlobalVars* gv = new GlobalVars(); - -IMPLEMENT_APP(rbutilFrmApp) - -bool rbutilFrmApp::OnInit() -{ - wxString buf = wxT(""); - - wxLogVerbose(wxT("=== begin rbutilFrmApp::Oninit()")); - - - gv->stdpaths = new wxStandardPaths(); - - // Get application directory - // DANGER! GetDataDir() doesn't portably return the application directory - // We want to use the form below instead, but not until wxWidgets 2.8 is - // released. *Datadir gives the wrong dir for this on Linux/Mac even on Wx2.8 * - gv->AppDir = gv->stdpaths->GetExecutablePath().BeforeLast(PATH_SEP_CHR); - // buf = gv->stdpaths->GetDataDir(); buf.Append(PATH_SEP); - // gv->AppDir = buf.BeforeLast(PATH_SEP_CHR).c_str(); - - buf = gv->stdpaths->GetUserDataDir(); - if (! wxDirExists(buf) ) - { - wxLogNull lognull; - if (! wxMkdir(buf, 0777)) - { - wxLogFatalError(wxT("Can't create data directory %s"), - buf.c_str()); - } - } - - buf += PATH_SEP wxT("rbutil.log"); - gv->logfile = new wxFFile(buf, wxT("w")); - if (! gv->logfile->IsOpened() ) - wxLogFatalError(wxT("Unable to open log file")); - - gv->loggui = new wxLogGui(); - gv->loggui->SetActiveTarget(gv->loggui); - gv->loggui->SetLogLevel(wxLOG_Message); - gv->logchain = new wxLogChain( - gv->logstderr = new wxLogStderr(gv->logfile->fp() ) ); - - buf = buf.Left(buf.Len() - 10); - buf.Append(wxT("download")); - if (! wxDirExists(buf) ) wxMkdir(buf, 0777); - - wxFileSystem::AddHandler(new wxInternetFSHandler); - wxFileSystem::AddHandler(new wxZipFSHandler); - - if (!ReadGlobalConfig(NULL)) - { - ERR_DIALOG(gv->ErrStr->GetData(), wxT("Rockbox Utility")); - return FALSE; - } - ReadUserConfig(); - - wxInitAllImageHandlers(); //init Image handlers - initIpodpatcher(); // reserve mem for ipodpatcher - initSansaPatcher(); // reserve mem for sansapatcher - - rbutilFrm *myFrame = new rbutilFrm(NULL); - SetTopWindow(myFrame); - - myFrame->Show(TRUE); - - wxLogVerbose(wxT("=== end rbUtilFrmApp::OnInit()")); - return TRUE; -} - -int rbutilFrmApp::OnExit() -{ - wxLogVerbose(wxT("=== begin rbUtilFrmApp::OnExit()")); - - WriteUserConfig(); - - gv->logfile->Close(); - /* Enabling this code causes the program to crash. I - * have no idea why. (possibly because deleting non existing objects ? :-) ) - wxLog::DontCreateOnDemand(); - // Free a bunch of structures. - delete gv->GlobalConfig; - delete gv->ErrStr; - delete gv->stdpaths; - delete gv->platform; - - delete gv->logstderr; - delete gv->logchain; - delete gv->logfile; - delete gv->loggui; -*/ - wxLogVerbose(wxT("=== end rbUtilFrmApp::OnExit()")); - return 0; -} - -bool rbutilFrmApp::ReadGlobalConfig(rbutilFrm* myFrame) -{ - wxString buf, tmpstr, stack; - wxLogVerbose(wxT("=== begin rbutilFrmApp::ReadGlobalConfig(%p)"), - (void*) myFrame); - - // Cross-platform compatibility: look for rbutil.ini in then in the app dir - // then in the user config dir (linux ~/) and - // then config dir (linux /etc/ ) - - buf = gv->AppDir + wxT("" PATH_SEP "rbutil.ini"); - if (! wxFileExists(buf) ) - { - buf = gv->stdpaths->GetUserConfigDir() - + wxT("" PATH_SEP ".rbutil" PATH_SEP "rbutil.ini"); - if (! wxFileExists(buf) ) - { - buf = gv->stdpaths->GetConfigDir() - + wxT("" PATH_SEP "rbutil.ini"); - } - } - - if (! wxFileExists(buf) ) - { - gv->ErrStr = new wxString(wxT("Configuration file doesnt exist!")); - return false; - } - - - wxFileInputStream* cfgis = new wxFileInputStream(buf); - - if (!cfgis->CanRead()) { - gv->ErrStr = new wxString(wxT("Unable to open configuration file")); - return false; - } - - gv->GlobalConfig = new wxFileConfig(*cfgis); - gv->GlobalConfigFile = buf; - - unsigned int i = 0; - - stack = gv->GlobalConfig->GetPath(); - gv->GlobalConfig->SetPath(wxT("/platforms")); - while(gv->GlobalConfig->Read(buf.Format(wxT("platform%d"), i + 1), - &tmpstr)) { - wxString cur = tmpstr; - //gv->plat_id.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/name"), - cur.c_str()), &tmpstr); - gv->plat_name.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/platform"), - cur.c_str()), &tmpstr); - gv->plat_id.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/released"), - cur.c_str()), &tmpstr); - gv->plat_released.Add( (tmpstr == wxT("yes")) ? true : false ) ; - gv->GlobalConfig->Read(buf.Format(wxT("/%s/needsbootloader"), - cur.c_str()), &tmpstr); - gv->plat_needsbootloader.Add( (tmpstr == wxT("yes")) ? true : false ) ; - gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadermethod"), - cur.c_str()), &tmpstr); - gv->plat_bootloadermethod.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/bootloadername"), - cur.c_str()), &tmpstr); - gv->plat_bootloadername.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/resolution"), - cur.c_str()), &tmpstr); - gv->plat_resolution.Add(tmpstr); - gv->GlobalConfig->Read(buf.Format(wxT("/%s/manualname"), - cur.c_str()), &tmpstr); - gv->plat_manualname.Add(tmpstr); - - i++; - } - - gv->GlobalConfig->SetPath(wxT("/general")); - gv->GlobalConfig->Read(wxT("default_platform"), &tmpstr, wxT("cthulhu")); - - - gv->GlobalConfig->Read(wxT("last_release"), &tmpstr); - gv->last_release = tmpstr; - - gv->GlobalConfig->Read(wxT("download_url"), &tmpstr); - gv->download_url = tmpstr; - - gv->GlobalConfig->Read(wxT("daily_url"), &tmpstr); - gv->daily_url = tmpstr; - - gv->GlobalConfig->Read(wxT("bleeding_url"), &tmpstr); - gv->bleeding_url = tmpstr; - - gv->GlobalConfig->Read(wxT("server_conf_url"), &tmpstr); - gv->server_conf_url = tmpstr; - - gv->GlobalConfig->Read(wxT("font_url"), &tmpstr); - gv->font_url = tmpstr; - - gv->GlobalConfig->Read(wxT("prog_name"), &tmpstr); - gv->prog_name = tmpstr; - - gv->GlobalConfig->Read(wxT("bootloader_url"), &tmpstr); - gv->bootloader_url = tmpstr; - - gv->GlobalConfig->Read(wxT("themes_url"), &tmpstr); - gv->themes_url = tmpstr; - - gv->GlobalConfig->Read(wxT("manual_url"), &tmpstr); - gv->manual_url = tmpstr; - - gv->GlobalConfig->Read(wxT("doom_url"), &tmpstr); - gv->doom_url = tmpstr; - -#ifdef __WXMSW__ - gv->curdestdir = wxT("D:\\"); -#else - gv->curdestdir = wxT("/mnt"); -#endif - gv->GlobalConfig->SetPath(stack); - - wxLogVerbose(wxT("=== end rbutilFrmApp::ReadGlobalConfig()")); - return true; -} - -void rbutilFrmApp::ReadUserConfig() -{ - wxString buf, str, stack; - - buf = gv->AppDir + wxT("" PATH_SEP "RockboxUtility.cfg"); - - if (wxFileExists(buf) ) - { - gv->portable = true; - } - else - { - gv->portable = false; - buf = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "RockboxUtility.cfg"); - } - - gv->UserConfig = new wxFileConfig(wxEmptyString, wxEmptyString, buf); - gv->UserConfigFile = buf; - gv->UserConfig->Set(gv->UserConfig); // Store wxWidgets internal settings - stack = gv->UserConfig->GetPath(); - - gv->UserConfig->SetPath(wxT("/defaults")); - if (gv->UserConfig->Read(wxT("curdestdir"), &str) ) gv->curdestdir = str; - if (gv->UserConfig->Read(wxT("curplatform"), &str) ) gv->curplat = str; - if (gv->UserConfig->Read(wxT("curfirmware"), &str) ) gv->curfirmware = str; - if (gv->UserConfig->Read(wxT("proxy_url"), &str) ) gv->proxy_url = str; - - if (gv->UserConfig->Read(wxT("pathToTts"), &str) ) gv->pathToTts = str; - if (gv->UserConfig->Read(wxT("pathToEnc"), &str) ) gv->pathToEnc = str; - gv->UserConfig->SetPath(stack); -} - -void rbutilFrmApp::WriteUserConfig() -{ - gv->UserConfig->SetPath(wxT("/defaults")); - gv->UserConfig->Write(wxT("curdestdir"), gv->curdestdir); - gv->UserConfig->Write(wxT("curplatform"), gv->curplat); - gv->UserConfig->Write(wxT("curfirmware"), gv->curfirmware); - gv->UserConfig->Write(wxT("proxy_url"), gv->proxy_url); - gv->UserConfig->Write(wxT("pathToTts"), gv->pathToTts); - gv->UserConfig->Write(wxT("pathToEnc"), gv->pathToEnc); - - delete gv->UserConfig; - -} - diff --git a/rbutil/rbutilApp.h b/rbutil/rbutilApp.h deleted file mode 100644 index b20e39eb90..0000000000 --- a/rbutil/rbutilApp.h +++ /dev/null @@ -1,53 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutilApp.h - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include -#ifdef __BORLANDC__ - #pragma hdrstop -#endif -#ifndef WX_PRECOMP - #include -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "rbutilFrm.h" -#include "rbutil.h" - -class rbutilFrmApp:public wxApp -{ -public: - bool OnInit(); - int OnExit(); - bool ReadGlobalConfig(rbutilFrm* myFrame); - void ReadUserConfig(void); - void WriteUserConfig(void); - -}; - - diff --git a/rbutil/rbutilCtrls.cpp b/rbutil/rbutilCtrls.cpp deleted file mode 100644 index fdede634d3..0000000000 --- a/rbutil/rbutilCtrls.cpp +++ /dev/null @@ -1,628 +0,0 @@ - -#include "rbutilCtrls.h" -#include "bootloaders.h" -#include "autodetection.h" - -///////////////////////////////////////////////////////////// -//// Controls -//////////////////////////////////////////////////////////////// - -///////////////////////////////////////////// -//// Image Ctrl -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(ImageCtrl, wxControl) - EVT_PAINT(ImageCtrl::OnPaint) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(ImageCtrl, wxControl) - -bool ImageCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxValidator& validator) -{ - if (!wxControl::Create(parent, id, pos, size, style, validator)) return false; - -return true; -} - -void ImageCtrl::OnPaint(wxPaintEvent& event) -{ - wxPaintDC dc(this); - dc.DrawBitmap(m_bitmap,0,0,false); -} - -void ImageCtrl::SetBitmap(wxBitmap bmp) -{ - m_bitmap = bmp; - Refresh(); - -} - -wxSize ImageCtrl::DoGetBestSize() const -{ - wxSize bestsize; - bestsize.x = m_bitmap.GetWidth(); - bestsize.y = m_bitmap.GetHeight(); - return bestsize; -} - - - -///////////////////////////////////////////// -//// Theme Control -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(ThemeCtrl, wxPanel) - EVT_LISTBOX(ID_THEME_LST, ThemeCtrl::OnThemesLst) - EVT_BUTTON(ID_THEME_SELECT_ALL, ThemeCtrl::OnSelectAll) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(ThemeCtrl, wxPanel) - -bool ThemeCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxString title ) -{ - if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; - - CreateControls(); - - GetSizer()->Fit(this); - - GetSizer()->SetSizeHints(this); -return true; -} - -void ThemeCtrl::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); - - //Device Selection - wxBoxSizer* wxBoxSizer7 = new wxBoxSizer(wxVERTICAL); - horizontalSizer->Add(wxBoxSizer7,0,wxGROW | wxALL,0); - - wxStaticText* m_desc = new wxStaticText( this, wxID_STATIC, - wxT("Select one or more Themes to install"), wxDefaultPosition, - wxDefaultSize, 0 ); - wxBoxSizer7->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); - - m_themeList = new wxListBox(this,ID_THEME_LST,wxDefaultPosition, - wxDefaultSize,0,NULL,wxLB_EXTENDED); - wxBoxSizer7->Add(m_themeList, 0, wxALIGN_LEFT|wxALL, 5); - - m_selectAllThemes = new wxButton(this, ID_THEME_SELECT_ALL, - wxT("Select All")); - wxBoxSizer7->Add(m_selectAllThemes, 0, wxALIGN_LEFT|wxALL, 5); - - // Preview Picture - wxBoxSizer* wxBoxSizer9 = new wxBoxSizer(wxVERTICAL); - horizontalSizer->Add(wxBoxSizer9,0,wxGROW | wxALL,0); - - wxStaticText* preview_desc= new wxStaticText(this,wxID_ANY,wxT("Preview:")); - wxBoxSizer9->Add(preview_desc,0,wxGROW | wxALL,5); - - m_PreviewBitmap = new ImageCtrl(this,ID_PREVIEW_BITMAP ); - wxBoxSizer9->Add(m_PreviewBitmap,0,wxALIGN_LEFT | wxALL,5); - - wxStaticBox* groupbox= new wxStaticBox(this,wxID_ANY,wxT("Selected Theme:")); - wxStaticBoxSizer* styleSizer = new wxStaticBoxSizer( groupbox, wxVERTICAL ); - topSizer->Add(styleSizer,0,wxGROW|wxALL,0); - - // horizontal sizer - wxBoxSizer* wxBoxSizer8 = new wxBoxSizer(wxHORIZONTAL); - styleSizer->Add(wxBoxSizer8,0,wxGROW | wxALL,0); - - // File size - wxStaticText* size_desc= new wxStaticText(this,wxID_ANY,wxT("Filesize:")); - wxBoxSizer8->Add(size_desc,0,wxGROW | wxALL,5); - - m_size= new wxStaticText(this,ID_FILESIZE,wxT("")); - wxBoxSizer8->Add(m_size,0,wxGROW | wxALL,5); - - // Description - wxStaticText* desc_desc= new wxStaticText(this,wxID_ANY,wxT("Description:")); - styleSizer->Add(desc_desc,0,wxGROW | wxALL,5); - - m_themedesc= new wxTextCtrl(this,ID_DESC,wxT(""),wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY); - styleSizer->Add(m_themedesc,0,wxGROW | wxALL,5); - - topSizer->Fit(this); - topSizer->SetSizeHints(this); - Layout(); - -} - -void ThemeCtrl::Init() -{ - m_Themes.Clear(); - m_Themes_path.Clear(); - m_Themes_size.Clear(); - m_Themes_image.Clear(); - m_Themes_desc.Clear(); - -} - -void ThemeCtrl::setDevice(wxString device) -{ - - int index = gv->plat_id.Index(device); - if(index == -1) return; - - if(gv->plat_resolution[index] == m_currentResolution) - return; - else - m_currentResolution = gv->plat_resolution[index]; - - // load the themelist - Init(); - m_size->SetLabel(wxT("")); - m_themedesc->SetValue(wxT("")); - m_themeList->Clear(); - - //get correct Themes list - wxString src,dest,err; - - src = gv->themes_url + wxT("rbutil.php?res=") + m_currentResolution; - dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP) - + m_currentResolution + wxT(".list"); - - if(DownloadURL(src, dest)) - { - MESG_DIALOG(wxT("Unable to download themes list.")); - return; - } - - //read and parse Themes list - wxString themelistraw; - wxFFile themefile; - if(!themefile.Open(dest)) //open file - { - MESG_DIALOG(wxT("Unable to open themes list.")); - return; - } - if(!themefile.ReadAll(&themelistraw)) //read complete file - { - MESG_DIALOG(wxT("Unable to read themes list.")); - return; - } - wxRegEx reAll(wxT("(.+)")); //extract body part - if(! reAll.Matches(themelistraw)) - { - MESG_DIALOG(wxT("Themes list is in wrong Format.")); - return; - } - wxString lines = reAll.GetMatch(themelistraw,1); - - // prepare text - lines.Replace(wxT("
"),wxT(""),true); //replace
with nothing - lines.Replace(wxT("\n"),wxT(""),true); //replace \n with nothing - lines.Trim(true); //strip WS at end - lines.Trim(false); //strip WS at beginning - wxStringTokenizer tkz(lines,wxT("|")); //tokenize it - - while ( tkz.HasMoreTokens() ) // read all entrys - { - m_Themes.Add(tkz.GetNextToken()); //Theme name - m_Themes_path.Add(tkz.GetNextToken()); //Theme path - m_Themes_size.Add(tkz.GetNextToken()); //File size - m_Themes_image.Add(tkz.GetNextToken()); //Screenshot - m_Themes_desc.Add(tkz.GetNextToken()); //Description - - m_themeList->Append(m_Themes.Last()); - } - - this->GetSizer()->Layout(); - this->GetSizer()->Fit(this); - this->GetSizer()->SetSizeHints(this); - m_parent->GetSizer()->Layout(); - m_parent->GetSizer()->Fit(m_parent); - m_parent->GetSizer()->SetSizeHints(m_parent); -} - - -void ThemeCtrl::OnThemesLst(wxCommandEvent& event) -{ - ThemePreview(); -} - -void ThemeCtrl::ThemePreview() -{ - // wxCriticalSectionLocker locker(m_ThemeSelectSection); - - wxArrayInt selected; - int numSelected = m_themeList->GetSelections(selected); - if(numSelected == 0) return; - - int index = selected[0]; - - m_size->SetLabel(m_Themes_size[index]); - m_themedesc->SetValue(m_Themes_desc[index]); - // m_themedesc->Wrap(200); // wrap desc - - wxString src,dest; - - int pos = m_Themes_image[index].Find('/',true); - wxString filename = m_Themes_image[index](pos+1,m_Themes_image[index].Length()); - - dest = gv->stdpaths->GetUserDataDir() - + wxT("" PATH_SEP "download" PATH_SEP) - + m_currentResolution; - - if(!wxDirExists(dest)) - wxMkdir(dest); - - //this is a URL no PATH_SEP - src = gv->themes_url + wxT("/data/") + m_currentResolution + wxT("/") - + filename; - dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP) - + m_currentResolution + wxT("" PATH_SEP) + filename; - - if(!wxFileExists(dest)) - { - if(DownloadURL(src, dest)) - { - MESG_DIALOG(wxT("Unable to download image.")); - return; - } - } - - m_currentimage = dest; - wxBitmap bmp; - bmp.LoadFile(m_currentimage,wxBITMAP_TYPE_PNG); - m_PreviewBitmap->SetBitmap(bmp); - - Refresh(); - this->GetSizer()->Layout(); - this->GetSizer()->Fit(this); - this->GetSizer()->SetSizeHints(this); - - m_parent->GetSizer()->Layout(); - m_parent->GetSizer()->Fit(m_parent); - m_parent->GetSizer()->SetSizeHints(m_parent); - -} - -void ThemeCtrl::OnSelectAll(wxCommandEvent& event) -{ - for(unsigned int i=0; i < m_themeList->GetCount(); i++) - m_themeList->Select(i); - ThemePreview(); -} - -wxArrayString ThemeCtrl::getThemesToInstall() -{ - wxArrayString themes; - wxArrayInt selected; - int numSelected = m_themeList->GetSelections(selected); - - for(int i=0; i < numSelected; i++) - { - themes.Add(m_Themes_path[selected[i]]); - } - return themes; - - } - -///////////////////////////////////////////// -//// Ok Cancel Control -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(OkCancelCtrl, wxPanel) - -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(OkCancelCtrl, wxPanel) - -bool OkCancelCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxString title) -{ - if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; - - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); -return true; -} - -void OkCancelCtrl::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL); - this->SetSizer(topSizer); - - // The OK button - m_OkBtn = new wxButton ( this, wxID_OK, wxT("&OK"), - wxDefaultPosition, wxDefaultSize, 0 ); - topSizer->Add(m_OkBtn, 0, wxALL, 5); - // The Cancel button - m_CancelBtn = new wxButton ( this, wxID_CANCEL, - wxT("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - topSizer->Add(m_CancelBtn, 0, wxALL, 5); - - Layout(); - -} - - -///////////////////////////////////////////// -//// Device Selector -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(DeviceSelectorCtrl, wxPanel) - EVT_BUTTON(ID_AUTODETECT_BTN, DeviceSelectorCtrl::OnAutoDetect) - EVT_COMBOBOX(ID_DEVICE_CBX,DeviceSelectorCtrl::OnComboBox) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(DeviceSelectorCtrl, wxPanel) - -bool DeviceSelectorCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxString title) -{ - if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; - - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - return true; -} - -void DeviceSelectorCtrl::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - //Device Selection - wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); - m_desc = new wxStaticText( this, wxID_STATIC, - wxT("Device:"), wxDefaultPosition, - wxDefaultSize, 0 ); - horizontalSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); - - m_deviceCbx = new wxComboBox(this, ID_DEVICE_CBX,wxT("Select your Device"), - wxDefaultPosition,wxDefaultSize,gv->plat_name,wxCB_READONLY); - - m_deviceCbx->SetToolTip(wxT("Select your Device.")); - m_deviceCbx->SetHelpText(wxT("Select your Device.")); - - horizontalSizer->Add(m_deviceCbx, 0, wxALIGN_LEFT|wxALL, 5); - - wxButton* m_autodetectBtn = new wxButton(this, ID_AUTODETECT_BTN, wxT("Autodetect"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, - wxT("AutodetectBtn")); - - m_autodetectBtn->SetToolTip(wxT("Click here to autodetect your Device.")); - m_autodetectBtn->SetHelpText(wxT("Autodetection of the Device.")); - // m_autodetectBtn->SetFocus(); - - horizontalSizer->Add(m_autodetectBtn,0,wxGROW | wxALL,5); - Layout(); - -} - -wxString DeviceSelectorCtrl::getDevice() -{ - return m_currentDevice; -} - -void DeviceSelectorCtrl::setDefault() -{ - int index = gv->plat_id.Index(gv->curplat); - if(index == -1) return; - m_deviceCbx->SetValue(gv->plat_name[index]); -} - -void DeviceSelectorCtrl::OnComboBox(wxCommandEvent& event) -{ - int index = gv->plat_name.Index(m_deviceCbx->GetValue()); - - if(index == -1) - { - m_currentDevice = wxT(""); - return; - } - - gv->curplat = gv->plat_id[index]; -} - -void DeviceSelectorCtrl::OnAutoDetect(wxCommandEvent& event) -{ - if(!AutoDetect()) - { - WARN_DIALOG(wxT("No Device detected. If you have a Device connected, select the correct one manually."), - wxT("Detecting a Device")); - } -} - - -bool DeviceSelectorCtrl::AutoDetect() -{ - UsbDeviceInfo device; - - if(detectDevices(&device)) - { - - if(device.status == DEVICEFOUND) - { - m_deviceCbx->SetValue(gv->plat_name[device.device_index]); - gv->curplat=gv->plat_id[device.device_index]; - - if(device.path != wxT("")) - { - gv->curdestdir = device.path; - } - return true; - } - else if(device.status == TOMANYDEVICES) - { - WARN_DIALOG(wxT("More then one device detected, please connect only One"), - wxT("Detecting a Device")); - return true; - } - } - return false; -} - -///////////////////////////////////////////// -//// DevicePosition Selector -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(DevicePositionCtrl, wxPanel) - EVT_BUTTON(ID_BROWSE_BTN, DevicePositionCtrl::OnBrowseBtn) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(DevicePositionCtrl, wxPanel) - -bool DevicePositionCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxString title) -{ - if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; - - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); -return true; -} - -void DevicePositionCtrl::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - //Device Selection - m_desc = new wxStaticText( this, wxID_STATIC, - wxT("Select your Device in the Filesystem"), wxDefaultPosition, - wxDefaultSize, 0 ); - topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); - - wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(horizontalSizer, 0, wxGROW|wxALL, 5); - - m_devicePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir); - m_devicePos->SetToolTip(wxT("Type the folder where your Device is here")); - m_devicePos->SetHelpText(wxT("Type the folder where your Device is here")); - horizontalSizer->Add(m_devicePos,0,wxGROW | wxALL,5); - - m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, - wxT("BrowseBtn")); - m_browseBtn->SetToolTip(wxT("Browse for your Device")); - m_browseBtn->SetHelpText(wxT("Browse for your Device")); - horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5); - - topSizer->Fit(this); - Layout(); - -} - -wxString DevicePositionCtrl::getDevicePos() -{ - return m_devicePos->GetValue(); - -} - -void DevicePositionCtrl::setDefault() -{ - m_devicePos->SetValue(gv->curdestdir); -} - -void DevicePositionCtrl::OnBrowseBtn(wxCommandEvent& event) -{ - const wxString& temp = wxDirSelector( - wxT("Please select the location of your audio device"), gv->curdestdir, - 0, wxDefaultPosition, this); - - if (!temp.empty()) - { - m_devicePos->SetValue(temp); - } - -} - -///////////////////////////////////////////// -//// FirmwarePosition Selector -////////////////////////////////////////////// - -BEGIN_EVENT_TABLE(FirmwarePositionCtrl, wxPanel) - EVT_BUTTON(ID_BROWSE_BTN, FirmwarePositionCtrl::OnBrowseBtn) -END_EVENT_TABLE() - -IMPLEMENT_DYNAMIC_CLASS(FirmwarePositionCtrl, wxControl) - -bool FirmwarePositionCtrl::Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos, const wxSize& size, long style, - const wxString title) -{ - if (!wxPanel::Create(parent, id, pos, size, style, title)) return false; - - CreateControls(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); -return true; -} - -void FirmwarePositionCtrl::CreateControls() -{ - // A top-level sizer - wxBoxSizer* topSizer = new wxBoxSizer(wxVERTICAL); - this->SetSizer(topSizer); - - //Device Selection - m_desc = new wxStaticText( this, wxID_STATIC, - wxT("Select original Firmware from the Manufacturer"), wxDefaultPosition, - wxDefaultSize, 0 ); - topSizer->Add(m_desc, 0, wxALIGN_LEFT|wxALL, 5); - - wxBoxSizer* horizontalSizer = new wxBoxSizer(wxHORIZONTAL); - topSizer->Add(horizontalSizer, 0, wxALIGN_LEFT|wxALL, 5); - - m_firmwarePos = new wxTextCtrl(this,wxID_ANY,gv->curdestdir); - m_firmwarePos->SetToolTip(wxT("Type the folder where the original Firmware is here")); - m_firmwarePos->SetHelpText(wxT("Type the folder where the original Firmware is here")); - horizontalSizer->Add(m_firmwarePos,0,wxGROW | wxALL,5); - - m_browseBtn = new wxButton(this, ID_BROWSE_BTN, wxT("Browse"), - wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, - wxT("BrowseBtn")); - m_browseBtn->SetToolTip(wxT("Browse for the original Firmware")); - m_browseBtn->SetHelpText(wxT("Browse for the original Firmware")); - horizontalSizer->Add(m_browseBtn,0,wxGROW | wxALL,5); - - Layout(); - -} - -wxString FirmwarePositionCtrl::getFirmwarePos() -{ - return m_firmwarePos->GetValue(); - -} - -void FirmwarePositionCtrl::setDefault() -{ - m_firmwarePos->SetValue(gv->curfirmware); -} - -void FirmwarePositionCtrl::OnBrowseBtn(wxCommandEvent& event) -{ - wxString temp = wxFileSelector( - wxT("Please select the location of the original Firmware"), gv->curdestdir,wxT(""),wxT(""),wxT("*.hex")); - - if (!temp.empty()) - { - m_firmwarePos->SetValue(temp); - } - -} - diff --git a/rbutil/rbutilCtrls.h b/rbutil/rbutilCtrls.h deleted file mode 100644 index 7998dc69a4..0000000000 --- a/rbutil/rbutilCtrls.h +++ /dev/null @@ -1,286 +0,0 @@ -#ifndef RBUTILCTRLS_H_INCLUDED -#define RBUTILCTRLS_H_INCLUDED - -#include "rbutil.h" - - -class ImageCtrl: public wxControl -{ -DECLARE_DYNAMIC_CLASS(ImageCtrl) -DECLARE_EVENT_TABLE() - -public: - // Constructors - ImageCtrl() { } - ImageCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER, - const wxValidator& validator = wxDefaultValidator) - { - Create(parent, id, pos, size, style, validator); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER, - const wxValidator& validator = wxDefaultValidator); - - // Event handlers - void OnPaint(wxPaintEvent& event); - - wxSize DoGetBestSize() const ; - - void SetBitmap(wxBitmap bmp); - -protected: - wxBitmap m_bitmap; - -}; - -class ThemeCtrl: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(ThemeCtrl) -DECLARE_EVENT_TABLE() -public: -enum { - ID_DESC = 10001, - ID_FILESIZE= 10002, - ID_INSTALLCHECKBOX= 10003, - ID_PREVIEW_BITMAP = 10004, - ID_THEME_LST = 10005, - ID_THEME_SELECT_ALL = 10006 - }; //End of Enum - -public: - // Constructors - ThemeCtrl() { Init(); } - ThemeCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")) - { - Init(); - Create(parent, id, pos, size, style, title); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")); - - // Creates the controls and sizers - void CreateControls(); - // Common initialization - void Init(); - // Event handlers - void OnThemesLst(wxCommandEvent& event); - void OnSelectAll(wxCommandEvent& event); - void OnCheckBox(wxCommandEvent& event); - - void setDevice(wxString device); - wxArrayString getThemesToInstall(); - -protected: - void ThemePreview(void); - - wxString m_currentimage; - wxString m_currentResolution; - - wxStaticText* m_desc; - wxListBox* m_themeList; - wxButton* m_selectAllThemes; - wxStaticText* m_size; - wxTextCtrl* m_themedesc; - ImageCtrl* m_PreviewBitmap; - - wxArrayString m_Themes; - wxArrayString m_Themes_path; - wxArrayString m_Themes_size; - wxArrayString m_Themes_image; - wxArrayString m_Themes_desc; - -}; - -class OkCancelCtrl: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(OkCancelCtrl) -DECLARE_EVENT_TABLE() - -public: - // Constructors - OkCancelCtrl() { Init(); } - OkCancelCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")) - { - Init(); - Create(parent, id, pos, size, style, title); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")); - - // Creates the controls and sizers - void CreateControls(); - // Common initialization - void Init() { } - -protected: - wxButton* m_OkBtn; - wxButton* m_CancelBtn; - -}; - -class DeviceSelectorCtrl: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(DeviceSelectorCtrl) -DECLARE_EVENT_TABLE() -public: -enum { - ID_DEVICE_CBX = 10001, - ID_AUTODETECT_BTN= 10002, - }; //End of Enum - -public: - // Constructors - DeviceSelectorCtrl() { } - DeviceSelectorCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")) - { - Create(parent, id, pos, size, style, title); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")); - - // Creates the controls and sizers - void CreateControls(); - // Event handlers - void OnAutoDetect(wxCommandEvent& event); - void OnComboBox(wxCommandEvent& event); - // Accessors - wxString getDevice(); - void setDefault(); - - bool AutoDetect(); - -protected: - wxString m_currentDevice; - wxComboBox* m_deviceCbx; - wxStaticText* m_desc; - wxButton* m_autodetectBtn; - -}; - - -class DevicePositionCtrl: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(DevicePositionCtrl) -DECLARE_EVENT_TABLE() -public: -enum { - ID_BROWSE_BTN = 10003, - }; //End of Enum - -public: - // Constructors - DevicePositionCtrl() { Init(); } - DevicePositionCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")) - { - Init(); - Create(parent, id, pos, size, style, title); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")); - - // Creates the controls and sizers - void CreateControls(); - // Common initialization - void Init() { } - // Event handlers - void OnBrowseBtn(wxCommandEvent& event); - // Accessors - wxString getDevicePos(); - - void setDefault(); - -protected: - wxTextCtrl* m_devicePos; - wxStaticText* m_desc; - wxButton* m_browseBtn; - -}; - - -class FirmwarePositionCtrl: public wxPanel -{ -DECLARE_DYNAMIC_CLASS(FirmwarePositionCtrl) -DECLARE_EVENT_TABLE() -public: -enum { - ID_BROWSE_BTN = 10004, - }; //End of Enum - -public: - // Constructors - FirmwarePositionCtrl() { Init(); } - FirmwarePositionCtrl(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")) - { - Init(); - Create(parent, id, pos, size, style, title); - } - // Creation - bool Create(wxWindow* parent, wxWindowID id, - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxNO_BORDER|wxTAB_TRAVERSAL, - const wxString title = wxT("")); - - // Creates the controls and sizers - void CreateControls(); - // Common initialization - void Init() { } - // Event handlers - void OnBrowseBtn(wxCommandEvent& event); - // Accessors - wxString getFirmwarePos(); - void setDefault(); - -protected: - wxTextCtrl* m_firmwarePos; - wxStaticText* m_desc; - wxButton* m_browseBtn; - -}; - - - -#endif - diff --git a/rbutil/rbutilFrm.cpp b/rbutil/rbutilFrm.cpp deleted file mode 100644 index 306f955d46..0000000000 --- a/rbutil/rbutilFrm.cpp +++ /dev/null @@ -1,1164 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutilFrm.cpp - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "rbutilFrm.h" -#include "credits.h" - -#include "rbutilFrm_XPM.xpm" -#include "icons/rbinstall_btn.h" -#include "icons/remrb_btn.h" -#include "icons/font_btn.h" -#include "icons/bootloader_btn.h" -#include "icons/rembootloader_btn.h" -#include "icons/themes_btn.h" -#include "icons/doom_btn.h" -#include "icons/talkfile_btn.h" - -#include "rblogo.xpm" - -#include "bootloaders.h" -#include "install_dialogs.h" - - - -//---------------------------------------------------------------------------- -// rbutilFrm -//---------------------------------------------------------------------------- - -BEGIN_EVENT_TABLE(rbutilFrm,wxFrame) - EVT_BUTTON (ID_INSTALL_BTN, rbutilFrm::OnInstallBtn) - EVT_BUTTON (ID_REMOVE_BTN, rbutilFrm::OnRemoveBtn) - EVT_BUTTON (ID_FONT_BTN, rbutilFrm::OnFontBtn) - EVT_BUTTON (ID_THEMES_BTN, rbutilFrm::OnThemesBtn) - EVT_BUTTON (ID_BOOTLOADER_BTN, rbutilFrm::OnBootloaderBtn) - EVT_BUTTON (ID_BOOTLOADERREMOVE_BTN, rbutilFrm::OnBootloaderRemoveBtn) - EVT_BUTTON (ID_DOOM_BTN, rbutilFrm::OnDoomBtn) - EVT_BUTTON (ID_TALK_BTN, rbutilFrm::OnTalkBtn) - - EVT_CLOSE(rbutilFrm::rbutilFrmClose) - EVT_MENU(ID_FILE_EXIT, rbutilFrm::OnFileExit) - EVT_MENU(ID_FILE_ABOUT, rbutilFrm::OnFileAbout) - EVT_MENU(ID_FILE_WIPECACHE, rbutilFrm::OnFileWipeCache) - EVT_MENU(ID_PORTABLE_INSTALL, rbutilFrm::OnPortableInstall) - - EVT_MENU(ID_FILE_PROXY, rbutilFrm::OnFileProxy) - - EVT_UPDATE_UI (ID_MANUAL, rbutilFrm::OnManualUpdate) - -END_EVENT_TABLE() - -rbutilFrm::rbutilFrm( wxWindow *parent, wxWindowID id, const wxString &title, - const wxPoint &position, const wxSize& size, long style ) - : wxFrame( parent, id, title, position, size, style) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrm(...)")); - CreateGUIControls(); - wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrm")); -} - -rbutilFrm::~rbutilFrm() {} - -void rbutilFrm::CreateGUIControls(void) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::CreateGUIControls()")); - - wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); - this->SetSizer(WxBoxSizer1); - this->SetAutoLayout(TRUE); - - wxPanel* mainPanel = new wxPanel(this,wxID_ANY); - WxBoxSizer1->Add(mainPanel,1,wxGROW|wxALL,0); - wxBoxSizer* WxBoxSizer0 = new wxBoxSizer(wxVERTICAL); - mainPanel->SetSizer(WxBoxSizer0); - mainPanel->SetAutoLayout(TRUE); - - wxBitmap rockboxbmp(rblogo_xpm); - ImageCtrl* rockboxbmpCtrl = new ImageCtrl(mainPanel,wxID_ANY); - rockboxbmpCtrl->SetBitmap(rockboxbmp); - - WxBoxSizer0->Add(rockboxbmpCtrl,0,wxALIGN_CENTER_HORIZONTAL | wxALL,5); - - myDeviceSelector = new DeviceSelectorCtrl(mainPanel,wxID_ANY); - myDeviceSelector->setDefault(); - myDeviceSelector->AutoDetect(); - WxBoxSizer0->Add(myDeviceSelector,0,wxGROW|wxALL,5); - - - wxNotebook* tabwindow = new wxNotebook(mainPanel,wxID_ANY); - WxBoxSizer0->Add(tabwindow,1,wxGROW|wxALL,5); - - wxPanel* installpage = new wxPanel(tabwindow,wxID_ANY); - wxPanel* themepage = new wxPanel(tabwindow,wxID_ANY); - wxPanel* uninstallpage = new wxPanel(tabwindow,wxID_ANY); - wxPanel* manualpage = new wxPanel(tabwindow,wxID_ANY); - tabwindow->AddPage(installpage,wxT("Installation"),true); - tabwindow->AddPage(themepage,wxT("Extras")); - tabwindow->AddPage(uninstallpage,wxT("Uninstallation")); - tabwindow->AddPage(manualpage,wxT("Manual")); - - /********************* - Install Page - ***********************/ - - wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxVERTICAL); - installpage->SetSizer(WxBoxSizer2); - installpage->SetAutoLayout(TRUE); - - wxStaticBox* WxStaticBoxSizer3_StaticBoxObj = new wxStaticBox(installpage, - wxID_ANY, wxT("Please choose an option")); - wxStaticBoxSizer* WxStaticBoxSizer3 = - new wxStaticBoxSizer(WxStaticBoxSizer3_StaticBoxObj,wxHORIZONTAL); - WxBoxSizer2->Add(WxStaticBoxSizer3,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - wxFlexGridSizer* WxFlexGridSizer1 = new wxFlexGridSizer(2,2,0,0); - WxStaticBoxSizer3->Add(WxFlexGridSizer1,0,wxGROW | wxALL,0); - - - wxBitmap BootloaderInstallButton (wxGetBitmapFromMemory(bootloader_btn_png,bootloader_btn_png_length)); - WxBitmapButton4 = new wxBitmapButton(installpage, ID_BOOTLOADER_BTN, - BootloaderInstallButton, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator,wxT("Bootloader Installation")); - WxBitmapButton4->SetToolTip(wxT("Click here to install the Rockbox bootloader")); - WxFlexGridSizer1->Add(WxBitmapButton4, 0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxStaticText* WxStaticText5 = new wxStaticText(installpage, wxID_ANY, - wxT("Bootloader installation\n\n" - "Before Rockbox can be installed on your audio player, you " - "may have to\ninstall a bootloader.\nThis is only necessary the first time " - "Rockbox is installed.")); - WxFlexGridSizer1->Add(WxStaticText5, 0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxBitmap WxBitmapButton1_BITMAP (wxGetBitmapFromMemory(rbinstall_btn_png,rbinstall_btn_png_length)); - WxBitmapButton1 = new wxBitmapButton(installpage, ID_INSTALL_BTN, - WxBitmapButton1_BITMAP, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, - wxT("Rockbox Installation")); - WxBitmapButton1->SetToolTip(wxT("Click here to install Rockbox")); - WxFlexGridSizer1->Add(WxBitmapButton1,0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - WxStaticText2 = new wxStaticText(installpage, ID_WXSTATICTEXT2, - wxT("Install Rockbox on your audio player")); - WxFlexGridSizer1->Add(WxStaticText2,0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - /*********************+ - Extras Page - ***********************/ - - wxBoxSizer* WxBoxSizer3 = new wxBoxSizer(wxVERTICAL); - themepage->SetSizer(WxBoxSizer3); - themepage->SetAutoLayout(TRUE); - - wxStaticBox* WxStaticBoxSizer4_StaticBoxObj = new wxStaticBox(themepage, - wxID_ANY, wxT("Please choose an option")); - wxStaticBoxSizer* WxStaticBoxSizer4 = - new wxStaticBoxSizer(WxStaticBoxSizer4_StaticBoxObj,wxHORIZONTAL); - WxBoxSizer3->Add(WxStaticBoxSizer4,1,wxALIGN_CENTER_HORIZONTAL |wxGROW| wxALL, 5); - - wxFlexGridSizer* WxFlexGridSizer2 = new wxFlexGridSizer(2,2,0,0); - WxStaticBoxSizer4->Add(WxFlexGridSizer2,0,wxGROW | wxALL,0); - - wxBitmap FontInstallButton (wxGetBitmapFromMemory(font_btn_png,font_btn_png_length)); - WxBitmapButton3 = new wxBitmapButton(themepage, ID_FONT_BTN, - FontInstallButton, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Font installation")); - WxBitmapButton3->SetToolTip(wxT("Click here to install the most up to date " - "Rockbox fonts.")); - WxFlexGridSizer2->Add(WxBitmapButton3, 0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxStaticText* WxStaticText4 = new wxStaticText(themepage, wxID_ANY, - wxT("Install the Rockbox fonts package\n\n" - "This step is needed for many Themes. You " - "will not need to download these\nagain unless you uninstall " - "Rockbox.")); - WxFlexGridSizer2->Add(WxStaticText4, 0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxBitmap ThemesInstallButton (wxGetBitmapFromMemory(themes_btn_png,themes_btn_png_length)); - WxBitmapButton5 = new wxBitmapButton(themepage, ID_THEMES_BTN, - ThemesInstallButton, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Theme installation")); - WxBitmapButton5->SetToolTip(wxT("Click here to install themes for Rockbox.")); - WxFlexGridSizer2->Add(WxBitmapButton5, 0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxStaticText* WxStaticText6 = new wxStaticText(themepage, wxID_ANY, - wxT("Install more Themes for Rockbox.\n\n")); - WxFlexGridSizer2->Add(WxStaticText6, 0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxBitmap DoomInstallButton (wxGetBitmapFromMemory(doom_btn_png,doom_btn_png_length)); - WxBitmapButton6 = new wxBitmapButton(themepage, ID_DOOM_BTN, - DoomInstallButton, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Freedoom installation")); - WxBitmapButton6->SetToolTip(wxT("Click here to install the freedoom wad files.")); - WxFlexGridSizer2->Add(WxBitmapButton6, 0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxStaticText* WxStaticText7 = new wxStaticText(themepage, wxID_ANY, - wxT("Install the freedoom wad files.\n\n")); - WxFlexGridSizer2->Add(WxStaticText7, 0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxBitmap TalkInstallButton (wxGetBitmapFromMemory(talkfile_btn_png,talkfile_btn_png_length)); - WxBitmapButton7 = new wxBitmapButton(themepage, ID_TALK_BTN, - TalkInstallButton, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Create Talk Files")); - WxBitmapButton7->SetToolTip(wxT("Click here to create Talk files.")); - WxFlexGridSizer2->Add(WxBitmapButton7, 0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxStaticText* WxStaticText8 = new wxStaticText(themepage, wxID_ANY, - wxT("Create Talk Files.\n\n")); - WxFlexGridSizer2->Add(WxStaticText8, 0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - - - /*********************+ - Uninstall Page - ***********************/ - - wxBoxSizer* WxBoxSizer4 = new wxBoxSizer(wxVERTICAL); - uninstallpage->SetSizer(WxBoxSizer4); - uninstallpage->SetAutoLayout(TRUE); - - wxStaticBox* WxStaticBoxSizer5_StaticBoxObj = new wxStaticBox(uninstallpage, - wxID_ANY, wxT("Please choose an option")); - wxStaticBoxSizer* WxStaticBoxSizer5 = - new wxStaticBoxSizer(WxStaticBoxSizer5_StaticBoxObj,wxHORIZONTAL); - WxBoxSizer4->Add(WxStaticBoxSizer5,1,wxALIGN_CENTER_HORIZONTAL|wxGROW | wxALL, 5); - - wxFlexGridSizer* WxFlexGridSizer3 = new wxFlexGridSizer(2,2,0,0); - WxStaticBoxSizer5->Add(WxFlexGridSizer3,0,wxGROW | wxALL,0); - - wxBitmap WxBitmapButton2_BITMAP (wxGetBitmapFromMemory(remrb_btn_png,remrb_btn_png_length)); - WxBitmapButton2 = new wxBitmapButton(uninstallpage, ID_REMOVE_BTN, - WxBitmapButton2_BITMAP, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW,wxDefaultValidator, wxT("Rockbox uninstallation")); - WxBitmapButton2->SetToolTip(wxT("Click here to uninstall Rockbox")); - WxFlexGridSizer3->Add(WxBitmapButton2,0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - WxStaticText3 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT3, - wxT("Remove Rockbox from your audio player")); - WxFlexGridSizer3->Add(WxStaticText3,0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - wxBitmap WxBitmapButton4_BITMAP (wxGetBitmapFromMemory(rembootloader_btn_png,rembootloader_btn_png_length)); - WxBitmapButton4 = new wxBitmapButton(uninstallpage, ID_BOOTLOADERREMOVE_BTN, - WxBitmapButton4_BITMAP, wxPoint(0,0), wxSize(64,54), - wxRAISED_BORDER | wxBU_AUTODRAW, wxDefaultValidator, - wxT("Bootloader uninstallation")); - WxBitmapButton4->SetToolTip(wxT("Click here to uninstall the Bootloader")); - WxFlexGridSizer3->Add(WxBitmapButton4,0, - wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL | wxALL,5); - - WxStaticText4 = new wxStaticText(uninstallpage, ID_WXSTATICTEXT4, - wxT("Remove Rockbox Bootloader from your audio player")); - WxFlexGridSizer3->Add(WxStaticText4,0, - wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL,5); - - - /***************** - * Manual Page - ******************/ - - wxBoxSizer* WxBoxSizer5 = new wxBoxSizer(wxVERTICAL); - manualpage->SetSizer(WxBoxSizer5); - manualpage->SetAutoLayout(TRUE); - - manuallink = new wxHyperlinkCtrl(manualpage,wxID_ANY,wxT("Rockbox PDF Manual"),wxT("http://www.rockbox.org")); - WxBoxSizer5->Add(manuallink,1,wxGROW | wxALL, 5); - - manual =new wxHtmlWindow(manualpage,ID_MANUAL); - WxBoxSizer5->Add(manual,10,wxGROW | wxALL, 5); - - - /********** - ** rest of the controls - **********/ - - WxMenuBar1 = new wxMenuBar(); - wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0); - WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, wxT("&File")); - - ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_WIPECACHE, - wxT("&Empty local download cache"), wxT(""), wxITEM_NORMAL); - if (! gv->portable ) - { - ID_FILE_MENU_Mnu_Obj->Append(ID_PORTABLE_INSTALL, - wxT("&Install Rockbox Utility on device"), wxT(""), wxITEM_NORMAL); - } - ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_PROXY, wxT("Set &Proxy"), wxT(""), - wxITEM_NORMAL); - ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_ABOUT, wxT("&About"), wxT(""), - wxITEM_NORMAL); - ID_FILE_MENU_Mnu_Obj->Append(ID_FILE_EXIT, wxT("E&xit\tCtrl+X"), wxT(""), - wxITEM_NORMAL); - - this->SetMenuBar(WxMenuBar1); - Layout(); - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - if (gv->portable) - { - this->SetTitle(wxT("Rockbox Utility (portable)")); - } else - { - this->SetTitle(wxT("Rockbox Utility")); - } - this->Center(); - wxIcon rbutilFrm_ICON (rbutilFrm_XPM); - this->SetIcon(rbutilFrm_XPM); - this->SetToolTip(wxT("Install Rockbox")); - - wxLogVerbose(wxT("=== end rbutilFrm::CreateGUIControls")); -} - -void rbutilFrm::OnManualUpdate(wxUpdateUIEvent& event) -{ - wxString tmp = wxT("/rockbox-") + gv->curplat; - - int index = GetDeviceId(false); - if(index < 0) { - curManualDevice = tmp; - wxString pdflink; - pdflink = gv->manual_url; - manuallink->SetURL(pdflink); - manual->SetPage(wxT("

no device selected — " - "You can find an overview of available manuals at " - "" - "http://www.rockbox.org/manual.shtml

")); - return; - } - - if(gv->plat_manualname[index] != wxT("")) - tmp = wxT("/") + gv->plat_manualname[index]; - - if( tmp == curManualDevice) - return; - - curManualDevice = tmp; - - // construct link to pdf - wxString pdflink; - pdflink = gv->manual_url + tmp + wxT(".pdf"); - manuallink->SetURL(pdflink); - - // construct link to html - wxString htmllink; - htmllink = gv->manual_url + tmp + wxT("/rockbox-build.html"); - if(gv->proxy_url == wxT("")) - if(manual->LoadPage(htmllink)) return; - manual->SetPage(wxT("

unable to display manual —" - "please use the PDF link above

")); - - -} - - -void rbutilFrm::OnFileProxy(wxCommandEvent& event) -{ - - wxTextEntryDialog proxydlg(this,wxT("Please enter your Proxy in the Format: URL:PORT"),wxT("Proxy Configuration"), gv->proxy_url); - - if(proxydlg.ShowModal() == wxID_OK) - { - gv->proxy_url = proxydlg.GetValue(); - } - -} - - -void rbutilFrm::rbutilFrmClose(wxCloseEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::rbutilFrmClose(event)")); - Destroy(); - wxLogVerbose(wxT("=== end rbutilFrm::rbutilFrmClose")); -} - - - -/* - * OnFileExit - */ -void rbutilFrm::OnFileExit(wxCommandEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::OnFileExit(event)")); - Close(); - wxLogVerbose(wxT("=== end rbutilFrm::OnFileExit")); -} - -// The routines this code uses are in the wxWidgets documentation, but -// not yet the library (2.7.0-1). This code can be re-enabled later. - -void rbutilFrm::OnFileAbout(wxCommandEvent& event) -{ -/* - wxAboutDialogInfo *info = new wxAboutDialogInfo(); - - info->SetName(wxT(RBUTIL_FULLNAME)); - info->SetVersion(wxT(RBUTIL_VERSION)); - info->SetCopyright(wxT(RBUTIL_COPYRIGHT)); - info->SetDescription(wxT(RBUTIL_DESCRIPTION)); - info->SetWebSite(wxT(RBUTIL_WEBSITE)); - - long i = 0; - while (rbutil_developers[i] != "") - { - info->AddDeveloper(wxT(rbutil_developers[i++])); - } - - wxAboutBox(*info); - delete info; -*/ - - AboutDlg(this).ShowModal(); -} - -void rbutilFrm::OnFileWipeCache(wxCommandEvent& event) -{ - wxString cacheloc, datadir; - - datadir = gv->stdpaths->GetUserDataDir(); - if (datadir == wxT("")) - { - ERR_DIALOG(wxT("Can't locate user data directory. Unable to delete " - "cache."), wxT("Delete download cache.") ); - return; - } - - cacheloc = datadir + wxT("" PATH_SEP "download"); - - if (! rm_rf(cacheloc) ) - { - wxMessageDialog* msg = new wxMessageDialog(this, wxT("Local download cache has been deleted.") - , wxT("Cache deletion"), wxOK |wxICON_INFORMATION); - msg->ShowModal(); - delete msg; - } - else { - MESG_DIALOG(wxT("Errors occured deleting the local download cache.")); - } - - wxMkdir(cacheloc, 0777); -} - -void rbutilFrm::OnBootloaderRemoveBtn(wxCommandEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderRemoveBtn(event)")); - - int index = GetDeviceId(true); - if(index < 0) - return; - - wxString bootloadermethod = gv->plat_bootloadermethod[index]; - - if(!gv->plat_needsbootloader[index]) - { - WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), - wxT("Bootloader")); - return; - } - - // really deinstall ? - wxMessageDialog msg(this,wxT("Do you really want to deinstall the Bootloader ?"),wxT("Bootloader deinstallation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - - if(bootloadermethod == wxT("ipodpatcher")) - { - wxString bootloadername = wxT("bootloader-"); - bootloadername.Append(gv->plat_bootloadername[index] ); - if(ipodpatcher(BOOTLOADER_REM,bootloadername)) - { - MESG_DIALOG(wxT("The Bootloader has been uninstalled.") ); - } - else - { - MESG_DIALOG(wxT("The Uninstallation failed.") ); - } - } - else if(bootloadermethod == wxT("sansapatcher")) - { - if(sansapatcher(BOOTLOADER_REM,gv->plat_bootloadername[index])) - { - MESG_DIALOG(wxT("The Bootloader has been uninstalled.") ); - } - else - { - MESG_DIALOG(wxT("The Uninstallation failed.") ); - } - } - else if(bootloadermethod== wxT("gigabeatf")) - { - - if(gigabeatf(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir)) - { - MESG_DIALOG(wxT("The Bootloader has been uninstalled.")); - } - else - MESG_DIALOG(wxT("The Uninstallation failed.") ); - } - else if(bootloadermethod == wxT("iaudio") ) - { - MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n" - "you need to download and install an Original Firmware from the Manufacturer.")); - } - else if(bootloadermethod == wxT("fwpatcher")) - { - MESG_DIALOG(wxT("To uninstall the Bootloader on this Device,\n" - "you need to download and install an original Firmware from the Manufacturer.\n" - "To do this, you need to boot into the original Firmware.")); - } - else if(bootloadermethod == wxT("h10")) - { - if(h10(BOOTLOADER_REM,gv->plat_bootloadername[index],gv->curdestdir)) - { - MESG_DIALOG(wxT("The Bootloader has been uninstalled.")); - } - else - MESG_DIALOG(wxT("The Uninstallation failed.") ); - } - else - { - MESG_DIALOG(wxT("Unsupported Bootloader Uninstall method.") ); - } - - wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderRemoveBtn")); -} - -void rbutilFrm::OnBootloaderBtn(wxCommandEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::OnBootloaderBtn(event)")); - - int index = GetDeviceId(true); - if(index < 0) - return; - - wxString bootloadermethod = gv->plat_bootloadermethod[index]; - - if(!gv->plat_needsbootloader[index]) - { - WARN_DIALOG(wxT("This Device doesnt need a Bootloader"), - wxT("Bootloader")); - return; - } - - // Bootloader dialog - if(bootloadermethod != wxT("ipodpatcher") && bootloadermethod != wxT("sansapatcher") ) - { - bootloaderInstallDlg dialog(NULL, wxID_ANY,wxT("Bootloader Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - } - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to install the Bootloader ?"),wxT("Bootloader installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - - if(bootloadermethod == wxT("ipodpatcher")) - { - wxString bootloadername = wxT("bootloader-"); - bootloadername.Append(gv->plat_bootloadername[index] ); - if(ipodpatcher(BOOTLOADER_ADD,bootloadername)) - { - MESG_DIALOG(wxT("The Bootloader has been installed on your device.") ); - } - else - { - MESG_DIALOG(wxT("The installation has failed.") ); - } - } - else if(bootloadermethod == wxT("sansapatcher")) - { - if(sansapatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index])) - { - MESG_DIALOG(wxT("The Bootloader has been installed on your device.") ); - } - else - { - MESG_DIALOG(wxT("The installation has failed.") ); - } - - } - else if(bootloadermethod== wxT("gigabeatf")) - { - - if(gigabeatf(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) - { - MESG_DIALOG(wxT("The Bootloader has been installed on your device.")); - } - else - MESG_DIALOG(wxT("The installation has failed.") ); - } - else if(bootloadermethod == wxT("iaudio") ) - { - if(iaudiox5(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) - { - MESG_DIALOG(wxT("The Bootloader has been installed on your device.\n" - "Now turn OFF your Device, unplug USB,and insert Charger\n" - "Your Device will automatically upgrade the flash with the Rockbox bootloader")); - } - else - MESG_DIALOG(wxT("The installation has failed.") ); - } - else if(bootloadermethod == wxT("fwpatcher")) - { - if(fwpatcher(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir,gv->curfirmware)) - { - MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n" - "Now use the Firmware upgrade option of your Device\n")); - } - else - MESG_DIALOG(wxT("The installation has failed.") ); - } - else if(bootloadermethod == wxT("h10")) - { - if(h10(BOOTLOADER_ADD,gv->plat_bootloadername[index],gv->curdestdir)) - { - MESG_DIALOG(wxT("The Bootloader has been patched and copied on your device.\n")); - } - else - MESG_DIALOG(wxT("The installation has failed.") ); - } - else - { - MESG_DIALOG(wxT("Unsupported Bootloader Install method.") ); - } - - - - wxLogVerbose(wxT("=== end rbutilFrm::OnBootloaderBtn")); - -} - -void rbutilFrm::OnInstallBtn(wxCommandEvent& event) -{ - wxString src, dest, buf; - wxDateTime date; - wxTimeSpan day(24); - wxLogVerbose(wxT("=== begin rbutilFrm::OnInstallBtn(event)")); - wxFileSystem fs; - wxFileConfig* buildinfo; - wxDateSpan oneday; - - int index = GetDeviceId(true); - if(index < 0) - return; - - // rockbox install dialog - rockboxInstallDlg dialog(NULL, wxID_ANY, - wxT("Rockbox Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install - wxMessageDialog msg(this,wxT("Do you really want to install Rockbox ?"),wxT("rockbox installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - - switch (gv->curbuild) - { - case BUILD_RELEASE: - // This is a URL - don't use PATH_SEP - src = gv->download_url + gv->prog_name + wxT("-") - + gv->last_release + wxT("-") + gv->curplat + wxT(".zip"); - dest = gv->stdpaths->GetUserDataDir() + wxT("download" PATH_SEP) - + gv->prog_name + wxT("-") + gv->last_release + wxT("-") - + gv->curplat + wxT(".zip"); - break; - case BUILD_DAILY: - dest = gv->stdpaths->GetUserDataDir() - + PATH_SEP + wxT("download") + PATH_SEP + wxT("build-info"); - if (DownloadURL(gv->server_conf_url, dest)) { - WARN_DIALOG(wxT("Unable to download build status."), - wxT("Install")); - buf = wxT(""); - } else - { - buildinfo = new wxFileConfig(wxEmptyString, - wxEmptyString, dest); - buf = buildinfo->Read(wxT("/dailies/date")); - buildinfo->DeleteAll(); - - if (buf.Len() != 8) { - dest = wxT("Invalid build date: ") + buf; - WARN_DIALOG(dest, wxT("Install")); - buf = wxT(""); - } - } - - if (buf == wxT("")) { - WARN_DIALOG(wxT("Can't get date of latest build from " - "server. Using yesterday's date."), wxT("Install") ); - date = wxDateTime::Now(); - date.Subtract(oneday.Day()); - buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC - } - - src = gv->daily_url + gv->curplat + wxT("/") + gv->prog_name - + wxT("-") + gv->curplat + wxT("-") + buf + wxT(".zip"); - - dest = gv->stdpaths->GetUserDataDir() + PATH_SEP wxT("download") - + gv->prog_name + wxT("-") + gv->curplat + wxT("-") - + buf + wxT(".zip"); - break; - case BUILD_BLEEDING: - src = gv->bleeding_url + gv->curplat + wxT("/") - + gv->prog_name + wxT(".zip"); - dest = gv->stdpaths->GetUserDataDir() - + PATH_SEP wxT("download") PATH_SEP - + gv->prog_name + wxT(".zip"); - break; - default: - ERR_DIALOG(wxT("Something seriously odd has happened."), - wxT("Install")); - return; - break; - } - - if (gv->nocache || ( ! wxFileExists(dest) ) ) - { - if ( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ")+src, wxT("Install")); - return; - } - } - - if ( !UnzipFile(dest, gv->curdestdir, true) ) - { - wxMessageDialog* msg = new wxMessageDialog(this, wxT("Rockbox has been installed on your device.") - ,wxT("Installation"), wxOK |wxICON_INFORMATION); - msg->ShowModal(); - delete msg; - } else - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to unzip ")+dest, wxT("Install")); - } - - - wxLogVerbose(wxT("=== end rbutilFrm::OnInstallBtn")); -} - -void rbutilFrm::OnFontBtn(wxCommandEvent& event) -{ - wxString src, dest, buf; - wxDateTime date; - wxTimeSpan day(24); - wxLogVerbose(wxT("=== begin rbutilFrm::OnFontBtn(event)")); - wxFileSystem fs; - wxFileConfig* buildinfo; - wxDateSpan oneday; - - int index = GetDeviceId(true); - if(index < 0) - return; - - // font install dialog - fontInstallDlg dialog(NULL, wxID_ANY, - wxT("Font Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to install the Fonts ?"),wxT("Font installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - - buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox"); - if (! wxDirExists(buf) ) - { - WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf - + wxT(" - install Rockbox first."), - wxT("Can't install fonts") ); - return; - } - - dest = gv->stdpaths->GetUserDataDir() - + wxT( "" PATH_SEP "download" PATH_SEP "build-info"); - if (DownloadURL(gv->server_conf_url, dest)) - { - WARN_DIALOG(wxT("Unable to download build status."), - wxT("Font Install")); - buf = wxT(""); - } else - { - buildinfo = new wxFileConfig(wxEmptyString, - wxEmptyString, dest); - buf = buildinfo->Read(wxT("/dailies/date")); - buildinfo->DeleteAll(); - - if (buf.Len() != 8) { - WARN_DIALOG(wxT("Invalid build date: ") + buf, wxT("Font Install")); - buf = wxT(""); - } - } - - if (buf == wxT("")) { - WARN_DIALOG(wxT("Can't get date of latest build from " - "server. Using yesterday's date."), - wxT("Font Install") ); - date = wxDateTime::Now(); - date.Subtract(oneday.Day()); - buf = date.Format(wxT("%Y%m%d")); // yes, we want UTC - } - - src = gv->font_url + buf + wxT(".zip"); - - dest = gv->stdpaths->GetUserDataDir() + wxT( "" PATH_SEP "download" - PATH_SEP "rockbox-fonts-") + buf + wxT(".zip"); - - if ( ! wxFileExists(dest) ) - { - if ( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, wxT("Font Install")); - return; - } - } - - if ( !UnzipFile(dest, gv->curdestdir, true) ) - { - wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Rockbox fonts have been installed on your device.") - ,wxT("Installation"), wxOK |wxICON_INFORMATION); - msg->ShowModal(); - delete msg; - } else - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Font Install")); - } - - wxLogVerbose(wxT("=== end rbutilFrm::OnFontBtn")); -} - -void rbutilFrm::OnDoomBtn(wxCommandEvent& event) -{ - wxString src, dest, buf; - wxLogVerbose(wxT("=== begin rbutilFrm::OnDoomBtn(event)")); - - int index = GetDeviceId(true); - if(index < 0) - return; - - // font install dialog, reused - fontInstallDlg dialog(NULL, wxID_ANY, - wxT("Freedoom wad file Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to install the Freedoom wads ?"),wxT("Freedoom installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - buf = gv->curdestdir + wxT("" PATH_SEP ".rockbox"); - if (! wxDirExists(buf) ) - { - WARN_DIALOG(wxT("Rockbox is not yet installed on ") + buf - + wxT(" - install Rockbox first."), - wxT("Can't install freedoom wads") ); - return; - } - - src = gv->doom_url; - - dest = gv->stdpaths->GetUserDataDir() + wxT("" PATH_SEP "download" PATH_SEP - "rockdoom.zip"); - - if ( ! wxFileExists(dest) ) - { - if ( DownloadURL(src, dest) ) - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to download ") + src, - wxT("Freedoom Install")); - return; - } - } - - if ( !UnzipFile(dest, gv->curdestdir, true) ) - { - wxMessageDialog* msg = new wxMessageDialog(this, wxT("The Freedoom wads have been installed on your device.") - ,wxT("Installation"), wxOK |wxICON_INFORMATION); - msg->ShowModal(); - delete msg; - } else - { - wxRemoveFile(dest); - ERR_DIALOG(wxT("Unable to unzip ") + dest, wxT("Freedoom Install")); - } - - - wxLogVerbose(wxT("=== end rbutilFrm::OnDoomBtn")); -} - - -void rbutilFrm::OnThemesBtn(wxCommandEvent& event) -{ - wxString src, dest, buf; - wxLogVerbose(wxT("=== begin rbutilFrm::OnThemesBtn(event)")); - - int index = GetDeviceId(true); - if(index < 0) - return; - - // Theme install dialog - themesInstallDlg dialog(NULL, wxID_ANY, - wxT("Theme Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to install the selected Themes ?"),wxT("Theme installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - bool success=true; - for(unsigned int i=0 ;i < gv->themesToInstall.GetCount();i++) - { - if(!InstallTheme(gv->themesToInstall[i])) - { - MESG_DIALOG(wxT("The Themes installation has failed") ); - success=false; - break; - } - } - if(success) - { - MESG_DIALOG(wxT("The Theme installation completed successfully.") ); - } - - - wxLogVerbose(wxT("=== end rbutilFrm::OnThemesBtn(event)")); -} - - -void rbutilFrm::OnRemoveBtn(wxCommandEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::OnRemoveBtn(event)")); - - int index = GetDeviceId(true); - if(index < 0) - return; - - // Rockbox deinstall dialog - rockboxDeInstallDlg dialog(NULL, wxID_ANY, - wxT("Rockbox Deinstallation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to deinstall Rockbox ?"),wxT("Rockbox deinstallation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - - if (Uninstall(gv->curdestdir, gv->curisfull) ) - { - MESG_DIALOG( - wxT("The uninstallation wizard was cancelled or completed with " - "some errors.") ); - } else { - wxMessageDialog* msg = new wxMessageDialog(this, wxT("The uninstall wizard completed successfully\n" - "Depending on which Device you own, you also have to uninstall the Bootloader") - ,wxT("Uninstallation"), wxOK |wxICON_INFORMATION); - msg->ShowModal(); - delete msg; - } - - wxLogVerbose(wxT("=== end rbutilFrm::OnRemoveBtn")); -} - -void rbutilFrm::OnPortableInstall(wxCommandEvent& event) -{ - wxString src, dest, buf; - wxLogVerbose(wxT("=== begin rbutilFrm::OnPortableInstall(event)")); - wxFileSystem fs; - wxDateSpan oneday; - - int index = GetDeviceId(true); - if(index < 0) - return; - - //portable install dialog ( reused font dialog) - fontInstallDlg dialog(NULL, wxID_ANY, - wxT("Rockbox Utility Portable Installation")); - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want a portable install of rbutil ?"),wxT("rbutil installation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - if ( InstallRbutil(gv->curdestdir) ) - { - MESG_DIALOG(wxT("The Rockbox Utility has been installed on your device.")); - - } else - { - ERR_DIALOG(wxT("Installation failed"), wxT("Portable Install")); - } - - wxLogVerbose(wxT("=== end rbutilFrm::OnUnstallPortable")); -} - -void rbutilFrm::OnTalkBtn(wxCommandEvent& event) -{ - wxLogVerbose(wxT("=== begin rbutilFrm::OnTalkBtn(event)")); - - TalkFileCreator talk; - - talkInstallDlg dialog(&talk,NULL,wxID_ANY); - - if (dialog.ShowModal() != wxID_OK) - return; - - // really install ? - wxMessageDialog msg(this,wxT("Do you really want to create Talkfiles ?"),wxT("Talk file creation"),wxOK|wxCANCEL); - if(msg.ShowModal() != wxID_OK ) - return; - - if(talk.createTalkFiles()) - { - MESG_DIALOG(wxT("Talk files have been successfully created.")); - } - else - { - ERR_DIALOG(wxT("Talkfile creation failed"), wxT("Talk file creation")); - } - - wxLogVerbose(wxT("=== end rbutilFrm::OnTalkBtn")); -} - -int rbutilFrm::GetDeviceId(bool detect) -{ - int index = gv->plat_id.Index(gv->curplat); - if(index < 0 && detect) - { - if( wxMessageBox(wxT("No device selected. Do you want to autodetect " - "the device?"), - wxT("Warning"), wxYES_NO ) == wxYES ) - { - myDeviceSelector->AutoDetect(); - index = gv->plat_id.Index(gv->curplat); - if(index < 0) - { - WARN_DIALOG( wxT("Aborting"), wxT("Auto detection failed") ); - return index; - } - else - { - if( wxMessageBox(wxT("Found ") + gv->plat_name[index] + - wxT(". Do you want to continue?"), - wxT("Device found"), wxYES_NO ) == wxYES ) - return index; - else - return -1; - } - } - else - { - return -1; - } - } - return index; -} - -AboutDlg::AboutDlg(rbutilFrm* parent) - : wxDialog(parent, -1, wxT("About"), wxDefaultPosition, wxDefaultSize, - wxDEFAULT_DIALOG_STYLE) -{ - wxBoxSizer* WxBoxSizer1 = new wxBoxSizer(wxVERTICAL); - this->SetSizer(WxBoxSizer1); - this->SetAutoLayout(TRUE); - - wxBoxSizer* WxBoxSizer2 = new wxBoxSizer(wxHORIZONTAL); - - wxBitmap WxBitmap1 = wxBitmap(rbutilFrm_XPM); - wxStaticBitmap* WxStaticBitmap1 = new wxStaticBitmap(this, wxID_ANY, - WxBitmap1); - WxBoxSizer2->Add(WxStaticBitmap1, 0, wxALL | wxCENTER, 5); - - wxStaticText* WxStaticText1 = new wxStaticText(this, wxID_ANY, - wxT(RBUTIL_FULLNAME), wxDefaultPosition, wxDefaultSize, - wxALIGN_CENTER | wxST_NO_AUTORESIZE ); - WxBoxSizer2->Add(WxStaticText1, 0, wxALL | wxCENTER, 5); - WxBoxSizer1->Add(WxBoxSizer2, 0, wxALL, 5); - - wxStaticText* WxStaticText2 = new wxStaticText(this, wxID_ANY, - wxT(RBUTIL_VERSION "\n" RBUTIL_DESCRIPTION "\n\n" RBUTIL_COPYRIGHT)); - WxStaticText2->Wrap(400); - WxBoxSizer1->Add(WxStaticText2, 0, wxALL, 5); - - wxHyperlinkCtrl* WxHyperlink1 = new wxHyperlinkCtrl(this, wxID_ANY, - wxT(RBUTIL_WEBSITE), wxT(RBUTIL_WEBSITE) ); - WxBoxSizer1->Add(WxHyperlink1, 0, wxALL, 5); - - wxStaticBox* WxStaticBox1 = new wxStaticBox(this, wxID_ANY, wxT("Contributors:")); - wxStaticBoxSizer* WxStaticBoxSizer2 = new wxStaticBoxSizer(WxStaticBox1, - wxVERTICAL); - wxTextCtrl* WxTextCtrl1 = new wxTextCtrl(this, wxID_ANY, wxEmptyString, - wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY); - - long i = 0; - while ( rbutil_developers[i] != wxT("")) - { - WxTextCtrl1->AppendText(rbutil_developers[i++]); - WxTextCtrl1->AppendText(wxT("\n")); - } - - WxBoxSizer1->Add(WxStaticBoxSizer2, 1, wxGROW | wxALL, 5); - WxStaticBoxSizer2->Add(WxTextCtrl1, 1, wxGROW | wxALL, 0); - - wxStdDialogButtonSizer* WxStdDialogButtonSizer1 = new wxStdDialogButtonSizer(); - wxButton* WxOKButton = new wxButton(this, wxID_OK); - WxStdDialogButtonSizer1->AddButton(WxOKButton); - WxStdDialogButtonSizer1->Realize(); - - WxBoxSizer1->Add(WxStdDialogButtonSizer1, 0, wxALL | wxCENTER, 5); - - GetSizer()->Fit(this); - GetSizer()->SetSizeHints(this); - -//this->Center(); - this->Show(); - -} - -AboutDlg::~AboutDlg() -{ -} diff --git a/rbutil/rbutilFrm.h b/rbutil/rbutilFrm.h deleted file mode 100644 index 7341323bd9..0000000000 --- a/rbutil/rbutilFrm.h +++ /dev/null @@ -1,135 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: rbutilFrm.h - * - * Copyright (C) 2005 Christi Alice Scarborough - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#ifndef __rbutilFrm_HPP_ -#define __rbutilFrm_HPP_ - -#include -#ifdef __BORLANDC__ - #pragma hdrstop -#endif -#ifndef WX_PRECOMP - #include -#endif - -#include -#include -#include -#include -#include - -#include -#include -//#include -#include - -#include "rbutil.h" -#include "rbutilCtrls.h" - - -class rbutilFrm : public wxFrame -{ -private: - DECLARE_EVENT_TABLE() -public: - rbutilFrm( wxWindow *parent, wxWindowID id = 1, - const wxString &title = wxT("Rockbox Utility"), - const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = wxCAPTION | wxRESIZE_BORDER | wxSYSTEM_MENU | - wxMINIMIZE_BOX|wxMAXIMIZE_BOX | wxCLOSE_BOX); - virtual ~rbutilFrm(); -public: - DeviceSelectorCtrl* myDeviceSelector; - wxHyperlinkCtrl* manuallink; - wxHtmlWindow* manual; - wxString curManualDevice; - - wxMenuBar *WxMenuBar1; - wxStaticText *WxStaticText3; - wxBitmapButton *WxBitmapButton2; - wxStaticText *WxStaticText2; - wxBitmapButton *WxBitmapButton1; - wxBitmapButton *WxBitmapButton3; - wxBitmapButton *WxBitmapButton4; - wxBitmapButton *WxBitmapButton5; - wxBitmapButton *WxBitmapButton6; - wxBitmapButton *WxBitmapButton7; - wxFlexGridSizer *WxFlexGridSizer1; - wxStaticBoxSizer *WxStaticBoxSizer3; - wxStaticBitmap *WxStaticBitmap1; - wxBoxSizer *WxBoxSizer2; - wxPanel *WxPanel1; - wxBoxSizer *WxBoxSizer1; -public: - enum { - ID_FILE_MENU = 1033, - ID_FILE_EXIT = 1034, - ID_FILE_ABOUT = 1035, - ID_FILE_WIPECACHE = 1036, - ID_PORTABLE_INSTALL = 1037, - - ID_WXSTATICTEXT3 = 1032, - ID_WXSTATICTEXT4 = 1032, - ID_REMOVE_BTN = 1039, - ID_BOOTLOADERREMOVE_BTN = 1038, - ID_WXSTATICTEXT2 = 1029, - ID_INSTALL_BTN = 1028, - ID_WXSTATICBITMAP1 = 1053, - ID_FONT_BTN = 1128, - ID_THEMES_BTN = 1139, - ID_DOOM_BTN = 1140, - ID_TALK_BTN = 1141, - ID_BOOTLOADER_BTN = 1129, - ID_WXPANEL1 = 1064, - - ID_MANUAL = 1065, - ID_FILE_PROXY = 1066, - - ID_DUMMY_VALUE_ - }; //End of Enum -public: - void rbutilFrmClose(wxCloseEvent& event); - void CreateGUIControls(void); - void OnFileExit(wxCommandEvent& event); - void OnFileAbout(wxCommandEvent &event); - void OnFileWipeCache(wxCommandEvent &event); - void OnLocationBtn(wxCommandEvent& event); - void OnInstallBtn(wxCommandEvent& event); - void OnRemoveBtn(wxCommandEvent& event); - void OnFontBtn(wxCommandEvent& event); - void OnThemesBtn(wxCommandEvent& event); - void OnBootloaderBtn(wxCommandEvent& event); - void OnPortableInstall(wxCommandEvent& event); - void OnBootloaderRemoveBtn(wxCommandEvent& event); - void OnManualUpdate(wxUpdateUIEvent& event); - void OnFileProxy(wxCommandEvent& event); - void OnDoomBtn(wxCommandEvent& event); - void OnTalkBtn(wxCommandEvent& event); - - int GetDeviceId(bool); - -}; - -#endif - - - - diff --git a/rbutil/rbutilFrm_XPM.xpm b/rbutil/rbutilFrm_XPM.xpm deleted file mode 100644 index 84d3d52444..0000000000 --- a/rbutil/rbutilFrm_XPM.xpm +++ /dev/null @@ -1,666 +0,0 @@ -/* rbutilFrm XPM */ -static char *rbutilFrm_XPM[]={ -"32 32 630 2", -" c None", -" 0 c #F7F8FD", -" 1 c #EBEEF5", -" 2 c #E4E9F8", -" 3 c #FAFCFE", -" 4 c #FAFBFD", -" 5 c #7085D8", -" 6 c #204DC6", -" 7 c #2350C7", -" 8 c #7C95D6", -" 9 c #F3F7FD", -" a c #8C9ED8", -" b c #1F4FD1", -" c c #2153D3", -" d c #1645BF", -" e c #001F94", -" f c #687AB7", -" g c #FFFFFE", -" h c #FCFCFD", -" i c #FDFDFE", -" j c #FEFEFE", -" k c #F4F6FC", -" l c #F5F7FC", -" m c #DEE2F6", -" n c #2B54CF", -" o c #1B4ECF", -" p c #1B4AC5", -" q c #153DB6", -" r c #062793", -" s c #7788B7", -" t c #D5D8E0", -" u c #DCDCE5", -" v c #E4E2EB", -" w c #E5E2E9", -" x c #F4F4F6", -" y c #F7F6F9", -" z c #F9F9FA", -" A c #FEFEFF", -" B c #C6CDF0", -" C c #6C86D4", -" D c #6989D4", -" E c #BECFED", -" F c #F9FAFE", -" G c #FEFFFF", -" H c #7F96D4", -" I c #0532B3", -" J c #1342BC", -" K c #1A48C2", -" L c #072BA3", -" M c #394C9D", -" N c #CCBEBC", -" O c #D7D0D0", -" P c #C4C4CE", -" Q c #B7BCC6", -" R c #B4B9C4", -" S c #C3C6D0", -" T c #D1D3DE", -" U c #D8DBE4", -" V c #DDDFE3", -" W c #9EA7D4", -" X c #3559C6", -" Y c #194BC4", -" Z c #1240B9", -" & c #002397", -"0 c #8191C7", -"00 c #FDFEFE", -"01 c #EEF1F9", -"02 c #3048A1", -"03 c #4B5B9A", -"04 c #4059A0", -"05 c #0B288B", -"06 c #16338B", -"07 c #A8ADBE", -"08 c #EDC5B8", -"09 c #E5BDAD", -"0a c #DAB6A6", -"0b c #D5B6A7", -"0c c #BDB0B3", -"0d c #AEB2C0", -"0e c #C7CBD7", -"0f c #D3D7DE", -"0g c #97A8C8", -"0h c #2E50B9", -"0i c #1D4ECC", -"0j c #184AC6", -"0k c #173EB1", -"0l c #08248F", -"0m c #000A5E", -"0n c #E0E0EB", -"0o c #F2F2F7", -"0p c #B7B4CC", -"0q c #FFFBFF", -"0r c #CED1E1", -"0s c #6B7588", -"0t c #6179B2", -"0u c #8198CD", -"0v c #97A3D6", -"0w c #9DAADB", -"0x c #A5AED1", -"0y c #C9C6D4", -"0z c #C5BEC3", -"0A c #C5CACC", -"0B c #C2C3C9", -"0C c #C7C5CA", -"0D c #627BBC", -"0E c #204CCC", -"0F c #1949C5", -"0G c #1746C1", -"0H c #1439AB", -"0I c #072282", -"0J c #080D53", -"0K c #CFCEE5", -"0L c #FAF9F9", -"0M c #F5F0F1", -"0N c #F7F9FD", -"0O c #BCBFCC", -"0P c #A9B4CB", -"0Q c #5474C9", -"0R c #6B6F83", -"0S c #757679", -"0T c #6B738C", -"0U c #6B78A2", -"0V c #6E81B2", -"0W c #778CB9", -"0X c #8E9DCC", -"0Y c #A3B2DD", -"0Z c #AFB8D6", -"0& c #2C4395", -"1 c #082887", -"10 c #0E3095", -"11 c #0F33A7", -"12 c #0C2C9C", -"13 c #071A67", -"14 c #191955", -"15 c #BEBDD9", -"16 c #EEEDF0", -"17 c #F9F8FB", -"18 c #D1D8E8", -"19 c #BBBEC3", -"1a c #889FE5", -"1b c #5C6994", -"1c c #918B6C", -"1d c #8C886D", -"1e c #8F846F", -"1f c #8F8471", -"1g c #878274", -"1h c #7E7C79", -"1i c #7B7B7E", -"1j c #5268AC", -"1k c #688AD7", -"1l c #798699", -"1m c #959AAC", -"1n c #9FA9C8", -"1o c #495181", -"1p c #0B1765", -"1q c #131455", -"1r c #161547", -"1s c #ACACC5", -"1t c #FBFAFB", -"1u c #EBE8ED", -"1v c #F7F8FF", -"1w c #B8BAC4", -"1x c #ACB5CB", -"1y c #5474C4", -"1z c #7E7B73", -"1A c #93896C", -"1B c #8A836C", -"1C c #8B846E", -"1D c #918870", -"1E c #928D70", -"1F c #958D71", -"1G c #968D73", -"1H c #4D6AB1", -"1I c #8399C5", -"1J c #C4C0B8", -"1K c #F8F7F7", -"1L c #EDF4FF", -"1M c #B0ABAA", -"1N c #353448", -"1O c #16134E", -"1P c #161638", -"1Q c #C5C5CC", -"1R c #EAE5EB", -"1S c #FAFBFF", -"1T c #D9DBED", -"1U c #B6B6BA", -"1V c #7F94D5", -"1W c #576895", -"1X c #98896B", -"1Y c #96886C", -"1Z c #95886B", -"1& c #93896D", -"2 c #8F8672", -"20 c #8A8673", -"21 c #948F6F", -"22 c #768092", -"23 c #5B7DD7", -"24 c #B3B5B8", -"25 c #D1CFD3", -"26 c #F7FFFF", -"27 c #C9D0DF", -"28 c #A09088", -"29 c #5B5255", -"2a c #3B3852", -"2b c #94949D", -"2c c #F8F8F9", -"2d c #EFEEF5", -"2e c #F5F9FF", -"2f c #B3B4C0", -"2g c #A0A9B2", -"2h c #4D78EB", -"2i c #3C63D6", -"2j c #5D72B4", -"2k c #6576A3", -"2l c #707B91", -"2m c #827F86", -"2n c #887F7B", -"2o c #8B8071", -"2p c #918871", -"2q c #5873B6", -"2r c #91A3D4", -"2s c #B9B7B5", -"2t c #EAF0F5", -"2u c #E8F2FC", -"2v c #B1AFBA", -"2w c #84736E", -"2x c #93807A", -"2y c #665E65", -"2z c #D8D9E2", -"2A c #EAEAEF", -"2B c #F8FAFE", -"2C c #D4DEF0", -"2D c #9C9C9F", -"2E c #6D81BE", -"2F c #436EE8", -"2G c #5E87ED", -"2H c #3867DA", -"2I c #4069DB", -"2J c #456CDF", -"2K c #4261D2", -"2L c #4663C3", -"2M c #5871BC", -"2N c #5C73B8", -"2O c #5D80D7", -"2P c #B2B6BB", -"2Q c #C3C3CE", -"2R c #FCFFFF", -"2S c #CFD9E9", -"2T c #9C8F8E", -"2U c #7C6E66", -"2V c #927C7C", -"2W c #83819D", -"2X c #FCFCFF", -"2Y c #F9F6FA", -"2Z c #ECEBF1", -"2& c #FBFFFF", -"3 c #B9BCC9", -"30 c #AAB0C3", -"31 c #4870EB", -"32 c #2B5DE1", -"33 c #4F72CE", -"34 c #3C62CB", -"35 c #4E73D6", -"36 c #5777DA", -"37 c #456ED4", -"38 c #7393E1", -"39 c #4D77F4", -"3a c #3060F1", -"3b c #7C94C8", -"3c c #A8A6A6", -"3d c #E6E9EF", -"3e c #EDFAFF", -"3f c #BBBDC7", -"3g c #8C7A74", -"3h c #827670", -"3i c #90847E", -"3j c #ECECF0", -"3k c #ECE5EC", -"3l c #DAE0EF", -"3m c #ACB0B3", -"3n c #869EDC", -"3o c #577EDE", -"3p c #B0C0E7", -"3q c #EFF4FF", -"3r c #E4EAFF", -"3s c #9EC0FC", -"3t c #3265E4", -"3u c #3366E5", -"3v c #4871DC", -"3w c #3660DB", -"3x c #5075E7", -"3y c #8C9097", -"3z c #B3B4B6", -"3A c #D8E4F1", -"3B c #A89A92", -"3C c #837069", -"3D c #91817A", -"3E c #E0DDD8", -"3F c #F8F5F6", -"3G c #F6F2F2", -"3H c #B9BCC7", -"3I c #A8ACC0", -"3J c #BBCCEC", -"3K c #F8F9FA", -"3L c #DCD3CD", -"3M c #EEECEF", -"3N c #D9D8D9", -"3O c #E2E4DB", -"3P c #A4BADE", -"3Q c #3161E4", -"3R c #5F85F4", -"3S c #6387ED", -"3T c #8597D5", -"3U c #A4A8AA", -"3V c #DEE2E9", -"3W c #F4FFFF", -"3X c #BEC3CC", -"3Y c #8D7C6F", -"3Z c #7A6D65", -"3& c #A2928E", -"4 c #FDFBFB", -"40 c #FCFCFE", -"41 c #D1D6EB", -"42 c #F7FAFD", -"43 c #B2B4C6", -"44 c #D0D4E4", -"45 c #F9FCFF", -"46 c #E7EBF4", -"47 c #C3C4CE", -"48 c #B6B3C1", -"49 c #989BA1", -"4a c #E7E7E4", -"4b c #E9ECF7", -"4c c #3B61D1", -"4d c #92A0D0", -"4e c #C7CACC", -"4f c #A0A6B2", -"4g c #B2B4BA", -"4h c #FAFFFF", -"4i c #E2EAF6", -"4j c #A9A3A4", -"4k c #7F6F64", -"4l c #85776E", -"4m c #CAC4C0", -"4n c #EAEDFA", -"4o c #5A80EA", -"4p c #2D64E7", -"4q c #4778E8", -"4r c #788FC7", -"4s c #B4B7CA", -"4t c #CBCCD7", -"4u c #E7EAE9", -"4v c #C6CDD5", -"4w c #AEB3B9", -"4x c #8A8C8B", -"4y c #C0C5C5", -"4z c #B8C4E3", -"4A c #2859CF", -"4B c #2855CD", -"4C c #7989A5", -"4D c #A4A69F", -"4E c #D6DAE0", -"4F c #CBD1DD", -"4G c #938781", -"4H c #84756D", -"4I c #9B8985", -"4J c #F6F3F2", -"4K c #F7F9FE", -"4L c #5C7CE7", -"4M c #205CF1", -"4N c #1C5DEA", -"4O c #0641C7", -"4P c #072DAA", -"4Q c #8593C5", -"4R c #B1B1B5", -"4S c #BCC0C2", -"4T c #F7FBFD", -"4U c #E3E3E1", -"4V c #C6BCA9", -"4W c #AAB4CC", -"4X c #4168D4", -"4Y c #7AA1DF", -"4Z c #9AB2E2", -"4& c #A4ADBD", -"5 c #BDB8BB", -"50 c #E8F4FE", -"51 c #B5B2B9", -"52 c #82736C", -"53 c #817770", -"54 c #BFB4B2", -"55 c #FFFEFE", -"56 c #9FB3ED", -"57 c #1857E7", -"58 c #185ADE", -"59 c #1656DD", -"5a c #1244C2", -"5b c #112D9F", -"5c c #959EC7", -"5d c #D0D1D3", -"5e c #A7AFB2", -"5f c #ACAEB5", -"5g c #B5B2B6", -"5h c #B0AEB5", -"5i c #948C8B", -"5j c #8990B2", -"5k c #7792D9", -"5l c #ABABB5", -"5m c #BAB5B4", -"5n c #8B95AE", -"5o c #A8B1D8", -"5p c #E7EEFF", -"5q c #D7DEE7", -"5r c #9E918A", -"5s c #80736A", -"5t c #898078", -"5u c #EBE9E8", -"5v c #EEF1FA", -"5w c #3262E5", -"5x c #1457E6", -"5y c #1653D9", -"5z c #1852D7", -"5A c #1039BB", -"5B c #2E46A6", -"5C c #BDC4CB", -"5D c #CECDD4", -"5E c #AEB4BF", -"5F c #A2A6B2", -"5G c #A4A3A7", -"5H c #ABADB5", -"5I c #C1C1CF", -"5J c #D4D0DE", -"5K c #DBD8E5", -"5L c #B7BAC3", -"5M c #586DB4", -"5N c #2A5BD4", -"5O c #2457CF", -"5P c #375FCF", -"5Q c #6F7AB3", -"5R c #8C7C77", -"5S c #928274", -"5T c #B4A6A2", -"5U c #FDFDFD", -"5V c #A6B3EA", -"5W c #1037B9", -"5X c #1C4CD1", -"5Y c #1E53DC", -"5Z c #1547CB", -"5& c #1331A4", -"6 c #7788BA", -"60 c #CBCBD3", -"61 c #C6C6D4", -"62 c #BABDCA", -"63 c #B5B9C7", -"64 c #BABDC7", -"65 c #AEB4C0", -"66 c #C8BBC1", -"67 c #C5BDC7", -"68 c #CDCDD0", -"69 c #6C7AB2", -"6a c #204ED0", -"6b c #1E53D9", -"6c c #164BC8", -"6d c #0C33B1", -"6e c #001B87", -"6f c #3F4877", -"6g c #8A7971", -"6h c #E2DDDA", -"6i c #4B5DA9", -"6j c #02126B", -"6k c #0F2079", -"6l c #152C8F", -"6m c #0B2596", -"6n c #3A4CA9", -"6o c #CBCED8", -"6p c #CFD2D5", -"6q c #CAD2D9", -"6r c #D1D1D8", -"6s c #DBCECD", -"6t c #C5C2CF", -"6u c #C3C3D2", -"6v c #CBC5CD", -"6w c #D6D5DF", -"6x c #A5AFC9", -"6y c #2B4DB9", -"6z c #1B50D9", -"6A c #174AC5", -"6B c #1547BF", -"6C c #1636AA", -"6D c #031D7B", -"6E c #192066", -"6F c #9A8F99", -"6G c #FDFCFC", -"6H c #6778B7", -"6I c #001B72", -"6J c #041E7A", -"6K c #00166D", -"6L c #000F66", -"6M c #1D2364", -"6N c #908886", -"6O c #B4A89F", -"6P c #C1B7B3", -"6Q c #DDD6D4", -"6R c #EBE2DB", -"6S c #E2DFE4", -"6T c #E7E7F3", -"6U c #D4D6E2", -"6V c #E9D2C8", -"6W c #6A7AA7", -"6X c #1549C7", -"6Y c #184AC8", -"6Z c #1545C2", -"6& c #1544BD", -"7 c #0F309F", -"70 c #05196E", -"71 c #231F64", -"72 c #C6C1C9", -"73 c #AAB6E3", -"74 c #001D80", -"75 c #102874", -"76 c #27397E", -"77 c #162769", -"78 c #21274C", -"79 c #393D43", -"7a c #6F695C", -"7b c #897C73", -"7c c #7A6D69", -"7d c #96827C", -"7e c #AA958B", -"7f c #BFB1AC", -"7g c #DBCFC9", -"7h c #DFD4D1", -"7i c #344B90", -"7j c #0B38B0", -"7k c #1A46BF", -"7l c #1A4AC3", -"7m c #123FB6", -"7n c #08288F", -"7o c #08115A", -"7p c #3E3B6F", -"7q c #F7F7F7", -"7r c #E1E6F7", -"7s c #04228A", -"7t c #131C4C", -"7u c #74696C", -"7v c #847675", -"7w c #897872", -"7x c #766B61", -"7y c #6C625B", -"7z c #675E57", -"7A c #46463B", -"7B c #595645", -"7C c #645F4B", -"7D c #7A6C60", -"7E c #615249", -"7F c #2D2E34", -"7G c #0D1C65", -"7H c #0D155F", -"7I c #17236A", -"7J c #172B7C", -"7K c #0B2582", -"7L c #081C6E", -"7M c #11104A", -"7N c #65678F", -"7O c #B4C0E3", -"7P c #4A5B97", -"7Q c #6976AA", -"7R c #8283A2", -"7S c #807B88", -"7T c #80767D", -"7U c #9D8A84", -"7V c #928075", -"7W c #8E7D73", -"7X c #746C61", -"7Y c #605D4F", -"7Z c #625E51", -"7& c #594F48", -"8 c #332F34", -"80 c #1B1E58", -"81 c #110C4C", -"82 c #120D3F", -"83 c #15103F", -"84 c #16123D", -"85 c #22225B", -"86 c #8081A9", -"87 c #F8FCFF", -"88 c #E6EBF9", -"89 c #D5DBEF", -"8a c #D5DAE8", -"8b c #E7E5E7", -"8c c #EAE3DF", -"8d c #D2CAC5", -"8e c #BBACA8", -"8f c #AA938F", -"8g c #948079", -"8h c #927D76", -"8i c #9C857A", -"8j c #766F73", -"8k c #524F6B", -"8l c #332F5D", -"8m c #171656", -"8n c #17154A", -"8o c #1A1744", -"8p c #282E71", -"8q c #D3D5E3", -"8r c #FBFAFA", -"8s c #FBFAF9", -"8t c #F0EDED", -"8u c #DAD3CF", -"8v c #C1B7AF", -"8w c #968F8B", -"8x c #7E736F", -"8y c #8A7570", -"8z c #55506E", -"8A c #151C6A", -"8B c #151964", -"8C c #30378A", -"8D c #EDEFF6", -"8E c #F0F3F9", -"8F c #9FA9C6", -"8G c #9396B4", -"8H c #455687", -"8I c #071F7B", -"8J c #00106C", -"8K c #7C81B7", -"8L c #F9FAFC", -"8M c #F6F7FD", -"8N c #EFF2F9", -"8O c #B8C1DD", -"8P c #939FCA", -"8Q c #F7F7FB", -" 0 1 2 3 ", -" 4 5 6 7 8 9 ", -" a b c d e f g h i j j k l j ", -" m n o p q r s t u v w x y z g 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 &0 00", -" 0102030405060708090a0b0c0d0e0f0g0h0i0j0k0l0m0n", -" 0o0p0q0r0s0t0u0v0w0x0y0z0A0B0C0D0E0F0G0H0I0J0K", -" 0L0M0N0O0P0Q0R0S0T0U0V0W0X0Y0Z0&1 101112131415", -" j161718191a1b1c1d1e1f1g1h1i1j1k1l1m1n1o1p1q1r1s", -" 1t1u1v1w1x1y1z1A1B1C1D1E1F1G1H1I1J1K1L1M1N1O1P1Q", -" 1R1S1T1U1V1W1X1Y1Z1&2 202122232425262728292a2b j", -" 2c2d2e2f2g2h2i2j2k2l2m2n2o2p2q2r2s2t2u2v2w2x2y2z ", -" j2A2B2C2D2E2F2G2H2I2J2K2L2M2N2O2P2Q2R2S2T2U2V2W2X ", -" 2Y2Z2&3 303132333435363738393a3b3c3d3e3f3g3h3i3j ", -" j3k 3l3m3n3o3p3q3r3s3t3u3v3w3x3y3z2&3A3B3C3D3E ", -" 3F3G G3H3I3J3K3L3M3N3O3P3Q3R3S3T3U3V3W3X3Y3Z3&4 ", -" 4041423d434445464748494a4b4c4d4e4f4g4h4i4j4k4l4m ", -" 4n4o4p4q4r4s4t4u4v4w4x4y 4z4A4B4C4D4E4h4F4G4H4I4J ", -" 4K4L4M4N4O4P4Q4R4S 4T4U4V4W4X4Y4Z4&5 3K505152535455 ", -" j565758595a5b5c5d5e5f5g5h5i5j5k5l5m5n5o5p5q5r5s5t5u ", -" 5v5w5x5y5z5A5B5C5D5E5F5G5H5I5J5K5L5M5N5O5P5Q5R5S5T5U ", -" 5V5W5X5Y5Z5&6 606162636465666768696a6b6c6d6e6f6g6h ", -" 6i6j6k6l6m6n6o6p6q6r6s6t6u6v6w6x6y6z6A6B6C6D6E6F6G ", -" 6H6I6J6K6L6M6N6O6P6Q6R6S6T6U6V6W6X6Y6Z6&7 707172 ", -" 737475767778797a7b7c7d7e7f7g7h7i7j7k7l7m7n7o7p7q ", -" 7r7s7t7u7v7w7x7y7z7A7B7C7D7E7F7G7H7I7J7K7L7M7N j ", -" A7O7P7Q7R7S7T7U7V7W7X7Y7Z7&8 8081828384848586 i ", -" A 48788898a8b8c8d8e8f8g8h8i8j8k8l8m8n8o8p8q ", -" j8r8s8t8u8v8w8x8y8z8A8B8C8D ", -" 8E8F8G8H8I8J8K8L ", -" A8M8N8O8P8Q ", -" "}; - diff --git a/rbutil/rbutilqt/irivertools/mksums.pl b/rbutil/rbutilqt/irivertools/mksums.pl new file mode 100755 index 0000000000..99786fe161 --- /dev/null +++ b/rbutil/rbutilqt/irivertools/mksums.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl + +# This script creates the h100sums.h and h300sums.h files for fwpatcher. +# +# It expects a file tree with scrambled and descrambled +# firmwares like this: +# orig-firmware/ +# h1xx/ +# 1.66jp/ +# ihp_100.bin +# ihp_100.hex +# ihp_120.bin +# ihp_120.hex +# h3xx/ +# 1.29jp/ +# H300.bin +# H300.hex +# etc. +# +# It also expects the bootloader binaries in the current directory: +# bootloader-h100.bin +# bootloader-h120.bin +# bootloader-h300.bin + +$orig_path = "~/orig-firmware"; + +mksumfile("100"); +mksumfile("120"); +mksumfile("300"); + +sub mksumfile { + ($model) = @_; + + open FILE, ">h${model}sums.h" or die "Can't open h${model}sums.h"; + + print FILE "/* Checksums of firmwares for ihp_$model */\n"; + print FILE "/* order: unpatched, patched */\n\n"; + + if($model < 300) { + foreach("1.63eu","1.63k", "1.63us", "1.65eu","1.65k", "1.65us", + "1.66eu", "1.66k", "1.66us", "1.66jp") { + `../mkboot $orig_path/h1xx/$_/ihp_$model.bin bootloader-h$model.bin ihp_$model.bin`; + `../scramble -iriver ihp_$model.bin ihp_$model.hex`; + $origsum = `md5sum $orig_path/h1xx/$_/ihp_$model.hex`; + chomp $origsum; + ($os, $or) = split / /, $origsum; + $sum = `md5sum ihp_$model.hex`; + chomp $sum; + ($s, $r) = split / /, $sum; + print FILE "/* $_ */\n"; + print FILE "{\"$os\", \"$s\"},\n"; + } + } else { + foreach("1.28eu", "1.28k", "1.28jp", "1.29eu", "1.29k", "1.29jp", + "1.30eu") { + `../mkboot -h300 $orig_path/h3xx/$_/H$model.bin bootloader-h$model.bin H$model.bin`; + `../scramble -iriver H$model.bin H$model.hex`; + $origsum = `md5sum $orig_path/h3xx/$_/H$model.hex`; + chomp $origsum; + ($os, $or) = split / /, $origsum; + $sum = `md5sum H$model.hex`; + chomp $sum; + ($s, $r) = split / /, $sum; + print FILE "/* $_ */\n"; + print FILE "{\"$os\", \"$s\"},\n"; + } + } + close FILE; +} diff --git a/rbutil/talkfile.cpp b/rbutil/talkfile.cpp deleted file mode 100644 index 345b327802..0000000000 --- a/rbutil/talkfile.cpp +++ /dev/null @@ -1,204 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: tts.cpp - * - * Copyright (C) 2007 Dominik wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#include "talkfile.h" - -TalkFileCreator::TalkFileCreator() -{ - m_supportedTTS.Add(wxT("espeak")); - m_supportedTTSOpts.Add(wxT("")); - - m_supportedEnc.Add(wxT("lame")); - m_supportedEncOpts.Add(wxT("--vbr-new -t --nores -S")); - -} - -bool TalkFileCreator::initEncoder() -{ - if(::wxFileExists(m_EncExec)) - { - return true; - } - else - { - return false; - } -} - -bool TalkFileCreator::initTTS() -{ - if(::wxFileExists(m_TTSexec)) - { - return true; - } - else - { - return false; - } -} - -bool TalkFileCreator::createTalkFiles() -{ - if(!initTTS()) - { - MESG_DIALOG(wxT("Init of TTS engine failed") ); - return false; - } - if(!initEncoder()) - { - MESG_DIALOG(wxT("Init of encoder failed") ); - return false; - } - - // enumerate the dirs - wxDir talkdir(m_dir); - TalkTraverser traverser(this); - if(talkdir.Traverse(traverser) == (size_t)-1) - return false; - else - return true; - - -} - -bool TalkFileCreator::voice(wxString text,wxString wavfile) -{ - if(m_curTTS == wxT("espeak")) - { - wxArrayString out; - wxArrayString err; - wxExecute(m_TTSexec+wxT(" ")+m_TTSOpts+wxT(" -w \"")+wavfile+wxT("\" \"")+text+wxT("\""),out,err); - return true; - } - else - { - MESG_DIALOG(wxT("Unsupported TTS engine") ); - return false; - } -} - -bool TalkFileCreator::encode(wxString input,wxString output) -{ - if(m_curEnc == wxT("lame")) - { - wxArrayString out; - wxArrayString err; - wxExecute(m_EncExec+wxT(" ")+m_EncOpts+wxT(" \"")+input+wxT("\" \"")+output+wxT("\""),out,err); - return true; - } - else - { - MESG_DIALOG(wxT("Unsupported encoder") ); - return false; - } - -} - -wxString TalkFileCreator::getTTsOpts(wxString ttsname) -{ - int index = m_supportedTTS.Index(ttsname); - - return m_supportedTTSOpts[index]; -} - -wxString TalkFileCreator::getEncOpts(wxString encname) -{ - int index = m_supportedEnc.Index(encname); - - return m_supportedEncOpts[index]; -} - -wxDirTraverseResult TalkTraverser::OnFile(const wxString& file) -{ - if(file.EndsWith(wxT(".talk")) || file.EndsWith(wxT(".talk.wav"))) - { - return wxDIR_CONTINUE; - } - - wxFileName fname(file); - wxString toSpeak; - if(m_talkcreator->m_stripExtensions) - { - toSpeak = fname.GetName(); - } - else - { - toSpeak = fname.GetName()+fname.GetExt(); - } - wxString filename = file+ wxT(".talk"); - wxString wavname = filename + wxT(".wav"); - - if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk) - { - if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav) - { - if(!m_talkcreator->voice(toSpeak,wavname)) - { - return wxDIR_STOP; - } - } - if(!m_talkcreator->encode(wavname,filename)) - { - return wxDIR_STOP; - } - } - - if(m_talkcreator->m_removeWav) - { - wxRemoveFile(wavname); - } - - return wxDIR_CONTINUE; -} - -wxDirTraverseResult TalkTraverser::OnDir(const wxString& dirname) -{ - wxFileName fname(dirname,wxEmptyString); - wxArrayString dirs=fname.GetDirs(); - wxString toSpeak = dirs[dirs.GetCount()-1]; - - wxString filename = dirname + wxT("" PATH_SEP "_dirname.talk"); - wxString wavname = filename + wxT(".wav"); - - if(!wxFileExists(filename) || m_talkcreator->m_overwriteTalk) - { - if(!wxFileExists(wavname) || m_talkcreator->m_overwriteWav) - { - if(!m_talkcreator->voice(toSpeak,wavname)) - { - return wxDIR_STOP; - } - } - if(!m_talkcreator->encode(wavname,filename)) - { - return wxDIR_STOP; - } - } - - if(m_talkcreator->m_removeWav) - { - wxRemoveFile(wavname); - } - - if(!m_talkcreator->m_recursive) - return wxDIR_IGNORE; - else - return wxDIR_CONTINUE; -} diff --git a/rbutil/talkfile.h b/rbutil/talkfile.h deleted file mode 100644 index 9d6d28a2fe..0000000000 --- a/rbutil/talkfile.h +++ /dev/null @@ -1,101 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: tts.h - * - * Copyright (C) 2007 Dominik wenger - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#ifndef _TALKFILE_H -#define _TALKFILE_H - -#include "rbutil.h" - -class TalkFileCreator -{ - friend class TalkTraverser; -public: - TalkFileCreator(); - ~TalkFileCreator() {}; - - bool createTalkFiles(); - - void setTTSexe(wxString exe){m_TTSexec=exe;} - void setEncexe(wxString exe){m_EncExec=exe;} - - wxArrayString getSupportedTTS(){return m_supportedTTS;} - void setTTsType(wxString tts) {m_curTTS = tts; } - wxString getTTsOpts(wxString ttsname); - void setTTsOpts(wxString opts) {m_TTSOpts=opts;} - - wxArrayString getSupportedEnc(){return m_supportedEnc;} - void setEncType(wxString enc) {m_curEnc =enc; } - wxString getEncOpts(wxString encname); - void setEncOpts(wxString opts) {m_EncOpts=opts;} - - void setDir(wxString dir){m_dir = dir; } - - void setOverwriteTalk(bool ov) {m_overwriteTalk = ov;} - void setOverwriteWav(bool ov) {m_overwriteWav = ov;} - void setRemoveWav(bool ov) {m_removeWav = ov;} - void setRecursive(bool ov) {m_recursive = ov;} - void setStripExtensions(bool ov) {m_stripExtensions = ov;} - -private: - - bool initTTS(); - bool stopTTS(); - bool initEncoder(); - - bool encode(wxString input,wxString output); - bool voice(wxString text,wxString wavfile); - - wxString m_dir; - - wxString m_curTTS; - wxString m_TTSexec; - wxArrayString m_supportedTTS; - wxArrayString m_supportedTTSOpts; - wxString m_TTSOpts; - - wxString m_curEnc; - wxString m_EncExec; - wxArrayString m_supportedEnc; - wxArrayString m_supportedEncOpts; - wxString m_EncOpts; - - bool m_overwriteTalk; - bool m_overwriteWav; - bool m_removeWav; - bool m_recursive; - bool m_stripExtensions; -}; - - -class TalkTraverser: public wxDirTraverser -{ - public: - TalkTraverser(TalkFileCreator* talkcreator) : m_talkcreator(talkcreator) { } - - virtual wxDirTraverseResult OnFile(const wxString& filename); - - virtual wxDirTraverseResult OnDir(const wxString& dirname); - - private: - TalkFileCreator* m_talkcreator; -}; - -#endif diff --git a/rbutil/wizard.xpm b/rbutil/wizard.xpm deleted file mode 100644 index d19402a414..0000000000 --- a/rbutil/wizard.xpm +++ /dev/null @@ -1,689 +0,0 @@ -/* XPM */ -static char * wizard_xpm[] = { -"200 430 256 2", -" c #040B0E", -". c #0B080D", -"+ c #090B07", -"@ c #030D15", -"# c #140F0D", -"$ c #0D1214", -"% c #071515", -"& c #0A1319", -"* c #181008", -"= c #09141E", -"- c #081424", -"; c #101411", -"> c #14140B", -", c #061630", -"' c #1C1406", -") c #0F1B1E", -"! c #061A3D", -"~ c #151A1F", -"{ c #101C26", -"] c #161D16", -"^ c #1B1B16", -"/ c #211911", -"( c #131D2F", -"_ c #251B0C", -": c #0F202F", -"< c #171C31", -"[ c #142225", -"} c #13222B", -"| c #10223D", -"1 c #0A234C", -"2 c #0F214C", -"3 c #2B1F0B", -"4 c #0E2447", -"5 c #172832", -"6 c #152838", -"7 c #11294B", -"8 c #18264A", -"9 c #122755", -"0 c #1A2B2E", -"a c #1D283B", -"b c #0E2B54", -"c c #1E2D24", -"d c #312711", -"e c #102D4C", -"f c #372511", -"g c #272A2D", -"h c #292B25", -"i c #172E46", -"j c #1C2F38", -"k c #1A2F3F", -"l c #34291C", -"m c #3C2B0F", -"n c #342C27", -"o c #422B11", -"p c #1C3645", -"q c #0F3864", -"r c #223448", -"s c #18395A", -"t c #223942", -"u c #233A3C", -"v c #1D3A52", -"w c #40341E", -"x c #4A3113", -"y c #32373B", -"z c #463415", -"A c #2C3C31", -"B c #203D4D", -"C c #353831", -"D c #4C3811", -"E c #4D3A0C", -"F c #164770", -"G c #244558", -"H c #0E4A81", -"I c #1E486B", -"J c #064E8D", -"K c #2A484E", -"L c #024F96", -"M c #284855", -"N c #2E4846", -"O c #264862", -"P c #334A3E", -"Q c #584117", -"R c #4A4531", -"S c #2A4D5F", -"T c #3F4841", -"U c #574220", -"V c #464540", -"W c #3F484B", -"X c #57471C", -"Y c #554729", -"Z c #564824", -"` c #23577E", -" . c #345764", -".. c #335769", -"+. c #315770", -"@. c #5F4F25", -"#. c #39595C", -"$. c #5F4F2B", -"%. c #625020", -"&. c #694C24", -"*. c #664E24", -"=. c #644E2C", -"-. c #4A5457", -";. c #68501C", -">. c #46584F", -",. c #605133", -"'. c #644F33", -"). c #5C5435", -"!. c #5E523F", -"~. c #475D46", -"{. c #6D5318", -"]. c #66542A", -"^. c #535752", -"/. c #645530", -"(. c #5A5743", -"_. c #29638D", -":. c #59584B", -"<. c #3E6678", -"[. c #5D5F4B", -"}. c #406774", -"|. c #36688B", -"1. c #5C6052", -"2. c #3D6782", -"3. c #45686C", -"4. c #306B96", -"5. c #4D695D", -"6. c #60605B", -"7. c #775F23", -"8. c #416597", -"9. c #646053", -"0. c #5C6359", -"a. c #6E5F3E", -"b. c #79601E", -"c. c #76602F", -"d. c #516D59", -"e. c #5C6661", -"f. c #556870", -"g. c #6C6350", -"h. c #62676C", -"i. c #5C6B6B", -"j. c #3A75A5", -"k. c #3E769F", -"l. c #457599", -"m. c #5B7181", -"n. c #497792", -"o. c #53777A", -"p. c #517492", -"q. c #5E727A", -"r. c #57796B", -"s. c #547684", -"t. c #50778A", -"u. c #66726A", -"v. c #896D2B", -"w. c #5A758A", -"x. c #736F6A", -"y. c #8F6C33", -"z. c #836E4C", -"A. c #8A7034", -"B. c #877041", -"C. c #8A713B", -"D. c #906E41", -"E. c #4882AE", -"F. c #5482A2", -"G. c #93753E", -"H. c #598299", -"I. c #907935", -"J. c #90793B", -"K. c #618099", -"L. c #917A43", -"M. c #5F868D", -"N. c #6B8282", -"O. c #917A49", -"P. c #648782", -"Q. c #628593", -"R. c #8E7C52", -"S. c #508AB5", -"T. c #6C848E", -"U. c #897E66", -"V. c #5C8AAB", -"W. c #618AA2", -"X. c #7C8689", -"Y. c #88887E", -"Z. c #6093B9", -"`. c #6694B3", -" + c #6994AC", -".+ c #8B8F75", -"++ c #6C989E", -"@+ c #7492AC", -"#+ c #709995", -"$+ c #6E98A5", -"%+ c #7E949F", -"&+ c #7996A5", -"*+ c #829593", -"=+ c #699CC1", -"-+ c #679EBC", -";+ c #7498B9", -">+ c #6E9CB4", -",+ c #6E9CBB", -"'+ c #6EA5C4", -")+ c #73A4BD", -"!+ c #70A4CA", -"~+ c #76A3C3", -"{+ c #7CA8B9", -"]+ c #85A6B9", -"^+ c #77ADCA", -"/+ c #96A5A5", -"(+ c #78ACD2", -"_+ c #7FABCA", -":+ c #8DAEAA", -"<+ c #8AABC9", -"[+ c #7CB4D9", -"}+ c #85B2D3", -"|+ c #7EB6D5", -"1+ c #90B0CD", -"2+ c #8EB6D1", -"3+ c #8FB8C9", -"4+ c #87BBD4", -"5+ c #82BEE3", -"6+ c #85BEDD", -"7+ c #8FBCDD", -"8+ c #8DC5E5", -"9+ c #94C2E3", -"0+ c #88C8E6", -"a+ c #A2C1D1", -"b+ c #94C6DF", -"c+ c #8EC9E1", -"d+ c #9DC7CC", -"e+ c #96C8DA", -"f+ c #8FD0ED", -"g+ c #9ACDE8", -"h+ c #8ED3EA", -"i+ c #95D0E9", -"j+ c #A0CBEA", -"k+ c #9AD1E3", -"l+ c #A2CEE1", -"m+ c #95DAF1", -"n+ c #A2D4EE", -"o+ c #9DD8F0", -"p+ c #9CDBEC", -"q+ c #A4DAEC", -"r+ c #A7DAE6", -"s+ c #A3E3F5", -"t+ c #AAE1F3", -"u+ c #ADE3E9", -"v+ c #A9E4EF", -"w+ c #B6E3F8", -"x+ c #AAEAFB", -"y+ c #B3E9FC", -"z+ c #C6E8DE", -"A+ c #BBE9FD", -"B+ c #BAF0FC", -"C+ c #C2F7FD", -"D+ c #CBFDFC", -"E+ c #D6FFFA", -"F+ c #E1FFFC", -"G+ c #EEFFFE", -"Q.Q.$+Q.Q.Q.Q.Q.Q.Q.s.s.s.}.s.s.M.M.}...+.O O O r e e 8 7 | | | ( ( | a { ) % & ~ ) ~ ) ) ) & ~ [ [ [ u N r.d.P c [ 0 j u M <.n.F.V.V.V.V.F.F.F.F.F.F.F.p.F.n.l.l.p.p.n.p.p.p.p.n.n.p.2.2.2.n.2.n.2.n.n.n.n.t.n.n.n.n.n.n.n.F.H.H.H.W.W.`. +>+ +>+-+`.-+-+=+Z.`.,+=+=+=+Z.=+=+=+;+;+!+,+,+~+~+~+~+~+~+~+~+~+_+~+_+_+~+_+_+_+_+_+_+_+_+_+_+_+_+_+_+(+_+_+_+_+_+(+_+_+(+(+_+_+_+_+_+(+(+(+(+(+(+(+(+(+(+(+(+_+(+_+", -"3.r.o.o.o.r.o.o.o.o.r.3.#.3.#.3.3.3.f.+.m.<.2.O +.O H 8.8.F I s s e e i | < - - - = = ( = = & { ~ $ = ) c N A c ) ) { : k B ..p.V.V.V.@+K.V.V.W.Q.W.W.H.F.H.F.V.F.F.F.F.F.F.F.F.K.F.l.n.n.n.l.l.|.n.n.2.n.n.t.2.p.n.n.n.n.n.t.n.n.H.F.H.H.H.W.W.W.W.>+>+`.`.Z.`.`.-+,+=+;+Z.;+=+=+=+=+=+=+=+-+,+,+~+'+'+'+'+'+)+~+'+^+'+~+~+~+_+~+(+!+(+!+_+!+_+^+^+(+^+(+^+(+_+(+(+_+_+(+(+(+(+(+_+<+(+(+(+_+_+_+_+(+(+<+(+<+(+", -"K N N N N P #.P P #.P #.N K K M N . .+.<.m.f.+.+.p.p.p.p.p.8.|.2.` ` I v e < | < , ( < ( ( ~ = { ~ ) = [ [ [ % % = ( ( a B -.p.V.`.Z.Z.;+@+W.Q.Q.M.W.Q.W.W.H.W.V.W.K.W.W.V.H.F.F.V.F.H.n.n.n.n.n.n.n.n.n.n.n.n.n.n.t.n.n.t.t.n.n.n.n.n.n.H.H.W.W.H.H.W.W.W.`.V.-+`. +Z.Z.=+=+=+!+=+=+-+`.=+=+=+-+-+`.,+,+>+)+>+~+;+_+!+~+~+!+!+~+~+~+~+!+~+!+!+~+'+!+'+!+'+'+'+'+~+!+'+'+~+~+~+!+!+!+!+;+(+!+!+!+~+~+!+!+!+!+!+", -"p t p j 5 0 c 0 j c u c u N t K M B G +.+.<.+.m.+.8.S.;+K.K.p.p.p.p.p.p.8.+.I I s s e e | : ( ( { - { { : : { & = { ( a r r O p.V.V.W. +`.W.++o.o.o.o.M.o.M.M.Q.Q.W.W.W.W.W.W.V.@+H.W.F.W.H.F.F.F.F.n.F.n.H.n.n.n.n.n.n.n.n.}.n.n.n.n.n.n.n.n.n.H.n.H.H.W.W.W.H.W.W.W.W.W. +>+,+-+-+-+=+=+Z.Z.`.Z.`.=+=+,+=+;+,+,+=+,+,+!+'+,+,+!+!+=+!+~+!+;+=+;+=+!+!+~+~+!+~+=+=+=+~+,+=+!+=+!+;+!+!+!+~+'+'+!+!+!+(+!+!+!+!+", -"+.B p i | : ( ( { } ) [ [ 0 u u t G S +.2.p.2.2.p.p.K. +W.H.K.K.p.p.p.p.p.p.p.8.+.8.I O O v v 7 a | | < | | | - , , a i r G +.p.F.Z.V. + +Q.o.#.#.#.5.3.3.3.o.o.s.Q.Q.H.Q.W.Q.V.W.Q.W.W.V.H.V.F.F.V.H.W.F.W.H.F.H.l.n.n.n.n.n.n.k.l.l.H.n.n.n.n.n.F.n.n.H.n.H.M.n.W.W.W.W.-+W.-+W.>+W.`.`.`.`.`.`.`.Z.`.`.Z.Z.`.`.,+`.`.,+,+,+,+=+=+=+=+;+;+!+!+=+,+-+=+=+;+=+,+!+=+=+=+!+=+=+!+=+!+!+!+!+!+!+'+~+!+=+!+!+!+!+!+", -"<.S O s v e i | : } } ) [ [ [ j y O +.+.2.p.p.p.p.K.W.Q.t.K.H.p.K.K.H.n.w.p.p.p.p.p.p.p.2.2.I O I s s s q q q s 7 e s s I +.` p.V.V.`.V.-+Q.#.u u c u N K K #.#.5.3.3.o.s.Q.Q.Q.W.W.$+W.W.V.V.V.W.W.V.V.W.W.V.W.F.V.F.F.F.F.F.F.l.l.n.n.E.n.E.F.k.n.n.n.n.n.n.n.H.n.n.n.n.H.W.H.W.H.-+W.W.-+V.W.V.Z.`.Z.V.V.V.V.`.V.`.`.`.`.`.Z.`.Z.;+=+=+=+Z.;+=+=+=+=+=+=+,+=+=+;+;+;+;+=+!+Z.!+!+;+!+;+=+'+=+!+=+!+!+!+!+~+!+", -"p.+.+.` +.I O s s k 6 } ) { { } k r +.m.m.m.w.w.K.w.H.H.H.n.H.H.n.H.K.F.H.t.H.K.F.l.F.p.p.p.p.8.p.|.8.` 8.8.8.8.F 8.8.8.8.p.8.S.;+Z.=+Z.-+M.N [ { ) [ [ 0 0 t u u N #.#.3.}.o.o.s.Q.M.Q.Q.Q.$+W.W.W.W.W.W.W.V.V.W.V.V.V.F.F.S.F.F.F.E.F.H.F.F.F.F.F.k.n.H.n.n.n.n.n.n.H.F.n.H.H.H.H.H.H.H.F.V.V.W.W.W.Z.Z.V.V.F.V.F.V.V.V.V.V.`.`.`.Z.Z.Z.;+Z.,+Z.Z.=+=+=+=+=+=+=+=+=+=+-+=+=+=+!+!+Z.!+!+=+!+=+'+!+,+~+,+;+!+!+", -"m.2.p.p.2.p.` 8.+.O v 6 : - ( ~ a r ..}.}.3.o.3.m.t.m.w.s.q.s.t.p.w.t.w.t.n.H.n.H.W.W.W.K.p.p.p.p.p.p.j.p.E.K.p.8.2.p.p.@+8.;+S.;+!+!+'+-+H.K 5 { } ) } 5 ) { : [ c 0 u N #.#.3.o.}.o.s.s.M.Q.Q.Q.Q.W.$+ + +W. +V.V.`.`.V.V.V.V.S.V.F.W.W.V.F.F.F.F.F.F.n.n.n.H.n.S.n.n.n.H.n.n.n.n.n.H.n.H.n.F.F.F.V.H.W.W.F.F.F.V.F.V.F.V.V.V.W.V.V.V.Z.Z.`.`.>+`.;+;+;+Z.Z.`.`.=+Z.=+=+=+=+!+Z.=+!+=+=+!+-+!+=+-+!+=+!+!+=+;+", -"2.p.2.p.p.p.p.|.|.2.+.I e i | { { a S 3. . . . .#. . .<.}.3.}.}.<.m.s.s.s.w.H.W.Q.W.Q.W.W.F.V.F.F.F.K.V.;+;+;+V.p.p.j.p.;+;+V.;+;+(+(+^+{+Q.M k : 6 : 5 5 : : : = } [ [ c t u N N #.#.5.3.3.3.s.M.M.M.Q.H.W.W.W. +V.W. +`.W.W.V.V.V.V.V.V.W.`.W.V.V.V.V.F.F.F.F.H.H.F.W.F.F.F.H.n.H.n.n.n.n.n.n.n.n.n.n.H.H.n.F.n.V.F.V.F.F.S.F.S.F.S.F.F.S.F.V.`.V.Z.Z.Z.Z.Z.`.Z.;+Z.Z.,+=+;+=+!+Z.!+=+=+=+=+=+!+!+!+=+=+!+!+!+", -"t.m.2.p.2.p.p.p.p.p.8.+.O B k a } r S K M G O G S M S S ......+.....f.}.<.2.V.$+t.H.Q.H.F.K.V.p.V.F.V.F.;+;+;+V.;+V.;+V.V.;+;+=+!+'+)+{+)+n.O v i i i p 6 a 6 6 : : { : ) } [ 0 u u u K N N #.#.3.3.o.o.o.M.M.Q.W.@+W.W.W. +`.`.V.Z.-+W.-+-+V.V.Z.V.-+W.V.V.W.W.F.W.W.-+W.W.n.H.n.n.H.n.F.n.n.n.n.n.H.n.n.n.n.n.n.n.n.n.n.S.n.S.F.F.F.F.E.F.F.F.F.F.H.V.V.`.V.V.Z.Z.`.`.Z.Z.=+=+Z.=+Z.Z.=+;+=+;+=+=+=+!+!+!+S.=+", -"<.t.2.t.p.p.p.t.n.p.p.w.<. .N 0 g 5 B G O I +.+.+.+.I 2.+.+.+.+.2...+.+.2.w.F.W.2.n.F.H.F.l.;+E.;+V.;+F.Z.~+)+`.V.V.;+S.Z.;+`.,+'+-+)+$+>+H._.` I I v I i i r r a 6 : 6 : 6 } [ } 5 } 0 0 u A N N K #.3.3.3.o.o.s.W.W.Q.Q.Q.W.Z.Z.Z.`.W.W.-+`.`.`.Z.Z.V.-+V.-+W.-+W.-+W.W.W.F.W.W.n.F.n.S.n.n.n.n.n.n.n.n.n.k.n.n.n.k.n.n.n.n.k.F.n.E.n.F.F.n.F.n.n.n.H.n.F.F.H.F.V.V.V. +V.Z.;+Z.Z.;+!+Z.=+Z.=+=+=+=+Z.!+=+!+;+", -"}.}.m.2.2.p.n.H.H.Q.Q.M.5.>.0 [ ) a r O ` 2.8.2.p.8.2.p.8.p.p.p.2.p.p.p.2.n.K.E.E.E.E.V.F.E.V.;+;+S.@+`.-+>+)+>+Z.Z.Z.`.`.>+>+>+>+>+-+-+`.F.p.|.2.|.` +.I O G B s v k a i i i 6 6 6 6 [ [ [ 0 0 u u u N N K #.3.o.M.M.M.o.s.M. +;+(+'+$+M.Q. +`.=+`.`.Z.-+W.-+W.-+F.-+W.-+-+F.-+V.S.V.V.W.V.F.n.k.n.k.k.|.k.|.|.|.n.n.|.4.|.|.n.n.k.n.n.k.n.|.k.k.k.n.n.n.n.k.n.F.F.F.F.F.V.V.V.;+S.;+S.;+=+Z.;+=+Z.!+S.;+!+Z.=+", -"3.#.#.<.n.t.t.M.s.o.o.r.P A [ ) & < s m.+.p.p.p.p.p.p.p.p.m.p.m.m.p.2.p.m.p.K.E.!+(+(+=+;+@+V.;+;+Z.`. +~+>+)+@+,+ +;+>+-+,+,+,+,+,+,+-+,+V.K.l.p.l.|.p.|.2.2.+.O O O v v v p v p i 6 p 5 [ 5 5 [ [ [ 0 0 c u K #.3.o.o.>.#.o. +^+3+++M.o.H.W.`.'+-+=+=+=+=+`.-+-+-+-+-+W.-+V.W.W.S.-+F.-+F.V.F.F.n.n.k.n.k.k.k.n.k.k.k.k.|.|.|.<.|.|.n.2.n.k.|.n.|.|.n.|.k.|.k.|.n.n.n.n.n.F.F.F.V.V.Z.Z.Z.Z.Z.=+Z.;+Z.!+Z.;+=+", -"N K K S s.o.o.3.3.5.#.N c % % ~ ( i s +.m.2.p.w.m.p.m.s.s.w.m.2.m.m.}.m.t.s.8.Z.5+j+b+)+ +V.Z.Z.=+@+>+>+>+)+,+-+ +>+)+>+>+,+!+;+,+~+>+ +`.;+;+S.V.F.F.l.p.l.p.l.p.|.|.+.` I I O v v B p p p p k j 6 : { { } [ 0 u >.>.P A N 3.M.:+#+P.3.#.}.W. +-+'+-+=+=+=+=+=+Z.Z.-+-+-+Z.-+-+-+V.-+Z.`.-+V.V.V.V.V.W.V.F.S.F.F.S.k.n.n.n.k.|.n.2.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.|.2.k.n.n.|.n.l.F.l.E.F.F.V.V.V.;+Z.Z.;+Z.Z.;+", -"0 } 0 M 3.3.>.P N c 0 5 : ~ & = < 7 +.8.m.m.2.p.f.t.<.s.}.}.f.}...f.3.3.3.3.n.!+j+o+e+{+>+`.`.;+=+,+,+,+;+>+~+,+,+>+~+)+)+>+'+~+>+,+,+~+Z.Z.;+Z.;+V.V.V.F.F.F.l.l.p.p.|.2.2.|.` ` O O G B B B p p k k : : 6 } } 5 u u [ ] 0 N 5.r.r.P N K .Q. +~+~+'+!+!+!+!+!+!+!+-+-+=+-+-+-+-+-+Z.Z.`.-+`.-+V.V.-+F.Z.V.V.V.W.V.V.V.F.H.E.n.k.n.k.|.n.n.n.k.|.|.|.|.2.2.<.|.|.|.2.|.|.|.|.|.|.n.2.l.n.n.F.l.F.F.V.V.V.;+`.Z.", -"k k 6 p K N 0 } } - : i 6 : : < i s +...2.2.s.3.}.f.f.#.-. . .......#.#. . .2.`.4+e+3+{+,+;+;+`.,+,+,+;+~+;+;+=+'+~+>+~+,+~+-+-+,+~+;+,+,+,+;+@+;+Z.`.Z.;+V.V.V.K.E.p.F.l.l.l.p.l.|.|.` +.+.O O G G p r r k 6 6 k 5 [ ) } % [ u u c 0 [ p <.t. +>+)+)+~+~+)+)+'+~+'+'+!+!+!+!+-+=+=+!+'+=+=+=+=+-+Z.-+-+Z.V.-+W.-+-+-+V.F.-+F.F.F.k.n.n.k.k.n.n.k.|.|.|.|.|.2.|.|.|.|.2.|.|.|.|.|.|.|.|.|.|.|.k.n.l.F.n.F.F.V.V.", -"W y r B t B 5 ( ( < 6 v O r i e s ` m.<.f.f. .f.#. .M .K M W . .K W K B G +.H.{+$+)+>+`.Z.,+,+,+-+!+,+=+,+,+,+,+~+-+'+>+>+)+~+,+,+;+~+,+=+=+`. +`.;+ +`.`.;+`.`.Z.Z.V.F.V.F.F.p.p.p.l.p._.|.|.+.+.O O v M B B r r a { { { { 6 6 6 6 k B ..t.W.>+>+>+<+~+'+)+'+!+^+'+'+'+^+!+^+'+'+'+'+'+!+'+-+-+=+=+-+=+Z.=+-+-+V.-+`.V.`.V.S.V.V.S.F.H.V.F.H.k.n.n.|.|.2.2.|.|.|.|.|.2.|.2.|.k.|.k.|.2.|.|.|.|.|.n.k.n.n.F.n.", -"K K K M K B G r v r v r O +.O s O +...}... .#.W M K t M G M M M K G B O s I ` n.-+-+-+-+-+>+Z.,+,+,+-+=+,+-+,+,+-+,+,+ +~+>+,+,+,+'+-+,+!+,+,+'+,+,+>+,+,+ +-+`.=+@+;+;+;+V.S.;+S.V.E.p.E.p.p.p.p.p.2.8.+.+.+.O I I s 7 | i i e s s I I O <.n.Q.W.`.,+'+_+_+!+^+'+!+_+~+_+~+^+'+^+_+~+_+'+^+~+_+'+!+=+!+!+=+=+=+=+-+-+-+-+-+-+`.Z.Z.V.W.V.W.Z.F.F.E.k.k.k.k.|.k.|.|.|.|.|.|.|.|.k.k.n.2.|.|.|.|.|.|.|.|.|.|.k.n.", -"M G S I I I 8.s H s O W ..m.I 8.p.m.3.#. .}. .M M B r W r B r B r s I F ` 8.j.F.V.`.`.`.-+>+=+,+,+;+;+,+,+>+>+>+-+,+-+>+~+'+,+;+,+'+-+,+,+=+,+~+~+=+=+,+,+,+,+ +=+=+Z.Z.=+,+Z.;+Z.;+Z.@+S.V.F.p.E.p.p.8.p.2.p.8.2.8.I I F I F F 8.` ` 8.2.2.l.F.V.;+=+!+~+_+~+_+_+!+(+!+^+~+_+'+^+(+!+(+!+(+!+_+~+(+!+'+^+!+~+!+!+=+=+=+`.-+Z.`.`.=+`.-+Z.W.-+V.V.W.V.H.n.F.n.k.n.k.|.|.|.k.k.|.n.F.k.|.n.|.|.n.|.|.2.|.|.|.|.|.", -"q q F 8.8.8.8.8.8.E.t.-.M -.p.p.p.<.#. .M S K M r B G v O s s I ` ` 8.8.E.E.Z.;+=+,+>+>+>+,+;+,+,+,+,+,+;+,+-+;+>+~+>+-+-+,+)+=+,+-+>+~+!+;+=+-+,+;+;+,+,+~+,+-+-+,+,+'+,+,+,+Z.,+`.;+Z.;+;+Z.Z.K.S.p.F.p.p.p.p.p.p.p.8.p.8.|.8.p.p.p.p.4.p.F.V.Z.=+<+~+^+~+_+~+!+_+~+~+_+^+^+_+~+'+^+^+_+_+(+(+(+(+(+!+!+^+!+'+'+^+'+!+!+!+-+-+=+-+=+Z.`.Z.V.`. +S.`.V.-+F.V.F.S.n.k.k.n.n.F.n.W.W.n.|.2.2.|.|.2.n.|.|.|.2.|.|.", -"8.8.;+8.<+;+]+]+]+*+M.>.j O |.V. +M. .G O +.S O O I O F ` 8.8.8.8.E.8.;+;+Z.;+;+;+;+;+;+,+>+,+,+`.,+,+-+~+,+,+;+>+;+<+>+-+,+>+;+;+~+>+>+>+~+~+'+'+!+,+~+,+~+~+,+-+-+>+-+,+~+>+,+~+-+,+=+Z.Z.;+;+Z.;+S.;+V.V.F.V.E.;+p.p.p.p.V.E.E.p.E.p.F.S.Z.;+!+!+(+!+^+_+^+^+!+(+_+~+!+!+^+^+_+!+^+^+(+_+!+!+(+_+_+_+(+^+^+^+'+^+~+!+'+^+!+'+;+=+!+=+=+=+Z.`.`.`.Z.W.`.V.-+F.V.W.V.V.V.S.F.F.W.-+n.n.k.n.|.|.|.|.|.2.|.<.|.|.", -";+]+>+$+{+++++P.#+o.o.K 6 v 2.W.M.o.G O O O ` I +.8.8.p.8.E.l.;+;+;+;+;+;+`.`.-+-+-+=+,+,+-+,+,+,+-+>+>+>+,+~+,+,+>+>+,+>+,+~+-+,+,+~+,+~+)+,+,+,+,+!+=+~+-+-+'+~+~+'+~+!+-+-+!+=+~+;+>+)+,+=+=+,+Z.,+;+Z.@+;+V.;+;+;+Z.;+V.;+;+;+Z.@+V.V.;+!+!+!+(+)+_+_+!+(+!+(+<+(+!+_+_+_+'+!+^+!+!+)+_+^+^+^+[+(+(+_+^+(+(+(+!+(+(+!+!+(+!+(+!+!+!+,+=+-+=+=+Z.Z.-+V.-+`.W.-+`.`.S.V.W.S.F.V.W.W.k.n.n.n.k.|.|._.|.|.2.|.|.", -"Q.$+%+#+P.M.M.o.3.3. .G i s ` H.M.}.O 8.8.8.p.8.F.E.E.;+;+;+;+V.;+@+`.`.-+>+>+>+,+,+=+,+,+Z. +,+>+,+,+-+>+>+,+,+-+,+-+,+,+,+,+-+,+,+,+>+,+,+,+~+=+,+,+=+,+~+-+)+-+,+,+~+)+~+-+~+;+!+!+'+'+-+-+~+,+=+=+,+=+Z.=+Z.!+!+;+Z.V.V.;+!+~+=+Z.;+Z.=+(+_+^+(+_+(+^+'+_+(+(+(+<+!+(+!+(+^+_+_+^+_+(+~+^+'+)+^+^+^+_+^+^+_+_+^+'+^+_+(+(+!+(+!+!+(+~+!+!+!+!+!+=+=+=+Z.=+`.Z.Z.-+`.-+V.`.Z.`.W.V.V.V.F.n.n.k.n.k.|.|.|.2._.", -"s.s.}.}.<. .2.+.2.` |.+.` ` 2.n.p.p.2.p.p.p.;+V.;+K.;+V.V.;+;+;+`.`.`.>+`.`.`.-+,+ +>+>+,+,+,+,+,+,+-+,+>+>+,+,+;+,+,+,+,+,+~+>+~+;+,+~+~+=+!+,+~+'+~+~+;+-+~+-+'+~+~+-+~+'+~+'+!+~+~+,+~+~+)+-+~+~+'+,+-+~+!+;+!+!+!+;+=+,+(+<+^+~+,+Z.,+'+~+^+!+<+_+^+_+_+!+_+(+(+(+<+~+^+_+_+~+^+~+(+'+^+~+^+_+_+!+!+^+~+(+(+^+_+_+(+(+<+(+(+(+(+_+^+(+_+(+!+!+!+!+!+!+!+=+'+=+=+`.`.`.-+`.W.-+`.`.S.S.-+-+V.S.F.k.k.k.|.k.|.", -"2.2.n.2.2.2.2.|.p.p.p.p.p.p.p.n.K.p.p.E.;+;+V.;+V.;+;+;+;+V.`.`.;+`.`. +-+ + +`.,+`.`.,+,+=+=+,+,+ +,+-+-+>+>+>+,+,+>+,+,+,+,+,+-+~+-+>+,+-+'+>+)+-+'+-+~+>+~+,+'+~+~+-+~+~+,+,+~+~+'+'+'+~+)+'+)+)+~+~+,+~+!+!+<+!+!+,+!+-+^+_+^+~+~+!+~+'+~+_+!+(+!+(+_+^+!+_+_+(+!+(+!+~+_+^+^+^+)+_+!+_+!+!+~+_+~+!+^+_+!+(+(+[+(+(+!+<+(+(+^+(+(+^+!+^+(+[+(+(+(+!+(+^+!+!+!+!+!+=+=+=+=+-+Z.Z.-+`.Z.V.V.W.S.W.S.S.E.E.p.E.", -"n.K.p.p.p.H.p.p.p.F.p.p.p.F.F.K.F.V.V.@+Z.V.Z.`. +`.V.`.;+ + +;+ + +`.>+ +-+;+ +`. +,+`.,+,+;+;+>+,+,+>+>+~+)+)+>+)+,+>+,+,+~+-+~+-+,+'+'+,+-+'+>+)+>+~+;+~+,+~+-+'+~+)+,+-+~+~+'+'+~+'+~+'+~+'+~+!+'+~+!+!+<+!+!+!+~+!+;+~+^+(+<+^+'+~+~+^+!+!+_+!+<+_+!+_+_+(+_+_+(+!+<+(+!+!+(+^+^+^+^+(+<+^+(+~+^+_+!+_+^+(+_+_+_+(+(+(+_+^+^+^+_+(+^+^+^+_+_+_+(+^+!+(+(+(+!+^+!+(+'+!+!+=+-+=+=+-+-+-+Z.=+`.Z.Z.V.V.;+S.V.", -"n.F.K.F.W.H.F.V.H.K.H.H.W.W.V.W.W.@+V.@+`.@+`.`. + + +;+;+Z.`.;+`. +`.>+ +`.,+,+,+-+>+-+,+=+,+,+,+,+,+;+-+,+>+-+ +~+=+,+,+,+,+-+,+,+,+>+~+,+,+!+-+~+>+'+~+,+~+~+-+'+'+'+~+'+~+,+~+'+~+'+~+~+~+'+~+'+'+~+~+!+~+<+~+(+~+!+<+!+~+^+!+!+'+^+!+'+~+(+(+!+(+^+'+^+_+!+_+(+!+(+~+^+_+(+(+(+(+_+^+!+(+!+(+~+_+_+(+_+_+(+(+(+}+_+(+(+(+(+^+[+_+_+(+_+(+(+(+^+^+^+(+(+(+(+(+^+(+!+^+!+(+!+(+'+=+!+=+!+=+=+=+=+=+=+Z.;+S.;+", -"H.H.n.H.H.H.H.H.n.H.H.H.H.F.H.@+V.V.;+`. +`. +`.`.`.;+`.;+,+ +>+ +>+>+`.,+-+`.`.`. + +,+;+>+,+,+>+,+-+-+,+,+,+>+,+,+,+-+-+;+>+>+,+~+>+'+>+'+'+-+,+'+~+,+,+!+,+~+~+-+'+~+~+~+'+~+)+)+'+~+~+~+~+~+'+!+'+^+'+~+!+!+_+~+!+!+!+~+^+~+!+^+~+!+!+_+!+~+~+^+'+_+^+^+!+^+(+_+<+^+^+^+!+<+<+_+_+_+(+(+(+(+^+(+(+(+^+}+(+^+_+}+^+(+_+^+_+}+(+_+(+(+}+(+(+}+(+(+(+(+(+(+[+^+^+(+(+[+(+(+(+(+(+!+(+_+(+!+(+!+(+!+!+!+(+;+!+=+", -"t.H.H.n.H.t.H.K.n.H.F.H.K.F.F.V.V.V.V.@+`.;+`. +`.Z.;+Z.;+`.`. +>+ + +@+@+ +,+-+=+,+ +>+;+,+,+,+>+,+,+,+-+,+;+;+,+,+,+,+'+!+~+;+,+,+,+-+>+-+)+~+,+'+'+'+>+~+'+)+)+~+)+'+-+~+'+~+~+)+'+)+'+!+~+~+~+~+~+'+~+)+~+!+~+_+~+'+<+~+^+)+_+_+~+_+!+_+!+_+_+_+!+!+^+^+_+_+!+(+_+)+(+(+(+!+(+(+(+_+(+(+(+(+_+^+^+(+(+}+(+^+^+^+^+^+_+[+^+^+(+^+^+^+_+<+(+(+}+(+(+[+^+^+(+[+^+[+(+(+[+(+(+(+(+}+(+(+[+(+(+(+(+(+(+(+(+(+(+(+", -"H.t.H.t.F.H.K.p.K.p.K.F.F.W.W.V.V.@+;+V.@+Z. +`.`. +Z.;+`.,+,+,+ +>+;+,+=+,+,+;+ +,+>+,+,+,+,+,+'+>+,+,+>+~+=+,+;+>+,+,+,+,+,+~+,+=+'+)+'+~+;+,+~+>+,+)+'+'+>+~+~+,+!+~+~+'+'+'+'+~+~+'+'+)+'+'+'+'+'+~+!+<+~+'+^+~+^+~+!+~+!+^+'+!+_+!+_+^+_+(+!+!+(+_+!+'+^+_+<+_+_+^+'+(+(+(+_+_+_+^+_+(+<+}+^+^+(+(+(+(+}+_+^+_+^+^+_+)+^+_+^+_+(+(+(+(+(+}+(+}+(+(+[+(+}+_+|+^+|+[+(+[+(+[+[+(+[+(+[+[+[+[+[+[+(+(+(+(+(+(+", -"p.H.H.t.K.n.F.p.F.p.K.K.H.K.K.;+V.V.;+V. +;+ + +`. +`.`.`.`. +>+`. +,+ +Z.`.,+;+,+,+>+,+=+,+>+>+-+>+>+,+,+>+,+>+;+>+>+,+,+,+-+,+~+,+'+-+,+!+~+~+~+'+-+'+)+~+~+~+'+-+'+~+'+)+>+)+~+~+,+~+~+^+)+'+'+'+^+~+!+~+~+~+'+'+^+_+'+_+~+^+(+!+_+!+!+!+^+_+(+~+!+_+_+~+^+_+(+(+(+^+_+(+(+(+(+(+(+_+_+[+(+(+[+(+^+^+_+(+(+_+!+^+^+^+^+~+'+_+^+^+_+^+}+_+(+^+(+|+}+}+|+[+[+(+[+(+[+|+}+[+}+[+}+[+|+(+|+|+[+[+(+[+[+7+[+[+}+[+", -"H.p.n.H.H.K.K.H.K.K.F.F.V.V.F.V.V.@+V.@+Z.`. + + +`.`.,+ + +,+`.,+;+ +>+>+>+,+Z.`.,+,+`.,+>+>+>+ +-+>+>+,+>+>+,+-+,+~+;+,+,+~+-+,+!+,+>+~+,+=+'+-+>+)+>+~+~+~+~+~+~+~+~+>+)+'+~+~+-+!+'+'+'+'+'+'+'+~+'+~+~+_+~+_+_+~+'+_+'+^+!+^+^+_+_+(+^+_+^+~+(+_+^+_+_+_+^+^+^+_+(+(+(+(+(+^+(+_+^+(+(+(+_+(+^+[+^+^+^+[+_+^+'+~+!+~+^+^+)+'+_+^+^+)+^+<+(+^+(+(+(+^+^+(+}+[+}+|+|+|+(+}+(+(+|+(+[+}+[+[+7+[+[+[+(+}+[+[+}+", -"H.H.K.n.H.H.K.n.H.H.F.W.H.V.F.V.V.@+V.@+`.`. +>+ + + + +,+;+`.`.Z.;+`.>+>+`.>+,+,+,+,+`.,+,+>+-+-+,+,+>+,+,+>+>+,+,+-+~+,+,+~+,+,+=+!+-+,+~+=+~+~+~+'+'+'+~+-+,+,+'+~+!+'+'+'+~+!+~+~+~+'+~+~+~+'+^+!+_+!+'+^+'+~+_+_+'+^+!+~+_+~+^+~+<+'+'+(+^+'+!+!+(+(+(+(+_+_+!+<+(+~+_+^+(+^+^+(+(+_+_+^+_+(+_+(+[+(+(+!+_+_+^+^+^+!+~+~+_+)+'+^+)+^+^+^+(+_+}+}+[+[+[+(+(+[+}+|+[+|+[+}+[+[+|+}+(+(+[+}+[+(+[+[+(+7+}+|+|+", -"n.H.F.H.H.H.F.H.H.F.H.W.W.W.W.W.`.V.`.`. + +`. +>+ +`.,+`.-+ +,+ +,+ +,+>+>+,+,+`. +-+>+,+,+ + +>+=+,+-+,+=+,+>+,+,+;+,+;+~+,+,+-+>+>+-+-+,+~+,+,+~+,+>+'+-+~+~+'+,+'+)+-+'+'+'+~+~+'+-+~+!+~+'+~+!+_+!+^+_+~+_+)+<+'+^+~+^+^+~+(+!+'+^+^+^+'+(+(+_+_+~+^+!+!+(+(+_+!+(+(+(+(+^+(+(+(+(+(+[+}+}+(+(+^+_+(+^+[+(+(+(+(+(+^+(+(+~+~+^+'+^+'+^+_+^+^+^+^+}+[+[+[+}+|+[+[+|+(+[+[+[+|+(+[+[+7+(+[+}+[+[+[+[+[+|+^+}+", -"H.t.F.n.H.Q.F.F.Q.F.F.V.K.W.W.W.W. +V.`.`. +`. + + + +>+`.,+>+,+`.,+`.`.-+`.`.,+`. +`.,+ +,+;+,+>+;+,+-+ +=+=+,+,+-+>+'+,+)+>+>+)+~+,+~+'+,+~+'+-+!+!+>+~+'+-+'+'+)+~+~+)+)+'+'+~+~+~+'+~+'+~+^+)+'+'+~+~+'+'+_+'+~+'+'+~+~+(+~+_+_+~+_+)+<+)+_+(+(+(+~+_+<+!+!+(+(+_+_+(+(+!+_+(+(+<+(+(+(+^+}+(+(+(+_+(+(+^+^+(+(+(+(+[+!+(+(+'+^+)+^+!+(+_+^+^+^+^+^+|+|+|+[+^+}+[+[+}+[+|+(+|+[+(+[+}+[+[+[+[+[+7+^+|+[+|+|+", -"p.H.H.H.F.H.F.F.F.F.K.H.V.V.W.W. +V. +`. +`. +`.;+;+`.`. + +`. +>+`.,+-+ +@+;+;+,+>+>+>+,+;+,+;+,+,+,+,+-+>+>+,+-+~+,+,+,+,+,+)+,+,+~+>+>+)+-+-+,+,+~+~+)+>+~+>+'+~+'+)+-+)+)+'+'+~+~+>+'+~+'+)+'+'+^+)+'+_+_+!+^+'+~+^+^+^+'+(+'+!+^+_+_+^+_+_+_+^+'+^+(+!+(+_+_+(+(+(+<+(+(+(+_+<+(+(+(+(+(+(+}+}+}+(+(+^+(+(+(+}+[+[+^+[+(+^+[+^+(+^+^+(+(+(+^+[+^+|+^+[+|+|+[+|+[+|+5+(+[+[+[+[+}+|+[+}+[+7+[+[+[+|+|+[+[+[+", -"F.H.H.W.F.H.K.W.W.F.V.V.K.W.W.V.@+V. +`. + + +`.V.`. +,+`. +,+>+>+ +;+,+-+,+`.;+;+,+,+-+,+,+,+;+,+@+;+;+~+,+,+,+>+,+,+,+,+~+;+~+-+>+'+>+>+>+)+~+~+,+~+~+~+'+~+~+'+)+'+)+'+~+,+~+-+~+!+~+)+'+!+^+)+~+~+<+'+'+)+<+'+!+!+_+~+_+'+^+^+'+~+'+'+^+)+^+!+^+_+)+^+<+(+(+^+'+(+(+_+}+(+(+(+(+(+(+^+(+^+(+[+(+(+(+}+(+[+}+[+_+|+(+^+[+(+^+[+[+[+(+^+[+^+(+^+[+_+[+^+^+^+|+|+|+[+[+5+7+5+[+[+[+[+[+[+(+[+}+7+[+[+[+|+5+|+[+", -"K.K.H.H.H.K.H.H.F.F.V.W.V.H.V.W.V.V.`.V.;+W.`.@+@+@+,+`.;+,+ +>+ +;+-+ + +`.;+-+>+,+,+>+,+,+,+-+,+,+~+,+-+-+-+,+,+,+~+;+>+>+~+@+>+,+>+)+)+>+~+,+,+~+,+,+~+>+)+~+>+)+>+~+~+'+~+-+~+~+~+)+^+~+~+)+'+)+)+'+'+'+^+'+'+^+^+!+^+^+<+~+^+~+^+!+_+'+^+^+)+_+'+<+^+'+_+'+_+(+_+!+_+_+_+_+(+(+_+(+(+(+[+^+^+^+(+(+(+(+_+[+_+[+(+[+[+^+(+(+(+(+[+[+[+^+[+[+[+[+[+|+|+|+|+6+|+6+6+6+5+5+[+[+7+|+}+[+7+[+7+[+[+|+|+6+[+|+|+6+", -"K.l.H.H.F.F.F.K.K.W.K.W.W.W.V.@+V.W. + +`.W. + +`.`. +`.`.-+ +`.`.@+`.>+,+,+ +,+ +>+@+ +>+-+,+,+-+>+-+>+;+,+,+,+,+,+-+~+;+'+'+~+~+>+>+-+~+>+>+-+,+~+~+~+~+~+)+~+~+~+~+'+~+'+~+'+'+~+'+'+'+_+'+)+)+^+'+~+~+~+)+^+'+'+)+(+~+^+^+~+^+!+^+!+!+'+)+^+!+(+'+'+^+'+_+^+^+!+_+(+^+^+!+_+_+(+_+^+^+(+[+(+(+(+[+[+(+[+[+(+[+[+(+[+[+|+[+[+[+[+[+[+[+[+6+|+|+5+[+|+|+^+|+6+|+6+5+6+6+6+7+5+7+7+[+5+7+[+[+5+6+6+5+7+5+6+6+6+", -"p.K.F.K.H.F.K.F.F.H.W.W.W.F.W.V. +`.W.`. +&+`.`. + +>+ +;+ +>+>+,+`. +,+ +`.,+ +,+,+,+,+,+>+ +,+`.,+>+,+>+,+,+,+,+,+~+,+-+>+>+>+)+,+'+>+-+~+~+>+~+-+>+>+)+'+,+~+)+~+~+'+'+~+'+'+~+'+~+'+~+~+'+)+'+'+'+'+'+'+'+)+)+^+^+)+^+~+'+_+!+'+)+^+^+^+^+'+^+^+^+)+(+_+^+!+!+(+(+!+(+^+^+(+(+^+(+(+(+^+^+|+[+[+(+(+[+[+|+[+[+|+6+[+|+[+|+[+|+|+|+[+7+5+|+6+5+5+6+5+6+6+6+6+5+5+6+6+6+6+5+[+5+5+5+[+7+5+7+|+7+|+4+6+6+5+6+6+", -"F.F.F.K.H.F.K.H.F.H.H.F.W.W.W.W.V.`.W. + + + +`.;+`. + +`.`. + + + + +,+>+ +,+`.`.>+`.,+`.-+>+>+-+,+>+,+>+,+-+>+ +>+;+>+,+-+-+,+'+,+~+,+,+>+~+,+~+'+~+>+>+'+'+,+)+'+~+-+'+~+~+'+~+~+~+'+'+~+'+)+'+~+'+^+'+^+'+^+^+'+_+~+^+)+^+_+_+^+)+'+'+'+)+~+~+^+^+)+(+!+_+_+^+(+_+!+(+(+^+^+(+[+(+[+(+|+|+[+|+|+[+[+[+[+5+|+[+|+6+[+6+5+[+5+[+[+6+5+5+6+6+6+6+6+6+5+5+6+6+0+6+8+6+6+6+8+5+5+5+7+9+5+5+5+5+5+5+5+6+7+6+6+7+5+", -"K.K.K.H.H.H.H.F.W.H.W.W.W.V.Q.`.W.V. +W.`.V.`. +`.`.;+`. +>+>+>+,+;+;+ +>+-+`.@+>+`.>+>+>+ +`.,+,+,+,+>+,+-+,+-+)+;+=+,+~+,+~+~+,+=+=+'+)+~+>+~+>+>+-+~+~+)+-+!+,+'+)+~+-+'+'+'+)+'+)+,+~+'+'+'+'+'+~+~+'+)+)+'+'+~+!+^+'+'+'+'+'+~+^+_+_+^+^+^+^+~+^+(+^+^+(+(+(+^+(+^+^+[+(+[+(+[+[+[+|+[+|+6+|+5+6+|+6+5+[+7+5+6+5+5+5+5+5+7+9+7+5+5+5+6+6+6+5+5+6+6+6+0+6+6+5+5+5+5+5+5+7+8+5+8+5+5+5+5+5+5+8+8+6+6+7+6+5+6+", -"H.H.H.H.K.F.K.H.H.H.Q.F.W.V.W.V.@+W. +W. + +`.W. + + + +>+ + +>+`.`.;+`. +>+-+`.>+ +`.>+>+,+;+;+;+Z.,+>+>+>+ +,+>+>+~+,+,+-+-+,+,+)+>+,+-+!+,+'+'+,+,+~+'+)+)+'+-+'+'+)+,+'+>+~+,+;+~+,+~+'+'+'+'+'+'+'+'+'+-+)+'+)+,+'+^+'+'+!+(+!+'+(+!+!+!+!+(+!+'+[+(+[+[+[+[+[+[+(+[+[+[+[+|+|+|+5+5+|+5+0+|+6+6+5+6+6+5+8+6+5+6+5+5+0+6+5+5+9+5+8+8+0+0+0+8+5+0+0+6+0+0+b+c+0+0+8+8+5+5+8+5+8+8+8+8+8+8+7+5+6+6+6+7+6+6+5+", -"F.H.F.F.F.V.K.F.H.F.F.Q.V.W.W.W.W. +W.;+V.;+`. +>+`.`.`. +>+>+$+>+ +`.-+`. + + +>+,+>+ +,+`.`.,+=+,+>+-+~+,+,+>+-+,+,+,+~+>+>+'+,+~+~+~+,+,+)+>+,+)+~+-+-+~+,+,+~+'+)+~+'+~+!+-+'+!+'+~+-+^+)+~+~+'+'+-+)+'+'+'+'+!+!+^+'+~+_+^+!+'+(+!+_+^+^+[+^+[+[+[+[+[+|+[+|+5+[+[+|+6+6+6+5+5+5+5+6+5+6+6+8+5+0+8+8+5+0+0+0+0+5+0+8+8+0+0+8+8+8+8+0+5+6+8+5+8+5+9+0+0+5+5+5+8+b+0+8+0+b+0+0+8+0+8+8+9+5+8+8+9+7+9+5+5+|+6+", -"F.H.K.K.p.;+p.F.H.H.V.H.V.H.W.V.V. +W.@+`.@+`. +$+ + +Z.`.`.>+`.-+`. + +,+,+,+,+,+>+,+>+>+,+ +>+ +,+ + +~+,+,+>+,+,+,+>+~+'+,+~+,+-+-+~+,+,+,+)+,+>+)+)+>+~+>+>+,+,+)+>+>+'+~+=+-+,+'+)+>+'+)+'+'+)+)+^+)+~+!+'+'+^+!+^+^+!+(+^+(+(+[+(+^+(+^+[+|+[+^+|+|+5+6+5+6+7+5+5+5+0+6+6+5+0+6+6+5+0+5+0+8+5+0+0+0+8+0+8+5+8+g+0+f+8+8+8+5+8+0+g+0+0+0+0+0+9+5+5+5+8+8+9+9+f+8+8+8+8+8+8+0+8+0+8+5+8+5+5+5+5+5+5+9+5+6+6+", -"H.K.F.K.F.K.H.H.H.V.F.W.Q.W.F.@+W.W. + +V.V. +`. + +`.@+;+`.`. +`.>+;+,+`.;+`.>+ +,+>+>+,+>+>+-+-+>+,+,+,+,+,+>+,+,+-+'+>+,+-+,+=+,+>+>+>+,+>+>+-+,+>+~+=+>+-+)+)+-+-+'+'+)+-+~+~+!+=+'+'+'+^+^+~+^+^+~+(+^+_+!+(+!+[+(+^+[+(+[+(+[+(+[+[+|+[+5+5+|+6+|+6+6+6+6+5+0+5+8+8+5+0+5+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+f+f+f+f+8+f+f+f+f+0+g+8+8+8+8+8+0+8+8+0+8+8+5+9+0+8+8+8+8+8+5+8+5+8+8+8+8+8+0+0+8+8+5+8+6+6+", -"F.F.K.K.F.W.F.F.H.F.K.V.W.W.W.V.`.W.`.@+`.V. +`.`. +`.`.,+-+`. +,+>+`.>+`. +,+,+ +>+>+ +>+,+>+ +>+>+,+-+-+,+,+,+-+-+-+-+>+)+>+)+,+,+>+>+)+-+-+{+-+,+,+>+,+)+,+,+~+>+-+'+'+'+~+^+~+~+!+!+^+'+)+(+^+^+!+(+(+(+(+^+[+[+(+[+[+[+[+|+|+[+|+5+|+6+6+6+5+5+5+5+0+8+0+0+8+0+8+0+f+0+0+8+0+0+f+f+f+f+f+f+g+8+f+c+f+i+0+g+g+f+f+i+f+f+f+f+0+8+f+f+f+f+f+f+0+8+8+8+8+f+f+5+f+8+8+0+f+8+8+g+0+8+8+5+f+5+j+5+8+5+5+8+7+8+5+6+", -"p.F.H.F.H.K.K.K.K.F.V.W.V.K.V.W.W.V.@+`.W.`.V.`. + + +;+@+ + +;+;+`. +`.>+>+`.,+,+>+>+,+,+>+>+,+,+,+>+ +>+>+-+`.,+,+,+,+'+>+-+-+-+-+-+,+,+>+>+-+>+-+,+=+'+>+~+~+!+!+~+'+'+^+'+(+!+^+~+^+^+^+(+^+(+^+[+[+[+[+|+[+[+|+|+|+6+[+5+5+5+8+5+6+0+6+6+0+0+0+0+0+0+0+0+8+f+f+f+f+f+f+f+f+f+0+h+f+h+h+f+f+h+o+f+f+h+f+i+f+f+o+i+f+h+f+f+m+f+f+f+f+f+f+c+f+f+f+f+f+0+f+f+f+g+8+0+g+8+8+f+5+8+9+f+8+f+5+8+8+8+0+8+5+5+7+8+0+", -"l.F.H.K.F.H.F.H.K.V.H.H.V.W.W. +W.V.W.`. + +@+@+Z.`. +`. + +`. + +>+&+>+ + + +;+,+-+>+`.,+ + +,+`.,+>+>+-+>+>+ +>+>+=+>+>+>+>+>+)+,+'+-+!+~+>+-+'+)+~+~+~+'+'+'+_+~+'+!+'+^+^+^+(+(+(+(+[+^+[+(+[+[+[+7+5+7+7+[+5+5+6+6+6+6+6+6+6+0+0+0+0+0+0+0+0+f+f+0+0+f+f+0+f+f+f+c+h+f+h+f+h+f+h+h+f+m+f+f+f+m+h+m+h+m+m+h+m+o+m+m+m+m+f+f+o+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+f+g+f+0+f+0+f+f+5+8+5+8+9+8+f+8+8+8+8+8+5+6+6+6+", -"p.n.K.F.H.F.H.W.F.K.V.F.V.V.V.V.`.W. +W.W.`.Z.`.@+W.W. +;+;+@+`.,+`.`. +`.`.;+`. + +-+-+-+,+,+ + +>+>+,+ +>+>+>+,+,+ +,+~+-+~+=+,+'+-+,+,+'+'+~+>+'+~+!+!+~+_+_+(+^+(+(+[+(+(+[+|+[+[+|+|+5+7+5+5+6+6+5+5+0+5+6+5+5+5+6+0+0+0+8+0+8+0+0+f+0+f+f+f+0+f+f+f+i+f+f+f+f+h+f+f+h+m+h+h+m+h+m+m+o+h+o+m+f+o+m+o+m+f+o+i+m+m+o+m+f+o+m+m+o+o+o+o+m+m+m+o+f+o+f+f+f+h+f+f+f+g+f+f+f+f+n+8+f+f+5+f+0+8+8+8+8+5+8+8+8+7+6+", -"8.k.n.F.H.H.H.H.F.H.F.W.W.V.V.K.Z.V. +`.W.W.;+`.;+;+W. +`.`.;+`.`.`. + +;+`.>+ +>+ +>+@+;+;+;+,+,+,+>+>+)+>+,+>+)+!+,+,+'+-+~+=+,+~+'+~+=+!+'+!+~+'+(+(+!+(+(+^+^+|+^+(+[+[+[+|+|+[+|+|+5+5+5+5+5+8+5+8+5+0+0+0+0+0+0+0+f+f+f+f+0+c+f+h+h+i+i+f+h+f+i+h+h+h+m+h+h+m+m+m+m+m+m+o+h+m+o+p+m+o+f+o+m+m+o+m+q+s+m+m+m+q+m+o+m+o+o+f+m+m+m+m+o+o+f+m+o+o+o+o+o+f+m+h+f+f+g+0+g+f+f+8+f+8+8+8+8+f+0+8+0+8+8+6+6+5+7+5+", -"_.4.4.n.F.H.F.W.K.V.K.F.V.V.F.;+K.@+V.W.`.@+@+V. +W.;+ + + + +;+@+ +`. + +,+ +,+ +>+>+>+`.;+-+Z.,+=+=+-+>+)+,+~+-+,+~+-+)+~+~+~+!+~+~+!+!+'+_+^+(+(+_+(+(+(+[+(+7+(+5+5+5+6+6+0+6+6+6+0+0+0+5+8+f+8+0+8+f+f+f+0+0+f+f+f+f+f+f+f+f+f+i+f+f+f+f+h+m+o+f+o+o+m+o+o+m+p+p+s+p+o+s+o+o+q+m+m+o+o+s+m+m+p+m+s+s+m+t+t+m+s+o+m+o+m+s+m+m+q+m+m+m+m+o+o+m+m+o+f+o+o+f+f+m+f+f+f+0+f+f+f+f+f+f+8+8+8+8+8+8+0+6+8+8+6+5+6+", -"` _.4.l.l.F.F.V.V.K.V.K.@+V.V.V.V.@+@+`.V.V.;+;+;+`.W. +`.`. +>+,+ +,+-+`.,+>+ + +>+,+;+=+;+,+=+,+,+,+!+,+~+,+~+~+'+~+~+'+!+!+_+(+(+(+_+(+(+(+(+[+[+|+[+5+[+5+[+6+7+[+7+5+0+0+4+0+0+6+0+0+f+f+8+f+f+f+f+f+f+f+f+m+f+f+h+h+m+o+o+m+o+o+o+m+m+o+o+m+p+o+m+m+m+o+o+s+s+p+m+m+o+s+t+m+m+o+m+m+o+x+s+m+s+m+m+t+s+m+t+m+t+t+s+t+o+s+q+m+q+s+m+p+m+o+f+o+m+o+m+o+o+o+f+f+g+n+g+8+f+g+f+8+f+8+f+0+8+0+8+8+0+6+6+6+5+6+6+", -"_._._.|.k.p.F.F.F.;+F.;+V.W.V.;+;+`.V.`.>+ + +`.`. +,+ +@+ +`.-+>+ +;+;+>+ + +,+,+,+>+,+,+=+-+,+~+~+!+,+!+'+!+!+'+_+_+!+^+^+(+(+^+^+_+(+|+[+7+5+[+7+|+6+5+6+5+5+9+5+8+0+5+8+0+0+c+0+f+f+0+h+f+f+f+f+f+h+h+f+f+m+h+m+m+m+m+m+m+m+o+m+m+m+m+q+s+o+s+s+m+s+q+s+s+m+s+s+s+t+t+t+t+s+y+y+m+y+y+m+y+y+s+s+y+x+m+t+t+s+s+s+s+t+s+s+o+s+m+m+p+s+m+s+m+m+m+o+o+f+o+f+f+i+f+f+f+f+f+g+0+g+f+8+g+f+8+0+8+8+6+6+8+8+7+6+7+6+", -"_._._._.4.j.E.V.V.V.@+K.Z.@+V. + +,+;+V.`. + +$+Z.;+`. +;+`. + +>+>+`.;+!+-+=+=+;+~+)+;+)+~+'+'+'+_+^+~+!+~+~+(+(+(+^+(+(+_+(+[+[+[+|+|+|+[+6+7+5+6+6+6+5+0+0+0+0+8+8+f+0+c+i+c+f+f+i+i+f+h+f+m+m+m+o+o+o+o+o+m+m+p+m+o+t+o+o+m+t+s+o+y+s+m+s+o+s+s+t+m+x+s+s+s+s+s+s+m+x+m+y+m+s+x+s+s+x+m+x+y+y+m+y+y+x+x+o+y+m+x+s+o+y+m+y+s+t+t+p+q+o+o+p+s+m+m+o+m+o+o+o+i+f+h+h+f+f+f+0+f+g+8+f+0+8+8+5+9+8+6+6+6+6+5+7+5+", -"` _.4._._.8.k.l.F.V.V.;+V.`. +`.`.@+`. +>+`.>+`.@+`.>+-+Z.;+;+>+,+-+;+=+,+,+,+,+!+,+)+'+!+~+~+_+~+_+(+(+^+^+(+(+(+^+}+}+(+5+[+[+}+6+6+6+6+0+6+5+5+8+0+8+8+b+8+8+8+8+f+8+8+f+f+f+i+h+h+h+i+m+m+o+o+o+m+m+m+o+m+m+p+p+s+s+s+s+s+t+s+y+x+s+o+y+y+w+y+m+x+x+s+s+x+t+y+y+y+y+x+y+x+w+y+o+y+y+y+y+y+o+y+y+x+m+x+x+x+s+y+o+x+m+s+y+m+t+o+s+t+m+m+o+o+m+o+o+o+o+o+o+f+f+i+i+f+f+h+f+f+8+f+0+8+f+8+8+0+8+5+8+8+5+6+6+5+|+", -"|.` _.4._._.4.k.F.V.V. +@+ +$+`.`. +`. + +`.@+ + +,+ +>+-+,+;+,+;+=+!+~+'+)+~+'+~+_+_+)+_+(+!+_+(+_+^+(+(+}+}+}+[+[+|+4+|+6+6+6+4+6+8+0+6+7+0+0+8+0+0+0+0+0+f+f+f+f+f+i+h+h+m+h+h+o+o+m+p+p+m+o+m+s+m+t+s+s+y+m+s+m+s+t+m+y+x+y+m+y+y+m+x+y+x+y+y+y+m+x+x+x+y+m+x+m+x+y+x+y+x+y+y+y+y+y+y+y+y+w+y+w+y+y+o+x+x+m+y+x+x+y+m+y+s+s+y+s+o+t+s+o+o+m+o+o+o+o+o+o+o+f+f+i+h+0+c+c+i+f+f+8+8+0+0+b+8+8+6+6+6+8+|+6+6+[+", -"_._._._._._._.4.j.E.V.Z.`.-+ +>+`.;+,+-+>+>+,+,+>+-+=+=+,+-+!+=+'+'+~+'+)+!+(+~+^+'+~+_+!+_+_+(+[+[+(+|+|+[+[+[+[+|+6+7+6+6+8+6+8+8+4+b+b+0+8+8+f+c+c+c+c+h+0+f+f+f+h+h+m+p+p+o+q+p+p+p+p+m+o+m+s+s+s+m+s+y+s+s+x+x+x+x+y+x+x+x+y+m+y+y+y+y+y+y+y+y+y+y+m+y+x+y+y+x+y+y+y+y+x+y+y+y+y+y+x+y+y+x+y+x+y+y+y+y+y+y+x+y+y+y+y+x+o+y+o+t+s+s+o+m+m+o+o+o+o+m+m+f+i+h+o+c+c+k+h+0+f+c+c+c+c+8+8+8+5+6+6+6+8+6+4+|+|+6+", -"_.` 8.` _.8._._.|.k.l.V.`.-+>+-+Z.`.,+`.,+,+,+,+>+~+~+~+~+'+~+~+~+^+^+^+'+'+(+!+^+^+(+}+^+[+(+(+(+6+|+5+|+6+4+}+5+6+5+7+6+0+0+8+8+0+0+8+8+8+f+f+c+c+i+i+c+i+i+f+f+n+o+o+p+p+p+m+m+m+o+m+s+s+s+y+o+y+m+y+m+y+y+s+y+y+y+x+y+y+y+x+y+x+x+x+x+y+y+y+y+y+y+x+B+y+x+x+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+y+x+x+y+y+o+y+y+o+y+s+o+y+y+s+s+y+o+o+s+t+m+m+s+m+o+m+m+o+f+o+i+f+h+h+c+c+0+i+f+8+8+c+c+6+0+8+8+7+7+6+7+6+6+4+|+", -"8.H ` _._._._._.4._.j.E.Z.`.-+>+;+;+;+,+,+'+~+!+!+-+,+'+'+'+^+!+~+_+~+~+^+(+(+(+[+}+[+(+[+}+}+6+|+7+7+|+5+6+6+6+6+8+0+5+5+8+4+0+c+c+0+c+c+c+c+h+i+h+i+i+i+m+f+f+f+m+m+p+m+p+m+m+p+t+m+t+s+s+y+s+x+y+y+y+y+y+s+y+x+y+y+y+x+y+x+y+B+y+B+y+x+x+y+B+x+B+B+B+B+y+y+y+B+A+B+y+y+y+y+y+x+y+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+m+y+y+t+s+o+y+m+y+m+o+s+t+m+o+m+m+i+o+f+o+i+h+h+c+f+f+0+g+c+c+0+6+6+5+5+6+7+6+6+5+7+6+|+|+|+|+", -"` 8.8.8._._.4.4._._._.4.F.Z.,+>+'+)+~+,+,+,+~+~+~+~+~+^+~+_+^+(+^+^+(+(+_+(+[+(+[+(+7+}+|+|+}+6+6+6+9+5+5+8+6+6+9+8+0+8+b+8+0+0+f+c+0+0+8+f+c+k+i+k+h+o+f+m+o+m+o+s+m+p+s+s+s+m+s+y+s+y+s+s+y+y+o+y+y+y+y+y+x+y+x+x+y+y+y+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+B+C+B+C+A+B+y+B+y+y+y+y+B+y+y+y+y+y+y+y+y+y+x+y+y+y+y+x+o+y+s+s+s+o+s+o+y+o+m+t+m+o+m+o+f+m+h+i+i+i+i+c+c+i+0+f+c+0+0+8+0+8+7+8+7+|+4+6+6+|+|+}+}+}+", -"_._._._.8.4._._.4._.8.j.j.F.Z.'+,+=+'+'+~+'+'+'+!+(+'+_+^+(+(+^+(+[+|+^+|+(+}+7+5+|+5+6+6+6+6+6+6+6+6+8+8+5+0+8+0+0+8+0+f+i+8+i+f+i+i+g+h+f+f+f+h+m+m+o+q+m+m+s+m+s+s+s+s+s+t+t+s+s+o+y+y+y+x+y+y+y+x+y+y+y+y+y+y+B+B+B+B+B+B+C+B+B+B+B+B+B+B+B+C+A+B+C+C+C+C+A+C+C+B+B+B+B+y+y+B+y+C+A+y+y+y+y+y+y+y+y+w+m+x+x+m+y+x+s+o+s+y+m+o+y+m+s+o+m+q+o+o+i+o+k+k+i+f+i+0+f+i+0+c+0+0+g+8+6+6+6+5+5+5+6+6+6+[+7+}+[+^+^+", -"_._._._.4.|.|.4.4.4.4.k.j.l.F.Z.;+!+~+'+_+_+^+^+^+(+^+^+^+_+(+^+}+[+|+|+|+[+|+|+6+|+6+6+6+6+6+5+0+0+c+8+0+8+8+8+b+c+g+0+f+i+0+i+f+f+f+g+i+m+m+o+h+m+m+m+q+p+o+t+t+t+m+s+y+s+s+o+y+x+y+y+x+y+x+x+y+y+x+y+B+y+B+B+B+B+C+C+B+C+B+C+B+C+A+C+C+A+C+C+D+C+C+C+C+C+C+D+C+C+C+B+C+C+A+C+B+B+y+B+y+y+C+y+y+x+y+x+y+y+y+x+x+o+y+m+y+y+o+x+m+y+m+m+t+m+m+i+f+f+h+h+k+i+0+g+8+8+g+8+8+8+8+b+8+6+5+5+|+6+6+6+6+7+[+[+}+[+(+}+", -"_._.8.8.j.4.4.4.4.|._.4.4.k.k.V.,+~+^+_+!+^+_+!+(+^+[+|+(+[+}+[+[+|+6+5+6+|+6+6+6+8+6+0+6+6+5+8+5+8+8+8+8+g+0+f+0+f+0+h+h+h+i+f+m+o+o+f+o+o+m+o+o+o+m+s+m+y+x+m+y+x+y+y+s+y+y+y+x+y+y+y+y+A+B+B+B+B+B+B+B+B+B+B+C+C+C+C+C+C+C+C+D+C+D+D+C+D+C+C+D+D+C+D+C+C+C+C+C+C+C+B+B+B+B+B+C+B+B+C+y+B+y+y+y+y+y+y+y+y+x+x+x+x+y+y+s+m+s+m+y+o+q+p+m+p+o+f+f+h+h+c+f+0+g+8+8+0+f+0+4+8+6+0+6+2+7+6+5+6+|+|+}+}+[+}+[+(+(+(+", -"4.4._.4.j.4.j.k.k.4.4.8.4.|.4.k.V.`.'+^+^+^+_+(+}+^+}+|+[+|+|+4+|+|+6+6+8+6+6+7+6+6+|+0+0+8+5+8+8+0+0+8+0+i+8+g+f+i+i+i+c+m+m+o+o+f+m+m+p+t+m+o+t+m+o+x+s+y+y+s+y+y+y+y+x+y+y+y+x+x+x+y+B+B+A+B+B+C+C+C+C+C+B+C+C+C+C+D+C+C+D+C+D+C+C+D+D+D+E+D+D+C+D+C+D+F+C+C+C+C+C+C+B+B+B+y+B+B+y+B+B+B+B+B+y+y+y+y+y+o+y+m+y+y+t+y+o+y+o+s+s+m+m+h+m+o+o+h+i+c+h+f+8+0+0+0+8+8+8+8+8+8+6+8+6+|+7+6+6+6+|+6+|+2+}+|+[+}+(+(+", -"k.4.4.4.4.8.j.k.4.8.8.4.4.4.4.4.k.Z.Z.'+(+^+(+(+[+|+|+|+7+7+7+|+4+6+6+6+5+6+9+5+8+b+0+6+7+5+f+0+8+8+b+f+f+c+c+f+i+i+i+f+m+o+i+m+m+m+o+o+s+s+t+m+s+s+x+o+t+x+m+y+y+y+y+y+y+y+y+y+B+B+B+B+C+B+B+B+C+C+C+C+C+D+C+C+C+C+E+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+C+C+C+C+C+C+B+F+C+C+C+A+C+B+B+B+y+y+B+y+y+y+y+x+y+y+y+x+x+y+m+m+y+s+s+m+t+o+m+m+q+p+k+p+i+i+i+f+0+8+8+8+0+8+8+6+0+5+6+6+8+6+6+4+6+4+4+[+|+4+4+|+[+(+}+(+^+_+", -"_.4.j.k.j.4.k.k._.4.4.4.|.k.4.4.k.F.S.-+[+|+|+[+[+6+|+|+|+|+6+|+6+6+8+0+5+5+0+8+8+b+8+0+b+0+b+0+b+0+c+i+i+h+f+f+f+f+m+f+m+m+p+o+t+s+m+y+o+x+o+y+y+m+x+x+y+y+x+x+y+y+y+y+B+y+B+B+B+C+B+B+C+C+C+C+D+D+D+C+D+C+D+D+D+D+C+E+D+D+D+D+D+D+D+D+D+D+D+D+D+F+D+C+D+D+E+C+B+C+B+C+C+C+B+B+C+y+B+y+B+B+y+y+y+y+y+m+y+y+m+y+y+s+t+m+m+m+s+m+p+f+i+m+i+i+g+f+c+b+f+9+8+8+5+8+0+4+c+0+6+6+|+6+6+6+|+|+7+}+}+^+^+|+}+(+}+_+^+^+", -"4.4.4.4.4.j.k.k.4.4.4.k.4.4.4.4.k.k.n.`.'+_+|+|+4+|+|+6+6+|+5+7+|+8+6+8+0+6+8+4+0+8+b+8+f+i+f+b+f+g+i+h+o+f+h+i+m+m+o+m+m+s+t+s+m+o+y+y+x+y+x+x+x+y+y+y+y+y+B+y+C+B+C+B+B+B+B+C+C+D+C+C+D+D+C+D+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+E+D+E+D+E+D+D+D+D+E+D+D+C+D+D+D+C+C+B+B+D+B+B+B+B+B+y+B+y+y+y+y+y+y+x+y+x+x+s+y+s+s+o+s+y+o+o+o+q+o+h+h+f+i+i+c+8+8+0+8+5+9+5+0+0+8+6+6+|+0+|+6+6+4+4+|+|+|+|+^+}+|+^+(+^+^+(+_+_+", -"_.4.k.4.4.k.|.4.j.j.j.j.k.j.j.4.4.4.4.S.`.!+6+6+6+6+6+5+6+6+6+5+5+5+0+8+0+6+0+8+0+8+i+0+g+f+f+f+0+g+i+f+o+o+m+p+m+m+t+s+s+s+s+x+x+x+x+x+y+y+x+y+y+x+B+B+B+B+C+C+B+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+E+D+D+E+E+E+D+E+D+D+D+D+D+D+D+D+C+D+E+C+C+B+C+B+C+A+C+B+y+C+y+y+y+y+y+y+y+y+y+f+x+s+m+x+s+m+m+s+p+m+m+m+m+f+h+f+h+i+g+g+8+8+8+8+5+7+6+4+8+6+4+4+6+6+4+|+|+4+|+^+4+[+^+}+}+^+_+_+)+^+!+'+", -"4.4.4.8.4.4.4.j.k.4.j.k.j.j.j.j.j.8.j.k.E.Z._+7+6+6+6+8+6+6+0+8+8+8+8+8+8+0+8+c+b+g+f+i+f+i+m+h+f+f+f+m+o+o+q+m+t+t+s+y+y+o+y+y+y+y+x+y+B+y+B+B+B+B+B+B+B+B+C+C+D+C+C+D+C+C+D+D+D+D+D+D+D+D+D+D+D+D+D+E+D+D+D+D+C+D+E+D+D+D+D+E+D+E+D+D+D+D+D+E+D+E+E+D+C+D+C+C+B+C+A+C+B+B+B+C+A+y+y+y+y+y+y+y+y+y+y+x+x+x+s+o+y+p+s+o+o+q+o+i+i+o+i+h+f+0+0+0+5+8+5+0+8+8+6+6+6+4+6+}+|+6+|+4+4+4+^+(+_+_+|+)+^+^+^+!+'+)+'+~+", -"4.k.4.4.j.4.4.j.k.4.j.j.j.j.j.4.8.j.8.4.k.E.=+}+6+6+5+5+0+5+8+5+8+8+0+0+g+f+0+f+0+g+f+f+o+i+o+p+m+o+o+s+s+y+t+o+y+o+m+x+y+y+x+y+x+B+y+B+x+B+B+B+B+B+C+C+B+C+C+C+D+D+E+D+D+D+D+D+D+D+D+D+E+D+E+D+E+D+E+D+D+D+E+E+C+D+E+E+E+D+D+E+D+F+E+D+D+E+D+D+D+D+C+D+C+D+C+C+B+C+C+A+C+B+B+y+A+B+y+y+x+y+y+y+x+x+y+o+s+t+s+m+p+p+m+o+f+h+o+i+i+i+i+c+i+c+8+8+8+8+6+6+6+|+|+4+6+4+^+4+4+|+|+^+^+(+|+[+^+^+^+^+~+(+'+)+~+)+'+~+", -"j.4.4.4.k.4.j.k.k.j.j.j.j.j.j.j.j.j.j.j.4.k.S.=+(+6+8+8+8+c+0+8+8+8+i+f+f+i+i+f+i+i+i+o+f+m+s+m+m+s+s+t+y+m+w+y+y+x+y+y+y+B+y+B+B+B+B+B+C+C+C+C+C+C+D+C+C+D+D+D+D+D+E+D+D+D+E+E+D+F+E+D+E+E+E+E+E+F+E+F+E+E+E+E+E+D+E+D+D+E+E+D+E+D+D+E+E+D+D+D+D+C+D+C+B+C+C+C+B+B+C+B+B+B+B+B+B+y+x+y+y+x+x+m+x+y+m+s+o+m+m+m+o+m+o+f+i+o+f+i+f+f+0+b+8+8+6+0+5+6+6+6+6+6+6+^+4+|+|+^+|+(+^+^+^+4+^+)+)+'+^+~+)+_+)+~+'+~+>+,+", -"j.j.j.|.|.4.j.k.k.4.j.j.j.j.j.j.j.j.j.j.k.|.j.S.=+[+5+5+8+b+f+g+0+g+f+i+i+i+h+m+m+m+m+m+o+m+x+s+t+s+y+m+y+x+y+y+y+y+A+x+B+y+B+B+B+C+C+C+C+C+D+C+D+D+D+D+D+D+D+D+E+E+E+D+D+E+D+E+D+D+F+D+D+D+E+D+E+D+D+E+D+E+E+D+E+D+E+E+F+D+E+D+E+E+F+D+D+E+D+D+E+D+C+C+y+y+B+B+A+B+B+B+B+y+y+y+y+B+y+x+y+y+x+y+m+x+s+m+s+p+m+m+i+i+h+f+h+h+h+f+0+b+f+b+6+0+6+0+7+7+6+6+|+4+|+[+^+|+|+^+|+|+^+_+^+)+^+^+)+)+^+'+)+~+)+)+-+~+>+,+", -"j.k.n.k._.k.j.E.4.j.j.j.j.j.j.j.j.j.E.E.4.j.4.k.S.=+5+f+f+f+f+f+g+f+i+h+h+p+p+p+m+q+o+y+y+x+s+y+y+y+x+y+y+y+y+y+B+A+B+B+C+C+A+C+D+C+D+C+D+C+D+D+C+D+D+D+D+D+D+D+D+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+E+E+E+D+E+E+E+E+D+E+D+E+D+E+E+D+D+D+E+C+C+D+D+C+C+B+B+B+y+B+B+B+y+y+B+y+B+y+y+y+x+m+y+x+y+m+s+m+m+p+m+q+q+i+o+f+f+h+g+g+8+0+b+0+b+8+6+8+9+|+6+[+5+5+|+|+[+^+}+_+}+[+^+_+_+^+)+^+^+'+~+'+)+<+~+)+~+,+>+>+,+-+", -"k.k.|.4._.j.k.j.j.j.j.E.E.j.S.j.E.E.E.E.E.j.8.j.k.S.(+0+g+g+f+f+o+o+m+o+m+m+m+p+s+x+s+s+o+x+x+x+y+y+y+x+x+y+y+B+B+B+B+C+C+D+C+D+D+C+D+D+D+D+D+D+D+D+D+D+E+D+F+D+E+E+F+E+E+E+E+E+E+E+E+E+E+D+E+E+E+F+E+E+E+D+E+E+D+E+E+E+F+D+D+D+E+E+D+D+D+D+C+D+D+C+B+C+B+x+x+x+y+B+y+C+y+y+y+y+x+x+y+x+x+m+m+y+s+s+m+o+h+f+m+h+h+f+g+f+0+g+b+8+9+5+8+6+6+6+7+5+5+}+[+}+[+^+}+_+^+(+}+_+^+~+~+~+_+_+_+'+)+)+)+)+~+-+~+)+>+>+>+,+", -"k.k.4.4.4.j.E.j.k.k.j.E.E.E.S.S.E.E.E.k.k.j.j.j.j.j.=+|+f+f+m+m+o+p+p+m+q+p+s+y+s+o+y+y+y+y+x+y+y+y+B+B+B+B+C+C+C+C+C+C+C+D+E+D+D+D+D+D+D+E+D+D+E+D+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+D+D+E+C+D+D+C+C+B+B+B+B+C+B+x+p+x+x+x+y+x+x+x+x+x+y+x+m+m+s+s+m+f+m+o+o+o+m+i+f+i+g+0+0+g+0+0+8+5+8+5+7+6+6+5+[+|+7+}+(+^+^+^+(+(+_+^+_+~+^+~+~+~+'+'+<+~+)+)+>+>+>+-+,+>+>+,+ +", -"|.4.4.4.j.j.j.E.F.k.E.k.j.j.S.E.E.E.E.E.E.k.j.j.j.j.E.!+6+o+o+s+m+o+y+s+y+o+x+y+x+y+y+y+y+B+B+B+B+A+B+A+C+C+C+C+D+D+D+C+D+C+D+D+D+D+D+E+D+E+E+E+F+E+F+E+E+E+F+E+F+D+E+E+E+E+F+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+E+D+E+D+D+D+C+D+E+B+B+B+A+y+C+x+B+x+p+m+m+x+B+y+y+y+x+m+y+m+x+m+m+s+p+o+m+h+f+i+f+c+g+8+g+8+8+6+8+8+8+5+6+6+6+|+|+|+[+[+(+}+_+_+^+^+^+^+^+^+_+~+)+'+'+'+)+~+)+>+>+~+'+,+>+,+>+@+>+-+>+", -"4.j.j.4.j.j.j.j.E.k.k.j.j.E.E.E.j.E.E.j.E.E.j.j.j.j.j.S.[+f+m+s+y+s+m+y+y+y+y+y+A+x+y+y+B+B+B+B+B+D+C+C+D+C+D+D+C+D+E+C+E+E+D+E+E+E+E+E+E+E+E+E+E+E+D+E+E+E+E+F+E+F+E+F+F+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+E+D+E+E+E+D+E+E+D+D+E+D+E+D+E+C+C+C+B+C+B+y+y+B+y+y+t+s+p+p+m+s+m+x+o+o+y+s+y+o+p+p+m+m+p+o+i+h+0+c+f+f+g+5+6+5+8+6+6+6+6+7+6+4+6+6+|+|+^+(+^+(+(+!+^+_+^+^+^+'+-+'+'+)+)+~+,+!+;+,+>+@+,+~+@+;+,+;+&+ +", -"j.j.j.j.k.j.j.E.E.k.k.j.j.S.E.j.E.S.S.E.j.E.E.j.j.j.j.j.Z.|+f+t+o+y+x+x+y+y+y+y+B+B+B+B+B+C+C+C+C+C+C+C+D+D+D+D+D+D+D+D+D+E+E+E+D+E+E+F+E+E+E+E+F+F+F+E+F+F+F+F+F+F+F+E+E+F+F+G+E+E+E+E+F+E+E+E+E+E+F+F+E+E+E+E+E+D+E+D+E+E+D+D+D+C+C+C+C+C+y+B+y+y+B+C+B+x+y+y+s+p+h+h+s+o+y+m+s+m+m+s+m+m+i+i+k+i+8+c+f+8+8+0+8+9+6+5+5+6+7+|+6+4+|+|+4+^+^+(+}+(+)+_+(+!+(+'+~+~+>+)+'+>+)+~+'+~+@+~+@+)+,+;+,+,+`.`. +`. + +", -"j.j.E.E.E.j.j.E.S.k.j.j.j.S.E.E.j.S.F.E.E.j.E.E.S.E.j.k.j.Z.0+m+y+y+B+y+B+C+B+C+B+C+B+C+C+C+D+D+D+C+D+C+D+D+D+E+D+D+E+D+E+E+E+D+E+D+F+F+F+E+F+F+E+E+E+F+E+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+F+E+F+F+E+E+E+F+E+F+E+E+E+D+E+D+D+E+D+C+D+C+C+B+C+B+B+B+y+y+y+x+y+x+x+o+m+h+f+f+s+m+o+t+m+m+o+o+i+h+h+f+f+c+8+0+b+8+8+4+8+7+|+4+8+|+7+|+5+[+[+^+^+|+_+_+'+^+'+_+_+^+~+'+'+~+~+,+~+,+>+)+>+)+>+,+ + +>+`.`. +@+`.`. + +", -"k.E.E.k.k.j.j.S.S.F.j.j.S.S.E.E.j.S.F.k.k.j.S.S.E.S.E.j.8.j.(+f+x+y+B+B+B+B+C+C+D+C+D+C+D+D+D+C+E+D+D+D+D+D+E+E+E+E+F+D+E+E+E+E+F+E+E+F+F+E+F+G+F+G+F+F+F+G+G+F+F+F+G+F+F+F+F+G+E+F+E+E+E+E+E+E+F+E+E+E+E+E+E+E+E+D+D+D+D+D+C+D+C+C+B+A+B+B+B+y+y+x+B+y+y+y+x+x+s+p+h+f+0+m+m+s+m+p+h+h+h+i+i+c+8+8+6+8+0+8+8+7+[+6+6+|+|+|+[+|+|+|+^+(+|+_+(+^+_+~+~+'+_+~+^+-+)+'+,+~+-+>+)+>+,+>+>+ + + +-+ + +;+`. +W. +`.V.", -"E.E.E.k.j.j.E.S.V.j.j.j.S.E.S.E.S.E.E.E.j.E.j.E.E.k.j.j.j.j.S.5+o+B+B+B+C+C+C+C+D+C+D+D+D+E+D+F+D+E+E+E+D+F+E+E+E+E+D+E+E+F+F+E+E+F+F+F+F+F+G+F+G+F+F+F+F+F+F+F+G+G+F+F+F+G+F+F+F+E+F+F+F+F+E+F+E+E+E+E+E+C+E+E+E+D+D+D+D+C+D+C+C+C+B+B+A+B+y+x+y+y+x+x+x+s+y+m+t+o+m+f+h+q+m+h+o+q+i+c+c+i+f+0+8+8+6+6+5+7+6+5+[+|+}+|+|+}+^+[+|+^+[+(+!+'+'+!+'+'+'+_+'+'+,+)+>+>+,+{+>+~+ +>+>+`.`. +,+`. +`.;+W. +W. +V.@+ +", -"k.k.j.E.j.j.E.E.S.E.8.E.S.E.E.E.S.S.E.j.j.j.E.E.j.E.j.j.j.j.j.!+5+x+C+C+E+C+D+D+E+D+D+D+E+D+E+E+E+E+E+E+F+E+E+E+F+E+E+F+E+F+F+F+G+F+G+G+F+F+F+E+F+G+G+G+F+G+G+F+F+G+G+F+F+F+F+G+F+F+F+E+E+F+F+F+E+F+E+E+E+E+E+C+E+C+C+C+C+C+C+C+A+C+A+B+y+B+y+x+y+y+x+t+t+m+t+s+s+q+o+f+m+p+o+c+f+f+i+0+0+0+8+8+6+6+6+b+6+6+6+7+7+[+[+|+[+}+(+_+^+_+_+_+(+~+_+<+)+-+'+~+)+~+~+'+>+>+,+>+>+,+>+,+>+ + + + +;+ + + +W. +W.@+W.W.W.", -"j.j.E.j.E.E.E.E.E.S.8.E.E.E.j.S.E.S.k.E.j.E.S.j.E.S.E.E.S.j.j.j.[+f+B+C+D+E+D+C+E+D+E+E+E+E+E+E+E+F+E+F+E+E+E+E+E+F+F+F+F+F+E+F+E+G+F+F+G+G+F+F+G+F+F+F+G+F+F+F+G+F+E+G+F+F+E+E+F+E+E+F+E+E+E+F+E+C+E+D+C+D+D+E+D+D+D+C+C+A+B+B+B+y+y+B+y+y+y+y+x+x+o+s+s+o+s+o+o+f+o+o+f+i+h+i+b+0+0+c+6+8+8+6+6+6+6+|+6+}+6+|+^+4+|+(+(+(+^+^+^+^+(+(+~+'+'+)+'+,+)+)+,+>+>+>+-+,+>+>+)+ +;+ +@+;+ + + + + +`.V.@+W.@+W.K.W.W.", -"j.j.j.S.S.E.S.E.j.S.S.S.E.E.j.;+E.E.E.j.S.S.S.E.S.E.E.S.S.j.j.j.E.[+m+D+D+D+F+D+E+F+D+F+E+E+F+E+E+F+E+G+E+F+F+F+E+F+F+G+F+F+F+G+F+G+G+G+G+G+G+F+G+G+F+F+F+F+F+F+G+G+E+F+F+F+F+E+F+F+C+E+F+E+E+E+E+E+C+D+C+D+D+C+D+C+C+C+C+B+A+y+y+B+x+B+y+y+t+y+y+y+o+o+s+o+m+m+m+m+f+h+h+i+f+0+8+f+8+4+b+5+5+7+|+4+|+|+|+}+^+[+^+_+}+|+_+'+~+~+'+^+'+^+_+,+'+)+-+-+>+~+,+,+-+ +>+$+>+,+,+ +`.`.W.@+W.W. +W.W. +W.V.W.@+V.@+@+W.", -"S.j.E.S.S.j.S.j.S.S.S.E.E.E.E.S.E.S.j.E.j.S.S.S.S.S.S.S.k.j.j.j.j.S.0+B+D+F+D+E+F+F+E+E+F+G+E+F+F+F+F+F+G+F+F+F+F+F+F+G+G+G+G+F+G+G+G+F+G+G+G+G+G+F+G+F+G+G+G+G+G+F+F+F+F+F+E+F+F+F+E+E+D+E+E+E+E+D+D+D+C+C+C+C+B+A+C+C+B+y+B+B+x+x+y+x+y+x+o+t+s+m+m+m+o+m+o+p+k+f+i+c+c+c+b+8+0+8+6+0+6+6+6+5+|+|+|+|+^+4+}+^+(+(+(+_+'+'+'+~+~+'+'+~+'+~+,+'+>+>+>+>+>+>+ +-+ + +>+ + +>+ +@+Z.V.`. + +K.@+V.V.@+V.K.K.H.W.K.", -"E.j.S.S.E.E.E.j.j.S.S.E.E.S.E.E.S.E.E.E.E.S.S.j.S.S.S.S.S.j.k.j.j.j.(+f+C+E+F+E+F+F+F+F+F+G+G+G+G+G+G+F+G+G+G+G+F+G+F+G+G+F+G+G+G+F+G+G+G+F+F+F+G+G+G+F+F+F+F+F+G+G+E+F+E+F+E+E+F+F+E+E+E+C+D+D+D+D+C+D+B+C+C+B+C+B+B+A+B+y+A+y+y+y+y+x+y+s+s+t+p+t+m+m+p+m+o+h+i+f+f+f+b+6+0+8+0+6+6+6+6+6+|+6+[+|+^+|+^+^+_+'+^+_+!+(+^+^+'+~+~+'+,+,+'+~+>+~+,+-+>+,+ + + +`. +`.`.`. +W.`.@+@+Q.W.W.V.V.@+W.V.@+F.W.W.W.W.K.", -"j.j.S.S.E.S.j.j.S.j.;+j.S.S.E.E.E.E.E.S.E.E.S.j.E.S.S.S.S.S.j.j.8.j.E.[+x+D+D+F+F+F+F+F+F+G+F+F+F+G+G+G+G+G+G+G+G+F+G+G+G+G+F+G+G+G+G+G+F+G+G+G+G+F+F+G+F+F+E+F+F+F+F+C+F+D+E+E+E+D+D+C+E+E+C+C+C+C+C+C+C+B+B+B+B+B+B+B+y+y+x+y+x+t+y+y+o+p+m+m+o+h+i+h+o+o+f+o+i+c+c+4+6+5+|+c+4+4+6+6+7+(+}+[+}+(+[+_+^+^+'+_+~+_+_+)+~+~+~+-+-+,+'+~+,+-+,+,+`.,+>+>+,+`. + +`. +&+ +`. +Q.W.V.W.W.;+K.W.W.F.@+F.@+K.H.H.H.W.", -"E.E.j.S.S.j.S.S.S.S.S.S.;+S.E.;+j.E.S.j.S.S.S.j.S.E.E.S.S.E.k.j.j._.j.E.f+B+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+G+G+G+F+F+G+G+F+F+E+F+F+F+E+E+E+E+E+E+E+E+D+D+E+D+C+D+C+C+B+B+C+B+y+B+y+B+y+y+y+x+s+s+t+o+s+o+p+p+m+o+i+o+h+i+m+c+i+b+8+0+6+6+5+|+0+4+6+|+|+6+|+(+(+_+^+(+(+^+^+)+^+!+)+_+^+>+)+~+)+>+>+ +,+;+,+>+,+`.`. + +@+`.`.`.`.`. +;+V.V.W.W.@+W.W.V.W.W.W.V.K.K.K.K.Q.W.K.H.", -"j.E.S.j.S.S.S.j.E.j.S.j.S.S.S.S.S.S.S.S.S.Z.S.S.S.j.E.E.-+k.E.j.j.j.j.j.(+m+C+F+F+F+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+G+C+F+E+E+E+E+E+D+D+E+D+D+D+D+C+C+B+C+C+C+C+A+B+y+y+B+y+x+x+t+s+y+y+y+s+x+o+q+p+o+o+i+i+c+o+b+f+i+c+c+|+4+4+6+8+8+6+|+|+4+|+6+|+_+_+(+(+^+^+_+^+)+^+_+'+'+^+~+~+,+-+,+>+,+-+,+-+,+ + + +`.-+`.`. + + +W.W.@+W. +W.W.W.V.Q.W.W.H.W.Q.Q.K.V.V.W.H.K.H.K.", -"S.j.j.S.S.S.8.S.j.j.E.S.S.S.S.Z.S.E.j.S.(+S.Z.E.S.E.E.S.E.E.E.E.j.j.j.j.j.5+x+D+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+E+F+F+E+F+E+E+D+E+D+D+E+E+E+C+C+C+C+C+A+C+B+B+B+B+y+y+y+y+x+s+o+m+m+s+o+m+s+m+q+h+f+h+f+c+8+f+4+0+c+b+4+^+|+|+6+7+7+|+^+|+^+|+|+^+^+_+^+'+'+^+'+^+'+-+'+~+,+,+,+-+)+'+,+ + + + +,+,+`.`. + +@+W.`.W. + + +V.W.W.W.W.W.K.V.K.K.K.K.W.V.W.K.K.H.H.Q.H.H.K.", -"S.S.j.j.S.!+j.S.S.8.j.E.E.E.S.S.;+S.j.S.=+Z.Z.E.S.E.E.S.E.E.j.j.j.E.k.j.8.S.f+C+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+F+F+G+C+F+F+F+E+E+E+D+E+E+D+D+E+D+C+C+C+C+C+A+B+B+B+B+B+B+y+y+v+y+x+s+m+x+m+s+y+o+m+q+o+i+h+k+h+i+c+0+c+0+4+b+0+6+|+'+|+6+|+6+[+^+|+^+^+4+^+(+(+^+^+)+)+_+)+'+)+'+'+'+,+,+~+,+ +>+>+>+ +,+;+ +`.>+ +W.;+`.`.W.`.V.@+W.W.W.@+H.@+V.K.@+K.W.W.W.K.K.H.H.K.K.Q.K.H.m.t.", -"E.E.j.S.;+j.j.!+j.S.S.S.E.S.;+E.S.8.S.S.S.S.S.E.E.S.E.E.E.S.E.E.j.E.j.j.8.j.5+x+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+G+G+G+G+E+F+G+F+C+F+E+C+E+C+D+D+D+D+D+D+C+B+C+B+B+y+y+B+B+y+y+x+x+y+s+y+s+t+o+q+o+p+m+o+m+h+k+c+0+k+c+0+b+8+c+6+|+4+0+6+^+^+|+|+|+|+|+^+|+^+^+^+'+_+~+'+'+)+)+^+)+'+)+)+'+,+`.>+ +,+-+`.,+,+ +`.;+ +`. +`. +@+V.;+V.W.W.@+Q. +W.W.H.K.W.K.V.K.H.K.F.K.H.m.H.s.w.Q.s.H.w.w.", -"S.j.S.S.S.j.j.(+Z.S.S.E.E.S.S.Z.S.j.j.S.S.S.S.E.S.S.E.E.E.V.k.j.E.j.j.j.4.j.E.f+C+G+G+G+G+G+G+G+G+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+G+G+F+E+F+F+E+E+E+D+E+E+E+E+E+D+D+C+C+D+A+C+A+B+y+x+B+y+y+x+B+t+x+s+m+s+t+m+p+m+m+h+k+p+i+c+0+0+c+0+c+4+6+6+6+^+^+6+c+^+^+!+4+^+4+^+^+!+^+^+^+^+^+_+_+)+^+'+^+)+>+>+>+>+>+`. + +,+`. + + + +;+`.W.`.V.`.W.W.V.@+W.K. +W.W.W.H.Q.K.V.W.H.H.K.H.H.H.K.H.K.t.w.K.H.s.w.m.m.s.", -"E.S.S.S.j.S.S.S.S.Z.S.S.S.S.S.S.S.S.E.j.S.Z.S.E.E.E.j.j.S.S.j.j.j.j.k.j.8.j.j.!+s+F+G+G+G+G+G+G+G+E+F+F+G+G+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+F+F+F+E+E+E+D+E+D+D+C+E+C+D+C+B+C+B+C+y+B+B+x+y+x+t+s+s+t+o+s+p+s+i+o+i+k+i+f+f+i+c+0+8+0+c+6+4+|+|+6+4+^+^+6+|+[+)+^+|+^+4+'+^+^+(+^+'+'+^+~+~+'+'+~+>+)+)+-+>+,+>+ + + + +;+`.W.>+ + +`. + +W.W.@+ +W.V.K.@+K.V.W.K.K.V.K.K.K.H.H.t.K.H.s.K.s.K.m.w.w.m.w.m.m.m.m.", -"S.j.S.S.S.j.!+Z.S.Z.Z.S.Z.S.E.S.Z.S.S.S.S.Z.E.E.S.k.j.E.S.k.j.E.j.E.j.4.j.8.4.k.6+B+G+G+G+G+G+G+G+F+E+F+G+G+G+G+G+G+G+G+G+G+G+G+G+G+G+F+E+E+C+E+E+E+E+D+E+D+D+D+D+C+C+B+B+t+B+B+y+y+t+y+o+m+s+m+s+s+p+p+p+o+o+i+f+i+i+c+c+c+i+b+4+c+6+6+4+|+|+|+|+^+'+^+6+^+4+-+)+'+^+'+^+^+!+'+'+^+'+'+'+^+,+'+{+>+ +>+)+ + + +W.W.H.W. +W. +`.`.`. +V.W. +W.W.H.W.@+V.K.V.K.F.K.F.H.K.K.K.w.Q.w.Q.m.K.w.s.s.t.m.K.w.m.s.q.f.q.", -"S.S.S.8.S.S.S.S.S.S.Z.E.S.V.E.E.S.S.S.S.S.S.S.E.S.j.E.E.E.4.j.j.j.E.4.4.j.j.4.4.E.m+F+G+G+G+G+G+G+z+E+E+G+G+G+G+G+G+G+G+G+G+F+G+F+F+F+F+E+E+E+E+C+E+D+C+C+C+C+E+B+C+C+B+B+y+y+B+B+y+o+y+t+o+s+m+p+m+o+i+m+m+i+i+i+i+e+c+6+0+0+|+}+4+4+|+|+[+(+[+[+|+'+^+|+^+4+-+)+!+^+~+^+^+)+)+'+)+)+)+~+'+,+,+>+>+>+ + + + +H.n.F.n.Q.>+V.W. +W.V. + +W. +W.W.W.H.K.V.H.H.K.K.K.K.H.H.n.w.K.t.w.t.m.s.w.q.s.s.m.m.w.m.m.m.m.f.", -"j.S.S.j.S.S.(+S.S.S.Z.j.E.E.E.j.E.S.S.S.S.S.E.V.E.E.E.E.E.8.E.E.k.k.4.8.j._._._.k.(+C+G+G+G+G+G+G+E+E+F+F+G+G+G+G+G+G+G+G+G+G+F+F+F+F+C+E+E+E+E+E+D+D+D+C+E+C+B+B+B+B+B+y+y+t+w+y+t+o+w+m+m+s+q+p+k+h+h+i+i+c+f+c+c+0+4+4+4+4+|+|+|+^+^+|+}+}+|+^+^+^+^+^+^+^+`.-+)+'+-+!+_+'+'+>+,+'+'+-+)+>+>+ +W.W.Q.H. +W.n.t.t.t.H.W.W.W.W. +W.@+W.W.W.Q.H.H.H.W.H.H.H.H.H.K.t.K.m.w.K.w.w.w.m.Q.m.m.t.q.m.f.m.m.m.f.f.f.f.", -"E.j.j.S.(+S.S.S.E.S.E.j.S.S.E.E.S.E.S.Z.E.S.S.F.E.j.S.l.k.j.E.E.k.j.j.j.j._.4._.4.j.f+C+G+G+G+G+G+E+E+E+E+F+G+G+G+G+G+G+G+G+G+F+F+E+F+E+D+D+D+D+C+C+E+C+B+B+C+B+A+A+y+y+s+y+m+t+y+o+m+o+q+i+o+i+m+i+8+c+i+0+c+c+c+4+6+6+|+^+^+^+^+^+_+_+^+^+<+^+[+^+)+^+'+'+>+`.-+>+)+>+~+,+>+~+'+>+>+>+>+>+W. + +n.n.H.H.V.K.2.t.t.t.}.W.W.W.K.W.W.W.Q.W.V.Q.Q.H.w.H.Q.Q.s.H.s.w.s.H.w.m.w.w.w.w.m.m.q.q.m.f.m.f.f.m.f.f.f.f.f.", -"E.S.j.j.S.;+S.E.j.E.E.E.E.;+j.S.S.j.S.S.E.S.F.E.j.j.S.F.j.j.E.k.4.j.j.j.j.8.j._.4.4.=+B+G+G+G+G+G+F+E+E+F+F+G+G+G+G+G+G+G+G+F+F+F+F+D+E+E+D+C+C+D+C+B+C+B+B+A+B+B+y+x+B+t+o+t+s+m+p+m+o+h+h+c+i+i+c+8+g+b+4+6+6+6+6+^+|+|+(+^+4+)+'+^+'+^+'+)+-+)+'+^+)+)+)+-+-+>+;+,+,+,+,+>+>+ +>+W.>+>+W.Q. +F.}.t.Q.W. +F.n.n.t.}.n.Q.W.V.H.@+K.K.W.W.K.K.Q.K.H.T.w.w.K.w.K.s.w.w.T.s.t.w.m.m.m.f.m.f.f.m.f.f.m.f.f.f.i.f.h.", -"j.j.S.!+S.E.S.j.j.S.E.E.S.E.j.S.S.E.Z.E.k.S.E.j.j.E.S.4.j.k.E.E.k.j.E.4.4.j._.` 4._.j.6+C+G+G+G+G+G+E+E+z+E+F+G+G+G+G+G+G+G+F+F+E+D+E+C+D+D+C+C+B+C+B+y+y+B+A+y+x+B+s+s+m+m+m+s+m+k+m+h+c+c+6+c+0+4+5+0+6+6+|+6+6+6+^+[+|+_+^+)+)+^+)+)+{+`.>+>+)+)+)+>+{+ +&+~+>+>+{+>+>+>+>+>+ + +H. +>+H.H.W.F.2.H.Q.Q.H.H.t.}.n.n.n.n.H.K.H.W.H.H.K.Q.H.t.s.t.w.H.t.s.m.m.m.t.s.t.w.m.s.m.f.m.m.f.m.f.f.f.m.h.f.h.f.h.i.f.h.", -"E.E.j.E.S.E.E.l.j.E.E.E.V.S.j.S.E.E.S.V.k.E.E.E.E.E.k.4.j.k.k.k.k.k.k.4.j.k._._._._._.S.i+C+G+G+G+G+G+F+E+z+F+G+G+G+G+G+G+F+F+D+F+B+E+D+C+C+E+A+B+B+y+v+B+t+x+x+s+s+t+q+q+o+m+p+k+f+c+i+c+8+8+6+6+|+|+7+|+|+4+4+4+^+^+'+_+'+~+)+)+)+>+$+`. +-+$+{+$+$+++$+$+$+++++++M.P.++W.>+,+`.W.t. +W.H.n.H.n.n.n.n.n.s.H.n.}.}.t.<.t.H.H.H.K.H.m.Q.K.m.Q.Q.s.s.m.w.m.s.s.s.q.m.m.f.q.m.m.q.f.f.f.f.f.h.f.h.h.f.f.i.f.f.h.f.", -"j.j.S.S.S.E.k.E.j.S.E.E.F.j.E.S.E.S.E.k.j.j.E.F.l.l.j.4.k.k.j.k.|.k.k.4.k.4._._._.` ` 4.=+t+G+G+G+G+G+G+F+F+G+G+G+G+G+G+F+F+F+F+u+E+C+D+C+B+C+C+B+x+y+t+x+y+t+y+o+m+m+o+o+q+o+m+h+b+c+c+c+4+6+4+|+|+|+4+|+^+4+4+^+_+^+'+~+'+-+-+)+>+>+$+>+Q.$+$+++++P.P.P.P.P.P.r.P.P.P.o.Q. + +W.W.t.W.W.Q.n.H.n.n.t.t.t.}.M.n.<.t.s.<.t.Q.w.H.w.H.m.s.H.m.w.w.w.q.M.q.w.m.f.q.s.m.m.s.m.f.f.q.f.f.f.f.f.f.f.f.h.f.f.e.e.e.e.e.", -"E.j.S.S.E.E.j.E.k.E.S.E.j.j.j.E.E.F.l.l.j.E.E.k.k.k.4.j.k.4.4.k._.4.j.k.|._._.` _._.|._.E.f+F+G+G+G+G+G+G+G+G+G+G+G+F+F+F+F+F+D+C+C+D+C+B+C+A+C+v+t+B+s+t+s+s+s+s+p+q+o+i+o+i+i+8+0+c+c+6+6+|+(+^+_+|+^+4+)+^+{+)+'+>+)+'+)+>+>+&+W.$+ +M.M.++P.P.r.r.r.o.r.r.d.5.~.~.5.o.Q.W.>+ +H.n.H.W.H.t.n.H.Q.t.Q.n.}.t.n.n.2.2.t.K.t.t.w.w.s.t.K.m.t.m.s.w.s.m.s.q.f.s.o.f.f.m.f.f.m.q.f.i.i.e.h.f.h.f.f.f.i.i.-.h.-.h.^.", -"E.S.V.F.F.E.j.j.j.E.V.k.j.E.8.;+E.E.j.j.l.l.E.k.k.|.4.4.4.4.4._._._.j.E.|.` 8.H _._.` ` j.(+y+F+G+G+G+G+G+G+G+G+G+G+G+G+E+D+F+u+D+D+C+C+A+B+u+q+k+c+x+s+q+t+p+p+o+o+o+o+c+k+c+c+6+8+6+|+6+|+|+[+}+^+|+^+)+{+)+{+)+)+>+>+>+>+ +W.$+M.P.M.M.P.r.r.d.d.~.~.P P P P A N P P 3.M.Q. +`.F.n.n.H.Q.}.n.H.H.n.s.<.<.s.t.n.t.<.m.w.w.K.w.w.m.m.m.m.m.m.s.m.s.m.t.m.f.f.q.h.f.f.f.f.f.h.m.h.f.f.f.h.f.h.e.-.-.e.0.6.6.^.6.", -"S.S.S.E.E.p.E.E.j.E.S.p.j.S.j.j.E.E.j.l.E.j.k.4.k.k.|.k.4.4._._._.4.4.4._.H 4._.|.` ` ` _.E.0+F+G+G+G+G+G+G+G+G+G+F+G+E+F+E+E+r+D+B+B+B+C+d+e+^+6+f+t+o+m+p+q+o+p+m+o+b+0+c+b+6+4+4+4+|+6+[+(+_+^+^+(+'+'+'+'+-+$+>+&+$+$+$+++M.P.P.r.d.5.d.~.~.A A A u u c c c 0 0 u N 3.M.$+W.W.W.n.n.Q.H.<.t.H.H.s.n.<.t.H.t.w.w.w.w.w.m.m.m.p.m.m.m.q.m.m.f.f.m.w.f.m.q.f.i.f.h.f.f.m.f.h.f.f.f.e.e.i.-.e.e.e.e.^.0.^.^.h.^.", -"S.S.E.E.S.E.j.E.E.V.E.k.j.j.E.E.E.E.E.E.l.j.k.j.E.4.4.4.4.k.4._._.4.k.4._.` j._._.` F ` _.8.S.y+F+G+G+G+G+G+G+G+z+F+G+E+D+C+B+k+B+t+C+B+u+++-+[+0+f+m+t+o+o+i+o+p+i+f+b+8+0+4+6+8+|+|+}+_+(+_+^+^+)+^+)+{+$+{+{+$+$+$+M.P.P.P.P.5.~.~.~.P A c ] ] % ] [ 0 0 0 0 0 u u N #.o.M.M.Q.H.n.2.n.t.}.H.Q.n.s.2.t.t.t.t.t.w.w.w.w.m.s.m.s.m.m.m.q.q.m.m.f.f.m.f.m.f.f.h.f.f.f.i.f.f.i.i.e.e.e.-.e.0.>.0.^.6.0.^.^.6.^.^.", -"E.F.F.E.j.E.j.S.E.E.E.j.j.8.E.j.S.V.E.F.4.4.4.k.k.|.4.4.k.4.4._.4._._._.` _.4._.` F H ` H _.j.8+E+G+G+G+G+G+G+G+F+F+E+C+u+r+e+4+e+e+t+B+v+n.S.5+f+f+q+m+m+m+i+f+k+k+8+8+8+6+|+4+4+|+|+[+_+_+(+'+^+)+{+++$+++++++P.P.P.r.r.5.5.P P c c c ] ] % % % % % [ 0 [ 0 j 0 u u P #.o.M.M.Q.W.t.n.t.<.n.H.t.s.t.m.w.w.s.s.w.w.w.m.m.t.m.m.m.q.q.q.f.f.f.f.f.q.f.f.f.h.h.f.i.i.i.f.e.e.i.e.e.>.e.6.6.^.9.6.6.-.6.6.6.6.6.6.", -"E.E.j.j.S.8.;+S.l.l.j.j.j.j.S.E.E.l.k.l._.8.4.k.k.k._.4.k.|.4._.4.4._._.|._.4._.` I F ` F _.j.!+B+E+G+G+G+G+F+G+F+F+E+r+e+3+^+6+|+|+c+s+r+n.=+f+y+h+i+q+q+c+c+f+h+4+8+8+6+7+(+|+4+^+^+[+^+)+^+)+{+++{+++#+#+P.r.r.d.d.~.P P c c % ) % % % % + & ) ) ) c 5 0 5 j u u N P r.M.Q.H.K.w.n.t.t.t.t.H.m.w.w.w.w.w.m.m.m.m.m.q.m.m.f.f.f.q.q.f.f.f.h.f.f.h.q.f.f.h.f.f.i.e.e.f.>.h.-.6.6.6.^.h.0.^.e.6.h.-.6.6.^.^.6.", -"l.E.p.j.S.j.k.F.k.8.l.j.j.E.p.l.k.k.|._._._._.n.|._.4.k.k._.4._.k.` |._._._.|.` ` ` H ` F H _.E.m+E+F+G+G+F+G+F+F+E+D+d+ +=+0+m+0+^+'+c+h+-+-+6+m+i+k+f+f+c+0+c+h+c+8+c+7+|+|+|+^+^+^+3+^+{+{+++++#+#+r.r.d.5.~.P A c c ] ] ] ] ] ~ [ [ [ % % [ % ) 5 0 j j 0 j u N #.5.P.M.H.s.K.s.t.t.t.s.s.s.w.m.s.m.m.m.m.f.m.q.f.q.f.m.m.q.f.f.q.h.m.h.i.q.f.i.i.f.f.i.e.>.e.6.6.0.0.6.h.^.0.6.^.6.1.^.6.6.6.^.6.6.^.6.", -"k.j.l.j.l.j.E.l.4.j.j.j.E.E.4.|.l.|._.8.4.4.k.k._._.j.k.k._.4._._.` _.|._._.|.` F I F _.` F H 4.[+x+E+z+G+F+F+F+E+E+C+v+-+!+o+x+i+4+>+^+0+|+W.^+i+h+c+c+0+8+0+8+c+8+6+b+7+7+^+|+^+{+{+++#+#+#+P.r.d.d.~.P A c c c ] ] % ] ] ] h h h c c 0 [ % % ) ) [ 0 0 u p j t u u N 5.M.M.H.s.H.s.w.w.s.w.T.w.w.m.q.f.q.q.f.q.f.q.f.q.f.h.h.h.f.f.q.f.f.q.i.i.i.e.0.e.6.e.e.0.>.6.^.6.-.0.^.0.^.0.6.6.0.0.^.-.h.6.-.6.6.^.", -"E.k.j.k.j.k.l.k.k.j.l.j.E.l.|.4.4._.8.4.4.k._._._.k.k.4._._._._.` _._.|.|.|.` F ` H ` _.F H F 8.E.m+D+F+F+F+E+E+F+C+E+r+)+=+o+y+s+e+>+-+6+0+`.-+^+3+3+^+4+6+8+c+8+6+8+0+6+4+4+{+{+++#+#+r.r.d.~.P P c c ] ] > > ] ] l l d w w l l h ] c C g % % ) ) [ 0 j j j j u u N P 3.o.M.s.w.s.m.m.Q.m.m.m.m.m.q.q.q.q.q.q.h.q.f.q.m.f.m.m.q.q.i.i.i.h.f.e.e.e.5.e.e.^.6.6.^.i.>.e.e.6.e.0.>.6.h.-.h.^.6.6.6.6.6.6.-.6.6.", -"k.E.l.l.j.S.k.4.l.4.4.k.l.4.4.j.4.|.4.j.4.4._._.4.E.n.|.F _._.` H _._.` |.` ` I F F ` ` I F F H j.5+x+E+F+F+E+C+C+C+B+r+^+=+6+q+p+k+$+F.^+6+^+-+-+>+>+!+|+|+8+4+c+6+|+6+|+3+#+#+#+P.5.d.~.P c c ] ] % % % ] ] d w w w w w w A c ] ^ [ [ A y ) @ & ) ) [ 5 j j j j u u K N 3.P.o.Q.m.s.Q.q.m.m.m.m.q.m.m.m.f.f.h.q.m.f.h.q.q.h.f.f.f.i.i.e.i.6.e.e.6.^.e.^.e.^.0.e.6.e.>.e.^.0.^.0.e.6.6.6.-.6.^.6.6.V h.6.6.-.6.", -"E.l.l.j.j.F.l.j.k.4.k.F.|.8.j.k.k.k.|.4._.4.4.4.4.k.` ` ` ` _.F _.` I ` ` ` ` ` F F F F F F ` H _.S.m+D+E+E+E+B+A+B+B+o+c+^+-+c+p+h+Q.n.[+0+^+-+-+V.Z.'+|+6+|+|+4+4+6+^+4+:+#+r.d.P P c c ] ] ] % % > ] h P R Z Y R w C l ] _ ] ] ; % ] W j $ % % ) ) 0 0 j u t p u u N N 3.o.Q.M.m.m.m.w.q.q.m.m.m.m.m.f.f.q.f.f.h.f.o.i.f.i.i.i.h.i.e.e.6.e.6.0.0.6.6.6.0.e.0.:.0.^.e.0.0.0.e.^.^.6.-.6.9.^.6.-.6.^.:.^.6.6.6.", -"k.k.l.|.j.k._.8.|._.k.E.|.4.k.k.|._._._._.4.4._.|.|.` ` ` _._.H ` ` F F ` ` ` F ` F F q F F H F _.j.[+x+D+C+u+r+y+y+s+p+h+4+`.^+3+{+n.k.(+f+4+^+!+=+!+(+|+|+|+|+^+|+|+|+4+#+r.P A ] % % ] + > ] h l n C C R R w d c ] ] > % % % ] % % c T g $ % ) ) 0 0 t 0 u j u u N N 3.o.s.Q.s.m.m.m.m.f.f.m.h.h.m.f.h.f.q.q.q.f.i.i.i.e.i.e.-.e.^.e.-.6.e.0.e.e.e.6.6.e.0.0.6.6.^.0.0.0.h.6.^.9.6.>.:.0.:.6.6.6.:.0.^.:.:.", -"k.l.|.4.j.4.8.|._._.4.k.|.k.k.|.` _.` ` _.k._._.|.` ` ` H _.` ` ` F F ` _.` ` F ` F F H q q F F F _.S.f+v+r+g+y+y+x+s+s+p+e+`.-+>+`.E.Z.0+0+0+6+5+(+[+|+^+}+(+[+|+^+[+^+3+#+~.c ] % % $ ] h l w w w R h R C c ] ] > % > % ; % ] ] ) % c P c & % ) ) 0 0 0 j u p t u N K }.s.M.o.q.f.m.f.f.h.m.m.m.f.h.m.f.q.q.f.f.i.i.5.0.e.^.0.0.e.e.6.6.e.^.0.0.6.6.6.^.6.^.6.6.-.6.^.0.6.^.6.6.0.6.:.6.:.0.6.^.6.^.6.:.1.1.", -"k.k.4.4.j.4.4._._.4.k.|._.|.|._._.` ` _.4.|._._._.` ` F _._._.` F F F ` |.I F ` F F I q q H q ` F ` |.)+e+4+m+x+t+t+t+s+m+e+-+=+Z.=+=+(+0+e+4+4+6+|+)+,+^+}+_+!+[+^+}+4+{+#+P ] ] ^ l n l T R R C l c ] c ] ) % % % & % % ; % % ] ~ ] A T c $ % ) ) 0 u p t j p t u N N 3.}.Q.s.s.h.f.h.m.h.f.q.f.q.q.q.i.i.i.i.i.e.e.e.0.e.^.e.6.0.0.0.0.0.0.0.0.0.e.e.0.0.0.e.6.e.6.6.^.6.6.^.6.6.6.:.6.:.^.1.1.:.1.:.^.^.:.", -"4.j.4.j.8.k.|._.` 4.|.4._.` _.` _.+.` _._._.` |.` ` F H _._.` ` ` F F _.` F F F I F q q H q H F F ` |.n.n.!+o+o+s+y+m+p+i+0+|+!+[+[+[+8+c+{+{+)+^+3+>+V.!+^+_+^+~+^+^+^+)+++o.h n C w R w C l c c ] ] ] % ; % ] % % % % > % % ] % % ) A P C $ % % % ) 0 j j u t u u u N #.3.q.o.M.m.f.m.h.f.q.q.f.q.f.i.e.e.5.5.0.6.e.0.0.^.6.h.6.^.e.0.0.0.0.^.e.^.0.6.e.^.1.^.1.0.^.6.^.6.6.6.6.6.6.^.0.6.6.1.:.1.0.:.0.:.:.^.", -"_.4.4.k.4.k.|.|.` 4.4._.` _._.` _.` ` _._._._._.` ` F _._._.` F F F ` ` I F F F F F q q q q H F q F ` +.2.=+f+o+m+q+o+k+c+c+0+6+6+4+)+4+4+$+Q.-+-+)+Q.H.-+!+_+'+~+^+)+)+)+++N.T w w C l ] h ] ] ] > % % % ) ) % ] % ) % > % % ] ] ) ] A T g % ) ) 0 u u j t u N N N #.3.}.s.o.m.f.q.q.q.q.i.e.e.e.e.5.1.1.d.1.6.6.e.0.0.6.e.0.6.e.6.6.e.e.6.0.e.0.0.0.e.0.0.1.0.^.e.^.6.^.:.^.6.:.^.6.^.^.6.^.:.^.^.:.^.:.^.", -"|.|.|.|.|._._._.` _.j._.` _._.` _._.` _._.` ` ` F ` H _.` ` F F F F F ` I ` F F q q q H q q F q F F O O B |.^+f+h+i+k+h+c+0+0+6+c+3+>+)+6+-+<.n. +$+>+n.`.)+~+)+'+'+)+)+{+:+#+T n h ^ ) ; > ] > % % % % ; % % & ) ) % % % % % ] [ c P >.g & % % [ ) 0 u u t u u N N N #.3.o.M.Q.q.q.f.f.i.e.e.e.e.e.e.0.0.0.0.0.6.h.0.0.0.6.6.e.6.6.6.h.6.6.e.^.6.0.0.>.6.^.0.>.1.0.6.6.^.:.0.9.:.e.^.^.:.6.:.:.^.^.6.:.:.:.:.", -"` |.k.|.|.` ` ` ` _.j._.` ` ` ` _.` ` ` ` ` |.` F ` _._.` ` F F F F F F ` ` q F q q q q F q q q q q s I 6 G V.6+0+f+c+c+4+6+5+|+4+$+n.>+)+>+n.<.W.W.$+n.H.>+>+>+>+ +{+>+>+++#+A ^ & $ ; & % % % % ~ & $ ) ) % @ = ) ; % % + % ] [ c A >.u % % % ) [ j u j t u N N N N K 3.s.T.M.T.f.i.i.i.e.e.^.6.9.e.0.0.e.e.e.6.h.6.6.6.h.6.h.-.0.1.e.6.6.e.e.6.0.^.e.e.6.6.6.0.1.^.6.6.^.6.^.:.6.6.^.(.^.^.9.^.:.^.6.^.1.:.", -"_._.` |.|.` _.F ` _.k.|.` |.F H _._.` F ` ` I F F ` ` I I F F q F F F F _.F q q q q q q q q 7 e e e e v : { 2.-+c+8+6+6+6+|+4+6+4+)+n.W.)+>+t.2.n.H.Q.t.n. +,+ +W.$+>+ +>+#+#+A ) ) % % % ] % @ % ) = & & % ) & & ) ) % + % % % ] ] ] P P A c % % ) [ 0 t u u u u u N N #.3.q.M.T.o.e.e.>.0.0.0.0.1.0.0.e.e.6.6.6.h.6.6.h.e.6.6.6.6.0.1.0.0.e.0.6.-.6.6.6.6.^.^.^.0.>.0.^.6.6.^.:.:.:.:.:.6.:.6.!.6.^.:.^.:.:.^.", -"_._.` |.` ` _.` ` 4.|.|._.` ` _.` F F H F I ` F ` I F F F F F F F F F F ` F q q F q b b s e e e i : e | : = v F.(+}+4+|+_+|+^+)+^+{+n.n.-+W.n.2.H.H.t.}.n.Q. +>+W.V.`.Q. +$+#+P ^ ) % & ) ) $ $ % ~ ) ) ) g { ) [ ) $ + + % % ] ] c P N c % % ) 0 u u u u u N N u N N 3.s.M.N.q.0.0.1.0.1.0.^.0.1.0.e.e.e.6.0.6.6.6.6.6.h.6.e.0.0.6.6.0.e.6.6.6.0.6.^.0.0.0.6.:.:.0.^.^.1.0.^.:.:.1.:.^.:.^.:.V 6.!.^.!.:.!.", -"_.+.` |.` _.|._._.|.` ` ` ` ` ` ` F F I F I F ` I I F F F F q F q H F ` F F q q F s b b 4 i | : : - | 4 - @ 6 |.=+[+|+|+^+^+4+)+)+>+Q.n.Q.>+Q.n.H.H.Q.<.}.H.`.W.`.Q.W.W.W.++#+>.[ ~ ~ & & ) ) ; ) = } [ ) ) } g [ ] ) % % % c P P c + % ) c 0 u u u u u K K N #.3.M.P.P.0.e.0.0.e.0.0.0.e.0.h.6.0.6.1.0.e.e.0.e.e.6.e.6.0.0.0.^.6.6.e.-.e.^.1.1.:.^.6.^.6.0.^.6.6.^.:.[.1.^.6.:.[.:.:.:.^.6.:.^.!.^.:.", -"_.` _.` ` _.|.` ` ` ` ` ` ` ` F ` H F F F F q F F F ` F q q q q F F F F q q 9 q s e | i : { : - ( | | e ( @ { v F.^+^+^+!+^+)+)+)+)+Q.<.H.W.H.<.H.H.n.<.2.n. +Q.W.W.W.H.H.M.#+5.] { ) ) $ ~ ] h ; ~ } 0 [ [ } 0 [ ) ; % + + & @ % % u N [ & ) [ p u u u u u K N N N 5.M.N.u.0.6.6.0.6.6.0.6.6.0.h.6.0.6.0.0.0.0.1.1.0.6.0.6.e.0.0.^.6.6.0.0.0.0.1.1.1.0.:.:.:.:.^.^.:.:.:.:.:.:.:.:.:.(.^.!.!.V :.(.:.:.:.", -"` ` |.` ` |.|.F ` +.` ` F F ` F F F I F F F F ` F ` ` I q q q q q F q q b 9 b e i : : { { - - : ( | | e ( @ - 6 2.`.)+^+)+^+)+>+)+$+W.}.n.W.W.<.n.H.H.n.n.H.W.W.W.K.W.H.K.$+#+r.% { { g & } [ [ ~ [ [ [ ] [ [ ) ; ; + + + % % % % % % c N c % % ) 0 0 0 t K u u K N N #.3.P.u.5.0.e.6.6.0.e.0.1.6.6.0.e.e.e.x.6.6.0.1.d.0.0.6.>.0.0.0.6.6.0.1.^.6.^.6.1.^.^.0.:.1.^.9.(.:.:.:.:.:.(.^.:.^.!.:.^.^.!.:.(.R :.(.", -"_.` _.` ` ` I I F ` ` ` ` F ` H F F F F F F F ` ` ` I F q 9 H q ` F b b 7 7 | : : { { - ) : , | | 4 4 7 | & @ { G n.,+)+>+>+-+>+>+$+H.n.n.n.W.o.n.W.H.n.n.t.Q.H.W.K.H.Q.K.*+*+P.) { } } = ) [ { { ~ ] [ % ] ; % ; + % % > ] % % c N c % ) 0 u u t t u K u K #.#.o.P.q.0.1.0.6.0.0.e.0.0.0.1.1.0.0.0.0.6.i.0.0.0.0.6.6.9.:.0.1.1.1.0.1.0.1.^.6.1.:.:.^.:.1.^.6.:.^.:.:.:.:.(.^.:.^.^.!.(.:.V ^.(.:.:.R ", -"|.` +.I ` ` ` F ` I O ` ` F F q q F F F F F ` F ` I F q q q H _.` b 7 4 | ( : : ) ~ = = - - ( | 4 4 b e | = % = 6 2.W.-+>+>+Q.>+Q.W.W.n.<.F.V.n.t.H.H.w.H.H.H.Q.w.Q.T.K.T.$+P.u.g { a ~ ~ [ ~ ) & & % > + ; + % % % % % % % ] ] ] u P [ % % % 0 u u t K u N N K N #.o.o.i.e.0.1.1.6.0.0.6.0.1.1.0.0.0.0.6.6.6.1.1.6.6.6.6.0.0.~.[.~.1.:.0.^.6.6.:.9.^.6.:.1.(.:.:.0.:.6.^.9.(.:.:.(.(.:.:.:.:.:.R (.R :.:.", -"|.` ` F I F I ` F F F I ` I q q F F F F F ` F F F F b q 9 F ` |.O e 7 | ( - = { { { - ( ( | | | 4 4 1 b | = & : O n.`.`.W. +W.W.W.W.H.n.Q.H.H.H.K.K.w.H.m.w.H.K.w.s.T.H.Q.M.P.y g ~ ) % ; $ $ ; + % & ; % + % % % % % ) ] % % [ N P ) ; % ) u u t K u K K K N #.3.P.o.5.6.0.d.1.6.6.0.6.6.0.0.0.0.6.6.6.6.6.6.1.0.0.9.6.1.0.1.[.~.1.6.6.6.:.^.:.g.:.6.^.^.1.^.^.:.(.(.:.!.6.!.^.:.!.:.:.T (.:.:.R (.:.:.", -"` +.` ` ` ` I F F F F I F I F F F F F q F F F F F q q q q q ` I b | ( - - { = - = ( ( < | | | | | b b 8 7 { % & - e |.F.$+W.W.W. +H.K.H.t.Q.w.K.w.K.Q.w.T.t.w.q.T.t.T.s.s.M.o.N.A % ) $ ; ; % + + + @ % [ % > % % % % ) ) 0 0 [ [ [ 0 N u % % % ) t K B K K u K N K N 5.o.o.e.e.0.0.1.6.x.6.u.1.6.0.0.0.h.6.6.6.x.1.9.9.1.0.1.1.1.d.1.1.0.:.:.6.^.:.:.:.:.:.:.:.[.:.[.^.:.:.(.^.!.V !.6.T :.(.(.(.R :.(.R R !.", -"F ` F ` ` ` I ` I I q F I F F ` F F q q F q q s F q q q q F s i | ( , { = { ~ ( : ( ( | | 8 7 7 e 4 b b 4 ( $ = 6 +.F.W.Q.W.Q.W.Q.H.H.H.Q.s.K.Q.w.w.K.m.s.w.s.q.m.m.s.T.s.o.N.u % + + + + + % [ 0 [ % % % % % [ 0 c c [ c c u W c + % % [ B K K K K K K N N #.5.o.5.6.0.0.6.6.0.0.9.0.0.6.1.u.0.6.6.6.1.9.0.1.[.1.:.1.1.1.1.1.1.1.^.:.0.^.0.^.:.6.:.:.:.:.^.(.^.:.:.R :.!.9.!.(.(.:.R (.(.R :.(.!.(.(.", -"` ` ` I ` I F I F F F I F q F ` I F q q F q F s F q q F s e e | - - = ~ = { = ( ( : : | ! | 7 | | 7 7 4 b | = & & : S t.H.Q.W.Q.Q.H.K.m.s.s.m.T.m.T.w.q.T.q.q.T.m.q.q.q.Q.T.q.M.P + + $ % 0 c [ % % $ ) ) ) c c 0 c u N #.P % % % % 5 . .K K K K K N N #.o.N.e.0.6.e.0.0.6.0.e.6.6.6.6.6.6.6.6.6.6.6.9.[.1.[.1.1.1.1.0.~.1.:.1.0.:.0.:.(.:.:.^.^.:.^.(.:.:.!.:.^.!.:.(.(.:.:.(.:.R (.:.!.!.R (.!.", -"` ` I I I I F F F q F I F F ` +.I I q F q q q s q q q I s e ( : = = = { = { = - ( ( ( | | | 4 7 | 7 7 7 7 e { & & : p <.K.H.W.Q.Q.s.H.w.w.s.m.w.m.T.m.m.w.m.m.q.q.m.m.q.m.H.s.++#.+ + % + ; % [ 0 c % ) ) [ { 0 [ [ 0 u N P P c % % @ } B }. .K .K #.#.5.P #.3.i.e.6.6.6.0.6.6.9.6.6.6.1.1.1.e.6.0.0.0.6.1.[.1.[.[.[.[.0.0.1.1.:.^.:.:.:.:.:.:.:.:.^.:.:.:.:.:.^.!.^.:.!.:.R :.R :.:.:.R :.V !.!.!.R ", -"I ` F I I I F s F I I ` I F I I q F q q q b q q b q q I v | - { = { ~ ) $ $ & { - : ( ( | 7 | 7 1 7 b 1 9 | ( @ & = 6 O n.s.w.T.m.Q.q.q.T.q.Q.q.s.m.m.m.q.q.T.q.m.m.t.H. +Q.Q.$+5.% % % % ) [ % % [ [ [ ) ) [ } [ 0 u u u u N N N ) = : p ..}.o.}.#...#.K #.3.#.5.N.3.e.6.6.0.u.1.1.0.6.0.1.1.[.9.9.1.1.9.9.9.9.[.[.1.1.1.1.^.>.:.1.1.:.^.:.:.6.:.:.(.(.:.(.:.:.^.!.:.:.(.V !.(.:.R (.R !.(.R (.!.!.Y ,.!.", -"I F F F I I F q F F I F F s F s q q q q 9 9 b b b q q I 6 : { ~ & ) ~ % ; + . % = - - ( < | 8 | 7 4 b 7 b 7 : = & = ( r <.w.w.w.m.T.w.m.m.q.q.T.m.m.m.q.m.m.m.w.K.K.%+>+{+&+$+#+r.; % % % % ] ] [ c [ [ [ [ c ) ) c 0 u u u P c u u 0 0 5 B G ..n.t.o.}.}.}.}. .#.#.#.5.i.e.6.6.0.1.1.5.1.1.1.1.1.0.1.9.9.:.1.:.1.0.6.(.[.1.:.1.1.:.:.1.:.(.[.[.(.:.:.:.:.[.(.:.!.^.(.:.:.:.:.(.(.!.!.(.(.(.R (.(.R ).).).R ,.,.", -"I F F I I I F q F s F q q F q b q b q 9 9 q q b q q F e : } ) & % % ; . $ . & = - - < | 8 1 8 8 1 4 b | - @ & - r S t.w.m.w.m.m.m.q.q.q.m.h.T.m.w.m.K.@+@+ +]+ +$+++$+++#+u.% ] [ [ [ [ 0 c c [ u c [ [ c u u u u c N u u 0 t t M .}.}.<.o.M.t.3.}.}.}.}. .}.3.3.i.5.0.1.0.1.1.1.0.u.1.1.1.1.6.6.9.9.1.1.:.6.:.1.:.[.:.:.^.1.^.(.:.:.:.(.:.9.V ^.(.(.(.!.^.!.:.(.R :.(.R :.(.R (.!.!.(.R (.!.R (.Y ).Y Y ", -"I F F I I F s q s F F q q q q q q e q 9 9 q q 9 q q s i : - ~ . + + ; + + @ @ @ = - ( < 4 4 4 1 1 4 b | - $ $ = ( M f.w.m.m.T.q.m.q.m.m.w.p.w.K.@+]+$+>+$+$+$+++{+++++++#+~.] [ c u c c c j 0 c t u 0 u u u u 0 0 u u u M .. .#.}.}.}.}.<.}.3.o.n.}.n.}.}.o.}.o.o.5.0.1.[.d.0.u.0.0.1.1.1.1.1.:.6.(.1.0.^.1.6.(.:.:.[.:.:.6.(.:.[.:.:.:.(.(.(.(.:.:.:.(.!.:.:.(.(.:.:.(.(.R (.!.R !.(.!.Y ).).Y ).).Y Z Y ", -"I F F I s F F q q F F q q q e q q q q q 9 q q q b s i 6 } $ ; + + + . + + . + . . @ = - , | | ! 2 1 b 4 e : & @ @ : r +.m.m.m.m.K.m.m.w.w.@+@+<+&+&+$+>+++M.$+++M.P.++$+#+#+P [ 0 c [ u 0 0 c u u N u c 0 0 u 0 p B M }.}.}.<.}.}.}.}.}.3.}.}.}.3.o.t.M.M.++++M.M.o.e.e.1.1.1.0.1.0.0.1.[.1.[.6.6.:.0.1.[.1.(.(.9.[.[.(.(.:.:.:.[.:.:.:.^.^.(.(.(.R (.(.(.:.:.(.R (.(.R (.(.(.,.).).).R (.R ).Y R Y Z @.Y Z ", -"I F F F F F e F q F q q q q s s q e 9 9 q 9 b 9 b e 5 } ~ + + + + + + @ @ - ! 4 4 7 4 7 | 7 | & & - 6 O h.m.q.q.T.K.@+@+@+<+&+$+ +&+++T.M.M.o.N.N.N.N.N.*+P.c ] 0 c 0 u u N u u u N 0 u 0 0 p G ....}.}.n.}.n.}.n.}.}.}.M.}.M.o.M.M.M.++++#+#+#+P.r.5.0.1.1.9.1.6.:.0.0.[.:.1.^.9.:.9.:.[.1.1.[.[.[.[.1.:.:.:.(.[.:.:.:.(.(.!.(.(.(.[.(.(.R (.(.(.R (.(.).!.R !.R ).).).).Y Y Y Z Y Y Z U Y ", -"F I F s F q F q q q q q q q q q e q q b q b q b e 6 = ) + ; + + ; $ + + + + @ - , | 4 4 4 4 7 8 4 - @ @ & a r <.f.m.m.K.w.H.T. +&+&+T.N.o.q.o.N.o.u.o.u.u.u.P.P.r.c 0 c u K u N N u 0 0 c 0 j B S <.<.n.n.M.n.t.n.M.n.}.M.}.M.n.M.M.M.++$+++++#+#+#+#+u.0.[.1.6.0.[.9.:.1.1.:.1.1.:.1.:.6.0.1.:.(.(.(.[.[.:.(.:.:.:.(.(.(.:.:.(.!.:.(.[.(.(.(.(.).!.(.(.!.(.R (.(.(.).).Y ).Z Z ).Y ).Y Y U U Y U ", -"I F q F q e q q s q 9 q q b e q b b b 9 9 9 b 7 | { % % + + + + + + + . + + . @ - , | | 4 8 4 8 | - @ = & - r ..q.q.q.T.T.Q.T.N.M.q.q.i.i.u.e.e.i.h.i.u.u.u.N.N.3.c N N u u P c c 0 [ j B .}.<.<.t.}.n.n.t.}.M.}.M.H.t.M.M.M.++++++++#+++#+#+#+#+#+r.r.0.1.0.6.6.:.9.9.[.1.0.:.1.:.1.(.:.^.1.:.(.(.:.:.(.1.(.:.(.:.(.(.(.(.!.:.(.:.(.(.(.(.(.(.!.(.!.(.!.).).).Y !.Y ).Y ).Z X Z X Y U Y U U U Y ", -"I I q q q q s q s s b b q b q b b q 9 q 9 9 b e { % + + + + + . + + + @ @ - - < 4 | 4 1 2 8 | = @ @ ( r +.w.m.s.s.s.q.o.q.i.i.i.i.x.h.e.x.h.x.h.e.0.0.o.u.5.P P u N c c c 0 j B +.<.<.t.t.n.M.n.}.t.}.n.n.n.n.M.M.++++++++#+#+#+#+#+#+#+P.r.r.u.1.1.0.6.:.6.9.[.:.0.:.^.0.:.9.(.1.:.[.:.[.).[.(.:.:.[.:.(.:.(.(.(.:.:.:.!.!.!.(.R (.!.R (.!.R ).).).(.R ).).).Y Z Z X Y z Y Y U Z Q w '.U Z ", -"I q s q q q q F q q b 4 b b q b b q b b b 9 4 | ) + + + + + . @ + + + . + + + . @ - , ! | 7 8 1 8 | - @ @ - i +.m.q.f.q.q.h.q.e.h.h.i.i.0.u.e.u.i.6.h.u.x.6.i.P.5.A A c c [ 6 B G ..<.n.n.t.t.o.}.}.n.t.n.n.H.H.M.W.++++++#+#+#+#+P.r.r.u.u.u.u.u.1.1.1.1.1.6.6.^.:.[.[.:.:.:.1.1.1.(.9.:.[.[.[.[.(.(.(.~.).[.(.(.(.!.(.(.!.R (.:.!.(.!.(.(.).).).(.R ).Y ).Z Z Z Z Z Z Z X Z U U Y Y Z X U Y U Z ", -"q q q q q q q s e q b 9 q b b q b 9 q 9 1 1 | : & + + + + + + + + . % % . . + + @ @ - , | 4 4 8 4 4 | - @ $ - a +.m.q.h.h.q.h.x.h.i.i.x.h.h.i.5.0.e.u.e.e.e.u.i.r.d.c [ 0 p K ..<.<.<.M.s.t.H.Q.n.n.n.o.M.M.++M.M.++++#+#+#+P.P.r..+u.u.[.d.u.d.[.1.0.6.1.:.[.:.:.6.6.^.:.1.1.1.1.[.[.[.(.(.:.[.(.(.(.(.(.(.[.(.(.(.(.(.).!.(.(.(.!.(.!.R (.).!.(.).).).Y ).Z ).Z X Z Z z Y Z Z X U X U Z U '.U Y U ", -"q q q b q q q q q b 9 q q q b q b b b 9 1 1 | ) @ + + . . @ & + + + . @ . , , | 4 4 4 1 e ( - - ( v 2.m.q.x.q.i.e.u.h.i.e.e.h.h.i.e.e.e.u.e.6.h.i.P.5.0 u M .}.}.t.n.t.t.t.n.H.M.M.H.++W.++++$+++++P.P.P.r.u.r.u.e.1.1.1.0.[.[.[.d.9.6.6.0.0.^.1.:.1.6.9.:.[.[.[.^.(.(.(.:.(.:.(.[.(.(.(.(.(.(.).~.(.(.(.!.(.!.!.!.(.(.(.!.(.).).Y Y Z Z Z Y U Z Z E Z z Z Y Z z Z U Z U Z U Y U Y Y ", -"q 9 b q q q q q 9 q 9 b s q b q b q b b 1 | : @ + . . . + + . . $ + . + + . @ @ - , | | 7 4 | 8 | = @ & < r +.q.q.q.u.i.u.i.u.e.x.e.e.h.x.u.i.i.h.u.e.u.u.N.3.#.}.}.}.}.t.t.}.t.M.H.M.H.W.M.++++++++#+#+P.P.r.r.u.u.1.6.0.0.0.1.[.[.1.1.1.[.6.^.9.(.[.[.[.[.:.:.:.9.(.[.:.1.1.1.[.(.:.:.(.(.(.(.(.:.(.(.(.(.R (.!.(.,.R (.).).R (.!.Y ).Y ).).Z Z Z z Z Y Y Y Y Z z Z Z @.Z Z Y Z Z Y Z Z Z Z ", -"q q 9 q b b q b b b b q q b 9 b b 9 9 1 7 | ) @ + @ + + . . . + . @ , | 4 4 1 | 4 4 ( @ @ ( a ..N.e.h.h.i.u.i.h.i.e.u.e.i.h.h.h.x.e.i.6.e.5.N.f.}.n.}.t.M.o.M.M.t.M.++$+>+++++++#+#+P.M.u.u.u.0.1.[.1.1.9.1.1.9.1.1.[.1.1.1.:.1.0.:.:.9.:.1.1.1.^.(.:.:.:.(.:.(.:.(.:.:.:.(.(.:.(.(.(.(.(.(.(.(.(.,.(.,.!.!.,.'.,.).Y Y Z Y Y Y Y Z Z Y Z z Z z Y Y Y U Y Z U X U U U Y Y Y Y Y ", -"q b q b q b b b q b b b q b q 9 9 1 1 b | : @ + . + + + . . % + + . + . @ @ - | | 8 | 8 8 | ( = = = ( ..o.q.q.h.i.i.x.i.e.u.e.e.6.h.i.h.i.6.x.6.e.i.N.s.t.n.M.M.M.++M.$+++++{+#+++++#+#+P.o.P.d.u.0.0.1.[.[.1.9.1.9.6.9.9.1.1.[.[.1.1.1.(.9.g.:.:.[.(.(.[.:.9.:.:.9.9.(.(.:.:.!.(.(.(.!.!.).!.(.(.(.(.!.!.(.).(.).!.!.,.,.Y Y Z Z X Z U Y Y z Z Z Z Y Z Z U U U X Z U Z Z '.Y Y Y Z U Z ", -"q q q b b 9 b 1 1 1 1 b b b 1 1 1 1 1 b | ) @ + ; + + . . . . + + + + . . - , 4 1 | | 8 4 < = @ = ( S q.h.i.h.h.i.0.x.h.x.e.i.e.x.e.6.x.i.h.x.6.u.N.o.M.M.$+{+++++++++++:+#+++#+#+r.r.u.0.0.1.u.1.d.1.1.[.[.1.1.9.6.6.6.9.1.1.:.1.:.1.[.:.:.(.:.:.:.:.[.(.(.!.(.:.!.(.(.:.:.:.(.[.[.(.(.(.(.!.(.!.(.(.!.,.).).Y Y Y Y ).Z Y Y Y Z Y Z z Y Y z Y z Y Y Y Z U Z X Z Y Y Y Y Y Z Z Y Y Y ", -"b q e q b b b b 1 1 1 1 9 9 b b b 1 b 4 | - - } % @ + . . . ; + + + @ @ - ( | | 7 4 8 | | = % = ( O s.q.h.i.f.u.i.e.e.h.i.h.i.e.u.e.e.6.6.h.e.e.o.++++{+d+:+d+:+:+:+#+#+#+P.P.d.u.u.1.0.0.1.1.0.[.d.[.1.1.9.:.:.1.:.9.6.1.:.1.:.1.:.:.:.(.1.:.:.9.[.(.[.(.(.9.!.!.(.9.!.:.(.(.(.(.(.(.).!.!.(.!.!.,.,.,.Y ).Y Y Y Y Z Y Y Y Z z Y Y Y Y Y Y Z Y Z Z Z Z X Z Y Y Y '.Y Y U Y Y Z U '.", -"9 q b b b b b 1 1 b 1 b b 1 9 1 1 1 1 7 | b _.s.>.) % ; + + . + . . + . % + + + . . - , 4 4 | 4 8 4 | - % & ( i m.q.h.h.q.h.i.e.u.h.e.x.i.6.u.6.x.e.6.h.h.e.o.++:+d+++{+++++#+#+P.r.u.u.0.1.[.1.0.9.0.1.1.1.1.0.1.1.1.1.9.9.0.:.:.:.9.[.[.(.1.[.1.:.(.[.:.:.:.[.[.(.(.(.(.9.!.!.9.!.:.(.(.(.(.!.(.).).).).).Y ,.Y Y '.Z Y Y Z Z X Y Y Z Z Z Z X Z X Z Y U Z Z Z U Y Z Z Y Y Y U U '.Y Y Y ).Y Y ", -"9 9 9 q b q b b b b b 1 b 9 1 9 9 1 1 7 7 H j+z+d.h % % . . . + . . + . + + + + . @ @ - | | 4 | 4 4 | - @ & ( i <.q.h.h.x.i.h.e.h.u.h.i.h.i.e.e.e.i.u.6.6.u.o.#+#+d+#+:+#+P.P.r.u.1.0.0.u.0.0.1.9.9.6.0.9.6.9.^.0.1.[.[.:.9.(.6.1.1.:.:.(.1.:.:.(.9.9.:.9.(.(.:.:.9.9.(.:.(.(.:.:.!.(.(.(.(.!.!.(.R (.Y ).Y Y Y Y X U U U z Z Z z Z Z Z X X z Y Z Y Y Y Y Z Y Y Y Z Y Z Z Z Z Z Y Y Y '.'.Y Z Y ", -"b b b 7 1 1 9 b 1 e b 4 1 1 9 9 1 1 b 4 b E.A+:+).c ^ ; + + . + + + + . @ @ + . . . @ - 4 4 1 | 8 8 i { @ & - k f.q.q.f.e.u.x.u.i.e.6.u.h.h.x.6.6.h.0.u.e.e.i.P.#+#+++#+P.u.0.1.u.e.6.6.0.[.[.1.0.1.6.^.6.6.1.:.0.0.6.1.[.9.[.(.:.:.[.9.:.[.[.9.(.(.(.(.:.(.(.g.:.(.9.(.(.(.!.!.!.(.(.!.).!.).,.).).Y Z X Z Z Z Y Z U Y Z Z Z Z Z Z w Z Z X Z Y Z Z Z Z Y Z Y Y Y Y Y Y Z Z X Y '.Y Y Y Y Y ).Z ", -"b b b b 1 9 9 b b b b 1 1 2 2 9 2 2 b 8 s ]+z+d.c h h + # + + . @ + + . @ . @ @ , | b 7 | 8 8 8 ( @ = ( a .q.e.h.h.e.i.h.e.x.h.i.u.e.i.i.e.u.0.0.e.u.i.N.P.#+P.5.u.1.u.0.0.1.e.0.0.0.1.0.0.1.[.1.:.^.6.1.:.0.1.[.[.[.(.g.:.g.(.(.(.[.(.(.(.[.~.).[.(.(.(.(.9.!.!.(.(.:.(.(.!.).).).).Y Z Z Z Z Z Z X X U X Z Z X X Z Y Z Z Z Z Z Y Z Z z Y Y Y Y Z R Y Y Y Y Y Z ).Z Z Z U Y '.Y '.,.X '.", -"b b b b b b 1 1 b 9 9 2 1 9 2 2 9 2 7 | i t.P.~.T C ] ] + + + + + + + + + @ . + @ @ @ - | e s | < | | : @ @ - a .q.u.e.h.e.e.i.i.i.h.h.e.e.x.e.1.e.e.u.e.e.e.i.o.i.u.e.e.5.1.0.0.1.6.9.1.1.1.1.0.0.[.~.[.:.:.1.:.9.1.:.:.(.9.(.6.:.:.[.[.[.[.[.:.(.[.(.).[.(.(.(.(.(.).).).(.).).Y ).Y Z Z Z Z Z Z Z X Z Z X Z Z Z Y Z X Z Y Z Y Y Z Z Y Z X Z Y Y Y Y Z Y Y Y Y Y Y Z Z X Z Z '.Y '.Y U '.X Z ", -"b b b 1 b q 9 b 1 1 9 2 1 9 2 2 1 4 4 6 : M o.r.1.T ] ; + + . + . + + . @ - | e e | | 8 | 6 & & - i S q.i.h.i.h.h.e.6.x.6.i.i.i.e.u.u.e.e.0.0.0.e.u.u.i.u.6.u.[.1.6.0.1.1.1.1.1.1.0.1.1.1.[.1.1.0.6.(.6.:.1.:.g.(.9.(.:.[.:.[.(.[.(.:.(.[.).[.).g.).).g.(.(.).).$.).Y ,.U Z @.@.Z U Z Z X Z Z X Z U Y Y Z Z Y Y D R Y Z Z Y Z Z Z Z Z Y Z Z Z Z Y Y Y Z Y Z Z Z X Z Y '.Z U '.=.Z =.", -"b b 1 b b 1 1 b b b 2 2 9 2 9 2 1 4 4 : : +.X.r.d.T ] + + + + . + . + + + + + + + + @ @ @ , | i | | | | | : & ; = 6 S f.i.h.i.u.h.u.e.e.6.h.6.e.e.0.6.e.e.u.e.0.0.0.0.0.0.9.0.1.1.1.1.1.1.1.1.1.6.9.1.[.1.:.[.(.(.6.[.(.(.9.:.[.[.:.(.[.(.(.(.(.(.(.:.!.[.[.(.).).).).)./.).).Z @.@.Z Y ,.Z Z Z Y Z X Z X Z Z X Z Z Z Z Z Z Y Y Y U Y Y Z Y Y Z X Z Y Y Z Z Z Z ).Y Y X Y Y ,.Y =.U Z '.=.Q U =.'.'.", -"b b 1 1 9 1 9 1 b 1 1 1 9 2 1 1 4 1 | ( ( <.N.r.[.c ] + . . + % % @ @ @ @ - , | | a < | | 6 & ) k ..m.h.u.h.i.u.e.e.x.e.e.6.6.0.h.h.h.e.0.0.0.6.0.0.6.6.0.1.1.1.1.1.[.[.g.6.9.:.^.9.1.(.1.:.:.1.(.(.[.9.:.[.[.[.(.[.(.(.(.(.(.[.(.[.(.(.).).).).).$.@.Z X @.Z Z Z Y Z U Z X Z X U Z Z Z Z Z Z Z Z Z Z Y Y Z Y Z Y Y Y Z Y Y ).Z Y Y Z Z ).Y Z Z Z Z Y Y $.Z =.'.=.@.*.=.*.*.U &.=.", -"7 1 1 1 9 9 1 b 1 7 1 1 1 1 1 1 4 1 | - = M 3.>.A ] + + + + + + . @ & % + + . . @ @ = - , | | | 6 | | 8 | - @ = 6 .f.f.u.u.e.u.e.e.e.0.e.x.e.0.6.h.6.e.0.e.e.6.6.e.0.6.0.0.0.1.1.0.1.1.[.0.1.:.:.:.9.(.0.:.(.1.:.(.[.[.(.(.[.(.(.(.[.(.(.).!.).,.).).).).Y ).Z @.$.@.@.@.Z Z Y Z Y Z Z X X X Z Z Z Z Z Z Y Y Z Z Z Z Y Y Z Y Z Z Z Y Z Y Y Y Z Z Y Y Z Y Y ).Z Y ,.Y Y Z Z X Z =.Z *.Z &.&.=.&.*.", -"4 1 2 1 2 1 1 4 1 1 4 1 1 1 4 4 b b a & @ [ c c ] > + + + + + + . + + . @ ~ @ % + @ @ & $ @ = - , | | | | < < | ( - @ = 6 ..f.i.i.i.u.e.i.x.x.6.0.e.h.h.h.x.0.0.e.0.6.6.6.6.1.0.0.6.6.1.1.1.1.1.:.1.:.g.:.[.1.9.:.9.9.(.[.(.(.(.(.(.[.).(.).(.).).).).).Y ).Z Z Y Y Z Z Z X @.@.Z Z Z Z Z Z X X X Z Z @.X X Z Z Y Y Y Z Z Y Y Z Z Y Y Z Z Z X Y Y Y Y ,.Y ).Y ).Z Y X Z Z Y Z Y '.=.Z X =.=.=.=.*.=.&.*.*.", -"1 4 1 1 1 1 b 1 1 1 1 1 7 1 b 1 1 4 | & @ ; ; + + + @ { ~ $ + . = = = @ @ - , 4 | 8 | < | | 7 a - @ @ a S f.i.x.i.0.0.e.e.e.h.e.0.0.6.6.h.e.0.6.0.6.0.1.1.1.1.1.1.1.1.1.:.1.1.:.1.:.:.:.(.[.(.(.:.!.:.1.(.).(.).).).).).$.).).Y Y Y Y Z X X X w Z X Z Z X Z X Z Z Z Z Z Z X X X X @.X Z X Z Y Z ).Y Z Z Z Z Z Z Z Y Z Z Z Z Y ).Y Y ).Y ).Y Y Y ).Z ).=.Y $.Z Z $.=.X *.Q *.@.=.=.&.Q &.", -"1 1 7 1 b 4 4 1 4 1 4 1 4 1 1 1 1 b 6 ) + + + . + $ ) % @ . = - - & = = , | 4 < ! | < | < | ( @ $ ( O 3.q.i.e.e.e.e.0.6.0.x.0.e.0.e.0.6.6.h.6.e.0.1.1.1.1.1.1.1.9.^.1.:.:.9.[.[.[.[.g.!.9.!.!.(.(.).).).$.).).).).$.Z @.X Z Z X Z Z Z Z Z X w Z X @.Z X Z Z X @.$.X @.Z X X @.X Z @.Z Z Z Y Z Z Z Z ).Y Z Z Y ,.Y @.Z ,.Z X $.Y Y Y Y Y R ).Z Z Z Y $.Y Y Z *.=.$.$.*.*.&.=.Q *.&.*.", -"4 | 7 e 4 e 1 4 4 4 4 1 2 2 1 1 1 1 i % . + + + % ) ; + + @ @ - - - - - - , | | i < ! a | < | ( @ % { r f.f.h.h.e.0.u.0.6.e.e.0.0.0.0.e.e.6.h.6.6.0.1.1.[.1.1.^.:.1.1.9.9.(.[.[.[.(.(.(.!.(.(.,.).).).).).Z Z @.X Y @.X @.X Z Z X Z Z @.Z Z Z X Z @.X X X Z Z Z X X @.X Z @.U Y Z Y Z Y Y Y Z Z Z @.Z Z Z ).@.Y =.Z Z Z ,.Y Z $.Z Z Y ).Z Z Y ).Z $.Z @.$.=.Z *.*.*.*.*.*.&.=.=.%.Q &.", -"1 4 4 | e | 1 1 1 4 1 2 2 1 1 8 4 4 i = + . + @ & % @ @ - - - - @ - , 8 4 | | | < | ( | | ( @ @ ( t .i.e.e.h.e.1.u.e.6.6.6.0.0.0.6.6.0.6.6.:.6.6.1.1.[.(.1.1.[.(.(.[.).[.).).(.).,./.$./.).$.Z X X @.X X @.X X @.@.X @.@.Z Z @.X Z X Z Z Z X X X Z Z X X Z Z Z Z =.Z Z Y '.'.Z Z $.Z Z Z @.Z Z Z Z Z X Z @.X '.'.U '.'.$.Z Y ).Z Y ).Y Z Z Z Z Z $.Z $.Z ,.*.*.*.%.*.=.*.Q X X z ", -"4 1 7 4 e ! 1 1 1 4 ! 1 1 ! 4 4 1 b | { & . + @ = & - , , - , - - ( | 4 8 < ( | | ( a < a ( = j -.f.e.0.e.e.0.0.e.6.6.0.0.0.0.6.0.1.0.0.9.0.6.:.(.1.g.(.:.(.).).).).).)./.).).$.$.@.*.@.@.Z @.X @.@.X @.%.%.X @.X X @.@.Z Z X Z X @.X Z @.@.X Z Z Z X Z Z Z Y Z Z '.Y U '.Y Z Z Z $.Z Z ).Z Z Z ).,.Z =.@.Z ).Y Y Y ).Y Y ).).Y $.).Y Y Z =.Z @.$.$.*.=.*.*.&.*.&.Q *.Q z m f ", -"1 1 1 4 4 1 1 4 1 4 1 1 2 1 4 4 7 1 e : ) + + . = & @ @ . . - ( < | , , , , | 4 | 4 | | ( < | < a | ( = & 6 M h.e.0.0.e.e.6.6.1.e.6.0.0.6.0.1.1.9.:.1.:.[.[.g.).(.(.).).).).@.%.].=.$.@.X @.X X @.@.*.@.@.X Z Z Z X X Z %.@.X @.%.X %.@.Z Z @.X @.X Z X Z *.=.Z Z Z Y Y Z Z '.Z Z Z Y Y Z Z Z Z ).Z Z $./.Z Z Y '.'.Z @.X Z U '.Z ).).Y '.=.$.U Z =.=.=.@.%.%.=.=.=.*.*.*.*.*.U z w f / * ", -"1 1 1 1 b 1 1 1 4 4 1 2 2 8 1 1 8 1 b e : @ + + @ $ $ % = $ @ @ @ - , | | | | , , ! 7 4 | | ( ( a ( | ( < a ( & $ $ [ B h.e.6.6.0.0.0.0.1.0.0.0.1.1.[.[.[.[.(.[.(.(.(.)./.$.).).].@.@.@.%.*.&.=.X X @.*.X *.X X X %.X @.X $.@.%.@.X @.@.X %.@.X %.@.@.X @.@.Z Z Z Z X Z X @.Z '.'.Z Z Y Z $.X $.@.Z ,.Y @.Z /.Z Z $.$.$.'.U '.Y ,.$.$.Z =.Z Y ,.Z ,.Y @.@.Z =.*.=.@.@.*.*.*.].%.*.=.U z w d _ / * # ", -"4 1 1 7 1 1 1 4 7 4 1 1 4 1 9 2 9 9 7 e k { . @ @ & @ $ & ) & - | e v e | | : | 4 e e 7 | ( < 6 ( ( } a < | ( ) % % : y e.0.0.0.6.e.6.9.9.9.[.[.1.[.[.(.[.).(.).,.$.@.$.$.$.%.%.%.@.%.%.%.@.=.=.=.*.Q Z @.X @.@.@.X %.%.%.&.*.@.X @.X X @.%.%.@.@.X @.@.X Z X Z $.U *.*.@.Z Z Z Z Z Z Z Z Z ,.Z Z Y R Y Y Z ).,.$.Y Z '.X =.*.=.Z Z '.=.Z $.$.=.$.=.=.=.X *.=.@.&.&.&.*.=.=.U *.Z z w f _ ' # # # * ", -"4 4 4 4 1 4 4 4 1 7 4 1 4 7 1 9 8 7 e e e | | 6 { % % % % $ @ & = : 5 = - , O O O i | i : 4 b 7 e 4 | | | : 6 a : : < a < ~ ) ] } y -.0.0.0.1.[.1.1.1.[.[.(.(.(.).).).Z @.@.@.@.%.X @.=.%.*.*.*.].%.;.%.*.*.$.$.@.U $.*.X X @.@.X X %.X U *.*.$.@.X @.X X X X @.X %.@.@.@.=.X $.X X X $.Z Z Z X @.X Z Z Y Y $.$.Y ,.Y Z Z '.@.$.X =.*.X *.=.=.X '.=.Z Z $.X $.U ,.=.*.&.&.@.=.*.*.=.U '.U w w f _ ' * * * + # * ", -"4 7 b | 1 7 4 1 4 4 1 7 4 4 1 b b b 7 e i i i p } { { ) = = - ( : 6 6 i e v S G G v i | 7 e s 7 7 | | ( ( ( ( < < < | < } [ l h g W >.1.9.[.[.[.[.(.).).).)./.$./.@.$.$.].%.*.Q *.;.*.*.%.%.*.*.&.*.%.%.$.=.=.$.U $.U Z @.@.@.X $.@.@.$.=.=.=.X X %.X %.%.%.@.@.X @.X @.@.X $.Z U =.=.'.Y $.=.$.Z $.$.Y ,.Z Y Y ,.Y Z '.'.Z Z @.$.@.$.*.$.@.X $.Z =.=.$.@.@.%.@.X *.=.=.&.*.*.Z Q U '.x f f _ ' * * * . # * ' ' ", -"4 7 4 7 7 4 e 4 7 7 b 8 4 7 8 b 8 8 b 7 e e v v 6 5 i 6 : - : 6 6 i e v e v O v v v e | 7 e s | | < ( ( 6 : : a ( a | | } h C w R R !.!.!.)././.).).,.$.@.Z Z @.@.%.%.X @.@.@.;.%.;.X *.*.X X @.*.*.*.@.*.*.*.X *.*.Z *.X @.$.X $.@.*.*.*.*.*.@.@.%.%.X X X @.@.@.@.X =.Y Z @.@.X X Z Z Z X *.X $.Z $.Y ).Z $.Z $.).Y Y $.=.Z @.*.@.*.*.@.$.Z =.$.*.=.=.*.*.%.@.@.@.&.*.*.*.@.Z U z w f / * * * * * * * * ' _ 3 ", -"1 7 1 7 1 4 4 7 4 7 7 4 4 8 4 7 b b e 7 e e e e i v G 6 i i i k v s v s s v v v e e e e 7 s e i < ( ( ( ( ( : ( | < ( a g h R '.Y !.Y ,.,.).@.@.%.].%.@.@.@.%.@.$.X X *.%.;.%.X *.X *.X Z *.@.@.%.X %.@.X X @.*.*.X *.X *.@.@.=.Z Z @.@.*.@.$.=.Z @.%.%.@.%.@.@.Z Z @.Z $.$.Z @.Z $.Y '.Z X =.Z Z Z Z Z =.,.Z @.Z @.$.Y Z Z @.@.@.*.*.@.$.@.$.*.=.=.*.*.*.%.;.*.*.@.X $.X U Y w w f / * * * + + * * ' _ _ _ f f ", -"7 4 4 7 4 1 4 4 7 b b 7 7 7 4 7 7 b b e b 7 e s e s O v e v v s i s e s I s e q s I s e e e | | < | : ( a ( : ( < | < ( 6 C R =.Z Y =.=.@.@.%.@.%.].@.$.X Z $.X =.].%.X @.*.;.X *.X X X X U *.Z %.%.;.%.*.*.*.X =.X *.*.*.@.@.*.$.Z X %.X @.@.$.@.@.$.Z @.%.X @.@.U =.Z Z X @.%.@.X U =.Z @.@.$.$.$.$.Y '.=.Z ).Z @.).Z $.Z *.X @.@.=.*.X *.$.=.*.$.@.@.*.%.;.%.*.@.X X Z z w l ' _ * * # * * * * _ _ f f f o x ", -"7 4 4 7 4 4 1 4 4 7 | 4 e | e 7 9 b 4 b 4 7 q b q s s s s F s v v e v I I v I s v v s e | | : : | : ( | ( { ( ( ( < | | a g R Y Y $.$.@.%.%.%.%.@.%.X X @.@.@.=.*.*.*.*.&.X @.*.Q *.E X $.@.@.@.@.X %.%.@.@.@.*.*.$.=.=.@.*.=.$.*.=.$.@.@.@.=.*.@.*.@.].Z *.*.@.Z $.*.$.$.Z X Z Z '.,.U '.Z Z $.Y Y Z '.=.Z Z Z Z X @.).,.=.Z @.%.%.Q =.*.=.&.*.*.*.=.*.%.;.%.*.Z Z X z d d _ ' > # * + * * * * _ _ 3 f o x D D ", -"4 4 4 7 4 7 7 7 b b 7 4 e 7 7 7 b b e 7 4 b 7 1 b b e s v s q I s s v I v I e s s s v i ( | ( ( | ( ( ( < ( a ( < ( ( ( a 5 V $.$.Z ,.$.@.@.%.%.*.$.%.X @.=.*.@.*.X ;.X *.*.%.X X U D X X %.@.@.@.@.X %.*.*.*.@.*.=.=.=.$.@.=.Z ].@.*.].*.=.*.=.@.*.@.*.$.X =.=.=.Y '.,.,.Z $.Z X Z ,.Z '.Z $.Y '.Y $.'.U ,.@./.).Z @.X Z $.$.$.Q *.*.*.@.=.*.@.*.*.@.@.@.X X Q Y w w d _ ' * # * * * * * / _ 3 f o o o E x &.Q ", -"4 4 4 b 4 4 7 7 7 7 4 7 b 7 4 b b 7 7 7 7 7 7 7 b b b e e s e q F s s s e v s e e e 6 | : ( ( ( ( ( : ( ( ( < < ( < | a a g T Y Z $.X $.$.%.%.@.$.Q X %.X *.X *.*.;.%.%.*.%.X @.@.z Z X @.X X =.@.@.@.@.@.].@.@.$.@.@.@.@.*.*.*.@.].@.$.'.=.=.=.=.%.*.'.$.$.X =.'.=.Z Z Z ,.Y ,.Y =.X Z Z @.Z $.Z $.Z Y Y @.Z Z Z Y ,.$.$.=.*.=.=.@.*.%.*.*.*.;.%.;.;.%.X X Q z f d 3 ' > * . * # # * / _ _ f f o o E E E ;.Q {.", -"7 4 4 4 b 4 7 7 4 b b 4 7 7 4 7 7 b e 7 7 4 4 b 4 b 4 b b q 7 q s s s e e e e | | | ( | : ( ( < ( ( : : ( { : : : ( ( < | a C ).$.$.%.X @.%.%.X =.@.*.*.@.@.@.*.%.X *.Z %.%.X Q X X X X *.$.@.X @.%.@.].@.*.=.*.@.].@.@.@.=.$.%.%.@.@.%.=.=.=.=.=.$.@.=.$.$.$.Z $.=.@.@.X $.Z $.U =.$.@.Z ,.Z $.Z Y =.$.Y $.$.$./.Z $.$.X $.*.X *.@.*.*.*.*.&.*.*.=.Q X X z w d _ > > + > * * * * / _ f f f o x D E E Q {.{.;.;.", -"7 7 4 b 4 7 7 7 7 7 7 7 4 7 7 7 7 7 7 | 4 4 4 4 | 4 4 4 7 b b e e q e e 7 | | | | ( : : ( : : a ( ( : ( ( ( : ( : ( < | a a C Y Z @.*.;.*.=.X =.X *.@.*.%.*.*.X %.%.X *.X Q &.X D Z X X $.$.@.%.%.@.*.@.=.$.].$.*.@.@.@.$.@.].*.@.@.].*.*.*.*.*.*.@.$./.$.$.$.@.=.$.Z $.$.X $.U $.Z X Z '.Z '.Z $.@.$.Y $.Y Z ).Y ,.Z @.=.*.@.*.@.*.%.;.;.;.%.*.X U U z w d _ ' > + * * * * * _ _ _ f f o x E D Q E {.{.E ;.{.{.", -"4 4 7 b 4 7 7 4 7 7 7 e 7 7 7 7 7 b 7 | 4 4 4 4 4 7 | 7 4 7 7 4 | e | | | | : : | , ( ( ( ( } : } ( ( ( : ( ( < ( ( < < < a C R $.Z *.*.%.*.$.$.X =.=.*.;.%.*.*.%.%.@.*.%.X X $.X X X X Q /.$.%.%.@.*.=.$.'.=.$.$.$.$.@.=.@.@.].].].].%././.].].]./.=.=.%.@.$.$.*.$.@.Z $.X @.=.=.$.Z @.Z X =.Z =.$.@.$.$.$.Z ,.Y $.=.@.*.&.*.].%.*.%.%.%.;.*.Q Q z m 3 ' > * * * + ' ' ' _ _ 3 f o o o D E Q ;.Q {.;.;.{.{.{.{.", -"b b 4 b b 4 7 7 7 4 b | 7 | 7 7 7 7 e e , | | , | | 7 | | | | 7 | | | | | : : : : ( a : < < < { : : } ( ( ( ( ( ( | < | a k y Y Y Z @.%./.].@.X *.*.*.%.X *.*.X %.X %.X X %.X *.X X X @.$.=.@.@.@.@.$.].$.@.=.$.'.$.=.$.@.*.@.@.$.*.].*.*./.].].].*.=.].@.%.$.,.).Y Z @.=.$.X @.Q *.@.@.*.@.Z $.@.Z Z $.Z Y ,.Y $.$.*.*.=.=.].*.].c.*.;.%.*.U z w f ' ' ' + * + * * * _ _ 3 o o x x D Q Q Q Q ;.{.&.{.{.{.{.{.{.", -"1 1 7 7 1 7 4 7 e 7 7 | e 7 e 7 7 7 i | | | | | | | ( | ( | ( | ( | : | ( : { ( ( ( a : ( ( ( } { ( : ( ( : : : ( ( ( ( < a j Y Z Z '.*.%.c.@.$.@.%.%.%.*.*.Q @.@.X %.%.X X %.X X X Z Z @.=./.$.].$.$.@.@.Z =.$.'.$.@.=.@.@.@.@.$.*.%.].=.*.*.*.=.=.=.$.$.$.$.'.$.,.,.$.Z $.@.@.X *.X X @.*.U $.).).Y /.Z Y $.=.@.@.%.*.*.=.=.%.@.%.%.X X z w d ' ' > + + ' * * ' ' _ _ f m o E E Q ;.;.;.;.&.{.;.{.{.{.{.{.{.{.", -"b 4 7 e 7 4 7 4 1 7 7 b 1 7 4 7 e e e | | | | | | : 6 : : : | , | ( < | , ( ( : : 6 } ( ( ( ( ( ( { ( = { - ( < ( ( ( < | a y R @.$.$./.].*.@./.*.*.%.%.%.@.@.Z /.@.%.X X *.X %.X X $.$.=.$.@.%.$.$.$.$.$.$.Z '.'.*.@.@.,.=.'.=.$.@.].'.=.=./.=.*.*.$.'.$./.).$.,.$.@.X @.X Z @.=.Z @.@.X @.@.Y Z Z /.Y $.@.=.=.@.;.*.c.*.&.*.*.*.U X E w d _ ' > + + * * * * * _ _ f f o x E Q E ;.E {.{.{.;.{.{.{.{.{.b.{.7.{.", -"7 4 7 7 7 b 4 7 7 7 7 7 4 b 7 7 8 7 e | | < | | i | | ( : : : | ( ( ( : : : { ( { : ~ { = { < ( ( = { ( ( { - { { ( | ( < a 0 R Z @.$.].].=.*.*.*.*.X %.@.@.@.@.$.@.%.X Q *.Q X X @.@././.$.@.].@.]./.,.@.$.$.Z Z =.=.@.=.&.=.*.$.$.*.'.'.=.]././.].@.$.$.@.$.$.$.=.$.@.$.X $.X $.$.@.@.Z Z @.=.,.,.$.Z $.=.*.&.].;.*.*.*.*.*.Z X z w d ' > > * * * # * * * _ _ f o o o x E Q ;.;.;.{.{.{.{.;.{.{.{.7.{.7.7.y.{.", -"e 7 4 b 7 7 4 7 7 7 7 7 7 7 7 7 b 7 7 | ( | ( ( i , | | ( : : : ( : : : ( { ( { ( { { { { { = = = ~ ( = { = ( < - : ( ( | | 6 R Z =.=.*.@.*.$.@.$./.*.$.*.Z @.@.@.].$.@.@.X X @.$.$.$.$.@.@./.$.).$.$.$./.@.@.=.'.].Z '.$./.*.].].]./.=.a.*.*.].].].].%.@.].].$.$.'.@.=.'.=.X $.Z X Z '.'.*.=.*.X Z $.$.$.@.*.].;.c.*.*.;.X Z z f 3 ' ' > * + + * * * _ _ _ f f o x x Q Q E ;.E {.E {.{.{.{.{.{.{.{.7.b.b.7.7.b.", -"4 7 7 e b e 7 7 8 b 8 b 7 7 7 4 7 8 7 | | ( | | | : : , | ( : ( : : ( { : { { = - ( @ & @ ~ = = = & = ~ - ~ - ( ( { ( ( ( | 6 C $.@.@.@.X $.=.*.*./.*.].@.@.Z ).$.].$.$.$.@.X @.@././.=.,.$.$.$./.$.$.).$.$.].].,.$.$.$.@.].%.%.%.*.c.*.=.a.*.%.*.%.].].@.].].$.$.'.@.*.=.'.=.@.@.@.@.X Y *.Z *.*.@.@.]././.*.].%.%.@.X Z z m d ' * * + + * * * * / _ _ f f o o E E E Q ;.&.{.;.{.{.;.{.{.{.{.{.{.y.{.7.7.7.7.b.", -"7 7 7 e e 7 | e 7 7 7 | 4 b 7 7 7 7 e | : , | < ( , < : : ( ( - : - : : } ~ ~ = = . @ = @ @ @ = @ & & = & - ( - { { ( ( | | a C Y %.@.@.$.$.,.,.].*.].$.*.$.).Z /./.@.$.@.%.$./.,.$.$.,.$.).@.@.)./.).Z ).$.@.$.Z /.$.@.].%.%.%.c.%.*.=.&.*.*.*.].].].*.].@.].$.$.$.$.$.U =.=.@.Q *.@.@.@.$.*.*.%.%.;.%.@.].].*.%.%.Z z d d ' > + * + * * * * * / _ f f o x E D Q Q {.E ;.;.{.{.&.{.;.;.{.{.{.{.{.b.b.b.b.7.y.b.", -"7 7 7 | 7 e 4 7 7 7 7 e 7 7 7 7 b 8 7 | a | < | | < ( : : | : ( : ( { ~ & $ @ . . . . . . @ . & @ = = - - - - ( ( < < a a V Y @.X @.@.$.$.,.].].]./.@.@./.Z @././././.@./.$.$.,.$.,.$././.@.).*.).$.).$.$./.Y ,.$.@.%.%.%.].].].].].c.%.c.%.]./.$.].].@.@.$.$.@.%.@.=.=.=.$.$.=.@.%.*.*.*.*.%.].%.*.*.*.].=.U z w d ^ > + * + * * * ' ' _ f 3 o o E E E E Q Q {.;.;.;.;.{.{.{.{.{.{.{.{.{.{.b.b.b.b.b.7.7.7.", -"7 | e 7 4 1 b 1 8 7 7 4 | 7 e 4 7 7 7 7 ( ( ( ( < ( | < ( { ( ( ( = & @ & . . @ . @ @ # @ @ @ = - - - - , ( | | | y !.Z ,.)./.).)././.$.'.=.$.@./.@.@./.@./.$.].$.'.'.]./.].].$./.Z @.$.@.$.$./.@././.$.$.%.*.].@.].].].]./.*.*.].].$.@./.].*././.].@.$.@.@.%.X %.*.@.%.%.%.%.%.%.%.%.%.].].].@.X z w d / * * * # + * * * ' 3 3 3 f o m E D E E {.Q {.Q {.{.;.{.{.{.{.{.{.{.{.b.b.{.b.b.b.7.7.7.7.7.", -"7 | 7 7 e 7 7 b 1 7 | 7 | | 7 e 7 8 7 | | | | , ( : : , ( : { = = @ @ . @ @ @ @ + . + $ . . @ = - - { < < < a a y !.Y ,.).).).).)./.$.$.$./.@.,.)././.@.@./.$.$.$.,./.=.=.$.$././.@.$.$.@.@.@.Z )././.].%.].].].].].*.*./.].%.].@.].*.].].$././././.@.$.$.%.@.@.*.*.%.;.;.;.;.%.c.%.].@.Z U z w 3 * > + + + * . * * ' _ 3 3 m o D D E E ;.;.;.{.;.;.{.{.E {.{.{.{.{.{.b.{.{.b.b.{.7.b.b.7.7.A.7.y.", -"4 7 b 7 4 | 4 7 7 8 e e e 7 7 4 7 7 e e i ( | | | | ( : : { = $ $ @ @ @ @ - - - , , , - - @ @ + @ . @ = = - - , ( | | y !.).,.a.).).).,.,.'.,.].$.$.@.$./.*./.).$.].*.$.$.,.=./.'.'.'.,./.$.$.$.$.)./.).).a.].=.$.$.$.=.=.*./.].;.%.*.@.*.].*.$.*.$././.$.$.*.@.$.@.@.@.@.;.%.%.%.%.*.%.@.*.U w d l ' # * # + + * > * * _ 3 3 m o D D D Q X {.;.;.;.%.{.{.{.{.{.{.{.b.{.y.{.{.{.y.{.b.b.7.7.b.b.7.y.v.b.", -"4 7 4 7 b 7 4 1 b b 4 7 7 7 e 7 7 7 v i , ( | , < ( ( : { ) @ @ @ . - , , ! ! ! , ! ! ! , , - @ @ @ @ = = < , ( | a t !.(.).(.).a.a.,.,.,.).]./.$.].$.@.].=.).$./.].].$.)././.,.).=.,.)./.Z @.@./.@.,.,./.%.%.$.=.=.*.].*.*./.*.%.*.*.&.].].=.=././.@./.'.*.%.@.=.*.%.%.*.c.*.*.;.*.%.U z z l ' ' * + * + # * * * _ _ 3 f m m E E Q Q ;.;.;.;.%.{.{.{.{.{.{.{.{.{.{.b.{.b.y.{.b.{.7.b.b.b.b.b.b.b.y.b.", -"7 | b b 7 7 e 7 4 7 7 7 7 e 4 7 b e e 6 | | ( ( < , { & @ - , ! ! 4 e e b 2 2 2 2 2 ! ! , - @ . . . @ @ = - < | a | y :.'.!.a.).).).,.!.,.*.$.].].$.].].].,.$./.].*.$././.$.$./.].,.'.,.)././.$.$././.].@.@.].*./.].].*.%.].=./.*.*.]./.&.*.].@.].].].@.@.=.].*.*.*.*.c.*.&.].%.%.X z w _ ' ' ' + + * * * ' * _ _ _ f o o x D E E ;.Q ;.;.;.;.{.{.{.{.b.{.b.;.7.b.{.{.b.{.b.b.b.v.b.v.b.A.7.b.y.b.b.y.", -"b 7 4 1 b 4 | 7 1 8 7 7 7 e e e 7 s e | : | ( : ( < { & @ @ - , ! 2 2 q 4.k.` s 9 1 9 9 9 b b ! ! - @ @ . . @ . @ = - , , | | k ^.!.!.).).,.,.,.,.,./.$.]./.$.].@./.'.$.$.$.$.$.$.=./././.]././.$.Z $.$.).$.$.$.$.].$././.$.*.*.*.].%.*././.*.&./.*.].%.@.]./.%.].*.%.].*.c.;.*.].=.=.&.$.Y w d _ > > + * + # + * / / 3 3 f o o E E E Q ;.;.{.E {.{.{.;.;.{.{.{.{.b.b.7.7.b.b.b.b.y.b.y.b.y.b.b.v.7.A.b.y.y.v.v.", -"| 7 4 7 7 e b | 4 7 7 b 7 7 | 4 4 e e i | : : ( ( = @ @ @ - , ! 2 q H S.V.|.I q 9 9 9 9 b b b q 7 ! , @ @ . @ @ - - - < < | r V '.).).).).g.(.,.,./.]./.@./.$./.*./.,.=./.]././.,./.$./.$.,.'.).).,.'.$.$.$.$.$.X ].].@.].*.].].].].].=.*.*.].&.].%.].].a.].].].c.].].].].].].=.*.=.Y f f _ ' + * # * * * * ' _ _ 3 3 m D D D E ;.E {.E {.{.{.{.{.;.;.;.{.{.{.{.b.7.7.y.b.v.b.b.b.7.7.7.v.7.A.7.v.b.y.v.y.v.v.", -"4 | e 7 4 e 7 e 7 7 7 b 4 7 e e | 7 7 | < < ( ~ = = @ - , ! ! 2 9 j.S.=+n.I s 1 9 2 2 9 9 b b b 7 7 , - @ . @ @ . - - , ! < 8 y :.'.,./.a.!.,.(.'.'./.].].$./.$./.].].=.=./.@./.$.,.,.,./.$./.$.$.).$./.,./.$.=.$.].@.=.].].].].@.*.&.*.*.*.*.].*.].].%.%./.].c.].c.c.].c.].].=.,.U w 3 / ' + > + * # * * / _ 3 f f m z z E Q *.;.{.{.{.{.{.{.{.;.{.%.;.;.7.{.b.{.{.b.7.7.b.b.v.b.y.y.7.b.v.A.v.7.A.v.y.b.y.y.v.", -"4 e | 7 b 4 e i | 8 8 | | 4 4 | 7 7 | ( | ( ( = = - - , ! 2 1 H j.S.-+|.I q 1 2 2 9 2 2 1 4 b 7 b 4 4 , @ @ . @ - @ - - < 8 | r !.)././.).!.a.'.,.,.=.$.$././.@.].].].].*.]./.,.,.,.,.$.$./.Z /.)./.).,.Y ).,.=./.@.$.$.$.].%.*.*.].].&.*.].]./.=.=.=.*.].c.].].&.].=.*.@.@.'.w w d 3 > * * + + ' * * / _ 3 f f o z z U X Q ;.Q ;.;.{.{.{.{.{.{.{.;.7.c.{.{.b.{.{.b.7.{.7.7.b.7.7.b.v.v.I.7.v.A.v.y.y.v.y.y.C.G.", -"4 7 | | 7 e e | 7 7 1 e 7 7 b 7 7 b e a ( < - @ - , , , ! b H S.S.V.+.v 4 4 1 1 2 1 2 2 9 1 7 b b b b | - @ @ @ @ - - - , < 8 y ^.)./.,.a.,.(.,.,.,.'./.=./././././././.=././.,.,.!.,.).$./.$.@.$.@.).).$.,.,.=.=.=././.$.=.].].].].].].%.].].*.*.&.=.c././.].c.'.a.=.'.Z z w l / * * > # * ' * * ' _ _ f o m z Q Q X ;.;.*.;.*.;.{.{.{.{.{.{.7.7.7.b.c.c.7.7.7.c.7.b.7.b.7.7.7.v.b.b.7.I.A.v.A.v.v.v.v.I.A.y.A.", -"7 4 4 b 4 | e e 4 8 8 8 7 7 4 7 | 7 7 i ( - = @ - , ! 4 q _.S.-+n.F e 1 ! 1 2 2 1 1 2 2 1 4 4 4 7 7 7 | - @ - @ @ @ < < | | r R )././.!.a.'.(.,.,./.'././././.).].,.'.=.=.'.a.'.'.!./.).Z /./.Z /.$.$.,.$.].=.*.*.].*.=.=.%.%.].*.*.&.*.*.].=.a.*.*.=././.].].*.=.U Y w d / ' * * # # # * * ' _ _ 3 f f o E E Q Q ;.{.%.;.&.;.;.{.{.{.7.{.c.{.c.{.7.7.7.7.b.7.7.7.7.7.7.v.7.v.b.b.v.v.b.v.y.y.C.y.v.v.A.v.v.A.", -"7 b 7 4 7 e e e 4 8 4 | 7 e 7 7 | e 7 i { = @ , , ! ! q H S.`.|.s 4 1 b b 1 ! ! 1 1 2 1 1 1 1 1 8 8 7 e ( - @ @ @ , - , , ! a y !.(.).a.,.!.,.).,.,./.=.].$.$././././.'.=./.,.,.'.'.,.)./.@.@./.,.$./.$.$.$.].].].%.].*.].c./.*.].=.a.*.].*.c.&.*.c.*.=././.]./.Y Y m l / / # # # * # * * ' / 3 f f o o x x Q ;.;.;.;.{.%.{.c.;.{.7.7.{.c.7.7.b.7.7.7.7.7.{.7.b.7.7.v.A.c.A.y.7.v.v.b.I.7.A.A.7.y.A.v.v.v.v.A.A.", -"4 4 4 4 b e e | 7 | 4 7 7 4 7 e e 7 7 a { - , , 2 2 b q E.S.` e 1 b 1 q b q 1 1 2 2 2 4 1 1 b b 7 7 7 e i ( @ @ . - - - , | | r :.!.,.).).).,.).,.$.'./.$.]./.,.,.,.=./.,.'.'.,.,.'.,././././.$.$.,.$.,.,.$.].@.].%.c.%.*.].].].a.=.&.].c.;.].]./.=./.=./.@.Z Y w d / ' * * * * * * ' / / _ 3 f m m x x U Q Q E {.X {.{.{.7.b.7.7.{.{.{.b.7.c.7.b.c.7.b.b.7.y.b.v.b.b.A.A.7.A.v.A.v.A.A.I.A.y.y.7.v.v.b.A.A.v.y.", -"4 4 b 4 7 4 7 7 7 7 1 4 7 4 4 4 7 7 7 a - , , ! 2 2 q F k.I e q e q q q e b b b 1 4 1 1 4 1 7 7 7 7 | i | ( = @ @ @ - , , ! a t (.,.!.!.).).,.$.=./.=././.$.,.,.$.,././.a.,.'././.,.,.)./.@.].=././.$.$././.].%.%.%.]./.=.].].%.%.].].*.%.c.].].c././.$.Z Y w d ' _ > * # # # # * / / _ f m m z D E Q Q *.;.;.{.;.;.{.{.{.;.{.{.7.7.b.b.b.b.b.7.b.7.c.b.b.b.7.7.7.A.b.I.I.7.A.v.b.I.y.y.A.A.C.y.y.v.v.v.v.b.v.y.", -"4 4 4 7 7 8 1 4 b 4 7 7 4 4 | 7 | | e | - , ! ! 2 b b F s e 7 q s s e q e q e 4 e | 4 7 7 4 | 7 i 8 i 7 i | - @ @ @ - - , | | y (.g.'.!.!.,.,.'.,.,.,.=.,.,.'.=.,.$./.].$.a.,.,././.,./././.]./.=.,././.$.$./.=.*.].].].].].].].c.;.c.].].]./.].].$.Y Y z d _ > > > * # * * / / _ _ f m m z D E X X %.;.;.;.;.*.;.;.{.{.{.{.{.7.{.{.b.{.7.b.b.7.7.c.7.v.b.v.b.v.v.b.A.b.I.v.v.v.y.C.C.A.v.y.y.A.A.v.v.v.v.v.b.v.", -"b b 4 4 7 7 4 4 7 8 7 e 7 4 4 8 7 7 4 | , ! ! 2 1 b 7 b 1 1 q v s q e q e b e e | | e s O 7 | 8 8 8 i | i | - @ - @ - - , < | y !.).,.,.).,.,.=.=.,.,./.=.,.,./.=.'./.=./.,.,.,.'./.).Z /./.].].=.,.@./.).$.=.=.c.].%.].].].c.*.].*.].]././.$.Z X Y w _ ' ] > + # # * # / / _ 3 f f m z D X X %.%.{.{.%.;.{.{.&.;.;.{.{.b.{.b.b.{.7.b.{.7.7.b.7.A.c.c.v.b.v.b.b.A.A.A.A.b.v.A.v.v.A.A.A.A.y.A.v.A.v.y.y.A.v.y.y.", -"| 7 b e | 8 b 7 4 4 4 4 7 7 7 7 4 8 | | , ! ! ! 4 1 4 1 1 q e F e q e q e b e e i i 6 M G a 7 i 8 i 8 i | a ( @ @ - - , < | a N ).).,.!.,.)./.=.,././././.=.,././.,.'.,.'.,.a.,.$.)./.)./././././.=.,.,.=.=.a.*.*.%.%.c./.*./.].a./.c./.$.,.Y Y w d / ' > * # ; * ' / / / / _ f f z z X X X %.{.%.{.%.{.{.{.{.{.;.&.7.b.b.b.b.7.b.b.b.b.7.7.b.7.7.7.A.7.y.v.y.y.7.A.A.v.I.v.v.A.A.v.A.A.y.A.A.A.y.y.A.A.y.y.C.C.", -"| | 4 7 4 4 b 7 4 7 4 4 1 4 7 4 | b 7 | , ! , ! 1 ! 1 1 e q e e e e b 4 e e B B 6 : k t B B r r | i i | 7 i a @ = @ - , , 8 | C (.).).,.,.=././.'.'.'.'././.,./.]././.,.'.!.g.).$.)./.,.,././.]./.=./.,.].%.].].].c.%.c.].].a.].=.'./.,.Y Y w d _ ' > * > + * > > ' _ _ f f w z z X X X ;.;.*.%.7.{.7.%.7.b.b.7.b.7.7.7.7.7.7.7.b.b.b.7.7.C.7.L.c.7.A.b.b.b.v.y.A.y.A.A.I.v.v.A.J.J.A.A.A.A.A.A.C.A.A.C.C.c.B.c.", -"7 e 7 4 | 4 4 4 7 7 4 b b 7 8 7 1 b 8 ! ! ! , ! ! 1 4 q e q e q e e e e s G K K [ { } 6 y B M B p a 8 a 7 a } @ - - - , ! 8 a T ).).).).,.,.'.'./.=.=.]././.$.$.)./.,./.).a.).).,.).,.,.$.$.].a././.=.a.].c.%.c.]./.].].a.=.]./.,.,.Y Y w 3 _ / * ; # + # / * / _ 3 l m m z z Z X X X %.*.*.{.%.%.c.%.c.{.b.7.b.b.b.7.7.7.7.7.7.7.b.7.7.7.7.A.7.A.7.7.v.v.v.y.7.y.y.A.v.A.v.I.v.J.A.I.G.y.A.C.C.A.A.A.y.B.B.z.z.", -"1 4 4 4 | | 4 4 4 7 | 4 4 4 7 7 8 b 7 4 , ! 1 ! ! 1 b e b b b e b 7 4 e G .N u ) ) % - a y y p B a 7 7 7 a : @ @ - , , | 8 a V !.,.,./.$././.'./.*.'.'.,.).).=.,.,.a./.)./.).).)./././.'.'./.,./.,.=.a.%.c.].a.a.a.].c.).a./.,.).R w l / ] ; # # # / * > / ' _ 3 d m z z X X X Q %.*.%.%.*.;.c.%.c.c.c.7.b.7.b.7.7.b.b.b.7.7.7.C.7.A.7.I.7.A.c.A.A.A.v.v.v.y.v.v.v.A.v.A.y.I.v.v.G.v.G.C.A.J.C.A.C.C.A.B.B.c.z.", -"4 4 4 7 | e 7 1 | 7 4 | 7 7 4 4 1 8 4 ! ! ! 1 ! 1 4 e b 4 e 4 7 4 e 4 v ..u u 0 [ & @ @ & { 5 j p r a 7 a r { = - - - | ! ! a V ).,.$.,././.=.]././././.=.$././.'.).).)./.)./.)./.).'.a./././.a.=.a.'.*.].%.c.&.a.=./.)./.,.Y Y R l _ ' > * * # / * > ^ / _ l l w m z Y D X X *.%.%.;.*.{.c.;.7.;.;.{.{.7.7.7.7.b.7.b.b.7.I.7.A.7.A.7.A.c.A.A.v.7.A.7.A.v.v.v.y.y.y.v.A.y.v.y.v.G.v.D.v.A.C.C.A.A.A.A.C.C.B.B.B.", -"4 4 4 7 7 e 4 4 4 7 4 7 | 4 | 7 1 8 7 7 ! ! ! ! 1 1 1 7 4 4 7 4 e | e u K j j 0 [ & @ @ @ & } r r | i a a ( = - , - , 8 8 5 R '.'.$.,.$././.$./.,.,.,.$.$././.,.).).).).).).a./.).,.,./.=./.a.=.].a.].a.].a.c.a.=.a.$.Y R w d ] ^ ; > # # / > ' / 3 l l d d w z Y D Z X *.;.*.c.%.c.c.7.7.c.7.7.;.7.{.%.7.7.c.7.7.7.I.c.7.I.7.7.I.7.I.7.A.A.A.A.y.A.C.y.A.y.y.v.v.v.v.y.A.y.I.v.y.D.y.C.A.A.A.A.v.v.A.y.C.B.D.", -"4 b b 7 | 4 7 b 7 4 4 | b 4 7 | 7 4 4 | , ! ! 1 b 4 1 4 1 4 4 ! e 6 k 5 j K K t ) @ @ @ = = - : K G a i a a = - , - , ! ! 4 y !.Y ,.,.].=.=././././.$./.,./././.,.'.).)././.).)./.].].a./.a.].a.=.a.].c.].a.]./.].$.Z Y w d ^ > * # * ; * # ^ / ] d l l d Y z Y Z X @.@.@.%.;.c.*.c.%.%.7.%.{.7.7.b.7.c.b.%.c.c.7.c.c.c.7.7.L.I.c.c.A.A.A.A.v.v.v.A.A.A.A.G.G.v.y.y.v.I.v.v.A.y.A.y.y.C.A.y.A.A.v.A.A.A.y.C.y.A.", -"4 4 4 b e 7 | 7 | b 1 4 7 4 | 4 | 4 1 4 | ! ! b 7 4 4 4 4 4 1 4 v 6 6 : 5 W u K & @ = @ : : k 6 K M a a a a < , , ! , ! 8 | j !.).$.,.,.,.,.$.$.$.'.'./.,.$.,./.).$.).).)./.).).)././.].].a./.a.].c.a./.a.].a./.).Y w d ] ' # # # # * ^ / / / l l c C R R R (.).).).,.].c.].%.c.].c.c.c.%.7.%.7.c.7.7.c.7.I.7.c.7.7.C.c.I.7.7.I.7.L.c.C.C.A.A.A.v.A.v.v.I.G.y.v.I.y.G.J.I.I.A.A.y.y.y.c.A.A.A.A.A.y.A.y.y.y.7.v.", -"4 4 1 4 7 7 7 7 4 1 4 4 4 | 7 | 1 1 4 e i ! , 4 4 4 | ! ! 4 1 e .5 } - p B K [ & = = : 6 k p j S W 7 a a < - , , ! ! ! | | V Y *./.'.'.'.=././.=././.$.].=.$.).$.Y ).).,.)./.)./.,.,.,.]./.a.a.a.].].c./.).$.R w l ' ^ * / # ~ / / ^ ^ c C T #.i.q.N.P.++#+*+*+P.N.u.u.U.[.a.a.c.c.%.c.c.c.7.7.7.c.7.7.c.c.c.c.I.7.c.I.c.7.I.7.A.A.A.C.7.A.A.y.A.A.J.I.I.v.G.G.A.A.I.v.y.A.A.y.y.y.y.v.A.I.v.A.A.A.y.y.y.y.A.v.", -"4 1 1 4 4 4 4 b b 1 4 4 1 4 7 7 7 7 b e | 4 1 4 ! | ! ! | ! 1 s G ) : : t t t u & = = } 6 k p p S a i a a a < , , ! < 1 ! < V !.$./././.,.'.'./.=.=./.$.].*.@.,./.).).).$.)./.).).).'.a.=.a.].a.).].a.).).Y w d ] > > ; ; # / ^ ^ g y W 3.M.N.$+{+{+3+3+3+3+3+3+3+3+/+{+:+*+P.U.a.c.7.c.c.%.7.7.7.c.7.I.7.7.I.%.7.b.L.7.I.c.I.c.A.7.A.C.L.A.A.A.v.J.A.v.I.v.y.y.v.A.A.J.G.A.G.C.C.C.C.A.J.A.A.v.A.A.y.y.A.v.G.v.", -"4 4 4 4 1 7 4 4 4 4 4 4 4 b 8 8 | 4 7 7 , ! | ! 4 ! 4 ! 4 ! 4 s v - | p M K N u [ & : ( 5 t k B W a | g a - < , ! ! ! 8 | a V ,.,./.a.)./././.'.a.,.,.'.,./.=.).).Z ).).).,.).a.)./.a.,.a./.a./././.Y Y w l ] ^ * # $ # / ^ [ y -.q.T.$+{+{+e+e+e+e+e+k+r+k+r+r+l+k+k+l+e+3+{+:+#+.+d.c.c.c.L.c.c.7.7.7.c.7.%.I.7.7.c.I.7.I.7.I.C.L.A.A.A.A.C.C.A.I.J.A.I.J.G.G.G.G.G.I.v.A.y.y.y.y.A.A.I.v.v.A.A.A.y.A.C.G.A.J.", -"4 4 1 4 4 1 7 7 | | 4 4 8 1 8 1 7 7 7 e , ! ! ! , 4 ! ! | ! 1 e 6 : B ..M K K u [ ) = ( : 6 j K B a < a a ( , < | 8 4 4 | g !.).).$./.,.,.'./.'.'././.'.'./././.).$.).,.).,.).).).).].].a././.,.Y R l l ^ ' ; # ~ ^ ~ 0 u -.s.H.&+{+3+e+k+e+k+r+p+p+q+p+r+p+r+v+r+q+r+r+r+r+l+d+:+:+*+.+a.a.L.7.L.%.I.7.I.7.c.A.7.I.c.I.c.I.c.A.A.C.C.C.C.J.A.A.C.A.A.G.G.I.I.G.A.A.A.J.G.G.A.A.A.A.A.A.A.A.A.y.y.A.A.A.C.A.A.A.", -"4 4 4 1 7 4 | 7 4 4 4 1 1 4 1 8 1 4 4 | | ! ! ! ! ! , ! , , 4 s p v S }.}.}. .p 5 } & & = } k M p a a a < , < | < | 8 7 | y !.$./.).,./.).]./.,.,./././.,.'.'.).,.).).).,.(.,./.,./.,./.=.'.Y Y l l / * > $ ^ ~ y M f.Q.&+{+{+3+c+e+h+k+p+p+p+p+q+t+s+s+s+t+s+t+y+x+v+y+y+o+q+p+e+3+d+:+#+R.d./.L.c.L.c.L.c.I.c.C.].I.c.7.C.7.A.b.A.A.v.J.J.v.A.A.A.G.v.I.J.v.I.G.J.I.J.I.I.A.A.A.A.v.A.C.y.A.y.C.C.C.A.A.C.G.G.", -"4 4 4 7 7 | 7 7 4 | 1 b 1 4 4 8 b 4 b | | , ! ! ! ! | , | ! e O t G S <.n.<.S p p [ = = { = p M 6 a a a a | , | ! | 7 8 i V )./././.,././.]./.,.,./././.).,.,./.,.$.).).,.,.,./.,./.,.,.Y w l l / ^ ; # ~ u .T.M.$+$+3+3+e+k+k+m+r+p+r+p+r+s+s+s+s+t+v+v+y+y+t+t+y+v+t+B+t+t+v+v+p+k+d+3+:+.+R.c.L.c.L.7.L.c.L.A.L.7.I.L.C.7.C.A.A.C.A.C.A.I.I.A.J.J.G.J.J.G.I.I.J.J.C.C.I.I.v.I.L.A.A.C.A.A.7.A.G.O.C.y.C.C.C.", -"4 4 7 4 4 | 4 4 | 4 4 4 4 8 8 4 4 4 | e 4 , , , , ! | , , ! e ..B G +.n.|.+.G B p p : : : i B r a 5 g a < | | 4 | e v | a V ,.,.'.'./.$././.,.a./.'.).).a.).,.,.,.,./.,.'.'.,.).,.'.'.R n l / / > * ^ [ W T.&+{+3+3+e+k+k+p+p+p+r+p+v+s+s+s+s+r+t+t+v+B+v+v+y+v+B+t+y+w+w+y+y+y+s+v+r+r+e+3+:+#+R.~.L.R.c.L.I.7.R.I.I.7.J.J.C.A.A.A.y.C.C.C.A.y.C.A.G.J.G.G.I.v.J.I.J.L.J.A.J.J.J.J.L.J.y.v.A.A.G.C.G.A.A.A.A.A.", -"4 4 4 | 4 4 4 1 4 4 8 4 ! 8 4 | 7 4 1 4 | , , , ! , , , | 4 s .K G I |.I O G G G G G p p B #.t a g 5 ( | | | 7 4 s e i y !.'.'.=.'.)./.$./.,.,.a./.$.).).(.)./././.a.,.!.'.'.'.Y w w l / / ; / ; # [ 3.$+{+c+c+k+p+p+p+r+r+r+p+p+s+p+r+s+t+y+B+v+v+x+x+y+x+y+y+x+y+B+t+y+y+y+t+y+v+v+v+r+k+e+:+:+.+c.I.L.c.L.L.L.I.I.I.L.L.C.A.A.A.I.A.A.A.C.C.G.C.A.A.J.J.J.J.J.I.J.L.L.J.J.A.J.J.J.I.A.A.G.C.J.L.C.J.A.L.C.A.", -"4 7 7 4 4 4 4 4 4 4 4 8 4 4 4 | 7 7 b b 4 , , , , , , , , , I S ..G +.O p v S ......<. .S s.}.y g a } i | e e e e s 7 e y !.,.,.,.)./.)./././.).).a.,.!.!.,.,.,.).a.'.,.a.,.!.Y w d / # # # # # / ] W &+^+c+e+e+h+k+r+p+p+s+s+s+r+v+v+s+s+v+t+t+x+x+v+y+t+B+y+y+B+t+y+y+y+A+t+B+y+A+y+y+y+t+k+e+:+:+r.c.R.I.L.L.L.L.L.L.J.J.L.J.J.I.A.L.C.J.A.C.C.A.C.C.L.A.A.J.J.J.I.G.v.G.J.J.J.J.J.A.J.J.A.J.J.J.A.I.J.J.L.L.", -"4 7 4 4 4 4 4 7 4 4 4 4 4 7 1 4 7 | 7 7 | , , , , , , , | ! I S ..<...p v B S ..<.n.}.<.n.s.K k a a : i e e e q 7 7 | j R a./.]./.,.@./.,./././.,.a.$.).!.!.,.a.).).!.'.R w l l ] ^ > # ~ ~ ^ ^ ^ u $+3+3+b+4+e+k+h+k+p+k+q+t+t+t+y+t+B+t+x+x+y+y+x+v+x+y+t+y+y+B+B+y+B+y+B+y+y+y+y+B+t+y+A+r+t+k+d+:+.+R.c.L.c.L.I.L.L.L.I.J.J.J.J.J.J.J.I.A.A.L.L.A.A.J.A.A.A.v.v.v.C.y.A.J.J.J.I.I.L.L.L.G.G.J.J.J.I.J.J.C.A.", -"4 7 4 b 4 4 4 7 7 4 4 4 4 7 4 4 4 4 7 e | , , , , , , , , ! I 2.+.2.S p G S ....-+n.W.n.t. .j g a : i e s s s s q b i C ).)././.'./././.a.,.,.,./.).).).!.!.).).,.,.'.Y V n n ~ ~ ) g 0 g 0 y N W q.{+3+4+4+e+c+c+c+k+e+i+i+i+k+r+v+v+t+x+v+t+B+t+y+y+y+y+y+y+y+y+y+y+y+B+y+B+B+y+B+y+y+w+t+w+t+r+a+d+:+d.c.L.I.L.L.I.L.L.I.L.J.I.I.L.I.J.J.I.L.J.J.A.I.A.A.A.A.v.A.y.C.C.C.C.A.J.L.L.L.C.L.J.I.G.J.A.J.J.L.J.L.", -"4 4 4 4 4 4 4 4 4 4 4 7 | 4 4 4 4 4 4 1 | , , , , , , , , ! I +.|.<...G +.+.<.}.-+n.M.n. .j 5 g ( 6 v s e s s s s 7 a V /./.)./.a.).).,.'./.a.,././.).).(.(.(.,.Y R w l g j r -...f.f.o.M.M.M.$+W.{+|+4+4+c+e+c+3+6+4+3+4+4+4+e+e+p+s+y+y+x+t+y+t+x+y+w+A+A+A+A+y+B+y+A+A+y+A+A+A+A+A+y+A+y+y+t+s+q+a+d+/+.+a.I.B.L.L.L.L.I.L.L.I.I.I.I.I.J.J.L.J.J.J.J.L.C.A.A.v.A.A.y.C.A.A.A.v.v.J.J.C.B.G.J.G.J.A.L.J.J.J.J.", -"4 4 4 4 4 4 4 7 b 1 4 7 4 4 4 4 1 7 1 7 | - - , - , , , , , F O I 2...}.n.n.n.W.n.H.<.M k 6 } 6 | e e s v O I F s e y !.'.a.,.,.'.'./.a./././.a.a.).a.!.,.).,.R V C -.#.s.K.@+@+&+&+>+{+{+{+4+{+4+b+4+4+c+c+e+e+c+e+4+4+4+3+3+4+4+b+g+q+s+B+y+t+y+y+A+y+y+A+A+y+B+y+A+y+y+A+B+B+y+B+A+A+B+y+t+B+t+y+q+l+3+*+.+L.c.L.L.L.L.L.L.I.L.L.I.L.I.I.J.J.J.J.A.J.J.v.I.J.L.A.A.A.A.C.J.v.A.A.A.A.c.C.B.A.J.A.L.C.L.J.I.J.", -"4 1 1 4 4 | 4 1 1 1 4 4 4 4 4 4 1 1 7 4 | , , , , , , - , , | e I O 2.<.n.n.n.M.n.<.O 6 a } ( | e s s I I O s I 7 i V ,.'.,.).).a.,././.].a./.a.a.g.,.(.(.:.V ^.f.Q.W.>+]+{+|+4+6+b+b+c+c+e+i+c+0+h+h+h+h+h+k+i+h+k+c+e+4+4+{+{+^+3+2+g+o+t+B+t+B+t+y+y+v+y+y+y+A+B+B+y+B+A+A+A+y+B+A+A+A+A+w+B+t+y+r+r+l+/+*+R.O.L.L.I.L.L.L.I.L.I.I.L.L.I.J.I.I.J.I.I.J.I.A.A.L.A.A.J.J.A.C.J.C.C.A.v.y.y.C.A.C.C.c.C.c.I.J.J.", -"4 4 ! 4 4 7 7 4 2 2 4 1 4 | 7 4 4 b 1 4 | , - , , , , , , , , , e I +.|.n.|.n.<.G k | ( a < 4 v s s F F I I I s O y !.,.,.,./.,.,.,.'.a.a.a.a.[.g.(.6.^.i.q.Q. +$+{+3+4+c+b+e+c+h+i+i+k+k+p+k+q+k+k+i+h+p+p+m+q+k+p+k+c+e+e+3+3+]+{+3+3+b+k+q+B+y+y+B+B+B+B+B+y+B+y+A+B+A+A+B+B+B+A+A+A+y+y+y+w+B+t+t+B+r+k+:+.+R.B.L.L.L.C.L.L.I.J.L.I.J.L.L.L.I.I.I.J.J.J.A.J.A.A.A.A.J.L.A.C.C.A.J.J.A.A.A.C.J.C.J.C.A.C.C.A.", -"4 4 1 4 4 4 4 4 1 2 1 2 2 4 4 4 b 4 1 1 | , , , , , , , , , ! , , e v I +.+.I G 6 : ( ( | , e s I G I I ` +.F s t R ).,.a.,.).).).a.a.a.a.[.[.1.u.N.T.Q.>+]+{+6+4+c+e+c+h+h+h+i+h+m+m+m+p+p+p+o+s+q+q+p+p+p+p+m+p+p+p+m+h+h+c+e+{+{+)+{+4+b+i+q+t+y+w+w+y+y+A+A+y+y+A+B+A+A+A+A+B+A+A+A+y+y+y+w+y+A+t+t+w+w+e+/+U.L.I.L.L.L.I.L.I.I.J.J.J.A.J.L.L.L.I.J.J.J.G.G.G.A.J.J.A.L.J.J.J.J.J.J.J.J.J.J.J.C.C.J.C.A.C.A.", -"4 4 4 4 b 1 4 1 4 1 1 1 1 b 4 4 4 4 4 b 1 < - - , , , ! ! , , , , , e e e | | | , - - , | e s I I I ` F ` I s i y (.,.,.'.!.a.a.,.a.(.[.1.u.N.*+&+&+^+1+4+c+0+b+h+k+h+k+k+p+p+p+p+q+p+p+p+s+q+s+q+p+q+p+m+p+o+t+s+p+s+p+q+k+k+c+b+2+]+]+]+]+e+i+t+y+B+y+y+y+y+y+A+B+y+A+B+B+A+A+A+B+A+y+A+y+y+y+w+y+w+y+r+q+l+a+#+R.R.I.L.I.L.L.L.J.J.J.J.A.A.A.L.J.L.J.J.L.L.A.I.J.J.L.J.I.A.J.J.L.J.J.L.J.J.I.J.J.J.L.J.L.J.C.", -"4 4 4 4 4 4 4 4 4 1 1 1 4 4 4 4 4 1 1 1 7 | - , , , , , , , , , , , , , , , , , - , - ( e e I I O ` |.` ` O e y R )./.a./.,.g.g.9.g.u.N.%+&+{+{+|+4+c+e+e+k+k+k+k+k+p+p+k+p+p+p+p+q+s+p+p+m+t+s+s+m+t+t+t+s+s+p+s+s+s+s+s+s+p+p+k+c+4+{+^+]+3+0+k+s+B+B+B+B+A+B+y+B+y+A+A+B+A+A+A+A+A+B+A+A+y+y+w+y+t+y+B+r+r+l+/+.+R.R.L.L.L.I.I.I.J.A.J.J.I.J.C.J.L.L.L.L.L.J.v.J.A.I.I.J.I.A.J.C.C.J.J.J.J.I.J.J.I.L.L.L.J.J.", -"2 4 1 ! 1 4 4 4 7 ! 4 4 4 4 4 4 4 4 1 7 4 i - - , , , , , - - , - , , , , - , - , - | | e v I I ` +.` ` +.s a V (./.a.a.a.).[.x.i.M.*+{+^+4+4+c+c+k+e+h+h+i+p+p+m+p+p+p+m+p+o+t+q+m+p+s+s+s+m+t+o+s+s+s+s+v+s+t+t+t+t+s+s+s+v+q+p+k+e+e+3+^+^+2+i+k+s+y+y+y+y+y+B+y+B+B+A+A+B+y+B+y+x+y+y+y+y+B+y+y+A+t+t+t+t+r+d+:+.+R.L.I.L.L.I.J.C.A.A.J.A.I.J.J.C.C.G.G.L.C.L.L.C.L.J.I.J.C.J.J.J.A.J.J.I.I.I.L.L.R.L.J.I.J.", -"4 4 4 1 1 1 1 ! | 4 2 4 1 4 4 1 1 4 1 b 7 | - - , , , , , , , - , - , - , - , - , : i v v I I ` ` ` ` ` O r y !.).a./.a.a.1.u.%+]+^+3+e+e+c+h+k+h+h+k+p+q+h+q+p+p+p+p+p+q+s+o+s+s+t+s+o+t+s+x+s+s+m+y+t+t+s+x+x+s+x+t+s+s+s+s+t+t+p+p+e+e+4+4+4+6+e+q+t+B+y+A+y+B+y+y+y+A+A+A+A+A+A+y+B+y+y+w+y+w+t+B+y+t+t+t+q+l+/+.+R.R.L.R.I.L.I.C.G.A.L.C.A.J.J.L.C.G.A.J.C.J.A.A.I.J.J.C.C.L.J.I.I.J.L.L.L.L.L.L.L.L.I.I.J.", -"1 1 1 4 4 1 1 1 1 4 4 2 4 4 4 4 4 1 8 1 b | - @ - , , - , , , , , , , - - : - : | i B I O I +.I ` ` ` I O y V (.[.).[.[.e.X.]+{+3+e+4+h+k+h+k+p+k+p+m+o+o+q+p+q+q+s+p+s+m+v+s+t+t+s+s+t+s+v+s+s+s+t+s+y+s+x+s+s+t+t+s+t+t+t+s+v+s+v+p+p+h+e+3+4+4+0+i+q+y+A+B+A+y+y+A+A+B+A+B+y+y+B+y+y+B+v+y+w+y+B+t+t+A+t+t+r+r+d+:+.+L.L.L.L.L.L.L.G.L.L.J.J.A.J.L.L.L.G.G.J.J.A.A.A.A.J.A.L.L.L.L.J.J.L.L.I.L.I.L.L.L.L.J.J.", -"8 1 ! 1 1 4 4 1 1 1 4 1 ! 4 4 7 8 1 b 2 b 7 < - - - , , - , , - - , - : : } 6 6 e G I G ` I ` ` ` ` ` I p V 9.g.[.a.[.e.Q.>+^+4+4+c+c+c+c+h+k+h+p+q+p+p+q+p+m+m+r+s+p+s+m+s+m+v+s+s+s+s+y+m+x+t+s+x+s+y+t+x+y+s+x+y+x+x+x+y+s+s+s+s+s+p+p+h+c+4+^+4+6+i+t+y+y+A+A+y+y+A+B+y+y+B+A+B+A+y+A+t+B+t+w+y+B+v+B+w+t+w+q+d+/+.+R.R.R.L.L.L.L.L.L.L.L.J.A.J.L.G.J.J.C.L.C.J.C.A.L.A.A.J.L.L.J.I.I.J.J.J.L.I.L.I.L.L.C.A.", -"4 ! 1 ! 1 1 1 8 1 1 4 4 b b 4 8 1 4 8 b 4 e , - @ - - , : , , : : - - 6 B B B B I G I G ` G I F F F ` G W :.!.[.(.(.:.f.]+^+7+6+6+0+4+0+6+6+0+h+o+m+q+o+s+o+t+s+s+p+s+s+t+s+v+s+s+s+s+t+s+t+s+x+y+t+y+s+x+t+y+y+y+s+y+t+t+s+y+t+t+t+s+v+p+p+k+c+3+4+4+e+k+t+B+y+A+B+y+y+y+y+B+A+y+A+y+A+w+B+w+B+x+v+t+t+t+v+t+r+r+l+d+:+.+L.L.L.O.J.J.L.J.L.J.L.J.J.J.L.L.C.J.A.C.C.A.L.A.J.J.L.L.L.L.I.L.I.I.L.L.L.L.C.C.J.J.A.", -"1 8 2 2 2 2 1 1 4 b 7 7 7 b 4 7 1 4 4 7 4 7 | - = - - 6 5 { : : 6 6 6 B B G O O +.` I +.G ` +.I ` F I G >.!.!.(.Y T W &+<+^+^+4+4+|+|+^+|+|+|+6+b+i+p+m+s+m+p+m+s+s+r+s+t+t+o+t+t+x+s+y+x+y+s+s+x+s+y+y+y+t+y+m+x+x+x+x+y+s+x+y+s+o+t+s+r+p+k+h+e+3+|+4+e+o+t+B+y+A+y+y+B+y+y+y+y+A+y+y+w+s+t+A+y+B+x+y+v+t+B+w+r+r+d+/+.+L.R.L.L.I.I.L.L.O.J.L.J.J.J.J.J.J.C.J.A.A.A.G.A.J.J.J.L.L.L.J.L.L.J.L.I.L.L.L.L.J.J.I.", -"4 1 ! 4 4 1 1 4 4 e b b b 4 7 7 7 7 7 1 b b 8 | | - 6 B u K p p p p G ..S +.+.+.+.<.|.2.2.+.|.` ` |.` #.0.:.(.R C g p.'+)+)+4+^+^+^+)+)+'+'+!+[+[+8+g+q+t+s+v+s+s+s+s+s+s+x+s+x+x+v+x+s+t+s+y+x+y+y+x+m+y+x+x+y+y+y+y+x+y+y+y+x+y+x+s+v+s+s+p+p+c+c+4+^+6+e+q+q+B+B+A+t+B+B+y+A+w+y+y+y+t+B+B+t+t+t+t+v+t+v+t+t+t+r+l+d+.+.+I.L.L.I.J.J.L.L.L.J.L.L.L.L.L.L.J.J.J.G.G.A.J.C.I.J.L.C.J.L.A.C.C.A.I.A.L.C.G.A.I.J.", -"! 4 8 4 ! 1 4 4 b | 7 4 e 7 7 7 7 1 7 4 b b b e s i v G K N M .+...2.k.n.n.n.H.F.n.-+W.-+H.W.F.F.W.n.M.o.q.f.i.e... +^+)+)+)+)+)+~+,+>+>+>+>+>+~+[+5+f+o+m+t+s+s+s+s+t+t+s+t+s+x+t+y+y+y+t+y+s+t+y+y+y+y+y+x+x+y+y+y+s+x+y+s+x+t+y+s+x+s+s+m+p+h+e+4+4+|+4+i+o+t+B+B+w+t+y+y+y+y+t+t+y+y+t+v+B+w+v+y+v+v+t+r+t+r+w+d+d+.+R.L.R.L.I.I.J.J.L.G.L.L.L.L.L.J.J.I.J.J.L.J.J.J.L.J.J.L.L.J.C.A.C.A.J.C.C.L.C.D.A.J.J.", -"4 ! 4 4 4 4 4 7 7 7 4 e 4 4 1 4 7 e 7 e e 7 q s v G I +.}.}.n.H.n.H.-+>+-+-+-+)+-+-+-+)+)+^+)+^+'+-+)+>+>+Q.$+W.W.@+_+}+^+)+{+{+>+&+ +>+`.$+ + +>+ +~+|+b+o+s+t+t+s+t+s+s+y+s+x+o+y+y+t+y+x+s+y+y+y+y+y+y+x+y+y+y+x+y+y+y+x+y+y+y+s+y+s+s+s+s+p+q+m+e+4+^+|+b+e+t+t+y+y+y+y+y+w+w+y+y+y+t+x+y+y+v+y+v+v+B+u+t+t+t+r+q+l+:+.+R.L.R.L.L.J.J.L.L.G.J.J.L.L.L.L.I.J.J.J.I.L.I.L.L.L.L.O.O.C.L.A.A.J.A.C.G.D.A.G.L.L.", -"1 1 4 1 4 7 4 7 ! b b 7 7 8 1 b 1 b 4 7 e s s I |.2.|.W.W.>+>+-+)+-+)+^+^+4+4+^+6+|+0+6+|+0+|+6+6+|+4+^+4+)+4+)+)+4+4+2+4+^+)+{+)+{+ + + + + +W. + +@+!+^+0+h+p+t+s+x+x+s+t+y+s+x+s+x+y+t+y+y+o+x+y+y+y+y+y+y+x+y+x+y+x+y+x+y+y+y+y+y+v+x+t+x+s+q+m+k+c+4+4+4+c+k+t+B+t+t+y+x+t+w+y+t+y+y+v+s+y+t+t+v+v+s+v+t+r+r+r+r+l+/+.+O.L.L.J.J.J.J.J.L.L.J.J.J.J.L.L.L.J.L.L.I.I.L.L.L.O.L.L.O.L.L.O.J.A.A.L.G.G.G.J.L.L.", -"4 4 4 2 2 4 7 4 1 4 7 4 4 4 7 8 7 7 e s s +.|.n.n.W.-+-+)+-+^+|+|+|+0+|+6+6+4+0+6+^+6+6+6+6+0+0+0+6+6+c+b+6+4+c+4+4+6+6+4+4+4+4+^+)+]+$+ + +Q. +Q.Q.W.W.-+^+c+m+m+s+s+s+x+s+s+y+t+x+s+s+y+y+y+y+y+o+y+o+y+y+x+y+x+x+x+y+x+y+x+x+y+y+x+x+y+x+s+p+s+p+m+k+4+|+^+4+c+p+t+A+t+B+t+x+x+v+x+v+v+s+t+s+w+B+t+t+B+r+w+w+t+r+w+l+d+.+R.O.L.O.L.J.J.L.J.J.O.I.I.J.L.L.L.L.L.I.R.L.L.L.L.L.L.L.L.O.O.O.O.L.L.B.C.C.C.C.C.G.", -"7 4 4 4 4 4 7 4 4 4 b 4 b 1 7 e e s F ` |.F.V.-+-+)+-+^+[+[+[+|+6+0+|+6+6+6+0+|+0+6+0+c+4+c+4+0+0+0+8+0+c+c+0+0+0+8+b+b+c+c+4+c+4+4+^+{+{+&+ +$+Q.W.W.K.@+`.)+4+h+s+s+t+y+y+s+x+y+y+x+x+s+x+y+y+y+y+y+y+x+y+x+y+y+y+y+y+y+y+y+y+y+y+y+s+t+s+s+p+t+s+p+h+c+4+}+}+4+k+v+B+t+v+B+t+y+v+x+t+t+v+t+v+t+t+t+t+t+v+r+r+t+r+r+l+a+/+R.L.L.L.L.L.L.L.O.L.O.O.L.I.O.O.L.L.L.L.L.L.R.I.I.L.L.O.L.L.L.O.L.L.J.L.L.C.L.L.L.C.", -"| 7 4 4 7 4 | e 4 4 4 1 1 7 e s I ` n.F.`.-+'+!+^+|+[+[+[+|+6+6+|+6+6+0+4+6+6+0+6+0+4+6+0+0+c+c+c+c+0+0+c+c+c+c+c+h+h+0+c+c+k+k+c+c+e+6+3+^+{+>+$+$+T.Q.Q.W. +^+6+f+t+x+y+t+y+t+s+s+y+y+y+y+x+y+y+y+y+y+y+y+y+y+y+y+y+y+x+y+y+y+s+y+y+y+x+t+t+s+s+p+p+k+c+6+4+2+^+c+k+t+v+y+t+B+s+t+B+v+v+v+v+t+v+B+r+r+r+w+s+t+r+r+r+l+a+/+.+O.L.L.L.J.J.L.L.O.L.L.L.L.L.L.L.J.L.L.L.I.L.L.L.I.L.L.L.R.O.O.L.J.I.J.L.L.J.L.J.J.", -"4 4 2 4 4 e e v 7 4 4 e 7 s O +.p.F.`.-+~+_+^+(+[+|+6+4+6+4+6+4+6+6+6+0+6+0+8+0+5+0+c+0+0+0+0+0+h+h+i+h+i+i+f+i+c+c+k+h+c+f+h+k+c+h+c+0+e+e+{+{+{+$+$+ +T.Q.W.W.'+5+f+s+y+t+y+y+y+y+t+y+s+y+y+x+x+x+y+A+x+y+y+y+y+B+y+B+y+x+x+y+y+s+s+y+x+x+t+s+s+o+m+p+k+c+4+2+^+4+e+t+v+v+x+t+y+t+t+v+x+y+s+s+t+t+t+y+r+r+l+t+q+r+r+l+a+/+R.O.O.L.L.L.L.L.L.L.L.L.L.L.L.L.L.L.R.I.R.L.L.L.L.L.L.R.I.R.L.J.J.L.L.L.L.O.L.L.L.I.", -"4 1 1 1 4 7 s e b b e s O 2.l.F.`.-+'+~+}+(+|+|+|+6+|+6+4+0+4+5+5+0+0+7+0+c+0+8+c+g+f+i+c+i+h+h+h+c+h+h+h+h+h+f+h+h+f+c+h+c+f+h+h+h+i+k+h+k+h+4+4+^+{+&+ +H.Q.Q. +^+8+f+y+y+x+v+x+s+x+y+y+x+y+y+y+y+x+B+y+B+x+B+y+y+y+y+B+y+y+y+y+y+y+t+y+v+x+x+t+s+q+p+h+k+c+|+^+)+c+k+s+y+v+B+r+t+y+t+v+v+t+r+t+t+t+q+t+t+q+w+l+w+r+r+d+/+U.O.L.L.L.L.L.I.R.L.L.L.L.I.L.I.I.L.L.R.L.I.R.L.L.L.L.L.O.L.L.L.J.J.L.L.R.L.L.L.L.L.", -"4 ! ! 4 4 e s 7 7 q ` 2.n.K.;+-+,+'+^+(+^+}+|+|+|+5+6+6+4+0+4+0+5+8+0+8+8+0+f+0+0+0+0+f+8+c+k+k+h+c+e+h+h+i+h+i+h+h+f+h+h+h+f+i+f+k+h+h+h+k+c+h+4+4+3+{+{+&+Q.Q.W.=+[+0+m+y+y+t+y+y+s+y+y+y+y+x+x+y+B+x+B+y+y+B+B+x+B+y+y+y+y+y+y+y+y+t+y+s+s+x+y+m+t+p+m+m+k+e+4+)+4+e+r+v+s+t+y+v+s+r+r+v+v+v+q+t+t+q+t+r+r+v+r+l+l+l+a+/+R.L.L.L.J.L.L.J.L.L.L.L.L.L.L.L.I.R.L.R.L.L.L.L.L.L.L.L.R.O.L.O.L.I.L.L.L.L.L.L.L.L.", -"| 4 4 4 | e e | I 2.n.F.`.,+~+<+)+^+(+^+[+|+|+6+5+6+6+4+0+6+8+8+8+8+8+8+0+c+c+c+i+i+i+c+i+i+f+0+i+h+h+i+i+i+i+i+i+f+h+c+h+k+p+i+h+m+m+h+h+p+k+h+e+h+4+6+{+)+$+ + +>+^+7+i+p+x+v+y+x+x+x+y+y+x+y+B+x+B+y+x+B+x+y+y+y+y+y+y+y+y+y+x+y+x+x+s+x+y+s+s+t+m+q+q+q+h+h+4+4+^+3+h+r+t+x+v+q+B+t+t+t+t+q+q+w+r+r+r+t+q+r+q+w+r+l+l+:+U.L.L.O.O.O.O.L.O.L.L.L.L.I.L.L.L.I.L.L.L.R.L.L.L.L.I.R.L.L.R.L.R.L.L.L.L.L.L.O.O.L.", -"| ! 4 ! | | 7 s 2.H. +$+'+'+^+_+_+^+^+^+|+|+|+|+[+6+6+4+b+6+8+c+8+8+8+b+8+c+h+c+c+c+f+h+h+h+k+h+i+i+i+i+f+i+h+k+k+i+h+h+f+f+p+k+h+h+p+k+h+k+p+c+h+k+h+8+e+4+{+{+{+>+'+[+0+m+y+x+y+y+y+y+y+y+x+y+y+x+y+x+B+y+y+B+y+y+y+y+y+y+y+y+s+y+y+y+t+s+t+s+s+t+s+s+p+q+k+k+c+^+)+{+c+r+u+t+t+t+s+t+t+q+t+w+q+q+t+t+r+r+q+r+r+l+l+l+a+/+U.O.L.L.L.L.O.J.L.L.L.L.L.L.L.R.L.L.L.L.I.L.L.I.L.L.L.O.R.L.R.L.R.L.L.I..+I.R.O.O.L.", -"4 1 | 4 4 7 q ` F.`. +,+>+)+^+^+|+}+}+|+4+4+|+4+6+6+6+8+6+b+b+8+0+0+c+0+0+f+c+i+c+h+c+h+c+k+h+h+k+h+o+i+m+f+n+h+h+k+h+o+m+m+h+m+f+k+p+m+m+f+p+h+p+h+k+e+c+e+4+3+^+^+)+^+|+c+m+t+y+x+y+y+y+y+y+y+B+y+x+y+x+B+x+y+y+y+y+y+y+x+x+y+y+x+t+y+v+x+x+t+y+s+s+o+p+p+p+h+e+e+4+)+4+c+t+s+v+t+q+w+q+t+q+q+q+r+r+r+q+w+r+l+w+l+l+l+l+/+U.R.O.R.L.O.G.L.J.L.L.I.L.L.L.L.L.L.L.L.L.L.J.L.L.L.L.L.L.L.I.R.I..+I.I.I.R.L.L.L.L.", -"1 1 4 4 ! 7 I l.W. + +`.>+'+!+^+|+|+4+|+4+4+6+4+6+6+6+c+6+8+8+8+8+c+c+c+c+i+c+i+c+k+k+k+h+h+k+h+i+h+h+i+f+f+f+h+h+k+h+p+p+p+o+o+m+m+h+f+m+p+k+p+k+h+h+h+c+c+6+4+3+4+4+4+^+5+f+m+y+y+t+x+y+y+y+x+x+y+B+y+B+y+y+y+y+y+y+y+y+y+y+x+y+x+s+x+t+y+s+s+s+o+s+t+p+p+p+h+h+e+^+)+^+e+r+t+v+r+p+q+q+r+p+q+q+q+q+r+r+l+r+r+l+r+l+l+a+/+z.O.O.D.G.L.G.G.A.J.L.J.I.L.R.L.R.I.O.L.J.L.J.I.G.G.L.L.R.L.R.L.I.L.L..+I.L.L.I.L.L.", -"4 ! 2 1 4 e _.H.W.W.`. +`.`.-+!+'+[+[+|+6+|+4+4+|+6+6+6+c+0+8+9+b+8+0+c+f+c+h+c+h+h+h+h+h+k+h+h+h+i+i+i+m+m+i+p+i+h+p+k+p+m+p+p+o+o+o+o+o+m+m+p+m+p+p+k+k+k+c+c+c+4+4+4+^+^+5+i+s+x+x+y+x+x+x+y+y+x+y+y+y+B+y+y+y+y+y+y+y+y+s+y+t+y+y+y+s+s+y+s+t+s+t+m+q+p+p+k+e+h+e+{+{+3+b+q+t+t+q+w+r+t+r+w+l+w+r+q+q+r+l+l+r+l+r+a+a+/+z.O.O.G.B.G.A.A.A.A.L.L.L.L.L.O.L.L.J.L.O.L.J.J.J.J.L.J.J.O.L.R.L.I.I.L.L.R.R.L.O.L.", -"4 ! 2 4 1 s |.H.H.W.W.W.W. +W.=+,+_+}+|+4+4+6+4+6+6+6+6+6+4+8+8+c+c+8+8+c+f+i+i+f+h+h+i+h+k+i+i+f+m+h+i+h+m+f+k+i+i+m+h+k+m+m+m+m+q+m+m+p+p+p+p+p+m+p+h+h+k+k+c+c+4+c+{+4+^+|+5+f+y+x+y+y+y+x+x+y+x+x+y+y+x+y+x+B+y+y+y+y+y+y+x+y+s+s+y+s+s+t+x+t+s+t+m+s+p+m+p+k+c+c+4+)+^+e+l+t+t+p+w+p+q+r+q+q+l+l+l+l+r+r+l+l+l+l+a+a+Y.z.G.G.G.D.G.G.C.A.A.C.J.A.J.L.L.L.L.L.L.L.L.L.J.L.J.L.L.J.O.O.L.L.R.L.L.L.L.L.L.R.L.", -"! 4 ! 4 4 q |.H.H.Q.H.W.V.F.V.W.Z.=+!+}+6+6+4+c+4+c+6+0+8+0+8+8+0+8+f+c+f+c+f+h+c+h+k+k+i+h+k+m+h+i+o+i+o+k+p+f+h+m+m+p+m+k+p+p+p+m+p+p+m+m+m+p+p+p+m+p+p+p+h+c+c+h+e+c+4+4+^+6+g+o+t+y+t+y+y+x+y+y+y+x+y+y+y+y+y+y+x+y+y+y+t+y+x+v+x+x+t+y+x+m+s+s+s+t+q+q+p+p+k+c+4+4+)+{+3+k+q+r+q+p+q+q+q+n+q+q+r+l+q+l+l+l+k+k+a+a+/+U.O.O.O.G.G.C.C.y.D.C.C.C.A.L.B.O.O.O.O.O.L.L.L.L.L.O.L.O.L.L.O.O.L.R.L.R.O.O.O.L.L.O.", -"! 4 4 4 1 F l.H.H.H.H.H.H.Q.H.H.F.V.=+!+^+4+4+c+4+c+|+6+6+0+8+8+c+8+c+c+c+h+c+k+h+f+f+h+h+h+i+i+f+h+m+h+h+h+m+m+h+p+p+p+m+m+m+o+p+q+p+q+p+p+m+m+p+p+p+h+h+k+p+k+e+0+c+4+4+|+^+[+5+f+m+x+x+y+y+x+x+y+y+y+y+x+B+s+x+y+y+t+o+y+y+t+y+y+v+x+s+s+v+s+o+t+o+o+s+q+m+m+k+h+4+4+<+)+{+e+m+t+q+q+q+q+r+l+w+k+k+l+q+q+l+l+l+k+a+a+/+z.O.G.O.L.L.A.C.A.G.C.O.B.L.A.C.B.B.O.L.L.L.O.L.L.L.O.O.O.O.O.O.L.L.L.L.R.L.O.O.L.O.O.", -"4 ! 4 2 9 I 2.n.t.H.H.t.H.H.n.H.H.F.V.Z.!+^+4+4+c+8+c+6+8+8+0+c+0+c+c+c+g+8+h+f+c+h+h+f+f+f+h+f+h+o+i+f+m+m+k+i+q+k+m+m+m+o+k+m+p+p+p+m+q+p+p+p+p+p+k+p+k+h+h+h+h+e+h+c+4+4+4+4+|+8+o+t+y+y+y+y+y+y+y+y+y+t+y+y+y+x+x+x+x+y+t+x+s+s+s+s+s+t+y+t+t+s+s+s+o+m+p+k+p+e+c+4+{+{+{+4+l+q+r+r+q+q+l+l+l+w+l+k+l+l+k+l+l+e+g+1+Y.R.O.O.O.O.L.L.L.L.J.L.J.G.C.L.C.A.G.C.C.C.D.O.O.D.O.O.O.O.D.O.G.L.J.L.L.O.O.L.L.L.L.O.", -"4 4 ! 2 2 F 2.n.p.n.t.t.n.Q.n.n.n.p.p.V.Z.!+^+|+4+4+c+4+c+6+8+c+0+0+g+c+i+c+c+c+h+c+i+i+h+o+h+o+f+f+o+o+i+m+m+m+m+k+o+q+m+o+p+m+p+p+p+m+o+p+p+p+m+m+h+m+p+p+p+k+k+h+e+c+4+4+4+4+^+|+f+m+s+y+y+t+y+w+y+s+y+t+y+s+y+t+y+y+s+y+o+y+t+y+s+x+s+s+s+s+y+o+o+s+t+o+m+o+m+k+e+4+]+{+$+3+e+q+q+r+q+q+n+q+k+k+n+l+l+l+k+a+l+a+a+a+U.R.L.L.O.O.L.L.L.L.J.G.L.L.C.L.L.G.G.D.y.y.y.D.B.O.O.O.D.O.D.R.D.D.G.J.L.O.O.L.O.O.O.O.", -"! 4 ! ! 9 I 2.t.p.t.p.t.t.n.t.t.H.p.p.l.E.V.!+^+6+8+4+c+b+6+c+b+8+8+0+f+g+c+h+h+c+f+h+k+k+f+o+i+h+o+f+f+o+f+o+f+m+m+p+m+p+m+o+p+m+p+p+q+p+p+p+p+p+m+q+p+p+h+p+p+m+k+4+c+c+c+4+6+6+|+5+8+o+n+y+y+s+x+s+x+s+t+s+y+t+y+s+t+y+m+t+y+x+s+s+s+y+s+t+y+m+t+t+o+p+p+p+h+k+k+h+b+4+{+>+{+3+l+q+k+r+k+r+l+k+l+l+l+e+e+e+k+a+a+a+/+U.G.O.G.G.L.O.L.L.L.J.J.L.L.G.A.L.O.O.B.C.C.G.O.D.B.O.O.G.O.O.R.L.L.O.O.O.O.G.L.L.O.O.O.", -"! ! 1 ! 8 q 2.2.w.t.s.t.t.n.t.n.n.p.p.p.n.n.Z.=+^+6+4+0+e+8+0+c+b+8+8+0+f+f+c+i+h+h+h+h+h+c+f+i+f+m+m+f+m+f+o+k+p+m+k+h+o+o+o+p+o+o+m+m+s+p+p+p+p+p+o+p+p+p+m+p+p+p+e+c+c+c+c+4+6+6+5+8+f+y+s+y+y+y+t+x+s+B+t+y+s+y+x+x+y+y+s+o+x+t+t+s+s+s+m+t+s+s+t+q+q+q+q+m+h+k+c+4+3+{+$+{+3+e+q+k+k+k+k+k+k+l+k+k+k+l+e+e+e+a+a+Y.R.O.O.O.D.G.L.O.L.L.L.G.G.J.G.G.L.O.L.L.A.A.G.O.D.D.G.B.O.D.R.O.D.L.O.O.O.G.O.O.R.R.O.O.", -"! ! ! 8 8 s 2.<.n.2.t.<.<.t.<.t.<.n.w.n.n.n.l.F.=+!+6+b+c+4+b+8+8+8+8+b+c+c+g+i+c+k+i+f+i+i+h+o+m+i+i+m+o+m+o+m+o+p+m+q+p+p+m+m+p+s+s+q+m+o+p+p+s+o+s+m+p+m+q+p+h+p+h+e+c+c+b+8+b+|+|+5+0+m+s+x+s+y+B+t+v+t+x+s+x+s+y+t+m+s+t+y+o+s+s+t+t+s+t+s+s+o+o+o+o+m+m+k+p+h+i+b+4+2+&+%+{+e+r+q+k+k+r+k+k+l+e+a+e+a+a+a+a+a+/+U.O.O.O.D.O.L.G.L.G.G.G.J.L.J.J.J.L.O.O.O.O.O.O.B.O.G.O.G.O.R.O.O.O.D.O.O.O.G.L.O.L.L.R.R.", -"! < , 8 ! s +.<.<.2.t.t.<.p.<.n.<.n.<.p.2.n.l.p.S.;+(+|+c+c+b+8+8+g+8+b+0+0+f+i+c+k+h+f+f+i+h+i+o+o+i+i+i+f+f+f+f+m+m+m+m+p+q+m+m+m+m+p+p+s+p+p+p+o+q+s+p+m+o+q+o+p+m+k+i+c+c+c+c+4+4+|+6+f+o+y+t+y+v+y+x+x+x+t+x+s+s+v+s+s+m+t+y+o+s+s+s+s+q+s+s+s+t+t+q+k+m+i+k+k+e+b+e+^+%+*+*+d+e+r+k+k+e+d+k+b+e+a+e+e+3+e+d+a+Y.R.G.G.O.D.O.L.G.G.B.L.L.G.L.L.G.L.O.O.L.L.G.O.G.O.O.G.G.G.O.O.D.D.D.O.G.O.O.G.L.O.O.L.O.R.", -"! , | ! ! 8 ` 2.n.<.<.<.p.2.p.<.2.<.n.2.2.2.2.l.l.S.=+(+6+0+c+0+c+8+8+8+g+c+c+c+h+0+c+c+h+h+k+i+f+h+i+m+f+o+o+o+q+q+p+p+p+o+m+p+p+p+p+p+p+p+m+m+s+o+o+p+p+p+m+m+p+p+r+h+h+k+e+c+e+c+4+|+6+0+f+o+y+t+y+s+y+t+t+x+t+s+t+y+s+s+s+y+o+t+t+s+r+t+s+s+r+q+m+m+p+m+q+q+i+i+i+c+b+3+{+X.*+3+k+k+k+k+k+k+e+e+e+e+3+a+3+3+a+/+U.O.O.O.G.D.G.D.J.G.G.O.O.L.L.L.L.G.O.G.L.O.O.L.L.G.G.L.L.L.G.O.R.D.O.G.O.O.O.L.L.O.O.O.O.R.", -", , < ! ! 8 I +.<.<.t.<.<.<.2.t.m.<.<.t.t.<.m.2.n.k.S.=+}+6+b+8+c+c+0+8+8+g+f+0+h+f+f+c+i+f+h+h+f+o+i+o+m+f+m+m+i+o+m+m+p+p+p+p+q+o+o+s+s+p+q+o+q+o+o+o+s+p+p+o+p+m+p+p+h+h+c+c+e+c+c+|+}+6+0+o+x+x+y+s+x+v+t+x+t+x+s+t+y+t+m+s+t+o+t+t+s+s+q+s+s+t+q+o+q+m+i+p+k+k+k+c+e+3+{+*+*+:+e+g+l+l+l+l+e+a+3+a+e+a+3+/+a+Y.R.L.G.C.L.D.L.O.B.O.D.D.L.L.L.L.L.G.O.O.G.O.O.L.L.O.G.G.L.L.O.O.R.D.D.O.O.O.O.L.L.O.O.O.R.R.", -", < , ! ! 8 I +.<.<.<.<.2.2.<.2.2.<.<.}.<.2.}.}.<.p.l.S.=+[+5+b+8+0+b+c+0+0+8+i+c+c+c+i+i+h+i+i+i+f+o+h+i+h+o+o+m+m+k+q+p+p+m+o+m+s+p+p+m+p+p+s+m+s+m+p+p+p+o+p+k+p+p+k+p+k+k+h+h+4+c+4+4+|+8+f+o+s+x+t+s+x+s+t+s+t+t+s+o+s+t+t+x+o+s+s+p+q+s+s+o+q+p+p+p+k+k+k+i+i+c+l+c+3+]+X.*+%+a+l+c+e+b+e+e+3+e+3+3+3+3+]+/+U.R.L.C.L.O.O.O.C.G.D.B.C.G.G.G.G.G.O.O.G.O.L.G.O.O.L.O.O.G.O.O.L.L.O.G.O.O.O.O.L.O.O.L.L.R.R.", -"- , - , , , s ..<.}.}.<.<.2.<.<.2.<.<.}.}.}.}.<.<.2.p.k.V.!+[+8+j+f+b+b+8+0+8+8+f+i+c+f+i+i+h+k+h+f+f+f+o+f+i+k+o+m+m+m+m+p+p+t+m+p+p+p+p+p+p+p+p+s+m+m+p+p+o+m+q+k+m+m+m+k+k+c+h+c+c+6+4+4+|+0+i+p+x+y+t+x+s+y+s+s+t+s+t+s+s+o+s+t+m+t+s+o+m+t+o+t+q+o+o+o+o+k+k+k+c+b+b+3+{+*+*+*+a+l+b+l+b+2+e+a+3+3+/+a+/+/+Y.D.O.G.G.O.O.O.O.G.C.G.D.D.G.B.D.C.C.O.O.G.G.O.G.G.O.O.O.O.O.O.L.L.L.O.O.O.O.R.R.L.L.O.O.L.R.R.", -"- - , - - < e +...<...<.<.<.<.<.}.2.<.<.}.}.}.}.}.}.2.2.l.S.!+[+6+b+b+8+0+b+8+8+0+c+i+c+i+h+h+f+h+h+o+o+f+o+m+o+k+p+m+p+p+m+m+m+p+m+m+o+s+m+o+p+m+p+s+p+p+s+p+p+p+m+p+k+p+m+h+k+k+c+b+c+4+4+4+|+c+o+o+s+x+t+y+s+t+t+s+y+o+t+o+m+s+m+t+s+o+s+s+s+q+o+o+q+l+o+l+k+k+i+k+b+b+b+]+%+*+*+d+e+e+a+a+e+2+3+a+3+3+/+/+Y.U.z.B.O.B.L.L.G.G.L.J.L.G.B.C.D.y.L.C.G.C.B.B.y.G.O.D.D.O.G.O.R.O.L.L.O.O.O.O.L.L.L.L.L.O.R.O.O.", -"- - - - - < | O +.+.<.....<...<...<.+.<.<.}.}. .}.}.2.2.p.l.S.!+[+0+c+b+8+0+c+b+0+f+g+c+i+c+h+h+f+i+h+m+f+o+f+m+o+k+p+p+m+m+m+o+s+p+s+o+s+p+o+o+o+p+o+m+m+m+p+m+p+p+m+m+h+p+h+h+e+h+c+c+4+4+4+|+6+h+q+v+v+s+o+x+t+t+s+o+y+o+t+p+s+p+q+p+q+q+o+m+s+q+o+o+q+o+o+i+e+c+l+b+b+4+3+*+*+*+3+d+e+e+3+3+3+3+3+/+]+/+X.z.D.D.O.G.C.L.O.L.J.J.J.C.J.G.J.G.G.O.B.L.L.G.B.G.G.O.O.D.G.G.G.R.G.O.O.O.O.L.L.R.R.L.L.L.L.L.O.O.", -"- - - - - , < s +.+.+.+.....<.....+.}. ...<. .<.}...<.<.<.l.p.Z.!+|+b+g+c+8+8+0+g+8+g+i+f+i+i+i+h+f+i+i+m+i+h+o+h+m+m+h+p+p+q+p+p+m+o+p+m+t+o+o+q+m+p+p+p+p+o+p+p+p+p+p+m+h+k+i+h+c+e+b+c+0+4+4+4+6+f+o+t+v+s+o+s+s+s+t+o+t+s+o+s+o+o+q+s+p+s+p+o+m+q+p+o+o+k+k+k+k+c+b+2+b+]+%+*+*+:+e+3+e+a+3+3+]+a+]+/+Y.U.z.R.O.G.L.C.G.L.R.O.G.G.L.L.O.O.C.L.O.O.O.O.O.A.G.L.J.D.O.G.O.D.O.O.O.O.R.O.L.L.L.L.L.O.O.O.O.O.L.", -"- - - - @ - < e O -.+.f.+.+.....<.+.<. ...+.....2...<...}.2._.p.;+!+|+9+j+0+g+0+f+0+8+b+g+8+g+k+k+h+i+i+i+o+h+o+i+k+p+p+o+m+p+m+p+m+o+t+m+o+o+o+t+p+q+m+o+m+q+o+o+m+m+k+o+m+p+i+i+h+c+0+4+4+4+6+^+|+0+m+t+t+s+t+o+t+s+t+o+t+p+q+v+s+o+p+s+p+q+p+p+o+q+p+p+o+o+i+b+b+c+b+2+a+3+*+*+*+{+e+d+3+3+3+3+/+]+/+Y.U.z.z.D.G.G.L.C.O.L.O.G.G.J.G.C.L.L.O.O.O.D.O.O.O.D.L.L.O.O.D.D.O.D.O.D.D.G.O.O.R.O.L.O.O.O.O.O.O.R.R.", -"- @ - = @ - , i s +.O -.........+.+. .<......... .......<...2.4.k.Z.!+[+0+g+c+c+b+8+g+0+0+i+c+c+h+k+h+h+f+i+o+h+p+m+o+h+p+p+m+m+o+s+m+m+m+m+m+m+o+o+m+q+p+q+m+o+m+k+p+m+m+f+i+f+k+k+c+b+c+0+4+4+|+4+4+f+m+s+t+s+t+s+t+o+s+m+q+s+p+q+p+q+q+q+m+p+q+p+m+k+k+k+k+i+f+l+e+b+b+4+]+%+N.*+:+3+3+3+a+]+]+]+/+X.U.z.D.D.O.C.L.O.O.L.O.G.O.O.O.O.O.L.O.O.O.O.O.O.O.G.L.L.O.O.D.O.G.G.O.O.O.O.O.O.O.O.O.L.L.O.O.O.O.O.R.O.", -"- @ @ @ @ @ , < v S +.S S -.........S +... . . . . ... . .}...+.8.|.S.!+[+8+c+f+8+f+8+g+0+f+f+c+h+i+f+i+f+f+o+h+h+h+p+m+o+p+p+m+o+p+p+q+m+t+t+p+p+m+m+m+m+m+p+q+m+k+h+m+o+f+m+f+h+h+c+c+c+0+4+4+|+^+|+0+o+s+t+s+q+p+s+o+t+m+p+m+p+t+m+o+o+q+p+m+k+k+o+p+o+i+k+e+c+e+b+3+b+3+3+%+X.*+3+3+3+a+]+]+/+/+X.z.D.D.z.D.C.A.C.B.B.B.O.D.D.O.D.O.O.L.O.O.O.O.O.O.O.L.C.L.O.R.O.D.G.G.O.O.O.O.R.O.O.D.O.O.O.O.R.R.R.O.R.R.", -"@ - - @ @ - - , i O S ..S ..O S -...S +... ...........+.....S G O F 8.S.(+6+c+c+c+8+f+8+8+0+c+h+f+f+i+f+f+f+f+h+h+m+h+i+h+h+p+p+p+m+p+m+p+m+m+m+o+q+p+p+p+k+o+m+q+m+p+o+h+o+i+m+h+k+h+c+c+4+c+4+4+|+}+|+0+o+s+q+s+t+q+t+s+v+s+s+q+p+q+p+q+q+k+q+m+o+k+o+k+k+k+h+k+b+a+4+2+3+]+%+*+*+:+]+3+]+a+]+/+X.U.U.D.D.D.B.C.C.G.B.O.D.D.B.B.D.B.B.B.B.B.L.O.O.L.R.O.O.O.O.O.L.O.J.O.G.O.O.O.O.O.O.O.O.O.G.O.O.O.O.O.R.R.O.", -"@ @ @ @ . . @ - ( r S -.S -...S S S -.S S .. ...S ..+...S r G r i e F 8.S.(+0+b+b+9+0+8+f+0+0+c+c+f+i+i+i+h+i+k+m+p+i+o+q+h+o+i+q+o+m+o+m+p+p+m+m+p+p+m+m+m+o+m+h+o+h+o+o+o+k+k+h+k+k+c+e+c+4+e+3+4+_+^+6+f+m+t+s+s+p+q+q+q+r+p+q+q+q+p+o+o+k+q+k+m+k+n+o+i+k+c+b+c+j+3+2+3+]+%+*+*+:+]+3+]+/+%+X.U.D.z.D.C.D.D.D.D.D.y.B.B.B.B.B.D.D.O.B.C.B.B.B.D.O.O.D.D.O.O.O.R.O.O.O.O.O.O.R.R.O.R.R.O.R.O.R.R.D.O.O.D.R.R.", -"@ - @ @ @ @ @ - ( k M M S S W S S S S ..S M .S S S -.M W r k : a a s I j.Z.[+8+f+i+b+0+8+0+f+0+f+i+h+f+f+i+i+h+k+h+h+m+h+q+p+p+m+m+q+m+p+h+o+p+q+o+m+p+p+m+o+f+m+f+m+f+f+h+m+o+k+h+h+c+0+b+c+6+4+4+4+^+|+8+q+p+q+s+t+p+p+p+m+p+m+o+p+p+k+q+o+i+m+k+o+i+k+k+c+l+b+j+3+b+3+3+]+*+*+:+:+3+/+]+/+Y.U.z.z.B.R.B.B.D.C.C.C.B.G.O.O.O.G.C.B.B.G.B.C.C.L.R.O.O.O.O.O.L.R.O.R.R.O.O.R.R.R.R.R.O..+R.R.R..+R.R.R.R.R.U.R.", -"- - @ @ @ @ @ = - a B W M M .S S M O S S W K S S G r r 6 a } } 6 6 a s ` k.=+[+8+i+g+b+c+c+h+0+8+f+h+h+f+h+h+f+i+m+i+o+h+h+o+k+p+h+p+i+p+p+p+m+h+p+p+h+p+h+o+o+m+i+m+m+i+h+h+m+i+h+k+i+0+c+c+6+c+3+4+)+^+5+f+p+p+p+t+p+p+p+p+p+p+q+k+m+i+q+q+k+o+k+k+i+k+l+i+b+b+c+2+2+3+]+]+T.%+*+*+{+/+]+X.U.D.D.D.B.O.B.B.B.D.D.D.B.B.B.O.R.B.L.L.B.C.B.G.C.G.B.D.O.R.L.R.O.R.R.R.R.R.R.R.R..+.+.+.+.+/+.+.+/+.+.+/+.+.+U..+", -"@ @ @ @ @ . @ = < r M K K M M W S M S K S M M M y k : ( } ( : } 5 a | s _.E.!+6+8+c+0+8+8+8+c+f+0+c+c+c+f+f+i+f+i+h+i+o+q+o+m+m+p+o+m+m+h+m+h+p+i+i+p+i+o+m+k+k+p+h+i+h+p+k+i+i+k+h+b+k+c+4+c+4+|+4+|+_+^+b+o+t+s+p+t+q+q+p+p+o+o+o+n+p+h+k+i+k+i+k+k+i+i+b+c+b+b+3+3+3+]+]+*+*+%+:+]+/+X.Y.z.B.R.R.z.D.B.B.y.c.D.D.O.O.D.O.D.G.L.O.L.O.B.O.C.R.O.R.O.O.R.R.R..+R.U..+/+.+/+.+.+z+.+z+/+z+/+z+/+z+/+d+/+/+/+/+", -"@ @ . . @ @ . @ @ - 6 B K K M M M M M M M G G j j 5 } : : } ( : : 6 ( | 8 s 4.S.(+8+f+c+c+c+8+8+g+f+g+f+c+g+f+i+i+g+o+i+f+h+p+k+m+h+o+o+p+i+o+o+m+m+o+m+m+i+m+p+h+i+h+o+i+h+h+p+h+i+i+c+k+k+c+4+c+4+3+^+'+!+|+c+k+p+p+m+s+p+q+k+k+o+k+k+q+m+h+h+k+h+k+k+e+i+b+b+2+b+4+3+]+]+%+%+*+%+/+%+/+U.D.D.B.B.O.B.z.y.B.D.B.B.D.D.B.D.R.O.O.O.B.O.L.O.O.O.R.R..+R..+.+.+:+.+/+/+/+z+/+z+/+d+/+a+/+a+d+a+a+d+d+a+r+l+r+d+d+", -". @ @ @ @ @ @ @ - , r B K B M B B W G B t t 5 5 [ } { : : } } } : } 6 a 7 F 8.Z.(+8+c+8+8+8+b+8+8+0+0+f+f+f+f+f+h+f+f+h+o+h+m+k+o+f+m+i+p+m+h+k+h+h+h+k+p+o+h+k+h+i+f+i+i+k+h+k+k+h+h+0+0+c+c+c+4+4+3+<+~+~+6+o+q+q+p+p+q+p+o+q+q+o+o+i+i+k+k+i+k+c+c+i+e+j+b+b+3+3+3+1+]+X.*+%+*+%+Y.U.U.D.R.B.D.B.B.D.B.C.y.C.B.c.C.B.B.D.O.R.z.O.O.R.R..+.+.+.+.+:+:+:+:+:+d+d+d+d+d+a+d+a+a+z+r+r+r+r+r+w+r+w+r+r+r+r+p+p+", -"@ @ . @ @ @ . @ - 6 p K r M W v M y y 6 } } ) } } { - : { } } ( ( : a a s 8.j.=+5+c+g+g+8+b+g+f+c+8+0+c+i+i+i+h+h+f+f+h+h+m+m+m+i+p+i+k+p+m+k+m+q+m+h+k+h+h+k+o+i+f+f+i+i+i+h+k+i+k+h+c+c+4+4+4+0+^+^+)+'+(+h+m+q+o+h+o+q+m+h+k+k+q+k+o+h+k+k+k+k+c+8+b+7+3+b+3+2+{+]+%+X.*+*+*+Y.Y.z.B.O.B.O.B.R.R.B.c.B.y.B.B.B.y.B.B.B.O.O.R.R.R..+:+.+:+d+d+d+d+z+d+u+d+d+d+d+r+l+r+r+r+r+r+r+r+r+r+r+r+r+w+l+t+s+r+r+t+", -"@ @ @ . @ @ . . - ( y r K r B p r 6 : } : ) { ) { = { { { : { } } : : 6 | s 8.j.!+7+8+8+0+0+0+c+b+c+i+f+f+i+i+k+i+f+f+f+h+h+h+h+o+h+p+h+i+o+f+i+i+i+k+f+i+h+m+h+h+h+h+i+i+f+i+h+k+h+e+c+0+c+c+6+4+{+3+)+{+)+6+k+p+q+q+k+o+k+p+h+o+k+k+k+l+i+c+c+b+b+b+8+e+b+2+2+1+a+]+%+X.Y.Y.Y.Y.z.D.G.L.O.B.R.O.B.O.B.C.R.O.B.y.D.D.C.D.O.R.R..+.+:+z+d+d+d+d+d+d+k+r+r+r+v+r+r+r+r+t+w+w+t+t+r+r+w+w+t+t+t+v+v+v+t+v+v+t+", -"@ @ . . . @ @ . - - k p t W k 6 : } { = - - { { { { - : = { ( : } } : : ( 7 F 8.S.(+5+g+c+c+8+0+8+0+8+0+8+f+f+k+h+i+i+i+h+o+i+h+i+h+o+o+i+o+o+f+o+f+m+o+k+h+h+i+f+i+h+h+c+h+c+h+c+i+c+c+c+4+c+4+0+|+{+)+>+>+|+c+h+q+o+k+o+k+p+k+i+i+i+i+i+g+c+i+e+8+b+7+2+b+2+3+]+]+%+X.Y.Y..+U.z.z.L.L.O.O.C.O.R.R.R.C.C.B.O.B.B.O.B.C.B.B.R..+:+z+d+d+d+u+r+u+p+r+v+r+r+p+s+q+t+t+r+r+r+q+t+t+t+v+r+t+t+v+t+t+t+v+y+x+v+v+", -". @ . @ . @ @ . . = 6 k j j } ) = = = = = - = { ) { { { { { : { } } } } 6 a s H j.Z.[+8+b+b+c+8+0+8+0+g+f+c+h+f+k+h+i+h+k+h+f+f+h+h+f+h+h+f+f+f+f+f+f+h+f+i+i+i+i+i+i+k+h+c+i+c+i+c+g+c+0+0+4+4+4+4+4+]+{+>+'+c+q+m+k+o+h+m+k+k+k+k+k+k+l+g+g+b+0+b+7+b+4+3+3+1+1+]+/+x.u.U.U.R.z.B.O.O.O.B.O.B.B.O.B.B.O.O.D.O.G.B.B.R.z.R..+:+:+d+d+k+k+k+k+q+q+k+q+p+s+r+p+s+r+r+t+s+s+t+v+s+t+t+x+t+v+y+v+t+y+y+v+t+x+y+", -". @ @ @ @ @ @ = 6 } ) = { = { = { = = { { ) ) = { { } : { } } } [ } 6 i s 8.E.!+5+8+8+8+b+8+b+0+0+0+0+0+0+i+h+k+f+g+h+h+f+f+h+f+f+h+f+i+f+i+g+i+h+i+i+f+i+i+k+h+c+h+f+i+i+f+c+c+c+c+c+c+6+4+|+4+)+{+$+>+^+e+o+k+k+k+h+h+i+i+k+k+c+b+b+c+b+b+b+2+3+2+2+3+1+]+%+X.U.U.z.U.B.z.D.B.C.D.B.B.O.O.C.C.C.O.R.R.z.O.O.z.O.z..+.+r+e+k+k+k+k+n+g+o+o+q+t+p+t+t+r+y+t+t+v+v+s+t+t+v+x+v+x+y+t+y+v+v+B+w+y+B+s+y+", -"@ @ . . . . @ = = = = = & = = { = = { = = ) = { { ~ : { { } : } : 5 a r i s 8.S.(+6+b+c+8+c+0+b+b+8+g+0+f+f+c+h+h+f+f+i+h+i+i+i+i+f+h+f+f+f+f+f+i+i+h+i+f+h+h+h+h+c+i+c+c+c+f+c+c+c+8+0+3+|+4+^+^+{+ + +)+0+k+p+k+o+k+k+k+k+i+i+k+8+b+j+2+9+2+b+2+2+4+1+/+1+X.x.z.z.z.z.z.D.z.D.B.O.B.B.B.B.L.C.R.O.R.U.R.D.O.O.z.R..+d+3+e+e+e+k+i+e+i+k+k+o+k+q+t+r+t+t+x+v+v+t+B+s+B+y+t+s+v+s+y+y+y+t+w+y+y+t+B+t+", -" @ + . @ @ = @ @ @ = = = = = = ) ) { - ) ) ) ~ { { { } } [ 6 5 6 6 a s F l.Z.[+8+c+c+c+c+8+c+0+8+8+c+f+0+f+0+i+f+i+h+f+i+h+i+f+i+h+i+f+c+f+f+i+h+k+c+k+k+e+h+k+h+k+c+8+f+c+b+c+4+0+e+4+4+3+)+$+$+ + +|+k+p+k+k+k+i+i+k+e+c+e+b+c+b+b+b+4+4+b+2+2+1+]+%+X.z.z.z.D.z.z.O.z.B.C.C.O.O.O.B.R.B.O.R.R.z.z.z.z.R.R..+:+d+3+c+b+b+l+g+l+b+b+c+i+k+i+o+q+s+q+t+v+v+t+t+t+s+v+y+y+y+v+t+A+A+t+y+t+y+y+y+y+", -". . @ @ % . . $ @ % = = { = & = = = = = - { ) ) } } } { } } 5 } 6 5 k k i s ` j.=+7+8+b+c+b+b+8+8+8+0+8+b+b+c+i+c+c+h+f+c+f+f+h+c+f+i+f+c+f+i+i+0+h+h+k+c+0+f+c+c+e+c+c+b+c+b+0+b+c+4+6+2+4+|+3+^+&+Q. +<+c+k+p+i+i+k+k+c+h+c+0+c+4+b+3+4+2+2+2+1+3+]+1+X.x.g.z.g.a.z.z.z.z.B.R.R.R.U.R.R.R.R.R.R.R.R.R.D.O.R.R..+:+3+e+3+l+b+j+e+b+b+b+j+b+j+b+l+k+k+q+s+t+y+y+y+w+B+y+t+t+t+x+y+y+t+w+w+A+A+t+y+y+", -"@ . . . $ @ @ @ @ & @ = = = @ & & ) = = = - { ) ) = { } { } } 5 5 6 5 6 6 a i I 8.E.(+6+b+0+0+8+8+8+8+0+f+0+g+0+f+f+0+c+i+c+i+f+f+c+c+i+f+c+f+0+i+c+0+c+h+h+c+c+f+f+h+c+c+0+0+c+0+0+0+c+4+4+4+4+{+)+{+Q.Q.{+4+k+k+k+c+e+k+e+e+e+b+b+b+4+b+3+2+4+3+<+]+]+%+Y.U.U.U.U.x.U.U..+.+.+.+.+.+.+.+.+.+.+U..+U.R.R.R.R.R.R.#+:+2+b+2+j+3+j+2+2+b+3+e+4+b+4+b+e+e+k+o+k+s+r+x+t+t+B+w+B+t+t+y+A+y+y+y+y+w+y+t+y+", -" @ @ @ @ @ @ @ . @ @ = @ @ = = = ) = = = - { { ) ) } } ~ { } { } [ g ( 6 5 k a a i I 4.Z.(+8+2+b+c+6+8+8+8+0+c+0+0+8+c+c+c+0+g+c+c+0+f+h+h+0+f+0+i+c+f+i+f+8+c+0+f+0+0+8+8+f+c+c+8+b+c+4+6+c+4+4+^+4+{+>+&+m.@+3+b+n+i+k+i+c+e+c+c+c+e+4+3+4+b+4+3+3+3+]+a+]+/+Y.*+/+*+/+*+*+:+#+*+#+:+:+:+:+/+:+.+/+.+.+.+.+.+R..+.+:+3+3+3+b+2+7+a+b+2+2+4+2+a+2+2+2+2+3+b+b+i+k+t+t+y+B+w+t+w+t+B+t+y+y+w+w+w+y+A+A+y+", -" . % @ @ @ = = = @ @ = = = = = = = = = { } } { { [ } } } } } } 5 6 k a a s ` j.!+5+8+b+b+6+8+8+8+0+8+8+0+0+f+0+c+0+0+0+c+0+8+0+c+c+c+0+f+c+c+c+c+f+c+0+8+c+c+0+0+8+0+c+6+0+0+8+6+4+4+4+4+^+{+$+++q.K.1+b+g+c+c+b+c+b+b+3+8+4+b+3+2+3+2+3+3+3+3+3+:+d+:+:+d+:+d+:+d+d+3+d+e+e+e+d+d+d+d+d+:+d+:+/+/+/+.+*+.+:+{+3+3+4+2+7+2+a+2+a+2+7+2+a+3+3+4+3+2+4+a+e+r+r+w+v+B+t+A+w+A+s+y+y+y+y+y+w+y+w+y+", -"@ @ @ @ @ = @ @ @ % = = & ) = = { = { { { { { : : ) } [ { 5 } 6 5 6 j 6 k a a s |.S.!+6+8+6+c+4+6+b+4+0+0+0+0+8+0+0+g+c+0+g+8+g+8+f+0+f+g+0+0+0+8+8+0+0+c+0+0+f+b+8+c+0+8+c+4+8+4+0+c+4+3+^+3+{+{+%+q.T.]+b+e+k+b+c+c+c+b+0+3+b+4+b+b+b+e+h+e+e+e+e+e+e+e+h+d+k+k+e+e+k+k+k+d+e+k+k+e+a+d+k+d+d+d+3+d+d+3+:+:+3+3+3+4+a+3+3+4+1+3+2+2+1+2+4+2+3+3+2+3+1+4+4+b+g+o+q+t+y+t+y+t+B+t+y+w+w+w+y+A+B+A+", -"@ @ @ @ @ % $ @ @ @ & = @ @ = % & & { { ) { ) ) { { : } } { } 0 ~ 5 5 6 5 g 6 j a r I l.Z.^+b+b+6+0+6+8+b+6+6+7+c+c+8+0+8+0+8+0+0+0+0+c+c+0+c+c+c+0+g+8+c+0+c+c+8+0+b+8+8+c+4+b+b+b+4+6+8+6+4+4+)+{+$+*+q.q.%+6+b+i+b+b+e+4+e+b+b+l+e+e+b+e+e+k+k+k+k+k+k+k+r+k+k+k+r+k+k+k+k+h+p+r+k+p+k+o+k+p+r+r+k+e+e+e+a+e+3+e+4+e+c+c+c+3+3+3+<+]+1+1+]+]+2+]+1+1+3+]+1+]+3+4+g+q+t+y+t+B+w+A+y+y+y+A+A+B+w+t+y+", -"@ . @ @ $ @ $ @ & @ & @ = % = & ) ) { = ) { { { } } { } } { ( } } 5 5 } 5 j 5 g 5 0 a r ` F.!+[+6+c+b+6+6+6+9+9+0+6+6+0+8+8+8+0+8+5+8+8+0+8+0+8+0+0+c+0+c+0+c+c+8+0+8+0+0+8+8+8+8+8+6+8+4+4+4+4+4+4+{+{+$+N.N.@+1+c+b+b+b+b+b+b+b+e+c+k+k+k+h+k+k+h+k+k+h+h+k+h+h+k+k+h+k+k+k+m+k+k+k+r+r+m+k+k+i+h+o+k+k+k+k+k+e+e+b+e+b+e+e+e+b+3+e+3+2+]+3+]+3+]+3+]+]+1+3+]+]+1+1+3+j+l+q+B+t+y+y+A+w+w+A+A+w+y+A+A+", -"@ @ % @ % $ = = @ = @ = & = = ) % { : { ) { { { { { } } ( } 5 [ } } 5 5 5 5 j j 5 6 i I 4.Z.(+|+6+8+6+7+5+5+6+8+5+8+6+0+8+9+8+0+8+9+9+8+b+0+8+8+0+0+0+c+0+8+0+b+8+8+8+8+6+b+8+6+0+b+8+6+6+4+^+4+^+{+{+T.N.i.N.3+b+b+e+c+e+e+i+c+k+i+k+k+e+i+h+k+h+k+k+k+h+k+k+p+k+p+k+p+m+k+q+k+h+h+h+k+o+o+p+q+k+q+o+q+k+k+p+h+o+i+k+c+k+k+i+i+e+e+e+b+3+3+]+1+]+]+1+]+]+]+1+]+]+1+]+2+j+n+o+y+t+y+y+y+y+y+A+A+B+A+y+", -" @ % % & @ & @ = = & = % ) ) = = ) { ) } } { { { { a { g } } } { g } 5 5 6 6 6 5 0 } a s I k.Z.[+8+4+4+6+|+6+6+6+6+6+0+6+9+5+6+b+0+0+5+8+8+8+8+0+b+8+c+0+8+0+8+0+0+c+c+8+b+8+b+b+b+6+6+4+4+4+4+4+^+)+{+$+N.N.$+{+b+e+b+l+i+k+e+k+i+k+h+h+i+h+k+k+k+h+k+h+k+q+k+k+k+k+m+i+k+k+o+m+q+k+p+p+q+q+k+p+p+o+q+i+m+o+k+q+k+k+i+q+i+k+p+k+m+k+l+e+b+3+3+]+3+]+]+]+]+]+]+3+]+]+]+1+3+a+l+q+B+w+A+w+A+y+y+y+w+A+B+", -"@ . @ @ & & @ @ & $ & & = ) = = { = ) - ) { [ { { { } } } 5 { g 5 5 [ ~ } } 6 } : 6 5 } 5 k v ` F.!+6+6+7+7+6+6+6+6+6+6+6+6+5+0+6+6+5+8+5+8+8+8+8+0+c+8+c+c+b+b+8+8+6+8+4+8+6+8+6+0+0+4+6+6+|+|+4+^+{+)+{+$+$+*+{+3+c+c+c+e+c+k+i+e+h+e+k+k+k+k+h+k+k+h+k+k+i+o+i+m+k+k+p+q+o+k+k+o+p+k+k+k+o+q+o+p+p+o+q+q+p+o+k+o+o+q+k+q+m+k+m+k+p+p+k+k+c+i+e+3+3+3+]+]+]+]+]+]+:+]+]+]+]+3+b+g+s+y+y+y+A+y+A+y+y+A+y+", -"@ @ @ % @ @ % @ & @ @ @ = & = ) = = { = : - ~ } } { } ~ { } 6 5 5 0 5 5 0 0 5 : a { 5 } } } 5 : 6 i O 4.V.^+4+6+6+7+|+6+6+0+6+6+0+6+5+6+8+0+0+0+6+0+6+6+8+5+6+8+6+0+5+0+6+0+6+0+8+8+6+c+4+6+0+6+|+4+1+2+4+|+)+{+{+{+3+3+e+e+e+e+k+e+c+e+h+e+i+c+k+i+h+k+i+o+k+k+o+k+k+k+k+p+k+k+i+k+o+p+k+k+p+q+o+q+o+p+k+q+q+p+o+o+p+m+q+q+k+m+q+q+q+q+q+k+q+o+o+k+e+k+l+e+a+3+3+3+]+/+{+]+{+/+]+]+]+4+e+k+s+x+y+B+A+y+y+y+A+A+", -" @ @ @ % @ & $ & = & = = = ) ~ = : { { { : { { { ( { a { } 5 5 0 5 j 5 0 0 [ 5 } 5 [ g } 0 6 6 a i F l.;+[+6+|+6+6+|+6+|+6+5+6+6+5+5+6+5+|+6+6+6+6+6+0+0+6+0+6+c+6+8+8+c+4+6+8+8+7+6+9+6+4+4+|+|+|+4+^+<+)+]+3+3+e+e+e+b+i+c+k+k+c+e+i+c+l+c+e+b+c+k+e+k+o+k+i+i+k+k+i+m+m+p+o+k+i+o+m+o+h+p+o+q+k+m+m+p+q+p+p+q+q+m+o+o+q+o+o+m+q+o+o+o+q+k+m+q+k+p+r+k+e+a+3+3+{+]+/+]+:+{+:+{+{+4+4+c+o+t+t+y+A+A+B+y+B+y+", -"@ @ = @ @ @ & & & & $ & = = = = = } { : ) : ~ { ) { { : } } a 6 6 6 p k j 6 } 5 ~ } [ [ } } ( ~ } : | r 8.S.;+4+4+4+4+6+|+6+[+|+6+|+5+|+5+5+6+6+|+6+8+6+7+6+c+6+6+6+8+6+6+6+8+8+6+6+6+b+6+7+6+4+4+|+}+^+4+{+{+4+e+4+4+6+8+c+b+e+e+c+e+b+e+e+c+c+i+i+k+c+i+i+i+i+k+k+o+o+k+k+k+k+k+m+l+o+k+p+q+o+k+o+o+q+q+k+m+p+q+m+p+r+t+q+o+q+q+q+m+p+q+q+o+m+q+p+p+q+m+m+h+k+e+3+d+3+{+{+]+]+]+]+3+{+2+2+b+o+t+t+y+A+w+A+w+A+", -"@ = & $ % @ = = = = & = = : { { - { { : } 6 [ : } ( } 5 6 [ 5 5 k j p k j k j 5 0 } 0 [ } } : { } } ( i s 4.Z.^+4+4+4+|+|+6+6+|+|+5+6+|+|+6+6+6+5+6+6+6+7+7+6+6+6+6+5+8+8+6+6+9+8+b+6+4+6+6+4+4+|+^+}+_+^+^+3+^+3+4+e+4+2+b+c+c+k+c+e+b+b+e+e+c+e+c+i+k+i+k+k+k+h+h+i+p+k+i+n+o+k+m+k+o+p+k+p+m+p+q+o+o+m+q+q+p+q+q+m+p+m+t+o+t+t+q+o+o+m+p+q+p+q+o+p+q+p+t+p+p+k+b+e+3+3+{+{+{+^+^+1+^+4+|+4+f+p+t+y+y+B+A+A+A+", -"@ @ $ @ = = = & = { = { = ~ { { { { } { } [ } { 6 5 } 5 j k j j t p p k k k j 0 } } } } { { } { } } : a e ` l.=+^+4+|+4+|+^+|+6+|+|+|+6+6+|+|+6+6+6+6+6+5+5+7+6+6+6+0+6+6+0+6+6+6+6+4+6+6+|+6+|+4+4+^+^+3+{+^+3+6+4+|+b+3+4+4+e+e+k+c+c+c+g+i+e+c+e+c+h+e+i+i+h+k+k+k+i+o+q+i+i+o+k+p+p+k+h+k+q+o+o+q+q+q+p+h+o+q+m+q+m+p+q+t+q+q+t+t+p+q+q+t+q+p+q+q+t+t+q+p+r+s+q+k+d+d+e+3+4+3+]+^+^+^+4+4+b+g+q+s+y+A+A+A+A+", -"& = & & = & = = & { { ( = { = ) : ( } } } } [ : k 6 6 k k p r r t M M p k p j 0 5 [ } ~ { { { { { [ } { 6 s 8.S.!+4+|+|+|+^+|+|+|+[+[+}+5+6+|+6+|+6+6+6+6+6+6+|+4+4+|+6+6+4+6+7+6+6+4+4+6+6+|+|+_+<+<+)+<+{+2+)+^+4+}+4+4+4+6+4+c+c+e+l+e+a+g+b+c+e+b+f+c+k+k+k+h+h+k+k+k+k+q+k+o+g+k+o+q+o+h+k+q+o+i+m+q+q+q+o+q+p+q+q+p+p+o+o+o+t+t+p+m+m+p+s+s+o+p+o+s+t+s+p+p+p+p+p+k+k+3+4+4+3+4+3+^+4+4+4+0+i+q+s+x+y+A+y+", -"= = = @ ) = = = = ) ~ ) { ~ ) { { } : } } } } 6 r k j a r p K t G M M B t j 5 j 5 : } } ~ ~ } ~ [ { { } : a I l.`.^+4+4+4+[+(+[+[+}+}+5+|+|+6+|+5+|+6+6+7+6+7+6+|+6+6+4+4+6+6+|+|+4+6+6+4+4+|+}+|+^+3+{+{+4+^+^+{+<+<+2+2+4+3+4+2+2+b+c+c+c+b+g+g+g+c+e+k+i+i+i+k+k+k+h+k+q+i+o+k+q+l+k+n+i+k+m+m+k+p+p+m+q+o+q+q+q+p+s+o+o+t+t+q+q+p+o+q+t+o+q+q+t+t+s+q+p+p+s+o+s+p+r+r+p+i+b+3+4+^+4+4+^+4+4+4+b+h+p+t+y+y+A+", -"@ = = - { ) { = { { : { } { { { { } : } : 5 0 6 p r p r r B K K S M K K K j j 5 5 { { } { { { { } { { { : a e ` F.=+^+^+^+}+_+}+[+|+|+|+|+|+5+|+|+|+|+6+5+6+4+|+6+6+6+6+6+4+4+4+6+4+4+4+4+4+4+_+^+)+^+{+<+]+<+^+{+3+)+^+]+^+3+3+7+6+7+j+e+l+e+l+e+l+c+c+e+k+i+k+k+h+k+h+i+k+k+o+i+o+o+i+o+i+o+o+m+o+q+q+m+p+o+o+o+s+m+q+s+m+p+o+o+w+s+s+t+t+o+o+s+q+q+m+t+t+q+s+q+t+p+p+r+q+p+i+e+e+4+4+4+4+^+4+|+4+b+h+t+y+y+A+", -"= = = ) ) ) & { = { { = : : : ( ( } 5 5 5 5 j p B K t p B M S S S S S .K t j 6 g ( { { { ~ ) ~ { = = { { : | s 4.Z.'+4+4+}+[+(+}+(+[+|+[+[+|+[+7+[+5+[+|+4+|+4+|+6+5+7+7+6+6+7+7+|+|+^+|+}+_+|+4+)+{+_+{+^+{+{+{+^+^+3+1+^+<+_+{+1+}+2+9+b+g+c+k+c+b+c+k+c+l+i+h+e+p+k+k+o+o+k+k+p+k+p+i+o+n+i+q+q+o+o+q+q+o+q+p+o+q+o+q+t+o+t+q+m+q+o+o+p+s+s+q+o+t+t+n+t+m+q+p+q+t+t+m+p+q+q+h+e+e+4+4+|+4+|+2+6+4+b+i+o+y+y+", -"& = = { { ) = ) ) = : ( ( 6 : : 6 6 k 6 p t u t S M K r B G S S S S S G G t p 5 } = ( ~ = ~ & ) = ) ) ~ { { < e I F.=+^+^+_+}+^+}+_+[+[+[+[+|+[+[+[+5+}+[+|+|+|+|+|+[+[+|+6+|+4+|+|+[+[+^+|+_+_+^+^+)+)+]+^+)+4+{+3+{+{+]+{+^+<+)+1+4+<+4+e+e+k+e+i+k+c+l+c+e+l+i+i+k+k+k+k+o+o+k+h+k+p+i+p+k+m+m+o+p+q+o+q+o+q+o+o+o+o+o+s+o+m+t+o+t+s+t+q+o+o+s+o+t+t+o+t+o+t+o+t+o+s+t+q+p+r+o+i+e+b+3+4+4+|+7+6+4+c+c+k+s+t+", -"{ { - { { ) } ) [ } : ( 6 ( 6 6 a p 6 p B K K M S ..G B O ......S .G G B M t j ~ { = ~ = ) ) ) ) ) ) = % { ( 8 s _.V.~+}+<+^+(+(+(+(+(+(+_+}+^+|+}+}+|+|+[+5+7+7+|+|+7+|+4+4+|+4+}+}+}+}+_+<+_+)+<+]+_+>+]+{+{+{+{+)+]+^+)+]+{+{+{+<+{+2+4+e+e+k+l+c+e+e+k+h+c+k+k+i+i+i+i+k+k+h+k+o+k+p+k+m+o+k+q+o+m+q+q+q+o+s+s+t+t+s+p+s+t+t+s+o+q+o+o+t+s+o+s+o+o+t+t+o+y+t+o+s+t+s+o+t+m+p+p+k+e+c+4+4+4+4+4+6+4+4+h+k+t+", -"= ) { - : : } ) [ [ 5 6 a a ( a p v k t S S K G +...O K S ........ .S G G K p 5 ~ { { ) = % ) ) ~ = ) { $ ~ { < | F l.;+(+}+}+_+(+^+(+}+[+[+[+^+|+^+|+|+}+|+[+[+[+}+[+|+|+^+4+^+|+}+_+^+^+^+_+)+)+)+]+]+>+>+{+{+)+]+)+{+{+)+{+{+$+{+{+)+<+3+6+b+b+a+h+h+e+e+k+e+c+i+i+k+k+k+i+k+q+k+o+i+m+k+p+o+o+k+k+o+o+o+p+q+q+o+q+q+v+q+q+m+q+t+m+t+t+t+t+t+o+s+s+t+t+o+o+t+o+t+s+q+s+m+t+t+q+p+p+k+e+b+4+4+4+{+6+4+4+c+c+o+", -") { { : { { : : } : 5 6 k a 6 k p p B G .S G O ....G G +.+.+.+. . .M B B p j } } ~ ) ) ) = ~ ) & ) & = { ~ = ( < i ` E.)+_+_+^+^+(+(+[+^+^+^+}+^+|+^+_+|+}+^+|+|+[+(+[+^+[+|+4+4+^+[+_+_+^+)+<+]+>+>+>+$+$+$+)+{+<+)+{+{+{+>+{+{+$+]+]+{+)+{+4+8+b+l+e+i+i+c+i+l+b+g+h+k+i+k+h+h+h+i+k+k+p+i+h+p+o+o+q+q+p+o+o+o+p+m+p+o+s+m+t+s+s+t+o+t+m+q+s+s+t+o+s+t+y+o+t+t+o+r+s+o+t+s+o+t+t+q+p+h+c+c+e+e+4+3+|+4+4+6+b+", -"} { } { } } } : } } 5 k k k r p B B G G S G G O <.f.O G O O +.+...G B p k k a { } { = = ) & & ) & ) % % = = = = ( | I p.Z.'+}+)+^+^+_+_+_+(+(+^+^+|+[+}+|+|+^+}+}+}+}+[+|+^+_+_+^+^+^+^+)+<+>+)+]+ +&+&+&+>+$+>+$+]+&+>+$+&+]+$+{+>+&+{+{+)+{+]+6+2+l+e+l+l+b+c+g+g+l+h+k+k+k+k+k+k+o+i+i+p+p+i+q+o+o+o+o+q+p+p+t+q+q+p+o+t+p+q+q+t+t+o+t+s+o+q+o+t+o+o+o+t+y+o+t+s+s+t+t+q+s+o+t+o+s+r+k+k+c+4+4+4+4+|+4+4+6+8+", -"} } } } { } } [ 5 6 j p t p i B G G O O G G G +.+.+.M G S S G G G v v p j ( } { = ) { & & % % & & & % & & = = & = < 8 ` F.~+)+^+<+_+~+!+[+_+(+_+^+^+^+(+^+^+}+^+|+(+(+(+_+_+}+|+_+^+^+)+<+'+>+>+>+>+>+ +$+$+&+]+,+&+{+$+{+$+>+&+&+&+]+@+&+]+)+)+<+7+2+b+b+e+g+l+e+e+c+l+c+h+k+k+o+i+i+k+k+k+k+p+m+q+p+m+q+m+q+o+o+s+m+q+s+p+t+o+t+n+s+o+t+o+s+s+t+o+y+t+t+o+s+o+t+o+t+t+o+t+t+t+t+s+q+s+q+q+k+h+0+|+4+4+4+4+6+4+", -": : 6 : : } 5 j 6 6 6 p p p v O G G S G v B B S +. ...S S S S G p a a k } ~ ) = { = = = & & & % % & $ $ $ & & @ & = , s p.Z.^+)+^+^+^+)+^+^+(+^+_+_+^+}+(+(+(+_+}+}+^+^+}+^+_+^+<+)+{+)+{+~+{+>+$+&+&+@+ +$+ +&+ +&+&+ +>+&+&+>+$+$+$+&+$+&+@+]+)+<+4+2+g+e+c+k+e+e+c+c+g+i+i+e+k+i+i+o+i+o+k+k+h+o+k+m+q+o+q+p+q+q+o+q+t+m+t+t+s+t+s+t+t+t+t+o+s+o+t+o+t+o+s+s+t+o+o+t+t+o+t+t+q+t+q+s+q+p+k+e+c+6+|+|+4+4+}+|+", -"6 6 6 : } 5 5 k k r k p K B v G G S S G B B O O S ..S S K ..G B p k 6 : { { = ) = = = & $ & & % % % $ $ % $ & $ $ = { i F F.,+^+<+)+<+^+^+_+^+^+^+(+_+(+_+^+}+^+^+^+_+_+^+~+^+_+^+)+)+{+,+&+ +$+&+ +W. +Q.&+$+&+&+ +$+&+$+$+>+&+&+&+%+>+&+@+&+ +&+{+<+4+3+e+k+i+i+h+c+l+c+e+k+i+h+k+k+k+k+i+h+p+p+k+m+o+o+o+o+o+m+p+s+o+o+t+s+m+t+s+t+o+y+o+t+t+t+s+s+s+t+t+s+o+t+t+s+o+t+t+o+p+t+o+o+q+s+q+o+m+c+c+c+4+^+4+4+|+", -": a 6 : } 0 6 k j p i v M B G S S S S M G G O S S S O S S S B r 6 : } { = [ = = @ = @ & $ $ @ $ & $ $ % & & ) $ & = ( s 4.Z.)+^+)+)+)+'+)+~+^+)+^+^+_+!+_+_+^+^+^+(+_+^+<+_+!+~+_+)+{+>+>+ + + + +Q.%+W.Q.W.&+&+&+$+&+&+&+$+&+&+$+&+&+&+&+@+&+&+>+&+<+2+2+e+e+l+e+c+e+i+c+k+e+c+g+i+i+k+k+i+k+m+k+k+h+m+o+q+q+q+q+p+t+o+o+t+t+o+s+t+o+y+t+o+x+o+s+t+s+m+t+s+o+t+t+s+t+s+t+o+t+t+o+y+r+q+t+r+r+c+b+c+4+4+4+4+^+", -"6 : : : 6 j p t B p p B M S G S S ...... .S S +. .S v G G G r k ( : : : { { { @ @ $ $ % @ $ $ . & & @ % % ) ~ { | ` p.,+)+{+)+'+)+~+^+~+^+^+~+(+_+^+^+^+'+(+)+^+)+)+~+)+'+>+)+$+>+$+@+ +Q.%+W.Q.T.%+++Q.W.Q.Q.&+Q.Q.&+Q.Q.&+Q.$+T.@+$+Q.&+&+&+>+_+3+b+b+e+g+k+e+l+b+c+i+i+i+k+k+i+k+k+h+k+p+m+p+k+p+o+o+m+m+q+o+t+t+t+s+t+t+t+s+o+y+x+o+s+t+s+t+t+o+t+t+s+s+q+t+o+o+t+t+o+t+o+o+t+p+q+o+n+c+c+4+|+|+}+}+", -": } : 6 6 k B K K p B G G G S ..S S ........S S G B v B B p : 6 } { { : { ) & $ @ @ $ + % + & $ % $ & $ & < s 8.`._+{+{+)+^+'+'+~+~+^+)+~+~+_+)+_+)+_+<+)+^+{+~+)+)+>+>+>+ + +@+W.W.T.Q.Q.M.Q.M.%+%+T.$+Q.&+Q.T.$+Q.%+Q.&+T.%+Q.$+Q.&+&+&+>+<+1+4+e+c+k+c+l+e+b+b+c+c+i+k+i+h+k+h+i+k+k+m+i+o+o+q+k+o+q+o+o+o+o+t+t+t+t+s+o+o+y+t+o+t+o+y+o+t+o+o+t+o+s+t+t+o+t+t+t+o+t+s+t+p+p+p+o+k+c+c+4+|+|+|+", -"5 6 5 a i B G M M B M M B G G ..S S +.+.+.S S G G k 6 k p 6 : [ { { = { - = $ @ $ @ % $ + $ @ % % @ % $ % @ @ - | +.l.>+)+)+)+)+~+)+)+'+~+^+)+^+'+_+)+^+)+)+)+{+~+)+>+;+>+>+ +@+ +Q.@+T.Q.Q.T.T.T.Q.M.M.%+T.T.M.%+W.T.%+Q.T.&+K.%+T.T.%+&+T.@+@+>+)+2+2+e+c+l+c+b+g+c+c+h+c+i+i+k+i+k+k+i+o+i+n+o+o+o+m+p+o+t+o+s+t+m+y+o+y+t+s+x+o+t+y+t+t+t+o+y+t+t+t+t+o+o+o+t+o+o+t+t+s+p+p+s+q+q+p+i+c+b+7+2+2+_+", -"6 k p p p v S M M G S S B G G ..S S S S S G G G p p 6 6 k } : ~ & = = = = @ $ $ @ @ & $ @ @ ; $ . - ( s p.`.{+{+~+>+~+_+]+-+~+^+)+)+'+_+)+)+)+<+~+)+)+)+>+ +&+ + +&+&+Q.W.K.T.H.T.T.T.T.Q.M.Q.Q.T.Q.T.&+K.T.M.T.T.Q.%+T.%+Q.T.Q.%+&+%+]+<+1+4+b+e+g+e+g+l+e+k+e+k+i+k+k+n+k+i+k+p+i+i+p+q+o+o+o+o+o+m+s+m+m+o+y+o+t+t+t+o+y+o+y+s+o+y+o+t+o+t+t+t+t+m+t+o+o+o+t+q+q+s+t+q+q+q+c+b+8+6+2+|+", -"k p t t B O S S G +.S B O G +.S ..G G O G B p p p B p 5 : : = = @ @ @ & @ & $ @ % + % + ; & . - r ` F.`.~+)+>+{+>+>+_+>+)+'+'+~+>+<+~+)+>+{+>+]+>+>+ +>+$+Q.W.Q.M.Q.Q.t.m.m.q.T.T.T.T.T.T.Q.T.Q.T.T.T.%+M.T.X.M.M.T.%+T.%+Q.Q.W. +&+]+4+4+j+e+l+e+c+b+c+i+e+k+h+i+i+i+k+i+i+k+k+i+o+o+o+o+o+t+t+t+t+y+o+s+s+s+s+y+t+t+o+t+o+y+o+t+x+o+y+o+t+m+t+y+o+o+t+o+t+o+q+p+q+m+o+q+c+j+b+4+2+", -"p B G B B O O +.S S S S O O O S +.G v p p p i p B p 6 } { { = ~ $ $ $ $ + + + + . + ; + ; + % @ $ @ a s n.V.@+~+>+>+-+>+)+>+)+)+~+'+>+{+~+~+,+>+>+&+>+ + + +W.@+@+K.%+T.w.T.q.T.q.T.X.T.Q.Q.N.T.T.T.Q.T.T.T.T.T.T.T.T.Q.T.T.X.T.%+T.Q. +@+]+^+2+6+k+e+k+l+e+h+c+c+i+l+n+h+k+i+o+m+q+i+k+o+o+q+o+q+o+p+o+t+y+t+t+y+o+y+t+t+s+s+o+t+y+o+s+m+s+t+t+o+o+t+s+o+t+o+s+s+q+m+r+q+q+k+k+b+b+4+4+", -"B G M M G O O G +.S G S S S O S G G B p B p v p p 6 : : ~ = = = @ $ $ + + % + % + % + % & @ - i ` F.;+)+>+>+>+-+>+)+)+'+>+>+{+>+>+>+>+>+>+>+$+ + +W.W.Q.Q.Q.Q.s.T.q.q.h.f.h.N.w.N.T.T.M.N.M.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T.T. +@+<+_+4+4+k+k+e+c+e+e+e+e+h+k+k+h+k+g+k+h+q+o+q+o+m+p+m+p+q+s+t+o+s+x+o+y+o+y+s+t+t+s+t+m+t+t+t+o+o+t+o+t+m+n+t+o+t+q+q+o+t+m+o+o+o+p+k+k+b+4+", -"M M M B M G G O S S G G O G G S B v i p i i i 6 6 6 { = & @ & & & @ $ @ & @ + + + % % + + % + + + + $ & < O p.@+>+>+,+>+-+>+$+ +,+,+-+>+>+,+>+;+`. + + +Q. +Q.@+Q.Q.Q.T.q.q.q.i.6.h.q.q.T.q.T.q.T.q.N.s.T.q.Q.T.X.T.T.X.T.T.T.T.T.T.T.T.w.K.K.V.;+^+4+c+c+e+k+c+b+c+e+c+i+i+i+i+g+i+h+h+h+p+p+p+p+o+o+q+o+s+t+t+s+o+y+o+w+y+s+t+t+t+s+t+t+o+y+o+t+s+t+m+o+t+o+n+o+s+q+q+q+q+p+o+o+i+k+e+b+", -"S K K B v B G S ..S O v O G G G G p i i 6 6 6 : { { { = & $ @ @ @ & . + . + + . + + + + + . & . $ = i 2.H.>+>+>+&+ +>+>+>+ +>+ +-+;+>+;+ + + + +&+Q.@+K.Q.Q.Q.q.Q.s.s.i.x.V 6.h.X.q.N.N.M.N.N.q.X.N.T.q.T.q.T.q.T.X.q.T.T.T.T.Q.w.w.m.2.p.F. +^+|+b+c+k+k+c+e+i+b+b+g+i+l+i+p+k+k+o+i+o+h+k+q+t+o+t+t+o+s+t+y+s+y+s+o+t+s+s+y+o+t+t+t+o+t+y+o+m+t+p+o+q+s+q+q+p+q+o+o+k+p+p+p+h+c+b+", -"S S K B B G G S ..S G p v B G v i k i 6 : : } { { = = & $ $ @ $ + + + $ . & @ % ) 6 O H. +>+>+ + + + +>+ +>+ +>+ +>+ +&+ + +W.W.W.Q.K.Q.T.Q.o.w.q.q.i.9.R (.h.q.q.N.q.q.m.T.q.q.X.X.q.T.N.N.T.q.X.T.q.T.m.m.m.<.2.......2.F.`.~+4+4+e+e+i+e+c+g+i+g+i+k+e+h+m+k+k+h+p+m+m+o+p+o+q+t+o+y+o+o+s+y+s+y+t+t+o+y+y+o+y+o+t+o+t+t+p+q+q+o+q+o+m+o+o+q+p+o+q+k+q+k+k+c+b+", -"S S G M K G G S . .B p k v B B v k k : : : { { = ) ) % $ $ . + . + + + + + + + + $ @ $ $ $ { G m.W. +$+ + + + + + + + + + + + +W.W.W.W.@+K.Q.Q.T.M.q.T.o.q.f.6.V Y ).u.u.N.q.q.q.q.q.N.o.q.T.w.N.q.X.q.T.m.X.q.m.s.m.<...S ..S ..+.2.F.`.!+4+c+e+e+e+l+c+b+i+c+h+h+k+e+h+m+k+i+k+q+p+o+o+o+o+t+o+s+t+t+t+t+s+y+x+t+t+m+x+o+t+o+t+m+o+o+o+o+q+o+p+q+q+q+m+o+p+o+o+m+m+o+i+c+", -"S S G M M G G S +. .M p k i v k i 6 6 : - = ) ) = & & @ % @ . @ @ + + + + . + + + + + + + # . $ ^ g r <.H. +$+$+ + + + + + + + +W. + +@+W.Q.Q.W.W.T.t.s.M.s.q.q.i.e.g.Y Y ).1.u.i.q.q.q.q.q.N.q.N.q.q.N.q.q.T.q.s.w.s.f.....S S M M K S G S 2.F.`.'+6+c+c+c+g+c+l+c+e+k+h+h+k+h+h+p+m+i+o+q+q+q+s+o+t+o+s+t+s+s+t+s+t+y+o+y+o+y+o+y+o+t+t+t+t+t+o+q+q+q+m+m+q+q+o+p+q+q+k+n+n+i+c+", -"S S S M M S G G S S B p 6 i i k | 6 : ) ) = ) ) = ) % + + . + + + + + + + + + + + + . ; ] ~ y y ..w.Q.$+ + + + +W.W. +Q. + +W.@+Q.W.K.Q.Q.K.K.H.w.m.q.q.i.i.0.R Z @./.g.u.X.h.X.q.q.N.q.N.q.N.q.T.q.T.q.q.m.m.....S S M K G K M B B O +.2.F.`.'+}+b+l+e+l+c+e+c+h+c+k+h+k+k+i+i+k+h+i+m+m+m+s+o+t+o+s+t+y+s+t+x+o+y+t+y+o+t+o+t+t+o+o+o+o+o+o+o+o+q+p+o+o+q+q+o+o+q+o+k+k+l+", -"G O G G M G B G O v r 6 6 k i { : : - ) = & @ & = & @ + + + @ @ $ + + + + + + + + + + $ + # . # ] h g y r S m.Q.$+Q. +Q. + +W.W.W.Q.W.Q.W.Q.W.Q.Q.T.t.w.Q.m.m.s.o.3.>.9.Y X %./.[.0.i.h.h.N.h.i.q.N.q.N.i.N.q.q.m.f...+.S S M M M K B B B r B B B +.2.n.Z._+|+c+e+e+c+k+c+e+h+e+h+h+k+k+i+q+o+k+q+q+q+p+o+s+y+s+s+y+s+t+t+t+s+s+t+y+t+t+t+o+t+t+t+t+o+o+o+o+k+q+q+o+o+q+q+o+p+p+q+o+i+", -"G G O B B v k v r k 6 6 6 : : - - = & = @ & = = = @ + @ + . . $ $ . . + + + + + + + + + + + $ ~ ^ h c y y y W ..t.W.$+W. +Q.Q.W. +W.W.W.W.K.K.Q.Q.Q.H.T.w.m.w.m.q.f.e.6.Y Z @.%.@.(.x.h.q.i.i.N.i.q.q.i.q.q.q.f.m.......S G M B B B B t t B p p t B B +.|.F.`.~+4+c+k+k+c+b+f+b+h+e+k+i+f+f+g+o+o+i+p+m+o+s+t+m+o+t+o+t+t+s+y+t+t+y+o+t+o+w+t+t+o+o+o+o+q+o+o+o+o+i+i+n+o+o+q+k+q+o+k+k+", -"G G G B B p k i | ( 6 6 : : = & = = = = = @ @ = @ . + + . % . + + ; ; + > ^ g y 0 j y y B f.p.H.&+Q.W.W.W.Q.Q.W.Q.K.W.Q.Q.H.M.q.t.w.T.q.q.m.f.f.1.(.Z @.@.*.*.).x.x.i.q.i.q.u.q.q.q.o.f.f.+...S W M W G r B p B B B t p p p p B v G +.2.F.`.^+|+4+b+g+e+c+c+h+c+k+k+k+f+f+i+p+i+q+q+q+o+t+s+y+o+y+y+o+s+s+s+s+y+t+o+s+o+t+o+t+s+s+n+o+o+n+o+o+q+q+k+k+h+o+o+k+o+k+k+", -"G G B p p k 6 6 6 6 6 } : = & = & = = = = @ @ % + + + + + + + + + + . + . + + . + + $ ; h c c g g y y y y M m.K.W.W.H.Q.Q.Q.W.K.K.Q.Q.H.Q.T.s.Q.w.q.s.s.q.f.h.e.:.Z X @.*.%.%.).g.i.x.h.q.i.q.h.m.f.f.f.S -.r G B B B B B B p p p p p p t t p p p t B +.2.F.-+^+4+b+e+e+l+l+e+g+h+i+h+k+i+h+i+q+o+o+o+t+m+o+m+t+y+o+y+t+o+y+t+m+y+y+o+t+t+t+o+o+o+o+o+p+o+i+k+o+i+o+o+q+o+q+o+l+o+o+", -"v v v i k k : ( ( 6 5 { - & % $ % @ @ @ @ @ @ @ + . + + + + + + + . + + + + + + ; ; ] ^ g h g y g g g y y G ..m.Q.Q.W.Q.Q.H.H.W.H.H.s.Q.s.s.m.T.s.q.q.3.o.f.e.^.Y Z @.].=.].].a.9.e.h.x.q.i.q.f.f...S G O G M B W p r p t k p p t p k p t k k k p p p M S 2.F.-+_+7+b+c+c+c+e+c+c+k+i+k+k+o+i+h+q+q+m+p+p+y+o+t+o+y+t+t+t+t+w+o+t+m+s+o+o+s+o+o+m+q+o+m+o+m+k+q+o+k+i+l+g+o+o+k+k+k+", -"v i i 6 i : : : : { : = & & @ @ % & @ % @ . . . + @ + + + + + + + . + + + + ; > ^ h h h 0 c g g y h y y y +.w.K.T.Q.H.H.Q.H.t.Q.s.Q.q.H.m.s.m.m.s.s.f.i.f.^.(.Y @.].%.%.*.*.,.).x.u.i.f.f.3.-.-.O W S y B B p r r r p p p k a k k k 6 k p k i k p j p O +.2.F.-+^+4+b+b+g+i+l+g+g+i+i+i+k+i+k+h+i+q+q+t+o+t+t+y+o+o+y+y+o+s+t+y+o+y+t+t+o+s+o+o+m+k+k+o+n+m+h+i+h+o+o+o+l+k+n+o+o+", -"i : : : : : = = = = { = & $ + + . . + @ + . . + + + + + + + * # # ] ] c g g h g g g j c C y y S m.w.T.t.s.K.w.s.w.Q.o.t.s.m.m.m.q.f.m.m.f.e.6.!.,.$.@.].%.%.].]./.).6.e.i.#.-. .S W G B B W B B t p p k k j j j j j k k r 6 k k r 6 k 5 j r O +.2.W.-+^+b+b+e+c+e+c+i+i+h+h+k+m+o+m+o+m+o+o+t+o+t+t+y+s+s+y+t+s+o+t+o+t+o+t+o+o+w+o+m+o+n+i+g+o+p+i+g+g+g+o+o+p+i+g+i+", -": } { : { { { ) & & @ @ % + + + + + + + + + . + + + + + + . . . . + + $ # ~ h g ~ g g g h g g y h u C y W ..p.H.Q.H.s.H.w.t.s.s.s.s.t.m.o.q.3.f.f.-.i.^.!.U Z @.%.%.*.%.*.a.).:.i. . .M M K M W r B p t t p k p k p p k k t k 6 6 k a j k k j j k 6 p p O +.|.V.,+^+4+c+e+i+g+i+c+l+i+k+k+o+i+h+q+p+o+y+o+s+x+o+t+t+t+t+y+y+o+y+o+y+o+o+o+o+o+o+o+i+o+o+k+i+k+k+n+n+i+i+k+q+k+l+", -": : { { { ) ~ & & & $ @ $ + + + + + + + . @ + + + + + + + + + . . + + + + + + . + # ~ ^ g ~ g g ~ n g h g g g g g c y N f.m.s.m.H.s.t.t.t.s.s.s.s.s.m.}.f.3.i.3.e.:.R Y U @.%.%.@.*.].].).(.>.W W M M M t t t r r B p k k k j k k k k k j j j 5 j k 5 5 6 j 0 j 0 j p B S +.p.V.;+}+8+b+i+c+i+h+k+h+k+h+o+i+o+q+q+o+o+s+o+y+y+t+s+o+t+m+t+o+t+o+o+t+s+o+o+o+n+q+n+g+i+k+o+h+h+g+g+n+g+i+o+i+k+", -": { = { ~ { ) $ @ @ & $ % % + . . + + + + + + + + + + + + . + . > # g ] g / g h g c h h g y h y y C W M m.m.s.m.m.w.m.s.s.m.m.f.f.3.f.s.f.f.e.>.R Z X *.X %.@.X /.Z ).~.T K M M K t p B B t p k k k j k j k k 6 j k k k k k 6 6 5 6 6 j 5 0 0 j j j k p O +.|.V.,+}+b+b+k+k+e+k+k+i+k+i+k+h+m+m+p+t+o+t+o+o+m+t+s+o+t+t+t+m+t+o+o+o+o+k+q+o+o+i+i+n+o+k+o+k+i+k+i+i+l+g+k+o+", -"{ { ) : ~ = & $ . & @ @ ; . . . . . + + + + + + + + + + + # # ^ ^ ^ ^ h ^ g ^ g g g g h g g g y c y K }.m.m.s.}.m.m.3.m.}.m.}.s.3.f.3.i.-.^.:.R U X Q Z @.Z Y ).~.C A N t t t t t B p p t j k k a k k 0 5 k a j j k 6 5 j k 6 5 5 5 0 j 0 j j p p k r v G +.|.W.,+2+8+b+i+h+c+k+i+k+o+q+i+q+o+o+t+o+t+t+y+y+o+s+t+t+o+t+m+s+s+o+o+n+o+q+g+o+k+i+i+f+i+i+k+g+g+i+i+k+i+k+k+", -"- ) { & = = & @ $ . + . + + + + + . + + + + . + . . + + + + . > + + $ # ~ ~ ^ ] n ^ g g g g g g g y g y C y M -.m.m.m.q.}.3.s.}.f.}.f.f.f.i.#.i.-.:.Y U X X Z @.Z R ).A T W K t t B t B t k p k j k j 5 k 5 5 j 6 k k k 5 6 j k 6 5 g 6 a a 5 0 k j j k k k r r B O +.p.`.'+4+e+k+k+k+h+k+m+k+i+p+i+q+t+o+p+s+o+o+m+s+o+t+s+m+s+o+q+o+o+o+o+o+h+o+q+n+n+g+n+k+k+i+i+i+k+k+i+k+i+i+", -"- & & & @ @ . @ @ . . + + + + + + + + + . + . . + + + + + + + > > * # # ] [ g ~ h ] g ~ g g h g h c C g y y M ..f.}.f.f.s.f.f.3.i.}.f.3.f.i.-.>.>.R Z X X X Y R R A T W u t t t t t t p p k j k 6 5 j 0 k 5 6 j 5 5 j j j 6 5 5 5 5 0 0 6 6 6 0 5 j 0 j k k a r r B O 2.n.`.^+4+e+i+k+i+k+h+k+i+m+m+m+p+o+o+q+o+t+t+m+t+o+o+o+s+m+t+o+o+q+p+o+i+g+o+i+n+i+h+h+c+i+i+i+g+k+i+k+k+k+", -"& & & @ $ $ + + + + . + + + + . + + + . . + + . + + + + . + + + + > + > + $ ; ^ ^ ^ ^ / n h ~ h h c h C h h y y y -.}.q.3.3.f.}.3.3.3.f.f.-.3.-.>.>.R Z X Z Z Z R R A u u u B r t t t p k r k 5 6 5 5 5 0 5 5 6 5 0 j j j p 0 j j g 0 5 5 5 g 6 j 5 j k 6 6 k k k a r k B O 2.H.`.^+4+e+k+k+k+o+o+k+i+o+k+o+p+t+o+t+o+s+o+s+o+s+p+o+o+o+o+o+o+i+h+o+o+i+k+k+i+g+g+g+g+g+g+i+c+k+c+i+g+", -"& & $ . @ @ @ + + + @ + + + . + + + + . . . + + + + + # > + > > + ; # ~ n ~ h ^ n g g h h h C c C y y y -. .f.f.f.f.f.f.f.-.f.-.f.-.-.T R R Z Z ~.w ~.A u u y t t t r B t p k 6 5 6 j 6 6 6 6 j 5 5 5 5 5 j p 0 p 0 5 j 0 0 0 0 5 5 5 5 5 5 5 k j 6 j t k k y r B +.<.F.-+^+8+b+g+k+o+o+q+k+m+q+q+o+o+o+s+m+o+s+s+p+o+t+q+o+q+o+p+q+l+i+g+i+i+i+l+k+c+i+i+c+b+g+g+g+g+g+b+g+", -" @ @ & $ + + + . + + + + . . + + . + + + + + + + # + > * + > > + > > > ; * ~ / ~ n ^ ^ g g h h C h C C C W W #.3.3.#.f. .-.f. .f.-.-.-.T R R d Z d R A A t t B B t B B B k p 6 k 5 5 5 6 5 5 j j 6 6 5 p 5 k k j p j j j 5 5 j 5 5 j 0 0 0 5 5 6 5 6 k p 6 k j p p r G +.2.V.)+^+8+k+g+k+i+i+m+k+o+o+o+o+q+o+t+s+o+p+q+q+m+o+o+m+o+o+o+f+o+i+n+i+i+f+i+i+g+b+g+f+g+b+b+b+j+g+g+", -"$ @ ; + . . @ + + + + + . + . + + + . . . + + + + + + * + + > # > ' > > + > + * # / ~ n g n ^ g g h h h C n A T W -.f.f.#.f. .f.-. .-.#.-.V C w R R A A A A u t B t p k k r k k k 6 k 6 } } 5 5 6 j k 6 6 6 5 p j p p p p 5 0 5 5 5 5 0 5 5 0 0 5 j 6 5 5 6 j j k j j p k p G +.p.V.~+}+c+i+k+q+k+q+k+q+q+o+m+q+q+q+m+s+m+o+q+m+p+o+i+n+g+o+i+o+h+i+i+g+i+l+i+g+g+g+c+f+g+j+g+j+j+g+", -"@ @ + + . + . + . + + + + + + + . + + + + + + . * * + + + # ; # + + + + ' + > > # # # / # ^ g n g h h g y y C A y T -.3.-.f.-.-. .f.-.-.^.n A d A A A A A u t t k k p p j k k 6 5 5 6 6 } j 0 5 5 j 6 k 5 j 5 p t B p p k j k 6 6 6 k 0 5 6 0 5 j 5 0 0 5 5 6 6 k k 5 t j j p k G +.n.V.^+4+e+k+k+q+o+o+o+o+o+q+o+o+o+t+o+n+o+q+q+o+p+o+i+f+n+n+f+i+k+i+i+g+f+g+g+b+b+b+b+c+8+9+8+8+8+", -" . + + + . + + + + + + + + + + + * + + + + * + ' > * # * * * > > > + # # # # # ^ / ^ ^ n g g h y n y y T T N -.f.-.-.-.-.-.-.W W y n C C A A A u p t t t p k k r j j 5 k 5 5 6 6 5 : 5 5 } 5 5 k 6 6 k p t B p k j j 0 6 j 5 6 0 j j 5 5 j k j 0 j 5 6 0 0 k 6 j j j t k t M 2.n. +|+0+k+l+k+q+k+q+k+o+q+n+o+o+q+q+o+o+o+h+o+k+o+i+i+k+g+g+i+i+k+c+g+i+g+g+8+g+f+g+g+c+g+g+b+g+", -" . + . + + . + . + + + + . + + + + + + * + + + * + > > > ; # + * > > > * * * * # . / ~ ~ ~ n g g n y y V C T T #.-.-...-...W W y y n h l h y u t p p p k k k k k 6 6 6 6 6 5 } 5 j 5 5 } 0 0 5 0 j 5 j p p p p j k k j 0 j 5 j 0 j j 5 j j k 6 6 j 0 5 j k j 5 k k j j j j j B M 2.F.>+^+8+o+l+k+o+o+o+k+o+o+n+k+o+o+n+o+i+q+i+h+i+o+i+i+i+i+i+g+g+i+c+b+f+g+8+8+b+b+8+b+c+b+b+c+", -" @ . + + . + + + . . + + + + + + + + # + + > + + # # # # # > * + + > + + ; # > * # # # # ~ g h n n h n y y V W V -.-.-.-.W W r y n n n j 0 u j j k k k t k k a 6 6 5 } 5 6 a 6 6 6 } 5 5 5 5 0 k 6 k k j p p v 6 6 6 5 5 p j k k j j j k k k j j 5 j j 5 0 k j 0 j j j j k r k p M S 2.V.)+}+c+o+o+o+o+o+i+n+o+f+o+o+o+o+p+i+o+n+i+g+i+i+l+g+i+i+i+g+g+i+b+8+g+g+j+9+j+8+b+8+j+9+8+", -". @ . + + + + . + + + + + + + . + + . + + . . + + + # . + + * * + + # # # # * # # ; * * * * # # # * * # . / # # # ~ g g n y y y C W W -.-.-.W W y y y g c u j j r k k k r k r k a k j 5 6 6 } 6 : a } 5 k 6 6 6 5 j j k p k p k i 6 i 6 6 j 6 j k k j k k p j j k a j j j j g j 0 5 5 j 0 j j j k k k r G +.n.`.)+4+c+k+k+o+i+q+n+o+n+g+g+n+i+i+o+g+i+k+k+g+g+i+i+i+c+b+g+i+8+g+b+8+8+8+8+e+j+9+b+8+b+j+", -". . + + + + + . + + + + + . + + + + + # . # * + + * * + # * * ; * * / # # # * * * * # * * * # . # # # ~ n g n n n W V T W -.W W y y n ^ g 0 0 j j j 6 k k 6 a 6 k 6 6 6 a a 5 6 5 6 5 0 5 a 6 k j j 6 6 k k k k k j 6 6 6 6 5 t p j j p p k j p t t t j j j j 0 j a 5 j 0 5 j j j 5 a j k k p B +.p.,+<+8+i+k+o+i+k+g+i+k+i+i+n+g+f+i+i+i+f+i+i+i+c+c+i+f+8+j+b+8+j+j+b+8+j+8+b+8+9+8+9+b+b+", -" + + . . . + + + + + . + * + # + * + # + * * + * * * + * * ; ; > * * # ; # + + > * * * * * * # * ~ # g h y C N P W W y a g ~ g g 0 g j j j 5 j 5 6 k k a a 6 5 5 5 } } : 6 5 5 j 5 j j j 6 j j k a k p k t j j 5 5 5 p p t p p p t t t t p t j u t t y k k 5 j 5 j 5 5 6 6 g j 5 j 6 k r O 2.F.-+^+e+o+k+l+o+k+k+i+n+g+i+i+i+f+k+i+h+i+g+c+i+g+b+b+b+8+g+j+8+5+j+b+b+9+8+9+8+9+8+9+9+", -" . . + + + + . + + + . + . + . + + + * * * + * + + + + * + + > > ' > ' ' * * ; * * * * > > + * * * * # . # * # # ~ n g y y y y y g ~ g ) } } 5 g j j k j 5 5 5 k 5 6 6 6 6 6 6 5 5 } 6 j 0 j 6 6 k t p 5 k k k k p p p p 5 5 j t t t t B t M B B B t p p t u j t j j k j 5 g 5 5 0 5 k 5 5 5 j j j k r G 2.V.)+4+b+o+n+m+g+i+c+i+i+i+k+i+f+i+i+i+0+c+c+c+f+0+g+8+9+8+j+b+8+9+8+b+9+8+9+j+2+j+2+b+", -" + . + + . + + . + . + + + + . * + + + + + + + + + + > > ' ' * * > > * * > > ' > * > > * > > > * * # * * # # * # # / ~ g g y a ~ ~ ^ ~ { ~ } 5 6 5 6 k 6 5 j 6 5 6 a 5 } 5 } 5 5 6 6 6 0 p j j k 6 k j j k k p p p t t t j 5 p p t M B B M B B B K B t t t p t t u j j j 0 5 5 5 5 5 [ [ j 5 5 j j j p r ..p.V._+8+b+k+k+k+g+g+g+g+i+i+c+i+8+g+0+i+g+8+g+8+b+0+8+j+9+8+9+8+b+j+9+b+j+b+b+9+8+8+b+", -"+ + + + . + + . + . + + + + + * + + > + > * * > * > > * * * * * ' / ' / / * * > * * ' * * * + * * * # * # # # # # / * ~ ~ ~ ~ ^ % ] ~ [ { } [ 5 6 5 5 : 6 5 6 5 0 } 6 6 5 [ 5 0 j 6 j j p p j p k k p 6 k k p p p B K t t t t B B M K B M t K M K t K B t t K t j u 5 k j } 5 } [ 0 j 5 5 6 : 6 j y p r M ..H.`.}+4+b+i+k+i+c+c+b+g+g+c+i+8+g+c+0+b+g+b+c+e+e+0+9+9+8+b+8+b+6+7+b+4+8+b+b+2+9+b+", -" . . + + + + + + . + + + . + + + + # + + + + * > * ' + * > * * ' * ' ' ' ' > / ' > / > * * > + * * # > > * * * + * * * # * # # # ~ . & & % ) ) } { [ } 5 } 6 6 5 } 6 } } 5 5 0 } } 6 5 5 j j j p p p p 5 j k k p k p p p M K K K K B B M B t M K M M M K K K K K K K t t t k k j 5 0 [ 0 5 [ [ [ [ } 6 j k k j 6 p O 2.W.'+7+j+i+i+b+8+j+8+8+9+8+b+8+c+c+b+8+5+8+b+8+f+8+8+8+9+8+b+8+b+8+6+9+b+9+9+b+2+4+", -" + + + + + . + . . + + . + + + > * + > * + ' > + * * ' > ' > ' ' ' ' ] _ ' ' / ' / * > ' ' ' ' ' * * * * + * * * * * # * * * # & . & # = { ~ } } [ [ 0 } } 6 6 } 6 5 } 6 6 5 6 5 6 6 j p p p p p k p p j k i k p B t B B S K M K K M M B M B K M G M K M K B M M M M t t t k j 6 0 } } } } 5 5 g [ [ j j k j 6 6 v O p.V.'+2+b+g+g+0+b+b+8+8+9+b+9+9+8+8+b+8+8+b+b+b+b+9+8+9+7+7+9+b+9+b+4+4+b+b+b+j+4+", -". . + . + + + + + + + # + + * + + + + * + > * > ' ' ' ' ' _ _ ] _ _ _ _ ' _ ' _ ' ' ' ' ' ' ' * * * > > > + * + # # # ; $ . & & % = ) ) } ~ { 5 [ 5 5 } } } } 0 } 6 5 } 0 5 5 6 5 p u B t p p k j p p p p t B B B M M K M K M G G G M M .M M .S K S M M S M K B t t j j k 0 5 5 5 } } [ [ } [ 0 [ 5 0 5 5 5 6 v +.H. +4+4+b+b+b+8+9+8+j+8+9+8+8+8+9+j+9+c+c+6+8+7+6+b+4+c+b+7+7+b+7+b+j+3+2+4+b+b+", -"+ + + + + . + . + + + + * * + > + ' > + * * * * ' ' _ ' ' _ _ 3 _ 3 _ ] 3 _ _ ' ' ' ' > _ ' ' ' ' ' ' ' > * + * + + + $ $ $ $ $ & ) { [ } } } : } } } 5 } 5 5 } 5 5 : 6 } 5 6 j k p t K K B p p k p p k k p K K B B G .K S .M K S S K .#. . .K . . .S S S O W G p t t t k 0 0 [ } [ [ { [ } [ } 5 } [ [ 5 [ 6 k O 2.F.~+|+b+b+j+8+9+8+9+8+9+8+9+8+6+8+8+9+8+6+9+b+7+8+6+8+b+9+7+b+2+b+6+b+2+2+2+b+", -". . + + + + + . . + + + + # + + * * * > + > * * ' ' ' ] ' 3 3 _ d _ ] d d _ 3 _ _ _ 3 ] _ ' ' _ ' _ ' _ ' > ' ' + * + + % @ & $ % ) { [ ) [ : } } } } } } 6 } } 6 6 [ 0 0 5 j k k B p B K t t p r v p t p B t M B K K K S ...S . .S G . . .}. . . . . . .O S S G B p p t j k 6 0 0 ~ 0 } [ { } { } [ } } } [ 0 [ 5 k +.p.`.)+7+b+b+j+2+b+6+9+8+2+8+7+8+4+7+6+9+7+8+7+8+9+2+4+6+6+9+2+b+7+j+2+9+b+b+2+", -". . + + . + + + + + . + # + + + + + # + + * > > ' ' ' ' _ _ 3 ] d _ d d 3 d 3 _ _ d ' 3 3 3 _ ] ' _ 3 ] _ ' ' > + > + # . & ; ; & = ) % ) { } } [ : : } [ [ 5 [ : : 6 } 6 6 } j 6 j p p t B K p K p p p p p B t K K G M K M .....+.+. .......}.}.}.}.}..... . . .+.O G B r p k p j j 6 [ 5 [ [ } } : : { { ~ } ~ } { } } } 6 r +.F. +_+6+b+8+9+j+6+7+8+7+8+7+b+4+9+6+9+7+8+4+b+8+9+9+2+b+8+2+3+b+7+2+2+4+b+4+", -"+ . + + . + + + * + # * + * > + + * * > ' ' ' > 3 ] d d 3 d d d 3 d 3 d _ d d d 3 _ 3 3 3 3 _ _ ' _ ' _ ' > ' * + + % % $ % % & ) ) ~ ) } } } : : } } } 5 } 5 5 : g 6 6 5 j 6 p t B v B B B t p p k p p B t B K K K S M ...........+.....}.<.}.<.}.<.<.........S O G t p k k j p 6 [ 5 [ } } { } ~ { } { { ~ ) ) } [ } } ( r O 2.V.>+2+4+b+4+b+2+2+7+6+7+6+6+b+b+2+7+6+6+b+6+4+4+4+8+7+2+b+8+2+4+b+b+2+4+2+", -"+ . . . + + + + + + + > > > + + > + ' > ' ' d _ _ d d d ] d 3 d d d d d d d d d d 3 3 d 3 3 3 3 3 _ ' ' > ; + . $ + % @ & ) = { } } } { : { { { } } } 5 6 g } 5 0 } k k k r p p B v v B B t K p B p p t B K K G M ... ...+.......<...<.<.<.n.2.<.<.+.<. .S S S O G y p k k 5 5 6 } } [ : { { } ~ { { { } } ~ ~ { { { ~ [ 5 r S p. +<+4+b+4+8+8+8+2+8+4+4+7+7+b+6+7+2+6+4+9+8+6+2+b+4+4+2+8+b+2+4+2+j+4+4+", -" + + + + + + # * # + > > > + > > > ' ' ' 3 ' _ 3 d d d d f f f d d d d d d d f 3 d d d d d 3 3 _ ' ' ^ ; + ; $ $ @ & % & ) { = : ) { } } } { ( : : } 6 } 6 5 } 5 0 5 j k p p t p p k p p B t B B B t B p K B K K K S ........+.<.}.<.....<.<.<.2.+.2.+.....S +.S M G G r r k j 5 6 } ( ( { } ~ } ~ } { ~ ) ) ) } } ~ { } [ ~ } 5 M ..K.>+<+4+b+3+b+2+6+7+9+7+4+4+6+7+9+7+7+7+|+4+7+6+7+4+7+b+2+2+j+2+3+2+2+2+", -"+ + + + + * + + # # # * + > * * * ' ' ' _ d d d ] d d d d f o o m f f d d d d m f m m d m d 3 _ / / * * $ ; % $ & = & ) { { : : ) [ } [ { 6 : } : } 5 5 0 j k k t t p B r r p v v p v p v B B M p B B B G S S ......}.....}.}.<.<.+.2.+.<.+.<.+.+.+.+.S G O B r r r k 6 6 } a { } { ~ { ~ { ) ~ { ~ ( = { ) ) ~ { { ~ } g : k S 2.W.>+1+b+3+4+2+4+4+b+4+4+2+4+4+7+6+4+b+7+2+7+6+7+4+7+2+6+2+2+7+b+2+e+4+", -"+ + + + + + + + # # * * + + * > * ' > ' 3 3 ] d d d d m d m w m m m w m m m m m f m m d d m d _ / ' > ; % $ & $ % $ = & - { } ) { { } } } } } } } } 6 [ } } k 6 k j t t p B r r k k k p p k p t K M K B K G G S K ...}.+.<.....}.<.<...<.+.+.+...+.....+.O S B B M r B y j 5 } } { : { ~ ~ ~ { { = ) % ~ ) - ~ { { } ~ ) [ ~ { [ 0 t .p. +<+2+j+2+b+2+7+6+2+2+4+2+2+6+7+6+7+4+6+7+}+4+7+2+b+1+4+7+4+7+2+2+3+", -" . + + + + # * * # + * * > ' ' ' _ _ _ d d d d d w m d m m m z z m w m m d m m m m m d 3 3 / / * # ; $ % $ & $ & & & = & = { ) : = ) : ) } } } { } } 6 5 0 0 k j p p k r r v i r v t t p B p B B K K B K B M K S ....}...<.}...}.2.2.}.+.}.....+.+.+...+.S O G M p B r B r 6 6 ( } ) { { ) [ ) ) ) = ) ) { ~ = ) = { ) ) ) [ [ ) } [ k M <.Q.-+^+3+7+4+4+1+6+4+b+6+4+4+4+7+4+7+7+2+2+2+4+2+7+4+2+3+a+2+4+2+2+4+", -"+ + + # # > > ; + > # * + ' * * ' ' 3 _ d l d d z m m m z z z m m m z z m m o z z m w d _ _ ] ' # . $ & & & % & & = - = { - { { : } } } } } } 5 : 5 5 5 0 j j p r p k r i r v i p t p v p B B M M M M K .S S ..S ..}.}.2.<.}.}.}.2.<.2.....+.S +.2.+...S G O v v r r p k a { } { : ~ ~ ) % ] ) ) % = = & ) ) = ~ ~ ~ ) ) ) % ) ) [ } k +.n.@+]+}+4+2+3+4+2+}+}+2+4+4+2+4+7+2+2+6+4+6+a+4+4+2+7+|+4+2+3+4+2+3+", -"+ + # . # * * # * > ' * ' _ _ 3 3 d d d m w m m d z z m z z z z z m z m o o m w d l / ] ' ; % $ @ $ % ) = ) & % $ ) = - { : { ) { ) } } } g } } : 6 k p p p p p k p k k k r p p p t t B B M S M S S M S S S .... .}.}.2.<.2.<.2.<.<.2...2.+.G S S ....+.+.B r r k p r k 6 a ( { = { = = ) & % ] ) ) ) & ~ & ~ ~ ~ ) % ) ) { ) ) ) ) } 6 B ..W.]+<+4+2+3+3+4+7+}+7+2+|+}+4+4+4+2+2+4+4+2+2+2+2+a+}+4+2+a+2+2+2+", -"+ # * # * * > # * * * ' ' _ _ 3 d d d w m m m z z w z z z z m z D z z z z z w f l n / ^ > % % $ & ; ) % { ) ) % % ) & = = - { : { } } } } } } : 5 0 5 j t p k k k k k k k k p p B B M M B M G S S G .S ......+...}.}.<.}.2.<.<.2.<...+.....S +.G G +.S G O v r i k j a i a : { { ~ = { = & = & & & & & & & ~ & = = & ~ ) ~ ) { { ~ ~ ~ { r O p.W.{+2+4+2+4+<+2+2+}+}+4+4+2+3+2+7+7+2+|+4+2+|+4+4+3+3+2+2+2+4+3+", -"+ + # # + # > > > ' ' _ _ 3 3 d f f f m w m z m z m z z w z z z D z z m w m l l ' ] > $ $ @ & % & % ) % [ ) [ ) % ~ & = { = { { } { : ) } 5 0 5 5 5 p p p p i k 5 j j k p k p p B B M K B .S +...S S S +...}.+.<.}.<.2.2.2.2.2.}.<.2.......S S S O +.G O v k | a a k : ( ( : { ~ = = = = ) & & & & & ) & $ % % % { & $ = { % ) ) ) ~ ~ } a B <.H.&+<+4+1+3+}+}+1+^+2+2+^+4+4+4+1+2+2+}+4+1+2+2+4+2+2+2+4+3+1+3+", -"> > # * * * * ' ' _ _ d 3 f d o f f o w z z w z z m z z Z z z z z m w w f l ] ] ; ; $ @ $ & ) { ) } } [ } [ ) ) ) { ) } ) [ [ } : 6 5 5 6 p 5 p i p v k k 6 p 5 p p r B t t M G S G K S .S +.......+.+.}.....<.}.2.2.+.2.|.+.<...2.+.S G M G G v v i 6 6 6 a 6 } { } = ~ & ) & = & % $ $ & % % & $ @ ~ % % $ ) = ) ~ ~ % ) ) ~ ~ ~ } j S n. +{+]+3+}+1+}+^+4+2+2+2+}+1+2+|+^+2+2+2+3+2+4+2+}+4+2+1+1+2+1+", -"* * + > ' ' ' 3 _ d d m f m f o o o x z m z m z z D z z z z z z z w l l _ ' ^ % & % @ % % @ = = = { ) [ [ } } [ ) ) = % [ } [ } j 6 6 6 5 j p k i i p k p 6 6 k p p p p B B M M S ..S S ....S +.....+.....+.....2.}.2.2...<.+.2.......+.G G B M B p i i | } } { : } } ) = { = & & & % % % & & & $ $ & ; % % ~ & & % & % ) ~ = ~ ) ) ~ ~ { g t .Q.{+{+3+^+1+2+<+^+|+2+1+|+^+2+2+}+}+1+}+2+3+1+2+1+2+1+1+1+^+3+", -"+ + * * ' > d _ d d m z z z z z o z z z z z o z D X z z m z m w d l / ] ] ; & = @ = @ & % & = & = { = : [ } } 5 } [ { ) [ } } } } 6 j k k k p p p 6 i k k j 6 k k t p B p p M M S ..S +.+...+.+.....<.<.+...+...2...<.<.+.....+.+...2.+.O G G B B p 6 6 : } 5 } } ~ : { = { @ & & $ % @ @ % % ; $ & & ) $ $ % $ & % ; % $ & ~ & ~ ~ ) ~ ~ [ t -.w.Q.{+{+3+{+<+<+2+<+1+}+1+1+}+}+}+2+}+}+2+<+2+1+3+^+3+^+1+1+1+", -"* * * * ' ' d d w m z E E E z z U U z U z z m z z X z w w w d l _ ] ' ] % ; @ = = @ = & ) - ~ { { { { ) 5 [ } } [ ) [ ) } [ 5 6 k p k k k k 6 i 6 i p j p p k p t t M t B G S S ......+.+.+.+.<.<...<.......+...+.<.+.+...+.+.+...+.G O B v v p p 6 6 5 0 5 } { & = = & $ & @ & $ $ $ & $ . $ $ ; @ @ & & @ & $ ~ ) $ % ~ ~ ) ~ ~ ~ ) [ [ [ 0 K m.K.]+<+4+3+^+<+^+<+^+_+}+1+1+2+1+2+1+}+}+}+2+2+1+2+3+<+1+]+2+", -"* * ' ' _ 3 3 d m m Z E X X X z X D U z z z z z z z m f d d c ] ^ > ; % + $ & = - = & & & = ) ) { ) } } : } } } } ) } 5 : 5 j t t k r a i i 5 k 6 p p j t p B B B B M M M S ..<.<.+...<. . .<.}.<.<.<.......+.+.+.+.+.+.+.O G I G G v v i i 6 i : } } 5 : } = = & ) @ @ & . & + $ & & @ $ $ $ $ # & $ & & = & $ & ~ ~ $ % & ] % ) ) ) ) h c W f.T.W.{+]+]+3+1+1+_+2+<+1+^+^+^+^+1+1+1+}+]+^+1+3+]+<+3+]+2+]+", -"' ' / _ 3 3 m d z m z E X E Z Z X D X X D X D Y w w w l ] / ] > $ % % & @ & @ $ @ = - = ) = - = = } { { [ : } } { } } : 6 : 5 k p p r k 6 k k 6 k k i k p p G G M B B M M .+.+...}.}...<.<.<.<.<.2.}.......+.S +.+.+...+.O O G v v v e i k 6 : : ( : 5 } : - = = $ $ $ . & . & + + + $ @ @ $ @ & . $ # & @ & @ & $ & ~ $ % % % ) ~ ~ ~ ) ~ 0 N -.q.@+$+{+1+{+{+2+<+_+<+1+3+3+1+^+<+_+2+4+3+^+1+<+3+<+1+1+<+3+", -"/ _ f 3 f m z m f w z Z z Y Z Z Z D X Q D Z z z f d _ / / ; % & & $ @ & % & & & & = & { { } [ { } = } : : } } } } } } } } 6 6 6 p a 6 a 5 j k k i p B p p B B B M K M M .S ..+... .<.<...+...2.}.2.}...........O +.S G G G v v v v i k | : : ( : - : ) { = ~ = ) $ & . $ $ + % $ $ ; + $ ; ; $ $ & & ; $ $ # & $ & $ ~ % ~ $ & ~ ~ ~ 0 h T e.f.T.&+{+{+2+1+{+^+]+^+{+<+<+<+1+1+1+<+<+<+3+{+3+<+<+<+<+{+<+", -"3 f f o m z z x o z z z z Z z Y Y Z E X X z w d l _ ] % $ $ & @ @ $ @ & % & % & & & ~ = - { } ) ) } { { ( : : : 5 5 } [ } } } 6 6 5 k k k k j k k r r B B p M G S G K G S .....+.<.+.<.+.+.<.+.+.}.+.}... .+.S S S S S O G v B v k k i 6 6 { - - { - = = ) = & & & $ & & @ & # + $ % $ $ # + ; + $ ; + ; % % $ ~ ; ; ; ; ; ] ~ ~ ~ ~ / g 0 T -.3.s.W.]+]+{+3+]+^+]+4+{+^+]+_+<+<+<+3+^+<+1+<+{+]+2+]+1+]+]+", -"f f o z D z U x x D D D z Z z Z z X Z E Z w l / ; % ; $ & & & & & $ & = = & % % ) ) ) { } { } { } } { } [ a } 5 [ 5 5 5 5 : : } 0 6 6 6 6 5 k p p p B B B B G K S G S M ... .....+.+.<.+.+...2.+.<.+.+.<...+.+.S O S O G v p i p p p k 6 { - - = = = = = & % $ & . . . + $ $ $ & $ ; % $ $ % ; ; % $ > ; ~ ; ~ ] $ ^ ~ ~ ~ h g C T e.-.q.T.&+{+]+)+3+3+{+]+<+<+4+]+^+^+]+^+1+]+<+]+4+^+<+<+<+3+]+", -"m m z z X D D E x D D X z Z z X z z z Y w d ^ ^ . & @ = = = & & = = = ) & = { ) { } } } } ) } } 5 [ 6 5 a 0 5 5 6 6 6 : } } : 6 6 j p k p B t M M M B G S S S S S .S ....+.+...+.+...+.+.+.+.+.+.+.S S O S G O G B p i k p i k 5 : } & & = & = @ & & $ @ $ . & & @ + + ; ; + ; > ; ; ] % $ $ $ ; ; ; ; ; ; ; # ; ; $ ^ ~ ^ ^ ^ ~ h C P ^.-.i.f.m.T.)+]+<+]+]+^+{+]+<+<+]+<+<+]+{+^+]+}+]+3+]+<+]+<+<+]+", -"o z z z E Q E D E D D X X Z D Z z z Y w w l # . @ % & @ & @ - = = & % & = = { { { { } } } } } [ { } } k 6 k j 6 5 6 6 : } [ } } 5 5 6 5 k B p t M M M M S S .S S S S S +.+... .....+...+...I +.+.S S O O O G O G G B v k i 6 6 k k 6 : & & & @ & $ @ . @ . . . + @ + + + % + % ; ~ ) ] ] ] ; + ; ; ; ; ; $ # ~ ~ ] ; % $ ] ] ^ h A A T T ^.-.f.q.T.%+{+{+{+<+]+]+^+<+)+_+]+{+^+2+]+<+1+<+<+1+{+<+]+]+<+", -"x x D U Q Q Q Q D D X X X Z z Z z z z w ] ^ $ . $ . @ @ @ = = = = % % = = ) { { : : { [ } } } [ : 5 5 6 k k 5 6 6 } 5 6 } } { } : 5 k p p B B B M K K . . . .S S S ..S ..+.+.+...S ..S .. .+.G I O O G O I B G B v e 6 6 6 6 | 6 : } { & & % & % $ $ $ $ . $ $ $ & + $ + % > % + ; # ^ ~ ] ; ~ $ > > % > ; $ ~ $ # ~ ^ ^ ~ ~ ^ h h c A ~.:.>.^.-.i.f.T.++$+]+{+<+{+]+]+<+]+1+<+]+]+1+]+{+]+]+]+]+3+{+]+]+]+", -"U x U D D U Q Q E D E z Z z z X Z z w d / + @ @ . . @ @ & & = & ) ) ) } = } ) } : : : } : } : { } k a 6 6 a ( a 6 5 } } [ } 5 5 j p p B B B K B S S . ... . .S O S S +.+.+...+.+.S +.S S S +.G G v v p v v v i e | | : : : } : { { = & % @ & @ $ $ . $ . . + > > ^ ^ ~ ^ ; ^ ^ ; ; ; ; + ; $ $ ~ # ~ # ^ ] ] ] h c R ~.T -.^.^.^.-.h.q.T.&+{+]+{+]+]+_+<+)+<+]+<+3+)+1+]+3+{+<+<+{+3+]+]+]+", -"z x &.D Q z X Q U X X D U X Z z R w l _ ^ + + + . & = = = { { } } } } } } : } 6 6 : 5 6 a 5 6 a a : : ( : } 0 5 } 0 [ 5 j k B B t B M G S . . ...+... .S S ..S +...+.+.+.+.S +.S S S G v v i i i p e i 6 | ( : 6 : { { - = ) & = @ % $ $ . @ . . $ . . $ . # + + + ; ; > ; ; ] ~ ~ ; ; > % $ $ ~ ; ; ~ ; ] ~ ] h h C A T T ^.-.-.>.^.-.-.q.T.%+]+]+]+]+]+{+]+]+<+]+<+]+]+<+<+<+]+]+]+]+]+]+]+]+", -"x D x U x x Q Q E Q Q U D Z z z w h h # . $ + . . $ % = { { { { { } } } } : : 5 5 0 } } a 5 } a 6 5 : 6 [ } ( : 5 } 0 5 0 p k p M M M G G G +...+.<.<.........+.S +...+.+.+...S +.+.S G G v p i 6 6 i 6 i 6 ( ( - ( ( { ~ ( = = = @ @ = & @ @ $ . $ $ + + $ + $ # > + + + + > ^ ^ > > > ^ ^ # ; $ # $ $ ; % ; ^ ^ ] ^ g h A P T T ^.-.-.^.-.>.-.i.i.q.Q.&+{+{+{+]+]+)+{+]+)+]+<+<+]+]+]+]+{+]+<+]+]+]+]+", -"Q Q x Q x x Q Q Q Q D x z w l h l ; $ . . @ @ & ) = ) ) { { : } } 0 5 5 0 5 6 6 } 5 a g a : 5 } 6 } } : : 6 5 5 j u p p M M M M M S S ..+.+.<.+.<.S ......+.S ....S S ..+.G O G G v v 6 p 6 | 6 : | ( = & { = { ( & ~ & @ & @ . & $ $ $ + . + + + $ + + # + . + $ $ $ # ; ] ] ] > ^ / ] ] ; $ ~ # ~ ; ] ^ ^ ^ h h C C R T :.>.V -.-.^.>.>.-.#.e.q.T.%+]+]+]+]+]+]+{+]+]+]+]+)+<+)+<+]+]+]+]+]+]+]+]+", -"Q Q &.x Q x X X Q Q x z w d l ] $ # . $ . + @ . = = ) { { } : } } 0 5 6 6 5 6 : 6 6 } : : } } : } [ : : } 6 6 p p p t t B M G S S S .. .+.+.+.+.<...+.+.+.+.S +.S +.+.+...S O G p v 6 e 6 6 : : : : { - = = = - ~ & & & $ . . & . $ ; + + + ; + + # + ; $ $ + . . & # ; ] ] ; ] ] ] ^ ~ # # # ; ^ $ ^ ^ h h n V V T ^.T ^.-.^.>.-.e.-.>.^.e.i.q.&+$+]+{+{+]+]+>+]+]+{+{+]+]+]+]+]+]+{+]+]+]+]+&+", -"Q Q x Q U x U Z U U x o l ^ # $ $ $ @ @ + . $ @ = ) { } { [ } 5 5 [ 5 k 6 6 6 a 5 a } a } 5 0 6 a : } a } j j p p t K K K M S K S +.S ..+.+.+.+.+.<.+.+.S +.S G S O S G G O I v v 6 i 6 | : : : { - { ) = = & = = & @ & & & $ @ $ $ $ $ % % + + + $ + # ; > # # $ + # . ] ; ] ] ] > > ] * ~ ~ ; ^ ; ^ ] h h C A T T >.T -.^.T -.-.>.-.-.-.-.-.e.f.q.T.$+%+{+$+{+]+@+)+@+]+]+]+]+]+<+]+&+]+{+]+&+]+]+", -"Q Q &.x x w '.z U x w l _ * . . + + @ @ @ & ) ) ) ) } : } 6 j 5 6 k 6 a } { ( a } a : } 5 : 5 6 } k k p t B B K S K S S M G S +.+.+.+.+.+.+.+.+...+.S S G O O O G G O p e 6 i 6 : : } { - ( - @ & & = = & & . @ % . . + . + # $ $ . # . + > ^ ; ; # $ # + ; ] > ^ ; ; ; > ^ * # ; ; ] ] h c c R T ^.T W -.T >.-.-.^.-.-.-.-.e.>.-.e.i.T.%+$+]+]+{+]+]+<+]+]+>+]+@+]+]+]+]+$+]+%+]+]+&+", -"Q U Q x '.w !.w Y x w l / $ + $ % @ $ % & & ) ) [ { ) : : : k k 6 6 5 6 5 6 6 : [ } 6 5 6 6 6 a 6 k p p t B M S . .S S S ..S ..+.+.+.+.+...+.+...S O G B v B v v B v i i : | 5 : : = ) & ~ = = & $ $ = = @ & . @ $ @ # $ . # . . # # + ; ; + ; ^ ^ ; ; $ . ; ; ] $ ^ ^ ; > > ^ ; ^ ^ ^ ^ h c R A P T T >.W -.T >.^.W -.-.^.-.-.-.^.^.i.f.q.%+%+$+]+]+]+&+@+<+]+<+]+]+]+]+]+]+]+{+%+%+%+]+", -"U U w '.n V n V w w l / + # @ @ $ + $ % = = { { ~ ( } 5 6 6 6 6 5 5 5 } a 5 6 5 5 } 5 6 a 6 6 k t B B M M S S S ...S S S S +...I +.+.S +.S O S +.G G v p v s v p i 6 6 : : : } { { = = & . @ @ @ $ @ . & @ @ . . + @ $ + # @ . # # + ; ; > > ; > # # # # # # ^ # ; > > ] > ^ ; ] h h c A P T T W -.W ^.T -.T -.-.T -.>.^.-.-.e.-.e.e.i.T.&+%+%+&+]+]+]+]+&+&+]+@+]+%+]+%+]+%+{+{+%+%+", -"U R V y -.W W y n n / # . + + . . + @ @ @ & $ % @ % = = = = { { : } 5 6 } : } [ 5 5 6 5 6 5 5 k 6 6 a 6 k p B M B M G S .....S . .S S S ..+.I O S G S O S G G B r e a e i i i 6 : } : ( { - - & & & $ $ % $ $ @ & . . $ & $ + . . $ . # . + . . + + > ; ] > ; > ; $ # $ ^ ; ^ # ; ; > ; > ] ^ c c C C R T W T W -.W V ^.T >.T -.>.-.>.>.^.>.>.-.e.i.q.N.&+&+{+%+]+$+$+]+]+]+]+]+]+]+:+$+]+]+/+%+%+]+", -"n V r O s I O G W h ^ # # . . . . . % $ $ % $ % % = ~ ) & { = = } [ } } : } 5 j 5 k 6 k j 5 a k k r k k p B K M M G S S +.........S S S +.S G S O O G G G G G B k k : i 6 i 6 : : ( { = ~ { = & & $ @ & @ $ $ . + ; . $ . + . $ + + + + + > + > > ] ; ^ > # # ; ; > ; ; * > ] > c _ c A C A T P T T W W W W -.W -.-.-.^.^.>.>.1.>.6.-.>.^.h.f.q.T.*+]+]+$+]+]+$+&+]+@+]+&+]+&+/+:+&+]+%+/+%+", -"r q 8.q 8.I I s r g ; @ . . . . + . @ @ @ & ~ % & = = ) = ) - ~ : { } { ( } } 5 5 j 6 k k k k p j p r p B B G M S S S O S S S ....+...O O O G G r v v B B B B v k 6 : : : : : : : ( { { { = = & $ $ $ $ % + + # . @ $ + $ @ . $ ; # + ; ; + + ; ; + $ ; > ; ^ > # * ; > > > ; ; > ] ] c c w A T W W T -.T >.W -.T ^.V W -.W -.W -.>.>.>.^.^.e.^.e.h.q.%+%+%+%+%+%+]+]+&+]+&+]+&+]+$+&+&+&+]+%+%+%+", -"s s H H H H H I v : } . . . + . @ & = ~ % ~ = = & = & = & = ) { - ( { : 6 6 k 6 6 k j k p j B p t t B M .S S S S G +...+.....S S S S M G B B i v i v i i k 6 ( { ( { ( ( : { { = = $ & = @ & ; $ $ # + + $ + + ; $ + + > ; + + + ; ; > ; # > > ] > ^ ; ; > ; ; ; ; > ] 3 c l A A P A T W P T P W T T W T -.-.V -.-.-.-.-.-.-.>.-.-.e.-.i.q.q.%+]+]+%+]+&+&+]+&+]+@+]+&+]+]+]+%+%+%+%+%+", -"H H H J 8.J F F s : { $ + . + + . . . @ = = ) ) = & & = = = = & ) = { { } 5 a 6 6 6 p t p B B B G M G G S .S S S .G S G S ......S S G M B r p i i i i i i a 5 } { { ) = { - = = & = $ $ & $ . + + ; + + + & $ @ . > > + ; > ; # ; > > + + + # ; ; ; > > ^ / + ; > > > > ; ] ] c A c C A P P T T P T T W W >.W T T -.T -.^.^.^.-.-.-.e.^.e.0.h.6.q.q.N.*+$+%+]+%+]+%+%+&+%+]+%+%+%+%+]+]+%+%+X.", -"H J J L L J J q s i { & . . . . . + + % & & ~ = = ~ = ~ = = = { = = = ( ( : : a a p j B t K t M B G M S G S S S S G G G +.S S S S S O G G M r r 6 i 6 6 e ( 6 6 : ~ { - { = & & = = & & & . $ @ % . ; + + + @ . @ # ; + ; ; ; ^ # $ > ; + + > # / # ^ > ^ > # ; > > ; ; > ] ] ] l h C R T C A C W T T W -.W W -.T ^.-.T -.P W >.-.^.>.^.-.-.-.^.e.e.i.X.T.%+%+/+%+$+%+]+&+]+&+%+]+%+%+%+%+%+%+%+X.", -"J L L J L J J F s i { = & . . + @ @ & & & ) & & = = ~ = = = ~ = = = ( : } : 6 p t K M M M M M S G .S I S +.S S S G G G S S S G G r r B v r 6 6 a ( : : { } : ~ { = { - = @ @ @ & @ & $ $ $ + + + . $ + + + $ > > > + ; ] ; ] ; ; . ^ ; # ^ ; ; ; ^ # $ + > > > ] _ l c c C C A A C W y W W T T T T T W W T -.^.-.>.-.T -.^.-.>.e.e.e.^.^.e.i.q.N.%+&+%+%+{+*+@+%+%+]+%+&+]+%+%+%+%+%+X.X.", -"J L L L J J J q F i : { & @ . + + . $ @ % % & & & = ~ . = = = - ~ { = { { 6 6 6 p M M M M M M G S O S S G +.G +.+.G S G M G G G G B r v v a k a a ( : : : : : { { ~ { & & = & $ . $ $ . # + + ; + + . . . + ; + > > % ; ; > > ] ^ ^ > > . ; ] # > > > $ # # # # > ] ] c h C C h A C C y C T y W W T T W T T >.W W W >.T >.-.>.-.>.^.>.^.5.0.5.0.e.i.T.T.%+&+%+%+&+%+@+&+%+%+%+%+%+%+%+%+X.X.x.", -"L L L L L J J F F e i : = & @ @ . . + . . @ @ $ % $ & = = ~ = = . - & & ~ { { 6 6 k B M M M G S G G S S S .G S O G S O S G M G S G O B r i e r k | : ( ( { = = = - - & = @ @ & @ $ $ . . @ # + + + + . $ + ; ; + + ] > > ; ^ ; ^ ^ ^ ; > # # ] ; ; # ; $ . . # > > / h l l l A C C A n y y T C T y W V T >.W >.T -.W -.W ^.^.>.^.-.-.e.^.5.e.0.e.i.i.X.T.%+%+%+&+]+%+%+%+&+%+@+%+%+%+%+%+X.X.x.", -"L L L J L J H H F s e ( - @ . . $ @ $ & & & & & & & { { ) ~ & & = = : 6 6 p B G S S M M S S S G G K G G S +.S S G G G G G v p p a i 6 6 | 6 ( ( - = = = = = - = & $ . . $ $ . + + % ; + + + + $ + + $ > > > ; ^ ; / ^ ^ # # ; ; $ ; > * ; # * # # # # ] d c h c C h C c C V y y y u W V W W W W T T -.W -.-.V >.-.>.>.0.>.-.e.^.0.5.e.u.u.N.X.%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+%+X.x.x.", -"L L L L J L J H q q e e , - @ @ @ + . & $ # = = = ~ & $ ) ~ ) ~ = = ~ { } k j B G S S G G G G G G G G G G G M G G S G G B v v v i k 6 | < ( < ( = ) = = = @ = & = . = & $ . $ + $ $ + + + $ + + + ; + ; + + + + ; ; ] / > > ^ ^ ^ ] ^ / > > ; # ; * > ; # * * * * ; ^ h h n y g C u C y y V V C V V W V T W -.W T W V -.^.T -.#.>.1.~.e.^.e.e.i.h.e.u.q.X.T.*+%+&+%+%+%+%+%+%+%+%+%+X.X.X.h.x.z.", -"L L L J L J H H H q q 7 4 , - . . . @ . + . & # ~ { = ~ & & & { = } { { { = = { 6 k t M S S O S S M G M .G B B B B M G G G v B r i a k a 6 : } - - - - = = ~ = ~ & @ @ @ @ . . @ $ $ . . . . + + + + + $ + ; ; ; + > > $ ; ; ] > ] * ^ ; ; > ^ ^ ; # ; > ; > + # * * ' * * # / ^ h / g n C h C y C C y y y T y V W W P T W -.^.-.>.>.>.>.^.^.>.>.0.e.e.e.6.0.i.h.i.N.X.%+%+%+%+%+%+%+%+%+%+%+X.@+@+X.x.x.a.", -"L L L L L L J J H H q b 1 ! , - @ @ . @ . & & % [ ~ ~ ~ & & { { ) { ~ ~ = { : k B B G G S O G G G K M M K M G B B B B B v p p e i 6 | 6 ( : { = = = = @ = = @ . # @ . . $ @ $ @ $ + ; > + + + + ; > > ; ; + * # + + ; ^ ] # # ^ ^ > > ] ; > + # + ; * # > * ^ * / # * * ^ g g g h y n C C A V C W C T T T T -.P T T T V ^.W -.^.>.^.^.e.^.^.e.u.e.x.x.h.X.N.X.X.%+%+%+%+%+%+%+X.X.%+X.X.X.x.x.z.'.", -"L L L L L L J J L q H q b ! ! , @ @ @ . @ ) [ c 0 [ ) ~ & ) } } } ( { { = 5 p B M S G S O S G .M K G K B B B B B p v p i 6 6 i : : : : { { = = = & # @ # . @ @ & @ @ @ $ . + + + + + ; + + + + + * ^ ] ^ + $ + ; ; ; ] # ~ ^ $ # ; # ^ ; > # * > * * / * / / ' ' * ' / * / / / n C h C C A C y y C T T T T W T -.W -.-.>.>.>.>.-.^.^.^.e.e.e.0.e.x.x.i.x.u.X.N.%+X.%+X.%+X.%+%+%+%+%+X.@+x.x.z.z.c.", -"L L L L L L L L J J 9 q 9 1 ! , - @ . @ . @ & } 0 0 6 { = = ) } 5 5 : { { ( 6 p B S G G S G G G S M G K B K B B v i i i 6 6 | : ( : { : - ~ = { & & & % ) & . # . # # # . $ @ . + $ + > + ; > ; ; ; > > ] > # $ + + > + ^ ; ^ ~ ; ; # # * ^ ; # / > / * / * * _ _ ' ' ' / * / / h ^ n h C C C y y W y C T W T T T T W W -.W ^.>.>.>.>.^.-.e.>.e.e.i.i.h.u.u.u.X.X.T.X.%+%+%+X.%+X.X.X.X.X.x.x.g.z.D.c.", -"L L L L L J L L L L J J q b ! ! , . @ . - { 6 6 5 } ~ ) { 6 } 5 0 g ~ { 6 p G M G K M G G G G B B B B B B p e v k k k : : : : { - & ) = = & ~ & ) ) % ; $ $ . + $ # . + + % % > + + ; % ; ] ^ > + ; $ $ > ; * ^ # # ^ ; ; ; ^ * * * * > / / / / ' ' 3 _ / / / * / / ^ h c l n y y C C C u C A W V W W -.T T >.W ^.>.>.-.^.>.e.e.e.i.h.i.u.i.x.i.N.N.X.%+X.T.X.%+X.X.%+X.X.X.x.x.'.D.c.C.", -"L L L L L L L L J J 9 J 9 q 9 2 , , @ @ . . @ = : : a : { & ) { 6 j t 0 0 5 ( 6 i B G G G B M B B B B O B B B v i i k 6 6 : { { & { ) ) = & = = & & % ) ) [ ] ; ; + + . . . . @ . + > > > > ] % > + ; > ; $ ~ * ; # + $ > > ; > ^ # * / # ; > > * / / ' ' _ _ _ 3 _ d 3 _ / / / ' / ' / c h h C C C T C T W V C V T T V ^.^.>.T ^.>.>.>.-.e.>.e.6.e.6.h.h.u.h.x.X.X.X.X.%+X.@+X.%+X.X.X.X.x.z.g.D.z.{.y.", -"L L L L L L L L L L J L J 9 9 2 ! - - @ @ - : : { = { = { 5 j t t t 5 5 6 i v B B B B B B v v v v p v k i k 6 6 6 : { { { = & & @ @ & & & = ~ & ) ] [ ) ) ; $ + . . & & . $ # + > % + ] % > > + + > ; ; ; / ; * > > ; $ ; ; ^ # # ; ; ^ * > > / * / ' _ _ _ 3 ] d _ _ 3 3 3 3 _ _ ] / ^ l h C A C C C V C T T T T -.T V >.T ^.>.^.0.^.e.^.e.e.i.h.u.u.x.q.u.i.i.N.N.X.X.X.X.X.%+X.X.X.x.x.U.'.D.&.y.c.", -"L L L L L L L J J J J q q J 9 q 2 , - @ @ . . . @ - - { = = { : a k B t t j k 6 6 i k v B v v v i p i i i i i 6 6 6 : : : { = = = % % $ @ @ @ @ @ & & { [ h ) ) % + + + + . + ; + > + ; ; % > % + % + ; # $ ^ ; ; # > ; ; ^ ; $ / ^ # # * / / * / * * / / _ _ _ 3 3 3 d _ _ _ _ _ 3 3 _ ^ l h h C C C V V y V P R T V ^.V ^.>.-.^.-.-.^.i.^.e.6.i.i.e.u.u.x.u.u.X.X.X.X.%+X.X.X.X.X.X.x.x.g.z.'.D.c.y.c.", -"L L L L L L L L L J L J J q J 9 9 ! , - @ @ @ . - @ - & & ) { i v r K M t j 6 6 6 6 i i i i 6 p 6 i i i | i : : : : : - = = = & & . @ @ @ @ = = ) [ ~ ) . + $ # + ; + ; % ; ; # ; ] ; > + ; $ ; # ~ # * / ; ; > ; ; # # ; # * / * * * / / / / / _ _ _ 3 _ ' 3 ] d 3 3 f _ _ _ _ _ / / l h C C C y V T T ^.T T V T ^.V ^.-.-.e.>.e.e.6.h.h.h.u.u.h.x.X.i.u.u.X.X.X.X.X.X.X.X.x.x.g.z.z.c.D.&.y.7.", -"L L L L L L L J L L J J H J 9 9 9 2 ! , - . . . . @ @ @ @ & = : 6 p B M M K j 5 6 : : i | i i 6 6 5 6 | 6 : | : { : - = - = @ & ; $ % . . . @ . . @ @ % ] ~ & + + ; + + . + ; > > % ; $ ; ; ; ; ; > + . $ ; # ^ ; * / # # > > / * / * # * ' / ' _ _ ' / _ _ _ 3 3 3 _ d 3 3 d 3 d 3 _ l _ _ _ / l l l C C C C R A T T T ^.W V ^.^.^.-.6.6.i.e.6.x.e.e.u.u.i.x.x.N.u.N.X.X.X.X.X.X.X.x.x.U.z.&.c.c.c.c.c.c.", -"J J L L J L L J J L L J L J J J 9 b ! , - @ @ . . @ . @ @ = { a r v B M M t p 6 : : : | 6 6 i 6 6 6 | | : { - - = & = . @ @ $ % . & @ $ @ @ $ . = & $ $ + + + # + ; % ; $ + ; . ; ; > > > + ; # # # ; ; ^ > ; / # ^ # ; / * / / ' ' _ ' _ _ _ _ _ _ 3 ' d 3 _ _ _ _ 3 3 _ 3 _ 3 h d _ 3 / ] l n n C V A T :.T V -.V -.^.^.-.0.-.e.e.h.h.h.x.u.e.i.x.u.N.x.Y.N.u.X.X.X.X.X.x.x.g.z.z.c.B.c.D.y.y.7.", -"J J L L L L L L L J L J 9 J H 9 L 1 b ! , - . @ . @ . @ @ = - < e v G B G t p 5 } - = : : 6 6 | 6 : : - - { = = = & = = # & . . . . . . . . . @ @ @ . @ + . + > ; ; $ . $ # ; ; ; ; ; # ; # # # # # ^ ^ ; ; # # # / # / > / / / _ _ 3 3 _ _ f 3 3 3 3 3 _ l 3 _ d d l _ 3 3 3 d _ d _ ] l l n C C V R T R V V -.V ^.^.>.e.e.e.e.6.6.e.x.x.u.u.i.u.u.u.u.Y.N.X.X.x.x.x.x.x.z.z.z.&.C.c.c.c.c.A.", -"H H J L J L L J L L L L J L L q J q b 1 ! , @ . . . - - < i i B G M p p : } ) - - : : 6 | : : = { = = = & = . @ @ @ @ . $ @ @ @ @ $ . . . # . + + ; ; + ; $ + + ; $ # $ ; ; > ; # . # ; ^ # ^ ~ $ * > / # / / > / ' / / _ 3 3 3 3 3 f f _ 3 f d d 3 d d 3 3 3 _ f l 3 _ _ _ _ _ d _ _ / h l C n C T V V -.V ^.^.^.6.^.>.0.0.i.e.u.e.e.x.x.u.u.u.u.X.u.X.X.X.x.Y.x.g.z.z.c.D.B.c.B.c.C.7.C.", -"J J J J L L L L L L L J J J J H 9 J 9 9 1 , = @ . . . @ - - | i i v p i k } { = - = - { : : ( : = = = & % & . $ . $ + + . + + # . . . # + # + # + $ . . # $ # # > # # ~ > ; * > > > > ^ ; ^ ; # ^ * ' ' _ _ _ _ _ 3 3 d f f 3 f f f d d m d f f 3 f f f 3 _ 3 3 3 3 d 3 3 _ d _ ] l h n V V V V -.-.V ^.^.^.6.e.e.0.x.h.u.u.e.x.x.u.u.u.u.Y.x.X.x.X.x.U.z.z.z.c.c.c.c.D.c.B.B.C.C.", -"L J J L J L J L J L L L L L L L J J q q b | , - @ @ . . @ . - < < i e i i 6 : { ) = = - { - { - = = = = & $ + + $ . $ % . . . + + + + # . + . . + + + + + # # . $ + ; ; ; ~ # * ; / $ $ / > ^ ' ^ # / ' ' / ' _ _ _ 3 d d d d d d m m d f f d m f f f f f 3 f 3 f f f l _ l _ 3 3 d _ _ l / l n n C V V V V ^.^.^.^.6.6.0.6.e.e.6.x.x.e.u.x.u.Y.u.u.x.x.x.U.U.g.z.z.D.B.B.c.B.c.B.c.C.C.C.", -"J J J J L L L L L J L J L 9 L H q H J 9 q 7 , - @ @ . . . . @ - - , | | 6 : : : = & ) % & & - = = = = = & @ & @ . . + . + + + . . + + + > + + + $ ; # # > > + > ~ ^ # ; * # ~ # > ^ > / * * * / / _ _ d _ d d d d d m d m d d f m m d m m m f f f f f f 3 f f f _ f l 3 _ d _ _ / l l n n C V V V V ^.-.e.^.0.0.6.x.6.e.e.x.x.u.u.u.u.u.N.Y.x.Y.g.z.z.z.B.c.B.B.c.C.B.B.B.B.B.B.", -"J J J J L L L L L L L L L J L L L J H H q q e , - . @ @ . @ - - ( < ( 6 } { { & % @ @ & @ & & & & @ @ $ . . $ + + + + . + # + + + # + + ; ; + + # # + + $ ; ; ^ # / / ~ ^ * # ] ' * ; * / / _ _ _ d _ d d d m d m m m m m d d m m f m f m m m f f f f 3 f _ f f 3 f _ 3 _ f 3 3 / / l h n n V W W ^.^.^.0.5.0.0.h.e.x.x.u.0.x.x.x.x.x.x.x.x.U.z.z.z.z.B.B.B.B.B.B.c.B.c.C.C.B.", -"L J L J L L L L L L L L L L L J J H J q q q q | - = @ . @ @ . = - - , - { { ) = = % & = @ & @ @ & . . . . + + + + + + + + + + + . . + + + # + + + # # ; ; + # / ; ; ; # * # ^ # / > ' ' ' ' ' / _ _ _ d d d d d m d m z z m z m d m m m m m m m f o f f f f f f f 3 f f l 3 d 3 3 3 _ _ _ l l n n n V V W -.^.0.0.0.0.e.0.1.u.u.6.h.x.x.x.x.g.g.z.g.B.B.c.B.B.B.c.B.B.B.B.B.c.B.B.", -"L L L L J L L L L L J L L L L L L L J J H q q e | : = @ + @ . @ @ - - { = = = = @ @ . . @ . @ . . + + + + + + + + + + . . . . # + ; + + > . $ $ ; + # # ; > > ; / # ] ] ^ # ^ * > * / / ' / / _ _ 3 l 3 d f m m f o m m w z m z z m m m m m o o o o o o o f f f f f f 3 f f f f f f f d 3 3 _ l n n y y V ^.V ^.e.6.u.0.u.e.x.6.x.x.9.U.g.g.g.x.a.z.B.c.C.B.B.B.B.B.c.B.B.B.L.C.B.", -"L L J L L L L L L L L L L L J L J J H H H q F q v : : - = + . @ = - = { = & & . @ . & + # . + + + + + + + + + + + . + . + + + ; > + + $ . $ # ; > ; ; ] ; ^ # > > / ; / * ^ ' ' ' _ _ _ 3 _ 3 l f d m m m m w o z z z z D z m z o o m m o o o m m m m f o f f o f f f l f f 3 _ l l 3 l _ n n n n V C V V ^.^.6.6.6.6.6.9.9.x.g.9.g.z.z.z.z.a.c.c.B.c.z.B.c.B.B.B.c.B.B.B.B.", -"L L L L J L L L L L L L J L L J L L J J J H H q F s i : = @ + . . $ @ & & @ & = % @ $ @ + + . + + + + + + . + . . # . # # + + + > + + ; # # ; * ; ; ; > > > ] $ / ^ > > ' * * ' ' _ _ _ 3 f f f d d d f m m z z x x w z D D z D D o o f o m m m o o m m o o f o o m m f o o f o f f f f l f l / / n n n y n n V V -.^.6.9.9.9.[.g.g.z.z.'.z.'.z.B.c.C.c.z.c.c.B.c.B.B.B.C.B.R.z.", -"L L L L L L L L L L L L L J L L L L L J J H H H F q e i { = @ . . @ & & & % & & % @ @ . . . . + + + + + + + + . # + + . + # + + $ $ + + + > + + # ; > > > ] ; ^ * ^ ; # # * * / / / ' _ 3 3 _ 3 3 o m m m w f z m m o m x w m z z z z z z x z x m z z m x o m f o m o f o z o o o o o o m f f f f f f f / _ l n n n V n V V !.6.!.(.(.a.a.a.a.B.c.z.z.c.B.c.C.B.B.B.B.B.B.B.B.c.B.R.B.", -"L J L L L L L L L L L L L L L L J L J J J J H H F F F s 6 { & . @ @ & @ $ $ + + + + + + + + + . + . + + + + + + # # ; + $ + > ; ; ; > ; ; ; ^ # # > ^ / ' > / / / ' _ _ _ 3 3 f m d m m w m z z w x z o m x o m z z z D x D D x x m D z m z o x m m x x o o w o o o x o o o o f f f f f f f l l n o l n !.w R !.!.,.,.a.a.a.c.c.c.B.c.B.B.B.c.B.c.B.c.B.B.a.B.z.B.z.z.", -"L L J J L L L L L L L L L L J L J L L J J J J H _.H F I v 6 = @ + + . $ & @ & & $ $ + + + + + + + + + + + + . + . . . . . + + + # # + + ; ; > ; ; ^ ^ * / # / ^ * > + ; / ' ' ' _ _ _ f 3 f f f f o o z z w z x x w o w x x x z z m z z z z D D z m D z z z D m D D x x x o x x w z z o x o w o o f f f l f l f f w o o w U U Y ,./.=.c.c.c.B.B.a.L.B.L.B.R.B.B.B.B.B.B.B.R.B.B.B.B.B.", -"L L L J L L L L 9 L L L J L L J J J J J J J J H H H F I s p { & . . + + @ ; @ & + . + + . . . * + + + + + + + + + + + + + + + + + + > + ; ; $ + ; ; # $ ^ ; $ ^ # # # * * / ' ' ' _ 3 3 d f f f f f o o o o z z o w x x x x z x o x m D m D m D z z z z z D x x x x m z x o x x z z x z x w x o x o x o o f f f f f o w w x U w Y U *.].c.].a.a.c.R.c.B.a.R.L.B.B.C.L.C.L.B.B.R.R.B.B.B.B.", -"L L L L L L L L L L L L L J L J L J L J L J J J j.J _.F F e : % + + $ $ @ + + + + + + + + + + + + + + + + + > + > + > > + ; ; * # ; > > > ^ # ~ ^ # ; * / / * ' / _ _ _ _ 3 f f m m z o o o m x x x x x w x x o x z x x x o z m z z E D D z D z E D E D D D D D x x x D D D D z U x w z z z o x o o f o w z z U Y U X X %.*.].].c.c.c.C.a.B.R.B.c.R.c.R.B.C.L.L.B.R.R.R.B.B.B.B.", -"L L L L L 9 L L L L 9 L L L L L L J L j.L J L L J J H H F s 6 ) % + + # @ & $ . # + + . + + + . + + + + + + + + + + + + + + + + + # + ; > * ; ; ^ ; ; ^ ~ / # # / * # * * / / _ ' _ 3 f f o o o m o z o x x x x o x x x w x o o x o x x x o D x D z z z x o D x D x Q D D D D U U z x E D z D U U x x U z z z w x o z z z z U E X U *.*.&.*.c.c.c.c.c.c.R.].R.R.R.B.R.c.L.c.R.R.R.R.R.R.O.O.R.", -"L L L L L L L L L L L L L J L L L J J L L j.L J J J J _.F q e : @ + + + . . @ . + + + + . . + + + . + + + + + . + ; + . + > ; ; # > ; > > > / # # ^ # # / * * / _ _ _ _ _ 3 3 f f o o o z m z z D o x o x o x x x o o x x x E o o o x o D z z z x x x x D D x E E E D D D D E E X D X z U z E D z z z z z U U D U X X ;.X ;.;.;.c.c.c.c.c.B.B.c.R.c.L.].L.B.L.c.R.L.c.R.R.R.R.R.L.R.", -"L L 9 L L L L L L L J L L J J L L L j.L J J J J J J J H F q e : = ; + + . . . . . + + + + . + + + + + + # . . # + ; + > ; # $ + + > ] > ] ] ^ ^ # ^ * * * / * / / * / _ _ f f 3 f o o o o z o o o o o x o x o o x x x x x o x o x x D x x x z D D x x x x x x E Q Q D X X X X Q X D X Q Q D U Q D X D X X D D D U X X X X %.;.;.7.;.c.c.c.c.c.].R.a.R.a.L.R.c.L.R.c.R.R.R.a.R.R.R.L.R.O.", -"L L L L J L L L 9 L J L J L J L L J L J L j.L J j.J J H H q 1 e = % + . + + + . . . # + + + + + + + + . . + + + + + + + + + + + ; ; $ # ^ # ] > > > # ^ * * > * * / / * _ _ f _ _ _ f f f o m o o o o o x o x o o x x x x o x x x x E x x o o o x z z D x x x x x x Q Q E Q D X X Z z Q X Q X E X X D U U E X D X U D X X X X ;.;.;.%.;.c.c.c.c.c.c.C.c.R.c.L.a.L.R.R.a.L.R.c.R.R.R.R.R.R.R.R.R.", -"L J L L L L L L L L J L L J L J L j.L J L L J L J H J H L q b | - @ + + . + . . . + + + + . + + + + . + + + + + + + * # + > ; ; > > > ~ # # ^ ; ] ^ ^ ^ # * / * * / * _ _ _ _ f f f f f f o f o o o o x o x x x o o o x x x x x x D x x x x x x x D D x D x x x x x x x D D E X D z Z X X X U X X Q Z X X Z X X X X X X E %.;.%.%.%.;.c.%.c.7.c.c.B.c.c.a.R.L.a.L.].L.R.R.R.R.a.R.R.L.R.R.R.R.R.R."}; diff --git a/rbutil/wx_pch.h b/rbutil/wx_pch.h deleted file mode 100644 index c4da9a20ef..0000000000 --- a/rbutil/wx_pch.h +++ /dev/null @@ -1,43 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * Module: rbutil - * File: wx_pch.h - * - * Copyright (C) 2005 wxWidgets team - * - * All files in this archive are subject to the GNU General Public License. - * See the file COPYING in the source tree root for full license agreement. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - -#ifndef WX_PCH_H_INCLUDED -#define WX_PCH_H_INCLUDED - -#if ( defined(USE_PCH) && !defined(WX_PRECOMP) ) - #define WX_PRECOMP -#endif // USE_PCH - -// basic wxWidgets headers -#include - -#ifdef __BORLANDC__ - #pragma hdrstop -#endif - -#ifndef WX_PRECOMP - #include -#endif - -#ifdef USE_PCH - // put here all your rarely-changing header files -#endif // USE_PCH - -#endif // WX_PCH_H_INCLUDED -- cgit v1.2.3